Most people think of cyberattacks as software against software – traditional malware such as Trojans, viruses, and worms infiltrating and attacking applications, operating systems, or data. This arms race has been escalating for decades and is now at a high level of sophistication, requiring advanced skills on both sides.
But there is another type of attack, one that pits software against hardware. These attacks typically try to corrupt the firmware or configurations used by processors or other core components. Attacking hardware or firmware enables an adversary to have enhanced abilities to hide from detection and can also increase damage to a platform, such as preventing the machine from booting. This can render the machine unusable and unrecoverable with the tools available in an average IT department. Since the machine would not be able to get as far as initializing the memory or external interfaces, even an external drive would not be able to boot.
Often, the target of these attacks is the BIOS (basic input/output system) code that is the first to run when a machine is powered on. Secondary targets are firmware for essential components such as network adapters, IO controllers, power management, and graphics processing units. For greater flexibility, most hardware manufacturers store firmware and its configuration details in flash memory so that it can be patched or updated if necessary. Unfortunately, this rewritable flexibility makes firmware vulnerable to attack. The industry has tried to lock down access to these sensitive areas of flash memory and minimize vulnerabilities. However, the complexity of code and the number of components create numerous attack vectors that are a rich environment for the security research community and malicious adversaries to explore.
Simple Attack, Difficult Recovery
Although the recovery of a machine with corrupted firmware is quite difficult, the attack itself is often much simpler. In many cases, standard software can be used to perform an attack on firmware or hardware. Such a simple attack (that makes your machine a paperweight) is facilitated by writing garbage to the critical configuration variables used by the BIOS and triggering a reboot. Some systems have backup or default settings, so those would have to be corrupted or deleted as well. Many operating systems expose these variables to privileged applications – Microsoft Windows has SetFirmwareEnvironmentVariable, for example – making it trivial to attack once the malware has been delivered. It is the responsibility of the system integrator and OEM to ensure that adequate protection and validation for BIOS and configuration is implemented in a system to prevent this type of attack, and many machines in the wild do not employ adequate protection.
If this is so easy, why are we not seeing more hardware attacks? Probably because the majority of attacks have an objective of stealing information or turning the machine into a controllable bot, and bricked machines do not support these goals. However, as new or different criminal actors and nation states start to exercise their cyberthreats, we may see more hardware-based attacks as a means to create chaos or deny service to an organization. The other factor that makes hardware-based attacks less prevalent in bulk malware is that they often need to support multiple configurations or be individually tweaked to work on the specific hardware platform that is being targeted.
Validating that a platform’s BIOS implementation is not vulnerable to known low-level attacks is a highly complex task. Luckily, there are tools that can make this possible for an IT organization. One tool, called chipsec, was developed here at Intel and then released free and open under an open source license. Key use cases for the chipsec platform include vulnerability assessment, advanced forensics, and security research. We continue to update it and encourage others to contribute as well.
The firmware attack surface is large, and the vulnerabilities are not new and are not terribly difficult to exploit. It is critical that the industry recognizes that both hardware and software are critical assets that may become an area of exploitation in an advanced attack.