Skip to main content

5 Best Practices für die Einführung generativer KI-Coding-Assistenten wie GitHub Copilot

blog feature ai lilac

5. März 2024

0 Min. Lesezeit

Noch vor nicht allzu langer Zeit galt KI allgemein als futuristische Idee, die wie aus einem Science-Fiction-Film schien. Filme wie Her und Ex Machina warnten uns sogar davor, dass KI eine Büchse der Pandora sein könnte, deren Öffnung unerwartete Folgen hat. Wie sehr sich die Dinge seitdem verändert haben – nicht zuletzt dank der einfachen Zugänglichkeit und Verbreitung von ChatGPT! Eine Gartner-Umfrage unter Top-Führungskräften im Mai dieses Jahres ergab, dass 89 % der Unternehmen generative KI untersuchten oder einführten. Ein separater Gartner-Bericht aus demselben Zeitraum prognostizierte, dass bis 2025 mehr als 80 % des Codes in der Produktentwicklung KI-generiert sein werden.

Entwickler profitieren stark von generativer KI und nutzen KI-Coding-Assistenten wie GitHub Copilot, Amazon CodeWhisperer und ChatGPT von OpenAI, um ihre Produktivität deutlich zu steigern. Doch so leistungsstark und lebensverändernd diese KI-Tools auch sind: Sie können Fehler machen und halluzinieren. Sie sollten daher nur dazu dienen, Entwickler zu unterstützen, nicht sie zu ersetzen. Deshalb sollten KI-generierter Code sorgfältig von Menschen validiert, Sicherheits-Tools und Leitplanken eingesetzt und weitere Maßnahmen zur sicheren Nutzung generativer KI-Coding-Tools ergriffen werden – damit Sie unbesorgt Innovationen vorantreiben können. Im Folgenden sehen wir uns an, wie Sie KI-Codevervollständigungstools wie Copilot mit diesen 5 Best Practices sicher einführen.

Best Practice 1: Beziehen Sie immer Menschen in den Prozess ein

Fehlende oder unzureichende menschliche Kontrollen und Validierung sind ein klassischer Fehler bei der Einführung generativer KI-Code-Tools. Wie bereits erwähnt, sollen diese Tools Entwickler lediglich unterstützen und sind nicht unfehlbar. Entwickler sollten daher weiterhin dieselben sicheren Gewohnheiten pflegen wie vor der Einführung von KI-Coding-Tools und ihren Code – ob KI-generiert oder nicht – sorgfältig überprüfen.

Stellen Sie sich KI als unerfahrenen Entwickler vor, der zufällig Tausende Stack-Overflow-Threads gleichzeitig lesen kann. Sie würden den Code eines neuen Entwicklers niemals ungeprüft veröffentlichen. Lassen Sie sich also nicht von der Geschwindigkeit der KI zu der Annahme verleiten, sie sei klüger, als sie ist.

Teams sollten über die Risiken von KI-generiertem Code ebenso wie über dessen Vorteile aufgeklärt werden. Regelmäßige Code-Reviews sollten fester Bestandteil interner Softwareentwicklungspraktiken sein. Validieren, testen und korrigieren Sie den Code direkt in der IDE. Diese Gewohnheiten sollten in Unternehmensrichtlinien und -verfahren verankert werden. Außerdem sollten regelmäßig Schulungen stattfinden, damit Teams die Bedeutung dieser Praktiken verstehen und die erforderlichen Code-Reviews angemessen durchführen.

Best Practice 2: Scannen Sie KI-Code direkt in der IDE mit einem separaten, unabhängigen Sicherheits-Tool

