Ecos Secure Boot Stick 5.6.5 Credential Disclosure / Information Leak

2018.06.14
Risk: Medium
Local: No
Remote: Yes
CVE: N/A
CWE: N/A

MULTIPLE SECURITY ISSUES IN ECOS SECURE BOOT STICK (SBS) - Software: Ecos Secure Boot Stick - Version: Stick Version 5.6.5, System Management Version 5.2.68 - Vendor Status: Vendor informed - Release Date: 13/06/2018 The latest version of this document may be downloaded from https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/advisory.html. A German version may be found below. 1. General Overview The Ecos Secure Boot Stick shall provide a secure enclave in an untrustworthy environment, i.e. it is intended to be booted on a commodity PC and shall allow a secure access to confidential data. The vendor states: "The ECOS SECURE BOOT STICK (SBS) provides a highly secure access to Citrix, Microsoft Terminal Server, VMware, View/Horizon and web applications within a protected remote access environment." Reference customers include German authorities, banks, insurances, and hospitals. The numbers on the website indicate that a multiple thousand SBSes are circulating. During a security audit of the boot stick and its management we discovered multiple vulnerabilities. All of them lead to SBS failing to assure the claimed security properties, i.e. a compromised host or third party may access private data and key material. Disclaimer: We can neither make claims on the completeness nor the following findings being the most significant ones. From a theoretic point of view, we have not performed any independent thread modeling and not derived any security requirements. Instead, we rely on the security measures and statements of the SBS vendor as well as common sense, e.g. private keys should not be accessible. Furthermore, we give ideas on potential mitigation measures, but we cannot make statements about their completeness. The novel [SE] and [SX] versions of the product were in the meantime certified to protect VS-NfD (the German clearance level for Confidential) data by the German Federal Office for Information Security (BSI). Although the [SE] and [SX] versions may work similar (except for the fact of using smartcards), the advisory may not be applicable to it. The approval of the BSI may also be tied to certain precoditions for a secure operation, which are usually not made public and which may mitigate risks. 2. Description of Vulnerabilities & Potential Mitigations Measures 1. Remote root login in Ecos System Management The System Management Appliance contains root user with a set password and enabled SSH access. The password file /etc/shadow that contains the password is downloaded during installation of the appliance from a server operated by Ecos. Ecos is able to provide individual passwords depending on the used license key. Our shadow file has the following content (please note the base64 encoded signature by Ecos): root:$6$ys8MpGD8fzOj1CMa$8S5YZ2UasC5IVMOoshDevPYeGEfxe/t.WUYL1nOHzR6g38VQmUO6t5vLsNQvk1thPJhTygDsvUyd9tfbJz5ib.:10091:0:99999:7::: setup:*:12101:0:99999:7::: remotesetup:*:12101:0:99999:7::: RUNPUyBUZWNobm9sb2d5IEdtYkg6IGNvbmYtc2lnbtlpePrdaFQhGVMzvKCum1Se8f8kAQBUo7BcQAy9GeRSx2+cRPHJPzSg792pvZ4Ib5RYVbb6GOJdO92mrdFN4JwQhcb5unnmJLa9GX3XpBC2Ujh8AmZsBW2Q06h0ka0qfxJMkcmRDZ3LxOU/GjG/vGnyiymlk1g8iUdYf6u7NNZ0HVoz1HC8dQdZgcH1J5cHnOFGgVl4oak207tnUpgziAwSkALddZHR0jJ7sNiNlboIMToqPmM2lxYJulRCzWcplFoiHkvhEZos0m1TI9NnEA+nlp38cSWBf5lOytN10eeVnaov+uGAp2Xl22avmZmOz6c0K4TttTKGdi1+i2/Tzgs3Jhwegn3b4fNrvp5iB8/umBsYR3i2AQYBHxQAAAAAAAECfk1vZHVsZSBzaWduYXR1cmUgYXBwZW5kZWR+Cg== _Steps to reproduce:_ a. Install the Ecos System Management in a virtual machine and shut the VM down b. Mount disk image in an external OS c. Verify a file /usr/msrc/certs/shadow.new exists and contains the hash of a set password for user root d. Change the password in /etc/shadow by modifying the hash e. Boot appliance again f. Log into the appliance using SSH and your password _Potential implications:_ - The vendor has the possibility to use the root account as backdoor and log into the appliance at any time. - The vendor may download private configuration, e.g. private keys and passwords. - The vendor may modify existing configurations, e.g. switch to an insecure encryption scheme or activate VNC connections to associated SBSes. - If the vendor should ever have a security problem itself, e.g. an disloyal employee or compromised software, other parties might use this backdoor. - If the same password is used for all customers: - An attacker might brute-force the root account and use the backdoor in other installations. - If the password is ever used, an attacker might record it using a man-in-the-middle attack and make it available to third parties. _Potential mitigation measures:_ a. Either mount the Ecos System Management partition using an external system and reset the password. It may be required to disable the update system to make changes permanent. OR b. Disable root access in sshd_config. OR c. Disable access to the Ecos System Management on port 22 using an external firewall. The SSH process listening at port 909 seems to have root access disabled. 2. Easy enrollment susceptible to man-in-the-middle attacks The easy enrollment feature allows remote users to initialize their new SBS by entering an "activation code" and a six digit "passphrase". This initial enrollment is technically performed by downloading the required configuration from a central management appliance, whose IP address is encoded in the activation code. To authenticate with the management appliance the SBS uses an SSH connection to port 909. It uses password authentication scheme with a username and password directly derived from activation code and passphrase. As the SSH fingerprint of the authentication server is _not_ checked, activation code and passphrase may be obtained by a simple man-in-the-middle attack. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/enrollmentMITM.mp4 _Potential implications:_ - An attacker may perform any action happening in a legitimate easy enrollment. He may also abort an enrollment process at any time to keep the activation code legitimate. The attack may happen transparent to the end-user. - The stick of a user may be impersonated. _Potential mitigation measures:_ Use easy enrollment only in trusted networks. Using easy enrollment with a smartcard may be secure, as it requires a smartcard initialization in an offline step, but we have not verified this. 3. Easy enrollment allows download of arbitrary user credentials After easy enrollment established an SSH connection, the stick tunnels HTTP requests through it. The answers contain files for an initial bootstrapping, e.g. they include public and private keys to connect over SSH in a later step. After obtaining the files, the activation code is usually deleted from the database. However, we found that by using an activation code/passphrase pair, an attacker may establish arbitrary port forwardings in the management appliance. Hence, an attacker may use the credential above to connect to ports that are solely bound to the localhost of the management appliance. The central CouchDB is listening on port 5984 and may be instructed to dump the credentials of _arbitrary_ sticks and users. Furthermore, the activation code does not have to be deleted, so that the attack may stay unnoticed. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/enrollmentKeyExtraction.mp4 _Potential implications:_ - An attacker, who gained access to a valid activation code (the passphrase does not contain suffient entropy) or who performed a successful man-in-the-middle attack, may compromise the keys of _all_ users. - The attacker may also modify the management database, e.g. enabling VNC server with a weak password. - Further internal services or even other hosts might be accessed (which we have not explored). _Potential mitigation measures:_ Make sure easy enrollment may only be used inside trusted networks, i.e. not over the Internet, by blocking port 909 (will have side effects). Only trusted users must obtain an activation code. 4. SBS leaks key material on reset Ecos states: The usage of the stick does not leave traces. It is hence ruled out that conclusions on connection or working data may be drawn. ("Die Nutzung des Sticks hinterlA$?sst keinerlei Spuren, womit es ausgeschlossen ist RA1/4ckschlA1/4sse auf Verbindungsdaten oder Arbeitsdaten zu nehmen.") Despite this statement, we (obviously) found that after _cold_ reset of an Ecos SBS, i.e. user hits the reset button, confidential key material is left in main system memory. A compromised host OS may read this key material from "uninitialized" memory. This may also happen, if the user is resetting a PC using Ecos SBS, continuing his work with the SBS, properly shutting it down and booting into the untrusted OS (the memory is not completely overwritten by the OS). _Steps to reproduce:_ a. Download and prepare RAM imaging utility from https://github.com/dbrant/bios_memimage b. Hit Reset while running Ecos Secure Boot Stick OS c. Extract long-term and short term secrets using the RAM imaging utility. Depending on the used hardware an interpretation may require an additional descrambling (see [1] or [2] for details). The MSI Z170A GAMING M7 board is verified to work without descrambling. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/coldBoot.mp4 _Potential implications:_ - A compromised host OS (or with lower probability even applications) may obtain secrets that should have been securely kept in the SBS. Keying material that may be compromised includes: - Private keys to authenticate the stick to the management - Private keys to establish connections to VPN/websites - Symmetric keys that protect VPN connections and terminal server sessions - Symmetric keys that protect firmware and user configuration - Attackers may enforce this situation to extract key material "contained" in a stick. - A malicious user may extract or modify the user configuration on a stick by using extracted keys (see findings 8 & 10). _Potential mitigation measures:_ After a reset users must unplug power supply and potentially remove laptop batteries for several seconds to ensure the memory is wiped, before booting an untrusted OS. Older types of RAM may require a power off for an even longer period of time. Devices, that cannot be securely turned off, i.e. without removable batteries, should not be used. Long-term secrets should be better protected when a smartcard is used, however we have not verified this option. 5. SBS may be cloned The vendor advertises the stick as a 2-factor-authenticator with a certificate being paired with "the" hardware ID of the stick (Ecos: "Zertifikat, gekoppelt an die Hardware-ID des Sticks"). This suggests that the stick may not be cloned by an attacker or compromised software. We found that the SBS is not sufficiently protected against cloning, as the idea of a "hardware ID" is deceptive for current generations of USB storage sticks. An attacker may set parameters such as vendor and product ID as well as the serial number on generic USB storage sticks [3]. A malicious software must then only perform a byte-level reproduction of the stick, e.g. using the well know dd-tool on a Unix system. Note that this copying does not require physical access, but the content may be transferred to a remote site, if the stick is plugged into a PC that is running compromised OS. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/stickClone.mp4 _Potential implications:_ - Sticks may be remotely or locally duplicated without the user noticing this, violating the possession requirement of the 2-factor-authentication. - As the "firmware" of the stick is not activated, this may be performed even if a boot passphrase is set. - Attackers may create "backups" of certain stick configurations and restore state if a configuration is remotely revoked or the SBS is seized. _Potential mitigation measures:_ Users must not plug an SBS into a device running untrusted hard- or software. This may include compromised USB equipment, like hubs, etc. Using a different form of a second factor, i.e. smart cards should help, but has not been verified by us. Strong passphrases increase the strength of the "first factor", i.e. the actual physical possession of a stick is less relevant for the established level of security. Rely on certificate revocation in accessible remote services (VPN concentrator, RDP servers or internal websites) in the case of a compromise, not on possession of an SBS. In case of a central VPN concentrator, it may be useful to monitor sessions for parallel logins. 6. SBS may be booted in virtual environment The vendor statement: Before execution of the firmware a check is performed, to determine if the stick was booted in a virtual machine. This prevents that security measures of the stick are undermined and, for example, a keylogger or Trojan on the host records screen content or keyboard strokes. ("Vor AusfA1/4hrung der Firmware erfolgt eine PrA1/4fung, ob der Stick in einer virtuellen Maschine gebootet wurde. Dies verhindert, dass die SchutzmaAnahmen des Sticks unterlaufen werden und beispielsweise ein Keylogger oder Trojaner auf dem Hostsystem Bildschirminhalte oder TastaturanschlA$?ge protokolliert.") Developing good detection and concealment strategies for virtual machines is an ongoing war between virus authors and anti-virus vendors, for example. From a theoretical point of view the detection of a VM environment is not possible under all circumstances. However, practically it may be difficult to build an undetectable virtualization environment (see [4]). This raises the question how well protection mechanisms against virtualization attacks work in SBS. Error messages indicate it is part of the cryptographic protection mechanisms. Strings in the involved executable show astonishing similarities to the virtualization detection in systemd (see https://github.com/systemd/systemd/blob/master/src/basic/virt.c) for the involved GPL code. However, systemd was never build to protect against malicious activities, so it is not surprising that starting KVM with the following command is sufficient to boot the stick in a VM: kvm -m 2048 \ -cpu host,kvm=off,-hypervisor \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x8564,productid=0x1000 \ -smbios 'type=0,vendor=' -smbios 'type=1,manufacturer=,product=' In case an attacker should not have direct access to a stick, but only to an image (e.g. copied from a compromised OS), a simple patching of QEMU may make the same approach feasible. Blueprints are https://lists.gnu.org/archive/html/qemu-discuss/2015-07/msg00072.html. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/virtualization.mp4 _Potential implications:_ There are two main scenarios how this finding may lead to a successful attack: 1. The legitimate user virtualizes himself by intend, e.g. for reasons of convenience or to capture video output. The latter should explicitly be impossible according to the SBS vendor. (Creating, saving, printing or forwarding screen captures is prevented by a secure access solution, "Das Erstellen, Abspeichern, Drucken oder Weiterleiten von Bildschirmkopien wird A1/4ber eine sichere ZugangslAPsung verhindert.") 2. The user is not aware of the system being virtualized. Like demonstrated over 10 years ago, it is possible for malicious software to simply virtualize operating systems to hide their existence (see [5]). Even for the dedicatedly booted SBS numerous transparent virtualization attacks are imaginable, e.g.: - A compromised OS may change the UEFI NVRAM to modify the boot order, which is an official API function. It makes sure to be always booted first. If an Ecos sticks is plugged-in, it is booted in a virtual machine. - A compromised OS does not properly shutdown, after the user clicked "reboot". Instead it shows a short video of a BIOS output and starts the Ecos stick in a virtual machine. - A malicious software modifies the SBS, such that it always boots in a virtual machine (see finding 10 why this is possible). A virtualized Ecos SBS system may be introspected and modified at any time. Hence, it is possible to - Record user behavior, session and long-term keys, PINs as well as passphrases. Thus, giving both factors of the 2-factor-authenticaton in the hands of an attacker - The virtualizer may modify running programs, the SBS OS and the involved data. - Any extracted data may be communicated to remote locations, i.e. the attacker does not have to get physical access to the SBS. All in all, no security goals may be accomplished if virtualization is not effectively prevented. _Potential mitigation measures:_ Users must not plug an SBS into a device running untrusted hard- or software. Administrators must be aware that users might use virtualization to run their sticks. If users cannot be fully trusted the SBS cannot ensure the claimed security objectives. 7. SBS is susceptible to backdoors in hardware firmware Firmware backdoors may access and modify sensible data during operation of Ecos SBS. The vendor states: ECOS SECURE LINUX takes control of the connected periphery, so that even malicious software residing in BIOS or UEFI does not pose a thread ("ZusA$?tzlich A1/4bernimmt das ECOS SECURE LINUX die Hoheit A1/4ber die angeschlossene Peripherie, so dass selbst eine Schadsoftware im BIOS oder im UEFI keine Bedrohung darstellt."). This statement is rather surprising, as it contradicts to: - Past and current opinion of the research community (see [6] or [7]) - The view of a notable privacy project also relying on a secure boot medium in untrustworthy hardware (Tails: https://tails.boum.org/doc/about/warning/index.en.html) - Statements by Intel (e.g. https://firmware.intel.com/sites/default/files/STM_User_Guide-001.pdf) To validate the vendor statement, we decided to modify an open-source UEFI backdoor from https://github.com/Cr4sh/SmmBackdoor. We added a very simple memory replacement strategy, which allows to portably extract IPsec keys and transmit them over the Internet. The result are about 600 lines of C code, which we could install in our MSI Z170A GAMING M7 motherboard from an administrative account in the host OS (an unmodified Windows). To do so we simply downloaded a current UEFI from the MSI website, modified it using https://github.com/LongSoft/UEFITool, and "upgraded" using the official MSI tool chain. The approach is highly flexible and may be also deployed using targeted mails or a https://hakshop.com/products/usb-rubber-ducky-deluxe) (see video. As expected, the Ecos SBS cannot protect against the extraction of key material residing in the memory of an untrusted PC. We were able to extract IPsec keys from the "hardened" Linux kernel of the SBS and decrypt an encapsulated RDP session in real time. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/smmBackdoor.mp4 We can also show that it is possible to patch executables in an SBS on the fly. For demonstration purposes this has been the login process, but others are also possible. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/loginPatch.mp4 _Potential implications:_ - A firmware backdoor may modify any running OS, program, and user data on the fly and unnoticeable. - It may extract data, such as long-term and session keys, passphrases and PINs from memory and read storage devices. - It can bypass any host-local firewall rules to communicate gathered results to Internet hosts. All in all, no security goals may be accomplished if the hardware or the involved firmware is compromised. _Potential mitigation measures:_ Users must not plug an SBS into a device running untrusted hard- or software. 8. Constructed trust-chain does not suit operational needs Ecos advertises UEFI Secure Boot support of its stick to be a security feature. They furthermore state: In a "Chain-of Trust" bootloader, kernel and applications verify each other in a permanently repeating process ("In einer A>>Chain-of TrustA<< A1/4berprA1/4fen sich Bootloader, Kernel und Applikationen gegenseitig durch einen sich permanent wiederholenden Prozess."). Already the previous two findings indicate that it is not the BIOS/UEFI that needs to verify integrity and authenticity of the booted OS, but the booted OS must verify that it started in an authentic environment. UEFI Secure Boot does simply not realize this security property. While there has been considerable effort by Ecos to realize the signature verification "top-down" from the UEFI, an attacker might just remove signature verifications in each component or replace them with own components, e.g. a vanilla Linux kernel. UEFI Secure Boot only effectively prevents the boot of such a modified system if all of the following conditions are met: - The UEFI and other hardware components are not compromised (see finding above). - The vendor has sovereignty over all UEFI keys and make sure their bootloader is the only one booting. Currently Microsoft owns the keys and allows signature of third-party bootloaders. Also their own bootloader is known to be vulnerable (see https://www.heise.de/security/meldung/Kardinalfehler-Microsoft-setzt-aus-Versehen-Secure-Boot-schachmatt-3291946.html). - The USB stick (or some other trusted instance) prevents to be booted on a system that is not protected by UEFI Secure Boot under the conditions above. The last condition implies that the stick must verify its surrounding somehow. The stick currently performs measurements of the booted kernel only (not the BIOS/UEFI nor the actually active bootloader). However, even this authentication happens only at two places; the process decrypting the OS image and configuration being the more sophisticated one. We concentrate at the robustness of this verification step in the following. An actual exploitation of the insufficient trust-chain will happen in finding 10. To access the encrypted parts on the SBS, an initial user-land process (the init binary contained in the Linux' initrd image on partition 4) measures kernel, stick and active user environment and uses this information to derive keying material. The system stops with a decryption failed error, if modifications have been made. Modification of the load chain, i.e. by starting other processes first, change the measurement, and modifications later in the boot chain are impossible as the following parts are encrypted. An attacker might decompile and reverse engineer the involved binaries, however there is a more convenient and flexible way: Recently, there have been advances in sandboxing environments, so we used https://usercorn.party to run the key derivation process and trap its system calls. Using this technique we can tightly control what the process sees and things that should be hidden from it, e.g. it is possible to give the signature verification a different image than the one being mounted later on etc. If no boot passphrase is set, this attack will allow the extraction of all secrets stored on the SBS. Note that some additional syscalls need to be mocked in usercorn to prevent premature termination. However, these do not need to provide any real functionality other than indicating successful execution to the caller and are therefore a straight forward addition. Furthermore, note that usercorn is not the only way to perform such a modification of the control flow. We see at least five other ways: 1. Modify syscall arguments in a custom Linux kernel, e.g., mark the process and if it wants to read the contents of /proc/keys give it some other file to read. 2. Modify syscall arguments using ptrace and seccomp during runtime. (https://github.com/alfonsosanchezbeato/ptrace-redirect) 3. Start the binary in a debugger and place breakpoints at each int 80h (i.e. syscall) instruction. Modify the contents of the registers that contain arguments to the syscall. 4. A string analysis of the init binary strongly suggests that it contains code under GPL, which would mean that all of its code needs to comply with GPL. In this case the vendor would be required to provide the full source code to its users, who may modify and redistribute it. If an attacker obtains the published code, he can build his own init binary with arbitrary changes. 5. An attacker may reverse engineer and change parts of the init binary's machine code directly in order to modify its behavior, e.g., to skip signature verifications or redirect file system access. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/offlineKeyExtraction.mp4 _Potential implications:_ - If no boot passphrase is set, this finding will allow an attacker to extract of all user configurations, including but not limited to private keys. - If a boot passphrase is set, the decryption will allow for an automatic offline brute-forcing of passphrases. If the passphrase is weak, the very same files may be extracted. - In either case, encryption keys of stick-specific configuration files and firmware images may be derived without booting the SBS. This is a prerequisite for exploitation of the following two findings. _Potential mitigation measures:_ - Enforce boot passphrases that are not susceptible to bruteforce attacks. AND - Users must ensure that they really boot from the plugged-in stick (turn off computer and enter BIOS to verify boot order before starting SBS), as a compromised OS may simply mock the Ecos environment using application layer emulation and the decrypted firmware to obtain cryptographic material to bruteforce the passphrase. AND - Use a stick with hardware support to make it read-only (see finding 10 for details) and use the stick only in read-write mode in fully trusted environments. 9. Remote root login in Ecos SBS Using the method sketched above, it is not only possible to extract the so called "firmware" image and user-specific configurations, but also a global configuration for the stick (residing in basedata/certs on the forth partition). This is always possible, even if a passphrase is set, and not known to the attacker. This folder contains (among others) an encrypted and signed shadow file. In our case it has the following content: root:$6$kD.Sv/YPnhZqNwXw$xHvghwrKESSS4inwjPRFt5UNgsLXRuuCtUUIP1.W7qK08NkBF.n/vT7iRpSH4hLB2aZ8iPtuNQ20mlVoEaNgk1:10091:0:99999:7::: setup:*:12101:0:99999:7::: remotesetup:*:12101:0:99999:7::: RUNPUyBUZWNobm9sb2d5IEdtYkg6IGNvbmYtc2lnbtlpePrdaFQhGVMzvKCum1Se8f8kAQAytCKRbYYaeiWywek18P0AAJ43Yhy/VUvpMUBdRom8Wd/WISBXe23ZqumopgwNDglYvcSm28AK+tufQxcX8P4MspVLuI07CH9CGLmPqgzffP0gqpPFbSsEGtBiCX/9h5epu7ARnGfKst/2uWLLSvXidcKqht2A6f38QxNO7MGxrKZ5wDOkqTnJx3nxjKFfN5Rpmlyz7gLo8s+VscAPqf6if8QzH6rksRHRAKFzPGcCtVKExNA5dxURNFGU10NUtuZUE5ZbawLSfhbxNenLBf3bAMLdKNxIPVZsJhPUEvHJntyK73Dype5o3JXiLmiPo/GSXmp31NCl50cAyvNFyIYpAQYBHxQAAAAAAAECfk1vZHVsZSBzaWduYXR1cmUgYXBwZW5kZWR+Cg== The base64-encoded signature points to Ecos, i.e., it is not generated by the management appliance. A shadow file is already present on sticks that come directly from the vendor, and that have not been enrolled. This indicates the possibility for another undocumented root login, not only to the management appliance, but also to sticks itself. We have verified this login to work remotely over SSH in another finding below. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/sbsRootAccess.mp4 _Potential implications:_ - The vendor has the possibility to use the root account as backdoor and log into SBS when it is active. - The vendor may access files on the private hard drive of the PC (Vendor statement: No access to private photos and mails, "Schutz vor Zugriff auf private Fotos und E-Mails"). Nevertheless, the operating system kernel contains an NTFS driver, which may be used by a remotely logged-in root user. - The vendor may download private configuration, e.g. private keys and passwords. - The vendor may modify existing configurations, e.g. switch to an insecure encryption scheme. - If the vendor should ever have a security problem itself, e.g. an disloyal employee or compromised software, other parties might use this backdoor. - If the same password is used for all customers: - An attacker might brute-force the root account and use the backdoor in other installations. - If the password is ever used, a fake SSH service might record it and make it available to third parties. _Potential mitigation measures:_ Users must not use the SBS in scenarios where a remote SSH access is possible, e.g. the open Internet without an external firewall that supresses incoming SSH connections. 10. Content on SBS may be maliciously modified Vendor statement: Write protected partition for firmware and applications ("SchreibgeschA1/4tzte Partition fA1/4r Firmware und Applikationen") Thus, a more technically correct statement would be that unauthorized writes will be detected, e.g. by verifying signatures. However, also this more relaxed statement is not always kept, as we discuss with the help the following three scenarios. Replacing the SBS completely As the SBS is a "normal" USB mass storage device, a compromised OS may simply overwrite the whole stick with malicious content. For example, it could place a minimal OS on the stick, which instantly infects any host operating system, e.g. a Windows. Afterwards it could show an Ecos SBS logo and an error message, e.g. "Your PC is unsupported, please plug the SBS in a different one". Using this approach an attacker could try to spread his malware from a users home PC to others inside the company network. Hijacking the root login As mentioned above, the so-called "firmware", i.e. the main OS of the SBS, is protected by a signature. However, the configuration is only protected by an authentication code. Hence, we can use the keys obtained for decryption (see finding 8) to also modify the content of the configuration; possibly without being noticed. Note, that there are two configurations: one being specific to one of the boot configurations and one being stick specific. Only the first one is protected by the boot passphrase. Therefore, an attacker may modify the stick-specific configuration _without_ knowing the boot passphrase. Using the knowledge from the finding 8 we can modify the shadow file to set a custom password. There is an obstacle to avoid: use the old crypt method to create the shadow file and make sure there is an update.conf file, which seems to be present on some sticks only. It contains the following data: reltype=V5.6.5 bbtype=mthc fn1=ca.crt fn2=base.pem fn3=runtime.pem fn4=shadow fn5=my.pem force-reltype=1 After this modification an attacker may access the stick via SSH regardless on which computer it is booted from (given a network connection). Over the SSH session he may obtain long- and short-term secrets, access the "private" hard drive of the user (remember the SBS even contains an NTFS driver for this) or modify the user's SBS configuration. Furthermore, the "hardened" OS contains a tool to create screenshots of the active session (xwd) and even a VNC server, so that it is possible to monitor the session in real time or even interact. The passive monitoring is not indicated to the SBS user, unless the attacker chooses to do so. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/stickMod1.mp4 Modifying executables in the SBS Even without the exploitation of the weakly protected part of the configuration, it is possible to modify a stick in a way, such that signature checks are completely removed and a backdoor is implanted, which infects user OSes and spreads over SBS, for example. To do so, the initial static signature checks of the stick may be evaded by installing a custom bootloader (using the Ecos theme) and kernel, as well as an init-Stage with a slightly modified control flow. See finding 8 for different ways to influence the control flow. Ecos states: If a modification is detected, the stick shuts itself down. A manipulation of the stick, no matter if running or in power-cycled state, is therefore effectively prevented. ("Wird eine Manipulation erkannt, schaltet sich der Stick sofort ab. Eine Manipulation des Sticks, egal ob im laufenden Betrieb oder im ausgeschalteten Zustand, wird so wirkungsvoll verhindert.") However, we found it rather difficult to trigger this security monitoring, which seems to be based on whitelists. It seems only few files are monitored, e.g. out of the 663 files in the /bin directory of the hardened operating system, we found only a handful being supervised. Hence, it is rather simple to evade this protection mechanism. In our case we simply replaced /bin/insmod in the root partition of the Ecos OS, as it is called on a regular basis and not protected by the above means. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/stickMod2.mp4 Discussion of malicious modification _Potential implications:_ The implications of this finding heavily depend on the scenario of attack and attacker sophistication. Main threats are: - The attacker might use the SBS to spread malware from host to host; possibly infecting other SBSes. - While doing so he may exfiltrate private data stored on the PCs as well as credentials and configurations stored on the stick (despite a potentially strong boot passphrase). - When modifying the init process, he may capture the boot passphrase (if he should need it somewhere else, as the configuration is available in decrypted form) or smart card PIN. - If a smartcard is used, the attacker may make use of it as long as the SBS is active. - The attacker may disable any SBS-internal firewall. - The attacker may trigger communication from the compromised SBS, e.g. to contact a command and control server. - Depending on the abilities of the attacker, all of these attacks may be concealed, i.e. the user will not be able to recognize it as the functional aspects of SBS still continue to work correctly. _Potential mitigation measures:_ Users must not plug an SBS into a device running untrusted hard- or software. Do not use the stick in multiple PCs to prevent a spreading of malware via the SBS itself. 3. Conclusion This document presented various weaknesses in the Ecos SBS and its management platform. We concentrated our analysis on the boot process and the Easy Enrollment feature. Nevertheless we found many of the security statements communicated by the website and brochures to be violated, among others: - The usage of the stick does not leave traces. It is hence ruled out that conclusions on connection or working data may be drawn. ("Die Nutzung des Sticks hinterlA$?sst keinerlei Spuren, womit es ausgeschlossen ist RA1/4ckschlA1/4sse auf Verbindungsdaten oder Arbeitsdaten zu nehmen.", finding 4) - Certificate paired with the hardware ID of the stick ("Zertifikat, gekoppelt an die Hardware-ID des Sticks", finding 5) - Before execution of the firmware a check is performed, to determine if the stick was booted in a virtual machine. This prevents that security measures of the stick are undermined and, for example, a keylogger or Trojan on the host records screen content or keyboard strokes. ("Vor AusfA1/4hrung der Firmware erfolgt eine PrA1/4fung, ob der Stick in einer virtuellen Maschine gebootet wurde. Dies verhindert, dass die SchutzmaAnahmen des Sticks unterlaufen werden und beispielsweise ein Keylogger oder Trojaner auf dem Hostsystem Bildschirminhalte oder TastaturanschlA$?ge protokolliert.", finding 6) - Creating, saving, printing or forwarding screen captures is prevented by a secure access solution, ("Das Erstellen, Abspeichern, Drucken oder Weiterleiten von Bildschirmkopien wird A1/4ber eine sichere ZugangslAPsung verhindert.", finding 6 and 9) - ECOS SECURE LINUX takes control of the connected periphery, so that even malicious software residing in BIOS or UEFI does not pose a thread ("ZusA$?tzlich A1/4bernimmt das ECOS SECURE LINUX die Hoheit A1/4ber die angeschlossene Peripherie, so dass selbst eine Schadsoftware im BIOS oder im UEFI keine Bedrohung darstellt.", finding 7). - In a "Chain-of Trust" bootloader, kernel and applications verify each other in a permanently repeating process ("In einer A>>Chain-of TrustA<< A1/4berprA1/4fen sich Bootloader, Kernel und Applikationen gegenseitig durch einen sich permanent wiederholenden Prozess.", finding 8 and 10). - No access to private photos and mails ("Schutz vor Zugriff auf private Fotos und E-Mails", finding 9 and 10) - Write protected partition for firmware and applications ("SchreibgeschA1/4tzte Partition fA1/4r Firmware und Applikationen", finding 10) - A manipulation of the stick, no matter if running or in power-cycled state, is therefore effectively prevented. ("Wird eine Manipulation erkannt, schaltet sich der Stick sofort ab. Eine Manipulation des Sticks, egal ob im laufenden Betrieb oder im ausgeschalteten Zustand, wird so wirkungsvoll verhindert.", finding 10) Additionally, we found potential vendor backdoors, a man-in-the-middle vulnerability and the possibility to mirror the internal management database, containing all private keys of associated sticks. While some of the findings may be results of sloppiness, e.g. having enabled root logins or being able to download all private keys, most of them are based on conceptual mistakes. Out of these, the [SE] and [SX] version of the stick might mitigate finding 5 if used with a smartcard. However, the root causes of findings 4, 6, 7 & 8 lay within limitations of the current x86 platform. We do not believe they can be fixed, without requiring additional hardware capabilities or trustworthy hardware all together. In macroscopic scale our findings are also rather interesting, as they emphasize the low value of IT security tests, when introducing a new product in a company. Most of the reference companies and authorities cited by Ecos claimed that they have done internal or external tests to validate the security of the product. The testimonials imply that no severe security issues have been found at all. We invested about a month besides our main projects for the above findings. Most likely a pentester, with less resources, can simply not surpass the multiple layers of cryptographic obfuscation. Even our less constrained time schedule did not allow a full coverage of the attack vectors the SBS approach offers. It is particularly alarming that some of the vendor claims contradict to common opinions of security experts -- apparently with causing significant suspicion. Most prominently: - The detection of virtualized environment cannot be guaranteed. - Current firmwares (EFI but also Intel ME and others) must not be considered secure. - USB devices must not be trusted (see [8] for further ways of exploitation). Furthermore, already the basic BSI IT-Grundschutz contains in section M4.63 the requirement "The telecommuting computer should provide a boot protection mechanism to prevent booting from removable data media, e.g. from DVDs or USB sticks, without authorisation." However, there are no hardware mechanisms to ensure that only authentic sticks can be boot, yet Ecos claims conformance to M4.63. 4. Credits Findings discovered and exploited by Robert Lasch, Franz Girlich and Michael Rossberg (in no particular order). Guenter Schaefer served as scientific advisor[1]. Please contact Michael Rossberg via michael [dot] rossberg [at] tu [dash] ilmenau [dot] de for questions or comments. GPG fingerprint: FD9B 425C 8DE5 69D6 77ED 52C2 CC00 C314 0337 76C9 5. Disclosure Timeline - 13/04/2018 - Vendor informed - 30/04/2018 - BSI allows usage of [SX] and [SE] variants of the stick for VS-NfD data (i.e. Germany national level: Confidential) - 13/06/2018 - Disclosure 6. References [1] J. Bauer, M. Gruhn, and F. C. Freiling, aLest we forget: Cold-boot attacks on scrambled DDR3 memory,a _Digital Investigation_, vol. 16, pp. S65aS74, 2016. [2] S. F. Yitbarek, M. T. Aga, R. Das, and T. Austin, aCold boot attacks are still hot: Security analysis of memory scramblers in modern processors,a in _High performance computer architecture (HPCA), 2017 IEEE international symposium on_, 2017, pp. 313a324. [3] G. Ravago, aReverse engineering a USB flash drive.a 2015. [4] A. Sergeev, V. Minchenkov, and V. Bashun, aMalicious hypervisor and hidden virtualization of operation systems,a in _Application of information and communication technologies (AICT), 2015 9th international conference on_, 2015, pp. 178a182. [5] J. Rutkowska, aIntroducing blue pill,a _The official blog of the invisiblethings.org_, vol. 22, p. 23, 2006. [6] S. Embleton and S. Sparks, aSMM rootkits,a in _Proceedings of the 4th International Conference on Security and Privacy in Communication Networks, Securecomm_, 2008, vol. 8. [7] J. Rutkowska, aIntel x86 considered harmful,a _the Invisible Things Lab_, 2015. [8] K. Nohl and J. Lell, aBadUSB a on accessories that turn evil,a _Black Hat USA_, 2014. [1] Disclaimer for reasons of transparency: Guenter Schaefer is primarily serving as full professor at Technische UniversitA$?t Ilmenau. Furthermore, he is also member of the supervisory board of secunet Security Networks AG. ========= GERMAN VERSION ============== SICHERHEITSHINWEIS MEHRERE SICHERHEITSLACKEN IN ECOS SECURE BOOT STICK (SBS) - Software: Ecos Secure Boot Stick - Version: Stick Version 5.6.5, System Management Version 5.2.68 - Status: Hersteller informiert - VerAPffentlicht am: 13.06.2018 Die aktuellste Version des Dokuments ist unter https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/advisory-de.html erhA$?ltlich. 1. Aberblick Der Ecos Secure Boot Stick soll auch aus unsicheren Umgebungen heraus einen sicheren Zugriff auf Terminalserver und Webservices bieten. Dazu wird in einem herkAPmmlichen PC, A1/4ber den keine speziellen Annahmen getroffen werden, vom USB-Stick ein Betriebssystem gebootet. Der Hersteller schreibt: "Der ECOS SECURE BOOT STICK ermAPglicht einen hochsicheren Zugang zu einer Terminalserver- oder Virtual-Desktop-Infrastruktur und Webanwendungen aus einer gesicherten Umgebung heraus." Referenzkunden sind deutsche BehAPrden, Banken, Versicherungen und KrankenhA$?user. Die Zahlen auf der Webseite lassen darauf schlieAen, dass einige Tausend SBS im Umlauf sind. Dieses Dokument beschreibt eine Reihe von Schwachstellen, die bei einer Sicherheitsuntersuchung des Boot Sticks und der dazugehAPrigen Management Appliance entdeckt wurden. Alle gefundenen Schwachstellen fA1/4hren zu einem Versagen von herstellerseitigen Sicherheitsaussagen oder allgemein akzeptierten Sicherheitszielen. Typischerweise bedeutet dies den unautorisierten Zugriff eines kompromittierten Hosts oder einer dritten Partei auf private Daten oder kryptographisches SchlA1/4sselmaterial. Hinweis: Es werden keine Aussagen zur VollstA$?ndigkeit der Analyse gegeben. Insbesondere kAPnnen mAPglicherweise andere Schwachstellen existieren, die ein hAPheres Risiko darstellen. Es wurde unsererseits weder eine systematische Bedrohungsanalyse durchgefA1/4hrt, noch wurden Sicherheitsanforderungen abgeleitet. Stattdessen wird A1/4ber die vom Hersteller formulierten Sicherheitsaussagen und -maAnahmen sowie allgemein anerkannte Prinzipien (beispielsweise sollten private SchlA1/4ssel nicht auslesbar sein) argumentiert. In der Zwischenzeit wurden neue [SE]- und [SX]-Versionen des Produktes auf den Markt gebracht und durch das Bundesamt fA1/4r Sicherheit in der Informationstechnik zum Schutz von VS-NfD-Daten zugelassen. Diese beiden Versionen standen uns fA1/4r Tests nicht zur VerfA1/4gung. Aus diesem Grund kAPnnen wir keine Aussage darA1/4ber treffen, ob die in diesem Dokument beschriebenen Schwachstellen auch bei den beiden zugelassenen Produktvarianten zutreffen -- es kann aber auf Basis unseres Erkenntnisstandes auch nicht ausgeschlossen werden. Das BSI kann eine Zulassung auch an (in der Regel nicht-APffentliche) Bedingungen knA1/4pfen, die Risiken mitigieren. 2. Beschreibung der Schwachstellen und mAPgliche GegenmaAnahmen 1. Aktivierter root-Nutzer mit SSH-Zugang im Ecos System Management Die System Management Appliance enthA$?lt einen aktivierten root-Nutzer, dem SSH-Zugang erlaubt wird. Die Passwortdatei /etc/shadow zeigt auAerdem, dass ein Passwort fA1/4r den Nutzer gesetzt ist. Die Datei selbst wird wA$?hrend der Installation der Appliance von einem Ecos-Server heruntergeladen. Somit kontrolliert Ecos das Passwort fA1/4r den administrativen Zugang. MAPglicherweise werden hierbei von Ecos fA1/4r unterschiedliche Kunden verschiedene PasswAPrter gesetzt, da in die Download-Anfrage der LizenzschlA1/4ssel eingeht. Die in unserem Setup installierte shadow-Datei hat den folgenden Inhalt (die letzte Zeile ist eine base64-kodierte Signatur von Ecos): root:$6$ys8MpGD8fzOj1CMa$8S5YZ2UasC5IVMOoshDevPYeGEfxe/t.WUYL1nOHzR6g38VQmUO6t5vLsNQvk1thPJhTygDsvUyd9tfbJz5ib.:10091:0:99999:7::: setup:*:12101:0:99999:7::: remotesetup:*:12101:0:99999:7::: RUNPUyBUZWNobm9sb2d5IEdtYkg6IGNvbmYtc2lnbtlpePrdaFQhGVMzvKCum1Se8f8kAQBUo7BcQAy9GeRSx2+cRPHJPzSg792pvZ4Ib5RYVbb6GOJdO92mrdFN4JwQhcb5unnmJLa9GX3XpBC2Ujh8AmZsBW2Q06h0ka0qfxJMkcmRDZ3LxOU/GjG/vGnyiymlk1g8iUdYf6u7NNZ0HVoz1HC8dQdZgcH1J5cHnOFGgVl4oak207tnUpgziAwSkALddZHR0jJ7sNiNlboIMToqPmM2lxYJulRCzWcplFoiHkvhEZos0m1TI9NnEA+nlp38cSWBf5lOytN10eeVnaov+uGAp2Xl22avmZmOz6c0K4TttTKGdi1+i2/Tzgs3Jhwegn3b4fNrvp5iB8/umBsYR3i2AQYBHxQAAAAAAAECfk1vZHVsZSBzaWduYXR1cmUgYXBwZW5kZWR+Cg== _Schritte zur ReAkaApiAtuAlaAtiAon:_ a. Installation des Ecos System Management in einer virtuellen Maschine b. Affnen des Festplatten-Images in einem externen Betriebssystem c. AberprA1/4fung, dass die Datei /usr/msrc/certs/shadow.new existiert und einen Hash fA1/4r das Passwort des root-Nutzer enthA$?lt d. Setzen des Passwort-Hashes fA1/4r den root-Nutzer in /etc/shadow auf einen selbstbestimmten Wert e. Booten der Appliance f. SSH-Login mit dem neu gesetzten Passwort _Potentielle Implikationen:_ - Der Hersteller hat die MAPglichkeit den root-Nutzer als HintertA1/4r zu verwenden und kann sich bei direkter NetzkonnektivitA$?t jederzeit in die Appliance einloggen. - Der Hersteller kann geheime Konfigurationsparameter, wie private SchlA1/4ssel und PasswAPrter, abrufen. - Der Hersteller kann sicherheitskritische Konfigurationsparameter verA$?ndern, etwa ein unsicheres VerschlA1/4sselungsschema aktivieren oder VNC-Logins auf den SBS aktivieren. - Falls der Hersteller jemals selbst von einem Sicherheitsproblem betroffen sein sollte, beispielsweise durch einen gekA1/4ndigten Mitarbeiter oder eine Software-Schwachstelle, kAPnnten weitere Parteien das Passwort erhalten. - Falls dasselbe Passwort fA1/4r alle Kunden der Appliance verwendet wird: - Ein Angreifer kAPnnte durch einen Brute-Force-Angriff Kenntnis des Passworts erhalten und Zugriff auf andere Installationen erhalten. - Falls das Passwort je verwendet werden sollte, kAPnnte es durch einen Man-in-the-Middle-Angriff in die HA$?nde eines Angreifers gelangen, der es fA1/4r eigene Zwecke missbrauchen kann. _MAPgliche GegenmaAnahmen:_ Ein Angriff kann durch einen der folgenden Schritte verhindert werden: - Das Passwort kann durch ein extern gebootetes System geA$?ndert werden. Dieser Schritt erfordert unter UmstA$?nden die Abschaltung des Update-Systems, um sicher zu stellen, dass diese Anderung nicht rA1/4ckgA$?ngig gemacht wird. - Der Zugriff durch den Nutzer "root" kann in der sshd_config deaktiviert werden. - Der Zugriff auf das Ecos System Management kann durch eine externe Firewall fA1/4r Port 22 unterbunden werden. Der SSH-Prozess auf Port 909 scheint den Zugriff durch "root" bereits deaktiviert zu haben. 2. Easy Enrollment empfA$?nglich fA1/4r Man-in-the-Middle-Angriffe Das Easy Enrollment erlaubt es Nutzern ihren SBS (im Auslieferungszustand) A1/4ber das Internet mit dem Management zu koppeln und zu initialisieren. Die Authentisierung erfolgt mithilfe eines "Activation Code" und einer "Passphrase", die aus sechs Ziffern besteht. Diese initiale Inbetriebnahme erfolgt technisch durch das Kopieren der Konfigurationsparameter von der zentralen Management Appliance, deren IP-Adresse in den Activation Code kodiert ist. Um sich gegenA1/4ber dem Management zu authentisieren, baut der SBS eine SSH-Verbindung auf Port 909 auf. Hierzu wird das SSH-Password-Authentisierungschema benutzt, wobei der Nutzername und das Passwort sich direkt aus Activation Code und Passphrase ergeben. Da der kryptographische Fingerprint des SSH Servers _nicht_ A1/4berprA1/4ft wird, kAPnnen Activation Code und Passphrase durch einen einfachen Man-in-the-Middle-Angriff abgefangen werden. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/enrollmentMITM.mp4 _Potentielle Implikationen:_ - Ein Angreifer kann jegliche Aktion ausfA1/4hren, die auch bei einem legitimen Enrollment geschieht. Er kann den Prozess auch jederzeit abbrechen, um den Code aktiviert zu lassen. Der Angriff kann transparent fA1/4r den Nutzer erfolgen. - Der SBS des Nutzers kann durch den Angreifer impersonifiziert werden. _MAPgliche GegenmaAnahmen:_ Easy Enrollment darf nur innerhalb von vertrauenswA1/4rdigen Netzen durchgefA1/4hrt werden. Beim Einsatz von Smartcards kAPnnte das Easy Enrollment von diesem Angriff nicht betroffen sein, da die Smartcard-Initialisierung in einem separaten Offline-Schritt erfolgt. Wir haben dies jedoch nicht verifiziert. 3. Easy Enrollment erlaubt die Extraktion beliebiger Nutzerkonfigurationen Nach dem der Easy-Enrollment-Prozess einen SSH-Tunnel aufgebaut hat, sendet der SBS darA1/4ber eine Reihe von HTTP-Anfragen an den Server. Die Antworten enthalten alle Dateien, die fA1/4r ein initiales Bootstrapping erforderlich sind, beispielsweise private und APffentliche SSH-SchlA1/4ssel des SBS. Diese werden fA1/4r spA$?tere SSH-Verbindungen verwendet. Nach Abschluss des initialen Downloads wird der Activation Code aus der Datenbank gelAPscht. Ein Angreifer kann einen Activation Code jedoch auch fA1/4r beliebige SSH-Port-Weiterleitungen auf dem Management benutzen. Dadurch ist es ihm mAPglich sich auf Ports zu verbinden, die durch Binden an 127.0.0.1 ausschlieAlich innerhalb des Managements zur VerfA1/4gung stehen sollten. Die zentrale CouchDB des Managements akzeptiert Anfragen auf Port 5984 und kann dazu gebracht werden die Nutzerkonfigurationen _beliebiger_ Sticks und Nutzer auszugeben. ZusA$?tzlich muss der Angreifer den Activation Code nicht lAPschen, sodass der Angriff unbemerkt geschehen kann. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/enrollmentKeyExtraction.mp4 _Potentielle Implikationen:_ - Ein Angreifer, der Zugriff auf einen gA1/4ltigen Activation Code erhA$?lt (Passphrase bietet durch geringe Entropie keinen Schutz) oder der einen erfolgreichen Man-in-the-Middle-Angriff durchgefA1/4hrt hat, kann die privaten SchlA1/4ssel _aller_ Nutzer kompromittieren. - Der Angreifer kann die Management Datenbank verA$?ndern und etwa einen VNC-Server mit schwachem Passwort auf einigen SBS aktivieren. - MAPglicherweise kAPnnen weitere private Dienste oder gar andere Hosts zugA$?nglich sein (wurde unsererseits nicht nA$?her untersucht). _MAPgliche GegenmaAnahmen:_ Easy Enrollment darf nur innerhalb von vertrauenswA1/4rdigen Netzen durchgefA1/4hrt werden (insbesondere nicht A1/4ber das Internet), beispielsweise durch Blockieren von Port 909 (mit Seiteneffekten, da auch andere Management-Komponenten erreichbar sind). 4. SchlA1/4sselmaterial zugreifbar nach Hardware-Reset von SBS Ecos erklA$?rt: "Die Nutzung des Sticks hinterlA$?sst keinerlei Spuren, womit es ausgeschlossen ist RA1/4ckschlA1/4sse auf Verbindungsdaten oder Arbeitsdaten zu nehmen." Trotz dieser Aussage verbleibt nach einem harten Neustart des PCs (z.B. durch BetA$?tigen des Reset-Knopfs) wA$?hrend der AusfA1/4hrung des SBS vertrauliches SchlA1/4sselmaterial im Speicher zurA1/4ck. Ein kompromittiertes Betriebssystem auf dem Hostrechner kann anschlieAend dieses SchlA1/4sselmaterial aus dem "uninitialisierten" Hauptspeicher lesen. Dies kann beispielsweise auch bei folgendem Arbeitsablauf passieren: Ein Nutzer resettet das OS eines Ecos SBS versehentlich, arbeitet weiter, fA$?hrt seine Ecos-SBS-Sitzung sauber herunter und bootet in ein kompromittiertes OS. Der Speicher der ersten (abgebrochenen) Ecos-Sitzung wird dabei nicht notwendigerweise vollstA$?ndig von der zweiten A1/4berschrieben. _Schritte zur Rekapitualtion:_ a. Abersetzen und installieren des _RAM imaging utility_ von https://github.com/dbrant/bios_memimage b. Reset wA$?hrend das Betriebssystem des Ecos SBS lA$?uft c. Extraktion von Langzeit- und SitzungsschlA1/4sseln aus dem erzeugten Speicherabbild. In AbhA$?ngigkeit von der verwendeten Hardware kann die Interpretation ein weiteres Descrambling erforderlich machen (siehe [1] und [2]). Das MSI Z170A GAMING M7 Mainboard, welches zu Demonstrationszwecken verwendet wurde, funktioniert ohne einen solchen Schritt. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/coldBoot.mp4 _Potentielle Implikationen:_ - Ein kompromittiertes Host-Betriebssystem (oder mit niedrigerer Wahrscheinlichkeit sogar Anwendungen) kann Zugriff auf SchlA1/4sselmaterial erhalten, welches durch den SBS gesichert werden sollte. Dies beinhaltet: - Private SchlA1/4ssel um Sticks gegenA1/4ber dem Management zu authentisieren - Private SchlA1/4ssel um Sticks gegenA1/4ber VPN-Konzentratoren oder Webseiten zu authentisieren - SitzungsschlA1/4ssel die beispielsweise VPN-Verbindungen oder Terminal-Server-Sitzungen schA1/4tzen - Symmetrische SchlA1/4ssel, welche die Stick-"Firmware" und Nutzerkonfiguration sichern - Angreifer kAPnnen dieses Szenario bewusst hervorrufen, um SchlA1/4sselmaterial aus dem Stick zu extrahieren - Angreifer kAPnnen die Nutzerkonfiguration aus dem Stick extrahieren oder diese auch manipulieren (siehe Schwachstellen 8 & 10). _MAPgliche GegenmaAnahmen:_ Nach einem Neustart mA1/4ssen Nutzer den PC vollstA$?ndig und fA1/4r mehrere Sekunden vom Strom trennen, um sicherzustellen, dass der Speicher seinen Zustand verloren hat. Bei Nutzung von A$?lteren RAM-Typen muss der PC unter UmstA$?nden eine lA$?ngere Zeit vom Strom getrennt werden. GerA$?te, die nicht sicher ausgeschaltet werden kAPnnen, etwa weil die Akkus nicht zu entfernen sind, sollten nicht verwendet werden. Langzeitgeheimnisse kAPnnen mAPglicherweise durch den Einsatz einer externen Smartcard besser geschA1/4tzt werden, wir haben diese Option jedoch nicht untersucht. 5. SBS kann geklont werden Der Hersteller bewirbt den Stick zur Nutzung als zweiten Authentisierungsfaktor, bei dem das Zertifikat an die Hardware-ID des Sticks gekoppelt wird (wAPrtlich "Zertifikat, gekoppelt an die Hardware-ID des Sticks"). Dies suggeriert, dass der Stick nicht durch einen Angreifer beziehungsweise kompromittierte Software geklont werden kann. Der SBS ist nicht ausreichend gegen ein Klonen geschA1/4tzt, da aktuelle Generationen von USB-Speicher-Sticks schlicht A1/4ber keine feste "Hardware-ID" verfA1/4gen. Ein Angreifer kann Parameter wie die Vendor- und Product-ID sowie die Seriennummern auf allgemein verfA1/4gbaren Speicher-Sticks frei A$?ndern [3]. Ein Angreifer beziehungsweise eine bAPsartige Software muss anschlieAend nur eine 1:1-Kopie des Sticks erstellen (zum Beispiel durch Nutzung von dd auf einem Unix-System). Anzumerken ist, dass hierzu kein physischer Zugang erforderlich ist. Alle erforderlichen Inhalte des Sticks kAPnnte A1/4ber das Internet A1/4bertragen werden, sobald der Stick in einen PC gesteckt wird auf dem eine kompromittierte Software aktiv ist. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/stickClone.mp4 _Potentielle Implikationen:_ - Sticks kAPnnen lokal oder entfernt dupliziert werden, sodass der Faktor "Besitz" umgangen wird. Dies kann vom Nutzer unbemerkt erfolgen. - Da die "Firmware" des Sticks nicht aktiviert wird, kann dies auch ohne Wissen des Bootkennworts erfolgen. - Angreifer kAPnnen "Backups" von bestimmten Stick-Konfigurationen erstellen und den entsprechenden Zustand wiederherstellen falls diese zentral verA$?ndert oder der SBS eingezogen wurde (beispielsweise nach Beendigung eines DienstverhA$?ltnisses). _MAPgliche GegenmaAnahmen:_ Nutzer sollten den SBS nicht in GerA$?ten verwenden, deren Hard- und Software nicht in vollen Umfang vertraut werden kann. Dies schlieAt mAPglicherweise kompromittiertes USB-Equipment, wie Hubs, mit ein. Die Nutzung eines anderen zweiten Faktors, wie einer Smartcard sollte das Problem beheben, dies wurde im Rahmen der Analyse jedoch nicht nA$?her untersucht. Starke BootpasswAPrter kAPnnen den "ersten Faktor" stA$?rken, sodass der physische Besitz des Sticks weniger relevant fA1/4r das Erreichen des angestrebten Sicherheitsniveaus ist. Das Sperren von Nutzerzertifikaten an zentralen Punkten (VPN-Konzentratoren, Terminal-Server oder internen Webseiten) ist einem Einziehen des SBS als SicherheitsmaAnahme vorzuziehen. 6. SBS kann in virtueller Maschine verwendet werden ErklA$?rung des Herstellers: "Vor AusfA1/4hrung der Firmware erfolgt eine PrA1/4fung, ob der Stick in einer virtuellen Maschine gebootet wurde. Dies verhindert, dass die SchutzmaAnahmen des Sticks unterlaufen werden und beispielsweise ein Keylogger oder Trojaner auf dem Hostsystem Bildschirminhalte oder TastaturanschlA$?ge protokolliert." Die Entwicklung guter Erkennungsstrategien einerseits und die Verbesserung von VMs zur Vermeidung einer solchen Erkennung andererseits ist ein fortwA$?hrender Wettlauf -- unter anderem zwischen Virenautoren und Antivirusherstellen. Aus theoretischer Sicht ist eine Erkennung einer virtualisierten Umgebung nicht unter allen UmstA$?nden zu garantieren. Allerdings kann es aus praktischer Sicht vergleichsweise schwierig sein eine solche Virtualisierungsumgebung zu implementieren (siehe z.B. [4]). Dies fA1/4hrt zur Frage wie sich die SchutzmaAnahmen des SBS in diesem Spannungsfeld einordnen. Fehlermeldungen wA$?hrend des Bootvorgangs deuten darauf hin, dass die Erkennung ein Teil der kryptographischen Schutzmechanismen ist. Zeichenketten in der verantwortlichen Executable zeigen verblA1/4ffende Ahnlichkeiten zur Virtualisierungserkennung von systemd (der GPL-Code kann im https://github.com/systemd/systemd/blob/master/src/basic/virt.c) eingesehen werden. Allerdings wurde die Erkennung von systemd nie entwickelt, um gegen bAPsartige Angriffe zu bestehen, so dass es nicht A1/4berrascht, dass ein unmodifiziertes KVM einfach instruiert werden kann einen SBS in einer VM zu booten. Es genA1/4gt folgendes Kommando: kvm -m 2048 \ -cpu host,kvm=off,-hypervisor \ -usb -device usb-ehci,id=ehci \ -device usb-host,bus=ehci.0,vendorid=0x8564,productid=0x1000 \ -smbios 'type=0,vendor=' -smbios 'type=1,manufacturer=,product=' Falls ein Angreifer keinen physischen Zugang zu einem Stick haben sollte, sondern nur ein Image (beispielsweise von einem kompromittierten Rechner), kann er durch einen simplen Patch von QEMU den gleichen Ansatz verwenden. Blaupausen sind im https://lists.gnu.org/archive/html/qemu-discuss/2015-07/msg00072.html. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/virtualization.mp4 _Potentielle Implikationen:_ Es existieren zwei Szenarien in denen die Schwachstelle zu einem erfolgreichen Angriff fA1/4hren kann: 1. Ein legitimer Benutzer virtualisiert eigeninitiativ, etwa aus Bequemlichkeit oder weil er ein Bildschirmfoto machen mAPchte. Gerade Letzteres sollte laut Herstelleraussage unmAPglich sein: "Das Erstellen, Abspeichern, Drucken oder Weiterleiten von Bildschirmkopien wird A1/4ber eine sichere ZugangslAPsung verhindert." 2. Der Nutzer weiA nicht, dass sein System virtualisiert betrieben wird. Wie bereits vor mehr als 10 Jahren demonstriert wurde, ist es bAPsartiger Software mAPglich, dass eigentliche Betriebssystem in einer VM auszufA1/4hren, um die eigene Anwesenheit zu verbergen [5]. Auch fA1/4r einen dediziert gebooteten SBS sind verschiedene nutzertransparente Virtualisierungsangriffe denkbar. Beispiele sind: - Ein kompromittiertes Betriebssystem verA$?ndert im UEFI NVRAM die Bootreihenfolge (offizielle API-Funktion). Es stellt auf diese Weise sicher, dass das Booten vom USB-Stick deaktiviert wird. Falls beim Booten ein Ecos-Stick detektiert wird, fA$?hrt es den Stick in einer VM hoch. - Ein kompromittiertes Betriebssystem rebootet den PC nicht nach Nutzeranweisung. Stattdessen wird ein kurzes Video mit BIOS-Ausgaben gezeigt und der SBS in einer virtuellen Maschine gestartet. - Eine bAPsartige Software modifiziert den SBS, sodass er immer in einer VM bootet (siehe Schwachstelle 10, warum dies mAPglich ist). Ein virtualisiertes Ecos-SBS-System kann jederzeit vollstA$?ndig A1/4berwacht und modifiziert werden. Das bedeutet ein Angreifer ist in der Lage: - Nutzerverhalten, Sitzung-, LangzeitschlA1/4ssel, PINs und PasswAPrter aufzuzeichnen. Das heiAt der Angreifer kontrolliert _beide_ Teile der Zweifaktorauthentisierung. - Er kann laufende Programme, das SBS-Betriebssystem und involvierte Daten verA$?ndern. - Alle extrahierten Daten kAPnnen unter Umgehung der SBS-eigenen Firewall A1/4ber das Netzwerk versendet werden, sodass ein Angreifer keinen physischen Zugang benAPtigt. Zusammenfassend kAPnnen keinerlei Sicherheitsziele garantiert werden, falls Virtualisierungsangriffe nicht effektiv verhindert werden kAPnnen. _MAPgliche GegenmaAnahmen:_ Nutzer dA1/4rfen den SBS nicht in GerA$?te einstecken, die unvertrauenswA1/4rdige Hard- oder Software enthalten kAPnnten. Administratoren mA1/4ssen sich bewusst sein, dass Nutzer Virtualisierung verwenden, um ihre Sticks zu betreiben. Falls den Nutzern nicht vollstA$?ndig vertraut werden kann, kann der SBS nicht sicher eingesetzt werden. 7. SBS ist anfA$?llig fA1/4r HintertA1/4ren in Firmwares der Hardware Der Hersteller erklA$?rt: "ZusA$?tzlich A1/4bernimmt das ECOS SECURE LINUX die Hoheit A1/4ber die angeschlossene Peripherie, so dass selbst eine Schadsoftware im BIOS oder im UEFI keine Bedrohung darstellt." Diese Aussage ist recht A1/4berraschend, denn sie widerspricht: - FrA1/4heren und aktuellen Aussagen der Forschungsgemeinschaft (siehe [6] oder [7]) - Der Ansicht eines angesehenen Anonymisierungsprojektes, welches ebenfalls auf ein sicheres Bootmedium setzt (Tails: https://tails.boum.org/doc/about/warning/index.en.html) - Aussagen von Intel (z.B. https://firmware.intel.com/sites/default/files/STM_User_Guide-001.pdf) Um die Herstelleraussage zu validieren, wurde eine freiverfA1/4gbare UEFI-HintertA1/4r von https://github.com/Cr4sh/SmmBackdoor leicht modifiziert. So wurde beispielsweise eine einfache Speicherersetzungsstrategie implementiert, die es erlaubt IPsec-SitzungsschlA1/4ssel auf portable Art und Weise zu extrahieren und A1/4ber das Internet zu versenden. Das Resultat ist ein circa 600 Zeilen C-Code umfassendes EFI-Modul, welchen in einem MSI Z170A GAMING M7 Motherboard installiert wurde. Dazu genA1/4gt das AusfA1/4hren einer Datei mit einem Administrator-Account in einer unmodifizierten Windows-Installation. DafA1/4r wurde ein aktuelles UEFI von der offiziellen MSI-Webseite bezogen, mittels eines https://github.com/LongSoft/UEFITool modifiziert und anschlieAend mit dem offiziellen MSI BIOS Upgrade Tool aufgespielt. Der Ansatz ist hochgradig flexibel, da das verA$?nderte UEFI beispielsweise A1/4ber gezielte Mails oder einen https://hakshop.com/products/usb-rubber-ducky-deluxe) (siehe Video injiziert werden kann. Wie zu erwarten, kann der Ecos SBS die Extraktion des SchlA1/4sselmaterials nicht verhindern. Ein Angreifer ist in der Lage, IPsec-SchlA1/4ssel auszuleiten und eine gekapselte RDP-Session in Echtzeit abzuhAPren. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/smmBackdoor.mp4 Durch Speichermanipulationen ist es ebenfalls mAPglich, Programmcode im SBS zur Laufzeit zu verA$?ndern. Zur Demonstration wurde der login-Prozess verA$?ndert, sodass er eine Root-Shell APffnet. Andere VerA$?nderungen sind selbstverstA$?ndlich ebenfalls mAPglich. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/loginPatch.mp4 _Potentielle Implikationen:_ - Eine manipulierte PC-Firmware kann jegliche laufenden Betriebssysteme, Programme und Nutzerdaten in Echtzeit verA$?ndern ohne dass dies durch eine Software festgestellt werden kann. - Es kAPnnen Daten, wie Sitzungs-, LangzeitschlA1/4ssel, PasswAPrter und PINs aus Haupt- und Massenspeichern gelesen werden. - Jegliche Art einer lokalen Firewall kann umgangen werden, um Informationen A1/4ber das Netz zu senden. Zusammenfassend kAPnnen keinerlei Sicherheitsziele garantiert werden, falls die Firmware einer Hardware kompromittiert wurde auf der ein SBS ausgefA1/4hrt wird. _MAPgliche GegenmaAnahmen:_ Nutzer dA1/4rfen den SBS nicht in GerA$?te einstecken, die unvertrauenswA1/4rdige Hard- oder Software enthalten kAPnnten. 8. Konstruktion der Trust-Chain adressiert Problemstellung ungenA1/4gend Ecos bewirbt die UEFI-Secure-Boot-UnterstA1/4tzung als ein Sicherheitsmerkmal. Weiterhin geben sie an: "In einer A>>Chain-of TrustA<< A1/4berprA1/4fen sich Bootloader, Kernel und Applikationen gegenseitig durch einen sich permanent wiederholenden Prozess." Bereits die vorhergehenden zwei Schwachstellen unterstreichen, dass nicht die BIOS/UEFI-Komponente die IntegritA$?t und AuthentizitA$?t des gestarteten Betriebssystems verifizieren muss, sondern dass das Betriebssystem in der Lage sein mA1/4sste zu verifizieren, dass es in einer authentischen Umgebung gestartet wurde. Dieses Sicherheitsmerkmal wird durch UEFI-Secure-Boot schlicht nicht realisiert. Ecos hat signifikanten Aufwand betrieben, um eine vom UEFI ausgehende eine "Top-Down"-Verifikation zu realisieren, allerdings kann ein Angreifer die AberprA1/4fungen einfach entfernen oder die Komponenten ersetzen, zum Beispiel einen Vanilla-Kernel oder einen eigenen Bootloader. UEFI-Secure-Boot kann den Start eines so modifizierten Sticks nur unter folgenden UmstA$?nden garantiert verhindern: - Das UEFI und anderen Hardware-Komponenten sind nicht kompromittiert (siehe vorhergehende Schwachstelle) - Der Hersteller hat die Hoheit A1/4ber alle in den GerA$?ten installierten UEFI-SchlA1/4ssel und stellt sicher, dass nur der eigene Bootloader startet. Aktuell hat Microsoft die Hoheit A1/4ber diese SchlA1/4ssel und erlaubt auch die Signatur von Bootloadern dritter Parteien. Ferner unterlaufen auch Microsoft sicherheitskritische Fehler (siehe https://www.heise.de/security/meldung/Kardinalfehler-Microsoft-setzt-aus-Versehen-Secure-Boot-schachmatt-3291946.html). - Der USB-Stick (oder eine andere vertrauenswA1/4rdige Instanz) verhindert das Booten der Umgebung, falls die Hardware nicht A1/4ber einen UEFI-Secure-Boot unter den obigen Bedingungen verfA1/4gt. Die letzte Bedingung impliziert, dass der Stick auf eine geeignete Art seine Umgebung verifizieren muss. Der Stick verifiziert allerdings aktuell nur den gestarteten Kernel (weder das BIOS/UEFI noch den tatsA$?chlich aktiven Bootloader). Auch diese Authentisierung geschieht nur an zwei Stellen; wir werden uns im Folgenden auf die ausgeklA1/4geltere konzentrieren. Hierbei geht der gestartete Kernel in den Prozess zur EntschlA1/4sselung des SBS-Dateisystems mit ein. Ein tatsA$?chliches Ausnutzen der ungenA1/4genden vom UEFI-ausgehenden Vertrauenskette wird im Rahmen von Schwachstelle 10 vorgestellt. Um SchlA1/4sselmaterial abzuleiten, mit dem auf die verschlA1/4sselten Teile des SBS zugegriffen werden kann, misst der initiale Userland-Prozess (das A!nit-Programm aus dem initrd-Image auf Partition 4) den Kernel, den Stick selbst und die aktiven Userland-Prozesse. Der Bootprozess beendet sich mit einem "EntschlA1/4sselungsfehler", wenn Anderungen detektiert werden. Das heiAt Modifikationen an der Bootkette, z.B. durch vorheriges Starten eines Programms, A$?ndern die Messung und Modifikationen an spA$?ter aktivierten Komponenten scheitern, da diese Teile verschlA1/4sselt und authentisiert sind. Ein Angreifer kAPnnte den Maschinencode der involvierten Executables analysieren, aber es existiert ein weit bequemerer und flexiblerer Weg: Fortschritte bei der Entwicklung von Sandboxing-Umgebungen kAPnnen genutzt werden, den Prozess der SchlA1/4sselgenerierung kontrolliert auszufA1/4hren. Beispielsweise kann https://usercorn.party verwendet werden, um alle Syscalls abzufangen, gegebenenfalls zu modifizieren oder zu unterdrA1/4cken. Unter Nutzung dieser Technik kann exakt kontrolliert werden, welche Informationen der Prozess erhA$?lt und welche verborgen bleiben sollen. Zum Beispiel kann der SignaturprA1/4fung einfach ein anderes Image gegeben werden, als das welches spA$?ter eingebunden wird. Falls der Nutzer kein Bootpasswort gesetzt hat, kAPnnen auf diese Weise direkt alle Geheimnisse, die im SBS gespeichert sind, extrahiert werden. Um ein vorzeitiges Abbrechen der Emulation zu verhindern, mA1/4ssen weitere Syscalls in usercorn abgefangen werden. Dabei ist es jedoch hinreichend dem aufrufenden Prozess eine erfolgreiche AusfA1/4hrung durch einen geeigneten RA1/4ckgabewert zu signalisieren. Eine eigentliche Implementation der Syscalls ist nicht erforderlich. Die Verwendung von usercorn ist allerdings nicht die einzige MAPglichkeit den Kontrollfluss bei der SchlA1/4sselgenerierung zu steuern. Zumindest die folgenden fA1/4nf AnsA$?tze sind denkbar: 1. Die Argumente, die der init-Prozess dem Linux-Kernel A1/4bergibt, kAPnnten in einem modifzierten Linux-Kernel vor der AusfA1/4hrung geA$?ndert werden. Beispielsweise kAPnnte der gestartete Prozess geeignet markiert werden, und beim Lesen von Dateien wie /proc/keys einfach den Inhalt einer anderen Datei erhalten. 2. Syscall-Argumente kAPnnen auch zur Laufzeit durch ptrace und seccomp verA$?ndert werden (https://github.com/alfonsosanchezbeato/ptrace-redirect). 3. Die init-Datei kann in einem Debugger gestartet und Breakpoints bei jeder int 80h-Instruktion (Syscall) gesetzt werden. Beim Anspringen der Breakpoints kAPnnen anschlieAend die Argumente der Syscalls vor jeder AusfA1/4hrung verA$?ndert werden. 4. Eine String-Analyse des init-Programms legt die starke Vermutung nahe, dass es GPL-lizensierten Programm-Code enthA$?lt, wodurch das komplette Programm dieser Lizenz unterliegen wA1/4rde. Der Hersteller wA$?re in diesem Fall verpflichtet, jedem Nutzer den vollstA$?ndigen Programm-Code zugA$?nglich zu machen, den dieser modifizieren und weitergeben kAPnnte. Ein Angreifer kAPnnte mittels des auf diese Weise beschafften Codes ein eigenes, beliebig modifiziertes init-Programm erzeugen. 5. Es ist mAPglich, spezifische Teile der init-Binary durch Analyse und VerA$?nderung des Maschinencodes in ihrem Verhalten zu modifizieren. Beispielsweise kAPnnen SignaturprA1/4fungen A1/4bersprungen oder Dateizugriffe umgeleitet werden. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/offlineKeyExtraction.mp4 _Potentielle Implikationen:_ - Falls kein Bootpasswort gesetzt wurde, kann ein Angreifer die gesamte Nutzerkonfiguration einsehen, inklusive der privaten SchlA1/4ssel. - Falls ein Bootpasswort gesetzt wurde, kann ein Angreifer PasswAPrter durch die Emulation automatisch durchprobieren lassen. Falls das Bootpasswort nicht ausreichend Entropie besitzt kAPnnen die gleichen Daten extrahiert werden. - In jedem Fall kann der stick-spezifische Teil der Konfiguration und die "Firmware" des Sticks ausgelesen werden, ohne den SBS zu booten. Dies ist eine Voraussetzung fA1/4r das Ausnutzen der folgenden Schwachstellen. _MAPgliche GegenmaAnahmen:_ Die Folgenden drei MaAnahmen wirken nur in Kombination: - Die BootpasswAPrter dA1/4rfen nicht fA1/4r Bruteforce-Angriffe empfA$?nglich sein. - Die Nutzer mA1/4ssen sicherstellen, dass sie tatsA$?chlich von einem angesteckten Stick booten (PC abschalten, wieder anschalten im BIOS die Bootreihenfolge A1/4berprA1/4fen), da ein kompromittiertes Betriebssystem die SBS-Umgebung einfach vortA$?uschen kAPnnte. Dabei kAPnnte es auch das Bootpasswort abfragen, indem der initiale Prozess in einer Sandbox ausgefA1/4hrt wird. - Es dA1/4rfen ausschlieAlich USB-Sticks mit einem hardware-seitigen Schreibschutz genutzt werden (Details folgen in Schwachstelle 10). Der Schreibmodus darf lediglich in vollstA$?ndig vertrauenswA1/4rdigen Umgebungen aktiviert werden. 9. Aktivierter SSH-Zugang fA1/4r vorkonfigurierten root-Nutzer im Ecos SBS Unter Nutzung der EntschlA1/4sselungsmethode ist es nicht nur mAPglich, das sogenannte "Firmware"-Image und die nutzerspezifische Konfiguration zu extrahieren, sondern es findet sich auch eine weitere Konfiguration im Verzeichnis basedata/certs der vierten Partition, die fA1/4r alle unterschiedlichen Bootmethoden gleich ist. Diese Konfiguration ist nicht durch das Bootpasswort geschA1/4tzt und kann daher in jedem Fall extrahiert werden. Das Verzeichnis enthA$?lt unter anderem eine verschlA1/4sselte und signierte shadow Datei. Im untersuchten Stick hatte sie den folgenden Inhalt: root:$6$kD.Sv/YPnhZqNwXw$xHvghwrKESSS4inwjPRFt5UNgsLXRuuCtUUIP1.W7qK08NkBF.n/vT7iRpSH4hLB2aZ8iPtuNQ20mlVoEaNgk1:10091:0:99999:7::: setup:*:12101:0:99999:7::: remotesetup:*:12101:0:99999:7::: RUNPUyBUZWNobm9sb2d5IEdtYkg6IGNvbmYtc2lnbtlpePrdaFQhGVMzvKCum1Se8f8kAQAytCKRbYYaeiWywek18P0AAJ43Yhy/VUvpMUBdRom8Wd/WISBXe23ZqumopgwNDglYvcSm28AK+tufQxcX8P4MspVLuI07CH9CGLmPqgzffP0gqpPFbSsEGtBiCX/9h5epu7ARnGfKst/2uWLLSvXidcKqht2A6f38QxNO7MGxrKZ5wDOkqTnJx3nxjKFfN5Rpmlyz7gLo8s+VscAPqf6if8QzH6rksRHRAKFzPGcCtVKExNA5dxURNFGU10NUtuZUE5ZbawLSfhbxNenLBf3bAMLdKNxIPVZsJhPUEvHJntyK73Dype5o3JXiLmiPo/GSXmp31NCl50cAyvNFyIYpAQYBHxQAAAAAAAECfk1vZHVsZSBzaWduYXR1cmUgYXBwZW5kZWR+Cg== Die base64-kodierte Signatur verweist auf Ecos, wurde also nicht durch die Management Appliance generiert. Weiterhin ist die shadow-Datei bereits werksseitig auf Sticks vorhanden, die noch nicht initialisiert wurden, also auch noch keinen Kontakt zum Management des Kunden hatten. Dies weist auf einen weiteren undokumentierten root-Zugang hin. Im Unterschied zu Schwachstelle 1 allerdings nicht in der Management Appliance, sondern direkt auf den Sticks selbst. Dass es sich tatsA$?chlich um einen Zugang handelt, der vom Hersteller auch A1/4ber SSH genutzt werden kAPnnte, wird im Zuge der nA$?chsten Schwachstelle demonstriert. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/sbsRootAccess.mp4 _Potentielle Implikationen:_ - Der Hersteller hat die MAPglichkeit den root-Nutzer als HintertA1/4r zu nutzen und sich in einen SBS einzuloggen, wenn dieser aktiv ist. - Der Hersteller kann auf Dateien auf der privaten Festplatte des Nutzers zugreifen. Ecos behauptet zwar: "Schutz vor Zugriff auf private Fotos und E-Mails". Allerdings enthA$?lt das "gehA$?rtete" Linux-Betriebssystem des SBS sogar einen NTFS-Dateisystem-Treiber, der A1/4ber SSH genutzt werden kann. - Der Hersteller kann vertrauliche Konfigurationsparameter, wie private SchlA1/4ssel und PasswAPrter, einsehen. - Der Hersteller kann die Konfiguration des Sticks verA$?ndern, z.B. auf ein unsicheres VerschlA1/4sselungsschema wechseln. - Falls der Hersteller jemals selbst von einem Sicherheitsproblem betroffen sein sollte, beispielsweise durch einen gekA1/4ndigten Mitarbeiter oder eine Software-Schwachstelle, kAPnnten weitere Parteien das Passwort erhalten. - Falls dasselbe Passwort fA1/4r alle Kunden verwendet wird: - Ein Angreifer kAPnnte durch einen Brute-Force-Angriff Kenntnis des Passworts erhalten und Zugriff auf andere Installationen erhalten. - Falls das Passwort je verwendet werden sollte, kAPnnte es durch einen Man-in-the-Middle-Angriff in die HA$?nde eines Angreifers gelangen, der es fA1/4r eigene Zwecke missbrauchen kann. _MAPgliche GegenmaAnahmen:_ Der SBS darf nicht in Szenarien eingesetzt werden in denen ein Zugriff auf den SSH-Dienst mAPglich ist. 10. Daten des SBS kAPnnen bAPsartig verA$?ndert werden Herstelleraussage: "SchreibgeschA1/4tzte Partition fA1/4r Firmware und Applikationen" Technisch sauberer ist die Aussage, dass unautorisierte Modifikationen am Stick -- etwa durch SignaturA1/4berprA1/4fungen -- erkannt werden. Allerdings ist auch diese relaxierte Aussage nicht in jedem Fall aufrecht zu erhalten, wie anhand der folgenden drei Szenarien diskutiert wird. VollstA$?ndiges Aberschreiben des SBS Der SBS ist hardware-seitig ein vAPllig gewAPhnliches USB-Speichermedium. Ein kompromittiertes Betriebssystem kAPnnte den Inhalt des gesamten Stick also vollstA$?ndig A1/4berschreiben, wenn der Nutzer den Stick einsteckt wA$?hrend das OS noch aktiv ist. Beispielsweise kAPnnte es ein minimales OS auf dem Stick platzieren, welches nach dem Booten sofort alle Massenspeicher absucht und darauf vorhandene Betriebssysteme infiziert. Danach kAPnnte es ein Ecos Logo mit der Fehlermeldung "Ihr PC wird nicht unterstA1/4tzt, bitte verwenden Sie den SBS in einem anderen PC" zeigen. Dieser Ansatz kAPnnte es einem Angreifer erlauben, Malware von einem Heimarbeitsplatz auf einen PC innerhalb eines Firmennetzes zu verbreiten. Missbrauch des root-Nutzers Wie bereits erwA$?hnt ist zwar die sogenannte "Firmware", also die eigentliche Arbeitsumgebung des SBS, durch eine Signatur geschA1/4tzt, die Stick-Konfiguration jedoch nur A1/4ber einen von auAen zu berechnenden symmetrischen Authentisierungswert. Das bedeutet, dass das SchlA1/4sselmaterial welches zur EntschlA1/4sselung verwendet wurde (siehe Punkt 8) auch dazu verwendet werden kann die Konfiguration zu verA$?ndern; mAPglicherweise ohne dass diese Modifikation erkannt wird. Die Stick-Konfiguration kann dabei selbst dann verA$?ndert werden, wenn das Bootpasswort _nicht_ bekannt ist. Das bedeutet, die im Rahmen der letzten Schwachstelle beschriebene shadow-Datei kann verA$?ndert und so ein eigenes root-Passwort gesetzt werden. Eine HA1/4rde ist noch zu nehmen: Der Angreifer muss die historische crypt-Methode benutzen, um den Hash des root-Passworts zu generieren und sicherstellen, dass eine update.conf-Datei im gleichen Verzeichnis existiert. Diese scheint nur auf manchen Sticks prA$?sent zu sein und enthA$?lt die folgenden Daten: reltype=V5.6.5 bbtype=mthc fn1=ca.crt fn2=base.pem fn3=runtime.pem fn4=shadow fn5=my.pem force-reltype=1 Nach dieser Modifikation kann ein Angreifer A1/4ber SSH auf den SBS zugreifen, unabhA$?ngig davon auf welchem Computer dieser gebootet wurde (sofern SSH-Netzwerkzugriff gegeben ist). Aber die SSH-Sitzung kAPnnen Langzeitgeheimnisse, SitzungsschlA1/4ssel und Daten von der privaten Festplatte des Nutzers abgegriffen werden (der SBS enthA$?lt hierzu bereits einen NTFS-Dateisystem-Treiber). Zum Teil kAPnnen diese auch modifiziert werden. AuAerdem enthA$?lt das "gehA$?rtete" Betriebssystem auch ein Werkzeug um Screenshots von der aktiven Nutzersitzung zu machen (/bin/xwd) und einen funktionsfA$?higen VNC-Server, sodass es mAPglich ist den Nutzer live zu beobachten oder sogar mit der Sitzung zu interagieren. Passives Beobachten wird dem SBS-Nutzer gegenA1/4ber nicht angezeigt (falls der Angreifer dies nicht explizit mAPchte). _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/stickMod1.mp4 Selektives Modifizieren ausfA1/4hrbarer Dateien auf dem SBS Auch ohne Ausnutzen des schwach geschA1/4tzten Teils der Konfiguration ist es mAPglich den Stick auf geschickte Art zu modifizieren. So ist es mAPglich SignaturA1/4berprA1/4fungen vollstA$?ndig zu entfernen und den Stick mit einer HintertA1/4r zu versehen, die beispielsweise andere Betriebssysteme infiziert und den SBS als Wirt benutzt. Dazu kAPnnen die initialen SignaturA1/4berprA1/4fungen durch einen eigenen Bootloader (mit Ecos-Theme) und Kernel ausgehebelt werden. Durch einen modifizierten Kontrollfluss wA$?hrend des init-Prozesses, fA$?llt dies, ebenso wie eine VerA$?nderung des squashfs-Dateisystems, nicht auf. Im Rahmen von Schwachstelle 8 wurden verschiedene Wege beschrieben mit denen eine solche VerA$?nderung des Kontrollflusses erreicht werden kann. Es verbleiben die AberprA1/4fungen der geladenen Betriebssystemumgebung. Ecos beschreibt: "Wird eine Manipulation erkannt, schaltet sich der Stick sofort ab. Eine Manipulation des Sticks, egal ob im laufenden Betrieb oder im ausgeschalteten Zustand, wird so wirkungsvoll verhindert." Allerdings ist es relativ schwierig diese SicherheitsA1/4berprA1/4fung A1/4berhaupt auszulAPsen, da sie auf einer (sehr kleinen) Whitelist zu basieren scheint. Von den 663 Dateien im /bin-Verzeichnis des "gehA$?rteten" Betriebssystems scheint dies nur auf eine Handvoll zuzutreffen. Es ist daher sehr einfach diesen Schutzmechanismus zu umgehen. FA1/4r Demonstrationszwecke wurde das Werkzeug /bin/insmod im Ecos-OS ausgetauscht, um eine Windows-Installation zu infizieren. Die Datei wird regelmA$?Aig ausgefA1/4hrt und ist nicht durch die Whitelist geschA1/4tzt. _Video:_ https://telematik.prakinf.tu-ilmenau.de/ecos-sbs/stickMod2.mp4 Diskussion bAPsartiger VerA$?nderungen _Potentielle Implikationen:_ Die Auswirkungen dieser Schwachstelle hA$?ngen stark vom Angriffsszenario und den Ressourcen des Angreifers ab. Hauptbedrohungen sind: - Der Angreifer kann den SBS nutzen, um Malware von Host zu Host zu A1/4bertragen. MAPglicherweise kAPnnten so weitere SBS infiziert werden. - Der Angreifer kann Daten vom privaten Massenspeicher des PCs sowie Konfigurationsparameter, PasswAPrter und private SchlA1/4ssel vom SBS auslesen (ohne ein mAPglicherweise starkes Bootpasswort zu kennen). - Der Angreifer kann den init-Prozess verA$?ndern, sodass das Bootpasswort oder die Smartcard PIN aufgezeichnet werden (falls er diese an anderer Stelle benAPtigt). - Falls eine Smartcard genutzt wird, kann ein Angreifer diese nutzen solange der SBS aktiv ist. - Der Angreifer kann jegliche SBS-interne Firewall abschalten. - Der Angreifer kann selbststA$?ndig eine Kommunikation initiieren, etwa zu einem zentralen Command-and-Control-Server. - In AbhA$?ngigkeit von den FA$?higkeiten des Angreifers kAPnnen alle aufgezA$?hlten Angriffe verdeckt ablaufen, das heiAt der Nutzer ist nicht in der Lage diese zu erkennen, da funktionale Aspekte des SBS weiterhin gewA$?hrleistet sind. _MAPgliche GegenmaAnahmen:_ Nutzer dA1/4rfen den SBS nicht in GerA$?te einstecken, die unvertrauenswA1/4rdige Hard- oder Software enthalten kAPnnten. SBS sollten nicht an unterschiedlichen PCs verwendet werden, um ein etwaiges Verbreiten von Malware zu unterbinden. 3. Zusammenfassung In diesem Dokument wurden verschiedene Schwachstellen des Ecos SBS und seiner Management Plattform diskutiert. Die Sicherheitsanalyse hat sich dabei auf den Bootprozess und das Easy Enrollment fokussiert. Nichtsdestoweniger zeigen die Resultate, dass eine Reihe von Sicherheitsaussagen der Herstellerwebseite und BroschA1/4ren zumindest aktuell nicht zu halten sind. Dies umfasst: - "Die Nutzung des Sticks hinterlA$?sst keinerlei Spuren, womit es ausgeschlossen ist RA1/4ckschlA1/4sse auf Verbindungsdaten oder Arbeitsdaten zu nehmen.", Schwachstelle 4 - "Zertifikat, gekoppelt an die Hardware-ID des Sticks", Schwachstelle 5 - "Vor AusfA1/4hrung der Firmware erfolgt eine PrA1/4fung, ob der Stick in einer virtuellen Maschine gebootet wurde. Dies verhindert, dass die SchutzmaAnahmen des Sticks unterlaufen werden und beispielsweise ein Keylogger oder Trojaner auf dem Hostsystem Bildschirminhalte oder TastaturanschlA$?ge protokolliert.", Schwachstelle 6 - "Das Erstellen, Abspeichern, Drucken oder Weiterleiten von Bildschirmkopien wird A1/4ber eine sichere ZugangslAPsung verhindert.", Schwachstellen 6 und 9 - "ZusA$?tzlich A1/4bernimmt das ECOS SECURE LINUX die Hoheit A1/4ber die angeschlossene Peripherie, so dass selbst eine Schadsoftware im BIOS oder im UEFI keine Bedrohung darstellt.", Schwachstelle 7 - "In einer A>>Chain-of TrustA<< A1/4berprA1/4fen sich Bootloader, Kernel und Applikationen gegenseitig durch einen sich permanent wiederholenden Prozess.", Schwachstelle 8 und 10 - "Schutz vor Zugriff auf private Fotos und E-Mails", Schwachstelle 9 und 10 - "SchreibgeschA1/4tzte Partition fA1/4r Firmware und Applikationen", Schwachstelle 10 - "Wird eine Manipulation erkannt, schaltet sich der Stick sofort ab. Eine Manipulation des Sticks, egal ob im laufenden Betrieb oder im ausgeschalteten Zustand, wird so wirkungsvoll verhindert.", Schwachstelle 10 AuAerdem, wurden mAPgliche HerstellerhintertA1/4ren, eine Schwachstelle gegen Man-in-the-Middle-Angriffe und die MAPglichkeit aufgedeckt, die interne Management-Datenbank auszulesen, inklusive aller privaten SchlA1/4ssel assoziierter SBS. Einige dieser Schwachstellen mAPgen auf einfache NachlA$?ssigkeiten zurA1/4ckzufA1/4hren sein, etwa die aktivierten root-Nutzer oder die MAPglichkeit die Datenbank zu spiegeln. Ein groAer Anteil basiert jedoch auf konzeptionellen Fehlern. Von diesen kAPnnten Schwachstelle 5 durch die korrekte Nutzung mit einer Smartcard abgewendet werden. Die Kernprobleme von Schwachstellen 4, 6, 7 & 8 liegen jedoch in Limitierungen der aktuellen x86-Plattform. Sie kAPnnen nach Meinung der Autoren nicht ohne zusA$?tzliche hardware-seitige FA$?higkeiten oder die ausschlieAliche und exklusive Nutzung vertrauenswA1/4rdiger Hardware behoben werden. Aus makroskopischer Sicht sind die beschriebenen Schwachstellen ebenfalls interessant, da sie zeigen wie wenig verlA$?sslich punktuelle IT-Sicherheitstest bei EinfA1/4hrung eines Produktes sind. Die meisten Referenzkunden, die von Ecos angefA1/4hrt werden, gaben an, dass sie interne oder externe Sicherheitstests durchgefA1/4hrt haben. Die Empfehlungen implizieren, dass dabei keinerlei schwerwiegende Fragen bezA1/4glich der Sicherheit aufgekommen sind. Die Analyse unsererseits erstreckte sich A1/4ber einen Zeitraum von ungefA$?hr einem Monat und wurde neben unseren eigentlichen Forschungsprojekten durchgefA1/4hrt. Professionelle Pentester werden vermutlich weniger Zeitressourcen haben, sodass sie die verschiedenen kryptographischen Verschleierungsschichten nicht durchdringen kAPnnen. Selbst unser weniger beschrA$?nkter Zeitplan erlaubte keine vollstA$?ndige AberprA1/4fung aller Angriffsvektoren, die der SBS durch seinen Ansatz bietet. Dennoch ist es alarmierend, dass einige Herstelleraussage direkt der verbreiteten Meinung von Sicherheitsexperten widersprechen -- offensichtlich ohne signifikante Zweifel zu wecken. Am markantesten sind die folgenden Punkte: - Die Erkennung einer virtualisierten Umgebung kann nicht garantiert werden. - Firmwares (EFI aber auch Intel ME und weitere) in aktueller x86-Hardware dA1/4rfen nicht als sicher angenommen werden. - USB-GerA$?ten darf nur unter sehr strenge Auflagen vertraut werden ([8] enthA$?lt einen weiteren Angriffsvektor). Selbst der einfache BSI IT-Grundschutz enthA$?lt in Abschnitt M 4.63 die Anforderung "Der Telearbeitsrechner sollte A1/4ber einen Boot-Schutz verfA1/4gen, um zu verhindern, dass unbefugt von auswechselbaren DatentrA$?gern, z.B. von DVD oder USB-Stick, gebootet werden kann." Es existieren jedoch keine Hardware-Mechanismen, die zusichern kAPnnten, dass nur authentische Sticks gebootet werden kAPnnen. Dennoch behauptet Ecos zu M4.63 konform zu sein. 4. Autoren Die Schwachstellen wurden von Robert Lasch, Franz Girlich und Michael Rossberg (ohne bestimmte Reihenfolge) gefunden und mit Demonstrationen unterlegt. Wissenschaftliche Aufsicht fA1/4hrte Guenter Schaefer[1]. Fragen und Anmerkungen kAPnnen an Michael Rossberg via michael [dot] rossberg [at] tu [dash] ilmenau [dot] de gerichtet werden. Der korrespondierende GPG-Fingerprint lautet: FD9B 425C 8DE5 69D6 77ED 52C2 CC00 C314 0337 76C9 5. Ablauf der VerAPffentlichung - 13. April 2018 - Hersteller informiert - 30. April 2018 - BSI lA$?sst [SX] und [SE] Varianten des Sticks zur Verarbeitung von VS-NfD-Daten zu - 13. Juni 2018 - VerAPffentlichung 6. Referenzen [1] J. Bauer, M. Gruhn, und F. C. Freiling, aLest we forget: Cold-boot attacks on scrambled DDR3 memorya, _Digital Investigation_, Bd. 16, S. S65aS74, 2016. [2] S. F. Yitbarek, M. T. Aga, R. Das, und T. Austin, aCold boot attacks are still hot: Security analysis of memory scramblers in modern processorsa, in _High performance computer architecture (HPCA), 2017 IEEE international symposium on_, 2017, S. 313a324. [3] G. Ravago, aReverse engineering a USB flash drivea. 2015. [4] A. Sergeev, V. Minchenkov, und V. Bashun, aMalicious hypervisor and hidden virtualization of operation systemsa, in _Application of information and communication technologies (AICT), 2015 9th international conference on_, 2015, S. 178a182. [5] J. Rutkowska, aIntroducing blue pilla, _The official blog of the invisiblethings.org_, Bd. 22, S. 23, 2006. [6] S. Embleton und S. Sparks, aSMM rootkitsa, in _Proceedings of the 4th International Conference on Security and Privacy in Communication Networks, Securecomm_, 2008, Bd. 8. [7] J. Rutkowska, aIntel x86 considered harmfula, _the Invisible Things Lab_, 2015. [8] K. Nohl und J. Lell, aBadUSB a on accessories that turn evila, _Black Hat USA_, 2014. [1] TransparenzerklA$?rung: Guenter Schaefer arbeitet Vollzeit als Professor an der Technischen UniversitA$?t Ilmenau. Weiterhin ist er nebenberuflich ein Mitglied des Aufsichtsrats der secunet Security Networks AG.


Vote for this issue:
50%
50%


 

Thanks for you vote!


 

Thanks for you comment!
Your message is in quarantine 48 hours.

Comment it here.


(*) - required fields.  
{{ x.nick }} | Date: {{ x.ux * 1000 | date:'yyyy-MM-dd' }} {{ x.ux * 1000 | date:'HH:mm' }} CET+1
{{ x.comment }}

Copyright 2024, cxsecurity.com

 

Back to Top