Maximusdn - stock.adobe.com

Den Sicherheitsrisiken von KI-generiertem Code begegnen

Der Ausgabe generativer KI unkritisch zu vertrauen, ist meist keine gute Idee. Was für Zusammenfassungen und Text gilt, trifft auf KI-generierten Code in ganz besonderem Maße zu.

Auf großen Sprachmodellen basierende Assistenten wie GitHub Copilot und Amazon CodeWhisperer haben die Softwareentwicklungslandschaft revolutioniert. Diese KI-Tools steigern die Produktivität dramatisch, indem sie Standardcode generieren, komplexe Algorithmen vorschlagen und unbekannte Codebasen erklären. Eine Studie des digitalen Beratungsunternehmens Publicis Sapient hat ergeben, dass Teams durch den Einsatz von KI-generiertem Code bis zu 50 Prozent der Nettoentwicklungszeit einsparen können.

Mit der Einbindung von KI-gestützten Generatoren in die Entwicklungsabläufe ergeben sich jedoch auch Sicherheitsbedenken. Beachten Sie Folgendes:

  • Bringt KI-generierter Code neue Schwachstellen mit sich?
  • Können Sicherheitsteams einem Code vertrauen, den die Entwickler möglicherweise nicht vollständig verstehen?
  • Wie behalten die Teams die Sicherheitsaufsicht, wenn die Codeerstellung zunehmend automatisiert wird?

Im Folgenden werden die Sicherheitsrisiken von KI-generiertem Code für DevSecOps-Teams beleuchtet und es wird erläutert, wie Anwendungssicherheitsteams (AppSec) sicherstellen können, dass der verwendete Code keine Schwachstellen enthält.

Die Sicherheitsrisiken von KI-generiertem Code

Im Februar 2025 beschrieb Andrej Karpathy, ein ehemaliger Forscher und Gründungsmitglied von OpenAI, eine „neue Art des Programmierens ... bei der man sich ganz den Vibes hingibt, den Fortschritt begrüßt umarmt und vergisst, dass der Code überhaupt existiert“. Diese augenzwinkernde Aussage über Vibe Coding führte zu einer Flut von Kommentaren von Cybersicherheitsexperten, die sich besorgt über den potenziellen Anstieg anfälliger Software aufgrund der unkontrollierten Verwendung von Programmierassistenten auf der Grundlage großer Sprachmodelle (LLMs) äußerten.

Zu den fünf Sicherheitsrisiken bei der Verwendung von KI-generiertem Code gehören die folgenden.

Der Code basiert auf öffentlich zugänglichem Training

Das größte Sicherheitsrisiko von KI-generiertem Code besteht darin, dass Programmierassistenten auf öffentlich zugänglichen Codebasen trainiert wurden, von denen viele anfälligen Code enthalten. Ohne jegliche Schutzmechanismen reproduzieren sie anfälligen Code in neuen Anwendungen. In einer kürzlich erschienenen wissenschaftlichen Arbeit wurde festgestellt, dass mindestens 48 Prozent der KI-generierten Code-Vorschläge Sicherheitslücken enthielten.

Code wird ohne Berücksichtigung der Sicherheit erstellt

KI-gestützte Programmier-Tools verstehen den Sicherheitsansatz nicht und reproduzieren Code, der aufgrund der Häufigkeit in den Trainingsdaten korrekt erscheint. Dies ist vergleichbar mit dem Kopieren von Code aus Entwicklerforen in der Erwartung, dass er sicher ist.

Code könnte veraltete oder anfällige Abhängigkeiten verwenden

Eine damit zusammenhängende Sorge ist, dass Programmierassistenten bei ihren Versuchen, Programmieraufgaben zu lösen, anfällige oder veraltete Abhängigkeiten in neue Projekte einbringen könnten. Unkontrolliert kann dies zu erheblichen Schwachstellen in der Lieferkette führen.

Der Code gilt als geprüft und sicher

Ein weiteres Risiko besteht darin, dass Entwickler zu viel Vertrauen in KI-generierten Code haben. Viele Entwickler gehen fälschlicherweise davon aus, dass KI-Codevorschläge geprüft und sicher sind. Eine Snyk-Umfrage ergab, dass fast 80 Prozent der Entwickler und Anwender der Meinung sind, KI-generierter Code sei sicherer - ein gefährlicher Trend.

