Webbeveiliging

Brute-force-aanval: definitie

Definitie

Een brute-force-aanval bestaat uit het automatisch uitproberen van enorm veel wachtwoorden, of combinaties van gebruikersnaam en wachtwoord, tot er een een account opent. Op WordPress voeren bots zulke aanvallen dag en nacht uit op de inlogpagina en op de XML-RPC-interface van de site.

Brute-force-aanval, Webbeveiliging

Brute force is de eenvoudigste aanval die er bestaat: blijven proberen tot het raak is. MITRE beschrijft hem (CAPEC-112) als een reeks pogingen tegen een geheim van eindige omvang, wat betekent dat hij altijd slaagt als je hem zijn gang laat gaan. Alle verdediging draait er dus om de operatie te lang of te duur te maken om de moeite waard te zijn. Op WordPress begint die achtergrondruis vaak al zodra een site online staat.

Hoe een brute-force-aanval werkt

Een programma stuurt combinaties van gebruikersnaam en wachtwoord naar het inlogformulier en kijkt naar het antwoord. Op WordPress zijn de gebruikelijke doelwitten wp-login.php en xmlrpc.php. De gebruikersnaam is vaak vooraf geraden: admin, de naam van de site, of een auteursnaam die via gebruikersenumeratie is achterhaald.

De varianten

  • Uitputtend: alle mogelijke combinaties, alleen realistisch tegen heel korte geheimen.
  • Met een woordenboek: lijsten met veelgebruikte wachtwoorden, met varianten (hoofdletter, jaartal, cijfer aan het eind). Dit is de meest voorkomende vorm tegen websites.
  • Gespreid: het werk wordt verdeeld over duizenden gekaapte machines (een botnet), die elk maar een paar pogingen doen.
  • Met gestolen inloggegevens: er wordt niet meer geraden, maar combinaties uit datalekken worden opnieuw geprobeerd. Dat is credential stuffing, een directe verwant van brute force.

De WordPress-documentatie wijst op een effect dat vaak wordt onderschat: ook als ze mislukken, verbruiken deze pogingen middelen en kunnen ze een server vertragen of zelfs overbelasten. Ons artikel over brute force op WordPress laat zien hoe je ze in je logbestanden herkent.

Vergelijking in drie kolommen: zonder beperking probeert een bot duizenden keren en valt een zwak wachtwoord uiteindelijk; met beperking wordt het IP-adres na een paar mislukte pogingen geblokkeerd; een gespreide aanval over duizenden adressen blijft onder de drempel, vandaar de noodzaak van een uniek wachtwoord en tweefactorauthenticatie
Het beperken van pogingen stopt losse bots, niet een aanval die over duizenden adressen is verspreid.
Video: “How Hackers Steal Passwords: 5 Attack Methods Explained” (IBM Technology, in het Engels)

Hoe je je beschermt

Doeltreffende bescherming werkt op meerdere niveaus. Het NIST vraagt in zijn richtlijn SP 800-63B om het aantal opeenvolgende mislukte pogingen op een account te beperken tot hooguit 100, en staat lagere drempels toe. Het vraagt ook om veelgebruikte of al gelekte wachtwoorden te weigeren wanneer ze worden ingesteld.

  1. Lange en unieke wachtwoorden, gemaakt door een wachtwoordmanager: daarmee wordt het woordenboek nutteloos.
  2. Tweefactorauthenticatie voor alle accounts met veel rechten: een gevonden wachtwoord is dan niet meer genoeg.
  3. Het beperken van inlogpogingen, op serverniveau of met een plugin. Onze gids over drempels en blokkeerduur beschrijft de instellingen en de valkuilen (proxy, gedeeld netwerk).
  4. Minder open deuren: schakel XML-RPC uit als je het niet gebruikt, en scherm wp-login.php af op IP-adres of met een serverwachtwoord waar dat kan.
  5. Filteren vooraf: een web application firewall of een CDN houdt een deel van het verkeer tegen voordat het PHP bereikt, wat de server ontlast.

Voor WordPress

WordPress heeft zelf geen beperking van inlogpogingen en geen tweefactorauthenticatie: daarvoor heb je een plugin of een serverregel nodig. Vermijd een account met de naam admin, geef de rol Beheerder alleen aan mensen die hem echt nodig hebben en bekijk regelmatig de lijst met accounts via wp user list --role=administrator. Gebruik voor externe toepassingen liever applicatiewachtwoorden, die je een voor een kunt intrekken, dan het hoofdwachtwoord.

WP Masquerade verplaatst de inlogpagina en blokkeert XML-RPC, al in de gratis versie. De Pro-versie voegt het beperken van inlogpogingen toe (3 tot 30 mislukte pogingen, blokkade van 1 tot 60 minuten) met neutrale foutmeldingen. Het is geen netwerkfirewall: tegen een sterk gespreide aanval blijven een uniek wachtwoord en een tweede factor het echte verweer.

Veelgemaakte fouten

  • Alleen vertrouwen op een ander inlogadres: dat vermindert de ruis, maar beschermt geen zwak wachtwoord.
  • Twee plugins naast elkaar gebruiken die dezelfde mislukte pogingen tellen: deblokkeren wordt dan een puzzel.
  • De proxy of het CDN vergeten: zonder herstel van het echte IP-adres delen alle bezoekers dezelfde teller.
  • Periodiek nieuwe wachtwoorden afdwingen: het NIST vraagt juist om dat niet meer te eisen, behalve bij een vermoeden van misbruik.

Verder lezen

Bronnen

  1. OWASP: Brute Force Attack (externe link, opent in een nieuw tabblad)
  2. MITRE CAPEC-112: Brute Force (externe link, opent in een nieuw tabblad)
  3. WordPress Advanced Administration: Brute Force Attacks (externe link, opent in een nieuw tabblad)
  4. NIST SP 800-63B: Authentication and Authenticator Management (externe link, opent in een nieuw tabblad)

Alle definities

WordPress-beveiliging, zonder ruis

Eén e-mail wanneer het ertoe doet: nieuw waargenomen aanvallen, updates van de plugin en praktische gidsen. Geen spam, afmelden met één klik.

Begin gratis, stap over op Pro wanneer je eraan toe bent

De gratis versie verbergt WordPress al en verplaatst de inlogpagina. Pro voegt aliassen, tweestapsverificatie en bewaking toe.