Independent. Dynamic. Involved.
nlen

Security is te belangrijk om aan ethische hackers over te laten

Door Peter Rietveld ●  gepubliceerd bij Testnet.

Wie kent ze niet, die nieuwe testbedrijven? PWC, Madison Gurkha, Kahuna, Traxion, Hoffman, Deloitte, KPMG, Pine, Thales, Fox IT, om er maar een paar te noemen. En het is glorieus werk, want ze komen best vaak in het nieuws met defecten die ze aantreffen in systemen.

Ja maar, denken nu allerlei lezers, dat zijn toch geen testers? Dat zijn security bedrijven! Dat zijn auditors en ethische hackers. Dat is toch iets heel anders dan dat wat wij doen?

We leven in een pracht tijdsgewricht voor testers. De afgelopen jaren zijn er tientallen nieuwe bedrijven bijgekomen, en voor steeds meer sectoren geldt dat testen verplicht is, onder de noemer compliance. Grote bedrijven zoals KPN verplichten leveranciers om jaarlijkse diepgravende testverslagen op te leveren, gemaakt door onafhankelijke partijen, om maar te mogen leveren. Zelfs gemeentes hebben testverplichtingen voor bepaalde systemen. Alle productiesystemen moeten bovendien regulier, minimaal eens per jaar en na grote changes, opnieuw getest worden. Het barst dan ook van het werk en de markt staat zwaar onder druk. Opdrachten worden op dit moment zelfs uitgesteld, bij gebrek aan testcapaciteit. Google maar eens op vacatures voor pentesters en je krijgt dit plaatje in haar volle glorie te zien. Starters gevraagd met technische kennis. Testvaardigheden worden niet gevraagd. Deze testmarkt gaat volledig voorbij aan de gestructureerde testers.

Of auditors en ethische hackers ook testers zijn, kun je over twisten. Die handschoen is de moeite van het opnemen waard. Laten we aan het begin beginnen. Ethisch hacken wordt ook vaak pentesten ofwel penetratietesten genoemd. Houd die term goed vast: het zijn testen.

Niet zo volwassen
Pentesten is het onderzoeken of een geautomatiseerd systeem wel veilig genoeg is, of het wel voldoet aan de beveiligingsrequirements. De praktijk is ongeveer als volgt:

Een organisatie vraagt zich af of een systeem wel veilig is. Zij zoekt in Google een bedrijf op, of vraagt aan de vaste beveiligingsleveranciers of er een pentest uitgevoerd kan worden. Deze zal na een bescheiden test intake een offerte sturen, waar in zal staan onder welke vrijwaringen en wanneer er een test uitgevoerd zal worden. Wat er precies getest wordt, dus welke functionele en non-functionele zaken onderzocht wordt, staat er in de regel niet in; er is geen testplan. De pentester weet immers precies wat-ie moet doen. De kwaliteit van de pentest zit vooral in de kwaliteiten van de tester. De ethisch hacker is een artiest die zelf bepaalt waar hij (zelden een zij) op test, met welke tools en op welke manier. De ethisch hacker bepaalt ook zelf de requirements, want die staan immers niet op papier. Bij pentesten geldt dan ook dat de naam van de testende organisatie de doorslag geeft. Er is anders helemaal geen kwaliteitsgarantie.

Even terzijde: natuurlijk zijn er wel pentestmethodieken om de kwaliteit te waarborgen. De belangrijkste is ‘OSSTMM 3’ met ‘PTES’ (onderdeel van PCI-DSS 3.1) als een goede tweede. Kenmerkend voor de pentest methoden is dat ze ingaan op, hoe de test moet worden uitgevoerd. Welke stappen in welke volgorde, en welke afwegingen er gemaakt moeten worden. Maar ‘OSSTMM’ is in ons land een grote onbekende, en ‘PTES’ is net nieuw en geldt (via PCI-DSS) alleen voor bedrijven die iets met creditcards doen. Bovendien, en dat zal de gemiddelde softwaretester direct opvallen, gaan de methoden alleen over de testexecutie.

De vrijwaringen in pentest offertes zijn zeer gebruikelijk, omdat pentesten in de regel tegen een productiesystemen wordt uitgevoerd. Ze komen er op neer dat de opdrachtgever de pentester vrijwaart van alle aansprakelijkheid. Niet akkoord? Nou dan zoek je maar een andere tester. Jammer is dan wel dat de meeste gerenommeerde partijen een wachtlijst hebben. En als je niet spannend genoeg bent kom je daar gewoon niet op.

