Incompetent Basterd
Home / Incompetent Bastard / Findings & Rapportage — Het Deel Waar Je Opdrachtgever Geld Aan Uitgeeft

Findings & Rapportage — Het Deel Waar Je Opdrachtgever Geld Aan Uitgeeft

8. Findings & Rapportage — Het Deel Waar Je Opdrachtgever Geld Aan Uitgeeft

Laten we even eerlijk zijn. Je opdrachtgever betaalt niet voor het hacken. Je opdrachtgever betaalt voor het rapport. Het hacken is het middel. Het rapport is het product. Ik weet het. Jij weet het. Diep vanbinnen wil je het ontkennen. Maar dit fundamentele inzicht — dat de waarde van je pentest zit in de documentatie en niet in de adrenaline — is wat het verschil maakt tussen een pentester die werk heeft en een pentester die een heel interessant verhaal heeft voor op feestjes maar geen inkomsten. Kies je maar uit welke je wilt zijn. Neem de tijd. Ik wacht.

Quick-add: Documenteren Terwijl het Gebeurt

De “+ Bevinding”-knop in de header opent een modal. Template kiezen — naam verschijnt automatisch. Host invullen. Beschrijving schrijven met de LaTeX-toolbar. CVSS-score klikken — de kleur verandert mee van groen (“mwah”) naar donkerrood (“bel de CEO en daarna de advocaat en daarna de therapeut”). Opslaan. Modal sluit. Totale tijd: dertig seconden. Je was bezig met een scan. Je ontdekte een kwetsbaarheid. Je documenteerde hem vóórdat de scan klaar was. Je voelde je even als een god onder de pentesters. Kort, maar intens.

Je opdrachtgever zal dit nooit zien. Hij zal het merken doordat het rapport bevindingen bevat met details die alleen mogelijk zijn als ze zijn vastgelegd op het moment van ontdekking. In plaats van drie uur later uit je hoofd, wanneer alles wat je je herinnert is: “er was iets met poort 443. Of was het 445? Het was een poort. Het was zéker een poort.” Klinkt dat bekend? Ja. Dat dacht ik al.

Het Finding-systeem

Een finding heeft:

  • Naam — wat het is
  • Locatie — waar het zit. Het host-veld toont autocomplete-suggesties uit je scope targets — dezelfde targets die je instelt via de Scope-knop op het dashboard of in de Instellingen-tab. Je typt, de suggesties verschijnen, je kiest er een of typt gewoon verder. Het is het soort gemak dat je niet opvalt totdat het er is, en daarna mis je het overal waar het niet is. Zoals airconditioning. Of beschaving.
  • CVSS 4.0 vector — de risicoscore, berekend met een calculator die je liever niet hoeft te begrijpen maar die de juiste getallen produceert, en dat is genoeg
  • Invoegen — reproductiestappen
  • Uitwerken — details, bewijs, impact
  • Gebruikersvlag / Rootvlag — proof-of-compromise

Eenvoudige en Geavanceerde Modus

Het finding-formulier heeft een “Geavanceerd”-toggle. Standaard zie je de essentiële velden: naam, host, CVSS, vlaggen, status, en de beschrijvingsvelden. Klik je “Geavanceerd” aan, dan verschijnen de uitgebreide velden: herstelstatus, doeldatum, herstelverantwoordelijke, gegevensclassificatie, herstelinspanning, betrokken assets, bedrijfsimpact en gerelateerde bevindingen. De keuze wordt onthouden in je browser via localStorage — zet het één keer aan en het blijft aan. Tot je het uitzet. Dat is hoe knoppen werken. Het feit dat ik dat moet uitleggen zegt meer over de staat van moderne software dan over deze applicatie.

Het idee is eenvoudig: tijdens de test wil je snel documenteren zonder door twaalf velden te scrollen. Na de test, wanneer je het rapport afrondt en de remediation-informatie invult, schakel je de geavanceerde modus in. Het is het verschil tussen een chirurg die opereert en een chirurg die het operatieverslag schrijft. Beide zijn nodig. Maar niet op hetzelfde moment. En niet met hetzelfde formulier. Behalve dat het wél hetzelfde formulier is. Maar het ziet er anders uit. Dat is het punt.

Templates

14 standaardtemplates in standard_findings.json, er zweeft ook nog ergens een legacy-catalogus met 227 stuks inclusief MITRE ATT&CK referenties rond. Elke template bevat beschrijving, impact, aanbeveling, OWASP Top 10 en CWE-ID. Je kiest een template, vult de details in, klaar. Het saaiste deel van het werk is al gedaan. Je mag dit ook vertalen als “het slimste deel van het werk is al gedaan,” want het verschil tussen saai en slim is in deze industrie verwaarloosbaar klein.

