Nieuws

dinsdag 3 april 2018

Letter en geest

Geschreven door Daan Vellinga

Als een rechter een beslissing maakt op basis van de bedoeling van een stuk wetgeving, in plaats van op basis van "de letter" van de wet, dan heet dat een teleologische interpretatie van de wet. Dat is nuttig, want wetboeken kunnen nooit alle details en nuances van situaties voorzien. Een gezond verstand helpt dan om geen fouten te maken. Een zelfde soort gezond verstand heb je nodig als het gaat om beveiliging van informatie.

Deze week was ik, zoals zo vaak, een webapplicatie aan het testen. Deel van de testcases was het onderzoeken van de deugdelijkheid van het login systeem. De eerste kwetsbaarheid was helaas snel gevonden.
Bij inlogpogingen met een ongeldige gebruikersnaam gaf het systeem een foutmelding in de vorm van "Ongeldige combinatie van inlognaam en wachtwoord."
Bij inlogpogingen met een geldige gebruikersnaam maar een ongeldig wachtwoord gaf het systeem een foutmelding in de vorm van "Er is een fout opgetreden. Wachtwoord en/of gebruikersnaam zijn niet correct."

Zie je de ironie? Als securitydeskundigen roepen al sinds mensenheugenis: "zorg ervoor dat aanvallers niet uit foutmeldingen kunnen afleiden welk deel van de inloggegevens onjuist was!" (Zie wat OWASP erover te zeggen heeft.) Onze klant heeft die "wet" letterlijk geprobeerd na te leven door in de formulering van de foutmelding geen informatie los te laten over of het nu de gebruikersnaam of het wachtwoord was wat niet klopte. Door in die twee gevallen twee verschillende (correcte, maar anders geformuleerde) teksten weer te geven, is het voor een aanvaller toch heel duidelijk wanneer hij of zij bij een brute force aanval een correcte gebruikersnaam heeft gevonden. Zou je hier een teleologische interpretatie van de betreffende security best practice doen, dan zou je zien dat het er om gaat dat de reactie van het systeem volledig het zelfde had moeten zijn bij inlogpogingen met foute gebruikersnamen als bij foute wachtwoorden.

Het wordt nog leuker. Na een handvol pogingen om in te loggen met een geldige gebruikersnaam, maar met een ongeldig wachtwoord, werd het betreffende account geblokkeerd. Bij elke nieuwe inlogpoging met een fout wachtwoord gaf het systeem de melding "Wachtwoord en/of gebruikersnaam zijn niet correct. Dit account wordt geblokkeerd voor de komende 60 minuten." Mijn collega en ik knikten elkaar goedkeurend toe. Ondanks de inconsistentie in de teksten van de foutmeldingen zou dit een aanval waarschijnlijk voldoende vertragen. Ik had echter nog niet gezien welke foutmelding het systeem gaf bij een inlogpoging met correcte gegevens terwijl het betreffende account geblokkeerd was: "Uw account werd geblokkeerd voor 60 minuten." Weer een inconsistentie! Volgens mij maakt deze fout het aanvalsscenario compleet. Een aanvaller kan eerst inlogpogingen doen met steeds een andere gebruikersnaam (en hetzelfde wachtwoord) om een lijst op te bouwen van geldige gebruikersnamen. Daarna kan de aanvaller per geldige gebruikersnaam een lijst met wachtwoorden proberen. Al snel zal het account worden geblokkeerd, maar het systeem geeft toch aan wanneer de aanvaller een geldige combinatie van gebruikersnaam en wachtwoord heeft gevonden. De aanvaller hoeft dan alleen maar te wachten tot het account (automatisch na een uur) weer bruikbaar wordt, en hij of zij is binnen.

Laten we met z'n allen proberen om teleologisch te blijven kijken naar beveiligingsmaatregelen.





Print

Tags:

x

Nieuwsbrief

 

Blijf op de hoogte van de laatste security ontwikkelingen door je nu in te schrijven voor de Vest nieuwsbrief!


Ja, ik wil die nieuwsbrief!


 


Security 15 Minutes Live

Met Marc Hullegie

IT Tomorrow

met Marc Hullegie