Doogree
DevSec · Shift-Left

Das Geheimnis vor dem Commit abfangen: Code-Scanning, das die Maschine nie verlässt

02.07.2026 · ~7 Min. Lesezeit
Code-ScanningSecretslocal-firstCIKI-Agent

Das häufigste Leck bei einem kleinen Unternehmen ist kein raffinierter Angriff — es ist ein Passwort oder API-Schlüssel, der im Code vergessen wurde, nach Git gepusht und von dort in die ganze Welt hinaus. Wir wollten es in dem Moment abfangen, in dem es geschrieben wird, nicht zwei Wochen nach dem Einbruch. Aber es gab eine nicht verhandelbare Bedingung.

Die Bedingung: Der Code verlässt die Maschine nie

Viele Scanning-Werkzeuge laden Ihren Quellcode in ihre Cloud hoch, um ihn zu analysieren. Für ein israelisches Unternehmen — mit seinem Code, seinen Geheimnissen und manchmal Kundendaten — ist genau das das Problem, das wir lösen wollten, nicht schaffen. Also lautete die erste Regel: Der Scan läuft zu 100 % auf dem Rechner des Entwicklers. Der Code und die geheimen Werte erreichen unsere Cloud nie; nur ein bereinigter Befund (Regel-ID, Schweregrad, Datei:Zeile, ein maskierter Fingerabdruck des Geheimnisses — niemals das Geheimnis selbst) wird an das Organisations-Dashboard hochgeschickt.

Ein Versprechen, das Sie Ihrem Buchhalter erklären können: „Ihre Schlüssel und Ihr Quellcode verlassen Ihren Rechner nie — wir scannen lokal, im Editor und in Git, bevor ein Geheimnis oder eine Schwachstelle es je in einen Commit schafft."

Die Kernentscheidung: eine Engine, nicht zehn Plugins

Wir hätten für jeden Editor ein separates Plugin bauen können — eines für VSCode, eines für Cursor, eines für JetBrains und weitere. Das ist eine Falle: zehn Codebasen zu pflegen, Logik, die zerfällt, und überall unterschiedliche Bugs. Stattdessen haben wir eine einzige Engine gebaut — eine statisch gelinkte ausführbare Datei (Rust) — die die gesamte Logik enthält, und jede „Oberfläche" ist ein dünner Wrapper darum:

Die Logik wird einmal geschrieben. Genau dieselbe Regel, die Ihren Commit schützt, schützt auch Ihre CI und alles, was ein KI-Agent zu schreiben versucht.

Was es abfängt

Der Kern kombiniert Secret-Erkennung im Gitleaks-Stil (ein Katalog regulärer Ausdrücke) mit einer Shannon-Entropie-Metrik — um eine zufällige Zeichenkette, die wie ein echter Schlüssel aussieht, von einem harmlosen Platzhalter wie "your-api-key-here" zu unterscheiden. AWS-Schlüssel, GitHub-Tokens, private Schlüssel, Passwörter in Verbindungszeichenketten und mehr — alle mit einer Behebung in Klartext und einem CWE-Verweis gekennzeichnet. Als Nächstes kommen: tiefes Schwachstellen-Scanning (Semgrep) und Abhängigkeits-Scanning (CVE).

Warum das kritisch ist: Ein nach Git gepushtes Geheimnis bleibt für immer in der Historie — selbst wenn Sie es im nächsten Commit löschen. Die einzige Möglichkeit, sauber zu bleiben, ist, es vorher abzufangen. Genau darin liegt der ganze Wert.

Der Blickwinkel, über den niemand spricht: KI-Agenten, die Code schreiben

Immer mehr Code wird heute von KI-Agenten geschrieben. Sie sind hervorragend — aber sie können auch ein unsicheres Muster „halluzinieren" oder aus Versehen ein Geheimnis einbetten. Unsere Engine sitzt als Hook auf dem Agenten: Wenn der Agent versucht, ein Geheimnis oder eine kritische Schwachstelle zu schreiben, verweigert der Hook — bevor der Inhalt je die Festplatte berührt. Wir haben ein neues Risiko (KI, die Code schreibt) in ein Verteidigungs-Gate verwandelt.

Wie wir es getestet haben

Wir haben das Werkzeug auf unserer eigenen Codebasis laufen lassen. Zwei Dinge waren wichtig: dass es echte Geheimnisse abfängt (wir haben mit synthetischen Beispielen getestet — AWS, Stripe, Verbindungszeichenketten — und alle wurden abgefangen) und dass es bei gültigem Code keinen Lärm macht (die Platzhalter wurden korrekt abgelehnt). Das Ergebnis auf unserem eigenen Code: 100/100 — null eingebettete Geheimnisse, weil sie alle am richtigen Ort leben (einem Secret-Manager), genau so, wie wir es unseren Kunden empfehlen.

Wie wir es stetig verbessern — kontinuierliche Qualitätskontrolle

Das Werkzeug läuft bei jeder Codeänderung, die wir vornehmen, auf sich selbst (ein CI-Gate), einschließlich Abhängigkeits-Scanning (SCA), das anzeigt, wenn eine Bibliothek, von der wir abhängen, verwundbar wird. Nächste Schritte: die Editor-Oberfläche (LSP) und die Agenten-Oberfläche (MCP) für jeden Kunden, eine Diff-Engine, die nur auf das Neue alarmiert (nicht auf altes Rauschen), und ein optionaler KI-Einblick, der jeden Befund erklärt. Dieselbe Philosophie: ein Werkzeug, lokal, transparent — das Wissen wird offengelegt, der Code bleibt bei Ihnen.

Dieser Artikel beschreibt den Ansatz auf Prinzipienebene. Er enthält keine sensiblen Erkennungssignaturen, Schlüssel oder Details, die einem Angreifer helfen würden — im Gegenteil, die Transparenz des Modells ist ein Stärkepunkt.

← Alle Artikel