Ist KI-generierter Code sicher? Vielleicht. Vielleicht auch nicht.

Generative KI hat sich wenig überraschend als „the next big thing“ herausgestellt. Das gilt auch für die Art und Weise, wie wir Software entwickeln. Was die zu erwartenden Veränderungen und Auswirkungen anbelangt, werden die wohl ähnlich weitreichend sein wie in den Bereichen Open Source, mobile Geräte, Cloud Computing und dem Internet selbst. [...]

Boris Cipot, Senior Sales Engineer, Synopsys SIG (c) Synopsys
Boris Cipot, Senior Sales Engineer, Synopsys SIG (c) Synopsys

Laut dem letzten Gartner Hype Cycle for Artificial Intelligence könnte KI in der Lage sein, bis zu 30 % der von Entwicklern geleisteten Arbeit zu automatisieren. KI-Codierungsassistenten wie GitHub Copilot wirken beim Programmieren wie ein Kraftverstärker. Eine frühe Analyse von GitHub hat ergeben, dass die Nutzung von Copilot die Gesamtproduktivität um 50 %, die Geschwindigkeit bei der Bereitstellung um 25 %, die Code-Commits (Grundbausteine einer Git-Projektzeitleiste) um 45 % und die Merge-Anfragen (Anfrage zum „mergen“ eines Entwicklungszweiges in den Hauptzweig) um 35 % steigern kann. Schnelle Unit-Tests mittels Copilot sollen zudem die Qualität des Codes erhöhen und gleichzeitig die Fehlerrate senken sowie Merge-Konflikte ausmerzen. Als nicht zu unterschätzende Nebenwirkung seien Entwickler allgemein zufriedener und dank einer Schnittstelle, welche die Interaktion zwischen System und Mensch gestattet (Conversational Interface) verbessert sich auch die Zugänglichkeit. 

Entwickler verwenden KI-gestützte Programmierassistenten üblicherweise sehr gerne. Schließlich wird Auto Complete bereits seit 20 Jahren in IDEs genutzt. Wer würde nicht gerne ein paar Zeilen Code schreiben und den Rest von einer künstlichen Intelligenz erledigen lassen? Aber schreiben KI-gestützte Programmierassistenten tatsächlich besseren und sichereren Code?

KI-Codier-Assistenten versprechen Entwicklern einen Produktivitätsgewinn. Das mag ihren Einsatz unwiderstehlich machen, ein Freibrief ist das aber nicht. Zwar werden KI-Tools immer besser, aber es gibt nach wie vor eine Reihe von Risiken. Die großen Sprachmodelle (Large Language Models, LLMs), auf denen diese Tools basieren, werden anhand von Millionen öffentlich zugänglicher Codezeilen trainiert. Aber was genau ist das für ein Code? Guter Code? Schlechter Code? 

Die Antwort lautet: beides. Folglich sind diese Tools anfällig dafür, Code zu generieren, der Fehler und/oder Sicherheitsmängel enthält – und das in der Annahme, dass es sich um korrekten Code handelt.

Das bedeutet nicht, dass KI keinen guten Code generieren kann. Studien, die sich mit der Analyse von Copilot beschäftigt haben, zeigen, dass der KI-Assistent im Allgemeinen bestimmte Arten von Sicherheitsschwachstellen (CWE) gut vermeiden konnte, darunter die folgenden:

  • CWE 20: Improper Input Validation
  • CWE 502: Deserialization of Untrusted Data
  • CWE 78: OS Command Injection
  • CWE 22: Path Traversal
  • CWE 434: Unrestricted Upload of File with Dangerous Type
  • CWE 522: Insufficiently Protected Credentials

Diese Fehler sind allerdings oftmals leichter zu erkennen. Dies liegt daran, dass sie auf Syntaxfehler in einer Programmiersprache zurückzuführen sind. Bei komplexen sicherheitsrelevanten Fehlern sieht das anders aus. Copilot hat sich als weniger effektiv erwiesen, solche Schwachstellen zu vermeiden, die darauf zurückzuführen sind, wie eine Anwendung mit Daten und externen Eingaben interagiert. 

Dazu zählen: 

  • CWE 20: Improper Input Validation
  • CWE 502: Deserialization of Untrusted Data
  • CWE 78: OS Command Injection
  • CWE 22: Path Traversal
  • CWE 434: Unrestricted Upload of File with Dangerous Type
  • CWE 522: Insufficiently Protected Credentials

Studien wie die “Asleep at the Keyboard? Assessing the Security of GitHub Copilot’s Code Contributions” betitelte vom August 2021 haben gezeigt, dass KI-gestützte Programmierassistenten zwar die Entwicklung beschleunigen, aber 40 % der von ihnen generierten Programme Schwachstellen enthalten. Ein weiterer Bericht, “Is GitHub’s Copilot as Bad as Humans at Introducing Vulnerabilities in Code?” vom August 2023 verfolgt einen anderen Ansatz. Hier wurde von GitHub Copilot generierter Code mit von Menschen geschriebenem verglichen. Beide gingen vom selben Prompt aus. Dabei stellte man fest, dass GitHub Copilot in etwa einem Drittel der Fälle anfälligen Code produziert hatte, während in etwa 25 % der Fälle Schwachstellen vermieden wurden. Interessanterweise generierte Copilot in fast der Hälfte aller Fälle Code, der sich erheblich von dem eines menschlichen Entwicklers unterschied. Schließlich wurde in einer dritten Analyse,“Security Weaknesses of Copilot Generated Code in GitHub” vom Oktober 2023, festgestellt, dass etwa 35 % des von Copilot generierten Codes in GitHub Sicherheitslücken aufwies.

