LLMs: Unsicherer Code ohne Sicherheitsanweisungen

LLMs und unsichere Codegenerierung: Das Standardszenario

Die neueste Forschung von Backslash Security hat einen besorgniserregenden Trend aufgedeckt: Große Sprachmodelle (LLMs) wie GPT-4.1 sowie andere weit verbreitete Modelle neigen dazu, standardmäßig unsicheren Code zu generieren. Dies bedeutet, dass der von diesen KI-Systemen erzeugte Code ohne spezifische Anweisungen oder Richtlinien, die sich auf die Sicherheit konzentrieren, oft anfällig für gängige Schwachstellen und Exploits ist. Die Forschung deutet jedoch auch darauf hin, dass die Sicherheit des generierten Codes durch zusätzliche Sicherheitsrichtlinien oder die Implementierung regelbasierter Governance erheblich verbessert werden kann.

Um dieses Problem weiter zu untersuchen, hat Backslash Security die Einführung des Model Context Protocol (MCP) Servers zusammen mit Regeln und Erweiterungen für Agentic Integrated Development Environments (IDEs) angekündigt. Diese Tools zielen darauf ab, die in LLM-generiertem Code identifizierten Sicherheitslücken zu beheben und Entwicklern die Möglichkeit zu geben, sicherere Anwendungen zu erstellen.

Backslash Security führte eine Reihe von Tests mit sieben verschiedenen Versionen gängiger LLMs durch, darunter die GPT-Modelle von OpenAI, Claude von Anthropic und Gemini von Google. Ziel war es, zu bewerten, wie verschiedene Prompting-Techniken die Fähigkeit der Modelle beeinflussen, sicheren Code zu generieren. Die Sicherheit der Codeausgabe wurde anhand ihrer Widerstandsfähigkeit gegen zehn Common Weakness Enumeration (CWE) Anwendungsfälle bewertet, die eine Reihe gängiger Softwareschwachstellen darstellen.

Die Ergebnisse dieser Tests zeigten durchweg, dass sich die Sicherheit des generierten Codes mit ausgefeilteren Prompting-Techniken verbesserte. Das übergreifende Thema war jedoch, dass alle getesteten LLMs im Allgemeinen unsicheren Code erzeugten, wenn sie sich selbst überlassen wurden. Dies deutet darauf hin, dass diese Modelle in ihren Standardkonfigurationen der Sicherheit keine Priorität einräumen und es oft versäumen, gängige Codierungsschwächen zu beheben.

Naive Prompts: Ein Rezept für Anfälligkeit

Bei einfachen, ‘naiven’ Prompts, die keine Sicherheitsaspekte explizit erwähnten, generierten alle getesteten LLMs unsicheren Code, der für mindestens vier der zehn gängigen CWEs anfällig war. Dies unterstreicht das inhärente Fehlen von Sicherheitsbewusstsein in diesen Modellen, wenn sie ohne spezifische Anleitung arbeiten.

Die Auswirkungen von sicherheitsorientierten Prompts

Prompts, die im Allgemeinen einen Bedarf an Sicherheit spezifizierten, führten zu sichereren Ergebnissen, was darauf hindeutet, dass LLMs in der Lage sind, sichereren Code zu erzeugen, wenn sie explizit dazu angewiesen werden. Darüber hinaus führten Prompts, die Code anforderten, der den Best Practices des Open Web Application Security Project (OWASP) entspricht, zu noch besseren Ergebnissen. OWASP ist eine gemeinnützige Stiftung, die sich für die Verbesserung der Sicherheit von Software einsetzt. Aber selbst mit diesen ausgefeilteren Prompts blieben in fünf der sieben getesteten LLMs einige Code-Schwachstellen bestehen, was die Herausforderungen bei der konsistenten Generierung von sicherem Code mit LLMs unterstreicht.

Regelbasierte Prompts: Ein Weg zu sicherem Code

