Ein Labor erstellen, um ICS/SCADA-Protokolle zu testen

Ein Labor erstellen, um ICS/SCADA-Protokolle zu testen

40414
Created On 09/26/18 19:10 PM - Last Modified 06/12/23 16:48 PM


Resolution


Einführung

Organisationen mit Industrial Control Systems (ICS) sind seit geraumer Zeit auf dem Weg, die Grenze zwischen IT (Corporate Network) und OT (ICS Network) zu sichern. Der erste Schritt für viele war, eine einfache Segmentierung zwischen den beiden Netzen mit Firewalls von Palo Alto Networks zu ermöglichen. Dies erfüllte erste Anforderungen an die Sichtbarkeit und Paketkontrolle für bösartige Aktivitäten. Da sich Unternehmen bemühen, die Sicherheitsposition innerhalb von ICS zu verbessern, besteht ein starker Bedarf, vor der Implementierung zu testen. Dieses Dokument wird zeigen, wie man die IT/OT-Grenze simuliert, um AppID, UserID und andere Funktionen innerhalb der Palo Alto Networks Firewall zu testen. Das gesamte Labor kann auf einem einzigen Laptop virtualisiert werden.

 

Anforderungen

 

Benötigte Artikel

Hinweise

Palo Alto vernetzt virtuelles Gerät

Getestet mit einem VM50, PANOS 8.0.6.

Windows Virtual Machine

Für Java-simulierte HMI-Schnittstelle.

MAC OSX

Getestet mit 10.12.6, erfordert Xcode-Umgebung (könnte auch auf einem Kali Linux VM installieren).

VM Fusion für Mac

Getestet mit Fusion pro v 8.5.8. VM-Workstation für Windows kann ebenfalls verwendet werden.

Modbuspal Java Machine

Mit v 1.6 b getestet. Simuliert die gepolsten SPS-Geräte.

Mbtget

Klon von github. Simuliert einen Wahl Server.

Java (auf Windows VM)

Getestet mit JRE v9, 64-Bit.

 

 

Diagramm

Benutzer hinzugefügt Bild

 

VM Fusion konfigurieren

 Die beiden im Labor eingesetzten Netzwerke sind beschriftet vmet2 (für SPS-Zone) und VMnet3 (für die Wahl Zone). Das gezeigte Beispiel ist für VM Fusion auf einem Mac, aber das gleiche Prinzip gilt für VM-Workstation. Hinweis: machen Sie noch keine Power auf der VM50 Firewall, es gibt zwei wichtige Schritte, die zuerst zu tun sind.

 

 

Vmnet2

Picture2.png

 

Vmnet3

Picture3.png

 

Ein Dritter Netzwerk-Adapter muss in den VM50-Firewall-Einstellungen in VM Fusion hinzugefügt werden.

 

Picture4.png

 

Weisen Sie die Adapter wie folgt zu:

  • Netzwerk-Adapter zu VMnet3
  • Netzwerk-Adapter 2 zu Vmnet 3
  • Netzwerk-Adapter 3 bis VMnet2

 

Die VM-Konfigurationsdatei muss für den 3. Netzwerk-Adapter bearbeitet werden. In Fusion, gehen Sie in die Bibliothek und klicken Sie mit der rechten Maustaste auf die VM50 und wählen Sie "Konfigurationsdatei im Finder anzeigen".

 

Picture5.png

 

Sie klicken dann mit der rechten Maustaste auf die VM-Datei im Ordner und wählen "Paket Inhalte anzeigen".

 

Picture6.png

 

Finden Sie die. vmx-Datei und bearbeiten Sie Sie mit TextEdit oder einem anderen Texteditor. Vergewissern Sie sich, dass Sie das virtuelle Gerät für Ethernet2 auf "vmxnet3" ändern, wie unten gezeigt. Speichern Sie die Datei. Der Paket Inhalts Ordner kann geschlossen werden. Aus der Fusions Bibliothek kann nun die VM50 Firewall gestartet werden.

 

Picture7.png

 

Um die Management-IP-Adresse der Firewall zu konfigurieren, folgen Sie den Anweisungen hier:

https://www.paloaltonetworks.com/Documentation/80/Pan-OS/Pan-OS/Getting-Started/Integrate-the-Firewall-into-your-Management-Network/Perform-Initial-Configuration

 

Zur Anwendung von Geräte Lizenzen und Registrierung:

https://www.paloaltonetworks.com/Documentation/80/Pan-OS/Pan-OS/Getting-Started/Activate-licenses-and-Subscriptions.html

 

Konfiguration der ersten Firewall-Richtlinien

 Die anfängliche Firewall-Richtlinie wird alle Anwendungen zwischen dem Wahlgebiet und der SPS-Zone ermöglichen. Alle Aktivitäten werden protokolliert und es gibt keine Profile, die an dieser Stelle konfiguriert werden.

 

Sicherheitsrichtlinien

Picture8.png

 

NAT-Politik

Picture9.png

 

Ethernet-Schnittstellen

Picture10.png

 

