Znaci da je sajt hakovan na ekranu laptopa
← Blog

Znaci da je sajt hakovan: 18 signala i brza provera

Ivan Pantić

Ukratko: znaci da je sajt hakovan danas retko izgledaju kao crna stranica sa porukom. Tražite obrazac sitnih signala u pregledaču, Google pretrazi, WordPress adminu i na hostingu, pa za petnaestak minuta uradite proveru bez ikakvih izmena na sajtu.

Većina ljudi zamišlja hakovan sajt kao crnu stranicu sa lobanjom i porukom neke grupe. To se i dalje dešava, ali je danas retkost. Napadač koji vam obori sajt gubi ono što mu je najvrednije - pristup. Onaj koji vas ne dira, a tiho koristi vaš server za slanje spama, prodaju lekova preko skrivenih stranica ili preusmeravanje mobilnih posetilaca, može da zarađuje mesecima.

Zato se hakovanje danas mnogo češće prepoznaje po sitnim, dosadnim detaljima nego po dramatičnoj poruci: račun za hosting koji je odjednom veći, mejl koji ne stiže do klijenta, saobraćaj koji polako pada, stranica koja se učitava sekundu duže. Svaki od tih signala pojedinačno ima i bezazlena objašnjenja. Problem je što ih vlasnici obično posmatraju pojedinačno, pa im promakne obrazac.

U ovom tekstu prolazimo kroz signale grupisane po tome gde ih primećujete: u pregledaču, u Google pretrazi, u WordPress administraciji, na hostingu i preko drugih ljudi. Na kraju sledi kratka provera koju možete uraditi sami za petnaestak minuta i spisak stvari koje se često pomešaju sa hakovanjem, a to nisu.

Zašto se hakovanje retko primeti odmah

Čist ekran pored telefona koji prikazuje drugačiju stranicu

Prosečan vlasnik sajta otvori svoju stranicu nekoliko puta nedeljno, uvek sa istog računara, uvek ulogovan, uvek preko istog pregledača sa keširanim sadržajem. To je najgori mogući uslov za otkrivanje infekcije, jer je moderni malver napisan tako da vas zaobiđe.

Zlonamerni kod na WordPress sajtu vrlo često sadrži uslove: prikaži se samo posetiocima koji dolaze sa Google pretrage, samo na mobilnim uređajima, samo jednom po IP adresi, i nikada ulogovanom administratoru. Neki uzorci se aktiviraju samo noću ili vikendom. Drugi se prikazuju isključivo Googleovom robotu, pa vaš sajt izgleda savršeno normalno vama, a u rezultatima pretrage nudi sadržaj koji nikada niste napisali.

Dodajte na to da se prosečan proboj ne desi kroz provaljivanje lozinke nego kroz ranjivost u nekom dodatku koji niste ažurirali osam meseci, i dobijate situaciju u kojoj infekcija u proseku tiho radi nedeljama pre nego što je iko primeti. Zato ima smisla znati šta se traži.

Signali koje vidite u pregledaču

Ovo su znaci koje ćete uočiti kao običan posetilac - pod uslovom da sajt pogledate onako kako ga gleda posetilac, a ne kao ulogovani administrator. Mnogi prvi znaci da je sajt hakovan baš ovde i krenu, pre bilo kakvog upozorenja u pretrazi.

Sporo učitavanje stranice sa nametnutim oglasima

1. Sajt se učitava osetno sporije nego ranije

Zaražen sajt često izvršava dodatni kod na svakom učitavanju: proverava odakle dolazi posetilac, poziva udaljeni server po nove instrukcije, upisuje podatke u bazu. Ako se stranica koja se ranije otvarala za sekundu sada otvara za četiri, a ništa niste menjali, to je vredno provere.

Sporost sama po sebi nije dokaz - može da bude i loš hosting, prevelike slike ili novi dodatak. Ali sporost koja je nastupila naglo, bez ijedne vaše izmene, spada u signale.

2. Preusmeravanje koje se dešava samo ponekad

