Een klant belt: hij klikte op uw site in Google en belandde op een reclamepagina voor gokken, valse winacties of medicijnen. U typt uw adres in en ziet gewoon uw eigen homepage. Dat uw website doorstuurt naar een andere site terwijl u er zelf niets van merkt, is geen toeval. Het is precies zo gebouwd.

Dit is een van de meest voorkomende gevolgen van een inbraak op een WordPress-site, en tegelijk een van de meest onderschatte, juist omdat de eigenaar het probleem zelden zelf ziet. Hieronder leest u hoe u het vaststelt, waar de code doorgaans zit en in welke volgorde u handelt.

Waarom u het zelf niet ziet

De ingebouwde code kijkt eerst wie er aanklopt en beslist daarna. Ingelogde beheerders worden overgeslagen, want een beheerder die de site kapot ziet gaan, gaat opruimen. Bezoekers die het adres rechtstreeks intypen worden vaak ook met rust gelaten.

Wie wél wordt doorgestuurd: bezoekers die uit een zoekmachine komen, bezoekers op een telefoon, en bezoekers die de site voor het eerst bezoeken. Sommige varianten sturen iemand precies één keer per etmaal door, zodat het lijkt alsof de klager het zich heeft ingebeeld.

Test het daarom zo: log uit, open een privévenster, zoek uw bedrijfsnaam in Google en klik op het resultaat. Doe dat ook een keer op uw telefoon via mobiel internet in plaats van via uw eigen wifi. Nu ziet u wat uw bezoekers zien.

Vier plekken waar de code zich verstopt

In het htaccess-bestand. Regels die verkeer afvangen op basis van waar de bezoeker vandaan komt. Herkenbaar aan een blok onderaan het bestand, vaak met veel witregels ervoor zodat u het bij vluchtig kijken mist.

In themabestanden. Meestal in header.php, footer.php of het functies-bestand, als een lange, onleesbare reeks tekens die tijdens uitvoering wordt ontcijferd. Ook in een inactief thema, want dat wordt zelden gecontroleerd.

In de database. In de tabel met instellingen, of als script in de inhoud van een veelbezochte pagina. Dit is de variant die terugkomt nadat u alle bestanden heeft schoongemaakt.

In een plugin die u niet kent. Soms een compleet nagemaakte plugin met een geloofwaardige naam, die in de lijst niet eens zichtbaar is omdat hij zichzelf verbergt.

Er is bijna nooit maar één plek. Wie alleen het htaccess-bestand opschoont, ziet het probleem meestal binnen een dag terugkomen.

Hoe het binnenkwam

De ingang is zelden spectaculair. In de praktijk zijn het steeds dezelfde routes: een verouderde plugin met een bekend lek, een thema uit een onofficiële bron, een zwak beheerderswachtwoord, of een besmette computer waarop de FTP-gegevens stonden opgeslagen.

Dat betekent ook dat opruimen zonder de ingang te dichten geen zin heeft. U poetst dan het gevolg weg en laat de deur openstaan. Wat er allemaal bij zo’n opruiming hoort, staat in het stappenplan voor het verwijderen van kwaadaardige code.

Wat u nu, vandaag, doet

  1. Bevestig het probleem met de test uit de vorige paragraaf en maak een schermopname met datum en tijd. Dat helpt later bij uw hostingpartij en bij Google.
  2. Wijzig uw wachtwoorden. Beheerdersaccounts in WordPress, FTP, de database en het klantenpaneel van uw hosting. Doe dit vanaf een computer waarvan u zeker weet dat hij schoon is.
  3. Zet alle actieve sessies uit. In uw profiel staat een knop om overal uit te loggen. Anders blijft een gestolen sessie gewoon werken.
  4. Maak een kopie van de huidige situatie voordat u iets opruimt. Niet om terug te zetten, maar om te kunnen onderzoeken wat er precies is gebeurd.
  5. Meld het bij uw hostingpartij. Zij zien in de logbestanden welk IP-adres wanneer welk bestand heeft gewijzigd. Dat is vaak de snelste route naar de ingang.
  6. Haal de site tijdelijk uit de lucht als er klantgegevens in het spel zijn. Dat is vervelend, maar minder vervelend dan wat er anders kan gebeuren.

Wat u níet doet: alleen de zichtbare regel weghalen en denken dat het klaar is. En ook niet meteen een oude back-up terugzetten, want dan verdwijnt het bewijs terwijl de besmetting vaak al ouder is dan de kopie.

Opruimen zonder blinde vlekken

Een grondige opruiming volgt een vaste route. Vervang de WordPress-kern volledig door een verse download. Vervang thema’s en plugins door schone versies uit de officiële bron, en verwijder alles wat u niet gebruikt. Vergelijk daarna de overgebleven bestanden met een schone installatie, zodat afwijkende bestanden opvallen.

Doorzoek vervolgens de database op scripttags en op vreemde domeinnamen. Controleer de lijst met gebruikers op accounts die u niet heeft aangemaakt, en kijk of er geplande taken zijn bijgekomen die de code opnieuw plaatsen. Dat laatste is de reden dat sommige sites twee dagen na de schoonmaak weer besmet zijn.

Hoe u herkent of het gelukt is, en welke signalen erop wijzen dat er nog iets zit, leest u in het overzicht van signalen van een gehackte website.

Daarna: uw reputatie terughalen

Een doorstuurbesmetting kost u niet alleen bezoekers, maar ook vertrouwen bij Google. Staat uw site eenmaal als schadelijk gemarkeerd, dan krijgen bezoekers een rood waarschuwingsscherm en dat verdwijnt niet vanzelf.

Koppel uw site aan Search Console als dat nog niet is gebeurd, kijk onder Beveiligingsproblemen en vraag na de opruiming een herbeoordeling aan. Reken op enkele dagen. Zolang die markering staat, heeft adverteren of extra publiciteit geen zin.

Een schildersbedrijf uit Noord-Holland ontdekte pas na drie weken dat mobiele bezoekers werden doorgestuurd naar een gokpagina. De omzet uit online aanvragen was in die periode gehalveerd. De besmetting bleek binnengekomen via een formulierplugin die al veertien maanden niet was bijgewerkt. Het opruimen kostte een dag; het herstel van de vindbaarheid ruim twee maanden.

De maatregel die dit had voorkomen

Vrijwel elk geval dat wij zien, was te voorkomen met tijdig bijwerken en tweestapsverificatie op beheerdersaccounts. Dat is niet spannend en niet duur, maar het is wel wat werkt. Daarnaast helpt het enorm als er iemand periodiek van buitenaf naar de site kijkt, want de eigenaar ziet dit type besmetting per definitie niet.

Vermoedt u dat er iets speelt maar weet u het niet zeker, dan is opsporing en opruiming van kwaadaardige code geen luxe. Bij WebMaintor begint zo’n traject altijd met vastleggen wat er staat, voordat er ook maar één bestand wordt aangeraakt.

Doe in elk geval dit voordat u verder leest: pak uw telefoon, schakel wifi uit, zoek uw bedrijfsnaam op en klik op uw eigen site. Wat u dan ziet, is het enige antwoord dat telt.