De datum voor de testuitvoering is ook relevant omdat er in de regel op afstand, dus over het internet getest wordt; de leveranciers van de tussenschakels moeten even ingeseind worden om aangifte en dergelijk gedoe te voorkomen. Of de beheerder van de klant op de hoogte zijn van de test, is aan de opdrachtgever. Meestal zitten de beheerders er naast. Niet erg representatief, maar vooruit. Als de klant wil dat er onaangekondigd wordt getest, dan spreken we van ‘Red Teaming’, maar dat komt nog maar zelden voor. Maar goed, dat is het dan wel zo’n beetje, het ethisch hacken Master TestPlan. Mager, nietwaar?

Nogmaals terzijde: representativiteit is bij pentesten toch al een beetje een uitdaging, want de gemiddelde hacker stuurt een e-mailtje naar de beheerder of een programmeur en installeert daarmee snel een achterdeur. De aanval loopt via een ander systeem. Dat testen we nooit bij pentesten, want dat systeem zit niet in de scope. Pentesten is ook vanuit een security perspectief niet zo volwassen.

Bij de test heeft de pentester een aantal geautomatiseerde tools en verder de vrijheid om handwerk toe te passen om ‘Zero Days’, nog niet eerder bekende veiligheidslekken, te vinden. Pentesters hechten zeer aan deze vrij te besteden tijd en de vrijheid zelf op het laatste moment tools te kiezen; anders is het alleen maar een scriptje draaien en dat is nu eenmaal niet zo boeiend, nietwaar? Het aantal gevonden defecten met handmatig testen is aanzienlijk, maar het zijn meestal standaard zaken die de tools gemist hebben; echte ‘Zero Days’ zijn in de praktijk van pentesten hoogst zeldzaam. Dat geautomatiseerde tools in de praktijk, rustig de helft niet vinden van wat ze zeggen te kunnen vinden, zal de gemiddelde software tester niet verbazen. Waarom dat zo is, interesseert de gemiddeld ethisch hacker niet.

Wederom terzijde: niet dat er geen echte ‘Zero Days’ in zullen zitten, ze zitten er wel degelijk. Maar de meeste hedendaagse pentesters kunnen niet in enkele dagen een ‘Zero Day’ vinden; dat is immers niet zo simpel. Dat heeft ongetwijfeld iets te maken met de zeer snelle groei van de markt de afgelopen paar jaar; de meeste testers zijn nog niet zo heel lang bezig. Tot pak ‘m beet 2012 was er met pentesten, een zeer smalle elite daar gelaten, geen droog brood te verdienen. De grote massa van de huidige pentesters is dan ook pas een paar jaar bezig, en gegeven de rest van de security markt, die met dubbele cijfers groeit op jaarbasis, is er aan de bovenkant ook nog eens een stevige uitstroom.

De pentest eindigt met een testverslag waarbij alle gevonden defecten in een lijstje met een waardering gebracht worden. De bevindingen worden gecategoriseerd in ‘kritiek’, ‘belangrijk’ en ‘niet zo heel belangrijk’. De klant ontvangt het rapport en de test is afgerond. De klant die de pentest voor compliance doeleinden laat doen, vertaalt de kritieke bevinden naar acties en rapporteert deze aan de toezichthouder. De rest verdwijnt meestal in een diepe, stoffige la. De meeste klanten missen de kennis om het rapport goed te begrijpen en veel pentesters missen de vaardigheden om de zaken goed toe lichten en de bevindingen te vertalen naar correctieve acties. Gegeven de ‘business as usual’ praktijk is er ook niet veel reden om door te vragen wat er nu met die bevindingen moet gebeuren. Kost wel geld, en het systeem draait toch al, nietwaar? Het was immers niet de bedoeling om een groot en duur project te moeten starten.

Omdat het moet
Wat is dan wel het doel van een pentest? Zelden om systemen veilig te maken, hoewel dat vaak wel gezegd wordt. Omdat het moet komt het meest voor, en dan is het voor de tester wel een uitdaging om er een goed verhaal van te maken. Want dan is de pentest een soort examen en dan willen ‘ze’ vooral slagen. Het onderwerp van de test zal niet meewerken. Veel meer dan een reparatie van ‘laaghangend fruit’, op de meest minimale manier zit er in de praktijk uiteindelijk dus niet in; als kwaliteitsinstrument laat pentesten nog veel te wensen over.

Feitelijk schrijven compliance standaarden pentesten voor om de security awareness bij de IT-ers te verhogen, en dat is een waardevol doel, wat in de praktijk wel regelmatig bereikt wordt, maar zelden breed genoeg. Als je met de opdrachtgever samen zorgt dat het als awareness middel ingezet wordt, komt het in de regel wel goed. Het gaat immers niet alleen om die ene persoon die die server heeft geconfigureerd en met de bevindingen te kakken wordt gezet; het gaat om het algehele kwaliteitsniveau dat blijkbaar tot de gevonden uitkomsten heeft geleid. Dat stuk volwassenheid is helaas bij veel pentesters niet aanwezig; het is maar al te vaak vooral laten zien hoe goed de tester zelf technisch is en hoe dom de beheerders en ontwikkelaars zijn. Begrijpelijk, maar categorisch fout.

