, SecurityFocus 2006-01-26
ARLINGTON, Virginia -- Insider attacks and industrial espionage could become more stealthy by hiding malicious code in the core system functions available in a motherboard's flash memory, researchers said on Wednesday at the Black Hat Federal conference.
A collection of functions for power management, known as the Advanced Configuration and Power Interface (ACPI), has its own high-level interpreted language that could be used to code a rootkit and store key attack functions in the Basic Input/Output System (BIOS) in flash memory, according to John Heasman, principal security consultant for U.K.-based Next-Generation Security Software.
The researcher tested basic features, such as elevating privileges and reading physical memory, using malicious procedures that replaced legitimate functions stored in flash memory.
"Rootkits are becoming more of a threat in general--BIOS is just the next step," Heasman said during a presentation at the conference. "While this is not a threat now, it is a warning to people to look out."
The worries come as security professionals are increasingly worried about rootkits. Earlier this month, a security researcher warned that the digital-rights management software, which experts say resembled a rootkit, used by music giant Sony BMG remained on hundreds of thousands of servers. Last year, the first rootkit for the Mac OS X was released to the Internet.
While some attacks have attempted to affect a computer's flash memory, most notably the CIH or Chernobyl virus in 1998, the ability to use the high-level programming language available for creating ACPI functions has opened up the attack to far more programmers.
One rootkit expert at the conference predicted that the technology will become a fundamental part of rootkits in the near future.
"It is going to be about one month before malware comes out to take advantage of this," said Greg Hoglund, CEO of reverse engineering firm HBGary and editor of Rootkit.com. "This is so easy to do. You have widely available tools, free compilers for the ACPI language, and high-level languages to write the code in."
The firmware on most modern motherboards has tables associating commands in the ACPI Machine Language (AML) to hardware commands. New functionality can be programmed in a higher level ACPI Source Language (ASL) and compiled into machine language and then flashed into the tables.
However, the ability to flash the memory depends on whether the motherboard allows the BIOS to be changed by default or if a jumper or setting in the machine setup program has to be changed. Security professionals at the conference disagree over how many machines would have the ability to write to flash memory turned on by the manufacturer. While Hoglund believed that most computers would not have protections against writing to flash memory turned on by default, NGSSoftware's Heasman disagreed.
"The obstacles to deployment are numerous," Heasman said. "Almost all machines have a physical protection, such as a jumper on the motherboard, against flashing."
Yet, an insider attacker could flash their laptop before they leave a company and then use the rootkit, which would survive reinstallation of the operating system. The insider could then gain access to the corporate network at a later time.
Because the amount of memory that could be used by an attacker in the BIOS firmware is small, it is unlikely that an entire rootkit will be stored in the motherboard's memory. Instead, only specific functions and bootstrap code would likely be hidden there.
Another benefit of programming to the ACPI Source Language is that, for the most part, the code can be ported easily to any platform.
"This is platform independent," Heasman said. "We can write a backdoor for Windows that will elevate privilege, and turn around and use the code on Linux."
The research into adding BIOS capabilities to rootkit software stresses the need for better rootkit detectors, argued another researcher who presented at Black Hat Federal on the topic of rootkits.
"John Heasman's presentation was very interesting and useful in convincing people that we need to change our thinking about rootkit/compromise detection," said Joanna Rutkowska, an independent security consultant with invisiblethings.org. "Today, many people believe that it's just enough to enumerate all the potential triggering points ... I don't agree with this approach, as it seems to be lots of places which can be used as a triggering point - John has just showed us how to use BIOS for this, but we can also think about advanced file infection and many others."
Instead, current detection software needs to focus on explicit integrity scanning of a compromised system, not look for specific compromised files that could be hidden with techniques such as flashing rootkit components into the BIOS, she said.
"This is only the triggering aspect of the malware," Rutkowska said. "Basically you can take any of the available malware and add a BIOS-level trigger, or installer, to them. However, after that malware is activated it needs to go to the operating system memory and needs to interact with OS somehow."
Defensive software should look to detect that activity explicitly, she said.
UPDATE: The article was updated on Friday at 8 a.m. PST with comments from Joanna Rutkowska, a rootkit expert that also presented at Black Hat Federal on the topic. Also, the original article was corrected. The final quote in the article mistakenly cited the same operating system twice. Heasman actually said the same code used on Windows could also be used on Linux. The original article was posted approximately noon PST on Thursday.