Skip to main content

5 Tipps für den sicheren Einsatz von KI-Codeassistenten

blog feature ai

30. Mai 2024

0 Min. Lesezeit

Generative KI hat in den vergangenen Jahren für viel Begeisterung gesorgt, insbesondere in der Softwareentwicklung. Entwicklerinnen und Entwickler aller Erfahrungsstufen nutzen KI-Tools wie GitHub Copilot, Amazon CodeWhisperer und ChatGPT von OpenAI, um ihre Programmierarbeit zu unterstützen. GitHub hat beispielsweise festgestellt, dass 92 % der Entwickler KI-Programmier-Tools nutzen.

Viele Unternehmen erkennen jedoch, dass sie beim Einsatz von KI in der Softwareentwicklung vorsichtiger vorgehen müssen. Generative KI ist nach wie vor anfällig für Ungenauigkeiten und Halluzinationen und kann Unternehmen neuen Angriffsvektoren aussetzen, etwa Data Poisoning und Prompt Injection. 

Der Schlüssel zum Einsatz von KI liegt weder darin, sie zu verbannen, noch darin, Teams unkontrolliert damit arbeiten zu lassen. Vielmehr gilt es, strategische Leitplanken für den sicheren Einsatz von KI-generiertem Code zu schaffen. 

Wir stellen fünf Tipps vor, wie Sie KI-Codeassistenten sicher einsetzen und Sicherheitsmaßnahmen in den gesamten Softwareentwicklungslebenszyklus integrieren:

  1. Beziehen Sie immer einen Menschen in den Prozess ein.

  2. Prüfen Sie KI-generierten Code direkt in der IDE mit einem separaten, unabhängigen Sicherheitstool.

  3. Validieren Sie Code von Drittanbietern.

  4. Automatisieren Sie Tests team- und projektübergreifend.

  5. Schützen Sie Ihr geistiges Eigentum.

Beziehen Sie immer einen Menschen in den Prozess ein

Generative KI ist im Grunde wie ein Junior-Entwickler mit Zugriff auf Millionen von Codebeispielen aus dem Internet. KI-Programmierassistenten arbeiten zwar schnell, sind aber keineswegs unfehlbar, denn ihre Trainingsdaten umfassen sowohl guten als auch schlechten Code. Daher ist es bei der Einführung generativer KI-Tools für die Programmierung entscheidend, ausreichende menschliche Kontrollen einzurichten. Teams können den Menschen auf folgende Weise in den Prozess einbeziehen:

  • Führen Sie dieselben Sicherheitstests für Code wie vor dem Einsatz von KI durch, zum Beispiel das Validieren, Testen und Beheben von Sicherheitslücken direkt in der IDE mit Static Application Security Testing (SAST).

  • Schulen Sie Ihre Teams regelmäßig zu den Vorteilen und Risiken von KI-generiertem Code.

  • Erarbeiten Sie Richtlinien und Verfahren für regelmäßige Prüfungen von KI-generiertem Code.

Prüfen Sie KI-generierten Code direkt in der IDE mit einem separaten, unabhängigen Sicherheitstool

Für Sicherheitstests Ihres KI-generierten Codes empfiehlt es sich, ein anderes Tool zu verwenden als das, mit dem ein großer Teil des Codes erstellt wurde. Ein separates Sicherheitstool sorgt für Unabhängigkeit. Außerdem sind verschiedene Tools auf unterschiedliche Bereiche spezialisiert. Ein KI-Tool, das auf die Erstellung funktionalen Codes ausgelegt ist, kennt weder den vollständigen Kontext Ihrer Sicherheitslage noch verfügt es über die Funktionen, um komplexe Sicherheitsaspekte zu verstehen. 

