Ich habe ein Security-Tool gebaut. Es hat eine kritische Lücke in sich selbst gefunden.
Ich entwickle einen Code-Security-Analyzer. Ich nenne ihn vibeanalyzer.
Das Ziel ist einfach. Viele Menschen betreiben heutzutage „Vibe-Coding“. Sie lassen KI-Agenten Code schreiben. Der Code sieht sauber aus. Die Tests laufen durch. Aber der Entwickler hat keine Ahnung, was sich tatsächlich im Projekt befindet.
Bevor ich mich voll darauf konzentriert habe, tat ich etwas, das ich schon längst hätte tun sollen. Ich prüfte, ob bestehende Tools dieses Problem bereits lösen. Das taten sie. Tools wie Semgrep, CodeQL und Snyk sind viel besser als ich.
Ich ließ Semgrep über mein eigenes Projekt laufen. Die Ergebnisse waren ein Realitätscheck.
Semgrep fand sechs Probleme in meinen Abhängigkeiten:
• Ein kosmetisches Problem bei der Wahl eines Hashs. • Zwei Probleme mit hohem Schweregrad in esbuild und vite. • Drei Probleme mit mittlerem Schweregrad im Zusammenhang mit Path Traversal. • Ein kritisches Problem in vitest.
Das vitest-Problem war eine Path-Traversal-Schwachstelle. Sie könnte es jemandem ermöglichen, Dateien außerhalb des Projekts zu lesen oder auszuführen. Ich selbst hatte diese Abhängigkeit hinzugefügt.
Wie kann ein Security-Tool eine kritische Schwachstelle haben?
Die Antwort ist die Supply Chain. Mein Code mag ehrlich sein. Aber die Werkzeuge, auf denen ich aufbaue, sind nicht immer sicher. Wenn ich das beim Bau eines Security-Tools übersehen habe, hat ein normaler Entwickler null Chancen, es zu entdecken.
Deshalb entwickle ich immer noch weiter.
Bestehende Tools wie Semgrep finden gefährliche Muster. Sie finden bekannte Schwachstellen. Aber sie verstehen keine Absicht (Intent). Sie wissen nicht, was dein Code eigentlich tun sollte.
Sie können nicht unterscheiden, ob eine Funktion zwar sicher ist, aber ein Problem löst, das in deinem Projekt gar nicht existieren sollte.
Ich nenne das die „Intent Gap“. Es ist die Distanz zwischen dem Code und seinem eigentlichen Zweck.
Vibeanalyzer konzentriert sich auf diese Lücke. Das Tool fragt nach der Absicht des Projekts und nach dessen Nicht-Zielen (Non-Goals). Es setzt Leitplanken (Guardrails). Wenn die KI den Code bewertet, kennt sie das Ziel. Sie weiß, was außerhalb der Grenzen liegt.
Ich habe den Teil für das Laden der Absichten abgeschlossen. Ich habe eine grundlegende TypeScript-Analyse und Graphen der Ordnerstruktur. Als Nächstes muss ich die KI-Schicht aufbauen. Ich weiß nicht, ob eine KI Code wirklich anhand der Absicht bewerten kann. Sie könnte lediglich Fehlalarme auslösen. Ich werde es in aller Öffentlichkeit entwickeln, um es herauszufinden.
Ich habe meine Abhängigkeiten aktualisiert und die bekannten Bugs behoben. Aber unbekannte Lücken und Logikfehler bleiben bestehen. Deshalb geht die Arbeit weiter.
Optionale Lern-Community: https://t.me/GyaanSetuAi