Die Vorteile von KI-generiertem Code nutzen und Sicherheitsrisiken vermeiden

Wie soll man die Befunde bewerten? Sind KI-gestützte Codierungsassistenten per se unzureichend und sollte man besser darauf verzichten? Keineswegs. In der Realität ist der Geist des KI-Codes ohnehin längst aus der Flasche entwichen und wird sicherlich nicht dahin zurückkehren. Außerdem ist KI-generierter Code vermutlich nicht fehlerhafter oder anfälliger als der Code, den viele Entwickler (insbesondere weniger erfahrene) produzieren.

Genau das ist der entscheidende Punkt. KI-generierter Code kann die Entwicklungsgeschwindigkeit erheblich beschleunigen. Nur ist es unabdingbar, dass man diesen Code noch gründlicher überprüfen und verifizieren sollte als Code, der von einem Entwickler geschrieben wurde.

Was sollten Firmen also tun, um die Vorteile von KI-generiertem Code zu nutzen und Sicherheits- und Qualitätsrisiken zu vermeiden? Sorgen Sie auf jeden Fall dafür, dass Entwickler nicht einfach jedes Tool herunterladen und verwenden, über das sie gerade auf Stack Overflow gelesen haben. 

Erstellen Sie stattdessen einen Plan, der die folgenden drei Schlüsselbereiche abdeckt.

  • Definieren Sie klare Regeln und Richtlinien: Definieren Sie klare Regeln und Richtlinien für die Verwendung von KI-Tools in der Entwicklung. Berücksichtigen Sie dabei mögliche Auswirkungen auf die Produktivität, die Sicherheit sowie den Schutz des geistigen Eigentums.
  • Überprüfen Sie KI-basierte Codierungsassistenten, bevor Sie sie verwenden: Es ist wichtig, KI-basierte Codierungsassistenten sorgfältig zu überprüfen, um sicherzustellen, dass sie den Richtlinien und Standards des Unternehmens entsprechen. Wie schützt der Anbieter des Tools Ihr geistiges Eigentum? Wie transparent sind sie in Bezug auf die Daten, auf denen ihr LLM trainiert wird?
  • Implementieren Sie strenge Prüfverfahren: Organisationen sollten strenge Prüfverfahren, einschließlich statischer Analysen, einziehen, um Sicherheit und Qualität des von der KI generierten Codes zu validieren.

Das Unvermeidliche akzeptieren

KI wird die Landschaft der Softwareentwicklung weiter verändern. Unternehmen sind gehalten, dieses empfindliche Gleichgewicht zwischen Innovation und Risikominderung zu finden und zu bewahren. Proaktive Governance-Maßnahmen und Best Practices helfen dabei, sich die Leistungsfähigkeit von KI-generiertem Code zunutze zu machen und gleichzeitig geistiges Eigentum schützen sowie die Integrität der Softwareprojekte zu gewährleisten. 

Wir sind beim Thema KI-gesteuerte Entwicklung noch ganz am Anfang. Eine grundlegende Aufmerksamkeit (wenn nicht Wachsamkeit) gepaart mit strategischer Planung sind der Schlüssel, um zukünftige Herausforderungen zu meistern und Chancen zu nutzen.

*Der Autor Boris Cipot ist Senior Sales Engineer bei Synopsys SIG.


Mehr Artikel

Ismet Koyun, CEO und Gründer, KOBIl-Gruppe (c) KOBIL-Gruppe
Kommentar

Zwischen Innovation und Souveränitätsverlust – Ethik in Smart Cities

Die Vision von Smart Cities ist verlockend. Sie versprechen eine Verbesserung der urbanen Lebensqualität – durch intelligente Infrastrukturen, die den Verkehr optimieren, den Energieverbrauch senken und städtische Dienstleistungen digitalisieren. Doch mit diesen Möglichkeiten gehen auch ethische Herausforderungen einher, die wir nicht ignorieren dürfen. Digitalpionier Ismet Koyun über Vorteile, Risiken und Lösungsansätze in vollständig vernetzten Städten. […]

img-4
News

Wie KI hilft, Büroräume zu verkleinern

Die Auslastung von Büros sinkt, denn das Home Office oder flexible Arbeitsmodelle werden für Arbeitnehmer zunehmend beliebter. Dieser Trend bietet für die Chefetage auch Einsparungspotenzial. Damit die Räumlichkeiten tatsächlich effizient genutzt werden, braucht es KI und Technologie. […]

img-6
News

Austrian Standards setzt mit Zertifizierung und Lehrgang zu KI und Ethik neue Standards

Austrian Standards startet mit einer neuen Personenzertifizierung zum Thema KI und Ethik. Mit Vorkenntnissen und Kompetenzen in einschlägigen Formaten kann das Zertifikat „Value-based Engineering Ambassador for Ethical IS & AI“ auf Basis der ISO/IEC/IEEE 24748-7000 erlangt werden. Austrian Standards bietet hierfür auch einen Lehrgang an, der eine umfassende Einführung in generative KI und deren Anwendungen bietet. […]

11,5 Prozent Umsatzwachstum sichern BE-terna Platz 11 In der Lünendonk-Liste 2024. (c) BE-terna
News

BE-terna wächst schneller als der Markt

Während die 25 führenden mittelständischen IT-Beratungs- und Systemintegrationsunternehmen in Deutschland 2023 laut aktueller Lünendonk-Liste 2024 um durchschnittlich 9,1 Prozent gewachsen sind, konnte BE-terna seinen Umsatz um 11,5 Prozent steigern, auf dem deutschen Markt sogar um 18,6 Prozent. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*