Pentesten hebben nogal eens politieke dimensie: een vernietigend verslag is een prachtmiddel om organisaties en medewerkers onder druk te zetten.

We zijn even de gang van zaken bij een doorsnee pentest langsgelopen om te laten zien dat er nogal wat overeenkomsten maar ook verschillen zijn met regulier testen. Het lijkt best wel een somber portret, van een weinig gestructureerde manier van werken. En daar zit precies de link.

Omgekeerd functioneel testen
Het reguliere testvak heeft in de afgelopen vijftien jaar een gigantische kwaliteitsslag doorgemaakt. Van buiten beschouwd is software testen van een jaloersmakende volwassenheid. Hoewel dat er van binnenuit wellicht heel anders uit ziet. Want door inpassing in de reguliere processen worden veel meer defecten gerepareerd en daar gaat het allemaal uiteindelijk wél om. Als pentester en gebruiker van tal van systemen, privé en zakelijk, verwacht ik; nee eis ik, dat pentesten geïntegreerd wordt in regulier testen.

Dat punt heeft bij mij al een hele geschiedenis. In 2002 moest ik een groot systeem van de Belastingdienst pentesten. Zij stelden als eis dat de testen samen met zowel een professionele tester als wel een officiële auditor werden uitgevoerd. Eerst lag ik dwars, want wat wisten die mensen nu van security? Eind van het liedje was echter het andere uiterste: door de inbreng van een TMAP-per en de EDP-auditor werd dit een test met een zeer goed resultaat voor de opdrachtgever. Nooit eerder en zelden nadien meegemaakt dat alle gaten daadwerkelijk dichtgemaakt werden, en dat bij één van de grootste en meest complexe systemen die ik ooit getest heb. De belastingdienst maakte het pentesten niet bepaald gemakkelijker, maar wel veel leuker. Het opende mij de ogen over de onvolwassenheid van pentesten en dat heeft er het nodige toe bijgedragen, dat ik een paar jaar later met pensioen ging als ethisch hacker.

Toen ik drie jaar geleden, onder druk van de markt, mijn gelegaliseerd kraken hervatte was het eerste dat mij opviel dat pentesten op dit punt geen steek verder was gekomen in bijna tien jaar. Pentesten en testen zijn nog steeds twee gescheiden werelden. Pentestrapporten belanden nog steeds vooral in bureaulades en security testen zijn nog steeds volledig geïsoleerd van de operatie en kwaliteitsbeheersing.

Ook viel op dat software testen zich nog steeds bijna exclusief bezighoudt met functioneel testen. Wellicht omdat de requirements daar in de regel beter uitgewerkt zijn. Het uitvoeren van bijvoorbeeld stress -en load testen is meestal niet te doen, omdat de opdrachtgever daar niet al te veel over nagedacht heeft, wat het systeem moet kunnen. De testmiddelen zijn bovendien vaak technisch van aard en het testvak trekt relatief weinig techneuten aan. Gewone testers houden zich net zo min bezig met security testen, ondanks dat bijvoorbeeld TMAP daar prima aangrijpingspunten voor biedt. Security testen is toch veelal non-functioneel, wordt er dan gezegd. Mijn antwoord hierop is Ja en Nee. Eigenlijk is security testen omgekeerd functioneel testen; doet het systeem daadwerkelijk niet wat het niet mag doen. En dat de requirements niet helder genoeg zijn, mag ook geen bezwaar zijn. Het aandringen van testers op heldere functionele specificaties heeft de kwaliteit van functionele ontwerpen de afgelopen jaren aanzienlijk verbeterd. Voor security testen geldt dat ook vooraf bekend moet zijn wanneer het systeem goed is, en wanneer niet. Het delen van de verworvenheden van gestructureerd testen met de werkelijkheid van ‘Cyber Security’ is de enige manier om op dit maatschappelijk, en commercieel, zeer belangrijke dossier vooruitgang te boeken. Security is te belangrijk om aan ethische hackers over te laten.

Samenvattend

Pentesten is een snel opkomende markt in testen waar de meeste geschoolde testers verre van blijven. Ethische hackers vullen het gat. Dit heeft nog niet geleid tot een acceptabele kwaliteit; verre van dat. De lessen die regulier testen al lang geleerd heeft zijn keihard nodig.