de adversariële audit
Het is niet één audit. Het is een discipline.
Iedereen kan één keer een securityronde draaien en een screenshot maken van al het groen. Moeilijker is het om je eigen systeem steeds opnieuw aan te vallen terwijl het groeit, en elke keer hetzelfde antwoord te krijgen. De laatste ronde: een audit met 50 agents, de fixes uitgerold, daarna een aparte adversariële her-audit met 14 lenzen waarbij elke bevinding eerst een scepticus moest overleven voordat die telde. Wat standhoudt, houdt stand.
wat de laatste audit dekte
Eerst scope, methode en grenzen. Daarna pas het aantal agents.
Uit de meest recente core-audit, gedateerd 25 september 2026. Het aantal agents zegt hoe druk een audit was, niet hoe goed, dus dit is wat deze audit werkelijk deed.
- Code
- Het core-pakket, 162 bestanden en 17,362 regels, op één vaste commit, plus de gatewaycode die nodig is om te bepalen of elk pad live is.
- Toegang
- De volledige broncode, en een verse database opgebouwd uit de migraties. Niet de productiedatabase; instellingen die alleen in productie bestaan werden als ongeverifieerd gemarkeerd en daarna door mij gecontroleerd.
- Methode
- Vier reviewers lazen elk één laag volledig. Een lead las elke bevinding opnieuw na tegen het bestand en voerde elke timing- of patroonclaim uit voordat die meetelde.
- Ernst
- HIGH betekent een gemiste crisis of een denial of service op een live pad, een lek tussen tenants, of verloren geld. Medium betekent een beveiliging die open faalt, krediet dat uit het niets ontstaat, of data die stilletjes wegvalt. Elke bevinding is ook gemarkeerd als live of latent: vandaag in productie bereikbaar, of niet.
- Onenigheid
- Een bevinding die de lead niet kon reproduceren werd geschrapt of als ongeverifieerd gemarkeerd, niet meegemiddeld.
- Resultaat
- 2 HIGH- en 13 medium-bevindingen. Allemaal dezelfde dag opgelost, elk met een test die op de oude code faalde, en de volledige suite opnieuw gedraaid in CI.
- Niet gedekt
- De getrouwheid van ongeveer 7,000 regels vertaalde veiligheidsteksten, de productiedatabase, de webserverconfiguratie en 17 lage bevindingen die nog openstaan.
Zelf uitgevoerd door AI-reviewers die ik aanstuurde, geen onafhankelijke zekerheid van een derde partij.
het ritme
Keer op keer opnieuw aangevallen. Elke cross-tenant-bevinding hieronder werd door een audit gevonden, niet door een klant gemeld, en opgelost.
✓ kroonjuwelen hielden elke ronde stand, isolatie · geld · governance · SSRF · tokendomeinen
drie van de echte
HIGH Gesprekslek tussen tenants
Het chatgeheugen was gekoppeld aan de afzender, niet aan de tenant, dus bij een gast die via het platform twee bedrijven een bericht stuurde, kon het gesprek met het ene bedrijf opduiken in de prompt van het andere. Verholpen: geschiedenis is op de opslaglaag gekoppeld aan het bedrijf, met een test die faalt als de oude sleutel terugkomt. Het is gevonden door de audit, niet gemeld door een klant.
HIGH Een provider die een aanroeper leegtrekt
In de cross-tenant tool-economie kon een aanbieder de prijs van een toegekende tool verhogen nadat een aanroeper die was gaan gebruiken, en zo diens saldo leegtrekken. Opgelost: de aanroeper stemt per aanroep in met een prijs, fail-closed, geen toestemming, geen afschrijving, afgedwongen voordat er ook maar één credit verschuift.
HOOG Crisis achter de meter
De billingcheck draaide vóór de crisischeck, dus een klant in nood die een bedrijf zonder tegoed een bericht stuurde, kreeg "niet beschikbaar" in plaats van een crisislijn. Opgelost: crisis wordt gratis afgehandeld, vóór elk plafond en elke afschrijving, op elk klantkanaal.
De lenzen bestrijken isolatie · auth · injectie · geld · governance · boekingen · kanalen · de autonome resident · datarechten (GDPR/PECR) · de sitegenerator · frontend · ops. Het oordeel, elke ronde: nul kritieke bevindingen openstaand; tenant-isolatie en het XSS-oppervlak kwamen schoon terug; geen live auth-bypass: elk bevestigd randgeval opgelost en opnieuw uitgerold.
de eerlijke cijfers
Elk cijfer, met het sterretje er al bij.
De meeste bouwers dikken aan. Ik heb liever dat je vertrouwt op de delen die echt zijn dan dat je onder de indruk bent van delen die dat niet zijn.
Het systeem is eerlijk omdat degene die het ontwierp dat is. Daar heb ik vanaf het begin voor gezorgd: ingebouwd, niet achteraf vastgeschroefd.
de uitnodiging
De cijfers houden stand. Inclusief sterretjes.
Als je een bouwer zoekt die zijn eigen werk zo hard aanvalt voordat iemand erom vraagt, en dat blijft doen naarmate het systeem groeit, laten we praten.
Vraag naar de audits: wat is gevonden, wat is opgelost, wat staat nog open.
- Wat staat er nog open?
- Wat was het ergste dat is gevonden?
- Wie heeft deze audits uitgevoerd?