Tutorials

Anti bruteforce bij inloggen

Een veelgestelde vraag op het forum is hoe je het beste een anti bruteforce kan maken, zodat mensen niet meer door middel van brute kracht kunnen inloggen op bijvoorbeeld administratiesystemen. Op de volgende pagina leg ik (in het kort) uit wat de beste manier hiervoor is. Let op; dit is een korte tutorial en géén script. Je moet dit alsnog zélf implementeren in jouw systeem. Er is overigens een kort onderzoek gedaan onder een aantal (grote) Nederlandse websites. Ik was namelijk erg nieuwsgierig hoe zij dit hadden opgelost. De resultaten: Onderzoek naar bruteforce op grote websites

Pagina 1

Anti bruteforce methodes uitgelegd

Er zijn verschillende "best practises" met betrekking tot anti bruteforce.

Sessies
Er wordt een sessie aangemaakt en er wordt bijgehouden hoe vaak de bezoeker inlogt. Als dit meer is dan een x aantal keer, kan de bezoeker niet meer inloggen.

Veel mensen vergeten echter dat de sessie-ID wordt opgeslagen in een cookie, en dus niet betrouwbaar is. Het verwijderen van je cookies zou dus betekenen dat je weer opnieuw kunt inloggen.

Sessies gebruiken voor anti-bruteforce is dus niet aan te raden.

Blokkade op basis van IP-adres
Er wordt in de database bijgehouden hoe vaak een bezoeker probeert in te loggen door middel van het IP-adres. Als dit meer is dan een x aantal keer, kan de bezoeker niet meer inloggen.

Veel mensen vergeten echter dat het IP-adres kan worden gewijzigd, ofwel door de bezoeker zelf (dial-up, komt nog steeds voor, en bij sommige belgische providers kan het vrij simpel, maar de makkelijkste manier is een proxy te gebruiken). Dat betekend dus dat wanneer een bezoeker x aantal keer heeft geprobeerd om in te loggen, de bezoeker enkel een nieuw IP hoeft aan te vragen.

IP-blokkade gebruiken voor anti-bruteforce is dus niet aan te raden.

Maar wat is dan wel de beste manier?
De beste manier, is om in de database bij te houden welke gebruikers er proberen in te loggen. Dit, in combinatie met IP-adressen is een krachtiger beschermmiddel. Als een bezoeker meer dan x aantal keer heeft geprobeerd in te loggen op account y, wordt het account geblokkeerd gedurende een (willekeurige) tijd. Zelfs wanneer je vanaf een ander IP-adres probeert in te loggen, werkt dit niet. Dit betekend dat de gebruiker een flink arsenaal aan IP-adressen nodig heeft om in te loggen. Het scheelt dat er over het algemeen maar een paar administrators zijn.

Reacties

0
Nog geen reacties.