KI-generierter Code und Open-Source-Abhängigkeiten bergen dasselbe Kernproblem: Code gelangt in Ihre Pipeline, ohne dass seine Quelle verifiziert und nachvollziehbar ist. Codesignierung löst dieses Problem, indem sie vorschreibt, dass jedes Artefakt – unabhängig davon, ob es von einem Menschen, einem KI-Tool oder einem Drittanbieterpaket erstellt wurde – eine Überprüfung durchlaufen muss, bevor es signiert und freigegeben werden kann.
Kurz gesagt: Weder KI-generierter Code noch Open-Source-Abhängigkeiten sollten in die Produktion gelangen, ohne die gleichen Signaturprüfungen wie von Menschen erstellter Code zu durchlaufen: Abhängigkeits- und Schwachstellenscan (SBOM/SCA), menschliche Überprüfung der von der KI erstellten Änderungen und eine Signatur, die erst angewendet wird, nachdem beide Prüfungen bestanden wurden.
Wichtige Erkenntnisse
- KI-generierter Code und Open-Source-Abhängigkeiten bergen unterschiedliche Risiken: Bei KI-generiertem Code geht es um Verantwortlichkeit und Korrektheit (die Logik wurde nicht von einem Menschen überprüft); bei Open-Source-Abhängigkeiten um die Herkunft (man kann nicht überprüfen, wer den Code pflegt oder zuletzt geändert hat). Beide müssen aus unterschiedlichen Gründen vom selben Signaturverfahren ausgeschlossen werden.
- Geschwindigkeit und Sicherheit stehen hier nicht grundsätzlich im Widerspruch: Automatisierte SBOM/SCA-Scanning- und Signing-Gates fügen der Pipeline zusätzliche Stufen hinzu, anstatt manuelle Engpässe zu verursachen, sobald sie in CI/CD integriert sind.
Zuordnung von Risikoquellen zu Kontrollmaßnahmen
| Risikoquelle | Spezifisches Problem | Kontrolle |
|---|---|---|
| KI-generierter Code | Kein Mensch hat überprüft, ob die Logik korrekt ist oder frei von unbeabsichtigt eingeführten Schwachstellen. | Vor der Signierung eines KI-generierten Commits ist eine menschliche Überprüfung und Genehmigung erforderlich; die Identität des Prüfers ist im Signaturprotokoll zu protokollieren. |
| Open-Source-Abhängigkeiten | Herkunft und Verantwortlicher können nicht allein anhand des Pakets verifiziert werden. | SBOM-Generierung und SCA-Scan (Software Composition Analysis) vor der Signierung; Blockierung der Signierung bei bekannten Schwachstellen oder nicht verifizierten Abhängigkeiten |
| Beides | Der Druck, schnell zu liefern, kann beide Prüfungen umgehen. | Der Signaturprozess selbst sollte die Sicherheitsprüfung erzwingen: Wenn SBOM/SCA nicht erfolgreich war oder keine Überprüfung stattgefunden hat, kann die Pipeline keine gültige Signatur erzeugen. |
CI/CD-Pipelines und Code Signing verstehen
Die Codesignierung ist ein relativ einfach zu verstehender Prozess, der mit einer Public-Key-Infrastruktur ( PKI) beginnt . Der Unterzeichner fordert ein Codesignierungszertifikat von der PKI an und erhält damit das zugehörige öffentliche und private Schlüsselpaar, mit dem er den Code signieren kann. Das Schlüsselpaar besteht aus einem öffentlichen Schlüssel, der mathematisch mit dem privaten Schlüssel verknüpft ist. Der öffentliche Schlüssel ist für jeden einsehbar und nutzbar, während der private Schlüssel nur dem Zertifikatsinhaber zur Verfügung steht. Der Sinn dieses Codesignierungszertifikats besteht darin, dass die Signierung des Codes dem jeweiligen Benutzer zugeordnet wird, dem dieses Zertifikat gehört.
Der eigentliche Codesignierungsprozess beinhaltet das Hashen des Codes. Beim Hashen wird der Code oder ein Dokument einem Hash-Algorithmus zugeführt. Dieser Algorithmus wandelt die Datei dann in einen Hashwert um, der nicht lesbar ist. Ähnlich wie bei der Verschlüsselung ist der Hashwert eine unlesbare Mischung aus Buchstaben und Zahlen; im Gegensatz zur Verschlüsselung ist das Hashen jedoch eine Einwegfunktion. Das bedeutet, dass der Hashwert niemals umgedreht werden kann, um den ursprünglichen Text wiederherzustellen.
Dieser Hashwert wird an ein Hardware-Sicherheitsmodul (HSM) gesendet , das den privaten Schlüssel des Codesignaturzertifikats speichert. Mit diesem privaten Schlüssel wird eine Signatur für den Code generiert. Die Signatur wird anschließend zusammen mit dem Code an den Client zurückgesendet. Diese Signatur stellt sicher, dass der Unterzeichner bestätigt, dass der Code frei von Schadsoftware und Viren ist.
Nachdem wir nun die Funktionsweise der Codesignierung verstanden haben, stellt sich die Frage: Wo kommt sie in den CI/CD-Pipelines von Softwareentwicklern zum Einsatz? Eine CI/CD-Pipeline nutzt für jede Phase des Softwareentwicklungszyklus verschiedene Tools, wodurch der Softwareentwicklungsprozess automatisiert und vereinfacht wird. Tools wie Jenkins können in die Codesignierung integriert werden, um im letzten Schritt eine digitale Signatur zu erstellen.
Tools wie SBOM können vor dem Hochladen von Code auf GitHub eingesetzt werden, um eine bestimmte Anzahl von Sicherheitslücken zu überprüfen. Virenscanner können den Code während des gesamten Prozesses auf Viren scannen und so das Vertrauen der Endnutzer in ihre Software stärken. Wie Sie sehen, können KI-gestützte oder Open-Source-Tools die CI/CD-Pipeline deutlich beschleunigen. Der Einsatz solcher Tools bedeutet jedoch, dass die Sicherheit zugunsten der Geschwindigkeit beeinträchtigt wird, was grundsätzlich nicht empfehlenswert ist.
Bedrohungen durch Open Source und KI-Tools
Open-Source- oder KI-Tools eignen sich hervorragend zur Verbesserung und Beschleunigung Ihrer CI/CD-Pipeline. Allerdings bergen diese neuen Tooltypen auch viele Sicherheitsbedenken. Es gibt Sicherheitsprobleme bei Open-Source-Tools. Da es sich um Open Source-Tools handelt, lässt sich weder ihre Herkunft noch deren Änderung oder Aktualisierung überprüfen. Dies führt zu Sicherheitsproblemen, da Sie Software bereitstellen möchten, bei der sich der Endbenutzer darauf verlassen kann, dass sie sicher erstellt und verwaltet wurde.
Open-Source-Tools können Schwachstellen in CI/CD-Pipelines aufdecken und Angreifern so neue Angriffsvektoren für Malware und Viren eröffnen. KI-generierter Code birgt ein besonderes Risiko: Er kann syntaktisch korrekt sein und grundlegende Tests bestehen, dennoch Logikfehler, unsichere Muster oder subtil falsche Annahmen enthalten, die von keinem Menschen überprüft wurden. Wird KI-generierter Code wie von Menschen geschriebener Code behandelt, ohne ihn explizit als KI-generiert zu kennzeichnen, geht diese Verantwortlichkeit verloren.
Die praktische Lösung besteht nicht darin, Geschwindigkeit oder Sicherheit zu verwechseln. Vielmehr geht es um die Automatisierung der Prüfungen: SBOM-Generierung und SCA-Scanning laufen als Pipeline-Schritt in Sekundenschnelle ab, und das Markieren von KI-generierten Commits zur Überprüfung muss den Release-Zyklus nicht verlangsamen, solange die Review-Warteschlange aktuell ist. Der Engpass ist meist ein fehlendes Gate, nicht etwa ein grundsätzlich langsamer Prozess.
Häufig gestellte Fragen
Überprüft die Codesignierung, ob der von der KI generierte Code korrekt ist?
Nein. Die Codesignierung verifiziert Ursprung und Integrität, nicht aber die Korrektheit oder Sicherheit der Logik selbst. Sie bestätigt, wer den Code signiert hat und dass er seitdem unverändert geblieben ist. Um fehlerhafte, KI-generierte Logik zu erkennen, sind menschliche Prüfungen und Tests vor dem Signieren erforderlich, nicht die Signatur selbst.
Können SBOM- und SCA-Scans die manuelle Überprüfung von Open-Source-Abhängigkeiten vollständig ersetzen?
Sie erkennen bekannte Sicherheitslücken und kennzeichnen verdächtige oder nicht mehr gewartete Pakete, können aber weder die Identität noch die Absicht des Entwicklers überprüfen. Die Kombination aus automatisiertem Scannen und regelmäßiger manueller Überprüfung kritischer Abhängigkeiten bietet eine umfassendere Abdeckung als jede Methode allein.
Fazit
Die richtige Balance zwischen Geschwindigkeit und Sicherheit zu finden, ist entscheidend und kann für kleinere Teams eine Herausforderung sein. Glücklicherweise kann Encryption Consulting Sie dabei unterstützen. Wir helfen Ihnen, Ihre Compliance-Anforderungen sowie Ihre Anforderungen an die Codesignierung zu erfüllen. Unsere Plattform CodeSign Secure bietet Ihnen verschiedene Ressourcen, die Sie in Ihre CI/CD-Pipelines integrieren können.
Neben der Codesignierung ermöglicht CodeSign Secure die Nutzung der SBOM-Integrationen, um Code vor dem Hochladen auf GitHub auf Sicherheitslücken zu prüfen. Die Integration in bestehende CI/CD-Pipelines wie Jenkins , TeamCity oder Azure DevOps ist ebenfalls möglich. Weitere Informationen zu CodeSign Secure erhalten Sie unter www.encryptionconsulting.com.
