1. Početna
  2. Blog
  3. Hakirana WordPress stranica

Hakirana WordPress stranica: što napraviti u prvih 24 sata

Ako ste ovo upravo izguglali, vjerojatno gledate nešto što ne biste trebali vidjeti. Ispod je provjera simptoma koja vam u minuti kaže s čime imate posla i kojim redoslijedom rješavati — jer redoslijed odlučuje hoćete li izgubiti pozicije u Googleu.

Prvih 60 minuta, ukratko. Ne brišite ništa dok ne napravite kopiju zaraženog stanja — ona je jedini trag o tome kako su ušli. Zatim: promijenite lozinke (hosting, FTP/SFTP, baza, svi WordPress administratori), provjerite popis korisnika, i tek onda čistite. Ako stranica prima uplate ili osobne podatke, prvo ju stavite offline u maintenance način rada.

Besplatna provjera

Je li moja stranica hakirana?

Označite sve što ste primijetili. Alat radi u vašem pregledniku — ne unosite adresu stranice, ništa se ne šalje i ništa se ne sprema.

Što vidi Google i posjetitelji
Pristup i administracija
Ponašanje same stranice
Koliko ste izloženi

Kako se hakiranje uopće prepoznaje

Najveći problem kod hakirane WordPress stranice nije šteta — nego to što je vlasnik mjesecima ne primijeti. Moderni napadi ne mijenjaju naslovnicu i ne ostavljaju poruku. Oni tiho dodaju stotine stranica koje postoje samo za Google i za posjetitelje koji dolaze iz pretrage, dok prijavljenom administratoru prikazuju netaknutu stranicu.

Ta tehnika zove se cloaking i objašnjava rečenicu koju čujemo gotovo svaki put: „ali meni stranica izgleda normalno”. Zloćudni kod čita tko dolazi — je li to Googlebot, dolazi li posjetitelj s Googlea, koristi li mobitel — i tek tada odlučuje što će prikazati. Zato se provjera nikad ne radi u vlastitom pregledniku u kojem ste prijavljeni.

Tri provjere koje traju dvije minute

  • Pretraga site:vasadomena.hr u Googleu. Prolistajte rezultate do kraja. Ako vidite adrese i naslove koje nikad niste napisali, stranica je indeksirana kao zaražena.
  • Google Search Console → Sigurnost i ručne mjere → Sigurnosni problemi. Ovo je jedini izvor koji vam doslovno kaže što je Google pronašao i gdje. Ako nemate Search Console, dodajte domenu odmah — besplatno je i trebat će vam za zahtjev za provjerom.
  • Otvorite stranicu u anonimnom prozoru i s mobitela, i to tako da do nje dođete klikom iz Google rezultata, a ne upisivanjem adrese. Cloaking se najčešće aktivira upravo na taj dolazak.

Ne pomaže: gledanje stranice dok ste prijavljeni kao administrator, provjera samo naslovnice, i „instalirao sam sigurnosni dodatak i kaže da je sve uredu”. Sigurnosni dodatak koji je instaliran nakon proboja radi na već kompromitiranom sustavu i napadač ga često isključi prije nego što išta prijavi.

Zašto se to događa baš WordPressu

Ne zato što je WordPress loše napisan. Zato što je najrašireniji, pa je i najisplativija meta — i, puno važnije, zato što se gotovo sve ranjivosti ne nalaze u samom WordPressu nego u dodacima i temama. Baze ranjivosti koje prate WordPress ekosustav godinama pokazuju istu sliku: velika većina prijavljenih propusta dolazi iz dodataka trećih strana, a tek mali postotak iz jezgre.

To ima praktičnu posljedicu. Prosječna poslovna WordPress stranica u Hrvatskoj vrti između petnaest i trideset dodataka. Svaki od njih je tuđi kod s punim pristupom vašoj bazi, a održava ga netko koga nikad niste vidjeli i tko projekt može napustiti bez najave. Napušteni dodatak koji je i dalje instaliran je otvorena vrata koja nitko više neće zatvoriti.

Najčešći ulazi, poredani po tome koliko ih stvarno viđamo:

  1. Zastarjeli dodatak s javno objavljenom ranjivošću — napadi krenu unutar nekoliko dana od objave, automatizirano, na sve stranice koje taj dodatak koriste.
  2. „Nulled” premium teme i dodaci preuzeti s piratskih stranica. Backdoor je u njima ugrađen — to je poslovni model, a ne nesreća.
  3. Slaba ili ponovno korištena administratorska lozinka bez dvofaktorske prijave.
  4. Zaraženo računalo osobe koja ima FTP pristup, s kojeg su ukradeni spremljeni podaci za prijavu.
  5. Dijeljeni hosting na kojem je probijena susjedna stranica istog vlasnika.

