Ik heb een securitytool gebouwd. Die vond een kritiek lek in zichzelf.

Ik ben een code security analyzer aan het bouwen. Ik noem het vibeanalyzer.

Het doel is simpel. Veel mensen doen tegenwoordig aan "vibe-coding". Ze laten AI-agents code schrijven. De code ziet er schoon uit. De tests slagen. Maar de ontwikkelaar heeft geen idee wat er werkelijk in het project zit.

Voordat ik er vol voor ging, deed ik iets wat ik eigenlijk al lang had moeten doen. Ik controleerde of bestaande tools dit probleem al oplosten. Dat deden ze. Tools zoals Semgrep, CodeQL en Snyk zijn veel beter dan ik.

Ik draaide Semgrep op mijn eigen project. De resultaten waren een reality check.

Semgrep vond zes problemen in mijn dependencies:

• Eén cosmetisch probleem met een hash-keuze. • Twee problemen met een hoge ernst in esbuild en vite. • Drie problemen met een gemiddelde ernst met betrekking tot path traversal. • Eén kritiek probleem in vitest.

Het vitest-probleem was een path traversal-kwetsbaarheid. Het zou iemand in staat kunnen stellen om bestanden buiten het project te lezen of uit te voeren. Ik heb die dependency zelf toegevoegd.

Hoe kan een securitytool een kritieke kwetsbaarheid hebben?

Het antwoord is de supply chain. Mijn code is misschien eerlijk. Maar de tools waarop ik bouw, zijn niet altijd veilig. Als ik dit over het hoofd heb gezien tijdens het bouwen van een securitytool, heeft een gewone ontwikkelaar nul kans om het te ontdekken.

Daarom ben ik nog steeds aan het bouwen.

Bestaande tools zoals Semgrep vinden patronen van gevaar. Ze vinden bekende kwetsbaarheden. Maar ze begrijpen de intentie niet. Ze weten niet wat je code eigenlijk had moeten doen.

Ze kunnen niet zien of een functie weliswaar veilig is, maar een probleem oplost dat niet in je project zou mogen bestaan.

Ik noem dit de intent gap. Het is de afstand tussen de code en het doel ervan.

Vibeanalyzer richt zich op deze kloof. De tool vraagt je naar de intentie van het project en de niet-doelen (non-goals). Het stelt guardrails in. Wanneer de AI de code evalueert, kent het het doel. Het weet wat buiten de grenzen valt.

Ik heb het onderdeel voor het laden van de intentie afgerond. Ik heb basis TypeScript-analyse en mappenstructuur-grafieken. Als volgende stap moet ik de AI-laag bouwen. Ik weet niet of AI code echt tegenover de intentie kan afwegen. Het zou zomaar valse alarmen kunnen veroorzaken. Ik ga het in het openbaar bouwen om erachter te komen.

Ik heb mijn dependencies bijgewerkt en de bekende bugs opgelost. Maar onbekende gaten en logische fouten blijven bestaan. Daarom gaat het werk door.

Bron: https://dev.to/stkremen/im-building-a-code-security-analyzer-a-security-tool-found-a-critical-in-it-4b77

Optionele leercommunity: https://t.me/GyaanSetuAi