Een installatiebedrijf in Apeldoorn belde ons nadat een klant had gevraagd of ze “er iets bij waren gaan doen”. In Google stond onder de bedrijfsnaam: Buy Cialis Online – Cheap Viagra Without Prescription. De eigenaar opende zijn site: cv-ketels, warmtepompen, contactgegevens. Niets over medicijnen. Hij dacht aan een vergissing van Google.

Het was geen vergissing. Het was een pharma hack op WordPress, een besmetting die al meer dan tien jaar rondgaat en nog altijd volop wordt aangetroffen. De hack verandert wat Google van uw site ziet, zonder dat u zelf iets merkt. In dit artikel gaan wij na wat er gebeurt, waar de besmetting zich verstopt, hoe u hem verwijdert en wat u kunt doen om er niet opnieuw slachtoffer van te worden.

Symptoom: uw site heeft twee gezichten

De pharma-hack draait om één truc: de site toont aan Google iets anders dan aan gewone bezoekers. Dat heet cloaking. Voor u en uw klanten ziet de site er normaal uit. Maar zodra de crawler van Google langskomt, herkent de malware dat (aan de zogenoemde user-agent of het IP-adres) en levert een versie met andere titels, andere teksten en links naar online apotheken zonder recept.

Het resultaat ziet u alleen in Google:

  • Uw paginatitels in de zoekresultaten zijn vervangen door medicijnnamen, terwijl de titel op de site zelf klopt.
  • Bij site:uwdomein.nl verschijnen pagina’s die u niet kent, met adressen die op uw echte pagina’s lijken.
  • De omschrijving onder uw resultaat gaat over pillen, doseringen en prijzen.
  • Soms staat onder uw resultaat “Deze site is mogelijk gehackt”.

Wilt u zien wat Google ziet? In Search Console kunt u met het hulpmiddel URL-inspectie een pagina “live testen” en de gecrawlde HTML bekijken. Staan daar medicijnnamen in terwijl uw eigen browser ze niet toont, dan is de diagnose rond.

Oorzaken: hoe de besmetting binnenkomt en waar hij zich verstopt

De ingang is zelden bijzonder. Een plugin die maanden geen update kreeg, een thema waarvan de licentie verliep, een beheerderswachtwoord dat ook op een gelekte website werd gebruikt. Pharma-hacks worden geautomatiseerd verspreid: scripts zoeken naar sites met bekende zwakke plekken en installeren de malware in één keer.

Wat deze hack lastiger maakt dan sommige andere, is de manier van verstoppen. De malware bestaat vaak uit meerdere lagen:

  1. Een klein “lader”-bestand in een onopvallende map, bijvoorbeeld diep in een plugin of in de uploads-map, met een naam die op een gewoon WordPress-bestand lijkt (class-wp-cache.php, wp-log.php).
  2. Versleutelde code in de database, in de tabel met opties of in de inhoud van een verborgen bericht. De lader haalt die code op en voert hem uit.
  3. Een aanpassing in het thema of in .htaccess die bepaalt wanneer de spam wordt getoond.

Verwijdert u alleen de lader, dan blijft de code in de database staan. Verwijdert u alleen de database-code, dan haalt de lader een nieuwe versie van buiten. Dat is de reden dat sites na een oppervlakkige schoonmaak vaak binnen dagen weer besmet zijn.

Oplossing: grondig, in de juiste volgorde

Het herstel volgt de algemene aanpak voor het verwijderen van malware, met extra aandacht voor de specifieke schuilplaatsen van deze hack:

  1. Kopie maken van de complete site en database, voordat u iets wijzigt.
  2. Bestanden vergelijken met originelen. Elk PHP-bestand dat niet in de originele WordPress-, plugin- of themapakketten voorkomt, is verdacht. Let op bestanden met “wp-” in de naam op plekken waar ze niet thuishoren.
  3. De database doorzoeken op base64-gecodeerde tekst, op eval( en op onbekende rijen in de optietabel met namen die op WordPress-instellingen lijken. Ook verborgen berichten met de status “draft” of met een datum ver in de verleden verdienen een blik.
  4. .htaccess en thema controleren op regels die reageren op Googlebot.
  5. Alles vervangen door verse versies: kern, plugins, thema’s. Niet repareren, vervangen.
  6. Toegangen vernieuwen: wachtwoorden, beveiligingssleutels, FTP en database.
  7. Cron-taken en gebruikers nalopen: verborgen taken en extra beheerders verwijderen.
  8. Google informeren: in Search Console de belangrijkste pagina’s opnieuw laten crawlen en, bij een waarschuwing, een herbeoordeling aanvragen.

Verwacht na het herstel niet meteen schone zoekresultaten. Google moet uw pagina’s opnieuw bezoeken voordat de titels weer kloppen. Bij een kleine site duurt dat dagen, bij een grotere site weken. Via URL-inspectie kunt u de belangrijkste pagina’s handmatig ter indexering aanbieden om het te versnellen.

Praktijkvoorbeeld: het installatiebedrijf uit Apeldoorn

Bij het installatiebedrijf bleek de ingang een verouderde galerij-plugin die al twee jaar niet meer werd onderhouden door de maker. De lader zat in de map van die plugin, de code in de optietabel onder een naam die op een cache-instelling leek. Het herstel nam een middag: bestanden vergelijken, de database opschonen, de plugin vervangen door een onderhouden alternatief, alles bijwerken en de toegangen vernieuwen. Na tien dagen waren de zoekresultaten weer schoon. De les die de eigenaar zelf trok: “Ik had die plugin al een jaar niet meer nodig, hij stond er gewoon nog.”

Voorkomen

Omdat pharma-hacks zich richten op bekende zwakke plekken, is de preventie niet ingewikkeld, maar wel een kwestie van volhouden:

  • Verwijder plugins en thema’s die u niet gebruikt. Wat er niet is, kan niet worden misbruikt.
  • Werk alles bij binnen een week nadat een update verschijnt, en controleer of plugins nog worden onderhouden.
  • Laat een scan draaien die bestanden vergelijkt met de originelen en die de database controleert, niet alleen op bekende handtekeningen.
  • Kijk maandelijks in Search Console naar de zoekopdrachten waarop uw site wordt getoond. Medicijnnamen vallen direct op.

Voor ondernemers die daar zelf geen tijd voor hebben, is dit precies het soort werk dat in websitebeveiliging als vaste dienst thuishoort: updates, firewall, dagelijkse scans en iemand die de resultaten leest. WebMaintor treft de pharma-hack nog elke maand aan, vrijwel altijd op sites waar het onderhoud een tijd stil heeft gelegen. Begin in elk geval met die ene controle: zoek uw bedrijfsnaam in Google en lees wat eronder staat. Dat is de plek waar deze hack zichtbaar wordt, en het is de enige plek waar u hem zelf kunt zien.