Vratio sam sajt iz bekapa posle hakovanja: da li je to dovoljno?
Ovaj vodič obrađuje temu sajta iz bekapa posle od potvrde problema do čišćenja i prevencije.
Sajt je hakovan. Posetioci se preusmeravaju na tuđe stranice, Google prikazuje upozorenje, ili ste pronašli nepoznatog administratora. Srećom, imate bekap. Hosting ga pravi svakog dana, ili ga pravi dodatak koji ste instalirali. Kliknete na „Vrati“, sačekate nekoliko minuta i sajt izgleda kao pre nedelju dana. Problem rešen.
Nekoliko dana kasnije sve se ponovi. Isto preusmeravanje, ista upozorenja, možda i gore nego prvi put. U međuvremenu je izgubljen i sadržaj nastao posle datuma bekapa.
Ovo je jedna od najčešćih situacija sa kojima nam se vlasnici javljaju, i obično dolazi uz isto pitanje: „Kako je moguće, vratio sam sajt na stanje od pre napada?“ Bekap je izuzetno važan i bez njega bi mnogi sajtovi bili izgubljeni. Ali vraćanje bekapa i čišćenje hakovanog sajta nisu ista stvar. U ovom tekstu objašnjavamo zašto se infekcija često vrati posle vraćanja bekapa, kada bekap zaista pomaže, kako izabrati pravi, i kako ga vratiti tako da sajt posle toga ostane čist.
Zašto vraćanje bekapa često ne rešava problem

Kod teme sajta iz bekapa posle redosled koraka je važniji od žurbe.
Ne znate kada je infekcija počela
Kada primetite da je sajt hakovan, to najčešće nije dan kada je hakovan. Napadači često uđu na sajt, postave backdoor i zatim čekaju. Infekcija može da postoji nedeljama ili mesecima pre nego što postane vidljiva: pre nego što se pojavi spam u Google-u, preusmeravanje ili upozorenje.
Razlog je jednostavan: napadaču nije u interesu da ga primetite. Tihi backdoor koji mesecima čeka vredniji mu je od sajta koji odmah počne da šalje spam i bude očišćen za dan. Ako vratite bekap od pre tri dana, a napadač je ušao pre tri nedelje, bekap već sadrži backdoor. Vratili ste sajt u stanje koje izgleda čisto, ali napadač i dalje ima ulaz, i samo treba da ga ponovo iskoristi.
Vraćate i istu rupu
Čak i ako je bekap zaista iz vremena pre upada, on sadrži iste verzije dodataka, teme i WordPress-a koje su postojale tada. Ako je napadač ušao kroz ranjiv dodatak, vraćanjem bekapa vraćate i taj ranjiv dodatak. Automatizovani alat koji ga je pronašao prvi put pronaći će ga ponovo, često u roku od nekoliko dana.
Ukradene lozinke i dalje važe
Ako je napadač ukrao lozinku administratora, FTP-a ili hosting naloga, bekap ne menja ništa. Lozinke u bazi su iste kao pre, a lozinke za hosting i FTP bekap uopšte ne dira. Napadač se jednostavno prijavi ponovo.
Bekap ne pokriva sve
Tipičan bekap sadrži fajlove sajta i bazu. Ne sadrži, međutim, sve ono što napadač može da izmeni:
- zakazane zadatke (cron) na nivou servera, koji mogu ponovo da preuzmu i postave zlonameran kod,
- druge sajtove i foldere na istom hosting nalogu, iz kojih infekcija može ponovo da se proširi,
- podešavanja hosting naloga, dodatne FTP naloge i SSH ključeve,
- DNS zapise i poddomene,
- spoljne servise, kao što su Google Tag Manager ili nalozi za e-mail.
Vraćanje „preko“ postojećih fajlova
Mnogi alati za vraćanje, uključujući i neke hosting panele, samo prepisuju fajlove iz bekapa preko postojećih. Fajlovi koje je napadač dodao, a kojih nema u bekapu, ostaju na serveru. Sajt tada izgleda kao da je vraćen, ali backdoor fajl u folderu uploads i dalje postoji. Ovo je jedan od najčešćih razloga zbog kojih se infekcija vrati odmah posle vraćanja.
Google i posetioci ne vide razliku odmah
Čak i kada je vraćanje uspešno i sajt je zaista čist, spam stranice koje je napadač napravio mogu ostati u Google-u nedeljama, a upozorenje u pregledaču ostaje dok Google ponovo ne pregleda sajt. Vlasnik tada često misli da vraćanje nije uspelo, pa ga ponavlja sa još starijim bekapom i gubi sadržaj bez potrebe. Kako se ovaj deo rešava, opisali smo u tekstu Sajt je očišćen, ali Google i dalje prikazuje spam stranice.
Kada bekap zaista pomaže

