Individuelle app erstellen-IDs FallStudie: Fortnite

Individuelle app erstellen-IDs FallStudie: Fortnite

47501
Created On 09/25/18 19:10 PM - Last Modified 06/12/23 16:04 PM


Resolution


Problem

 

Fortnite ist ein Online-Multiplayer-Spiel, für PC und andere Geräte. Dieses Spiel ist häufig unter den Schülern des Schul Zeitalters und ist eines von vielen solchen spielen, die Internate in Ihrem Netzwerk unterbringen müssen.

 

Vordefinierte App-IDs sind für eine Reihe bekannter Spiele vorgesehen. Für ganz neue oder ungewöhnliche Spiele sind App-IDs aber möglicherweise nicht verfügbar. Darüber hinaus werden diese Spiele häufig aktualisiert, und Kommunikationsformate können sich schnell ändern. Daher können auch die Spiele mit vordefinierten App-IDs scheitern, bis die Änderung erkannt und neue Signaturen veröffentlicht werden. Palo Alto Networks bietet die Möglichkeit, kundenspezifische App-IDs zu erstellen, die es Administratoren ermöglichen, eine Vielzahl von Faktoren im Netzwerkverkehr zu nutzen, um Anwendungen zu identifizieren.

 

Ein Großteil des mit solchen Spielen verbundenen Netzverkehrs Laufe über gängige Netzwerkprotokolle, etwa HTTPS. AllerDings erfordert ein gewisser Verkehr, insbesondere die in-Game-Kommunikation, schnellere Protokolle mit weniger Overhead. Daher ist es üblich, UDP-Ströme über hohe Ports zu beobachten, die von der NGFW als "Unknown-UDP" eingestuft werden.

Schulen und andere Organisationen haben in der Regel die Pflicht, diesen nicht identifizierten Verkehr zu blockieren, und daher ist es notwendig, eigene APP-IDs für diese Verkehrsmuster zu identifizieren und zu erstellen. Aufgrund der Notwendigkeit, dass dieser Traffic so leicht wie möglich ist, ist die Menge an beliebigen Inhalten in diesen Nachrichten, die als Signatur verwendet werden können, gering.

 

Prozess

Finden Sie den nicht identifizierten Verkehr

 

Die meisten Online-Spiele kommunizieren auf vielfältige Weise. Zum Beispiel, wenn das Spiel zum ersten Mal gestartet wird, wird HTTPS Traffic verwendet, um den Benutzer auf einem Buchhaltungsserver zu authentifizieren und dem Spiel Kundeninformationen über derzeit laufende Spiele und Server zu geben, die gemeinhin als Lobby bekannt sind. Wenn das Spiel selbst beginnt, wird eine Kommunikationssitzung zum Spielserver eingerichtet, um Informationen über Spieler Bewegungen und Spielzustand zu liefern. Der größte Teil dieses Verkehrs wird an nicht vorhersehbare Orte gesendet, und ein Teil des Verkehrs wird über unvorhersehbare Häfen gesendet.

Ein Großteil des Datenverkehrs wird jedoch als Anwendung identifiziert, auch wenn er so breit wie "SSL" ist, und diese Anwendungen sind in der Regel über die Firewall erlaubt. Der erste Schritt ist daher, den spezifischen Verkehr zu identifizieren, der blockiert wird, und dies kann leicht aus dem NGFW-Verkehrsprotokoll über die Registerkarte Monitor geschehen. Das HinzuFügen zusätzlicher Spalten, wie "to Port", kann helfen, den Verkehr später zu identifizieren.

 

BildschirmFoto 2018-04-12 bei 10.46.47. pngErmittlung der Sitzung im Verkehrsprotokollsammeln Sie Verkehrs Proben von mehreren Clients

 

Es ist notwendig, Paketaufnahmen von mehreren Clients zu sammeln, um die richtigen Signaturen innerhalb dieses Verkehrs zu finden. Die Paketaufnahmen können entweder lokal auf dem Client, über wireshark oder über die Firewall durchgeführt werden. Um Muster zu eliminieren, die mit Benutzern oder Maschinen in Zusammenhang stehen, ist es notwendig, eine breite Palette von Paketaufnahmen zu sammeln, von verschiedenen Rechnern und mit unterschiedlichen Benutzerkonten. Damit ist sichergestellt, dass nur für das Spiel relevante Unterschriften identifiziert werden.

 

Paketaufnahmen analysieren und relevante Verkehrsströme exportieren

 

Sobald die Paketaufnahmen gesammelt sind, können die entsprechenden Traffic-Streams identifiziert und exportiert werden, wobei wireshark es "Follow TCP Stream" und "Follow UDP Stream"-Funktionen verwenden.

Verwenden Sie für jede Paket Aufnahme die Ausgabe des Firewall-Monitors, um die Beschaffenheit des betreffenden Streams zu verstehen, zum Beispiel UDP-Port 9011, und verwenden Sie den Wireshark-Filter, um diesen Verkehr zu finden.

 