Diese beiden Dinge gehören zusammen. Erstens: Wenn Sie den Produktivitätsschub durch KI voll ausschöpfen möchten, dürfen Sie Entwickler nicht mit einer herkömmlichen Sicherheitsprüfung ausbremsen. Entwickler sind bereits deutlich zahlreicher als Sicherheitsexperten. Deshalb mussten Teams Security nach links verlagern. Da KI die Produktivität von Entwicklern nun weiter steigert, wächst auch die Menge des entstehenden anfälligen Codes. Security nach links zu verlagern ist keine Option mehr, sondern eine Notwendigkeit. Am einfachsten geht das, indem Sie Sicherheitsscans direkt in die IDE integrieren. So wird Code unmittelbar nach dem Schreiben gescannt und Sicherheitslücken werden proaktiv erkannt, statt erst reaktiv gesucht zu werden, nachdem sie sich in der Entwicklungspipeline ausgebreitet haben.

Zweitens sollten die Scans von einem Sicherheits-Tool durchgeführt werden, das nicht auch den Code schreibt. Das hat denselben Grund wie die Trennung von Entwicklungs- und Sicherheitsteams. Wenn das Team, das den Code schreibt, auch für dessen Absicherung zuständig ist, werden viele Sicherheitslücken unentdeckt bleiben. Sicherheit ist komplex und ein anderes Fachgebiet als Entwicklung.

Die KI, die dem Tool zum Schreiben von Code zugrunde liegt, wurde mit funktionalem Code trainiert, damit sie funktionalen Code schreibt. Ein eigens entwickeltes Sicherheits-Tool hingegen, dessen einzige Aufgabe die Absicherung von Code ist, wurde ausschließlich mit sicherheitsbezogenen Daten trainiert, um Sicherheitsprobleme zuverlässig zu erkennen und zu beheben. Darüber hinaus müssen Sicherheits-Tools den vollständigen Kontext Ihrer Anwendung verstehen können – nicht nur den gerade gescannten Codeausschnitt. So wird verhindert, dass Sicherheitskorrekturen an anderer Stelle Fehler verursachen. Deshalb verwendet Snyk Code regelbasierte symbolische KI, um die von unserem LLM vorgeschlagenen Korrekturen zu prüfen, und bietet Nutzern nur Korrekturoptionen an, die keine weiteren Probleme verursachen.

Bei KI benötigen Sie zwei verschiedene Tools – eines zum Schreiben und eines zum Absichern –, genau wie Sie zwei verschiedene Teams haben: Entwicklung und Sicherheit. Beide Tools sollten den vollständigen Kontext Ihrer Anwendung verstehen, damit Sie keine Codeausschnitte erhalten, die nur isoliert betrachtet Sinn ergeben.

Best Practice 3: Validieren Sie Code von Drittanbietern

Im Durchschnitt sind 70 % des Codes einer Anwendung Open-Source-Code. Das bedeutet: 70 % Ihrer Anwendung wurden von jemandem außerhalb Ihres Unternehmens geschrieben und abgesichert. Diese Person kann nicht haftbar gemacht werden, wenn eine Sicherheitslücke Angreifern als Einfallstor dient, um Kundendaten zu stehlen.

Wenn Entwickler Abhängigkeiten von Drittanbietern verwenden, sollten sie diese immer mit einem Software-Composition-Analysis-Tool (SCA) scannen, um ihre Sicherheit zu überprüfen. SCA-Tools finden anfällige Pakete, melden Details zur Sicherheitslücke – etwa Art und Schweregrad – und schlagen Möglichkeiten zur Behebung vor.

Von KI geschriebener Code zieht auch Abhängigkeiten von Drittanbietern ein. Denken Sie daran: KI ist lediglich ein weiterer Entwickler – einer, der unglaublich schnell Code schreibt. Auch die Abhängigkeiten dieses Codes müssen gescannt werden. Das ist besonders wichtig, da KI-Tools auf Basis von LLMs bei den neuesten Erkenntnissen und Versionen von Drittanbieterpaketen immer etwas hinterherhinken. KI braucht SCA. Wir empfehlen deshalb, von der KI empfohlene Open-Source-Bibliotheken immer manuell zu überprüfen und Tools wie Snyk Open Source zu verwenden, um diese Bibliotheken manuell zu testen.

