Malware blijft terugkomen in WordPress: mogelijke oorzaken
Heeft u de malware al eens verwijderd en duikt hij toch weer op, soms binnen een paar dagen, soms pas na een paar weken? Dat is herkenbaar en frustrerend, maar geen pech en geen toeval. Een herinfectie heeft vrijwel altijd een specifieke, vindbare oorzaak: een lek dat nooit echt is gedicht, een backdoor die over het hoofd is gezien, een back-up die zelf al besmet was, of iets anders dat bij de eerste opschoning niet is meegenomen. Hieronder loopt u de meest voorkomende oorzaken langs, zodat u weet waar u dit keer wél moet zoeken.
Oorzaak 1: het oorspronkelijke lek is nooit gedicht
De meest voorkomende reden dat malware terugkomt, is ook de meest simpele: bij de eerste opschoning zijn de kwaadaardige bestanden verwijderd, maar is de kwetsbaarheid waarlangs de aanvaller binnenkwam nooit onderzocht of gedicht. Dat kan een verouderde plugin of thema zijn met een bekend beveiligingslek, een zwak of hergebruikt wachtwoord, of een verouderde WordPress-core die niet is bijgewerkt. Zolang die toegangsweg openstaat, maakt het weinig uit hoe grondig u de zichtbare besmetting verwijdert: de deur staat nog steeds open. Opschonen zonder het lek te dichten leidt vrijwel altijd tot een nieuwe hack, vaak zelfs sneller dan de eerste keer, omdat geautomatiseerde scanners van aanvallers eenmaal gevonden kwetsbare sites blijven herbezoeken.
Oorzaak 2: een backdoor is over het hoofd gezien
Aanvallers plaatsen zelden maar één toegangspunt. Vaker installeren ze meerdere backdoors tegelijk, juist om terugkeer te garanderen als er één wordt ontdekt. Een scan die alleen het meest opvallende, duidelijk kwaadaardige bestand herkent en verwijdert, laat de rest ongemoeid. Backdoors duiken op in ongebruikelijke locaties: verstopt in de uploadmap tussen afbeeldingen, toegevoegd aan bestaande bestanden zoals functions.php van een thema, of verborgen achter geobfusceerde of base64-gecodeerde code die op het eerste gezicht onschuldig lijkt. Zonder een grondige, bestand-voor-bestand controle van de volledige installatie blijft zo'n verborgen toegangspunt gewoon actief, klaar om opnieuw misbruikt te worden zodra de aandacht verslapt.
Oorzaak 3: de back-up die is teruggezet was zelf al besmet
Een schone back-up terugzetten is normaal gesproken de veiligste manier om te herstellen, maar alleen als die back-up ook daadwerkelijk schoon is. Is de back-up gemaakt ná het moment waarop de site al was gecompromitteerd, dan zet u de infectie zonder het te weten gewoon opnieuw terug. Dit gebeurt vaker dan gedacht: automatische back-ups draaien vaak dagelijks door, ook tijdens een lopende besmetting die nog niet was opgemerkt. Het herkennen van een besmette back-up en het veilig terugvinden van een écht schoon herstelpunt is een onderwerp dat op zichzelf al genoeg diepgang verdient voor een apart artikel; voor nu is het belangrijkste om te onthouden dat een back-up alleen zo betrouwbaar is als het moment waarop hij is gemaakt.
Oorzaak 4: andere websites op dezelfde hosting zijn nog besmet
Draait uw website op gedeelde hosting, samen met andere sites of subdomeinen op hetzelfde account? Dan kan de daadwerkelijke oorzaak van de herinfectie buiten uw eigen website liggen. Blijft een andere site op datzelfde hostingaccount besmet, dan kan malware zich via gedeelde mappen, serverprocessen of cross-site scripting opnieuw naar uw opgeschoonde website verspreiden, ook als u zelf niets fout heeft gedaan. Een opschoning die zich beperkt tot één website terwijl de rest van het account ongecontroleerd blijft, is dan per definitie onvolledig. Meer over het grondig controleren en opschonen van een volledig hostingaccount leest u in malware opschonen op hostingniveau.
Oorzaak 5: hergebruikte of gestolen wachtwoorden
Bij een eerste hack worden regelmatig wachtwoorden buitgemaakt: van het WordPress-beheerdersaccount, maar ook van FTP/SFTP, hosting of cPanel, de database en gekoppelde e-mailaccounts. Wordt na de opschoning alleen het WordPress-wachtwoord gewijzigd en blijven de overige toegangspunten ongemoeid, dan kan een aanvaller via die andere weg gewoon weer naar binnen. Hetzelfde geldt voor wachtwoorden die worden hergebruikt op meerdere diensten: lekt een wachtwoord ergens anders, dan is uw website via die omweg alsnog kwetsbaar. Een volledige wachtwoordwissel op elk toegangspunt, met unieke en sterke wachtwoorden per dienst, is daarom geen overbodige voorzichtigheid maar een basisvoorwaarde voor een écht schone herstart.
Oorzaak 6: kwaadaardige cronjobs of geplande taken
Naast bestanden en accounts kunnen aanvallers ook geplande taken instellen, zogeheten cronjobs, die op vaste tijdstippen automatisch weer kwaadaardige code injecteren of downloaden. Zo'n taak kan op WordPress-niveau staan (via wp-cron) of rechtstreeks op serverniveau, buiten het zicht van een reguliere WordPress-scan. Het gevolg is verwarrend voor site-eigenaren: de site lijkt schoon, maar na verloop van tijd verschijnt dezelfde of vergelijkbare malware opnieuw, zonder dat er iemand opnieuw heeft "ingebroken". Een controle op verdachte of onbekende geplande taken, zowel binnen WordPress als op het hostingaccount zelf, hoort daarom standaard bij een grondige opschoning, niet bij een optionele extra stap.
Hoe u zeker weet dat het dit keer wél opgelost is
Een derde infectie voorkomt u niet met nog een snelle scan, maar met een aanpak die verder kijkt dan de zichtbare symptomen. Controleer de integriteit van de volledige WordPress-core tegen de officiële bestanden, wissel alle wachtwoorden én beveiligingssleutels op elk toegangspunt (WordPress, hosting, FTP/SFTP, database, e-mail), en controleer het gehele hostingaccount, niet alleen de ene website die was gehackt. Zet daarnaast structurele hardening in: tweefactorauthenticatie op alle admins, een web application firewall, beperking van inlogpogingen en het consequent bijwerken van core, thema's en plugins. Voor de volledige verdieping op dat laatste punt verwijzen we naar onze gids over WordPress-beveiliging. Twijfelt u of de vorige opschoning grondig genoeg was? Een Malware & Hosting Checkup (€149 excl. btw, vast tarief) brengt de oorzaak boven tafel voordat er opnieuw wordt opgeschoond. Alle prijzen zijn exclusief 21% btw. Een grondige, hostingaccount-brede aanpak verkleint de kans op herhaling aanzienlijk, maar geen enkele partij kan toekomstige aanvallen volledig uitsluiten.
Veelgestelde vragen
Korte, directe antwoorden op de meestgestelde vragen.
Meestal omdat het opschonen alleen de zichtbare symptomen wegneemt en niet de onderliggende oorzaak. Denk aan een kwetsbaarheid in een verouderde plugin die nooit is bijgewerkt, een backdoor die niet is gevonden, een back-up die is teruggezet terwijl die zelf al besmet was, of wachtwoorden die na de eerste opschoning niet zijn gewijzigd. Zolang de toegangsweg openstaat, kan een aanvaller op elk moment opnieuw binnenkomen, vaak zelfs geautomatiseerd.
Ja. Aanvallers plaatsen regelmatig meerdere backdoors tegelijk, juist om terugkeer te garanderen als er één wordt gevonden. Een scan die alleen het meest opvallende bestand herkent, mist dan de rest. Backdoors worden vaak verstopt in ongebruikelijke locaties zoals de uploadmap, in bestaande bestanden zoals functions.php van een thema, of verborgen achter geobfusceerde of base64-gecodeerde code die niet direct als kwaadaardig opvalt.
Ja, en dat geldt voor alle toegangspunten, niet alleen het WordPress-beheerderswachtwoord. Denk ook aan hosting- of cPanel-inloggegevens, FTP/SFTP, de database en gekoppelde e-mailaccounts. Wachtwoorden die tijdens de eerste hack zijn buitgemaakt maar niet zijn gewijzigd, of die worden hergebruikt op andere diensten, zijn een van de meest voorkomende redenen dat een site na opschonen opnieuw wordt binnengedrongen.
Ja, zeker bij gedeelde hosting waarbij meerdere websites of subdomeinen op hetzelfde account of dezelfde server draaien. Blijft één van die andere sites besmet, dan kan malware zich via gedeelde bestanden, mappenstructuur of serverprocessen opnieuw naar de opgeschoonde site verspreiden. Een opschoning die zich beperkt tot één website terwijl de rest van het hostingaccount niet is gecontroleerd, biedt dan geen blijvende oplossing.
Door verder te kijken dan de zichtbare besmetting: controleer de integriteit van de volledige WordPress-core, wissel alle wachtwoorden en sleutels op elk toegangspunt, controleer het gehele hostingaccount op andere besmette sites, en zet structurele hardening in zoals tweefactorauthenticatie, een firewall en tijdige updates. Een grondige, hostingaccount-brede aanpak verkleint de kans op herhaling aanzienlijk, maar geen enkele partij kan toekomstige aanvallen volledig uitsluiten.
Onzeker of de vorige opschoning grondig genoeg was?
Een Malware & Hosting Checkup brengt de daadwerkelijke oorzaak boven tafel, hostingaccount-breed, voordat er opnieuw wordt opgeschoond. Zo weet u dit keer zeker waar u aan toe bent.