Denken Sie an die Standard-statische Route. Ich benutze den Standard-virtuellen Router. Für VMware Fusion ist das reservierte Standard-Gateway IP auf VMnet3 192.168.55.2.

 

Picture11. png

 

Adress Objekte

Picture12. png

 

Server und Client konfigurieren

 Auf dem Windows-Rechner, der als SPS-Geräte dienen wird, sollten Sie seine Ethernet-Schnittstelle in VMnet2 (auf der plczone der Firewall) setzen. Vergewissern Sie sich, dass die Standard-Gateway-Punkte auf die Firewall-Schnittstelle: 192.168.45.20.

 

Modbuspal wird zur Simulation von SPS-Registern verwendet. Sie können es hier herunterladen:

https://sourceforge.net/projects/modbuspal/files/modbuspal/RC%20version%201.6B/

 

Es erfordert die Java Runtime Environment. Sobald die Anforderungen erfüllt sind, öffnen Sie ein Befehlsfenster und gehen Sie in das Verzeichnis, in dem modbuspal wohnt, und starten Sie es wie unten gezeigt.

 

Picture13. png

 

Wir werden einen Modbus-Slave hinzufügen, indem wir "Add" aus dem Modbus-Sklaven Bereich auswählen.

 

Picture14. png

 

Fügen Sie jetzt einen Slave hinzu, dann klicken Sie auf "hinzufügen".

 

Picture15. png

 

Nennen Sie den neuen Slave, dann klicken Sie auf das Auge, um zu bevölkern.

 

Picture16. png

 

Unter der Registerkarte Holding Register fügen Sie die Anzahl der Register hinzu, die Sie testen möchten.

 

Picture17. png

 

Geben Sie Werte und optional Namen für die von Ihnen erstellten Adressen an.

 

Picture18. png

 

Machen Sie das gleiche für die Registerkarte Spulen. Fügen Sie binäre Werte und, optional, Namen hinzu.

 

Picture19. png

 

 

Schließen Sie das Slave-Fenster, wenn Sie fertig sind. Klicken Sie auf den Knopf aktivieren, um sicherzustellen, dass der Slave aktiviert ist. Dann klicken Sie auf Run, um den Simulator zu starten.

 

Picture20. png

 

Um das mbtget-Tool zu verwenden, um einen Wahl Server zu simulieren, müssen Sie das Tool von GitHub Klonen. Den kostenlosen Mac/Windows-Client können Sie hier herunterladen:

https://Desktop.GitHub.com/

 

Optional kann das Tool auf eine virtuelle Kali-Linux-Maschine geklont werden. Um das mbtget-Tool zu klonen, folgen Sie diesen Anweisungen von einem Terminal oder einer Befehlsaufforderung.

 

Picture21. png

 

Hilfe Bildschirm für mbtget:

 

Picture22. png

 

Auf dem Laptop, auf dem die Bilder gehostet werden, muss eine statische Route erstellt werden, um den SPS-Simulator zu erreichen.

 

Für Mac:

# sudo Route-n Add-net 192.168.45.0/24192.168.55.20  

 

Die Umwelt testen

Um sicherzustellen, dass die Bilder richtig funktionieren, öffnen Sie ein Terminalfenster und initiieren Sie eine Umfrage mit mbtget. Die daraus resultierende Umfrage soll die Werte aufzeigen, die Sie in den Holding Registern innerhalb von modbuspal erstellt haben. Der Wert nach "-n" sollte mit der Anzahl der von Ihnen erstellten Register übereinstimmen.

 

Picture23. png

 

Modbus mit AppID testen

 

Um zu einer positiveren Sicherheitsposition zu gelangen, können Sie mit der Implementierung von AppID beginnen. Hier fügen wir einfach die Modbus-Anwendung und die unter Funktionen hinzu, die wir erlauben wollen. In meinem Beispiel werde ich die Modbus-Base und Modbus-Read-Holding-Register als die einzigen erlaubten Anwendungen hinzufügen, die von der pollingzone in die plczone verwendet werden.

 

Picture24. png

 

Nach dem Ausführen des mbtget-Werkzeugs, überprüfen Sie die Protokolle, um die Anwendung zu sehen, und dass die Politik die Aktion erlaubt.

 

Picture25. png

 

In unserer AppID-Regel erlauben wir Leseanfragen nur für das halten von Registern. Wir können mbtget verwenden, um eine Spule zu lesen. Der Antrag scheitert.

 

Picture26. png

 

Das Protokoll zeigt, dass die Anfrage fehlgeschlagen ist und dass Sie versucht hat, ein Spulen Register zu lesen, was wir in der Richtlinie nicht zulassen.

 

Picture27. png

 

Modbus mit AppID und UserID testen

 

Um die Angriffsfläche noch weiter zu verringern, zwingen Sie UserID, nur das halten von Register von bestimmten Benutzern zu erlauben.

 

Unter Gerät/lokale Benutzerdatenbank/Benutzer, fügen Sie zwei Test-Benutzer.

 

Picture28. png

 