Prvih 24 sata: redoslijed koji spašava pozicije

Redoslijed nije proizvoljan. Većina trajne štete ne nastane od samog hakiranja, nego od panične reakcije — brisanja tragova, vraćanja backupa preko ranjive instalacije i traženja provjere od Googlea prije nego što je stranica stvarno čista.

1. Zabilježite stanje prije nego išta dirnete

Napravite punu kopiju datoteka i baze u zatečenom stanju i spremite je izvan servera. Ako kasnije zatreba utvrditi kad su i kako ušli — a treba, jer o tome ovisi hoćete li se ponovno zaraziti — to je jedini izvor. Spremite i logove pristupa s hostinga; oni se najčešće rotiraju nakon nekoliko dana i nestanu upravo kad vam zatrebaju.

2. Zatvorite pristup

Promijenite sve, ne samo WordPress lozinku: hosting kontrolni panel, FTP/SFTP i SSH, korisnika baze podataka u wp-config.php, te lozinke svih WordPress administratora. Zatim u WordPressu odjavite sve aktivne sesije — inače napadač ostaje prijavljen s postojećim kolačićem i nakon promjene lozinke. Obrišite administratorske račune koje ne prepoznajete, ali ih prvo zabilježite.

3. Nađite ulaznu točku, ne samo posljedicu

Usporedite datume izmjene datoteka s trenutkom kad su se pojavili prvi simptomi. Provjerite mjesta na kojima se backdoor gotovo uvijek krije: PHP datoteke u wp-content/uploads/ (tamo PHP nema što raditi), izmijenjeni .htaccess i wp-config.php, mape dodataka koje izgledaju kao pravi dodatak ali nemaju stranicu u WordPress katalogu, i zakazani zadaci u WP Cronu. Usporedba s čistom kopijom iste verzije WordPressa i istih dodataka pokazat će svaku izmijenjenu datoteku.

4. Očistite, pa tek onda ažurirajte

Uklonite zloćudni kod, obrišite dodatke i teme koje ne koristite (neaktivan dodatak je i dalje izvršni kod na serveru), ažurirajte WordPress, sve dodatke, temu i verziju PHP-a. Ako je vaša tema mijenjana izravno u datotekama, te izmjene ćete izgubiti pri ažuriranju — to je jedan od razloga zašto se čišćenje kod starijih stranica često pretvori u prepravljanje.

5. Provjerite bazu, ne samo datoteke

Injektirani linkovi, preusmjeravanja i skripte često sjede u bazi, u tablicama wp_options i wp_posts. Stranica koja je očišćena samo na razini datoteka i dalje servira spam iz sadržaja.

6. Tek sada tražite provjeru od Googlea

Kad ste sigurni da je čisto, u Search Consoleu pod Sigurnosni problemi pošaljite zahtjev za provjerom i opišite što ste napravili. Ako pošaljete zahtjev prerano i Google ponovno nađe isti spam, sljedeća provjera traje dulje. Uklanjanje upozorenja obično dođe unutar nekoliko dana; povratak pozicija traje tjednima i ovisi o tome koliko je dugo spam bio indeksiran.

Ako se obrađuju osobni podaci. Proboj koji je mogao izložiti osobne podatke korisnika u EU podliježe GDPR-u i prijavljuje se nadzornom tijelu u roku od 72 sata od saznanja. To vrijedi i za web shop s adresama kupaca i za običan kontakt-obrazac čije su poruke završile u bazi. Ovo nije IT odluka — provjerite s osobom koja vam vodi usklađenost.

Što ne raditi

  • Ne brišite spam stranice iz Googlea i mislite da je gotovo. Uklanjanje iz indeksa ne uklanja kod koji ih generira. Vratit će se.
  • Ne vraćajte stari backup i ne stanite na tome. Backup sadrži istu ranjivost kroz koju su ušli prvi put. Bez ažuriranja i promjene lozinki, ponovna zaraza je pitanje dana.
  • Ne mijenjajte samo WordPress lozinku. Ako je backdoor na serveru, lozinka mu nije potrebna.
  • Ne instalirajte pet sigurnosnih dodataka odjednom. Na kompromitiranom sustavu ne rade pouzdano, usporavaju stranicu i međusobno se sukobljavaju.
  • Ne ostavljajte stranicu online ako servira malware posjetiteljima. Dan offline je manja šteta od tjedna na Google crnoj listi.

Čistiti staru stranicu ili napraviti novu?

Ovo je jedina odluka na kojoj se stvarno štedi ili gubi novac, a odgovor nije uvijek „napravite novu”. Čišćenje je često ispravan izbor. Evo kako to razlikujemo kad nas netko nazove:

Situacija Razumniji potez
Prva zaraza, postoji čist backup, stranica se redovito ažurirala Čišćenje
Stranica se zarazila i drugi ili treći put Nova izrada
Nema backupa za koji se zna da je čist Nova izrada
Tema ili ključni dodaci se više ne održavaju Nova izrada
Nitko ne zna tko je i kako složio stranicu Nova izrada
Stranica je jednostavna: nekoliko podstranica i kontakt Nova izrada, obično jeftinije od čišćenja
Web shop s narudžbama i kupcima Čišćenje, pa migracija bez žurbe

Zadnji redak je važan: kod web shopa podaci o narudžbama i kupcima vrijede više od koda, pa se prvo stabilizira postojeće stanje. Kod prezentacijske stranice s pet podstranica situacija je obrnuta — čišćenje, ažuriranje i naknadno održavanje često koštaju više od nove, statične stranice koja nema bazu, nema dodatke i nema što hakirati.

O toj razlici smo detaljnije pisali u tekstu WordPress vs. custom web stranice, a cijene su razrađene u koliko košta izrada web stranice.

Kako se ovo više ne bi ponovilo

Neovisno o tome čistite li ili radite novu stranicu, ovih šest stvari pokriva najveći dio rizika:

  • Manje dodataka. Svaki dodatak koji uklonite je jedna ranjivost manje koju netko drugi mora zakrpati umjesto vas.
  • Automatska sigurnosna ažuriranja za WordPress i dodatke, uz provjeru da stranica nakon ažuriranja i dalje radi.
  • Dvofaktorska prijava za sve administratore i zaseban račun za svaku osobu — nikad dijeljeni „admin”.
  • Najmanje ovlasti. Osoba koja piše objave je Editor, ne Administrator.
  • Backup izvan servera, s povremenom provjerom da se stvarno može vratiti. Backup koji nitko nikad nije testirao nije backup.
  • Zabrana uređivanja datoteka iz administracijedefine('DISALLOW_FILE_EDIT', true); u wp-config.php uklanja najlakši način da se preuzeti račun pretvori u trajni backdoor.

Ako nemate nikoga tko to redovito radi, to je posao održavanja web stranica — i jeftiniji je od jednog čišćenja.

Česta pitanja

Hakirana stranica — kratki odgovori

Kako znam je li mi WordPress stranica hakirana?

Provjerite tri stvari: pretragu site:vasadomena.hr u Googleu, izvještaj Sigurnosni problemi u Search Consoleu i izgled stranice u anonimnom prozoru s mobitela. Znakovi su stranice koje niste napisali, upozorenje uz rezultat u Googleu, preusmjeravanja, administrator kojeg niste dodali ili nemogućnost prijave s ispravnom lozinkom.

Zašto meni stranica izgleda uredno, a Google kaže da je hakirana?

Zbog cloakinga. Zloćudni kod prikazuje spam samo Googlebotu, samo posjetiteljima koji dolaze s Googlea ili samo korisnicima mobitela, a prijavljenom administratoru prikazuje normalnu stranicu. Zato provjeru radite izvan svog uobičajenog preglednika.

Je li dovoljno vratiti backup?

Najčešće nije. Backup uklanja posljedicu, ali sadrži istu ranjivost kroz koju su ušli. Bez pronalaska ulazne točke, ažuriranja svega i promjene svih lozinki, ponovna zaraza slijedi kroz nekoliko dana.

Zašto se stranica ponovno zarazi nakon čišćenja?

Zato što je ostao backdoor. Napadači ih ostavljaju na više mjesta odjednom: PHP datoteka u mapi za slike, dodatni administrator, zakazani zadatak u WP Cronu, izmijenjeni wp-config.php. Očisti li se samo vidljivi spam, backdoor sve vrati nazad.

Koliko traje povratak u Google?

Upozorenje Google obično makne unutar nekoliko dana nakon uspješnog zahtjeva za provjerom. Pozicije se vraćaju sporije, obično kroz nekoliko tjedana, ovisno o tome koliko je dugo spam bio indeksiran.

Može li se hakirati statična stranica bez WordPressa?

Napadi o kojima je ovdje riječ ciljaju izvršni kod i bazu na serveru. Statična stranica nema ni administraciju, ni dodatke, ni bazu koju bi netko mogao izmijeniti, pa cijela ta kategorija napada otpada. Ostaje briga o pristupu hostingu i domeni — što je bitno manji popis stvari za održavati.

wosh.productions

Umorni ste od stranice koju treba čuvati?

Gradimo brze, custom kodirane stranice bez administracije, dodataka i baze koju treba krpati. Ako trebate procjenu je li vašu isplativije očistiti ili zamijeniti, pogledat ćemo ju i reći vam iskreno — i kad je odgovor „očistite postojeću”.