Ništa od ovoga ne znači da je bekap bez vrednosti. Naprotiv, bekap je jedan od najkorisnijih alata u čišćenju, samo ga treba koristiti na pravi način.
- Kao izvor čistog sadržaja. Tekstovi, stranice, slike i podešavanja iz starijeg bekapa mogu da posluže da se ponovo izgradi čist sajt, bez oslanjanja na zaražene fajlove.
- Za poređenje. Poređenjem zaraženog sajta sa bekapom lako se vidi koji su fajlovi izmenjeni ili dodati, i od kada.
- Kao sigurnosna mreža. Pre bilo kakvog čišćenja, bekap trenutnog stanja omogućava da se vratite ako nešto pođe po zlu.
- Kao brzo rešenje, ali kao deo celog postupka. Vraćanje proverenog bekapa, uz ažuriranje svega, promenu svih pristupa i zatvaranje ulaza, može biti najbrži put do čistog sajta.
Kako da izaberete pravi bekap
Utvrdite kada je infekcija verovatno počela
Nekoliko tragova pomaže da se proceni početak:
- Datumi izmena fajlova. Najstariji datum izmene sumnjivog fajla često je najbliži trenutku upada. Napadači ponekad menjaju datume da bi fajl izgledao staro, pa ovo nije potpuno pouzdano, ali je dobar početak.
- Datum registracije nepoznatih administratora, vidljiv u listi korisnika ili u bazi.
- Prvi spam ili upozorenje u Search Console-u, i nagli skok broja indeksiranih stranica.
- Logovi hostinga, ako postoje za taj period: sumnjive prijave, zahtevi ka neobičnim fajlovima.
- Upozorenja bezbednosnih dodataka koja ste možda ranije ignorisali.
Izaberite bekap stariji od tog trenutka, uz rezervu
Pravilo je jednostavno: bekap treba da bude stariji od najranijeg traga infekcije, sa određenom rezervom. Problem je što stariji bekap znači i više izgubljenog sadržaja: novi tekstovi, izmene stranica, a kod web prodavnica i porudžbine i korisnici. Zbog toga se u praksi često kombinuje: fajlovi i sistem se vraćaju iz starijeg, proverenog bekapa, a noviji sadržaj se pažljivo prenosi iz novije baze, kao podaci, a ne kao kod.
Proverite bekap pre vraćanja
Pre nego što bekap vratite na živi sajt, proverite ga. Idealno je da se vrati na probnu (staging) lokaciju i skenira, ili bar da se fajlovi iz arhive pregledaju na poznate znakove infekcije: PHP fajlove u folderu uploads, zamaskiran kod, nepoznate fajlove u jezgru. Kako izgleda backdoor, opisali smo u tekstu Kako pronaći backdoor na WordPress sajtu.
Kako ispravno vratiti sajt iz bekapa

