Vererbte Verwundbarkeiten : KI-generierter Code – eine wachsende Bedrohung für die Softwaresicherheit
Generative Modelle künstlicher Intelligenz (KI) unterstützen Entwickler zunehmend beim Programmieren von Software. Was als Revolution der Produktivität gefeiert wird, birgt jedoch erhebliche Risiken für die Cybersicherheit. Unser Autor sieht einen besorgniserregenden Trend: Die wachsende Abhängigkeit von KI-generierten Codevorschlägen könnte so zu einer Flut neuer Sicherheitslücken in aktuellen und zukünftigen Softwareprojekten führen.
Das Kernproblem KI-automatisierter Softwareentwicklung liegt in den Trainingsdaten der genutzten Large Language-Models (LLMs): Diese Modelle werden mit enormen Mengen an Code trainiert – in manchen Fällen Open-Source-Code und in vielen Fällen Code, der Sicherheitslücken enthält. Wenn Entwickler generative KI-Tools nutzen, replizieren und verstärken die Modelle anschließend in den Trainingsdaten vorhandene unsichere Programmierpraktiken in beispiellosem Ausmaß.
Besonders problematisch: Die Sicherheitsmängel im generierten Code sind oft subtil und schwer zu erkennen, da sie in syntaktisch korrektem Code eingebettet sind. Dies schafft ein falsches Sicherheitsgefühl bei Entwicklern, die möglicherweise nicht jede Zeile des KI-generierten Codes akribisch überprüfen.
Alarmierender Forschungsstand
Wissenschaftliche Untersuchungen bestätigen diese Bedenken mit alarmierenden Zahlen. Wissenschaftler des Center for Cybersecurity der New York University (NYU) stellten kurz nach dessen Veröffentlichung fest [1], dass etwa 40% des von GitHub Copilot generierten Codes bekannte Sicherheitslücken enthielten (vgl. Abb. 1).
Ebenso beunruhigend sind die Ergebnisse einer Studie an der Stanford University [2], die zeigte, dass Entwickler, die LLMs verwenden, eher dazu neigen, unsicheren Code zu produzieren – und gleichzeitig ein übermäßiges Vertrauen in dessen Sicherheit zu haben. Diese gefährliche Kombination aus technischen Mängeln und menschlichem Fehlverhalten potenziert die Risiken.
Typische Schwachstellen in KI-Code
Die durch KI-generierte Software eingeführten Schwachstellen umfassen ein breites Spektrum (vgl. Abb. 2):
- Unsichere Standardeinstellungen: KI-generierte Konfigurationen enthalten oft schwache Sicherheitseinstellungen wie leicht zu erratende Passwörter oder zu großzügige Zugriffsrechte.
- Klassische Schwachstellen: KI-Modelle generieren häufig Code, der anfällig für lang bekannte Sicherheitsprobleme wie SQL-Injection und Cross-Site-Scripting (XSS) ist.
- Supply-Chain-Angriffe durch Abhängigkeiten: Ein aktuelles Beispiel hat eine besonders raffinierte Angriffsform gezeigt, bei der Angreifer Softwarepakete mit Namen registrieren, die von KI-Systemen halluziniert wurden, sodass der generierte Code automatisch diese bösartigen Abhängigkeiten einbindet. Gleichzeitig kann KI auch selbstständig unsicheren Code erzeugen und veröffentlichen, der später als Abhängigkeit in anderen Projekten verwendet wird.
- Fehlerhafte Implementierung von Standards und RFCs: Wenn KI Code basierend auf technischen Standards generiert, können Missverständnisse oder Mehrdeutigkeiten in den Spezifikationen zu kritischen Sicherheitslücken führen. Die Forescout-Forschungsprojekte Amnesia:33 [3] und Name:Wreck [4] haben bereits vor einigen Jahren gezeigt, dass Fehlinterpretationen von RFCs (etwa beim TCP Urgent Pointer und der DNS-Kompression) zu wiederkehrenden Schwachstellen führen.
Dass die meisten dieser Schwachstellen nicht neu sind, hilft dabei wenig. Die KI reproduziert bekannte Sicherheitsprobleme, welche die Cybersecurity-Community seit Jahren zu bekämpfen versucht – nun aber in exponentiell größerem Umfang.
Darüber hinaus können KI-Modelle selbst anfällig für Angriff e sein, die zu Malicious Code führen. Als Beispiele sind hierzu Prompt-Injection (Angreifer gestalten Eingaben so, dass sie Sicherheitsschranken umgehen) und Data-Poisoning (Angreifer schleusen bösartige Daten in die Trainingsphase ein, um später schädliche Ergebnisse zu erzeugen) zu nennen.
Produktivität versus Sicherheit
Die Vorteile der generativen KI für die Softwareentwicklung sind unbestreitbar: Entwickler können Code schneller schreiben, repetitive Aufgaben automatisieren und komplexe Probleme mit KI-Unterstützung lösen. Diese Produktivitätssteigerung hat jedoch ihren Preis: Sicherheitslücken werden dabei in einem Tempo eingeführt, das die menschlichen Kapazitäten zur Erkennung und Behebung überfordert.
Diese wachsende Anhäufung von unbehobenen Sicherheitsmängeln wird oft als „Security Debt“ bezeichnet – eine Metapher, welche die langfristigen Kosten kurzfristiger Produktivitätsgewinne veranschaulicht. Je länger diese Schulden unbezahlt bleiben, desto größer wird das Risiko kostspieliger Sicherheitsverletzungen!
Zudem sind die Auswirkungen dieses Problems nicht auf einzelne Unternehmen beschränkt: Da KI-generierter Code auch in Open-Source-Bibliotheken und gemeinsam genutzten Komponenten landet, können sich Schwachstellen kaskadenartig durch das gesamte Software-Ökosystem verbreiten.
Risiken bei Security-Tools
Ein oft übersehenes Risiko betriff t überdies den Einsatz von KI zur Generierung von Sicherheitsmaßnahmen selbst. KI-generierter Code für Sicherheitsanwendungen mag zwar nicht unmittelbar angreifbar sein, kann sich jedoch als ineffektiv beim Erkennen und Blockieren von bösartigem Verhalten erweisen. Dies betrifft beispielsweise
- Erkennungsregeln in Netzwerk-Intrusion-Detection-Systemen (NIDS),
- Signaturen in Endpoint-Detection-and-Response-Lösungen (EDR),
- YARA-Regeln zur Malware-Erkennung,
- aber auch andere Sicherheitsfilter und -mechanismen.
Wenn KI unsichere oder unzureichende Sicherheitsmaßnahmen generiert, entstehen Lücken in der Verteidigungslinie, die Angreifer ausnutzen können – ein doppeltes Risiko für die Cybersicherheit.
Strategien zur Risikominimierung
Um die mit KI-generiertem Code verbundenen Risiken zu minimieren, ist ein mehrdimensionaler Ansatz erforderlich:
- Rigoroser Code-Review: Menschliche Überwachung bleibt entscheidend, um Sicherheitslücken zu erkennen, die KI-Modelle übersehen. Das Vier-Augen-Prinzip sollte strikt eingehalten werden – besonders bei sicherheitskritischen Komponenten.
- Automatisierte Sicherheitstests: Die Integration von Sicherheitsanalysetools direkt in die Entwicklungspipeline kann helfen, um Schwachstellen möglichst in Echtzeit zu identifizieren. Tools zur statischen Codeanalyse, Software-Composition-Analysis sowie dynamische Sicherheitstests sollten daher standardmäßig implementiert werden.
- Entwickler-Schulungen: Die Sensibilisierung von Entwicklern für die potenziellen Fallstricke KI-generierten Codes und die Förderung einer gesunden Skepsis sind unerlässlich. Entwickler sollten verstehen, dass KI ein Werkzeug ist – kein Ersatz für Sicherheitsexpertise.
- Überprüfung von Abhängigkeiten: Es braucht strenge Kontrollen für Code-Abhängigkeiten, um Supply-Chain-Angriff e zu verhindern. Dazu sollte man alle externen Bibliotheken und Pakete gründlich validieren, bevor man sie in eigene Projekte integriert.
- Besondere Vorsicht bei der Implementierung von Standards: Wo KI zur Implementierung technischer Standards dient, sollten die Ergebnisse unbedingt von Experten überprüft werden, die mit den Fallstricken und Mehrdeutigkeiten der Spezifikationen vertraut sind.
- Sorgsame KI-Security: Nicht zuletzt müssen auch KI-Tools und -Modelle selbst sicher entwickelt werden – unter Verwendung von Eingabevalidierung und kontinuierlicher Überwachung.
Fazit
Während generative KI beginnt, die Softwareentwicklung zu revolutionieren, bringt ihre aktuelle Implementierung erhebliche Sicherheitsherausforderungen mit sich. Die Bequemlichkeit und Geschwindigkeit, die sie bietet, sind mit dem Risiko verbunden, eine Flut neuer Schwachstellen in unsere digitale Infrastruktur einzuführen.
Unternehmen sollten KI-gestützte Entwicklungstools dennoch nicht meiden, sondern einen proaktiven und sicherheitsbewussten Ansatz verfolgen. Die Integration von Sicherheitsüberlegungen in jeden Schritt des KI-gestützten Entwicklungsprozesses ist letztlich entscheidend, um die Vorteile dieser Technologie zu nutzen, ohne die Sicherheit und Integrität der Codebasis zu gefährden.
Die Zukunft der sicheren Softwareentwicklung liegt nicht in der kategorischen Ablehnung von KI, sondern in der intelligenten Kombination von KI-Effizienz mit menschlicher Sicherheitsexpertise. Nur so lässt sich das volle Potenzial der generativen KI ausschöpfen, ohne ein unkalkulierbares Sicherheitsrisiko einzugehen.
Daniel dos Santos ist Senior Director und Leiter der Forschungsabteilung von Forescouts Cybersecurity-Forschungsabteilung Vedere Labs und ist Mitglied mehrerer Vereinigungen zum Austausch von Bedrohungsdaten wie EE-ISAC, OTISAC, ETHOS und CISA JCDC.
Literatur
[1] Hammond Pearce, Baleegh Ahmad, Benjamin Tan, Brendan Dolan-Gavitt, Ramesh Karri, Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions, Dezember 2021, https://arxiv.org/abs/2108.09293
[2] Neil Perry, Megha Srivastava, Deepak Kumar, Dan Boneh, Do Users Write More Insecure Code with AI Assistants?, Dezember 2023, https://arxiv.org/abs/2211.03622
[3] Daniel dos Santos, Stanislav Dashevskyi, Jos Wetzels, Amine Amri, Amnesia:33, How TCP/IP Stacks Breed Critical Vulnerabilities in IoT, OT and IT Devices, Forescout Research Labs Report, Dezember 2020, www.forescout.com/resources/amnesia33-how-tcp-ipstacks-breed-critical-vulnerabilities-in-iot-ot-and-it-devices/
[4] Daniel dos Santos, Stanislav Dashevskyi, Amine Amri, Jos Wetzels, Shlomi Oberman, Moshe Kol, Name: Wreck, Breaking and fixing DNS implementations, Forescout Research Labs & JSOF Report, April 2021, www.forescout.com/resources/namewreck-breaking-andfi xing-dns-implementations/