Best Practice 4: Automatisieren Sie Tests team- und projektübergreifend

Was nicht automatisiert ist, passiert mit hoher Wahrscheinlichkeit nicht. Automatisierung ist eine so grundlegende Best Practice, dass sie fast überall zu finden ist: von Unix-Administratoren, die Cron-Jobs schreiben, über QA-Teams, die automatisierte Tests einführen, bis hin zu DevOps-Teams, die umfangreiche Infrastrukturen mit Python-Skripten zusammenhalten. Automatisierung erleichtert nicht nur den Alltag, sondern macht es auch unmöglich, etwas zu vergessen.

Setzen Sie unbedingt Sicherheits-Tools ein, die Ihre Anwendungen automatisch über CI/CD absichern, und sich in die bereits von den Teams genutzten Workflows integrieren lassen.

Best Practice 5: Schützen Sie Ihr geistiges Eigentum

Wenn Sie Richtlinien für die Nutzung von KI-Tools einführen, ist es äußerst wichtig, dass diese Tools nicht mit Ihrem proprietären Code trainiert werden. 2023 haben wir erlebt, wie Samsung die Nutzung von ChatGPT untersagte, nachdem im Rahmen des trainingsbasierten Einsatzes Daten aus dem Unternehmen offengelegt worden waren. Das Letzte, was Sie wollen, ist, dass Ihr Wettbewerbsvorteil als Codevorschlag bei Entwicklern eines anderen Unternehmens in Ihrer Branche landet.

Diese Vorgabe lässt sich technisch etwas schwieriger durchsetzen. Umso wichtiger ist es, Ihre Richtlinien zur KI-Nutzung sorgfältig zu dokumentieren und Ihre Teams umfassend zu schulen. Erlaubte Nutzungsweisen, verpflichtende Maßnahmen und mögliche Konsequenzen sollten klar aufgeführt sein. Gehen Sie außerdem davon aus, dass alle Daten, die Sie in ein LLM eingeben, für dessen Training verwendet werden. Geben Sie dem LLM nur die unbedingt erforderlichen Informationen – keine davon vertraulich –, damit es seine Aufgabe erledigen kann. Erwägen Sie zudem Eingabe- und Ausgabekontrollen, um Nutzereingaben und die Ausgaben Ihrer LLMs zu bereinigen.

Nutzen Sie KI-Coding-Assistenten sicher

Eines steht fest: KI-Coding-Assistenten gehören die Zukunft. Ihre Teams werden schneller arbeiten und mehr Code als je zuvor generieren. Es liegt an Ihnen, dafür zu sorgen, dass die ausgelieferten Anwendungen sicher sind. Sie benötigen die richtigen Richtlinien und Schulungen – und vor allem die passenden Sicherheits-Tools, damit Ihre Teams schnell arbeiten können. Dabei kann Snyk Sie unterstützen.

Gestützt auf branchenführende Intelligence und hybride KI mit Experten im Prozess scannt die Developer-Security-Plattform von Snyk Code direkt beim Schreiben – durch Menschen oder KI – und liefert Ein-Klick-Empfehlungen zur Fehlerbehebung direkt in der IDE. So müssen Entwickler nicht langsamer arbeiten und Sicherheitsteams werden nicht überlastet.

Vertrauen Sie mit Snyk auf Ihren KI-generierten Code. Buchen Sie noch heute eine Expertendemo und erfahren Sie, wie Snyk zum Sicherheits-Copilot für Copilot werden kann.

Sichern Sie KI-generierten Code ab

Erstellen Sie Ihr kostenloses Snyk-Konto und sichern Sie KI-generierten Code in wenigen Minuten ab. Oder buchen Sie eine Demo mit unseren Experten und erfahren Sie, wie Snyk Ihre Anwendungsfälle für Entwicklersicherheit unterstützt.

Gepostet in: