Schwachstellen beim Vibe Coding entdeckt.
Bei Experimenten zur Untersuchung der Risiken von Vibe Coding mit Claude und ChatGPT fanden Sicherheitsforscher von Databricks kritische Schwachstellen und beschreiben, wie sie diese wieder geschlossen haben. Die Ergebnisse zeigen die Risiken von Vibe Coding auf, wenn keine menschliche Überprüfung mehr stattfindet.
In einem Experiment ließen sie das LLM eine Snake-Kampfarena aus der Third-Person-Perspektive erstellen, in der die Nutzer die Schlange mit der Maus aus der Vogelperspektive steuern können. Im Einklang mit der Vibe Coding-Methodik wurde dem Modell weitreichende Kontrolle über die Projektarchitektur eingeräumt und schrittweise zur Generierung der einzelnen Komponenten aufgefordert. Die Netzwerkschicht des Snake-Spiels überträgt Python-Objekte, die mit pickle serialisiert und deserialisiert wurden. pickle ist ein Modul, das bekanntermaßen anfällig für beliebige Remote-Code-Ausführung ist. Infolgedessen könnte ein böswilliger Client oder Server Payloads erstellen und senden, die beliebigen Code auf jeder anderen Instanz des Spiels ausführen. Das Problem wurde durch die Umstellung von Pickle auf JSON für die Datenserialisierung behoben. Außerdem wurde eine Größenbeschränkung eingeführt, um Denial-of-Service-Angriffe abzuwehren.
ChatGPT wurde in einem anderen Experiment damit beauftragt, einen Parser für das GGUF-Binärformat zu erstellen, das allgemein als schwierig zu parsen gilt. GGUF-Dateien speichern Modellgewichte für Module, die in C und C++ implementiert sind. Das Kernproblem war nicht die Fähigkeit von ChatGPT, funktionsfähigen Code zu generieren, sondern vielmehr, dass der für Vibe-Coding typische lockere Ansatz dazu führte, dass gefährliche Annahmen in der generierten Implementierung unbemerkt blieben.
Vibe Coding – Entwickler steigen auf KI-gestützte Umgebungen um
Immer mehr Entwickler steigen von traditionellen IDEs auf neue, KI-gestützte Umgebungen um, die tief integrierte agentenbasierte Unterstützung bieten. Tools wie Cursor, Cline und Claude-Code sind Teil dieses Trends. Sie gehen über die Autocomplete-Funktion hinaus und integrieren Linter, Testrunner, Dokumentationsparser und sogar Laufzeitanalyse-Tools, die alle über LLMs koordiniert werden, die eher wie Agenten als wie statische Copilot-Modelle funktionieren. Diese Assistenten sind so konzipiert, dass sie Ihre gesamte Codebasis analysieren, intelligente Vorschläge machen und Fehler in Echtzeit beheben. Im Prinzip sollte diese vernetzte Toolchain die Korrektheit und Sicherheit des Codes verbessern. In der Praxis zeigen Tests jedoch, dass weiterhin Sicherheitslücken bestehen, insbesondere wenn diese Assistenten komplexe Logik generieren oder umgestalten, Eingabe-/Ausgaberoutinen verarbeiten oder mit externen APIs interagieren.
Zusammenfassen lässt sich feststellen, dass Vibe Codierung zu kritischen Schwachstellen führen kann, wie der Ausführung von beliebigem Code und Speicherbeschädigungen, selbst wenn der generierte Code funktionsfähig erscheint. Prompting-Techniken wie Selbstreflexion, sprachspezifische Prompts und generische Sicherheitshinweise reduzieren die Generierung unsicherer Codes erheblich. Umfangreiche Tests mit Benchmarks wie Secure Coding und dem Benchmark-Datensatz von Open AI „HumanEval“ zeigen, dass Sicherheitshinweise die Codesicherheit bei minimalen Qualitätseinbußen verbessern.