Der effektivste Ansatz zur Generierung von sicherem Code umfasste Prompts, die an von Backslash spezifizierte Regeln gebunden waren, um spezifische CWEs anzugehen. Diese regelbasierten Prompts führten zu Code, der sicher war und nicht für die getesteten CWEs anfällig war. Dies deutet darauf hin, dass die Bereitstellung spezifischer, gezielter Anleitungen für LLMs entscheidend ist, um die Sicherheit des generierten Codes zu gewährleisten.

Leistungsschwankungen zwischen LLMs

Insgesamt zeigte GPT-4o von OpenAI die geringste Leistung über alle Prompts hinweg und erzielte bei Verwendung von ‘naiven’ Prompts nur ein sicheres Codeergebnis von 1 von 10. Selbst wenn es aufgefordert wurde, sicheren Code zu generieren, erzeugte es immer noch unsichere Ausgaben, die für acht von zehn Problemen anfällig waren. GPT-4.1 schnitt mit naiven Prompts nicht wesentlich besser ab und erzielte 1,5 von 10 Punkten.

Im Gegensatz dazu erwies sich Claude 3.7 Sonnet als der beste Performer unter den getesteten GenAI-Tools. Es erzielte 6 von 10 Punkten mit naiven Prompts und perfekte 10 von 10 Punkten mit sicherheitsorientierten Prompts. Dies deutet darauf hin, dass einige LLMs besser gerüstet sind, um Sicherheitsaspekte zu berücksichtigen, selbst wenn keine expliziten Anweisungen vorliegen.

Backslash Securitys Lösungen für sicheres Vibe-Coding

Um die durch seine LLM-Prompt-Tests aufgedeckten Probleme anzugehen, führt Backslash Security mehrere neue Funktionen ein, die das sichere Vibe-Coding ermöglichen sollen. Vibe-Coding bezieht sich auf die Praxis, Code mithilfe von KI-Tools wie LLMs zu generieren.

Backslash AI Regeln & Richtlinien

Backslash AI Rules & Policies bieten maschinenlesbare Regeln, die in Prompts injiziert werden können, um die CWE-Abdeckung sicherzustellen. Diese Regeln können mit Tools wie Cursor, einem beliebten Code-Editor, verwendet werden. Darüber hinaus steuern KI-Richtlinien, welche KI-Regeln in IDEs über die Backslash-Plattform aktiv sind, sodass Unternehmen ihre Sicherheitseinstellungen anpassen können.

Backslash IDE Erweiterung

Die Backslash IDE Extension lässt sich direkt in die bestehenden Arbeitsabläufe von Entwicklern integrieren, sodass sie Backslash-Sicherheitsüberprüfungen für von Menschen und KI geschriebenen Code erhalten können. Diese Integration ist entscheidend, um sicherzustellen, dass Sicherheitsaspekte während des gesamten Entwicklungsprozesses berücksichtigt werden.

Backslash Model Context Protocol (MCP) Server

Der Backslash Model Context Protocol (MCP) Server ist eine kontextbewusste API, die dem MCP-Standard entspricht. Er verbindet Backslash mit KI-Tools und ermöglicht sicheres Codieren, Scannen und Beheben. Der MCP-Standard bietet einen gemeinsamen Rahmen für KI-Tools, um zu kommunizieren und Informationen auszutauschen, wodurch die Entwicklung sicherer KI-gestützter Anwendungen erleichtert wird.

Bewältigung der Herausforderungen von KI-generiertem Code

Yossi Pik, Mitbegründer und CTO von Backslash Security, betont die Herausforderungen, die KI-generierter Code für Sicherheitsteams darstellt. Er merkt an, dass ‘KI-generierter Code – oder Vibe-Coding – sich für Sicherheitsteams wie ein Albtraum anfühlen kann. Er erzeugt eine Flut von neuem Code und bringt LLM-Risiken wie Halluzinationen und Prompt-Sensitivität mit sich.’ Halluzinationen beziehen sich auf Fälle, in denen LLMs falsche oder unsinnige Informationen generieren, während Prompt-Sensitivität sich auf die Tendenz von LLMs bezieht, unterschiedliche Ausgaben basierend auf subtilen Variationen im Eingabe-Prompt zu erzeugen.

