Netwerk Scanning & Pentesting Firms
De titel van deze post is wellicht een klein beetje misleidend. In deze post gaan we het niet hebben over netwerk scanners en wat deze scanners betekenen voor een pentester maar juist wat een netwerk scan niet mag betekenen. Een netwerkscan staat niet gelijk aan een goede pentest! En hierbij mijn relaas ontstaan uit irritatie.
Vandaag (eigenlijk vorige week…) weer een mooi voorbeeld meegemaakt. Ik zat aan tafel bij een organisatie en CompanyX (niet hun echte naam natuurlijk). CompanyX is ingehuurd om op 3 sectoren binnen de organisatie een pentest uit te voeren. CompanyX kent ook 3 soorten pentests. Laten we ze voor het gemak Basic, Normal en Advanced noemen. Binnen deze “pakketten” wordt onderscheid gemaakt tussen de tijd die een pentester mag besteden voor de pentest, de vorm van documentatie en het type test (white box, grey box en black box). Voor alle 3 de pakketten had CompanyX heel netjes voorbeelddocumentatie bij met uitleg en grafiekjes. Mooi. Ware het niet dat alles te herleiden is naar de gebruikte netwerk scanners. Denk aan de Rood, Paars, Oranje en groene kleurcodering. Nessus anyone?
En na wat doorvragen blijkt dat de resultaten van netwerkscanners inderdaad de basis zijn voor alle rapportages van CompanyX. En daar gaat iets fundamenteels mis. Ik stel me zo voor dat er iemand (laten we hem Frank noemen) werkt bij CompanyX die hele dagen bezig is om de resultaten van netwerkscanners om te zetten naar duidelijk leesbare Word bestanden. Ik vindt dit gedrag volkomen begrijpelijk en toch volkomen verkeerd. De klant is de dupe van dit soort gedag. Bedrijven als CompanyX willen tegen een zo scherp mogelijk tarief een pentest verkopen met als resultaat een uitgebreid verslag welke vervolgens alleen door Frank gelezen wordt (hij moest het rapport immers maken) en door de klant worden alleen maar de rode (kritische) items bekeken. Waarom… omdat het de rode items zijn! En omdat het rapport verder teveel informatie bevat in termen die maar half begrijpelijk zijn voor de gewone lezers. En dus kijkt men alleen naar de rode items.
Maar wat dit gedrag veroorzaakt is een incomplete pentest door gebrek aan creativiteit van de pentester. Een pentester ofwel een hacker is van nature een creatief en nieuwsgierig persoon. Wat zegt Wikipedia over een hacker? Wikipedia zegt:
———————————————————————
Binnen de hackersgemeenschap wordt wel onderscheid gemaakt tussen hackers en crackers. Een veelgenoemd verschil tussen hackers en crackers is dat hackers hun handelingen vaak verrichten als uiting van constructieve creativiteit (“voor de kunst van het bouwen”) of als goedbedoelde handelingen (zoeken naar veiligheidslekken om deze later te kunnen dichten). Soms huren bedrijven hackers in om de beveiliging van hun systemen te testen. Crackers handelen uit crimineel, ideologisch of vernielzuchtig oogpunt.
———————————————————————
En dat klopt. Een hacker is iemand die wil weten hoe iets in elkaar steekt om op die manier iets te kunnen maken en verbeteren. Juist omdat een hacker weet hoe iets in elkaar steekt bezit deze de mogelijkheid om structuren en processen te vinden welke voor automatische tools altijd verborgen blijven.
Stel je de volgende situatie voor:
SoftwarepakketA van de organisatie is web-based en gebruikt signed https verbindingen naar een database server. De database server is volledige gepatched,yu beveiligd met goed geconfigureerde firewalls etc. Scanners als NMap zullen in dit soort situaties weinig kritische problemen vinden. Wat deze scanners niet testen is het gedrag van de applicatie. Wat bij uitgebreid testen dus blijkt is dat de applicatie errorlogs creëert wanneer een gebruiker een ongeaccepteerde handeling uitvoert. Deze errorlogs bevatten de timestamp, gebruikersnaam van de ingelogde gebruiker, URL en een screenshot van het actieve venster. Deze errorlogs werden om de 2 maanden gerouleerd maar dan nog waren er honderden screenshots van schermen met gevoelige data. Deze errorlogs werden opgeslagen in een directory op de webserver waar men vrij gemakkelijk toegang toe kon verkrijgen. Een ernstig lek welke door alle scans heen glipt.
Of nog een voorbeeld.
In de rapportage van CompanyX zien we het bestand “portal.php” terug in de documentatie van de scanner. Op zich is “portal.php” geen malafide bestand en dus geeft de Nessus scan deze bevinding weer als blauw (informational). Een goede pentester die de documentatie bekijkt en de situatie van de organisatie kent weet echter dat dit bestand potentieel verdacht is. “Portal.php” terwijl de klant niet met portals werkt. Wat “portal.php” wel blijkt te zijn is een simpele backdoor waardoor gebruikers ongeautoriseerd bestanden op de webserver konden plaatsen. Misschien zelfs gemaakt door een oud website beheerder die dat wel handig vond? De backdoor was simpele PHP code en het script was al meer dan 6 jaar oud. Full Access, ongeautoriseerd. En toch wordt deze zwakheid niet opgemerkt door een netwerk scanner…
Zijn netwerkscanners dan helemaal nutteloos?
Nee natuurlijk niet. Netwerkscanners en andere automatische tools zijn zeer waardevol. Iedere pentester moet deze ook gebruiken. We moeten echter oppassen dat we ons niet beperken tot het gebruik van automatische tools. Gebruik deze tools als je ogen en oren. Gebruik ze als sensoren die je in de juiste richting wijzen. Daar zijn ze ook enorm goed in.
Ook mag je resultaten verwerken in rapportages maar dan als (en niet beperkend tot) constatering. Kijk verder. Hou van het bedrijf waar je de pentest voor uitvoert zodat je zoveel mogelijk over het bedrijf te weten komt. Gebruik je nieuwsgierigheid en probeer. Want een goede pentester start pas waar de documentatie van de automatische toolkit stopt!
Frank en uw klanten zullen u dankbaar zijn.