GPT-4 Assisted Detection Engineering

Mar 20 2023
Letzte Woche hat OpenAI sein neuestes multimodales Modell namens GPT-4 angekündigt und veröffentlicht. Im Gegensatz zu seinem Vorgänger GPT-3 ist es sachkundiger, kreativer, verarbeitet längere Texteingaben und ist in der Lage, Bilder zu interpretieren.

Letzte Woche hat OpenAI sein neuestes multimodales Modell namens GPT-4 angekündigt und veröffentlicht. Im Gegensatz zu seinem Vorgänger GPT-3 ist es sachkundiger, kreativer, verarbeitet längere Texteingaben und ist in der Lage, Bilder zu interpretieren. Das Unternehmen behauptet , dass die neue Technologie „bei verschiedenen beruflichen und akademischen Benchmarks eine Leistung auf menschlichem Niveau zeigt“. Obwohl ich nicht davon überzeugt bin, dass GPT-4 in absehbarer Zeit die Erkennungsteams ersetzen wird, glaube ich, dass es die Arbeitsweise von Fachleuten in allen Komponenten eines Cybersicherheitsprogramms verändern wird.

Damit habe ich mich für das ChatGPT Plus-Abonnement angemeldet und wollte herausfinden, wie Erkennungsingenieure GPT-4 nutzen können, um sie bei ihrer täglichen Arbeit zu unterstützen. Im folgenden Artikel werde ich Sie durch vier interessante Anwendungsfälle führen, die ich in meiner ersten Stunde Arbeit mit GPT-4 gefunden habe.

Entwurfsdokumentation

Obwohl es zeitaufwändig sein kann und manchmal mühsam erscheint, ist die Dokumentation möglicherweise der wichtigste Bestandteil der Erkennungsinhalte.

Sehen wir uns an, ob GPT-4 eine ADS-Dokumentation (Alerting and Detection Strategy) erstellen kann, die auf einer kurzen Beschreibung eines Erkennungsanwendungsfalls basiert, bei dem es um die böswillige Verwendung von PowerShell.exe geht:

Sehen wir uns nun an, wie eine Datenquelle für ein Sicherheitsereignis dokumentiert wird:

Eigentlich nicht schlecht, aber ich empfehle nicht, sich beim Verfassen von Dokumentationen ausschließlich auf GPT-4 zu verlassen. Ich denke, das daraus resultierende Ergebnis kann als grober Entwurf dienen, der einen Erkennungsingenieur in die Lage versetzen kann, eine ordnungsgemäße Dokumentation zu verfassen.

Prototyping-Anwendungsfälle

Lassen Sie uns eine Brainstorming-Sitzung bei GPT-4 veranstalten, um zu sehen, wie nützlich es in den frühen Phasen der Inhaltsentwicklung sein kann. Wie wäre es mit der Erkennung der Verwendung bösartiger Python-Pakete?

Lassen Sie uns die in Nr. 4 oben erwähnte Verwendung von Bandit noch ein paar Schritte weiterführen:

Mal sehen, ob einige nützliche Dokumentzeichenfolgen hinzugefügt werden:

Beim Testen war das oben erstellte Skript GPT-4 teilweise erfolgreich und die Verwendung von Bandit durch das Unterprozessmodul ist nicht ideal. Wenn es ausgeführt wird, ohne eine Paketversion anzugeben, tritt ein Fehler auf. Es wird jedoch erfolgreich ausgeführt, wenn eine Version angegeben wird.

Hier ist ein Beispielscan von urllib3 Version 1.26.15:

Ich vermute, dass die meisten von GPT-4 erstellten Python-Skripte gründliche Tests, Debugging und Refactoring erfordern. Dennoch ist es in der Lage, ein solides Fundament zu schaffen.

Mal sehen, ob GPT-4 dieses Skript auf eine Palo Alto xSOAR-Integration portieren kann:

Fortsetzung…

Endlich…

Leider habe ich keinen Zugriff auf eine Entwicklungsinstanz von xSOAR, um diese Integration zu testen. Basierend auf meiner Erfahrung bei der Erstellung von Integrationen in xSOAR scheint es, dass dies wahrscheinlich zu einer funktionierenden Integration führen wird.

