Sicherheit in Industrial Control Systems
Sicherheit in Industrial Control Systems

Scannen von Industrial Ethernet

Scannen von Industrial Ethernet.zip
Archivdatei im ZIP Format [208.7 KB]

Nmap Skript

Ähnlich wie auch die Redpoint-Skripte von Digital Bond, soll es mit diesen Nmap Skripten möglich sein, anhand eines Skripts Industrial Ethernet Geräte automatisiert zu erkennen und zu identifizieren. Bisher existieren jedoch noch keine Skripte, die Embedded-PCs der Firma Beckhoff identifizieren können.

 

Aus den zuvor gesammelten Daten gilt es nun eine ausführliche Liste von Diensten und offenen Ports zu erstellen, welche ein Gerät eindeutig beschreiben.

 

Im Rahmen dieser Arbeit, wurde ein Nmap Skript in der Skriptsprache Lua geschrieben, welches als Proof-of-Concept für die Identifikation von Beckhoff-Geräten in industriellen Netzen dienen soll.

 

Vorgehensweise
Das Skript betrachtet offene Ports und laufende Dienste auf den Zielgeräten und vergleicht diese mit definierten Schablonen von Industrial Ethernet Geräten. Diese Schablonen legen folgende Informa-tionen fest:
1. Welche Dienste sollen / müssen auf dem Gerät laufen?
2. Welche Relevanz hat der Dienst für die Identifikation des Geräts?

 

Punkt 2 hat zur Folge, dass manche Dienste einen höheren Einfluss auf die Identifikation von Geräten haben als andere. Die Übereinstimmung eines analysierten Systems mit einer Schablone wird anhand eines "Matching Scores" angegeben. Diese Wertung gibt an, zu wie viel Prozent das System die Anforderungen an den Gerätetyp erfüllt.

 

Die Gewichtung der Dienste kann in drei verschiedene Kategorien eingeteilt werden, welche unterschiedliche Auswirkungen auf die Wertung haben.

 

MUSS-Dienste
MUSS-Dienste müssen auf jeden Fall auf einem festgelegten Port des Zielsystems laufen. Kann der Dienst nicht auf dem angegeben Port erkannt werden, wird die Wertung auf 0 gesetzt, was dazu führt, dass der Gerätetyp für das System ausgeschlossen werden kann. MUSS-Dienste erlauben es, ein Gerät eindeutig einem Hersteller zuzuweisen (z.B. der TwinCAT-Dienst bei Beckhoff-Geräten und ISO-TSAP bei Siemens SIMATIC-Geräten).

 

SOLL-Dienste
SOLL-Dienste haben eine geringere Gewichtung als MUSS-Dienste, führen trotzdem zu hohem Punkteabzug in der Wertung, wenn diese nicht vorhanden sind. SOLL-Dienste erlauben es, ein Gerät einem Modelltyp zuzuweisen (z.B. ISAKMP oder IKE bei Beckhoff CX9020).

 

Optionale Dienste
Optionale Dienste haben nur wenig Einfluss auf die Bewertung des Zielsystems. Wird ein optionaler Dienst auf einem System nicht erkannt, kommt es zu einem geringen Punkteabzug bei der Wertung. Bei optionalen Diensten handelt es sich um Dienste, welche nicht standardmäßig auf dem Gerät laufen, oder möglicherweise durch ein Firmware-Update vom Hersteller abgeschaltet wurden (z.B. Telnet bei Beckhoff CX5020).

 

Unterstützte Geräte
Drei Embedded-PCs bzw. PLCs werden bisher durch das Skript erkannt. Im folgenden werden die SOLL-, MUSS- und optionalen Dienste der Geräte aufgelistet und die jeweiligen Gewichtungen angegeben.

 

Beckhoff CX5020

  • MUSS-Dienste:
    • TwinCAT / ADS (UDP-Port 48899)
  • SOLL-Dienste: [-2 Punkte]
    • Webserver (TCP-Port 80)
    • IPC Diagnostics (TCP-Port 5120)
  • Optionale Dienste: [-1 Punkt]
    • Telnet (TCP-Port 23)
    • SNMP (UDP-Port 161)
    • CE Remote Desktop (UDP-Port 987)
    • SSDP (UDP-Port 1900)

 

