KI-Modell-Persönlichkeiten beeinflussen Code-Qualität & Sicherheit
Generative KI-Modelle, die zur Unterstützung beim Codieren entwickelt wurden, weisen ausgeprägte „Persönlichkeiten“ auf, die die Qualität, Sicherheit und Wartbarkeit des von ihnen produzierten Codes tiefgreifend beeinflussen. Während diese Modelle grundlegende Stärken und Schwächen teilen, führen die Nuancen ihrer individuellen Codierstile zu unterschiedlichen Ergebnissen, einschließlich der Generierung problematischer „Code-Smells“ – Entwurfsmuster, die auf tiefere strukturelle Probleme hindeuten.
Laut Sonar, einem Unternehmen für Code-Qualität, ist das Verständnis dieser einzigartigen Merkmale für Softwareentwickler, die große Sprachmodelle (LLMs) zur Unterstützung nutzen, von entscheidender Bedeutung. Tariq Shaukat, CEO von Sonar, betonte die Notwendigkeit, über die reine Leistung hinauszuschauen, um das gesamte Spektrum der Fähigkeiten eines Modells zu erfassen. Er erklärte, dass die Erkennung der Stärken und der Fehleranfälligkeit jedes Modells für eine sichere Bereitstellung unerlässlich ist.
Sonar hat kürzlich fünf prominente LLMs getestet: Anthropic’s Claude Sonnet 4 und 3.7; OpenAI’s GPT-4o; Meta’s Llama 3.2 90B; und das Open-Source-Modell OpenCoder-8B. Die Bewertung umfasste 4.442 Java-Programmieraufgaben, die eine Reihe von Herausforderungen zur Beurteilung der Codierkompetenz beinhalteten. Die Ergebnisse, veröffentlicht in einem Bericht mit dem Titel „Die Codier-Persönlichkeiten führender LLMs“, stimmen weitgehend mit der allgemeinen Branchenmeinung überein: Generative KI-Modelle sind wertvolle Werkzeuge, wenn sie in Verbindung mit strenger menschlicher Aufsicht und Überprüfung eingesetzt werden.
Die getesteten LLMs zeigten unterschiedliche Kompetenzniveaus bei Standard-Benchmarks. Zum Beispiel erreichte Claude Sonnet 4 beim HumanEval-Benchmark eine beeindruckende Erfolgsquote von 95,57 Prozent, während Llama 3.2 90B mit 61,64 Prozent zurücklag. Claudes starke Leistung deutet auf eine hohe Fähigkeit zur Generierung gültigen, ausführbaren Codes hin. Darüber hinaus zeigten Modelle wie Claude 3.7 Sonnet (72,46 Prozent korrekte Lösungen) und GPT-4o (69,67 Prozent) technisches Können bei Aufgaben, die die Anwendung von Algorithmen und Datenstrukturen erforderten, und sie erwiesen sich als fähig, Konzepte über verschiedene Programmiersprachen hinweg zu übertragen.
Trotz dieser Stärken hob der Bericht einen kritischen gemeinsamen Fehler hervor: einen allgegenwärtigen Mangel an Sicherheitsbewusstsein. Alle evaluierten LLMs produzierten einen beunruhigend hohen Prozentsatz an Schwachstellen, häufig mit den höchstmöglichen Schweregraden. Auf einer Skala, die „Blocker“, „Kritisch“, „Major“ und „Minor“ umfasst, waren die generierten Schwachstellen überwiegend auf „Blocker“-Ebene, was bedeutet, dass sie eine Anwendung zum Absturz bringen könnten. Bei Llama 3.2 90B wurden über 70 Prozent seiner Schwachstellen als „Blocker“ eingestuft; dieser Wert lag bei 62,5 Prozent für GPT-4o und fast 60 Prozent für Claude Sonnet 4.
Die häufigsten Fehler umfassten Pfad-Traversal- und Injektionsschwachstellen – die 34,04 Prozent der Probleme im von Claude Sonnet 4 generierten Code ausmachten –, gefolgt von hartkodierten Anmeldeinformationen, Kryptographie-Fehlkonfigurationen und XML External Entity Injection. Dieses Problem mit Injektionsfehlern rührt daher, dass die Modelle nicht in der Lage sind, den Fluss von nicht vertrauenswürdigen Daten zu sensiblen Teilen des Codes effektiv zu verfolgen, eine komplexe nicht-lokale Analyse, die über ihren typischen Verarbeitungsbereich hinausgeht. Darüber hinaus generieren sie oft hartkodierte Geheimnisse, da solche Fehler in ihren Trainingsdaten vorhanden sind. Da sie kein umfassendes Verständnis der Software-Engineering-Normen besitzen, vernachlässigten diese Modelle auch häufig das Schließen von Dateistreams, was zu Ressourcenlecks führte, und zeigten eine Tendenz zu unordentlichem, komplexem und schwer zu wartendem Code, der durch zahlreiche „Code-Smells“ gekennzeichnet ist.
Sonars Analyse enthüllte unterschiedliche „Persönlichkeiten“ für jedes Modell:
Claude 4 Sonnet erhielt den Beinamen „der leitende Architekt“ aufgrund seiner außergewöhnlichen Fähigkeiten, da es 77,04 Prozent der Benchmark-Tests bestand. Seine Ausgabe ist typischerweise ausführlich und hochkomplex und spiegelt die Tendenz eines erfahrenen Ingenieurs wider, ausgeklügelte Schutzmaßnahmen, Fehlerbehandlung und fortschrittliche Funktionen zu implementieren.
GPT-4o wurde als „der effiziente Generalist“ bezeichnet, beschrieben als zuverlässiger, durchschnittlicher Entwickler. Obwohl es im Allgemeinen die schwerwiegendsten Fehler vermeidet, neigt es zu Kontrollflussfehlern.
OpenCoder-8B erwies sich als „der schnelle Prototyper“. Es produziert den prägnantesten Code, generiert die wenigsten Zeilen, weist aber auch die höchste Problemdichte auf, mit 32,45 Problemen pro tausend Zeilen Code.
Llama 3.2 90B wurde als „das unerfüllte Versprechen“ bezeichnet, gekennzeichnet durch eine mittelmäßige Benchmark-Erfolgsquote von 61,47 Prozent und eine alarmierend hohe Rate von 70,73 Prozent an „Blocker“-Schweregrad-Schwachstellen.
Schließlich wurde Claude 3.7 Sonnet als „der ausgewogene Vorgänger“ benannt. Es verfügt über eine fähige Benchmark-Erfolgsquote von 72,46 Prozent und eine hohe Kommentardichte (16,4 Prozent). Trotz seiner Stärken produziert dieses Modell auch einen erheblichen Anteil an „Blocker“-Schweregrad-Schwachstellen. Interessanterweise ist Claude 4 Sonnet zwar ein neueres Modell und schneidet bei allgemeinen Benchmarks besser ab, doch die von ihm erzeugten Sicherheitslücken haben fast die doppelte Wahrscheinlichkeit, den Schweregrad „Blocker“ zu erreichen, verglichen mit seinem Vorgänger.
Angesichts dieser inhärenten Herausforderungen kommt Sonars Bericht zu dem Schluss, dass eine robuste Governance und eine gründliche Code-Analyse nicht nur ratsam, sondern zwingend erforderlich sind, um KI-generierten Code zu verifizieren.