“Program testing can be used to show the presence of bugs, but never to show their absence!” Een bekende uitspraak van Nederlands meest bekende informaticus Edsger W. Dijkstra. Security Engineering kent hetzelfde dilemma. Het niet bestaan van een probleem is vrijwel niet aan te tonen. Je kunt aantonen dat een systeem niet veilig is, maar het omgekeerde is onmogelijk. Een systeem zal ook nooit 100% veilig zijn. De vraag is altijd: is het veilig genoeg en hoe weet ik dat?
Het niet kunnen aantonen dat er geen problemen met de informatiebeveiliging zijn, is slechts het basisprobleem. Het vakgebied ‘security engineering’ wordt ook nog eens bemoeilijkt door het speelveld. Een security engineer wordt gezien als degene die de verdediging op orde moeten brengen en houden. Het optuigen van een verdedigingslinie betekent dat er problemen worden voorzien. Je gaat niet voor niks investeren in dure beveiliging. Het inventariseren en kwalificeren van bedreigingen is al een wetenschap op zich. Maar zodra dit duidelijk is komt de praktijk om de hoek kijken. Dit levert een aantal interessante dilemma’s op.
- Een aanvaller, the black hat, kan zijn aandacht richten op de zwakste schakel. Terwijl de verdediging over de hele linie moet zorgen voor beveiliging.
- De aanvaller kan zijn moment kiezen maar de verdedigers moeten voortdurend scherp zijn. Een aanval kan op elk moment worden ingezet.
- De crimineel kan, inherent aan zijn mentaliteit, vals spelen. De andere kant, de security engineer, moet binnen de kaders van de wet blijven.
- De aanvaller kan alle tijd nemen om zich voor te bereiden en te richten op een selectief gekozen punt. De verdediging zal alles constant op orde moeten hebben vanaf moment één en voor alle mogelijke bedreigingen.
Dit is ook de reden waarom penetratietesten of het inhuren van een hacker maar een klein deel van een oplossing kan zijn. Het opzetten van een goede beveiliging is een hele andere tak van sport dan het uitvoeren van een sterke aanval. De hacker zal hooguit kunnen aantonen dat de infrastructuur nog niet veilig is. Een penetratietest is alleen in staat om op bekende problemen te testen. Ook is het slechts een momentopname.
Toch kan er veel gedaan worden in het beveiligen van je systemen en informatie. Ondanks dat volledige beveiliging onmogelijk is kan een goede voorbereiding veel ellende voorkomen. Het belangrijkste is dat je je eigen omgeving, je eigen infrastructuur, goed kent. Hoe heeft jouw organisatie haar ICT-structuur ingericht? Wordt de hele omgeving als een geheel in de gaten gehouden? Waar en bij wie zit de nodige kennis en expertise? Wordt er samengewerkt tussen deze verschillende kennisgebieden? Ligt er een plan klaar voor als het echt een keer mis gaat?
Ken je doelen. Ken de mechanismen, al dan niet technisch, waarmee je deze doelen probeert te halen. Weet hoe de gekozen mechanismen samenwerken. Zorg voor een snelle en adequate reactie mocht het een keer mis gaan.