Es gilt zu bedenken Sie, dass KI-generierter Code nur so gut ist wie seine Trainingsdaten und Prompts. LLMs haben eine Wissensgrenze und sind sich neuer und aufkommender Schwachstellenmuster nicht bewusst. Wenn ein Prompt eine Sicherheitsanforderung nicht spezifiziert, fehlen dem generierten Code möglicherweise grundlegende Sicherheitskontrollen oder Schutzmaßnahmen.

Der Code könnte illegal das geistige Eigentum oder die Codebasis eines anderen Unternehmens nutzen

Programmierassistenten werfen erhebliche Probleme in Bezug auf geistiges Eigentum (IP) und Datenschutz auf. Codeassistenten können große Teile lizenzierten Open-Source-Codes wortwörtlich generieren, was zu einer Verunreinigung des geistigen Eigentums in der neuen Codebasis führt. Einige Tools schützen vor der Wiederverwendung großer Teile von Public-Domain-Code, aber KI kann ohne einen solchen Schutz urheberrechtlich geschützten Code oder proprietäre Algorithmen vorschlagen. Um sinnvolle Vorschläge zu erhalten, könnten Entwickler diese Tools mit urheberrechtlich geschütztem Code oder vertraulicher Logik versorgen. Diese Eingaben könnten gespeichert oder später beim Modelltraining verwendet werden, wodurch möglicherweise Geheimnisse preisgegeben werden.

Die Sicherheitsvorteile des KI-generierten Code

Viele der durch KI erzeugten Sicherheitsrisiken sind offensichtlich und haben zu Spekulationen über eine Krise in der Softwarebranche geführt. Die Vorteile sind jedoch ebenfalls beträchtlich und könnten die Nachteile überwiegen.

Verkürzte Entwicklungszeit

Programmieren mit generativer KI-Unterstützung kann die Entwicklung beschleunigen, indem sie Standardcode verarbeitet und so menschliche Fehler reduziert. Entwickler können Code für sich wiederholende Aufgaben schnell generieren und haben so mehr Zeit, sich auf sicherheitskritische Logik zu konzentrieren. Allein die Verringerung der kognitiven Belastung von Entwicklern bei der Erstellung von sich wiederholendem oder fehleranfälligem Code kann zu deutlich weniger anfälligem Code führen.

Vorschläge zur Sicherheit

KI-Modelle, die auf umfangreichen Codedatenbeständen trainiert wurden, können sichere Programmiertechniken berücksichtigen, die ein Entwickler übersehen könnte. Benutzer können ChatGPT beispielsweise auffordern, Sicherheitsfunktionen wie Eingabevalidierung, korrekte Authentifizierung oder Ratenbegrenzung in seine Codevorschläge aufzunehmen. ChatGPT kann auch Schwachstellen erkennen, wenn man es darum bittet - zum Beispiel kann ein Entwickler ChatGPT auffordern, den Code auf SQL Injection oder andere Schwachstellen zu überprüfen, und es versucht, Probleme zu identifizieren und Korrekturen vorzuschlagen. Diese On-Demand-Sicherheitsexpertise kann Entwicklern helfen, häufige Fehler früher im Lebenszyklus der Softwareentwicklung zu erkennen.

Sicherheitsbewertungen

Die wahrscheinlich größte Auswirkung, die KI-Assistenten auf die Sicherheitslage neuer Codebestände haben können, ist die Nutzung ihrer Fähigkeit, diese Codebestände zu analysieren und als Experte oder zweites Paar Augen zu fungieren. Indem man einen Assistenten - vorzugsweise einen anderen als den, der den Code generiert hat - mit einer Sicherheitsperspektive anspricht, unterstützt diese Art der KI-gesteuerten Codeüberprüfung die Bemühungen eines Sicherheitsexperten, indem sie schnell eine große Bandbreite an Themen abdeckt.

