Werkwijze v1.0 / 2026-10

Onze werkwijze: zo verloopt een pentest, in zeven stappen.

v1.0 / 2026-10 / Eerste openbare versie

Als wij een pentest uitvoeren, gaat dat in zeven stappen: scoping, dreigingsmodel, testen, verificatie, ernst, rapportage en hertest. Dat gaat op dezelfde manier bij een AI-agent als bij de webapplicatie en de API eronder, en elke bevinding koppelen we aan de OWASP-lijsten, MITRE ATLAS en CVSS v4.01.

Een pentest heeft een vaste tijd. Een aanvaller niet. Dus besteden we die tijd aan denken.

§02 / Zeven stappen

Een pentest uitvoeren, van het eerste gesprek tot de hertest

  1. 01 / Scoping

    Wat erin zit, wat niet, en wie we bellen.

    Een gesprek van 30 minuten, daarna een schriftelijke scope: de systemen, accounts en omgevingen die meedoen, het testvenster, wat erbuiten valt, en de contactpersonen aan beide kanten. We spreken ook af hoeveel we vooraf weten: black box (niets), grey box (testaccounts, documentatie, de systeemprompt) of white box (ook de broncode). De scope wordt de bijlage bij je schriftelijke toestemming; er wordt niets getest voordat die is getekend.

    OpleveringScope + vrijwaringsverklaring

  2. 02 / Dreigingsmodel

    Wat een aanvaller van jou zou willen.

    We brengen in kaart wat er in je product te stelen of te misbruiken valt, wie erbij kan, en waar de modellaag de stacklaag raakt. Het testplan volgt het dreigingsmodel, niet een checklist, zodat de uren gaan waar het risico zit.

    OpleveringTestplan

  3. 03 / Testen

    Beide lagen, langs de dekkingskaart hieronder.

    Onze eigen tooling doet de verkenning, het vastleggen en afspelen van verkeer, en de triage. Een mens beslist wat uren verdient: bedrijfslogica, autorisatie, misbruik in meerdere stappen, de tools en het geheugen van een agent, en de paden tussen de twee lagen.

    OpleveringDekkingsmatrix, ingevuld

  4. 04 / Verificatie

    Niets komt in het rapport op een vermoeden.

    Stackbevindingen krijgen de exacte requests mee. Modelbevindingen krijgen een reproductiescore: n van de 10 pogingen, met model, versie en instellingen erbij, omdat een model niet altijd twee keer hetzelfde antwoordt.

    OpleveringF-03 / Gereproduceerd 7/10

  5. 05 / Ernst

    Een score die je kunt controleren, en de context die ze weglaat.

    Elke bevinding krijgt een basisscore in CVSS v4.0, met de vector ernaast. Naast de score staan de reproductiescore bij AI-bevindingen en de voorwaarden in gewone taal, zoals een account, een rol of een document in je kennisbank.

    OpleveringF-03 / CVSS-B 7.6 / Hoog

  6. 06 / Rapportage

    Eén rapport voor je engineers, één verklaring voor je klanten.

    Het volledige rapport in zeven delen, en een verklaring van één pagina die je kunt delen zonder de bevindingen.

    OpleveringRapport + verklaring

  7. 07 / Hertest

    Een bevinding is gesloten als de oplossing standhoudt.

    Na je oplossingen spelen we elke oorspronkelijke bevinding opnieuw af tegen de nieuwe build en werken we het rapport bij.

    OpleveringF-03 / Hertest: opgelost 2026-09-24

§03 / Dekking

Waar we kijken: de gezichtsveldtest

Onze testcatalogus heeft 54 categorieën: 20 in de modellaag, 34 in de stacklaag. We tekenen ze als een gezichtsveldtest, de oogtest met 54 punten2, omdat een testplan dezelfde zwakte heeft als een oog: een blinde vlek waar niemand kijkt. In ons plan is dat de gestippelde omtrek, en het enige wat erin valt, is wat jij buiten de scope laat.

  • Modellaag, 20
  • Stacklaag, 34
  • Wat jij buiten de scope laat
