Text size
Auf meinem Radar5 Min. Lesezeit

AI schreibt den Code. Wer überprüft das?

KI-generierter Code bringt neue Risiken mit sich, einschließlich Pakete, die nicht existieren. Wie man sie in CI fängt.

AI writes the code. Who checks it?
KI-generierte Illustration

Ein wachsender Anteil des Codes in unseren Repositories wurde nicht von einem Menschen getippt. KI-Assistenten schreiben Funktionen, Tests, Dockerfiles und Terraform. Die Agenten öffnen ganze Anfragen. Das ist ein großer Produktivitätsanstieg.

Die Steigerung des Codevolumens bedeutet, dass es mehr zu überprüfen gibt, aber die verfügbare Zeit hat sich nicht geändert. Außerdem hat der KI-generierte Code seine eigenen Fehler. Also muss die Pipeline noch mehr überprüft werden.

Die neuen Risiken in einfachen Worten

Unsichere Muster, die gut aussehen. KI lernte aus öffentlichem Code, und ein großer Teil des öffentlichen Codes ist unsicher. SQL aus Zeichenfolgen, deaktivierte TLS-Verifizierung, zu breite Berechtigungen, Geheimnisse in Konfigurationsdateien.

Ein veralteter Rat. Veraltete APIs, alte Bibliotheksversionen mit bekannten Schwachstellen, Kubernetes Manifestationen mit entfernt API-Versionen.

Halluzinierte Abhängigkeiten. Die KI schlägt vor, ein Paket zu importieren, das richtig klingt, aber nicht existiert.

Probleme mit der Lizenz. Generierter Code, der dem Code unter einer restriktiven Lizenz sehr ähnelt.

Größere Änderungen, weniger Überprüfung. Wenn es einfach ist, Code zu generieren, werden Pull-Anfragen größer, und große Pull-Antworten bekommen schlechtere Bewertungen.

"Slopsquatting": Installieren eines Pakets, das eine KI erfunden hat

Dieser verdient eine eigene Abteilung, weil er neu und hinterhältig ist.

Sprachmodelle erfinden manchmal Paketnamen. Glaubwürdige, wie requests-oauth-helper oder express-secure-session- Ich weiß . Forscher haben festgestellt, daß dieselben erfundenen Namen immer wieder auftauchen. Angreifer können diese Namen auf npm oder PyPI registrieren und mit Malware füllen. Wenn ein Entwickler oder ein Agent dem Vorschlag vertraut und das Paket installiert, läuft der Code des Angreifers.

Es ist eine Verwandlung von Typ-Quatting, und die Community nannte es Schleimhackerei.

Eine KI, die ein Paket vorschlägt, ist keine Empfehlung. Es ist eine Vermutung, und die Angreifer setzen auf diese Vermutungen.

Die Schecks, die ich in die Pipeline aufnehmen würde

Das alles braucht keine exotischen Werkzeuge. Es braucht die normale DevSecOps Toolbox, tatsächlich eingeschaltet und durchgesetzt:

  • Abhängigkeitsprüfungen. Analyse der Softwarezusammensetzung (Dependabot-Warnungen, OSV-Scanner, Snyk, Trivy) auf bekannte Schwachstellen. Und Tools wie Socket, die verdächtige Pakete markieren: brandneue, wenige Downloads, Installation von Skripten.
  • Eine Politik für neue Abhängigkeiten. Das Hinzufügen eines neuen Pakets sollte in der Pull-Anfrage sichtbar sein und einen menschlichen Blick erhalten. Einige Teams erlauben nur Pakete von einem internen Proxy oder Register.
  • Statische Analyse (SAST). Semgrep, CodeQL oder ähnliche, um die Injektion zu erfassen, unsichere Krypto- und gefährliche Funktionen.
  • Geheime Scan bei jedem Schub, mit Schutzzugang, sofern vorhanden.
  • - Ich habe einen Schnitt. Checkov, Trivy oder Tflint für Terraform und Kubernetes Manifest: offene Sicherheitsgruppen, privilegierte Container, fehlende Verschlüsselung.
  • Lizenz-Scan Wenn die Einhaltung der Lizenz für Ihr Unternehmen wichtig ist.
  • Tests, die eigentlich erforderlich sind. Die beste Verteidigung gegen selbstbewusste falsche Codes ist ein Test, der fehlschlägt.

Überprüfen, wenn es zu viel zu überprüfen gibt

Werkzeuge fangen Muster auf. Menschen müssen immer noch Logik erfassen. Ein paar Gewohnheiten helfen:

  • Halten Sie die Anfragen für einen Zug kleinAuch wenn KI große Dinge leicht macht. Bitten Sie den Agenten, die Arbeit zu teilen.
  • Kennzeichnen von KI erzeugten Änderungen Also müssen die Kritiker genau hinschauen. Einige Teams verwenden ein Label oder einen Commit-Trailer.
  • Überprüfen Sie zuerst die Tests. Wenn die Tests schwach sind, bedeutet der Code, sie zu bestehen, wenig.
  • Fragen Sie bei jeder neuen Abhängigkeit nach dem "Warum".
  • Lassen Sie die KI nicht allein ihren eigenen Code überprüfen. KI-Überprüfungswerkzeuge sind ein nützliches zusätzliches Paar Augen, kein Ersatz für eine menschliche Zustimmung.

Wer überprüft es?

Die Pipeline überprüft automatisch, was sie kann, und ein Mensch überprüft, was wirklich wichtig ist. So ist es immer gelaufen. KI macht es nur schwieriger, weil es mehr Code gibt, schneller geschrieben, von etwas, das nie zögert.

Meine Meinung: KI kann den Code schreiben. Ihre Pipeline und Ihre Kritiker müssen sich das Recht verdienen, es zu versenden.

Desly