Beckhoff CX9020

  • MUSS-Dienste:
    • TwinCAT / ADS (UDP-Port 48899)
  • SOLL-Dienste: [-2 Punkte]
    • Webserver (TCP-Port 80)
    • IPC Diagnostics (TCP-Port 5120)
    • ISAKMP (UDP-Port 500)
    • NAT-Traversal in the IKE (UDP-Port 4500)
  • Optionale Dienste: [-1 Punkt]
    • SNMP (UDP-Port 161)
    • SSDP (UDP-Port 1900)

 

Die Abbildung unten zeigt die Ausgabe des Skripts nach Scannen eines CX5020 Embedded-PCs. Das Skript gibt die jeweiligen Wertungen aller bekannten Geräte-Schablonen aus, sowie Informationen über laufende Dienste.

Ausgabe des Nmap Skripts industrial-ethernet.nse Ausgabe des Nmap Skripts industrial-ethernet.nse

Implementierung

Das Nmap Skript ist leicht erweiterbar und erlaubt es Entwicklern, neue Gerätetypen einzufügen. Gerätetypen sind in einer Tabelle services definiert, welche die verschiedenen Dienste festlegen. Die Struktur der Tabelle wird am Beispiel des Beckhoff CX5020 Embedded-PCs dargestellt:

 

Brute Force auf TwinCAT

Angriffe auf das ADS-Protokoll.zip
Archivdatei im ZIP Format [492.6 KB]

Die Gewichtung der Dienst-Kategorien kann anhand einer zweiten Tabelle weights festgelegt werden:

 

Einschränkungen

Nmap bietet NSE-Skripten nicht die Moglichkeit festzulegen, welche Ports gescannt werden sollen. Zu scannende Ports sind nur über eine Angabe anhand des Port-Parameters -p im Aufruf des Nmap-Kommandos möglich. Dies führt dazu, dass alle Ports explizit im Nmap-Kommando angegeben werden mussen.

 

Um das industrial-ethernet.nse-Skript auszuführen, muss deshalb folgendes Kommando eingegeben werden:

Außerdem ist es nicht möglich, die Resultate anderer Skripte, wie z.B. snmp-brute.nse oder http-enum.nse, in einem Skript zu verwerten. Dies hat zur Folge, dass für die Identifikation eine Reihe von Informationen der genutzten Dienste nicht verwertet werden können. Dennoch können die genannten Skripte in anderen Scans genutzt werden, um ein System manuell zu identifizieren.

 

Des Weiteren gibt das Skript nur eine Abschätzung des Gerätetyps zurück und kann nicht eindeutig einschätzen, um welches Gerät es sich tatsächlich handelt. Dies ist auf zwei Probleme zurückzuführen:

  • Im Rahmen der Arbeit wurden nicht genügend verschiedene Geräte analysiert, um die vorhandenen Geräte eindeutig voneinander abgrenzen zu konnen.
  • Durch Firmware- und Sicherheitsupdates von Herstellern ändern sich die laufenden Dienste und offenen Ports von Version zu Version. Dies erschwert das Erstellen von Schablonen, welche die Geräte anhand der laufenden Dienste erkennen sollen.

 

Trotz dieser Einschränkungen kann das Skript einen ersten Einblick in das Netzwerk geben und bei der Identifikation der genutzten Geräte behilflich sein.

 

 

NMAP ADS-Bibliothek

Nmap ADS-Bibliothek.zip
Archivdatei im ZIP Format [303.1 KB]

Hier finden Sie uns

Institut für IT-Sicherheit
in Industrial Control Systems
Ahornstr. 16
52074 Aachen

Kontakt

Senden Sie eine Email an Email-Link

 

oder nutzen Sie unser Kontaktformular.

SCADA Security Weiterbildung
Zertifizierung zum Certified SCADA Security Engineer
170721_CSSE-Newsletter.pdf
PDF-Dokument [42.7 KB]
Cyber Security Seminar
Inhalt des Cyber Security Seminars
170721_CSSE-Newsletter.pdf
PDF-Dokument [42.7 KB]
Einführung in den Standard IEC 62443
170721_IEC_62443-Newsletter.pdf
PDF-Dokument [41.4 KB]
Druckversion Druckversion | Sitemap
© ISICS-Institut - @-yet Industrial IT Security GmbH 2017