Soms word ik moedeloos van de voortdurende nieuwsstroom over datalekken. Overheden, zorginstellingen, universiteiten, de lijst is eindeloos. Treurig word ik altijd van al die beveiligingsbedrijven en specialisten die achteraf precies weten hoe een datalek voorkomen had moeten worden.
Op afstand en op papier is informatiebeveiliging altijd simpel: volg alle security-hypes, koop een duur Role-Based (RBAC), Attribute-Based (ABAC) of Policy-Based Access Control (PBAC)-systeem van een Amerikaans bedrijf om gebruikers te pesten. Jarenlang intensief onderhoudswerk en continue oplopende licentiekosten natuurlijk inbegrepen. Uitleggen aan een directeur waarom gegevens toch gestolen konden worden, is kinderspel. De meeste mensen die niet getraind zijn in het doorprikken van jarenlange IT-bullshitbubbels haken na vijf minuten af, of blijven semi-begrijpend knikken. Maar het kan en moet anders en beter!
De boodschap zou moeten zijn dat, ondanks allerlei veel te dure beveiligingsmaatregelen, de basis niet op orde is. Vaak is gezondigd tegen een of meerdere cruciale beveiligingsprincipes, zoals ‘defense-in-depth’ , of dit principe is niet goed begrepen. De perfecte oplossingen tegen alle cybersecuritydreigingen weten we al jaren: heel goed nadenken en doen wat wél werkt. Nadenken over beveiliging heet het laten maken van een beveiligingsarchitectuur en het analyseren van kwetsbaardheden en vinden van oplossingen om deze te verkleinen. Dit is niet sexy en vaak saai werk, maar wel cruciaal om risico’s te verkleinen of de gevolgen van een hack te minimaliseren. Diefstal van zwaar versleutelde data van een paar klanten is nu eenmaal iets anders dan diefstal van alle versleutelde klantgegevens.
De sleutel voor het op orde brengen en houden van informatiebeveiliging is security by design. Dit is een bewezen methode die werkt. Een methode zonder hypes en dure producten. De ultrakorte samenvatting van de belangrijkste principes van deze methode:
| Principe | Samenvatting | Kernregel |
|---|---|---|
| Minimaliseer het aanvalsoppervlak | Verwijder onnodige functies, endpoints en toegangspunten. | Minder code → minder gaten. |
| Stel veilige standaardwaarden in (‘Safe & Secure Defaults’) | Standaardconfiguraties moeten direct veilig zijn. | Standaard geen toegang (“deny by default”). |
| Least privilege | Elk onderdeel/gebruiker krijgt minimale rechten om te functioneren. | Minder rechten is altijd beter. |
| Scheiding van verantwoordelijkheden | Geen enkele actor heeft buitensporige bevoegdheden. | Verdeel kritische functies over meerdere actoren. |
| Verdediging in de diepte (Defense in depth) | Leg onafhankelijke beveiligingslagen aan. | Eén fout ≠ systeemcompromis. |
| Veilig falen (Fail securely) | Bij een fout: ga naar een veilige (gesloten) toestand. | Nooit openlijk falen (never fail open). |
| Volledige bemiddeling (Complete mediation) | Elke toegangsaanvraag moet worden gecontroleerd. | Geen beslissingen uit de “cache”, maar altijd opnieuw checken bij de bron. |
| Eenvoud van mechanisme | Simpel werkt beter. | Eenvoud > complexiteit. |
| Open ontwerp | Geen beveiliging door obscuriteit. | Ga ervan uit dat aanvallers je documentatie/code hebben. |
| Zero Trust | Vertrouw nooit impliciet op interne of externe diensten. | Verifieer alles. |
| Compartimentering | Isoleer componenten. | Doorbraak in één ≠ doorbraak in alle. |
| Bescherm data overal | Versleutel data in rust, onderweg en tijdens gebruik. | Zelfs tijdens verwerking. |
| Ontwerp voor veilige updates | Systemen moeten veilig patches kunnen ontvangen. | Mogelijkheid tot veilig updaten is een beveiligingskenmerk. |
Wie meer wil weten, kan alles lezen over security by design in mijn vernieuwde online boek!
Maar samen met een team de workshop ‘Security by Design‘ volgen is natuurlijk leuker en leerzamer!
