OpenKAT, kijken met kattenogen

Operatie

Al snel was duidelijk dat een traditionele aanpak niet zou volstaan. Waar je normaliter jaren aan kan bouwen, moest nu binnen weken en soms zelfs dagen worden gerealiseerd. Bovendien beperkt security operations zich doorgaans tot aanvallen. Dat is merkwaardig, omdat er ook andere kwetsbaarheden zijn voor de operatie. Je wilt acteren op iedere mogelijke verstoring. Daartoe begin je met een risico-inschatting waarna je de systemen laat draaien; de bewaking op zwakheden, het detecteren van problemen in compliance en (pogingen tot) verstoring van de operatie.

Veel bestaande oplossingen bieden een stukje van de puzzel: het informatie security management system (ISMS), vulnerability scanning, inventarisatie van aanwezige systemen, bewaking van codekwaliteit of een security information and event management (SIEM). Stuk voor stuk nuttige hulpmiddelen, maar ze sluiten onvoldoende aan bij de operatie. Een belangrijk proces in het ISMS wordt in de onderliggende technologie niet automatisch even zwaar gewogen. Zwakheden of aanvallen krijgen variabele prioriteit. Dat is vreemd, want het verschil in context maakt ontzettend veel uit en juist bij complexe omgevingen is die nuance essentieel. Niemand wil in het holst van de nacht worden gebeld vanwege een potentiële zwakheid in een minder cruciaal systeem. Zo sensitief wil je alleen zijn bij kernsystemen. Een klein technisch falen kan een ernstig compliance-risico veroorzaken. Dát is de alertering die we nodig hebben.

KAT

In cybersecurity wil je het gehele brede speelveld overzien. Het ontbreken van een systeem dat de hele PDCA-cycle monitort, is dan ook een groot probleem voor complexe omgevingen. Dit kun je als zodanig accepteren en trachten het zoveel mogelijk te ondervangen met security officers. Dat is alleen niet haalbaar, alleen al omdat dergelijke experts niet voor het oprapen liggen. Je kan ook een eigen oplossing maken die de regie voert en data goed kan interpreteren. Dit kun je helemaal zelf bouwen of leunen op mooie reeds beschikbare oplossingen. Dit is wel haalbaar tegen veel lagere kosten dan de andere optie. Binnen het ministerie noemen we dit project de Kwetsbaarheden Analyse Tool ofwel: KAT, met een knipoog naar het dierenrijk. Het is open source – dus per definitie innovatief – waar iedereen de vruchten van kan plukken.

Bij een nieuw systeem kun je zonder eerdere ballast een aantal uitgangspunten centraal zetten. Waar veel systemen ongestructureerde output leveren, neemt KAT niets aan voordat het in een object georiënteerd model past. Dat betekent onder meer dat we vooraf bedenken wat een pentest-tool voor output kan leveren en hoe we dat verwerken. Als we weten hoe zaken zijn opgeslagen, is het efficiënt ophalen en opwerken tot nuttige informatie minder complex. Zo kunnen we van een meervoudig probleem direct zien welke systemen het raakt. Ook kan afhankelijk van de ingelogde persoon de diverse aggregatieniveaus worden getoond.

Business-rules

We gebruiken een temporal graph database, waardoor we exact weten wanneer we wat hebben gezien. Zo kunnen we snel herleiden hoelang een technische kwetsbaarheid al speelt. Als inzichten veranderen – bijvoorbeeld door een nieuwe aanvalsmethode – dan tonen onder meer de logboeken of dat probleem al eerder is opgetreden. We kunnen ook handmatige bevindingen invoeren, zodat we de doorlopende vulnerability-scans aanvullen met actuele pentestresultaten. Binnenkort kunnen we voor elk moment of voor welke onderzoeksperiode dan ook het eindresultaat, de rapportage, genereren, geheel conform internationale standaarden. Door continu te testen – continuous pentesting – zien we of bevindingen zijn verholpen, wat in de rapportage wordt meegenomen. Aangezien de database forensisch accuraat (bewijsbaar) alles opslaat, kun je bewijzen dat de rapportages deugen en zelfs onderzoeken reproduceren.

Maar het neusje van de zalm is dat we zelf business rules aan KAT kunnen toevoegen. Door alles eerst in een graph database op te slaan, zijn de resultaten van bijvoorbeeld scans slechts een entry in de database. De conclusies van andere tools worden niet direct gerepresenteerd. Op basis van een knowledge base koppelen we de resultaten aan de juiste context. Welke systeem betreft het? Welke processen worden hierdoor geraakt? Heeft de bevinding betrekking op techniek, compliance of iets anders? Welke andere systemen hebben hier eveneens last van? Hebben we deze melding eerder gezien? Is dit een herkend risico in onze risico-analyses? Op basis van dergelijke parameters krijgt de bevinding een waarde en wordt het met de juiste prioriteit bij de juiste personen belegd.

Voorwerk

Natuurlijk is het bouwen van KAT geen eenvoudig proces. Het modelleren van ogenschijnlijk simpele objecten als ‘ip-adres’, ‘domein’, ‘adres’, ‘bedrijf’ is arbeidsintensief. Maar met de algemene voorliefde voor ongestructureerde opslag schuiven we het probleem voor ons uit. Ook het leren kennen van resultaten in logboeken, van pentesttools, het koppelen van technologie aan risico’s vergt het nodige werk. Maar als dat eenmaal is gedaan dan worden zaken herhaalbaar en daar zijn computers nu eenmaal goed in. Een groot deel van het voorwerk hebben wij al gedaan en kunnen we delen. Veel business rules volgen uit standaarden, die vaak grote overlap hebben. Waar techniek iets niet meetbaar maakt, blijft uiteraard het ouderwetse handwerk onmisbaar. Met dit verschil dat het nu wel in een model komt, zodat de auditor de opzet, bestaan en werking live kan volgen en er op termijn complete dossiers uit kan halen.

Het licht dat vele tools werpen op security operations brengt ICT-systemen van de duister naar de schemering. Met KAT bouwen we de ogen die voldoende hebben aan die schemering om helder kwetsbaarheden en risico’s te onderscheiden. Zo wordt compliance even belangrijk als een daadwerkelijk incident. Dankzij KAT komt informatiebeveiliging uiteindelijk goed op z’n pootjes terecht.

Zie ook openkat.nl.