Fig. 1 / De gezichtsveldtest: onze 54 testcategorieën

§04 / De matrix

De dekkingsmatrix, zoals die in je rapport komt

Dezelfde 54 categorieën als tabel. In je rapport is elke rij gemarkeerd als getest, niet van toepassing of buiten scope, met de ids van eventuele bevindingen ernaast. Het voorbeeldrapport laat er een ingevuld zien.

OWASP Top 10 for LLM Applications 2026
IdCategorieWat we controleren
LLM01:2026Prompt InjectionWeerstand tegen prompt injection, direct en indirect
LLM02:2026Sensitive Information DisclosureLekken van gevoelige informatie in antwoorden en getoonde output
LLM03:2026Excessive AgencyTe veel handelingsruimte: rechten, autonomie en reikwijdte van tools
LLM04:2026Supply ChainToeleveringsketen van modellen, datasets en componenten
LLM05:2026Data and Model PoisoningIntegriteit van trainings-, finetuning- en retrievaldata
LLM06:2026Unbounded ConsumptionGrenzen aan verbruik en bescherming tegen denial of wallet
LLM07:2026MisinformationOnderbouwing van antwoorden en waarborgen tegen blind vertrouwen
LLM08:2026Hidden Context ExposureBescherming van systeemprompts en verborgen configuratie
LLM09:2026Vector and Embedding WeaknessesScheiding van vectoropslag en embeddings tussen gebruikers en klanten
LLM10:2026Improper Output HandlingValidatie van modeloutput voordat die code, browsers of databases bereikt
OWASP Top 10 for Agentic Applications 2026
IdCategorieWat we controleren
ASI01Agent Goal HijackDoelintegriteit van de agent als invoer en documenten instructies bevatten
ASI02Tool Misuse and ExploitationTool- en functieaanroepen binnen de bedoelde reikwijdte van de taak
ASI03Identity and Privilege AbuseIdentiteit van de agent, gedelegeerde rechten en grenzen aan bevoegdheden
ASI04Agentic Supply Chain VulnerabilitiesAgentische toeleveringsketen: MCP-servers, plug-ins en tooldefinities
ASI05Unexpected Code Execution (RCE)Grenzen aan code-uitvoering en sandboxing voor agents
ASI06Memory & Context PoisoningIntegriteit van agentgeheugen en gedeelde context
ASI07Insecure Inter-Agent CommunicationAuthenticatie en integriteit van berichten tussen agents
ASI08Cascading FailuresInperking van fouten die zich over agents en workflows verspreiden
ASI09Human-Agent Trust ExploitationMenselijke goedkeuring en waarborgen bij vertrouwde agentoutput
ASI10Rogue AgentsDetectie en inperking van agents die van hun opdracht afwijken
OWASP API Security Top 10 (2023)
IdCategorieWat we controleren
API1:2023Broken Object Level AuthorizationAutorisatie per object op elk endpoint
API2:2023Broken AuthenticationAPI-authenticatie en omgang met tokens
API3:2023Broken Object Property Level AuthorizationAutorisatie per eigenschap bij lezen en schrijven
API4:2023Unrestricted Resource ConsumptionRate limits en grenzen aan resourcegebruik
API5:2023Broken Function Level AuthorizationAutorisatie per functie voor rollen en beheerroutes
API6:2023Unrestricted Access to Sensitive Business FlowsBescherming van gevoelige bedrijfsprocessen
API7:2023Server Side Request ForgeryVerdediging tegen server-side request forgery
API8:2023Security MisconfigurationAPI-beveiligingsconfiguratie en hardening
API9:2023Improper Inventory ManagementAPI-inventaris, versies en ongedocumenteerde endpoints
API10:2023Unsafe Consumption of APIsVeilig gebruik van API’s van derden
OWASP WSTG-categorieën
IdCategorieWat we controleren
WSTG-INFOInformation GatheringBlootgestelde informatie en het in kaart brengen van de applicatie
WSTG-CONFConfiguration and Deployment Management TestingConfiguratie- en deploymentbeheer
WSTG-IDNTIdentity Management TestingIdentiteitsbeheer: rollen, registratie en provisioning
WSTG-ATHNAuthentication TestingAuthenticatie: inloggegevens, herstel en blokkering
WSTG-ATHZAuthorization TestingAutorisatie en scheiding tussen klanten
WSTG-SESSSession Management TestingSessiebeheer: tokens, cookies, uitloggen en time-out
WSTG-INPVInput Validation TestingInvoervalidatie en omgang met injectie
WSTG-ERRHTesting for Error HandlingFoutafhandeling zonder informatielekken
WSTG-CRYPTesting for Weak CryptographyTransportbeveiliging en cryptografische keuzes
WSTG-BUSLBusiness Logic TestingBedrijfslogica en integriteit van processen in meerdere stappen
WSTG-CLNTClient-side TestingBeveiliging aan de clientkant: DOM, cross-originbeleid en framing
WSTG-APITAPI TestingReview van GraphQL en het API-oppervlak
Cloud en infrastructuur
IdCategorieWat we controleren
Minimale rechten voor gebruikers, rollen en serviceaccounts
Paden naar meer rechten en vertrouwen tussen accounts
Inloggen versterkt: federatie, MFA en voorwaardelijke toegang
Blootstelling van objectopslag en toegangsbeleid
Geheimen in code, images en geheimenopslag
Integriteit van CI/CD-pipelines en buildrechten
Bescherming van instance-metadata en workloadidentiteit
Configuratie van containers en Kubernetes
Serverless functies en event-triggers
Gehoste AI-diensten: modelendpoints, sleutels en quota
Dekking van logging en audittrail
Externe infrastructuur: blootgestelde hosts, diensten en toegang op afstand

