Wat het doet
Begonnen als een tool om proffesionele rapporten te kunnen genereren met een consistente opmaak, vaste invoegbare elementen om tijd te besparen en voorzien van een aantal automatische tools om ranschikking, klassifiering en dergelijke te vereenvoudigen.
Uitgebreid met een Tasklist die enerzijds strucctuur brengt in de manier van testen, maar ook een transparend overzicht bied aan de klant door aan te tonen welke testen er op welke endpoints uitgevoerd werden.
Rapportonderdelen
| Sectie | Inhoud |
|---|---|
| Executive summary | Risicotabel op managementniveau - begrijpbaar zonder technische achtergrond. |
| OWASP Top 10 | Overzicht per kwetsbaarheidscategorie, automatisch opgebouwd uit findings. |
| Severity-overzicht | Aggregatie van alle findings per criticiteitsniveau. |
| Finding pages | Individuele pagina per kwetsbaarheid - beschrijving, impact, bewijs, remediëring. |
| Endpoint coverage | Matrix van welke endpoints op welke kwetsbaarheidstypes getest werden. |
| Task board | Operationele planning als bewijsstuk - toont scope, voortgang en koppeling aan findings. |
| Exploit annex | Technische details van uitgevoerde exploit chains. |
| Remediëringsplan | Geprioriteerde actielijst voor het dev team. |
De tasklist-laag
Elke taak krijgt een uniek ID gekoppeld aan de Caido Replay collections. Daardoor blijven testtaken, requests, payloads en technische bewijsstukken logisch verbonden met de rapportstructuur.
Elke taak beschrijft welke kwetsbaarheidscategorie getest werd, welke endpoints betrokken waren, de bijhorende OWASP-categorie, de status en eventuele gekoppelde findings. Tijdens het testen geeft dit structuur aan de uitvoering. Na de test wordt dezelfde data gebruikt als bewijslast richting klant.
Het rapport toont niet alleen welke kwetsbaarheden gevonden zijn, maar ook welke endpoints op welke kwetsbaarheidstypes getest werden. Dat maakt het eindrapport beter verdedigbaar.
Het eindproduct
Een single-file HTML-rapport: standalone, doorklikbaar en doorzoekbaar. Alle CSS, JavaScript en afbeeldingen worden ingebakken zodat het rapport zonder extra dependencies gedeeld of gearchiveerd kan worden. De klant krijgt één navigeerbaar bestand.
PDF-export via WeasyPrint voor wie dat nodig heeft. Beide formaten komen uit dezelfde brondata zonder extra handwerk.
Technische stack
| Tool | Rol |
|---|---|
| Quarto | Markdown-to-HTML render engine - schrijven in plain text, output in professioneel rapport. |
| Python | Pre-render scripts voor parsing van YAML brondata en rapportgeneratie. |
| Lua filters | Automatische finding headers en cross-referenties binnen het rapport. |
| Docker | Reproduceerbare builds - zelfde output op elke machine. |
| Monolith | Standalone HTML-export - alle assets ingebakken in één bestand. |
| WeasyPrint | PDF-export vanuit dezelfde brondata. |
| VS Code snippets | Snelle, consistente rapportage - minder tikwerk, minder fouten. |
Status
Ontwikkeld tijdens mijn stage bij Fox&Fish Cyberdefence, verder gepersonaliseerd en uitgebreid tot mijn dagelijkse werktool bij het uitvoeren van pentests.