Voor iemand zonder diepgaande technische kennis is het best moeilijk om in te schatten of een security-test goed is uitgevoerd, laat staan om hier vooraf al een goed beeld van te krijgen. Zoals ik in mijn vorige blog beschreef is het kiezen van een gerenommeerde partij erg belangrijk en dit zal je zeker al een bepaalde mate van zekerheid geven over de kwaliteit. Maar waar kun je nou zelf nog meer op letten als het om de inhoud gaat? Hoe weet je of er een passend security-onderzoek is gedaan en of je waardevolle resultaten hebt?
De intake: weet de leverancier wel wat hij gaat doen?
Als een bedrijf direct een prijs kan geven voor een security-test, dan kun je beter even verder kijken. Het noemen van een prijs zonder een idee te hebben van hoe de omgeving eruit ziet en wat jouw specifieke risico’s zijn duidt op een generieke aanpak die geen rekening houdt met jouw situatie en behoeften. One size fits all bestaat niet in security-testen. Je weet dat de intake goed gedaan wordt wanneer de contactpersoon op zijn minst verzoekt om inzicht in de technische aspecten van de omgeving, wil weten wat de reden is voor de test en wat de doelstellingen zijn, en kritische vragen stelt hierover. Er hoeft echt geen uren overlegd te worden met alle stakeholders, maar men moet wel een duidelijk beeld hebben van het onderwerp van de test om een goede inschatting te kunnen maken. Op deze manier weet de tester goed waarom hij/zij de test uitvoert en kan er gefocust worden op jouw specifieke security vraagstuk(ken).
Handmatig versus geautomatiseerd
Hoewel geautomatiseerde scans uitermate nuttig kunnen zijn voor het detecteren van algemeen bekende, eenvoudig te vinden kwetsbaarheden in publiek toegankelijke delen van je netwerk, kunnen deze nooit een handmatig onderzoek vervangen. Onderschat echter niet de hoeveelheid werk als je een scan goed wil uitvoeren. De gemiddelde geautomatiseerde scan is een lastig in te richten en overspoelt je met false positives/negatives waar triage op moet worden gedaan. De triage zorgt voor de juiste prioritering wat met zich meebrengt dat de uitkomsten ook relevant blijven, en daardoor minder snel zullen worden genegeerd. Een geautomatiseerde scan beschermt je voornamelijk tegen bekende kwetsbaarheden die massaal worden misbruikt via ook weer geautomatiseerde aanvalsvectoren (dit is het overgrote deel van alle succesvolle aanvallen).
Een handmatig onderzoek daarentegen, is veel gerichter en diepgaander. Bij een handmatig onderzoek gaat het er meestal om een zo volledig mogelijk beeld te krijgen van de mogelijkheden voor een aanvaller. Het doel is om zoveel mogelijk potentiële kwetsbaarheden in kaart te brengen en deze in het geheel te kunnen mitigeren door het nemen van technische en/of organisatorische maatregelen. Omdat het een gericht onderzoek is dat door een specialist wordt uitgevoerd, geeft dit ook veel minder ruis op je omgeving. Het is niet nodig om bepaalde aanvallen op oneindig veel manieren te proberen, omdat een ervaren hacker direct kan interpreteren hoe het systeem werkt en reageert en derhalve veel netter te werk kan gaan. Een handmatige test helpt je bij het beantwoorden van jouw specifieke security-vraagstuk en geeft een idee in hoeverre het mogelijk is een gerichte aanval succesvol uit te voeren.
Hoe wordt een handmatige test aangepakt?
Er zijn verschillende manieren om een test op te zetten. Dit kan variëren van een pentest met een specifiek systeem of type data als doel, tot een vulnerability assessment waarbij alle kwetsbaarheden in de breedte worden geïdentificeerd. Een checklist of tasklist is een heel goed hulpmiddel om als leidraad te gebruiken en biedt transparantie met betrekking tot de specifieke checks die er zijn gedaan. Daarnaast is het een goede manier om een rapport te structureren op basis van typen kwetsbaarheden zodat je een goed overall inzicht krijgt of je omgeving goed in elkaar zit en overal de juiste maatregelen zijn genomen. Tevens maakt het structureren van een test de resultaten ook reproduceerbaar wat helpt bij het oplossen van bevindingen.
Echter, is de ene kwetsbaarheid de andere niet: een ‘Cross-Site-Scripting probleem’ kan bijvoorbeeld heel simpel te vinden zijn, maar ook wat verder weggestopt zitten in het systeem waardoor meer kennis nodig is om deze te vinden en te misbruiken. Vaak is er voor de aanvaller dan ook nog een wereld aan nieuwe mogelijkheden door diverse kwetsbaarheden gecombineerd te gebruiken. Daarom is het nog steeds essentieel dat de ethische hacker die de test uitvoert zijn ervaring en creativiteit gebruikt om juist ook deze complexe combinaties te kunnen identificeren en rapporteren.
Voordat je met een bedrijf in zee gaat voor een security-test, vraag dan altijd een voorbeeldrapport aan. Dit geeft al een goede indruk van hoe en op welke punten een test wordt uitgevoerd én hoe de resultaten worden gerapporteerd.
Doorlooptijd en prijs
‘If you pay peanuts, you get monkeys’ is in de security-wereld zeker van toepassing. Als je een security-test voor een habbekrats wilt laten doen, verwacht dan ook niet teveel van de resultaten. Bij meerdere partijen een offerte aanvragen zal je een goed beeld geven van de norm. Het is druk in cybersecurity en voor goede partijen is er geen noodzaak om op prijs te gaan concurreren. De uitschieters naar beneden zullen dan ook hoogstwaarschijnlijk lagere kwaliteit of een ander product bieden (zoals een geautomatiseerde test), en de uitschieters naar boven zullen waarschijnlijk een overvolle planning hebben.
Let ook op de correlatie tussen prijs en doorlooptijd. Een goede security-test doe je doorgaans niet in 1 of een paar dagen. De gemiddelde doorlooptijd is 1 tot 3 weken aan hands-on werk voor een dedicated tester. Is de doorlooptijd heel kort, dan heb je waarschijnlijk te maken met een geautomatiseerde scan. Is het erg lang, dan kun je vraagtekens zetten bij de kwaliteit van uitvoer of wordt het dagtarief daarmee kunstmatig laag gehouden. In the end is een dagtarief niet van belang, maar het eindresultaat wat je boekt voor de totale prijs van het onderzoek. Desalniettemin wordt vaak nog wel geconcurreerd op dagtarief. Laat je hierdoor niet van de wijs brengen en focus je op het gewenste resultaat.
Een goed security-testrapport versus een slecht rapport
Hoe ziet het ideale testrapport eruit? Een rapport van een goed uitgevoerde security-test geeft duidelijkheid over wat er precies is gedaan en heeft een aantal kenmerken:
- De scope van de opdracht en het specifiek te beantwoorden vraagstuk zijn zeer duidelijk beschreven.
- Er wordt precies uitgelegd naar welke kwetsbaarheden de security-specialist op zoek is geweest en waarom.
- Bevindingen worden aangevuld met een uitleg van de moeilijkheidsgraad, toegangscomplexiteit en impact van de kwetsbaarheid. Op basis van deze berekening worden bevindingen geprioriteerd.
- Bij elke bevinding wordt uitgelegd hoe deze op te lossen is voor het specifieke systeem.
- Een managementsamenvatting geeft op een abstracte manier een beeld van de algehele status van veiligheid in de omgeving.
- De security-specialist kan het rapport tot in detail toelichten en spreekt met je af om deze persoonlijk door te nemen.
Wanneer moeten de alarmbellen afgaan als je het security-testrapport voor je hebt?
- Als een rapport weinig tot geen bevindingen bevat. Spring dan niet meteen een gat in de lucht omdat je het zó goed voor elkaar hebt (wat natuurlijk mogelijk is), maar kijk eerst eens kritisch welke checks er zijn gedaan. Een goed rapport bevat bijna altijd wel een aantal aanbevelingen om de veiligheid naar een (nóg) hoger niveau te tillen.
- Als een rapport heel veel bevindingen bevat die niet of beperkt worden toegelicht. Ga dan niet direct in een hoekje zitten huilen omdat je blijkbaar toch niet kunt programmeren, maar ga eerst eens na of het niet om allerlei false positives gaat.
- Het rapport wordt ‘koud’ opgestuurd en (liever) niet op locatie besproken.
Twijfel je over een opgeleverd rapport, of heb je hulp nodig om in te schatten waar je naar moet kijken voor jouw specifieke security-test? Neem gerust contact op met onze hackers via hackers@computest.nl, dan helpen we je graag verder.