§05 / Ernst

Hoe we een bevinding beoordelen

ErnstCVSS v4.03Wat we van je vragen
Kritiek9,0 tot 10,0Eerst oplossen, voor al het andere.
Hoog7,0 tot 8,9Oplossen voor je volgende release.
Middel4,0 tot 6,9Plan de oplossing in, en kijk of de bevinding samen met andere een pad vormt.
Laag0,1 tot 3,9Oplossen als de code weer wordt aangeraakt.
Info0,0Geen direct risico: een opmerking over hardening of hygiëne.

Een score is een beginpunt, geen oordeel. Een keten van middelzware bevindingen kan ergens kritiek eindigen, en het rapport beoordeelt haar daar, als bevinding over beide lagen, zodat niets belangrijks tussen twee rapporten verdwijnt.

§06 / Wie doet wat

Wat onze tooling doet, en wat een mens beslist

Onze tooling doetEen mens beslist
Assets ontdekken en verkenning samenvoegenHet dreigingsmodel: wat een aanvaller echt van je wil
Crawlen, verkeer vastleggen en afspelenWat uren verdient en wat niet
Testgevallen in grote aantallenBedrijfslogica, autorisatiemodellen, misbruik in meerdere stappen
Triage en ontdubbelen van responsesKleine problemen samenvoegen tot één echt risico
Herhaalde pogingen op de AI-laag, met telling van reproductiesDe test waar nog niemand een checklist voor heeft
Eerste opmaak van het rapportDe ernst, de oplossing en elk woord dat je leest
Elke oorspronkelijke bevinding opnieuw afspelen bij de hertestOf de oplossing de oorzaak wegneemt, niet alleen het symptoom

§07 / Je gegevens

Tooling en gegevens, per opdracht vastgelegd

Modellen
Waar
Hoe lang
Inloggegevens
Nooit per e-mail of via het scopingformulier. Als de test ze nodig heeft, zetten we een veilig kanaal op.

Bekijk de werkwijze in de praktijk

Het voorbeeldrapport is deze werkwijze, ingevuld voor een fictieve klant. De spelregels zijn wat we beloven terwijl de test loopt.