Pik glaubt jedoch auch, dass KI ein wertvolles Werkzeug für AppSec-Teams sein kann, wenn sie mit den richtigen Kontrollen eingesetzt wird. Er argumentiert, dass ‘mit den richtigen Kontrollen – wie organisationsdefinierten Regeln und einem kontextbewussten MCP-Server, der an eine speziell entwickelte Sicherheitsplattform angeschlossen ist – KI AppSec-Teams von Anfang an mehr Kontrolle geben kann.’ Backslash Security zielt darauf ab, diese Kontrollen durch seine dynamischen, richtlinienbasierten Regeln, den kontextsensitiven MCP-Server und die IDE-Erweiterung bereitzustellen, die alle für die neue Codierungsära entwickelt wurden.

Die Auswirkungen von unsicherem KI-generiertem Code

Die Ergebnisse der Forschung von Backslash Security haben erhebliche Auswirkungen auf die Softwareentwicklungsbranche. Da KI-gestützte Codegenerierungstools immer weiter verbreitet werden, ist es entscheidend, die Risiken zu verstehen, die mit dem Verlassen auf diese Tools ohne angemessene Sicherheitsmaßnahmen verbunden sind.

Erhöhte Anfälligkeit für Cyberangriffe

Unsicherer KI-generierter Code kann neue Schwachstellen schaffen, die Cyberkriminelle ausnutzen können. Diese Schwachstellen können zu Datenschutzverletzungen, Systemkompromittierungen und anderen Sicherheitsvorfällen führen.

Schwierigkeiten bei der Identifizierung und Behebung von Schwachstellen

Das schiere Volumen an KI-generiertem Code kann es erschweren, Schwachstellen zu identifizieren und zu beheben. Sicherheitsteams haben möglicherweise Schwierigkeiten, mit dem rasanten Tempo der Codegenerierung Schritt zu halten, was zu einem Rückstau von Sicherheitsproblemen führt.

Mangelndes Sicherheitsbewusstsein bei Entwicklern

Viele Entwickler sind sich möglicherweise nicht vollständig der Sicherheitsrisiken bewusst, die mit KI-generiertem Code verbunden sind. Dieser Mangel an Bewusstsein kann dazu führen, dass Entwickler unbeabsichtigt Schwachstellen in ihre Anwendungen einschleusen.

Herausforderungen bei der Einhaltung von Vorschriften

Organisationen, die sich auf KI-generierten Code verlassen, können vor Herausforderungen bei der Einhaltung von Vorschriften stehen. Viele Vorschriften verlangen von Organisationen, angemessene Sicherheitsmaßnahmen zum Schutz sensibler Daten zu implementieren. Unsicherer KI-generierter Code kann es erschweren, diese Anforderungen zu erfüllen.

Best Practices für die sichere KI-gestützte Codegenerierung

Um die Risiken zu mindern, die mit unsicherem KI-generiertem Code verbunden sind, sollten Organisationen die folgenden Best Practices anwenden:

Bereitstellung von Sicherheitsschulungen für Entwickler

Entwickler sollten Schulungen zu den Sicherheitsrisiken erhalten, die mit KI-generiertem Code verbunden sind. Diese Schulung sollte Themen wie gängige CWEs, sichere Codierungspraktiken und die Verwendung von Sicherheitstools abdecken.

Implementierung von Sicherheitsrichtlinien und -verfahren

Organisationen sollten Sicherheitsrichtlinien und -verfahren implementieren, die die Verwendung von KI-generiertem Code regeln. Diese Richtlinien sollten akzeptable Anwendungsfälle, Sicherheitsanforderungen und Prozesse für die Überprüfung und Genehmigung von KI-generiertem Code definieren.

Verwendung von Sicherheitstools zum Scannen von KI-generiertem Code