Ovo je jedan od najčešćih razloga zbog kog nas ljudi zovu. Klijent javi da ga je sajt odveo na neku kladionicu ili stranicu sa nagradnom igrom, vi otvorite sajt i sve je uredno. Pomislite da je posetilac imao virus na telefonu.

Nepostojanost je ovde upravo dokaz, a ne opovrgavanje. Malver za preusmeravanje gotovo uvek radi uslovno i pamti posetioca, tako da se drugi put neće aktivirati. Ako imate dve nezavisne prijave, tretirajte to ozbiljno. Detaljno smo taj scenario razložili u tekstu o tome zašto sajt preusmerava na drugi sajt.

3. Reklame, baneri i iskačući prozori kojih nema u vašoj temi

Ako se na sajtu pojavljuju oglasi, a vi ne prikazujete oglase, neko ih je ubacio. Isto važi za iskačuće prozore koji traže dozvolu za obaveštenja, lažna upozorenja „vaš uređaj je zaražen" i dugmad za preuzimanje nekog programa.

4. Beli ekran, čudni znaci na vrhu ili dnu stranice

Loše napisan zlonamerni kod često ostavlja tragove: red nasumičnih slova i brojeva na vrhu stranice, poruku o grešci sa putanjom do fajla koji ne prepoznajete, ili prazan beli ekran na pojedinim stranicama. Naročito je indikativno ako se u izvornom kodu stranice (desni klik, prikaži izvor) vidi dugačak niz kodiranog teksta u jednoj liniji, često sa eval(, base64_decode( ili sličnim pozivom.

5. Sadržaj koji vi ne vidite, a drugi vide

Vredi otvoriti sajt sa telefona koji nije na vašem Wi-Fi-ju, u anonimnom prozoru i bez prijave. Iznenađujuće često se tako otkrije da sajt drugačije izgleda spolja.

Signali koje vidite u Google pretrazi

Google vidi vaš sajt mnogo češće i temeljnije nego vi. Zato se dobar deo infekcija prvo manifestuje u rezultatima pretrage. Ako ovde vidite tuđi jezik ili stranice kojih nema, to su čvrsti znaci da je sajt hakovan, čak i kad vama početna izgleda uredno.

Rezultati pretrage sa tuđim naslovima i upozorenjem

6. Opis sajta na jeziku koji nikada niste koristili

Ukucajte u Google site:vasdomen.rs i pogledajte šta se prikazuje. Ako vidite naslove i opise na japanskom, kineskom, ruskom ili engleskom jeziku sa nazivima lekova, to je klasičan SEO spam. Napadač koristi autoritet vašeg domena da rangira svoje stranice.

7. Indeksirane stranice kojih nema u vašem sajtu

Ista site: pretraga otkriva i adrese tipa /wp-content/uploads/2019/cheap-meds/ ili /shop/nike-outlet/. Ako broj indeksiranih stranica značajno premašuje broj stranica koje ste zaista objavili, na sajtu postoji generisani sadržaj.

8. Google upozorenje „Ovaj sajt može da bude hakovan"

Kada Google detektuje kompromitovan sadržaj, ispod naslova u rezultatima dodaje upozorenje. U težim slučajevima, kada se detektuje malver koji ugrožava posetioce, umesto sajta se otvara crvena strana sa upozorenjem. Tada gubite gotovo sav saobraćaj dok se problem ne reši i ne zatraži revizija.

9. Nagli i neobjašnjivi pad organskog saobraćaja

Ako u Google Search Console-u ili analitici vidite da su klikovi pali za 40 ili 60 odsto u roku od nekoliko dana, a niste menjali ništa na sajtu, proverite karticu sa bezbednosnim problemima u Search Console-u. To je najbrža potvrda ili demanti.

Signali unutar WordPress administracije

Ovde tražite tragove koje je napadač ostavio da bi zadržao pristup. Njih je najlakše proveriti i najteže objasniti nekim drugim uzrokom. Nepoznat administrator ili PHP u uploads folderu su među najjasnijim znacima da je sajt hakovan.

Lista korisnika sa nepoznatim administratorom u panelu

10. Administratorski nalog koji niste napravili

Otvorite Korisnici, Svi korisnici i filtrirajte po ulozi administratora. Svaki nalog koji ne prepoznajete, naročito sa nasumičnim imenom ili mejlom na nekom nepoznatom domenu, ozbiljan je znak. Obratite pažnju i na datum registracije - ako se poklapa sa periodom kada su počeli problemi, imate vremensku tačku.

Postoji i podmuklija varijanta: napadač ne pravi novi nalog, nego postojećem pretplatniku tiho podigne ulogu na administratora. Zato pregledajte celu listu, ne samo poslednje registrovane.

11. Dodatak ili tema koje niste instalirali

Naročito ako je dodatak neaktivan, bez opisa, bez autora i bez linka ka stranici projekta. Napadači često ostavljaju „legitiman" dodatak kao rezervni ulaz jer znaju da vlasnici retko brišu neaktivne dodatke.

Isto važi i za teme: ako u listi tema stoji nešto što ne prepoznajete, a jeste bilo aktivno u nekom trenutku, to je vredno provere.

12. Fajlovi izmenjeni u vreme kada niko nije radio na sajtu

Preko File Managera na hostingu ili FTP-a sortirajte fajlove po datumu izmene. Ako su index.php, wp-config.php, .htaccess ili fajlovi teme izmenjeni u tri ujutru pre dve nedelje, a vi tada sigurno niste dirali sajt, to je jedan od najpouzdanijih signala uopšte.

Posebno pogledajte folder wp-content/uploads. Tamo bi trebalo da budu samo slike i dokumenti. Svaki .php fajl u tom folderu je gotovo sigurno problem. O tome kako se ti fajlovi pronalaze i uklanjaju detaljno pišemo u vodiču kako pronaći backdoor na WordPress sajtu.

13. Ne možete da se ulogujete ili vas sistem izbacuje

Ako vaša lozinka odjednom ne radi, a niste je menjali, moguće je da ju je neko promenio. Ako vas sistem izbacuje nakon prijave ili vam se administracija otvara sa greškama, u igri može biti kod koji blokira pristup pravom vlasniku. Ni ovo nije samo po sebi dokaz - isti simptom pravi i konflikt dodataka ili istekla sesija - ali u kombinaciji sa ostalim znacima dobija težinu.

14. Ažuriranja koja „ne prolaze" ili se vraćaju

Ako ažurirate WordPress ili dodatak, a sledeći put opet vidite staru verziju, ili ako se obrisani fajl posle nekoliko sati vrati, na sajtu postoji kod koji sam sebe obnavlja. To je jasan znak da čišćenje nije završeno ili nije ni počelo. Ovaj mehanizam je i glavni razlog zašto se infekcija vraća posle čišćenja.

Signali na nivou hostinga i servera

Hosting vidi ono što WordPress ne prikazuje. Zato je kontrolni panel često mesto gde se infekcija najbrže potvrdi.

Grafikon potrošnje resursa koji naglo skače na hostingu

15. Nagli skok potrošnje resursa

Ako je opterećenje procesora, broj procesa ili potrošnja saobraćaja skočila bez rasta posećenosti, neko koristi vaš server za nešto drugo - najčešće za slanje pošte, napade na druge sajtove ili rudarenje.

16. Odlazna pošta koju niste poslali

Pogledajte statistiku odlazne pošte u cPanelu ili sličnom panelu. Hiljade poslatih poruka sa naloga koji ne koristite je nedvosmislen znak. Posledica je i da vaši normalni poslovni mejlovi počnu da završavaju u spamu, jer domen ulazi na crne liste. Ceo taj lanac razlažemo u tekstu o tome zašto sajt šalje spam mejlove.

17. Poruka ili suspenzija od strane hostinga

Ovo je najdirektniji mogući signal. Hosting kompanije skeniraju servere i reaguju kada im nalog ugrožava druge korisnike. Ako ste dobili obaveštenje o zloupotrebi ili je nalog već suspendovan, tretirajte to kao potvrđen incident i ne gubite vreme na dodatnu dijagnostiku. Redosled poteza u prvom satu opisali smo u tekstu o tome šta raditi kada hosting ugasi nalog zbog zloupotrebe.

18. Fajlovi i folderi sa nasumičnim imenima u korenu sajta

wp-conflg.php, class-wp-cache.php na mestu gde mu nije mesto, radio.php, folderi tipa wp-includes/fonts/ sa PHP fajlovima unutra. Napadači imenuju fajlove tako da na prvi pogled izgledaju kao deo WordPress-a. Pravilo je jednostavno: sve što ne prepoznajete u korenu sajta zaslužuje pogled.

Signali koji stižu od drugih ljudi

Klijent šalje snimak ekrana sa blokadom sajta

Ne zaboravite da su klijenti i saradnici često prvi koji primete problem, i da to obično prijave usput, u pola rečenice.

Ako vam kupac kaže da mu je antivirus blokirao vaš sajt, ako neko dobije mejl „od vas" koji vi niste poslali, ako vam dobavljač javi da mu je link iz vaše ponude odveo na čudno mesto - to su prijave koje treba zapisati, a ne odmahnuti rukom. Jedna takva prijava može da bude slučajnost. Dve u istoj nedelji obično nisu.

Naročito ozbiljno shvatite situaciju u kojoj vam klijent pošalje snimak ekrana. To je dokaz koji vredi više od vašeg utiska, jer je snimljen izvan vašeg uređaja, vaše mreže i vaše prijave.

Šta nije znak hakovanja, a često se pomeša

Panika je skupa jednako kao i nemar, pa vredi znati i šta ne treba da vas uznemiri.

Upozorenje o sertifikatu koje nije infekcija

Istekao SSL sertifikat. Pregledač prikazuje upozorenje o nebezbednoj vezi, što deluje dramatično, ali je najčešće samo propuštena obnova sertifikata. Rešava se za nekoliko minuta.

Pokušaji prijave u logovima. Svaki javno dostupan WordPress sajt trpi automatizovane pokušaje prijave, često stotine dnevno. To znači da vas neko pokušava probiti, ne da je uspeo. Zabrinjavajuća je tek uspešna prijava.

Poruka „Greška pri uspostavljanju veze sa bazom". U velikoj većini slučajeva to je problem sa serverom ili prekoračenje limita, ne napad.

Beli ekran posle ažuriranja dodatka. Klasičan konflikt verzija. Ako je nastupio odmah posle vašeg klika na „ažuriraj", uzrok je gotovo sigurno bezazlen.

Pad saobraćaja posle Google ažuriranja algoritma. Dešava se sezonski i pogađa cele niše. Proverite da li je pad počeo na dan poznatog ažuriranja pre nego što posumnjate na infekciju.

Neželjeni komentari. Spam u komentarima je dosadan, ali je normalna pojava na svakom sajtu sa otvorenim komentarima i ne znači da je neko ušao u sajt.

Kako da proverite sumnju za petnaestak minuta

Ako vam se poklopilo dva ili više signala, sledeći redosled daje jasan odgovor bez ikakvog rizika po sajt. Sve su to provere, ne izmene. Cilj je da za četvrt sata znate da li su znaci da je sajt hakovan dovoljno jaki za čišćenje, ili treba tražiti drugo objašnjenje.

Lista kratkih provera na stolu uz sat

Korak 1: Pogledajte sajt kao stranac

Otvorite anoniman prozor, odjavite se, isključite Wi-Fi na telefonu i otvorite sajt preko mobilnih podataka. Prođite kroz početnu stranu, jednu kategoriju i jedan članak. Beležite sve što odstupa.

Korak 2: Proverite šta Google vidi

Ukucajte site:vasdomen.rs i prelistajte rezultate do kraja. Zatim otvorite Google Search Console i pogledajte odeljak „Bezbednost i ručne mere". Ako tamo stoji prijavljen problem, dijagnostika je gotova.

Korak 3: Prebrojte administratore

Korisnici, Svi korisnici, filter „Administrator". Uporedite listu sa spiskom ljudi koji stvarno treba da imaju pun pristup. Ne brišite ništa u ovom trenutku, samo zabeležite.

Korak 4: Pogledajte datume izmena fajlova

U File Manageru sortirajte koren sajta po datumu izmene, opadajuće. Zatim isto uradite u wp-content/themes i wp-content/uploads. Tražite PHP fajlove tamo gde im nije mesto i izmene u periodima kada niste radili.

Korak 5: Proverite odlaznu poštu i resurse

U kontrolnom panelu hostinga pogledajte statistiku slanja pošte i grafikon opterećenja za poslednjih trideset dana. Skok koji ne odgovara vašoj posećenosti je snažan dokaz.

Korak 6: Prelistajte logove pristupa

Potražite ponavljajuće zahteve ka fajlovima koje ne prepoznajete, naročito POST zahteve ka nekom PHP fajlu u uploads folderu. To je potpis aktivnog backdoor-a.

Ako posle ovih šest koraka nemate nijedan nalaz, verovatnoća infekcije je mala i vredi tražiti drugo objašnjenje za simptome. Ako imate makar dva jasna nalaza, tretirajte sajt kao kompromitovan: to su dovoljni znaci da je sajt hakovan da krenete redom, ne nasumice.

Sumnja je potvrđena: šta dalje i kojim redom

Redosled je važan, jer pogrešan prvi potez uništava dokaze ili pravi novu štetu.

Prvo napravite punu kopiju fajlova i baze u zatečenom stanju, čak i zaražene. Ta kopija je jedini način da se kasnije rekonstruiše šta se dogodilo i da se vrati sadržaj koji biste u čišćenju možda izgubili.

Zatim promenite lozinke redom: hosting nalog, FTP i SSH, baza podataka, WordPress administratori, mejl nalozi vezani za domen. Uključite dvofaktorsku potvrdu gde god postoji.

Tek onda počinje čišćenje: uklanjanje zlonamernih fajlova, provera baze, uklanjanje nepoznatih naloga i zakazanih zadataka, ažuriranje jezgra, tema i dodataka, pa zatvaranje ulaza kroz koji je napadač ušao. Detaljan redosled poteza opisan je u tekstu sajt mi je hakovan, šta da radim prvo, a kako izgleda kompletno čišćenje u praksi pokazali smo na primeru hakovane WooCommerce prodavnice.

Šta ne raditi

Nemojte brisati fajlove nasumično dok ne napravite kopiju. Nemojte vraćati stari backup bez provere - ako je infekcija starija od backup-a, vratićete i nju, samo ćete izgubiti nedelje sadržaja. Nemojte instalirati pet bezbednosnih dodataka u nadi da će jedan pomoći; oni se međusobno sudaraju i otežavaju dijagnostiku. I nemojte pisati hostingu da je „sve rešeno" pre nego što zaista jeste, jer druga suspenzija obično traje duže.

Koliko brzo treba reagovati

Kod većine infekcija šteta ne nastaje u trenutku proboja, nego se akumulira. Prvih nekoliko dana obično znači samo prisustvo koda. Posle nedelju dana počinje indeksiranje spam stranica i pad rangiranja. Posle dve do tri nedelje domen ulazi na crne liste za poštu, pa vam poslovna komunikacija prestaje da stiže. U tom periodu obično stiže i reakcija hostinga.

Praktično, to znači da razlika između reakcije u prva 24 sata i reakcije posle mesec dana nije razlika u ceni čišćenja, nego u tome koliko dugo posle čišćenja traje oporavak rangiranja i reputacije domena. Od čega zavisi sam obim posla, razložili smo u tekstu o ceni čišćenja hakovanog sajta.

Kako smanjiti šansu da se ovo ponovi

Najveći broj proboja koje viđamo nastaje kroz zastarele dodatke i teme, naročito one koji su prestali da se održavaju ili su preuzeti sa piratskih izvora. Redovno ažuriranje rešava veći deo problema, a uklanjanje svega što ne koristite rešava dobar deo ostatka - svaki neaktivan dodatak je i dalje kod na serveru.

Uz to pomažu jake i različite lozinke za hosting, bazu i administraciju, dvofaktorska potvrda za administratorske naloge, ograničen broj ljudi sa punim pristupom, backup koji se čuva izvan servera i koji ste bar jednom stvarno probali da vratite, i osnovni monitoring koji vam javi kada se fajlovi promene ili kada sajt padne. Ništa od toga nije skupo. Skup je jedino scenario u kome ničega od toga nema.

Prvi korak koji možete uraditi odmah

Ako ste u ovom tekstu prepoznali dva ili više signala na svom sajtu, počnite od besplatne provere javnog sadržaja na hakovansajt.com - analiza traje manje od minuta i pokazuje da li se u javno dostupnom kodu vide poznati obrasci malvera, preusmeravanja ili ubačenih linkova.

Znaci da je sajt hakovan pred javnom proverom

Ako je situacija hitna, ako je hosting već suspendovao nalog ili ako sajt zarađuje i svaki sat stoji para, javite se direktno na 065 402 5000 (Viber i WhatsApp) ili na helpdesk@hakovansajt.com. Radimo svakog dana od 8 do 21.

Pitanja

Česta pitanja

Kratki odgovori uz ovaj članak. Ako ovde nema vašeg pitanja, pišite nam preko kontakta.

Kako da sa sigurnošću znam da je sajt hakovan, a ne samo spor?

Sporost sama po sebi nije dokaz. Potvrda dolazi iz tri izvora: nepoznat administratorski nalog, PHP fajl na mestu gde mu nije mesto (najčešće u wp-content/uploads), ili prijavljen bezbednosni problem u Google Search Console-u. Bilo koji od ta tri nalaza je dovoljan da se sajt tretira kao kompromitovan.

Sajt izgleda normalno kada ga ja otvorim, ali klijenti prijavljuju preusmeravanje. Da li su oni u pravu?

Najverovatnije jesu. Malver za preusmeravanje redovno isključuje ulogovane administratore i pamti posetioce, pa se drugi put ne prikazuje. Proverite iz anonimnog prozora, sa mobilnih podataka i idealno sa uređaja koji nikada nije posetio sajt.

Da li antivirus na mom računaru može da otkrije da je sajt hakovan?

Ne pouzdano. Antivirus štiti vaš uređaj i reagovaće tek ako sajt pokušava da isporuči datoteku ili skriptu koju prepoznaje. Većina infekcija na sajtu - spam stranice, skriveni linkovi, backdoor fajlovi, slanje pošte - nikada neće aktivirati antivirus posetioca.

Da li je dovoljno da obrišem sumnjive fajlove koje sam pronašao?

Obično nije. Napadači po pravilu ostavljaju više ulaza, često i po nekoliko backdoor fajlova na različitim mestima, plus zakazane zadatke i izmene u bazi. Ako se obriše samo ono što je vidljivo, infekcija se najčešće vrati u roku od nekoliko dana.

Može li da se vrati backup i time reši problem?

Može, ali samo ako pouzdano znate da je backup stariji od proboja i ako se odmah zatvori ranjivost kroz koju se ušlo. U suprotnom ćete vratiti i infekciju, a izgubiti sadržaj nastao u međuvremenu. Zato se backup uvek posmatra kao pomoć u čišćenju, ne kao zamena za njega.

Koliko dugo traje da sajt izađe iz Google upozorenja?

Nakon što je sajt zaista očišćen i zahtev za revizijom podnet, uklanjanje upozorenja obično traje od nekoliko sati do nekoliko dana. Vraćanje pozicija u pretrazi traje duže i zavisi od toga koliko je dugo sajt bio zaražen i koliko je spam stranica indeksirano.

Da li se ovo dešava samo velikim sajtovima?

Ne. Ogromna većina napada je potpuno automatizovana: skripte pretražuju internet i traže poznate ranjivosti, bez obzira na to čiji je sajt i koliko ima posetilaca. Mali sajt firme sa deset stranica jednako je koristan napadaču za slanje spama kao i veliki portal.