Maandag t/m vrijdag, 09:00 – 18:00 +31 970 1028 0205 WhatsApp
WebMaintorNederland
Hackherstel · wat wij oplossen

Malware in de database van WordPress verwijderen

De bestanden zijn schoon, maar de hack komt terug? Dan zit de malware vaak in de database. Waar hij zich daar verstopt en hoe u hem veilig verwijdert.

Stel: uw beveiligingsplugin meldt na een scan dat alles schoon is. De hostingpartij vindt niets meer. WordPress is opnieuw geïnstalleerd, alle plugins zijn vervangen door verse versies. En toch worden bezoekers op mobiel nog steeds doorgestuurd naar een gokpagina. Dan zit de malware in de database van WordPress, op een plek waar de meeste bestandsscanners niet kijken.

Op deze pagina leest u waar malware in de database zich verstopt, waarom zoeken en vervangen gevaarlijker is dan het lijkt, en waarom een oude database terugzetten bij een webshop meestal geen optie is.

  1. 01

    Waarom malware in de database zo lastig te vinden is

    Een WordPress-site bestaat uit twee delen: bestanden op de server en een database met alle inhoud en instellingen. Veel scanners vergelijken bestanden met de originele versies. Dat werkt goed voor bestanden, maar de database is voor elke site anders. Er is geen origineel om mee te vergelijken.

    Aanvallers weten dat. Beveiligingsbedrijf Sucuri beschreef bijvoorbeeld een skimmer voor webshops die volledig in een instelling in de database stond, in de tabel waarin WordPress zijn opties bewaart. In een ander geval zat kwaadaardige code in een widget met eigen HTML. Wie alleen de bestanden opschoonde, liet de skimmer staan.

    De database is ook een favoriete plek voor de tweede helft van een hack: de achterdeur zit in een bestand, de zichtbare code in de database. Haalt u alleen het ene weg, dan zet het andere het binnen de kortste keren terug.

  2. 02

    Waar malware in de WordPress-database meestal zit

    De tabel met opties

    Hier staan de instellingen van WordPress, het thema en alle plugins. Bekende plekken zijn de adressen van de site zelf (siteurl en home), de inhoud van widgets en instellingen van plugins waarmee u eigen scripts in de header of footer kunt plaatsen. Een paar regels JavaScript in zo'n instelling worden op elke pagina geladen.

    Berichten en pagina's

    Een script dat aan het einde van honderden berichten is toegevoegd, of verborgen links in oude pagina's. Ook hele spamberichten die als concept of met een vreemde status in de database staan.

    Metagegevens

    Extra velden bij berichten en gebruikers. Daar kan code staan die door een thema of plugin wordt uitgevoerd, of kunnen rechten van een gebruiker zijn aangepast.

    Gebruikers

    Beheerders die er niet horen, soms zo verstopt dat ze in het overzicht niet te zien zijn. Daarover meer bij onbekende beheerders in WordPress.

    Tabellen van plugins

    Formulierplugins, paginabouwers en WooCommerce hebben eigen tabellen. Ook daar kan iets staan, en ook tabellen van plugins die al lang verwijderd zijn, blijven vaak achter.

  3. 03

    Waarom zoeken en vervangen gevaarlijk is

    Het ligt voor de hand: zoek het domein van de aanvaller op in de database en vervang het door niets. Dat gaat vaak mis. WordPress en veel plugins slaan instellingen op in een formaat waarin de lengte van elke tekst wordt meegeteld. Verandert u de tekst met een gewone zoek-en-vervangopdracht, dan klopt die lengte niet meer, en kan WordPress de instelling niet meer lezen. Een widget verdwijnt, een plugin verliest zijn instellingen, of erger.

    Daarnaast staat de code zelden letterlijk in de database. Vaak is hij versleuteld of in stukken gehakt, zodat een zoekopdracht op een domeinnaam niets oplevert. Wij werken daarom met hulpmiddelen die dat formaat begrijpen, en controleren elke vondst met de hand voordat er iets wordt verwijderd. Meer over het opschonen van de database in het algemeen staat in de WordPress-database opschonen.

  4. 04

    Een oude database terugzetten: meestal geen goed idee

    Het lijkt de snelste route: een back-up van de database van voor de hack terugzetten. Bij een gewone site kan dat soms, als zeker is dat die back-up schoon is en u de inhoud van daarna kunt missen. Bij een webshop verdwijnen dan alle bestellingen, klantaccounts en voorraadwijzigingen van na dat moment. En weet u niet precies wanneer de hack begon, dan zet u misschien gewoon een besmette versie terug. Zie ook bestellingen verdwenen na het terugzetten van een back-up.

    Wij schonen daarom liever de huidige database op, en gebruiken een oude back-up als vergelijkingsmateriaal: wat stond er toen, en wat is er sindsdien bijgekomen?

  5. 05

    Wat u nu zelf al kunt doen

    • Maak een export van de huidige database via uw hostingpaneel, of vraag uw hostingpartij erom. Bewaar die apart. Dat is uw kopie van de besmette staat.
    • Bewaar de back-ups die u heeft, ook de oude. Verwijder niets.
    • Wijzig niets met de hand in phpMyAdmin. Eén verkeerde klik in de tabel met opties en de site is onbereikbaar.
    • Noteer wat bezoekers zien en wanneer, ook als u het zelf niet ziet.
  6. 06

    Zo verwijdert WebMaintor malware uit uw database

    Bij elke diagnose kijken wij naar de bestanden én naar de database. Wij doorzoeken de tabellen op scripts, versleutelde code, onbekende gebruikers en aangepaste instellingen, en vergelijken waar mogelijk met een oudere back-up. Elke vondst wordt met de hand gecontroleerd en verwijderd met hulpmiddelen die de opslagvorm van WordPress respecteren. Daarna dichten wij de ingang, vernieuwen wij het databasewachtwoord en de beveiligingssleutels, en volgen wij in de weken erna of er iets terugkomt. Speelt er ook een doorverwijzing, dan pakken wij die tegelijk aan, zoals beschreven bij een redirect-hack verwijderen.

    U krijgt na de eerste diagnose een vaste prijs, voordat wij beginnen. Wij werken alleen aan WordPress en WooCommerce en zijn voor spoed 24/7 bereikbaar. De volledige aanpak staat op onze pagina over het herstellen van een gehackte website.