1. Sačuvajte trenutno, zaraženo stanje
Napravite kopiju trenutnih fajlova i baze pre vraćanja. Ona je potrebna za analizu kako je napadač ušao, a i da biste mogli da preuzmete sadržaj koji je nastao posle bekapa.
2. Obrišite, pa vratite
Ne vraćajte bekap preko postojećih fajlova. Prvo uklonite sve fajlove sajta sa servera, pa zatim vratite fajlove iz bekapa u prazan folder. Tako na serveru ne ostaje nijedan fajl koji je napadač dodao. Ako hosting ima dugme za vraćanje, proverite kod podrške da li briše fajlove kojih nema u bekapu, ili ne.
3. Vratite bazu posebno i proverite je
Bazu vratite iz istog bekapa, pa pregledajte korisnike i opcije. Proverite listu administratora, opcije sa nepoznatim ili zamaskiranim vrednostima i sadržaj stranica i članaka po oznaci <script.
4. Odmah sve ažurirajte
Pre nego što sajt vratite posetiocima, ažurirajte WordPress, sve teme i dodatke na najnovije verzije. Uklonite dodatke i teme koje ne koristite, i sve piratske verzije zamenite originalnim. O rizicima piratskog softvera pišemo u tekstu Nulled WordPress teme i dodaci.
5. Promenite sve pristupe
Promenite lozinke za hosting, FTP/SFTP, bazu i sve administratore, i nove sigurnosne ključeve (salts) u fajlu wp-config.php. Proverite da li na hosting nalogu postoje FTP nalozi ili SSH ključevi koje ne prepoznajete i uklonite ih.
6. Proverite server i ostatak naloga
Pregledajte zakazane zadatke (cron) u kontrolnom panelu hostinga, ostale sajtove i foldere na istom nalogu i DNS zapise domena. Stare i napuštene instalacije je najbolje ukloniti.
7. Vratite sadržaj nastao posle bekapa
Ako su posle datuma bekapa objavljeni novi tekstovi, primljene porudžbine ili registrovani korisnici, prenesite ih iz sačuvane kopije baze. Ovo je osetljiv korak: prenose se samo podaci (tekstovi, porudžbine, kupci), a ne opcije, podešavanja dodataka ili bilo šta što može da sadrži kod. Kod WooCommerce prodavnica ovo je posebno važno, jer se porudžbine ne smeju izgubiti. Kako izgleda čišćenje prodavnice u praksi, opisali smo u tekstu Hakovana WooCommerce prodavnica: kako smo je očistili.
8. Proverite i nadgledajte
Posle vraćanja pokrenite skeniranje bezbednosnim dodatkom, zamolite hosting da skenira nalog i pokrenite besplatnu proveru sajta spolja. Zatim proveru ponovite za nekoliko dana i za nedelju dana. Ako se infekcija vrati, to znači da ulaz nije zatvoren, kao što je objašnjeno u tekstu Infekcija se vraća posle čišćenja.
Bekap ili čišćenje postojećeg sajta: kada šta izabrati

Ponovite ovu proveru ako se sajta iz bekapa posle vrati posle delimičnog čišćenja.
Ne postoji jedan odgovor za sve slučajeve. Evo kako obično odlučujemo:
| Situacija | Bolji izbor |
|---|---|
| Postoji proveren bekap stariji od upada, a posle njega je malo novog sadržaja | Vraćanje bekapa uz ceo postupak iznad |
| Bekap postoji, ali ne znate kada je upad počeo | Čišćenje postojećeg sajta, bekap koristite za poređenje |
| Web prodavnica sa mnogo porudžbina posle datuma bekapa | Čišćenje postojećeg sajta ili kombinacija uz pažljiv prenos podataka |
| Svi dostupni bekapi su već zaraženi | Čišćenje postojećeg sajta |
| Sajt je teško oštećen, a sadržaja je malo | Nova, čista instalacija i ručni prenos sadržaja |
U svakom od ovih slučajeva važe isti koraci posle: ažuriranje svega, promena svih pristupa, zatvaranje ulaza i nadzor. Razlika je samo u tome odakle dolaze čisti fajlovi.
Šta ako nemate nijedan čist bekap
Vlasnici često potcenjuju temu sajta iz bekapa posle dok Search Console ili klijenti ne podignu uzbunu.
Ovo se dešava češće nego što biste pomislili: bekapi se čuvaju samo sedam dana, a infekcija traje mesec, ili se bekapi uopšte nisu pravili. Sajt se i dalje može očistiti, samo drugim putem.
- Jezgro, teme i dodaci se preuzimaju sveži iz zvaničnih izvora, pa za njih bekap nije ni potreban.
- Folder
uploadsse pregleda i iz njega se uklanjaju svi fajlovi koji nisu slike i dokumenti, posebno PHP fajlovi. - Baza se pregleda i čisti na mestu: korisnici, opcije, sadržaj.
- Prilagođeni kod (child tema, sopstveni dodaci) pregleda se ručno, fajl po fajl.
Ovaj postupak traje duže od vraćanja bekapa, ali daje isti rezultat: čist sajt. Posle toga je pravi trenutak da se podesi bekap koji će sledeći put zaista pomoći. Kako izgleda ceo postupak i kada ima smisla uraditi ga sam, pročitajte u tekstu DIY čišćenje ili profesionalac.
Česte greške pri vraćanju bekapa