BildschirmFoto 2018-04-12 bei 10.52.41. pngMit Wireshark, um den Fortnite UDP-Stream zu identifizieren

 

Klicken Sie mit der rechten Maustaste auf ein Paket in diesem Stream und wählen Sie Follow > UDP Stream. Wählen Sie "Daten anzeigen und speichern als Hex-Dump", und klicken Sie dann auf Speichern als... um Daten in eine Textdatei auszugeben.

 

BildschirmFoto 2018-04-12 bei 10.55.56. pngWireshark-Follow UDP Stream

WiederHolen Sie diesen Schritt für jede Paket Aufnahme.

 

Ähnliche Datenmuster in jeder Stream-Ausgabe finden

 

Nun, da eine Vielzahl von Datenstrom Proben erstellt wurden, können diese Streams verglichen werden, um die identischen Muster zu finden. EIN Befehl wie dwdiff ist hier nützlich. Im Gegensatz zu anderen diff-Tools, die auf passende Daten Linien angewiesen sind, arbeitet dwdiff nach passenden Daten auf der Wortebene. Dwdiff ist ein Befehl, der innerhalb der BASH-Shell läuft. Es ist auch für Mac-Geräte gemäß diesen Anweisungen verfügbar (ähnliche Ergebnisse sollten mit dem wdiff-Befehl möglich sein, der für Windows verfügbar ist). Die Verwendung des Befehls in folgender Weise wird eine neue Datei mit den passenden Strings erstellen...

 

dwdiff-12 Stream1. txt Stream2. txt > diff1. txt

 

Die Ausgabe dieses Befehls kann dann gegen weitere Streams ausgeführt werden, um die ähnlichen Muster weiter zu verfeinern...

 

dwdiff-12 diff1. txt stream3. txt > DIFF2. txt

 

Die resultierende Datei zeigt alle Muster, die über alle Streams abgestimmt sind.

 

BildschirmFoto 2018-04-12 bei 11.00.30. pngAusgabe vom dwdiff-Befehl mit Signatur

 

Signatur zu Custom APP-ID HinzuFügen

 

Alle daraus resultierenden Hex-Arrays, die länger als 7-Bytes sind, können über die NGFW-Schnittstelle zu einer eigenen App-ID hinzugefügt werden. Um eine neue APP-ID zu erstellen, loggen Sie sich in die NGFW ein und navigieren Sie zu Objekten > Anwendungen > Add. Alternativ können Sie eine eigene APP-ID auswählen, die Sie aktualisieren möchten.

Konfigurieren Sie die Eigenschaften der Anwendung in der Konfiguration und den erweiterten Registern. Dann, unter Signaturen, fügen Sie eine neue Signatur zu der Anwendung. Erstellen Sie eine neue Bedingung, wählen Sie "Pattern Match" als Operator, wählen Sie den richtigen Kontext aus und geben Sie das gefundene Hex-Muster ein, umgeben von/x-Parametern.

 

BildschirmFoto 2018-04-12 bei 11.02.49. pngErstellung einer eigenen App-ID-Signatur

Sobald alle Signaturen hinzugefügt sind, überTragen Sie die Firewall-Konfiguration und den Test. Hat die Unterschrift funktioniert, sollte sich der bisher unbekannte Verkehr auf den Namen der angepassten APP-ID auflösen. Die Politik kann dann so konfiguriert werden, dass definiert wird, wie und wann das Spiel erlaubt sein soll (dh, Pensionen nach der Schulzeit). Schließlich testen Sie das Spiel, um zu überprüfen, ob die Firewall die Anwendung korrekt identifiziert.

 

BildschirmFoto 2018-04-12 bei 11.07.00. png

 

Updates

 

Beim Testen der APP-Signatur wurde eine neue Version des Fortnite-Clients veröffentlicht, und nach diesem Update gelang es der APP-ID-Signatur nicht, den Verkehr zu identifizieren. Um zu lösen, wiederholten wir die obigen Schritte mit dem neuen Client und fanden heraus, dass die zuvor gefundene Signatur geändert wurde (obwohl die neue Signatur über alle Geräte hinweg konsistent war, die den neuen Client ausführen.)

 

Fazit

 

EIN Signatur basierter Ansatz ist der effektivste Weg, um den Anwendungs Verkehr positiv zu identifizieren, und wo unvorhersehbare Ports und IP-Adressen von Anwendungen genutzt werden, kann dies der einzige Weg sein. Die Firewalls der nächsten GeneRation von Palo Alto Networks bieten die Möglichkeit, individuelle "App-IDs" zu erstellen, wobei Signaturen in den Anwendungs Verkehrsströmen verwendet werden. Für Organisationen, die maßgeschneiderte oder ungewöhnliche Anwendungen verwenden, ist APP-ID eine effektive Möglichkeit, solche Anwendungen zu ermöglichen und gleichzeitig einen NULL-Trust-Ansatz für den Netzwerkverkehr durchzusetzen.



Actions
  • Print
  • Copy Link

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

Choose Language