FAQ

Veelgestelde vragen

Vindt een beveiligingsplugin malware in de database?

Sommige plugins doorzoeken ook de database op bekende patronen, maar lang niet alles wordt gevonden. Versleutelde of opgeknipte code valt vaak buiten de scan. Een schone scan betekent dus niet dat de database schoon is.

Kan ik niet gewoon een oude database terugzetten?

Bij een webshop verliest u dan alle bestellingen en klantgegevens van na die datum. En als niet zeker is wanneer de hack begon, zet u mogelijk een besmette versie terug. Opschonen van de huidige database is meestal veiliger.

Waarom mag ik niet zelf zoeken en vervangen in phpMyAdmin?

WordPress slaat veel instellingen op in een vorm waarin de lengte van de tekst wordt bijgehouden. Een gewone vervanging maakt die gegevens onleesbaar, waardoor instellingen of zelfs de hele site stuk kunnen gaan. Daar zijn aparte hulpmiddelen voor.

Moet ik ook het wachtwoord van de database wijzigen?

Ja, na een hack hoort dat erbij. Het wachtwoord staat in wp-config.php, en wie bij de bestanden kon, kon dat lezen. Wij passen het aan bij de hostingpartij en in wp-config.php tegelijk, zodat de site blijft werken.

Nu gehackt? Wij helpen direct.

Vraag een gratis websitecheck aan. U ontvangt binnen één werkdag een helder rapport, zonder verplichtingen.

Reactie binnen 4 werkuren
WhatsApp