Een klant belde ons omdat zijn hosting had gemeld dat de server overbelast raakte. Geen drukte op de site, geen nieuwsbrief verstuurd, geen advertentiecampagne. Toch honderden verzoeken per minuut. Toen wij in de logboeken keken, was het meteen duidelijk: alle verzoeken gingen naar de inlogpagina, en ze probeerden allemaal dezelfde gebruikersnaam. U raadt het al.

Een WordPress admin gebruikersnaam is voor een aanvaller het equivalent van een voordeur waarvan de naam op het slot staat. Inbreken op een website gaat namelijk niet zoals in films. Het is een kwestie van proberen: een script probeert combinaties van gebruikersnaam en wachtwoord tot er een past. En als de helft van die combinatie al vaststaat, gaat het twee keer zo snel. In dit artikel leggen wij uit waarom dit zo hardnekkig is, hoe u controleert of uw site het probleem heeft, en hoe u het oplost zonder uw berichten kwijt te raken.

Waarom een voorspelbare gebruikersnaam echt uitmaakt

Tot ongeveer 2013 stelde WordPress bij de installatie automatisch “admin” in als naam van de eerste beheerder. Miljoenen sites zijn zo begonnen, en veel daarvan draaien nog. Daar komt bij dat bouwers vaak varianten kiezen die net zo voorspelbaar zijn: beheerder, webmaster, de bedrijfsnaam, of de voornaam van de eigenaar.

Een geautomatiseerde aanval werkt met lijsten. Eerst een korte lijst met de meest voorkomende gebruikersnamen, daarna een lange lijst met wachtwoorden die ooit bij een datalek zijn buitgemaakt. Klopt de gebruikersnaam niet, dan is elke poging bij voorbaat verloren en gaat het script verder naar de volgende site. Klopt hij wel, dan wordt uw site interessant en blijft het script uren of dagen doorproberen.

Er is nog een tweede reden, die minder bekend is. WordPress geeft bij een mislukte poging standaard verschillende meldingen: “onbekende gebruikersnaam” versus “het wachtwoord dat u opgaf voor deze gebruiker is onjuist”. Zo bevestigt uw eigen site of een naam bestaat. En de auteursarchieven maken het nog makkelijker: op veel sites toont het adres uwdomein.nl/?author=1 netjes de gebruikersnaam van de eerste beheerder.

Betekent dit dat een unieke gebruikersnaam u onaantastbaar maakt? Nee. Het is geen slot, het is een drempel. Maar het is wel een drempel die u in tien minuten neerzet en die het overgrote deel van het geautomatiseerde verkeer nutteloos maakt. Zulke aanvallen werken op schaal: honderdduizenden sites tegelijk, altijd op zoek naar de makkelijkste.

Hoe u controleert wat er op uw site staat

Log in en ga naar Gebruikers. U ziet daar een kolom Gebruikersnaam en een kolom Rol. Loop het lijstje na met deze vragen in gedachten:

  • Staat er een account met de naam admin, administrator, beheerder, webmaster of test?
  • Hoeveel accounts hebben de rol Beheerder? In de meeste bedrijven is één of twee genoeg.
  • Herkent u iedereen op de lijst? Oud-medewerkers, een vroegere bouwer of een stagiair van twee jaar geleden hebben zelden nog toegang nodig.
  • Is de publiek zichtbare naam (de schermnaam bij berichten) gelijk aan de gebruikersnaam? Dan verklapt elk blogartikel waarmee u inlogt.

Dat laatste punt lost u los van al het andere op, en het is de moeite waard. Bewerk het profiel, vul Voornaam en Achternaam in en kies bij “Toon naam publiekelijk als” iets anders dan de gebruikersnaam. De naam waarmee u inlogt hoort niemand te weten.

De gebruikersnaam vervangen, stap voor stap

WordPress laat u een gebruikersnaam niet zomaar wijzigen; dat veld staat vast na aanmaken. De veilige route is daarom: een nieuw account maken en het oude opheffen. Dat klinkt ingrijpender dan het is, want u kunt alle bestaande berichten en pagina’s overdragen.

  1. Maak eerst een back-up van bestanden en database, of laat uw hostingpartij er een maken. U wijzigt toegangsrechten; dat doet u nooit zonder vangnet.
  2. Ga naar Gebruikers en dan Nieuwe gebruiker. Kies een gebruikersnaam die niets met uw bedrijf, domein of voornaam te maken heeft. Gebruik een e-mailadres dat nog niet aan een ander account hangt.
  3. Geef het account de rol Beheerder en stel een lang, uniek wachtwoord in. Bewaar dat in een wachtwoordmanager, niet in een document op het bureaublad.
  4. Log uit en log in met het nieuwe account. Controleer of u alles kunt: plugins, instellingen, gebruikers. Werkt er iets niet, stop dan hier en zoek dat eerst uit.
  5. Ga naar Gebruikers, zoek het oude admin-account en kies Verwijderen. WordPress vraagt dan wat er met de berichten van die gebruiker moet gebeuren. Kies “Alle inhoud toewijzen aan” en selecteer uw nieuwe account. Slaat u die stap over, dan verdwijnen de berichten.
  6. Loop na afloop uw formulieren en koppelingen na. Sommige plugins verzenden meldingen naar het e-mailadres van een specifiek account.

Werkt u met WooCommerce, dan is er nog een aandachtspunt: een beheerdersaccount kan ook aan klantorders vastzitten. Verwijder in dat geval het account niet, maar zet de rol terug naar Abonnee en wijzig het wachtwoord. Zo blijft de historie intact zonder dat de toegang blijft bestaan.

Wat u daarna nog kunt doen

Een unieke gebruikersnaam is de eerste stap, niet de laatste. De maatregelen die er in de praktijk het meeste toe doen, in deze volgorde:

  • Een uniek wachtwoord per account. Hergebruikte wachtwoorden zijn nog steeds de meest voorkomende oorzaak van een gekraakte inlog. Wat een goed wachtwoord is, en waarom lengte belangrijker is dan rare tekens, leest u in ons artikel over sterke wachtwoorden voor WordPress.
  • Tweestapsverificatie. Zelfs met de juiste gebruikersnaam en het juiste wachtwoord komt niemand binnen zonder de code van uw telefoon.
  • Een limiet op inlogpogingen. Na vijf mislukte pogingen blokkeert u het IP-adres tijdelijk. Dat maakt het doorprobeeren onbetaalbaar traag.
  • Minder beheerders. Geef een redacteur de rol Redacteur, geen Beheerder. Rollen bestaan niet voor de sier.

Ziet u in uw logboeken al langere tijd veel mislukte pogingen, dan is uw site actief in beeld bij een botnet. Wat daar precies gebeurt en wanneer het gevaarlijk wordt, beschrijven wij in het artikel over brute force-aanvallen. Wilt u dit soort maatregelen niet zelf bijhouden, dan is uitbesteden een optie: bij onze websitebeveiliging horen firewall, inlogbeveiliging en scans bij het vaste werk.

Tot slot

Reserveer een half uur, kijk in uw gebruikerslijst en handel wat u aantreft af. In de meeste gevallen bent u sneller klaar dan verwacht, en u haalt daarmee een van de goedkoopste beveiligingswinsten binnen die er is. Wat overblijft is de vraag die eigenlijk elk half jaar terug hoort te komen: wie heeft er nu nog toegang tot deze website, en waarom?