Organisationen sollten Sicherheitstools verwenden, um KI-generierten Code auf Schwachstellen zu scannen. Diese Tools können helfen, gängige CWEs und andere Sicherheitsprobleme zu identifizieren.

Implementierung eines sicheren Softwareentwicklungslebenszyklus (SDLC)

Organisationen sollten einen sicheren Softwareentwicklungslebenszyklus (SDLC) implementieren, der Sicherheitsaspekte während des gesamten Entwicklungsprozesses berücksichtigt. Dazu gehören die Durchführung von Sicherheitsüberprüfungen von KI-generiertem Code, die Durchführung von Penetrationstests und die Implementierung von Sicherheitsüberwachung.

Einrichtung eines Bug-Bounty-Programms

Organisationen sollten ein Bug-Bounty-Programm einrichten, um Sicherheitsforscher zu ermutigen, Schwachstellen in KI-generiertem Code zu finden und zu melden. Dies kann helfen, Schwachstellen zu identifizieren, die von internen Sicherheitsteams möglicherweise übersehen wurden.

Bleiben Sie über die neuesten Sicherheitsbedrohungen informiert

Organisationen sollten sich über die neuesten Sicherheitsbedrohungen und Schwachstellen informieren, die KI-generierten Code betreffen. Dies kann ihnen helfen, potenzielle Sicherheitsprobleme proaktiv anzugehen.

Zusammenarbeit mit Sicherheitsexperten

Organisationen sollten mit Sicherheitsexperten zusammenarbeiten, um die Sicherheit ihres KI-generierten Codes zu bewerten und Strategien zur Minderung von Risiken zu entwickeln.

Die Zukunft der sicheren KI-gestützten Codegenerierung

Da sich KI-gestützte Codegenerierungstools ständig weiterentwickeln, ist es entscheidend, der Sicherheit Priorität einzuräumen. Durch die Implementierung der oben beschriebenen Best Practices können Organisationen die Vorteile der KI-gestützten Codegenerierung nutzen und gleichzeitig die Risiken mindern, die mit unsicherem Code verbunden sind.

Fortschritte in der KI-Sicherheit

Laufende Forschungs- und Entwicklungsanstrengungen konzentrieren sich auf die Verbesserung der Sicherheit von KI-Systemen. Diese Bemühungen umfassen die Entwicklung neuer Techniken zur Erkennung und Verhinderung von Adversarial Attacks, die Verbesserung der Robustheit von KI-Modellen und die Schaffung sichererer KI-Architekturen.

Integration von Sicherheit in die KI-Entwicklung

Sicherheit wird zunehmend in den KI-Entwicklungsprozess integriert. Dies umfasst die Berücksichtigung von Sicherheitsaspekten bei der Entwicklung von KI-Modellen, die Anwendung sicherer Codierungspraktiken und die Durchführung von Sicherheitstests während des gesamten Entwicklungslebenszyklus.

Zusammenarbeit zwischen KI- und Sicherheitsexperten

Die Zusammenarbeit zwischen KI- und Sicherheitsexperten ist unerlässlich, um die Sicherheit von KI-Systemen zu gewährleisten. Diese Zusammenarbeit kann helfen, potenzielle Sicherheitsrisiken zu identifizieren und wirksame Strategien zur Risikominderung zu entwickeln.

Erhöhtes Bewusstsein für KI-Sicherheitsrisiken

Das zunehmende Bewusstsein für KI-Sicherheitsrisiken treibt die Entwicklung neuer Sicherheitstools und -techniken voran. Dazu gehören Tools zur Erkennung von Adversarial Attacks, zur Analyse der Sicherheit von KI-Modellen und zur Überwachung von KI-Systemen auf verdächtige Aktivitäten.

Indem sie die mit KI-generiertem Code verbundenen Sicherheitsprobleme angehen, können Organisationen das volle Potenzial der KI-gestützten Entwicklung ausschöpfen und gleichzeitig ihre Systeme und Daten vor Cyberangriffen schützen.