Sajt mi je hakovan, šta da radim prvo i kojim redom
Postoji trenutak koji svaki vlasnik sajta pamti. Otvorite svoju stranicu i umesto nje vidite tuđi sadržaj, ili dobijete poruku od hostinga, ili vam neko javi da ga sajt vodi na čudno mesto. Prva misao je uvek ista, i uvek u panici: sajt mi je hakovan, šta da radim prvo.
Ukratko: nemojte panično brisati. Napravite bekap, promenite lozinke, utvrdite simptom, pa tek onda čistite redosledom - ne obrnuto.
Ako ste sada tu, pre svega jedna stvar. Nemojte odmah brisati sve što vidite. Panično brisanje je najčešća greška i skoro uvek pogorša situaciju, jer izgubite trag kako je napadač ušao, a ponekad obrišete i deo sajta koji je bio ispravan. U ovom tekstu vodimo vas kroz miran, proveren redosled koraka: šta uraditi u prvih sat vremena, kako da potvrdite šta se zapravo dešava, kojim redom da čistite, i u kom trenutku ima smisla prepustiti posao nekome ko to radi svaki dan.

Prvo udahnite, šteta retko ide brže od vas
Zvuči kao prazan savet, ali nije. Većina štete od hakovanja se ne dešava u prvih sat vremena, nego kroz dane dok problem stoji nerešen ili dok neko u žurbi napravi drugu grešku preko prve. Napadač je najčešće već uradio ono što je hteo. Vaš zadatak sada nije da reagujete u sekundi, nego da reagujete tačno.
Ono što jeste hitno je da zaustavite dalju štetu i sačuvate dokaze. Ono što nije hitno, i što ne treba raditi u panici, je nepovratno brisanje. Razlika između te dve stvari je cela poenta ovog teksta.
Pre nego što bilo šta dirnete, vredi da na papiru ili u beležnici zapišete šta tačno vidite. Koji je simptom, kada ste ga prvi put primetili, da li ga vide i drugi ili samo vi, sa kog uređaja. Ti podaci će vam kasnije pomoći i pri čišćenju i u razgovoru sa hostingom ili sa nekim ko vam pomaže.
Prvih sat vremena, šta uraditi po redu
Ovaj deo je redosled koji ima smisla za skoro svaki slučaj. Ne morate biti tehnički stručnjak da biste prošli kroz njega.
Napravite potpunu kopiju pre ijedne izmene
Ovo je najvažniji prvi korak i najčešće preskočen. Napravite kopiju svih fajlova i baze podataka, čak i ako je sajt zaražen. Ta kopija je vaša jedina zaštita ako tokom čišćenja nešto pođe naopako, i jedini izvor podataka ako kasnije bude trebalo da rekonstruišete šta se desilo i kada.
Kopiju je najlakše napraviti kroz panel hostinga, tako što zipujete ceo folder u kom se sajt nalazi, i posebno izvezete bazu podataka. Ako imate dodatak za bekap koji radi, i on je u redu, pod uslovom da bekap čuva negde van samog sajta, a ne na istom serveru koji je kompromitovan.

Promenite ključne lozinke
Odmah promenite lozinku za WordPress administraciju, za bazu podataka, za hosting panel i za FTP pristup. Ako je napadač ušao preko ukradene lozinke, ovo mu zatvara najlakši put nazad. Ako je ušao na drugi način, promena lozinki i dalje ne šteti.
Važna napomena: promena lozinke ne poništava uvek već otvorene sesije. Ako je napadač ukrao kolačić prijave, a ne samo lozinku, i dalje može biti unutra. Zato posle promene lozinki vredi poništiti sve aktivne sesije, o čemu ćemo malo kasnije.

Utvrdite šta tačno vidite
Različiti simptomi znače različite stvari, i vode ka različitom prvom potezu. Pogledajte koji je vaš slučaj:
- Sajt preusmerava posetioce na tuđe stranice, često samo sa mobilnog ili samo iz pretrage.
- U rezultatima pretrage se vidi spam na stranom jeziku, apoteke, kockanje.
- Google ili pretraživač prikazuje upozorenje da je sajt možda hakovan.
- Hosting je poslao obaveštenje o zloupotrebi ili je suspendovao nalog.
- Ne možete da se ulogujete u administraciju.
- Sajt je vidljivo izmenjen, ubačen sadržaj ili poruka napadača.
Zapišite koji je vaš, jer određuje šta je sledeći logičan korak. Neki od ovih slučajeva su hitniji od drugih, a neki traže poseban pristup.
Ako je moguće, privremeno ograničite pristup sajtu
Ako sajt aktivno šteti, preusmerava posetioce ili šalje spam, ima smisla privremeno ga staviti u režim održavanja ili ograničiti pristup dok tražite uzrok. Time zaustavljate dalju štetu reputaciji, koja ume da bude trajnija od same infekcije. Ovo nije obavezan korak za svaki slučaj, ali je pametan kad je šteta u toku.
Kako da potvrdite da je sajt zaista hakovan
Ponekad ono što liči na hakovanje nije hakovanje, nego greška u dodatku, isteklo domensko ime, problem na hostingu ili loše podešavanje. Pre nego što uđete u čišćenje, vredi potvrditi da se stvarno radi o upadu.
Proverite kako sajt izgleda strancu
Otvorite anoniman prozor pretraživača, da se rešite kolačića prijave. Zatim nemojte kucati adresu direktno, nego pretražite ime sajta na Google-u i kliknite na rezultat. Mnoge infekcije se aktiviraju samo kad posetilac dolazi iz pretrage, pa ovaj korak pokaže ono što direktno otvaranje ne pokaže. Ponovite isto sa telefona, jer velik deo napada cilja baš mobilne korisnike.

Pogledajte Google Search Console
Ako imate podešen Search Console, tamo se vidi da li je Google prijavio bezbednosni problem i koje je tačno vrste. To vam štedi mnogo vremena, jer često pokaže i konkretne adrese na kojima je problem pronađen. Ako Search Console nemate, ovo je trenutak da ga podesite, jer je to jedini kanal preko kog Google direktno komunicira sa vama o ovakvim stvarima.
Proverite listu korisnika i nedavne izmene
U administraciji otvorite listu svih korisnika i prođite je celu, ne samo prvih nekoliko. Nov administratorski nalog kreiran u vreme kad se niko od vas nije prijavljivao je jasan znak. Obratite pažnju na datum registracije. Isto tako, ako vidite fajlove izmenjene u vreme kad niko ništa nije dirao, to je trag.
Uradite besplatnu udaljenu proveru
Pre nego što uđete dublje, besplatna udaljena provera daje brzu sliku da li je nešto sumnjivo vidljivo spolja. Ona pregleda javno dostupan sadržaj sajta i traži poznate obrasce malvera, skrivene skripte i preusmeravanja. Ne zahteva nalog ni instalaciju i gotova je za manje od minuta. Njeno ograničenje je da vidi samo ono što je javno, pa čist rezultat nije dokaz da je sve u redu, ali sumnjiv rezultat brzo potvrdi problem.
Kojim redom se čisti hakovan sajt
Kad ste potvrdili da je sajt hakovan i još uvek treba jasan plan čišćenja, evo redosleda koji smanjuje šansu da nešto pokvarite ili propustite.
Prvo utvrdite obim
Proverite koliko je zapravo zahvaćeno. Da li je u pitanju jedna stranica ili ceo sajt. Da li se dešava svim posetiocima ili samo delu. Da li je pogođen samo ovaj sajt ili i drugi sajtovi na istom hosting nalogu. Ova slika vam govori da li tražite jedan ubačen red koda ili nešto što je ušlo dublje i raširilo se.
Nađite i uklonite maliciozni kod
Maliciozni kod se najčešće krije na nekoliko mesta. U temi, obično u fajlu koji se učitava na svakoj stranici. U bazi podataka, u poljima koja se učitavaju pri svakom zahtevu. U uploads folderu, kao PHP fajl koji tamo nema šta da traži. U mu-plugins folderu, koji WordPress učitava automatski a ne prikazuje kao običan dodatak. I u htaccess fajlu, kao pravila za preusmeravanje.
Kod retko izgleda čitljivo. Češće je to dugačak niz slova i brojeva bez ijedne prepoznatljive reči, koji se dekodira tek u trenutku izvršavanja. Ako otvorite fajl i vidite takav red koji se proteže preko celog ekrana, to je gotovo sigurno on. Pre nego što ga obrišete, pogledajte šta piše, jer datum i sadržaj često kažu kada je postavljen i kroz koju rupu.

Zatvorite ulaz kroz koji je napadač ušao
Ovo je korak koji se najčešće preskoči, a od njega zavisi da li se problem vraća. Uklanjanje koda bez zatvaranja ulaza kupuje vam nekoliko dana. Zatvaranje ulaza znači ažuriranje svega što je zastarelo, uklanjanje dodataka i tema koje ne koristite, i proveru da nije korišćena slaba lozinka. Većina napada ulazi kroz tačno te tri rupe.
Proverite šta je ostavljeno kao rezerva
Napadači po pravilu ostavljaju više od jednog ulaza, jer računaju da će prvi biti pronađen. To može biti dodatni administratorski nalog sa nevinim imenom, backdoor fajl na neuobičajenom mestu, ili zakazan zadatak koji ponovo postavlja kod nekoliko dana kasnije. Ako to ne proverite, infekcija se vraća a vi nemate objašnjenje zašto.
Poništite sve sesije i rotirajte bezbednosne ključeve
Na kraju, poništite sve aktivne sesije i promenite bezbednosne ključeve koje WordPress koristi za kolačiće prijave. Time izbacujete napadača čak i ako je ranije ukrao kolačić, ne samo lozinku. Ovo je poslednji korak koji zatvara vrata za sobom.
Zašto se baš vaš sajt našao na meti
Skoro svako ko prvi put doživi hakovanje postavi isto pitanje: zašto ja. Sajt ima malu posetu, ne prodaje ništa skupo, nema poverljive podatke. Odgovor je da napadaču najčešće nije ni bilo stalo do vas lično.
Ogroman deo napada na WordPress sajtove nije ciljan. Automatizovane skripte pretražuju internet i redom proveravaju sajtove tražeći poznate slabosti. Kad nađu jednu, iskoriste je i idu dalje na sledeći sajt na listi. Njima nije bitno šta vaš sajt radi, bitno im je šta vaš server može da uradi za njih. A server može da šalje spam sa adrese koja ima čistu istoriju, da hostuje lažnu stranicu za krađu podataka, da preusmerava posetioce ka reklamama, ili prosto da bude jedan od stotina zaraženih sajtova koji zajedno rade nešto veće.
Zbog toga se ne treba osećati posebno ciljanim, ali se ni ne treba tešiti da je to bila slučajnost koja se neće ponoviti. Ista slabost koja je propustila prvu skriptu propustiće i sledeću, ako se ne zatvori. Zato je deo o sprečavanju na kraju ovog teksta jednako važan kao i samo čišćenje.
Koliko dugo traje da se sajt vrati u normalu
Ovo je pitanje koje svi postave, a odgovor pošteno zavisi od nekoliko stvari. Samo čišćenje, kad se zna gde se gleda, često je posao od nekoliko sati do dan ili dva. Ali povratak u potpuno normalno stanje je više od uklanjanja koda.
Ako je Google prikazao upozorenje, njegovo uklanjanje traži poseban zahtev za ponovnu proveru posle čišćenja, i Google odgovara u roku od nekoliko dana do dve nedelje. Ako je domen završio na crnim listama za poštu, oporavak reputacije je postepen i traži da neko vreme šaljete normalan obim pošte. Ako je sajt pao na pozicijama u pretrazi zbog spam sadržaja, i to se vraća postepeno kroz nedelje, ne odjednom.
Zato je najbrži put nazad u normalu da se posao odradi temeljno iz prvog puta, umesto na brzinu, jer svaki propust produžava upravo ove sporije procese oporavka. Bolje je uzeti dodatni dan na čišćenje nego mesec dana na ispravljanje posledica brzine.
Poseban slučaj, ne mogu da se ulogujem
Ako je vaš simptom to što ne možete da uđete u administraciju, redosled je malo drugačiji. To može biti promenjena lozinka, zaključan pristup, maliciozni mu-plugin, oštećen htaccess ili preusmerena login stranica.
Ne resetujte hosting nalog naslepo. Prvo pristupite fajlovima preko panela hostinga. Preimenujte sumnjive drop-in fajlove ako ih ima. Proverite htaccess. Tek onda, ako mora, resetujte lozinku direktno u bazi. Naglo resetovanje celog naloga ume da izbriše i tragove koji su vam potrebni da shvatite šta se desilo.
Šta ne raditi ni u kom slučaju
Ovih pet grešaka se prave najčešće, i svaka od njih ume da pretvori rešiv problem u mnogo veći.
Ne brišite sve što deluje sumnjivo
Ako obrišete fajlove pre nego što ste videli šta u njima piše, izgubili ste jedini trag kako je napadač ušao. Bez toga rešavate posledicu i čekate da se ponovi. Uvek prvo pogledajte, pa tek onda uklanjajte.
Ne radite ponovnu instalaciju preko postojeće
Zvuči logično, ali ne rešava ništa u većini slučajeva. Ponovna instalacija menja fajlove jezgra, a maliciozni kod se skoro uvek nalazi u temi, dodacima, uploads folderu ili bazi. To su tačno mesta koja ponovna instalacija ne dira.
Ne vraćajte stari bekap naslepo
Vraćanje bekapa pomaže, ali samo ako znate kada je infekcija počela. Ako vratite kopiju od pre nedelju dana, a kod je ubačen pre mesec dana, vratili ste zaražen sajt i još izgubili sav sadržaj iz međuvremena. Prvo utvrdite vremensku liniju, pa onda odlučite o bekapu.
Ne instalirajte gomilu bezbednosnih dodataka odjednom
Pet dodataka koji rade isti posao ne znači veću zaštitu. Znači sporiji sajt, moguće sukobe i pet mesta za praćenje. Osim toga, nijedan bezbednosni dodatak instaliran posle upada neće ukloniti kod koji je već tu.
Ne menjajte hosting u prvom trenutku
Selidba zaraženog sajta na novi server samo prenosi problem, a vi ste u međuvremenu izgubili logove koji su vam bili najkorisniji trag. Prvo očistite, pa onda razmišljajte o selidbi ako je uopšte potrebna.
Kada ima smisla pozvati pomoć
Nije svaki slučaj za samostalno rešavanje, i to je u redu. Vredi razmisliti o pozivu pomoći ako se nađete u nekoj od ovih situacija.
Ako ne možete da uđete u sajt uopšte, jer vam je pristup oduzet. Ako je nalog kod hostinga suspendovan, pa sat kucka a vi gubite i posetioce i reputaciju. Ako ste već jednom očistili a infekcija se vratila, što znači da je backdoor ostao neotkriven. Ako je u pitanju prodavnica ili sajt od kog zavisi prihod, gde svaki sat nedostupnosti košta. Ili prosto, ako vam ovaj tekst govori da je posao veći nego što želite sami da radite.
Nema srama u tome. Čišćenje hakovanog sajta je posao koji se radi brže i sigurnije kad ga radi neko ko ga radi svaki dan i zna gde da gleda, jer je iste obrasce već video stotinu puta.
Ima i praktičan razlog zašto stručna pomoć često ispadne jeftinija nego samostalno rešavanje, iako na prvi pogled deluje obrnuto. Vreme koje potrošite tražeći fajlove, čitajući suprotne savete na forumima i strahujući da niste nešto propustili, obično vredi više od cene čišćenja. Ako u tom procesu napravite grešku preko postojeće, na primer obrišete pogrešan fajl ili vratite zaražen bekap, popravka te greške dodaje se na originalni problem. Trezvena procena sopstvenog vremena i znanja je deo odluke, ne slabost.
Kako da sprečite da se ovo ponovi
Kad prođe prva panika i sajt ponovo radi, dolazi deo koji većina preskoči, a koji je najvažniji za mir u budućnosti. Sajt koji je jednom bio hakovan ima veće šanse da bude ponovo napadnut, delom zato što je već na listama automatizovanih skripti, delom zato što originalni uzrok često ostane nerešen.
Tri stvari prave najveću razliku. Redovno ažuriranje jezgra, teme i svih dodataka, jer većina napada cilja ranjivosti koje su odavno zakrpljene, samo na sajtovima gde niko nije primenio zakrpu. Jake i jedinstvene lozinke uz dvofaktorsku prijavu, čime se zatvara drugi najčešći ulaz. I redovan automatski nadzor, koji hvata izmene koje niko nije napravio namerno, po rasporedu, a ne kad se setite.

Poslednja tačka je najvažnija baš zbog svega opisanog gore. Ako se maliciozni kod trudi da bude nevidljiv vlasniku sajta, jedina pouzdana odbrana je nešto što gleda umesto vas, redovno i automatski, i uporedi trenutno stanje sa prethodnim.
Prvi korak koji možete uraditi odmah
Ako ste stigli dovde i još niste sigurni na čemu ste, prvi korak ne mora ništa da košta. Besplatna brza analiza pregleda javno dostupan sadržaj vašeg sajta i traži poznate obrasce malvera, skrivene skripte i sumnjive redirekcije. Bez naloga, bez instalacije, obično ispod minuta.
Vredi znati njeno ograničenje. Ta provera vidi samo ono što je javno dostupno preko interneta. Ako je kod sakriven u fajlu ili bazi, ona ga neće naći. Čist rezultat je dobar znak, ali za pouzdan odgovor potreban je pregled samih fajlova i baze na sajtu.
Ako je situacija ozbiljna, ako ne možete u sajt, ako je nalog suspendovan, ili ako prosto ne želite sami da se time bavite, javite nam se. Pošaljite adresu sajta i kratak opis šta se dešava. Hitni slučajevi idu pre redovnih zahteva, jer kod hakovanog sajta svaki dan nosi i izgubljene posetioce i dalju štetu.