Lizenzkontamination durch KI-Code
Der Assistent hat den Code geschrieben. Die Rechte daran hat jemand anderes.
Was ist Lizenzkontamination durch KI-Code?
Ein KI-Assistent kann Code, aus dem er gelernt hat, wortwörtlich wiedergeben, samt Lizenz, und die Pflichten daraus trägt das Unternehmen, das ihn ausliefert. Hier stellt sich heraus, dass eine Routine, die ein Assistent vor Wochen geschrieben hat, aus einem Copyleft-Projekt kopiert ist. Sie verfolgen sie über die Herkunftsmarkierungen in der Randleiste zurück, vergleichen sie mit der Upstream-Quelle, ersetzen sie durch Ihre eigene Implementierung, belegen die Korrektur mit einem Snippet-Lizenzscan und halten fest, woher Ihr Code stammt.
Was Sie lernen in Lizenzkontamination durch KI-Code
- Erklären, warum Code, den ein KI-Assistent schreibt, die Lizenzpflichten eines anderen Projekts mit sich bringen kann
- Anzeichen für kopierten Code erkennen, etwa markante Kommentare und ungewöhnliche Namen
- Verdächtigen Code mit seiner Upstream-Quelle vergleichen und die Lizenz lesen, unter der er steht
- Kopierten Code durch eine eigene Implementierung ersetzen und das Ergebnis mit einem Snippet-Lizenzscan bestätigen
- Für Code, den ein Assistent geschrieben hat, ein Herkunftsverzeichnis führen und vor jedem Release einen Lizenzscan durchführen
Lizenzkontamination durch KI-Code — Trainingsschritte
-
Hinweis aus der Rechtsabteilung
Alice leitet das SDK-Team bei Undercott. Das Telemetry SDK ist eine Closed-Source-Bibliothek, die Undercott an Kunden ausliefert und die in deren eigenen Geräten läuft. Heute Morgen hat Ilse, die Rechtsberaterin von Undercott, einen externen Hinweis dazu weitergeleitet.
-
Das SDK öffnen
Der Hinweis bezieht sich auf die Bit-Packing-Routine in src/bitpack.c im SDK-Repository ~/work/undercott-sdk . In der Randleiste kennzeichnen violett gestrichelte Linien Code, den ein Assistent geschrieben und bisher niemand geprüft hat.
-
Übernommen, nie gelesen
Vor einigen Wochen bat Alice Claude um eine schnelle Routine, die Sensormesswerte in 64-Bit-Wörter packt. Claude lieferte eine, sie bestand die Tests, und Alice übernahm sie. Ausgeliefert wurde sie mit 4.2.
-
Den Block lesen
Prüfen Sie den Block so, wie Sie die Änderung eines Kollegen prüfen würden, und achten Sie auf alles, was sich anders liest als der Rest der Codebasis.
-
Die Upstream-Quelle
Der Hinweis nennt die Upstream-Datei: src/bitpack.c von Crumbfold auf der Git-Plattform Githarrow.
-
Zeile für Zeile
Vergleichen Sie die Upstream-Routine mit dem Block aus dem SDK, der daneben angezeigt wird.
-
Was die Lizenz verlangt
Die Datei steht unter einer Lizenz. Githarrow fasst sie hinter dem Lizenz-Badge zusammen, und auch der Dateikopf nennt sie.
-
Wessen Problem es ist
-
Wie vor einem Release scannen
Ein Snippet-Scanner erstellt Fingerabdrücke des Quellcodes und gleicht sie mit Open-Source-Code ab. Genau diese Prüfung hätte das Problem aufgedeckt, bevor 4.2 ausgeliefert wurde.
-
Die Routine selbst schreiben
Umbenannte Variablen würden die Kopie verstecken, aber nicht beseitigen. Die Lösung ist eine Routine, die Alice selbst schreibt, auf Grundlage der Aufgabe statt des Codes von Crumbfold.
Abdeckung der Sicherheits-Frameworks
OWASP Top 10
- A03:2025 Software Supply Chain Failures
CWE
- CWE-1395 Dependency on Vulnerable Third-Party Component
CIS Controls
- CIS 16 Application Software Security
- CIS 2 Inventory and Control of Software Assets
NIST CSF
- PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
- PR.PS Platform Security
- ID.AM Asset Management