Unter Gerät/lokale Benutzerdatenbank/Benutzergruppen-platzieren Sie jeden Benutzer in einer anderen Gruppe. In meinem Beispiel habe ich user1 der Gruppe "canreadholding" und User2 der Gruppe "canreadcoils" hinzugefügt.

 

Picture29. png

 

Erstellen Sie unter Geräte-/Authentifizierungs Profil ein neues Authentifizierungs Profil. Wählen Sie die lokale Datenbank für den Typ.

 

Picture30. png

 

Wählen Sie unter der Registerkarte Advanced "alle" Benutzer aus.

 

Picture31. png

 

Unter Netzwerk/Interfaces/Loopback erstellen Sie eine Loopback-Adresse, um Benutzer für die Authentifizierung umzuleiten.

 

Picture32. png

 

Geben Sie eine IP-Adresse unter der Registerkarte IPv4 an. Vergewissern Sie sich, dass es aus dem gleichen Bereich wie Ihre pollingzone ist.

 

Picture33. png

 

Unter Geräte-/Benutzeridentifikation/Captive-Portal, bearbeiten Sie die Gefangenen Portal-Einstellungen wie gezeigt. Verwenden Sie die soeben erstellte IPv4-Loopback-Adresse.

 

Picture34. png

 

Erstellen Sie unter Richtlinien/Authentifizierung eine neue Authentifizierungs Richtlinie mit den gezeigten Werten.

 

Picture35. png

 

Unter Richtlinien/Sicherheit, bearbeiten Sie die erste Regel und fügen Sie die Benutzergruppe für Reading Holding Register.

 

Picture36. png

 

Die geänderte Regel sollte so aussehen.

 

Picture37. png

 

Fügen Sie eine neue Regel hinzu, um den Authentifizierungs Verkehr zum Loopback zu ermöglichen, so dass das Captive-Portal funktioniert.

 

Picture38. png

 

Übernehmen Sie die Änderungen.

 

Versuchen Sie, die Holding-Register mit mbtget zu lesen und wir sehen, dass es scheitert.

 

Picture39. png

 

Das Verkehrsprotokoll enthüllt, dass die Lese Anfrage durch die deuttdeny-Regel verweigert wurde. Das liegt daran, dass die UserID-Anforderung nicht befriedigt wurde.

 

Picture40. png

 

Um die Benutzerauthentifizierung in diesem Setup zu initiieren, klicken Sie auf die Loopback-Adresse, die für Captive Portal erstellt wurde, und melden Sie sich beim Benutzer an, der halte Register lesen darf.

 

Picture41. png

 

Unter Monitor/User-ID sehen Sie den authentifizierten Benutzer in der Liste.

 

Picture42. png

 

Die mbtget-Umfrage erneut ausprobieren und es sollte wieder gelingen.

 

Picture43. png

 

Die Verkehrsprotokolle zeigen auch den authentifizierten Benutzer, der mit dem Register "Read" verbunden ist.

 

Picture44. png

 

Aus der Firewall CLI geben Sie diese beiden Befehle aus, um alle UserID-Daten zu löschen.

 

Picture45. png

 

Initiieren Sie das Login erneut mit einem anderen Benutzer, der nicht befugt ist, Holding Register zu lesen.

 

Picture46. png

 

Versuchen Sie, die mbtget Register lesen und sehen, dass es für user2 scheitert.

 

Picture47. png

 

Beachten Sie, dass der Grund für den Ausfall in den Verkehrs Protokollen ist aufgrund von deuttdeny, da der Verkehr nicht mit einer anderen Regel übereinstimmt. Insbesondere ist User2 kein Mitglied der canreadholding-Gruppe, so dass das Register Read ausfällt.

 

Picture48. png

 

 

Zusammenfassung

Es gibt weitere Szenarien, die mit diesem virtuellen Labor genutzt werden können, die die Sicherheitsposition innerhalb der ICS-Umgebung weiter erhöhen können. Die Hinzufügung einer Multi-Factor-Authentifizierung für Benutzer, die beispielsweise Zugang zum OT-Netzwerk erhalten. Die Zugabe von Sicherheits Profilen zum Regelwerk ist eine andere. Angriffe können auch mit Werkzeugen wie Metasploit simuliert werden. Sehen Sie diesen Artikel für Ideen zur Verwendung der Log-profile-Funktionen von Pan-OS 8,0, um auf bösartige Aktivitäten zu achten und möglicherweise ICS-Nutzer in einem Quarantäne Zustand auf eine Verletzung zu setzen: https://Live.paloaltonetworks.com/T5/Learning-Articles/ Schutz-ICS-und-SCADA-Netzwerke-mit-Pan-OS-8-0/Ta-p/180651  

 



Actions
  • Print
  • Copy Link

    https://knowledgebase.paloaltonetworks.com/KCSArticleDetail?id=kA10g000000Cm2pCAC&lang=de&refURL=http%3A%2F%2Fknowledgebase.paloaltonetworks.com%2FKCSArticleDetail

Choose Language