Je opdrachtgever profiteert: consistente structuur. Bevinding 1 leest als bevinding 17. Het ontwikkelteam weet wat het moet doen. Niemand hoeft te raden wat “de website is een beetje kapot” betekent — want de template dwingt een beschrijving af die een volwassen mens kan interpreteren. Zelfs op maandagochtend.

Evidence

Screenshots, PDF’s, tekstbestanden, JSON, XML, ZIP. Maximaal 10 MB per bestand. UUID-bestandsnamen. Exporteerbaar als ZIP. Wanneer je opdrachtgever vraagt “maar kunt u dat bewijzen?” geef je hem een ZIP-bestand in plaats van een ongemakkelijke stilte gevolgd door een blik op de klok en de opmerking dat het alweer bijna lunchtijd is.

Scope Targets

In de Instellingen-tab van het Rapport Dashboard definieer je scope targets: elk met een target, type (host, netwerk, URL of applicatie) en beschrijving. Dezelfde interface als via de Scope-knop op het hoofddashboard. De targets verschijnen als tabel in je rapport — in de scope-sectie, boven de managementsamenvatting. Als je geen expliciete targets hebt ingesteld, valt het rapport terug op de automatisch verzamelde locaties uit je bevindingen. Maar expliciete targets zijn beter. Expliciete dingen zijn altijd beter. Vraag het maar aan je therapeut.

Bonus: dezelfde scope targets verschijnen als autocomplete-suggesties in het host-veld van het finding-formulier. Ook in de quick-add modal. Je definieert je targets één keer en ze duiken overal op waar ze nuttig zijn — in je rapport, in je formulieren, in je geweten dat je georganiseerd te werk gaat. Het is het soort hergebruik waar software-architecten van dromen en waar de meeste codebases van wakker liggen. Deze codebase droomt.

Rapportgeneratie

Klik op “Generate report.” De applicatie haalt alles op, groepeert het per template, maakt er LaTeX van, gooit het door pandoc, en produceert .tex, .html en .md. Er verschijnt een preview. Het is — in de meest letterlijke zin van het woord — knopdruk-rapportage. Je drukt op de knop. Je krijgt een rapport. Het is bijna teleurstellend hoe weinig drama eraan te pas komt. Maar drama wil je in je vrije tijd. In je werk wil je dat de knop werkt.

Het LaTeX-sjabloon ondersteunt secties, subsecties, afbeeldingen, vetgedrukt, voetnoten, highlighting, lijsten en codeblokken. De regex die de LaTeX omzet naar HTML is het soort code waar je naar kijkt en zachtjes begint te huilen — niet van verdriet maar van verwondering — want het werkt. Het feit dat het werkt is een overwinning van koppigheid op logica, want logica zegt dat dit onmogelijk zou moeten zijn. Maar logica heeft het mis. Hier staan we dan.

Tools en Technieken in het Rapport

Het rapport bevat een automatisch hoofdstuk “Tools en technieken” (of “Tools and Techniques” in het Engels, want het sjabloon is tweetalig, omdat je opdrachtgever soms een CISO is die denkt dat Engels professioneler klinkt, en soms een CISO is die denkt dat Nederlands begrijpelijker is, en soms een CISO is die niet leest en het verschil toch niet opmerkt). Het hoofdstuk vermeldt dat Incompetent Bastard is ingezet — een opensourceproject dat ondersteuning biedt bij beveiligingsonderzoeken — plus de standaard toolset: Nmap, Burp Suite, Metasploit, BloodHound, CrackMapExec, Impacket. Allemaal tools die je opdrachtgever niet bij naam kent maar die zijn netwerk beter kennen dan hijzelf. De lijst is een startpunt; je past hem aan per opdracht. Het hoofdstuk sluit af met de opmerking dat alle tools conform de Rules of Engagement worden ingezet, wat de juridische equivalent is van “we hebben toestemming” maar dan met meer woorden, want juristen worden per woord betaald en dat merk je.

Op de hoogte blijven?

Ontvang maandelijks cybersecurity-inzichten in je inbox.

← Incompetent Bastard ← Home

Klaar voor de volgende stap?

Praat over je beveiliging.

Een vrijblijvend gesprek van 30 minuten — geen sales, alleen technische sparring.

Plan een gesprek →