Move over, Stuxnet: researchers have discovered a way to silently manipulate the programmable logic controller (PLC) systems that control water, power, and other industrial processes without getting caught.
Researcher Ali Abbasi, a Ph.D. candidate in the distributed and embedded system security group at University of Twente, Netherlands, and Majid Hashemi, a system programmer and independent security researcher at the time of their research, have created an attack on PLCs that unlike Stuxnet, they say, cannot be detected. Abbasi and Hashemi will demonstrate the new PLC rootkit in November at Black Hat Europe in London.
Stuxnet, which was the first known cyberattack on an industrial network to sabotage a physical process, damaged the centrifuges in Iran's Natanz uranium enrichment plant by manipulating the speed the devices spun. The attack, believed to be the handiwork of US and Israeli cyber intelligence units, ultimately was detected by researchers at a European anti-malware firm after Stuxnet somehow spread beyond its Natanz target to other Windows machines.
Abbasi says the PLC rootkit sits directly on the PLC, whereas Stuxnet targeted Windows-based SCADA servers in the plant. It's much less likely to be discovered because it sits at the lower-level of the system. The rootkit works on any brand of PLC, he says.
"It's a race to the bottom" now, Abbasi says. "Everybody has access to higher-level [SCADA operations]. Attackers in the future will go to lower level assaults" such as this to evade detection, he says.
There are few detection functions that can be used in a PLC running a real-time operating system, he says. And if they were running on a PLC, he adds, they still would not spot the rootkit attack.
PLC hacking research isn't new. Researchers at Black Hat USA in August, for example, demonstrated PLC-Blaster, a PLC worm that spreads among PLCs.
Abbasi says his and Hashemi's rootkit is a new way to exploit a PLC. Previous hacks have targeted the PLC logic code, for example, which tells the PLC what to do in the physical operation. "Our attack instead targets the relation between PLC runtime and logic with the I/O peripherals of it. In our attack, the PLC logic and PLC runtime remain intact," he explains. That prevents any integrity-verification for the PLC from seeing the malicious activity in the PLC.
They place their malicious code in the device's dynamic memory. The PLC believes it's communicating with the I/O, but the rootkit is actually manipulating the I/O and PLC process, such as the opening or closing of a gate. PLCs communicate via input pins and output pins, low-level communications links. An input pin tells the PLC the temperature of an industrial boiler, or another state of the industrial system. The output pin handles the physical control of the process, such as the order from a PLC to the industrial equipment to open the gate.
Abbasi says the rootkit manipulates the I/O process. If, for example, a gate must be opened if a boiler temperature reaches 80 degrees Celsius to relieve pressure, the temperature sensor would be connected to the input pin and the rootkit attack could manipulate the temperature values and cause the boiler to overheat and explode, he says. The rootkit basically changes the state of the output pin to that of the input pin, he adds, noting that "in PLCs, the I/O operations are one of the most important tasks."
The attack is so low-overhead that power-consumption usage monitors wouldn't notice it. "The overhead imposed of our attack outside of kernel is below one percent, which means even those approaches which monitor the power usage of PLC for attack detection will be useless," Abbasi says.
The researchers also plan to show a version of the PLC attack that uses shellcode in their Ghost In The PLC: Designing An Undetectable Programmable Logic Controller Rootkit session at Black Hat.
The underlying weakness exploited by the rootkit attack lies in the PLC hardware, according to the reseaarchers. Abbasi and Hashemi are studying ways to better protect PLCs from such attacks. They are exploring several avenues, from preventing system-level privilege to the PLC to rooting out design flaws in the real-time embedded systems to building a mitigation defense for their attack.