Bei der Auswahl eines separaten, unabhängigen Tools zur Absicherung Ihres KI-generierten Codes sollten Sie zwei wichtige Kriterien berücksichtigen:

  1. Eine vollständige, kontextbezogene Ansicht Ihrer gesamten Anwendung – nicht nur lückenhafte Ansichten einzelner KI-generierter Codeausschnitte. So kann das Tool Korrekturvorschläge machen, ohne andere Teile Ihrer Anwendung zu beeinträchtigen.

  2. Scan-Funktionen direkt in der IDE, um Sicherheitsprüfungen so weit wie möglich nach links zu verlagern. So können Entwicklerinnen und Entwickler Sicherheitslücken in KI-generiertem und manuell geschriebenem Code unmittelbar nach dem Schreiben beheben. 

Validieren Sie Code von Drittanbietern

Open-Source-Code macht 70 bis 90 % der durchschnittlichen Anwendung aus. Entwicklerinnen und Entwickler greifen regelmäßig auf diese Ressourcen von Drittanbietern zurück, und auch KI-generierter Code nutzt Abhängigkeiten von Drittanbietern. Open-Source-Code ermöglicht es, Anwendungen schneller zu entwickeln, doch Qualität und Sicherheitsniveau können unterschiedlich ausfallen. Auch von KI empfohlene Open-Source-Bibliotheken bergen Risiken: KI ist häufig nicht über die neuesten Sicherheitsinformationen auf dem Laufenden und kann veraltete oder bekanntermaßen anfällige Ressourcen von Drittanbietern empfehlen. 

Mit Software Composition Analysis (SCA) können Unternehmen Sicherheitslücken in diesen Ressourcen von Drittanbietern finden und beheben. SCA kann von Menschen oder KI ausgewählte Abhängigkeiten scannen, anfällige Open-Source-Pakete identifizieren, über Sicherheitslücken informieren und Maßnahmen zu deren Behebung vorschlagen. Beim Einsatz von KI-Programmierassistenten müssen Teams von der KI empfohlene Open-Source-Bibliotheken mit einem hochwertigen SCA-Tool testen und überprüfen. 

Automatisieren Sie Tests team- und projektübergreifend

Wenn Ihr Team überlegt, wie sich diese Best Practices für die Codesicherheit auf von Menschen und KI geschriebenen Code anwenden lassen, sollten Sie Möglichkeiten zur Automatisierung ermitteln. KI-Programmierassistenten haben den Entwicklungszyklus schneller gemacht als je zuvor. Sind Ihre Sicherheitstests nicht automatisiert, können sie mit diesem beispiellosen Tempo nicht Schritt halten. Für eine erfolgreiche Automatisierung sollten Sie Sicherheitstests in die bereits von Entwicklungsteams genutzten Workflows integrieren, etwa in CI/CD-Pipelines.

Schützen Sie Ihr geistiges Eigentum

Teams sollten auch den Code berücksichtigen, mit dem sie KI-Programmierassistenten Prompts geben, und Maßnahmen ergreifen, damit Mitarbeitende nicht versehentlich vertrauliche Daten in Prompts preisgeben. KI-Tools verwenden die Prompts ihrer Kundinnen und Kunden in der Regel als Trainingsdaten. Das bedeutet, dass alles, was Sie in einen Prompt schreiben, verwendet werden kann. Daher ist es entscheidend, keine vertraulichen oder proprietären Codeinhalte in ein KI-Tool einzugeben. So können Sie beim Formulieren von Prompts für KI-Tools vorsichtig vorgehen:

  • Dokumentieren Sie detaillierte Richtlinien zur KI-Nutzung und schulen Sie Ihre Teams darin – einschließlich der möglichen Konsequenzen bei Nichteinhaltung.

  • Gehen Sie davon aus, dass alle Daten, die Sie in ein LLM eingeben, für dessen Training verwendet werden.

  • Geben Sie nur die Mindestmenge an Informationen ein, die ein KI-Tool für seine Aufgabe benötigt.

  • Erwägen Sie Eingabe- und Ausgabekontrollen, um Benutzereingaben und Ausgaben von KI-Tools zu bereinigen.

Erfahren Sie mehr darüber, wie Snyk die sichere Einführung von KI-Programmierassistenten ermöglicht.

Gepostet in: