Otvorili ste vaš sajt i umesto normalnog sadržaja vidite nepoznate linkove, reklamni sadržaj ili poruku o suspenziji. Ili ste dobili email od hosting provajdera o malware-u. Ovakva situacija je stresna — ali u većini slučajeva potpuno rešiva, ako reagujete brzo i sistematično.
Nemojte paničiti i nemojte odmah brisati sajt. Pratite ove korake tačno ovim redosledom.
Korak 1: Odmah stavite sajt u maintenance mode
Pre svega ostaloga, sprečite dalje širenje štete. Kontaktirajte vašeg hosting provajdera i tražite privremenu suspenziju sajta ili ga stavite u maintenance mode. Hakovani sajt može aktivno da širi malware na vaše posetioce i ugrožava njihove podatke — to je vaša pravna odgovornost prema GDPR regulativi.
Ako možete da pristupite WordPress adminu, instalirajte SeedProd ili WP Maintenance Mode plugin i aktivirajte maintenance. Ako ne možete — pozovite hosting podršku odmah.
Korak 2: Promenite sve lozinke — sve, ne samo jednu
Pre nego što počnete sa čišćenjem, hakeru morate oduzeti pristup na svim ulaznim tačkama:
- WordPress admin lozinka — za sve korisnike sa admin pristupom, ne samo vi
- cPanel ili hosting kontrolna tabla — ovde mogu da menjaju fajlove direktno
- FTP i SFTP pristup — česta meta brute force napada
- MySQL baza podataka — ažurirajte i wp-config.php sa novom lozinkom
- Email nalog vezan za WordPress — napadač može da resetuje sve ostale lozinke kroz email
Koristite lozinke od minimum 16 karaktera. Bitwarden je odličan besplatni password manager.
Korak 3: Identifikujte uzrok napada
Pre čišćenja morate znati kako je napadač ušao. Ovo su najčešći uzroci WordPress napada:
- Zastareli pluginovi i teme (90%+ napada): svaki plugin koji nije ažuriran je potencijalna rupa
- Slabe admin lozinke: automatizovani brute force napadi probaju hiljade kombinacija
- Nulled (piratske) teme i pluginovi: uvek i bez izuzetka sadrže backdoor kod
- Zastarela WordPress core verzija: svaka starija verzija ima javno dokumentovane ranjivosti
- Nesiguran hosting: na prepunjenom shared hostingu kompromitovani nalog komšije može uticati na vaš
Instalirajte Wordfence Security plugin (besplatan) i pokrenite Full Scan. Wordfence identifikuje izmenjene fajlove i malware kod u vašim pluginovima.
Korak 4: Očistite malware
Opcija A: Restore iz backup-a (uvek preporučeno)
Ako imate backup napravljen pre napada — ovo je najbrže i najsigurnije rešenje. Restore celog sajta na verziju pre kompromitacije. Napomena: ako nemate redovne backupe, ovo je trenutak da to promenite kao prioritet broj jedan.
Opcija B: Ručno čišćenje (kad nema backup-a)
- Preuzmite svežu kopiju WordPress core fajlova sa wordpress.org i zamenite sve sistemske fajlove
- Deinstalirajte sve pluginove i reinstalirajte ih isključivo iz originalnih izvora
- Detaljno proverite sve theme fajlove — posebno functions.php — na nepoznati PHP kod
- Pregledajte bazu podataka za nepoznate admin korisnike i odmah ih obrišite
- Skenirajte sve fajlove sa Wordfence ili Sucuri SiteCheck (besplatan online alat)
- Proverite .htaccess fajl na neobične redirekcije
Korak 5: Uklonite Google Safe Browsing blacklist
Hakovani sajtovi koji su širili malware često završe na Google Safe Browsing listi. Proverite status na: transparencyreport.google.com/safe-browsing/search
Ako je sajt na listi — potpuno ga očistite po prethodnim koracima, zatim u Google Search Console idite na sekciju Security Issues i kliknite Request Review. Google odgovara za 1–3 radna dana.
Prevencija: kako zaštititi sajt od budućih napada
- Ažurirajte WordPress, teme i pluginove odmah kad izađu nove verzije — uključite automatska ažuriranja za minor verzije
- Two-Factor Authentication (2FA) za sve admin korisnike — WP 2FA plugin je besplatan
- Promenite /wp-admin URL na nešto nestandardno — WPS Hide Login plugin eliminiše 99% brute force napada
- Limitirajte broj login pokušaja — Wordfence blokira IP posle nekoliko neuspešnih pokušaja
- Automatski backup svaki dan na udaljenu lokaciju — UpdraftPlus besplatni plan je dovoljan za start
- Cloudflare Web Application Firewall — besplatni plan blokira poznate malicious bot-ove pre nego što stignu do vašeg servera
- Nikad ne koristite nulled teme i pluginove — uštedite 50 €, platite 500 € za sanaciju za mesec-dva
Trebate hitnu pomoć? AdRise Studio nudi WordPress sigurnosnu intervenciju sa garantnim rokom sanacije. Kontaktirajte nas na adrisestudio.com/kontakt.
Kako je uopšte došlo do upada
Kod malih sajtova uzrok je gotovo uvek jedan od nekoliko, i vredi ga utvrditi — inače se isto ponovi za nekoliko meseci.
Zastareo dodatak ili tema. Najčešći uzrok. Napadi su automatski: program obilazi hiljade sajtova i traži poznatu slabost u određenoj verziji. Niko ne bira baš vas — vi ste na spisku.
Slaba ili ponovljena lozinka. Drugi po redu. Kada procuri lozinka sa nekog drugog mesta, isprobava se svuda.
Očigledno korisničko ime. Nalog nazvan po firmi ili opštim nazivom je polovina posla za napadača.
Nalog bivšeg saradnika koji je ostao aktivan godinama.
Zaražen računar sa kog se pristupa sajtu, sa kog su ukradeni podaci za prijavu.
Kako da znate da je stvarno očišćeno
Najveća greška posle čišćenja je pretpostavka da je gotovo zato što sajt izgleda normalno. Zlonameran kod se često ostavlja na više mesta upravo zato da bi se vratio.
- Proverite spisak korisnika. Napadač gotovo uvek napravi nov nalog sa administratorskim ovlašćenjima. Uklonite sve koje ne prepoznajete.
- Proverite zakazane poslove — često se tu ostavi zadatak koji vraća zlonamerni kod posle čišćenja.
- Pogledajte datume izmena datoteka. Datoteke izmenjene u vreme upada su sumnjive bez obzira kako izgledaju.
- Proverite šta se prikazuje ljudima iz pretrage. Deo napada prikazuje jedno vama a drugo posetiocima koji dolaze sa Google-a.
- Proverite da nema preusmerenja koja vode na strane sajtove.
- Pokrenite proveru ponovo posle nedelju dana. Ako se nešto vrati, uzrok nije uklonjen.
Šta se radi sa podacima klijenata
Deo koji se najčešće previdi, a ima i pravnu stranu.
Ako je sajt imao obrasce, naloge kupaca ili porudžbine, postoji mogućnost da su podaci dostupni napadaču. To nije stvar tehnike nego obaveze prema ljudima čiji su podaci.
Utvrdite šta je sajt uopšte čuvao — imena, kontakte, adrese, istoriju porudžbina. Zatim procenite da li je tome moglo da se pristupi. Kod ozbiljnijeg upada se o tome obaveštavaju oni čiji su podaci, a u pojedinim slučajevima i nadležni organ.
Za konkretnu situaciju proverite sa pravnikom. Šta sajt sme da čuva i koliko dugo opisano je u tekstu o uslovima i politici privatnosti.
Šta se menja da se ne ponovi
Čišćenje bez ovoga znači da će se isto desiti ponovo, obično u roku od nekoliko meseci.
- Dvofaktorska zaštita na svim administratorskim nalozima. Najveće poboljšanje po uloženom vremenu — o postavljanju u tekstu o lozinkama i zaštiti.
- Različita lozinka za svaki nalog, čuvana u programu za lozinke.
- Redovno osvežavanje sistema, teme i dodataka — o postupku u tekstu o osvežavanju WordPress-a.
- Uklanjanje dodataka koje ne koristite. Deaktiviran dodatak koji stoji godinama je i dalje rizik.
- Pregled korisnika jednom u nekoliko meseci.
- Kopije koje se prave automatski i čuvaju van samog servera — o tome u tekstu o rezervnim kopijama.
Koliko ovo košta i koliko traje
Vraćanje iz kopije je posao od nekoliko sati kada kopija postoji i kada je ispravna. To je razlog zbog kog se kopije prave — ne zbog same kopije nego zbog tog sata.
Ručno čišćenje bez kopije je znatno duže i skuplje, i nikada nema pune sigurnosti da je sve uklonjeno.
Uz to dolazi ono što se ne naplaćuje ali košta: dani u kojima sajt ne radi, izgubljeni upiti, i vreme da se ukloni upozorenje iz pretrage. Kod sajta koji donosi upite to je obično veći trošak od samog čišćenja.
Zato jedna godina redovnog održavanja gotovo uvek košta manje od jednog upada — o obimu u tekstu o održavanju sajta.
Česta pitanja
Da li da platim otkup ako traže?
Ne. Nema garancije da će pristup biti vraćen, a plaćanje vas označava kao metu za dalje pokušaje. Vraćanje iz kopije je pouzdaniji put.
Koliko traje da upozorenje nestane iz pretrage?
Posle prijave obično nekoliko dana, pod uslovom da je sajt stvarno očišćen. Ako se zlonameran kod vrati, upozorenje se vraća i sledeća provera traje duže.
Da li hosting može da mi pomogne?
Kod dela hostinga postoji provera i čišćenje u okviru paketa. Vredi pitati pre nego što se plati zasebna usluga.
Šta ako nemam nijednu kopiju?
Tada ostaje ručno čišćenje ili izrada sajta iznova. To je i najjasniji razlog da se kopije postave odmah posle oporavka.
Da li se ovo dešava samo starim sajtovima?
Ne. Dešava se svakom sajtu koji se ne osvežava, bez obzira na starost. Nov sajt sa zastarelim dodatkom je jednako ranjiv.
Prvih sat vremena — redosled bez razmišljanja
Kada se to desi, najgore je improvizovati. Evo redosleda koji vredi imati zapisan negde gde se nađe i kada je gužva.
- Ne brišite ništa odmah. Zlonameran kod je i dokaz o tome kako se ušlo. Prvo napravite kopiju zatečenog stanja, pa tek onda čistite.
- Zabeležite vreme kada ste primetili i šta ste tačno videli. Ovo pomaže i kod čišćenja i kod hostinga.
- Obavestite hosting. Kod dela njih postoji provera koja odmah pokaže odakle je došlo.
- Promenite lozinke sa drugog uređaja, ne sa onog sa kog ste pristupali sajtu — ako je taj računar zaražen, nove lozinke odlaze istim putem.
- Tek onda vraćanje iz kopije ili čišćenje.
Ceo postupak ide brže ako se unapred zna gde su kopije, ko ima pristup hostingu i kome se javlja. To je deo koji se sprema dok je mirno, jer se u panici ne stiže smisliti.
Da se ne bi ponovilo, prođite kroz bezbednost WordPress sajta i zaštitu naloga. Redovne kopije i osvežavanja su opisani u tekstu o rezervnim kopijama.