PLC-Blaster: Ein Computerwurm für PLCs

Presented at 32C3 (2015), Dec. 27, 2015, 2 p.m. (60 minutes)

Unser Vortrag demonstriert einen PLC-only Wurm. Der PLC-Wurm kann selbstständig ein Netzwerk nach Siemens Simatic S7-1200 Geräten in den Versionen 1 bis 3 durchsuchen und diese befallen. Hierzu ist keine Unterstützung durch PCs oder Server erforderlich. Der Wurm „lebt“ ausschließlich in den PLCs. PLCs der Baureihe Siemens Simatic werden über einen proprietäres Protokoll verwaltet. Mit diesem Protokoll kann ein PLC gestartet und gestoppt werden. Es können Diagnoseinformationen gelesen und der Upload/Download von Benutzerprogrammen durchgeführt werden. Für die S7-300/400 existieren bereits OpenSource-Lösungen die das Siemens Protokoll unterstützen. Mit der Einführung der neuen Produktreihe S7-1200 wurde das alte Protokoll von Siemens abgelöst und durch ein neues Protokoll ersetzt. Zu diesem neuen Protokoll steht weder eine offizielle Dokumentation zur Verfügung noch existieren veröffentlichte Untersuchungen. Wir haben dieses Protokoll basierend auf der S7-1200v3 analysiert und können beliebig Benutzerprogramme mit diesem Protokoll auf einer PLC installieren bzw. auslesen. Hierauf aufbauend haben wir einen PLC-Wurm entwickelt, der selbstständig ein beliebiges Netzwerk nach S7-1200v3 Geräten durchsucht und diese befällt wenn die Schutzmechanismen ausgeschaltet sind. Der Wurm ist ausschließlich in der Programmiersprache SCL programmiert und benötigt keine weitere externe Unterstützung. Für die Fernsteuerung der infizierten PLCs haben wir einen Command&Control Server implementiert. Infizierte Geräte können sich automatisch mit diesem Server verbinden. Über diese Schnittstelle können wir aus der Ferne beliebige Steuerausgänge verändern. Eine Proxy-Funktionalität erlaubt es uns über einen Tunnel auf weitere Systeme in dem Netzwerk zuzugreifen. Schließlich kann über den Steuerungsserver auch der Defect-Modus ausgelöst werden. Hierdurch stellt die PLC ihre Arbeit ein. In diesem Modus ist ein Kaltstart der PLC erforderlich. Dies werden wir im Rahmen des Vortrags vorführen. Diese Arbeit zeigt, wie wichtig es ist, dass Inbetriebnehmer die vorhandenen PLC Sicherungsmechanismen verwenden. Außerdem sollten die neusten PLC Softwareversionen und Funktionalitäten genutzt werden.

Presenters:

  • Ralf Spenneberg
    Ralf Spenneberg is using UNIX/Linux since 1989. He is providing professional services since 1999. His main interest is OpenSource Security. He has written several books, articles and security advisories. His companies OS-T and OS-S are providing professional training and consulting services.
  • Maik Brüggemann

Links:

Similar Presentations: