Et af de mest udbredte website-indbrud er usynligt med vilje. Websitet ser fint ud for dig og fint ud for dine besøgende, mens det i det stille serverer hundredvis af spamsider til søgemaskinernes crawlere — under dit domænenavn.
Angrebet kaldes en spam-injektion, og de sider det planter, følger et genkendeligt mønster: casino- og spillesider, medicinsider, kopivarer af designermærker. De hænger på dit domæne — ditdomæne.dk/en-sti-du-aldrig-har-oprettet — og Google indekserer dem på samme måde som alt andet på dit website. Den indsatte kode tjekker hvem der beder om hver side. En søgemaskine-crawler får spammen; en almindelig browser får dit normale website, eller ingenting. Det trick kaldes "cloaking", og det er grunden til, at ejeren af et ramt website kan klikke det igennem fra ende til anden uden at finde noget galt.
Imens lander regningen på websitets omdømme. Googles billede af domænet rummer nu hundredvis af sider om emner websitet aldrig har valgt, søgende lander af og til på dem, og domænets placering i søgeresultaterne bærer associationen med sig. Intet af det kan ses fra et browservindue.
Hvorfor kan jeg ikke se de hackede sider på mit eget website?
Fordi den indsatte kode tjekker hvem der spørger, før den svarer. Kommer forespørgslen fra en søgemaskine-crawler, serverer det ramte website spamsiderne; kommer den fra en almindelig browser, serveres det normale website eller en side-findes-ikke-fejl. Det kaldes "cloaking", og det er en bevidst del af angrebet: en infektion ingen ser, er en infektion ingen fjerner, og så tjener den penge i længere tid.
Det hjælper at forstå hvad angriberen egentlig er ude efter, for det forklarer angrebets mærkelige facon. Spamsiderne er slet ikke rettet mod dine besøgende. De findes for at ranke i søgeresultater, og det er lettere at ranke på et domæne søgemaskinerne allerede har tillid til. Et nyregistreret spamdomæne starter fra nul; dit etablerede domæne har års opsparet troværdighed. Injektionen låner den troværdighed — dit domæne klarer rankingen, og spamsiderne høster klikkene og sender dem videre.
Cloaking tjener det samme formål. Var spammen synlig, ville en besøgende opdage den inden for få dage, og websitet ville blive renset. Serveret kun til crawlere kan infektionen køre i månedsvis — og det er netop meningen. Det ene publikum der skal se siderne for at fidusen virker — søgemaskinerne — er det ene publikum ejeren aldrig optræder som.
Hvor det viser sig først: dine egne søgedata
Der er ét sted infektionen ikke kan gemme sig, og det er et sted mange websiteejere aldrig åbner: søgedataene for deres eget domæne. Google Search Console registrerer hver søgning domænet er dukket op for, og hver URL der har fået visninger og klik. Cloaking narrer browsere, men det kan ikke narre denne rapport — hvis Google indekserer spam under dit domæne, viser spammen sig her som visninger og klik du ikke kan gøre rede for.
Signaturen ser sådan ud: søgninger du aldrig ville gå efter — casino-udtryk, medicinnavne, mærkevarer du ikke sælger — og ved siden af dem landings-URL'er du ikke genkender som sider du nogensinde har lavet. Begge halvdele tæller. Sære søgninger der lander på dine rigtige sider, er en kuriositet; sære søgninger der lander på stier som ikke burde findes, er alarmen.
Det er endnu en grund til at kigge i Search Console-rapporterne med jævne mellemrum, også når intet er galt — de samme data besvarer hverdagsspørgsmålene om hvilke tal der faktisk betyder noget, og som sidegevinst er de den tidligst mulige advarsel om, at noget er blevet plantet på domænet.
Er mærkelige søgninger i Search Console bevis på at mit website er hacket?
Nej. En enkelt sær søgning har som regel en uskyldig forklaring, og den skal overvejes først. Ord betyder forskellige ting på forskellige sprog — et dansk kultursite ranker helt legitimt for "slot", som på engelsk ligner gambling. Et blogindlæg kan sagtens nævne navnet på en medicin. Det der kræver et nærmere kig, er en klynge: mange ukendte søgninger, der lander på URL'er du ikke genkender, om et emne dit website aldrig har handlet om.
De uskyldige tilfælde er værd at folde ud, for at dømme sit eget website hacket på ét mærkeligt ord fører til spildte aftener. En side kan ranke for en søgning den kun nævner i forbifarten: en artikel der engang omtalte et smertestillende middel i forbindelse med for eksempel sportsskader, samler visninger på medicinnavnet — og det er ganske almindelig søgeadfærd, ikke en infektion. Sprogsammenstød er mindst lige så almindelige, og her har danske websites en særlig grund til at kende dem: mange analyseværktøjer og spamfiltre er bygget på engelsk, og på engelsk er et "slot" en spilleautomat. Et dansk website der skriver om Kronborg eller Egeskov, ranker altså helt legitimt for et ord, som et udenlandsk værktøj kan fejllæse som casino-spam. Google viser dine sider til søgende på mange sprog, uanset om du har planlagt det eller ej.
Testen er derfor aldrig et enkelt datapunkt. Det er kombinationen: dusinvis eller hundredvis af ukendte søgninger frem for én; landings-URL'er du ikke kan matche med nogen side du har udgivet; og et emneområde — onlinecasinoer, receptpligtig medicin, kopivarer — som dit website aldrig har skrevet et ord om. Ét af de tre tegn alene er støj. Alle tre sammen er værd at undersøge samme dag.
Hvordan tjekker jeg hvad Google faktisk ser på mit website?
Brug URL-inspektionsværktøjet i Google Search Console og kør live-testen, som henter siden som Googlebot og viser dig hvad den fik. Sammenlign med hvad en almindelig browser får på samme URL. Er de to væsentligt forskellige — spamtekst, links eller hele sider der kun findes i Googlebot-udgaven — så cloaker websitet, og på et website du aldrig har sat op til det, peger det på et indbrud.
Tag en af de mistænkelige URL'er fra rapporten, og inspicér netop den. En cloaket side svarer typisk med en 404 eller en omdirigering til din forside, når du åbner den i en browser, og en hel side spam, når den hentes som Googlebot. At se de to side om side fjerner tvivlen på en måde, ingen mængde stirren på søgelisten kan.
Serveren fortæller resten af historien. Kig efter filer der er ændret for nylig, uden at du har ændret noget: PHP-filer med navne der efterligner de rigtige, eller som ligger i upload-mapper hvor der ikke hører kode til, og ændringer i .htaccess — et yndet gemmested for de regler, der sender crawler-trafikken hen til spammen. De fleste hostingudbydere tilbyder desuden en malware-scanning, og den er værd at køre: den kigger direkte på filerne på disken, og det er det ene udsigtspunkt cloaking ikke kan narre.
Hvordan kommer hackede spamsider ind på et website?
Oftest gennem et forældet plugin, tema eller CMS med en kendt sårbarhed, eller gennem stjålne adgangskoder — et admin- eller FTP-password opsnappet et andet sted og brugt igen. Adgangen bruges til at lægge en lille bagdørs-fil ind, og bagdøren genererer eller serverer spamsiderne. Derfor hjælper det ikke at slette spamsiderne alene: bagdøren der skabte dem, er der stadig og laver dem igen.
Indgangen betyder mere end spammen, for spammen er kun symptomet. Særligt på WordPress-websites er den langt hyppigste vej ind et plugin eller tema, der ikke er blevet opdateret, efter en sårbarhed i det blev offentligt kendt — samme mønster som beskrevet i er mit WordPress-site sikkert?. Reparerer man den synlige skade og lader den sårbare komponent blive siddende, inviterer man den samme infektion tilbage — ofte inden for få dage.
Hvordan fjerner jeg hackede spamsider fra Google?
Fjern infektionen først — de indsatte filer og bagdøren der lagde dem ind — for Google bliver ved med at indeksere spam der stadig serveres. Bed derefter om at få spam-URL'erne fjernet i Search Console, og bed om at få dine rigtige sider crawlet igen. Hold øje med søgedataene i ugerne efter: geninfektion gennem det samme ulukkede hul er almindeligt, og at spamsøgningerne ebber ud, er din bekræftelse på at oprydningen holdt.
I praksis er rækkefølgen: opdatér eller fjern det sårbare plugin, tema eller CMS-komponent; skift de adgangskoder der kan have været vejen ind; fjern de indsatte filer og bagdøren, og gendan fra en ren backup hvis du har en; og vend dig først derefter mod søgesiden — brug Search Consoles fjernelsesværktøj til spam-URL'erne, og inspicér dine rigtige sider igen. Indekset indhenter resten af sig selv: de indsatte URL'er begynder at svare med ægte 404-fejl, bliver crawlet igen og falder ud.
Overvågningen bagefter er ikke tom høflighed; det er den del der fanger infektion nummer to. Den rapport der slog alarm, er også den rapport der bekræfter helbredelsen: spamvisningerne bør klinge af hen over de følgende uger, og en frisk bunke ukendte søgninger er det tidligste tegn på, at døren ikke blev lukket helt.
Hvad du kan gøre i denne uge
Åbn din Search Console-rapport, og læs søgelisten med klynge-testen i baghovedet: ikke "er der én sær søgning?", men "er der mange sære søgninger, på URL'er jeg ikke genkender, om et emne jeg aldrig har skrevet om?". Er svaret nej — og det er det for de fleste websites — har du brugt ti minutter og fået et sammenligningsgrundlag, som er det der gør rapporten læsbar næste måned. Er svaret ja, så kør live-inspektionen på en af de ukendte URL'er i dag, og lad sammenligningen mellem Googlebot og browser afgøre sagen.
TrustCtrl holder øje med de her data løbende, for hele angrebets natur er, at det opstår mellem de øjeblikke hvor nogen kigger. Den læser dine søgedata efter præcis denne signatur — klynger af ukendte søgninger og ugenkendte URL'er om emner dit website aldrig har dækket — og bruger den samme forsigtighed som beskrevet ovenfor, så et slot aldrig bliver meldt som et casino. Det ligger sammen med resten af website-tjekkene, fra certifikatudløb til om AI-crawlerne kan nå dig, så advarslen kommer, også i de måneder hvor ingen åbner rapporten.