- Vraćanje najnovijeg bekapa bez provere kada je infekcija počela.
- Vraćanje preko postojećih fajlova, pa na serveru ostanu fajlovi koje je dodao napadač.
- Vraćanje bez ažuriranja, pa ranjivi dodatak ostane na sajtu.
- Vraćanje bez promene lozinki, pa napadač uđe sa istim podacima.
- Vraćanje samo fajlova ili samo baze, pa zaraženi deo ostane.
- Brisanje zaraženog stanja bez kopije, pa se ne može utvrditi kako je napadač ušao.
- Zaboravljene porudžbine i sadržaj nastali posle datuma bekapa.
Kako praviti bekape koji zaista pomažu

Bekap koji imate u trenutku hakovanja je onoliko dobar koliko je dobro bio podešen pre toga. Nekoliko pravila:
- Čuvajte bekape van servera. Bekap na istom hosting nalogu može biti zaražen ili obrisan zajedno sa sajtom. Koristite spoljno skladište (cloud, poseban server).
- Čuvajte više verzija, duže. Pošto infekcija može da postoji nedeljama pre nego što je primetite, sedam dana bekapa često nije dovoljno. Preporučujemo da imate bar 30 dana unazad, a za važne sajtove i nekoliko meseci, na primer kroz dnevne, nedeljne i mesečne kopije.
- Pravite bekap i fajlova i baze. Bekap samo baze ne vraća fajlove, a bekap samo fajlova ne vraća sadržaj.
- Ne čuvajte bekape u javnom folderu sajta. Arhiva sajta ili izvoz baze u javnom folderu može da preuzme svako. Ovo je čest nalaz bezbednosnih skenera, o čemu pišemo u tekstu Wordfence ili hosting prijavio malver.
- Povremeno testirajte vraćanje. Bekap koji nikada niste probali da vratite možda ne radi. Probno vraćanje na test lokaciju jednom u nekoliko meseci otkriva probleme dok još nisu hitni.
- Pravilo 3-2-1 je dobra polazna tačka: tri kopije podataka, na dva različita medija, od kojih je jedna van lokacije.
- Zaštitite pristup bekapima. Nalog za spoljno skladište treba da ima jaku lozinku i dvostepenu autentifikaciju. Napadač koji dođe do bekapa može da ih obriše ili da iz njih izvuče podatke.
Kontrolna lista posle vraćanja bekapa
- ☐ Izabrani bekap je stariji od najranijeg traga infekcije.
- ☐ Bekap je proveren pre vraćanja.
- ☐ Fajlovi su vraćeni u prazan folder, a ne preko postojećih.
- ☐ Baza je vraćena i pregledana (administratori, opcije, skripte).
- ☐ WordPress, teme i dodaci su ažurirani, neaktivni i piratski uklonjeni.
- ☐ Sve lozinke i sigurnosni ključevi su promenjeni, nepoznati FTP nalozi i SSH ključevi uklonjeni.
- ☐ Cron zadaci, ostali sajtovi na nalogu i DNS zapisi su provereni.
- ☐ Sadržaj i porudžbine nastali posle bekapa su vraćeni kao podaci.
- ☐ Skeniranje dodatkom, hostingom i spoljna provera su čisti.
- ☐ Ponovna provera je zakazana za nekoliko dana i za nedelju dana.
Sledeći korak

Ako ste vratili sajt iz bekapa, a niste sigurni da je čist, ili se problem već vratio, pokrenite besplatnu proveru sajta. Ako želite da neko preuzme ceo postupak, od izbora i provere bekapa, preko čišćenja i zatvaranja ulaza, do vraćanja izgubljenih porudžbina, javite nam se ili pozovite 065 402 5000. Čišćenje kreće od 100 €, a paket održavanja sa redovnim bekapima i nadzorom od 30 € mesečno.