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

Mike Odekerken, Director Enterprise Sales DACH bei Talkdesk. (c) Talkdesk
News

CX-Spezialist Talkdesk baut seine DACH-Präsenz aus

Mit seiner KI-gestützten Contact-Center-as-a-Service (CCaaS)-Plattform bietet Talkdesk Unternehmen umfassende Möglichkeiten, die Effizienz und Qualität ihrer Kundenkontakte zu erhöhen. Um insbesondere deutschsprachige Unternehmen bestmöglich zu unterstützen, investiert Talkdesk umfassend in den DACH-Markt: Bis Ende 2025 soll das Personal vervierfacht werden. […]

img-4
News

Kostenlose Software für HTL-Schüler:innen

Die ACAM Systemautomation versorgt im Auftrag des Bundesministeriums für Bildung, Wissenschaft und Forschung alle österreichischen HTLs kostenlos mit den umfassenden Softwarelösungen des Siemens Academic Softwarepakets. Damit können diese zukünftige Ingenieurinnen und Ingenieure auf die Anforderungen der Industrie 4.0 vorbereiten. […]

img-5
News

Die Zukunft der Extended Reality kommt nach Wien

Im Fokus der diesjährigen Augmented World Expo stehen u.a. die sozialen Auswirkungen von XR-Anwendungen, Effizienzsteigerungen und Verbesserungen von Sicherheitsmaßnahmen in der Industrie, immersives Gaming, KI-Integration in der XR-Welt und Schlüsseltechnologien für das Spatial-Computing-Ökosystem wie AR-Cloud, Motion Capture oder 5G. […]

Bernhard Hutterer ist Head of IT bei der Spitz Unternehmensgruppe. (c) Daniel Huber
Interview

Wie Spitz seine IT fit für die Zukunft macht

Die meisten Unternehmen unterziehen sich – u.a. in Folge von Wachstum – einer Reorganisation, um weiterhin wirtschaftlich erfolgreich am Markt zu bleiben. Dass dies neben Mitarbeitenden, Arbeitsprozessen und Verantwortlichkeiten auch eine besondere Herausforderung sowie Veränderungen für die IT-Infrastruktur mit sich bringt, kann das oberösterreichische Unternehmen Spitz aufzeigen. […]

Be the first to comment

Leave a Reply

Your email address will not be published.


*