Regelkonvertierung und -implementierung

Während es bereits mehrere Tools wie Uncoder zum Konvertieren von Erkennungsregeln gibt, ist GPT-4 in der Lage, Regeln zwischen verschiedenen Formaten zu konvertieren.

Sehen wir uns an, wie die Konvertierung der Sigma-Regel „ Passwort oder Schatten aus TMP-Pfad kopieren “ in Splunk SPL gehandhabt wird:

index=<INSERT_INDEX_NAME> sourcetype=<INSERT_SOURCETYPE_NAME> 
  proc_cmdline="*cp /etc/passwd* /tmp/*" OR 
  proc_cmdline="*cp /etc/shadow* /tmp/*" OR 
  proc_cmdline="*cp /etc/master.passwd* /tmp/*" OR 
  proc_cmdline="*cp /etc/group* /tmp/*" OR 
  proc_cmdline="*cp /etc/gshadow* /tmp/*" OR 
  proc_cmdline="*cp /etc/security/opasswd* /tmp/*" OR 
  proc_cmdline="*cp /etc/security/group* /tmp/*"

Mal sehen, ob stattdessen eine tstats-basierte Suche generiert werden kann:

| tstats `summariesonly` count from datamodel=Endpoint.Processes where Processes.process=*cp* Processes.process_file_name IN ("/etc/passwd", "/etc/shadow") by Processes.user, Processes.dest, Processes.process_name, Processes.process, Processes.process_file_name, Processes.parent_process_name, _time span=1s
| `drop_dm_object_name(Processes)`
| search process=*cp* AND (process_file_name="/etc/passwd" OR process_file_name="/etc/shadow") AND dest=*tmp*
| table _time, user, dest, process_name, process, process_file_name, parent_process_name

Um noch einen Schritt weiter zu gehen, bitten wir GPT-4, eine Splunk-Savedsearches.conf-Datei zu generieren (basierend auf dem obigen Ergebnis):

Schauen wir uns abschließend an, ob die obige Datei „savesearches.conf“ in einem technischen Add-on für Splunk gebündelt werden kann:

Stattdessen liefert es mir genaue Anweisungen, wie ich das bewerkstelligen kann.

Datenidentifikation und -normalisierung

Lassen Sie uns ein NGINX-Zugriffsprotokollereignis auf GPT-4 auslösen, um zu sehen, ob es die Daten und die Bedeutung jedes Felds versteht.

Hier ist der NGINX-Protokolleintrag:

47.29.201.179 - - [28/Feb/2019:13:17:10 +0000] "GET /?p=1 HTTP/2.0" 200 5316 "https://domain1.com/?p=1" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36" "2.75"

      
                

Schauen wir uns abschließend an, ob es möglich ist, Feldextraktionen mit einem regulären Ausdruck zu schreiben:

(?P<src>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s+-\s+-\s+\[(?P<timestamp>[^\]]+)\]\s+"(?P<http_method>[A-Z]+)\s+(?P<http_request>[^ ]+)\s+(?P<http_protocol>[^"]+)"\s+(?P<status>\d+)\s+(?P<bytes_out>\d+)\s+"(?P<http_referrer>[^"]*)"\s+"(?P<http_user_agent>[^"]+)"\s+"(?P<unknown_field>[^"]+)"

Abschluss

Zusammenfassend lässt sich sagen, dass GPT-4 alles andere als perfekt ist. Es liefert Ergebnisse, die mit Skepsis betrachtet und validiert und auf ihre Richtigkeit getestet werden sollten. Es scheint, dass Sie GPT-4 ähnlich wie bei der Verwendung der entsprechenden Begriffe in einer Suchmaschine die richtigen Fragen mit dem entsprechenden Detaillierungsgrad stellen müssen, um die genauesten Ergebnisse zu erzielen.

Ich glaube, dass GPT-4 ein hervorragendes Zusatztool für Erkennungsingenieure ist. Ich bin gespannt, wie es sich verbessert, wenn das Tool weiter wächst, häufiger genutzt wird und mehr Feedback erhält. Ich glaube, dass die Technologie bei richtiger Anwendung einen großen Mehrwert für die Funktionen eines Cybersicherheitsprogramms bieten wird.