Three German security researchers have presented a PLC-based worm at Black Hat Asia. The proof of concept is based on the Siemens SIMATIC S7-1200 PLC which reminds us all two well of an earlier PLC attacking worm known as STUXNET.
STUXNET targeted Siemens SIMATIC S7-300 PLCs located in nuclear facilities in Iran. However, the main difference is that all of the worms targeting PLCs so far “lived” and spread in computers and only attacked PLCs. This new proof of concept worm, however, lives in, spreads over and attacks PLCs.
The worm was designed and developed specially for the PLC environment, which resulted in a custom and optimized PLC worm. The worm takes into account computing limits of PLCs and uses the limited resources accordingly.
The spreading mechanism avoided the historical mistake made by the Morris worm in the 80s by first checking if the target PLC has already been infected. As you’ll remember the Morris worm caused computers to crash because it didn’t check whether or not the target was already infected. Multiple infections then caused the target to lose all its resources and crash. The same problem could occur even more easily in systems that have more limited resources, such as PLCs, and apparently the researchers wanted to avoid this. If no signs of previous infection are detected the worm will copy itself to the target and start looking for new targets.
The worm replicates itself on the target PLC using ports and protocols used by Siemens SIMATIC PLCs.
Security researchers Ralf Spenneberg, Maik Brüggemann and Hendrik Schwartke who presented the proof of concept also added some features that simulate typical worm behavior. The worm connects to a command & control server using TCP. The worm also supports a basic proxy function that allows it to link the command & control server to any potential other targets within the infected network.
The worm can also start an endless loop which will eventually cause the PLC to crash in a denial of service (DoS) attack which in real life would cause whatever service or infrastructure (electricity, water, nuclear power plant, etc.) managed by the PLC to stop. Finally, the worm can also manipulate the outputs of the PLC which allows it to modify any value of the PLC process.
The fact that the worm spreads using PLCs makes it invisible to any host-based security solutions such as antivirus and host based IPS. This proof of concept worm requires the target PLC to stop for about 10 seconds during the initial infection phase, monitoring the PLC for such short interruptions could be a way to detect a potential infection. Monitoring the network traffic for ICS (Industrial Control System) specific traffic and connections could also be an effective way to detect an infection spreading on the network.
Written by: Alper Başaran
Alper Basaran provides business process focused and goal oriented penetration testing services to his customers. Based in Turkey he has expanded his operations to the Middle East.
Edited by Pierluigi Paganini
(Security Affairs – PLC-Based Worm, malware)