We zijn op de helft van onze reeks van artikelen over de OWASP top 10. Vandaag beantwoorden we de vraag “wat is Broken Access Control?” Als u werkzaam bent binnen IT-security zult u ongetwijfeld weten waar dit over gaat. Maar veel van de lezers hebben deze kennis niet. Daarom leg ik, als mede-leek, uit wat het is in heldere taal zonder al teveel poespas. U zou, gewoon voor de lol en omdat het bijna kerstvakantie is, eens moeten googelen naar een heldere Nederlandse uitleg over wat deze kwetsbaarheden nou precies betekenen. We kunnen alvast vertellen dat de resultaten teleurstellend en veelal in het Engels zijn. Gelukkig zijn daar uw vrienden van Rootsec die dingen graag makkelijk houden.
Acces control, in het Nederlands ook wel autorisatie genoemd, heeft alles te maken met hoe een webtoepassing toegang verleent tot inhoud en functionaliteit aan sommige gebruikers. Hierbij is het dus belangrijk om te realiseren dat de Access Control het onderscheid maakt tussen Piet met veel rechten en Thomas zonder rechten. Deze controle wordt uitgevoerd na de authenticatie (het inloggen) en bepaalt wat deze ‘geautoriseerde gebruikers’ mogen doen. Het is eigenlijk vergelijkbaar met een controle bij de douane? Heb je een visum? En zo ja, voor hoeveel dagen?
Dit klinkt relatief gemakkelijk om juist te implementeren toch? Dit valt in de praktijk vaak toch flink tegen. Zo is Het toegangscontrolemodel van een webtoepassing nauw verbonden met de inhoud en functies die de site biedt. Bovendien kunnen de gebruikers in een aantal groepen of rollen vallen met verschillende capaciteiten of privileges. Het implementeren van een betrouwbaar mechanisme wordt door ontwikkelaars vaak onderschat. Dit zorgt ervoor dat deze vaak niet zijn ontworpen specifiek voor de website maar meer een soort van ‘mee geëvolueerd’ zijn. Toegangscontroleregels worden vervolgens op verschillende locaties op de code ingevoegd met als resultaat een complete rotzooi. Deze ad hoc verzameling van regels is vervolgens dusdanig onpraktisch dat het onmogelijk is om nog te begrijpen.
In veel gevallen zijn deze gebrekkige toegangscontroleregels niet heel moeilijk te ontdekken of te exploiteren voor een aanvaller. Het enige dat nodig is, is het indienen van een verzoek voor functie of inhoud die in theorie niet zou mogen worden ingewilligd. Op het moment dat dan blijkt dat dit wel werkt, is een fout ontdekt en dan gaat het balletje rollen. Zo is het nu voor de aanvaller mogelijk om bijvoorbeeld ongeautoriseerde inhoud te bekijken. Maar, nog een stuk erger, in sommige gevallen is het mogelijk om inhoud te wijzigen of te verwijderen, ongeautoriseerde functies uit te voeren of zelfs het sitebeheer over te nemen. Het hangt er maar net vanaf op welk punt van de applicatie de regels spaak lopen.
Het is ook belangrijk om te benadrukken dat alle bekende webservers, applicatieservers en webapplicatie omgevingen vatbaar zijn voor ten minste enkele van deze problemen. Ook al is een site volledig statisch kunnen hackers, indien deze niet correct is geconfigureerd, toegang krijgen tot gevoelige bestanden en de site in kwestie beschadigen of andere nare handelingen verrichten.
Het belangrijkste dat u kunt, en moet, doen tegen deze kwetsbaarheid is heel goed nadenken over de vereisten voor toegangscontrole voor uw applicatie. De volgende stap is om al deze eisen vast te leggen in een beveiligingsbeleid voor applicaties. Zo heeft u het zwart op wit en kunt u bij verwarring hier altijd op teruggrijpen. Daarnaast raden we ook het gebruik van een toegangscontrolematrix sterk aan om zo de toegangscontroleregels te kunnen definiëren. Het beleid moet documenteren welke typen gebruikers toegang hebben tot het systeem en tot welke functies en inhoud elk van deze typen gebruikers toegang moet krijgen. Natuurlijk dient het controlemechanisme, voor lanceren van de webapplicatie, volledig worden getest om er zeker van te zijn dat er geen manier is om het te omzeilen. Om dit te doen huurt u bijvoorbeeld Rootsec in.
Om echt effectief te zijn in het voorkomen van misbruik dient er sprake te zijn van parametervalidatie. Dit is een technisch verhaaltje dat we voor nu even overslaan. Maar het is belangrijk dat het controlemechanisme wordt geconfigureerd met een zeer strikte definitie van welke toegangsverzoeken geldig zijn voor uw site.
Zoals zoveel kwetsbaarheden in de OWASP top-10 begint het voorkomen van Broken Acces Control ook bij het opstellen van een goed beleid. De tweede stap is dan natuurlijk het naleven hiervan, iets dat feitelijk heel simpel is maar waar het toch nog vaak mis gaat. Wij begrijpen dat u niet alle technische kennis in huis heeft om te testen en bepaalde maatregelen correct te configureren. Echter is het wel van belang dat u zelf nadenkt over eventuele risico’s en wat dat kan betekenen voor uw bedrijf. Zodra u daar een duidelijk beeld van heeft helpen wij u graag met het adequaat beveiligen hiertegen. Wilt u graag een keer even sparren met ons? Dat kan! Neem contact op via de website of door ons te bellen op 036 760 0451.
Automated page speed optimizations for fast site performance