Wat kan er allemaal misgaan en welke lessen kun je eruit trekken? We zetten vijf oorzaken op een rij.

De zwakste schakel

Een ketting is net zo sterk als zijn zwakste schakel. Dit adagium blijft een waarheid als een koe, ook als het gaat om beveiliging. De meest bekende voorbeelden van een kwetsbare beveiliging waar de zwakste schakel het begeeft, zijn te vinden binnen de encryptiewereld.

Neem het beste encryptiealgoritme met de langst mogelijke lengte voor de sleutel. Laten we ervan uitgaan dat dit volledig beveiligd is. Heb je even kritisch naar de waarde van de sleutel gekeken als dat je het algoritme hebt uitgezocht? Als je sleutel gebaseerd is op een standaardwachtwoord en niet even lang is als de maximale waarde, dan wordt de sleutel door encryptiesoftware automatisch tot een langere waarde uitgerekt. Toch blijft de sleutel in essentie even klein, waardoor het minder veilig is dan je zult denken.

Ook kun je vraagtekens zettenbij de manier waarop je de eerder genoemde sleutel naar anderen communiceert. Vaak gaat het namelijk mis bij de communicatie. Een klassiek voorbeeld is het gebruik van One-Time-Pad (OTP) dat al zo ongeveer sinds de Tweede Wereldoorlog bestaat. Een OTP-sleutel is even lang als de tekst die versleuteld wordt en is daardoor in theorie superveilig. Maar is dat echt zo? De kwetsbaarheid ligt in de communicatie van een OTP-sleutel naar derden en hoe de sleutel wordt gebruikt. Ook al verstuur je zo’n sleutel verzegeld per koerier naar een andere partij, dan nog kunnen in zo'n systeem fouten sluipen. Als je dezelfde OTP-sleutels meerdere keren gebruikt, is het voor een onderschepper vrij eenvoudig en kunnen je berichten makkelijk gedecodeerd worden.

Proprietary versus open standaarden

Gebruik maken van proprietary software heeft als voordeel dat ook hackers niet de complete broncode kennen. Toch zijn proprietary oplossingen waarover niet zoveel bekend is een groot risico. We kijken even opnieuw naar encryptiemethoden.

Het gebruik van industriële standaarden (zoals bijvoorbeeld AES) houdt in dat meerdere experts het algoritme hebben onderzocht en er geen grote kwetsbaarheden in hebben kunnen ontdekken. Wanneer die in een later stadium alsnog gevonden worden, wordt dat publiek bekend gemaakt. Neem bijvoorbeeld de eerste wifi-beveiliging WEP. Het bleek al snel dat deze vorm van versleuteling grote kwetsbaarheden kende. Omdat het een standaard was, ging de industrie, vanwege alle commotie, als een speer aan de slag om een veiliger methode te ontwikkelen.

Wees dus waakzaam bij leveranciers die algoritmes niet willen prijsgeven en toch grote woorden hebben over beveiligingsmethoden.

Goede oplossingen voor het verkeerde probleem

Wil de beveiliging goed zijn, dan moet ook het probleem goed gedefinieerd worden. Anders loop je kans een goede oplossing te krijgen die niet voldoet aan de eisen van jouw case.

Neem als voorbeeld de firewall. Dat kan nog zo’n goed product zijn, maar als de database achter de firewall geen aanvallen op applicatieniveau blokkeert, dan kun je alsnog het haasje zijn. Deze aanvallen komen regelmatig voor en de meeste firewalls bieden geen ondersteuning voor SQL-injectie attacks. Het is dus zaak een passende oplossing te zoeken.

De mens is per definitie kwetsbaar

Het gaat mis als je het aan de gebruiker overlaat. Vertrouw nooit op de eindgebruiker.

Neem als voorbeeld ‘personal firewalls’. Het is ronduit vreemd als zo’n programma aan een beginnende gebruiker vraagt: “Wil je het gebruik van het Microsoft MAPI-protocol toestaan of blokkeren?” Wat moet de gebruiker met zo'n vraag? Als hij voor toestaan kiest, wordt een deur opengezet voor een mogelijke aanval, maar als hij voor ‘blokkeren’ kiest, wordt er mogelijk een belangrijke applicatie lamgelegd.

Nog zorgelijker zijn de zogenaamde ‘phishing’ aanvallen. Hier kun je jezelf heel moeilijk tegen verdedigen. Het lukt criminelen keer op keer mensen te verleiden hun bankgegevens in te vullen op een webformulier. Zelfs aan de telefoon geven gebruikers met alle liefde hun creditcardgegevens af. Waarom is dit zo moeilijk te voorkomen? Omdat het ligt aan de mens zelf. Mensen weten niet precies hoe de truc werkt, maar willen wel gebruik maken van alle diensten.

Gebruiksvriendelijkheid vergeten

Beveiliging moet bruikbaar blijven wil het succesvol zijn. De beste beveiliging snijdt je compleet af van de buitenwereld, maar dan is werken jammer genoeg onmogelijk. Dus moet iets nog een beetje flexibel zijn en toch veilig. Je moet tenslotte kunnen gebruiken wat je wilt.

Een voorbeeld zijn IDS-inbraakbeveiligingen tegen hackers. Ze zijn functioneel, maar omdat ze zoveel output en logbestanden genereren, hebben veel mensen een hekel aan die dingen. Tenzij je genoeg personeel en bandbreedte hebt om de logs te kunnen bestuderen, is de oplossing niet echt werkbaar. Ook blokkeren soortgelijke systemen als IDP en DLP soms verkeer dat wel degelijk geautoriseerd is, waardoor veel bedrijven ze niet binnen eigen netwerken durven toe te laten. Het is en blijft geen ideale oplossing, hoe goed het in theorie ook mag werken.

Conclusie

Het is geen gemakkelijke taak de genoemde fouten te voorkomen. Security is veranderlijk en altijd in beweging. Onthoud wel de achterliggende principes als je bezig gaat met beveiligingsvraagstukken. Definieer je probleem goed, zoek de zwakste schakels, kies voor standaarden, vraag zo min mogelijk van de gebruiker en houd het simpel.

Bron: Techworld