Brute Force â Impossible
Hoe beveilig je een inlogpagina definitief tegen brute-force aanvallen?
1. Predict (Voorspel)â
De server combineert nu meerdere beveiligingslagen:
// Na 3 mislukte pogingen: account vergrendeld voor 15 minuten
if ($failed_login_count >= 3) {
$last_attempt = strtotime($last_login);
$timeout = $last_attempt + (15 * 60); // 15 minuten lockout
if (time() < $timeout) {
echo "Account is tijdelijk vergrendeld. Probeer later opnieuw.";
exit;
}
}
Vraag: Waarom maakt een combinatie van Account Lockout + CSRF-token + sleep()-vertraging tools als Hydra compleet nutteloos?
Antwoord
- Account Lockout: Na 3 mislukte pogingen is het account 15 minuten geblokkeerd. Hydra kan nu maximaal 3 wachtwoorden per 15 minuten proberen â bij een lijst van 10.000 wachtwoorden duurt dit ruim 34 dagen.
- CSRF-token: Elk formulierverzoek vereist een uniek token dat van tevoren opgehaald moet worden. Hydra kan niet meer blind duizenden requests sturen.
- Sleep-vertraging: Zelfs correcte logins worden kunstmatig vertraagd, waardoor timing-aanvallen onmogelijk worden.
2. Run & Investigateâ
Start het lab en probeer 4 keer in te loggen met een fout wachtwoord.
Na de derde mislukte poging toont de server een vergrendelingsmelding. Probeer daarna nog een keer in te loggen â ook met het juiste wachtwoord. Observeer hoe de server reageert.
3. â Wat moest je zien?â
- Na 3 mislukte pogingen verschijnt de melding dat het account tijdelijk vergrendeld is.
- Ook het correcte wachtwoord werkt niet tijdens de lockout-periode.
- Elke Hydra-aanval stopt effectief na de eerste 3 pogingen.
Zie je geen vergrendeling? Controleer of het security level correct op impossible staat.
Rate Limiting is essentieel: Zonder vertraging kan Hydra miljoenen wachtwoorden per uur proberen. Met een lockout van 15 minuten na 3 pogingen is dit onhaalbaar.
Defense in Depth: EÊn maatregel is nooit genoeg. De combinatie van lockout + tokens + vertraging maakt brute-force aanvallen praktisch onmogelijk.
Hydra is een wapen, geen wondermiddel: Hydra werkt alleen als de server geen enkele bescherming heeft. Professionele websites maken brute-force zinloos.