Voorbeeld pentestrapport: hoe ziet een goed rapport eruit?

Een pentestrapport dat eindigt in een lade is geld weggegooid. Een goed rapport is opgebouwd in lagen — geschikt voor zowel een bestuur dat naar risico kijkt, als voor een ontwikkelaar die dezelfde dag wil patchen. Op deze pagina leest u de structuur die Resync hanteert, met een voorbeeldbevinding ter illustratie. Onderaan staat een sample-rapport als PDF.

De structuur in vogelvlucht

Inhoudsopgave van een typisch rapport

  1. Managementsamenvatting (1–2 pagina's)
  2. Scope en methodiek
  3. Bevindingen, gesorteerd op prioriteit
  4. Per bevinding: omschrijving, reproductiestappen, impact, aanbeveling
  5. Risico-overzicht en CVSS-scoring
  6. Aanbevelingen op procesniveau
  7. Hertest-verklaring (na patching toegevoegd)
  8. Bijlagen: tooling, verkeer-logs, methodiek-referenties

1. Managementsamenvatting

De eerste twee pagina's zijn voor bestuur, MT, CISO of opdrachtgever — niet voor ontwikkelaars. De samenvatting beschrijft in begrijpelijke taal wat we hebben getest, wat we hebben gevonden, hoe ernstig dat is, en wat dat in zakelijke zin betekent. Geen jargon. Geen lange tabel met CVE-nummers. Geen 200-pagina-scanner-output.

Wat erin staat:

2. Technische bevindingen

Per bevinding hetzelfde patroon: u kunt elke bevinding zelfstandig openen, lezen, reproduceren en oplossen. Elk item is opgebouwd uit zes elementen:

Voorbeeldbevinding (geanonimiseerd)

Hoog CVSS 7.5 OWASP A01:2021 — Broken Access Control

IDOR op tenant-ID parameter — cross-tenant datatoegang

Beschrijving: Het endpoint /api/v1/customers?tenant=<uuid> accepteert een tenant-UUID als query-parameter zonder server-side validatie tegen het sessie-token. Door simpelweg een UUID van een andere tenant in te vullen, kan een geauthentiseerde gebruiker klantgegevens van andere organisaties opvragen.

Reproductie: Authenticeer als gebruiker A van tenant X. Vraag GET /api/v1/customers?tenant=<UUID van tenant Y> op. Server retourneert HTTP 200 met klantgegevens van tenant Y.

Aanbeveling: Verwijder de tenant-parameter uit de query string. Lees de tenant af van het server-side sessie-object, dat al wordt onderhouden door de authenticatielaag. Voeg een autorisatiecheck toe die de aangevraagde resource toetst aan de tenant van de huidige sessie.

Dit is één voorbeeld; een typisch rapport bevat 3 tot 15 bevindingen, afhankelijk van de scope.

3. Prioritering naar impact

Niet elke bevinding is even urgent. Het rapport sorteert bevindingen op een combinatie van twee assen: hoe makkelijk uitbuitbaar (van buitenaf, geautoriseerd, vereist sociale engineering) en hoe groot de impact als het wel gebeurt (data-exfiltratie, account takeover, beschikbaarheidsverlies). Daaruit volgt een aanbevolen behandelvolgorde — die ook in de managementsamenvatting terugkomt.

4. Hertest-verklaring

Nadat uw team de bevindingen heeft verholpen, testen we opnieuw — niet de hele applicatie, maar specifiek de bevindingen. Per bevinding noteren we de status: opgelost, gemitigeerd, of open. De hertest-verklaring wordt als losse PDF aan het rapport gehecht, met datum en handtekening. Bruikbaar als bewijs richting auditors, klanten of toezichthouders.

Wat een goed rapport níét is

Bekijk een geanonimiseerd voorbeeldrapport

Een echt rapport (geanonimiseerd) van een eerdere opdracht — laat zien hoe Resync bevindingen formuleert, prioriteert en oplevert. PDF, ~40 pagina's.

Vraag het voorbeeldrapport aan →

Het sample-rapport sturen we per e-mail, ongated, na een korte intake-aanvraag. Op die manier kunnen we het rapport koppelen aan uw situatie — relevanter dan een algemene PDF die niemand ooit nakijkt.

Klaar om uw eigen rapport te laten maken?

Voor de scope-categorieën en het complete proces verwijzen we naar de pagina penetratietest laten uitvoeren. Voor het prijsmodel: wat kost een penetratietest.

Concreet rapport, concrete bevindingen

Vraag een voorbeeldrapport aan of plan direct een gratis intake.

Plan gratis intake →