Saturday, January 12, 2019

Lojax UEFI Rootkit

    Unified Extensible Firmware Interface (UEFI) rootkits gained quite a bit of attention in the security community over the years with a considerable amount of research going into the topic. However, there’s been limited practical use of this malware type in the wild until the discovery of LoJax. Researchers at ESET associate this new malware with the Sednit group, also known as Fancy Bear, and thoroughly discussed it at the 35C3 conference in Germany late last month.

    What makes this kind of malware so dangerous is that it lies within the firmware of a physical machine, thus it is extremely hard to detect and very difficult to cleanse. It can survive reboots, operating system reinstallation, and even hard disk replacement. The chain of infection can usually be broken down into four stages: (1) User-Mode client infection, (2) Kernel-Mode escalation, (3) System Management Mode injection, and ($) SPI Flashing. As is the case for other types of malware, an initial client-side exploit dropper (mechanism for an attacker to get user access to a victim system) is needed. Once attackers have user access to a vulnerable host, they then escalate privileges to system access and attempt to bypass various kernel level security controls such as code signing policies to install kernel-mode payloads. Then the malware elevates privileges to execute System Management Mode payloads so it has access to SPI Flash. Lastly they bypass flash writing protection altering Flash firmware to implant their own flash malware.

    LoJax, named after Absolute Software Corporation’s LoJack, is unique for using Lojack’s persistence technique of coming pre-installed in the firmware of laptops manufactured by various OEMs. Due to security weaknesses and misconfigurations within LoJack, attackers were able to trojanize the anti-theft tool creating LoJax. Once LoJax implants itself within the firmware and the system is booted, it loads the malicious SecDxe DXE driver and calls EFI_EVENT_GROUP_READY_TO_BOOT. This callback loads an embedded NTFS DXE driver, writes ‘rpcnetp.exe’ and ‘autoche.exe’ to the OS, and modifies the registry key ‘HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ Session Manager\BootExecute’. The rpcnetp.exe executable is a small agent that is used to initiate communication back to the attacker Command and Control (C&C) server.

    As of the date of the initial LoJax research, the primary targets have been different entities in the Balkans as well as Central and Eastern Europe. The primary defense against this malware is enabling Secure Boot and ensuring UEFI firmware is up to date.