KI-Codierungsplattformen entwickeln sich weiter, um der Sicherheit höhere Priorität einzuräumen. GitHub Copilot hat beispielsweise ein KI-basiertes System zur Filterung von Sicherheitslücken eingeführt, das unsichere Codemuster blockiert. Gleichzeitig kann der KI-Editor Cursor mit Sicherheitsscannern wie Aikido Security integriert werden, um Probleme bereits beim Schreiben des Codes zu erkennen und Schwachstellen oder durchgesickerte Geheimnisse in der integrierten Entwicklungsumgebung (IDE) selbst hervorzuheben.

Bewährte Verfahren für die sichere Einführung KI-unterstützter Programmierung

Befolgen Sie diese bewährten Verfahren, um die sichere Verwendung von KI-Assistenten beim Programmieren zu gewährleisten:

  • Behandeln Sie KI-Vorschläge wie ungeprüften Code. Gehen Sie niemals davon aus, dass KI-generierter Code sicher ist. Behandeln Sie ihn mit der gleichen Sorgfalt wie ein Snippet von einem unbekannten Entwickler. Führen Sie vor dem Zusammenführen immer Code-Reviews, statische Codeanalyse und Sicherheitstests für KI-generierten Code durch. In der Praxis bedeutet dies, dass Sie für jeden Code von Copilot oder ChatGPT wie für jeden von Menschen geschriebenen Code statische Anwendungssicherheitstests (SAST), Abhängigkeitsprüfungen und manuelle Überprüfungen durchführen.
  • Behalten Sie die menschliche Aufsicht und Beurteilung bei. Verwenden Sie KI als Assistent, nicht als Ersatz. Stellen Sie sicher, dass die Entwickler in den Kreislauf eingebunden bleiben und verstehen und überprüfen, was der KI-Codegenerator erzeugt. Fördern Sie eine Kultur der Skepsis.
  • Nutzen Sie KI bewusst für die Sicherheit. Verwandeln Sie die Stärken des Tools in einen Vorteil für AppSec. Fordern Sie die KI beispielsweise auf, sich auf die Sicherheit zu konzentrieren, beispielsweise „Erkläre alle Sicherheitsimplikationen dieses Codes“ oder „Generiere diese Funktion unter Verwendung sicherer Codierungspraktiken (Eingabevalidierung, Fehlerbehandlung und so weiter.)“. Denken Sie daran, dass jede KI-Ausgabe ein Ausgangspunkt ist; das Entwicklungsteam muss sie überprüfen und korrekt integrieren.
  • Sicherheitsfunktionen aktivieren und einbeziehen. Nutzen Sie die integrierten Sicherheitsfunktionen des KI-Tools. Aktivieren Sie beispielsweise bei der Verwendung von Copilot die Optionen zum Filtern von Schwachstellen und zum Blockieren von Lizenzen, um riskante Vorschläge automatisch zu reduzieren.
  • Integrieren Sie Sicherheitsscans in den Arbeitsablauf. Ergänzen Sie die KI-Codierung mit automatischen Sicherheitstests in der DevSecOps-Pipeline. Verwenden Sie beispielsweise IDE-Plug-ins oder CI-Pipelines, die eine statische Analyse neuer Code-Beiträge durchführen - dadurch werden unsichere Muster erkannt, unabhängig davon, ob sie von einem Menschen oder einer KI geschrieben wurden. Einige moderne Setups integrieren KI und SAST; die Integration der Cursor-IDE mit Aikido Security beispielsweise kann Code in Echtzeit nach Geheimnissen und Schwachstellen scannen, während er geschrieben wird.
  • Festlegung von Richtlinien für den Einsatz von KI. Unternehmen sollten klare Richtlinien entwickeln, die festlegen, wie Entwickler KI-Code-Tools verwenden können. Definieren Sie, welche Arten von Daten in Prompts geteilt werden können und welche nicht, um das Durchsickern von Betriebsgeheimnissen zu verhindern.

Indem sie sowohl die Vorteile als auch die Risiken der KI-Codegenerierung berücksichtigen, können Entwickler und Sicherheitsexperten ein Gleichgewicht herstellen. Tools wie Copilot, ChatGPT und Cursor können die Produktivität steigern und sogar die Sicherheit durch schnellen Zugriff auf bewährte Verfahren und automatische Prüfungen verbessern. Aber ohne die richtigen Kontrollen und die richtige Einstellung können sie ebenso leicht neue Schwachstellen verursachen.

Erfahren Sie mehr über Anwendungs- und Plattformsicherheit