Suspendovan nalog jer sajt šalje spam mejlove
← Blog

Sajt šalje spam mejlove: zašto i kako to zaustaviti

Ažurirano Ivan Pantić

Mejl od hostinga obično dođe bez uvoda. Piše da je sa vašeg naloga poslato nekoliko hiljada mejlova u kratkom roku, da je server prijavljen kao izvor neželjene pošte, i da je nalog privremeno suspendovan. Sajt je u tom trenutku već nedostupan, a vi nemate pojma o čemu govore, jer niste poslali ni jedan jedini mejl.

Ukratko: kad sajt šalje spam bez vašeg znanja, na serveru je skripta ili rupa. Prvo zaustavite slanje, nađite i uklonite ulaz, zatvorite ranjivost, pa tek onda tražite reaktivaciju.

Kad sajt šalje spam bez znanja vlasnika, to gotovo uvek znači jednu stvar: neko drugi koristi vaš server. U ovom tekstu objašnjavamo kako do toga dolazi, zašto hosting reaguje tako oštro, gde se skripta za slanje obično krije, i kojim redom da rešite problem da vam se nalog ne bi ponovo zatvorio za nedelju dana.

Zašto je vaš server nekome uopšte zanimljiv

Ovo je pitanje koje najčešće dobijemo prvo. Sajt ima dvadeset posetilaca dnevno, prodaje lokalnu uslugu, nema nikakve poverljive podatke. Zašto bi ga neko napadao?

Odgovor je da napadaču nije ni stalo do vašeg sadržaja. Stalo mu je do onoga što vaš server može da uradi za njega, a to je slanje pošte sa adrese koja ima čistu istoriju.

Spam poslat sa poznatih, već prijavljenih servera odmah završava u smeću. Spam poslat sa domena koji godinama nije imao nijednu prijavu prolazi filtere mnogo bolje. Vaša dobra reputacija je proizvod koji napadač koristi i troši, dok se ne potroši. Kad se potroši, on ide dalje, a vama ostaje domen sa upropašćenom reputacijom.

Napadač troši čistu reputaciju domena na neželjenu poštu

Isto važi i za druge načine zloupotrebe servera. Isti upad ume da posluži za hostovanje lažne stranice za krađu podataka, za slanje saobraćaja u napade na treće sajtove, ili za rudarenje kriptovaluta. Situacija u kojoj sajt šalje spam je samo najčešća i najuočljivija varijanta zloupotrebe, jer je hosting brzo primeti.

Zašto hosting reaguje suspendovanjem, a ne opomenom

Kad vam hosting ugasi nalog bez prethodnog upozorenja, lako je to protumačiti kao preteranu reakciju. Iz njihove perspektive to nije tako.

Serveri za deljeni hosting dele istu IP adresu ili isti opseg adresa za veliki broj sajtova. Ako jedan nalog sa tog servera masovno šalje spam, ceo opseg adresa može da završi na crnim listama koje koriste veliki mejl provajderi. To znači da svi ostali klijenti na istom serveru odjednom ne mogu da isporuče legitimnu poštu.

Deljeni hosting IP i crna lista susednih sajtova

Vraćanje IP adrese sa takve liste je dugotrajan proces koji ponekad traje nedeljama. Zato hosting nema luksuz da čeka i pita. Suspenzija je najbrži način da se izvor zaustavi, i zato skoro uvek dođe pre razgovora.

Praktična posledica za vas je da razgovor sa hostingom ide mnogo lakše ako mu priđete sa tačnim informacijama. Ako u prvom odgovoru kažete da ste identifikovali izvor, uklonili ga i zatvorili ulaz, nalog se obično aktivira brzo. Ako kažete samo da ništa ne razumete, prepiska se otegne.

Kako se maliciozna skripta obično ubaci

Skoro nikad se ne radi o ciljanom napadu na konkretno vas. Automatizovane skripte redom proveravaju sajtove i traže poznate slabosti. Ulazna tačka je gotovo uvek jedna od sledećih.

  • Zastareo dodatak sa poznatom ranjivošću. Najčešći uzrok, sa velikom razlikom. Kad se ranjivost objavi, napadači počnu da je koriste u roku od nekoliko dana, a mnogi sajtovi ostanu neažurirani mesecima.
  • Kontakt forma bez zaštite. Loše napisan ili loše podešen obrazac za kontakt može biti iskorišćen da šalje poštu na proizvoljne adrese, sa proizvoljnim sadržajem. Ovo se često dešava na sajtovima gde je forma pisana ručno, bez proverenog dodatka.
  • Slaba administratorska lozinka. Napad grubom silom na stranicu za prijavu i dalje uspeva mnogo češće nego što bi trebalo, posebno kad se koristi korisničko ime „admin".
  • Tema ili dodatak iz nezvaničnog izvora. Piratske verzije premium proizvoda redovno dolaze sa kodom koji je neko namerno ubacio pre nego što ih je podelio.
  • Kompromitovana lozinka za hosting ili FTP. Najčešće preko lozinke koja je procurila na nekom drugom servisu i ponovo iskorišćena.
  • Drugi sajt na istom nalogu. Ako držite više sajtova u jednom hosting paketu, infekcija sa jednog često pređe na ostale, jer dele isti prostor na disku.

Slaba lozinka ili nezaštićena kontakt forma kao ulaz

Gde se skripta za slanje pošte krije

Kad sajt šalje spam, treba naći sam izvor. Postoji nekoliko mesta koja se ponavljaju iz slučaja u slučaj.

PHP fajl u uploads folderu

Folder wp-content/uploads je predviđen za slike, dokumente i medijske fajlove. Tamo nikad ne bi trebalo da postoji fajl sa ekstenzijom .php. Ako ga nađete, gotovo sigurno nije vaš. Ime obično izgleda kao da pripada sistemu, na primer nešto sa rečima cache, tmp ili class u nazivu, tako da prođe površan pogled.

PHP fajl sakriven u uploads folderu

Fajl među dodacima koji tamo ne pripada

Napadači često ubace fajl u folder legitimnog dodatka, jer tamo već postoji desetine fajlova i jedan više se ne primeti. Ovo je razlog zašto poređenje instaliranih dodataka sa njihovim zvaničnim verzijama daje mnogo bolje rezultate od ručnog pregleda.

MU-plugins folder

Folder wp-content/mu-plugins WordPress učitava automatski, pre svih ostalih dodataka. Njegov sadržaj se ne prikazuje u standardnoj listi dodataka na isti način kao obični dodaci, a mnogi vlasnici sajtova ni ne znaju da postoji. Zato je omiljeno mesto za kod koji treba da radi neprimetno i preživi uklanjanje drugih stvari.

Zakazani zadatak u WordPress-u

WordPress ima svoj sistem zakazanih zadataka. Napadač može da zakaže zadatak koji poziva malicioznu funkciju u pravilnim intervalima. Efekat je da sajt šalje spam u serijama, sa pauzama, što otežava otkrivanje i ume da prevari hosting na kratko. Takođe znači da se problem vraća čak i posle brisanja fajla, ako sam zakazani zadatak ostane.

Kod ubačen u temu

Najčešće u fajl koji se učitava na svakoj stranici. Kod retko izgleda čitljivo. Obično je to jedan dugačak niz slova i brojeva koji se dekodira tek u trenutku izvršavanja, i koji se proteže preko celog ekrana bez ijedne prepoznatljive reči. To je čest završni oblik kad sajt šalje spam preko teme.

Kako da potvrdite da problem stvarno postoji

Pre nego što nešto menjate, vredi da imate dokaz i grubu sliku obima.

Prvo tražite od hostinga logove slanja pošte. Većina hosting kompanija to ima i daje na zahtev. Iz njih se vidi tačno vreme slanja, broj poslatih mejlova, i vrlo često putanja do skripte koja ih je poslala. Taj podatak vam štedi sate traženja, i to je prva stvar koju treba zahtevati.

Zatim proverite red čekanja za poštu, ako vam hosting panel to prikazuje. Ako vidite hiljade mejlova koji čekaju isporuku na adrese koje nikad niste videli, potvrda je tu.

Mail queue i logovi na serveru posle zloupotrebe

Proverite i listu korisnika u WordPress administraciji, celu, ne samo prvih nekoliko. Nov administratorski nalog kreiran u vreme kad se niko od vas nije prijavljivao je jasan signal. Obratite pažnju na datum registracije svakog naloga.

Na kraju proverite da li je vaš domen završio na nekoj crnoj listi za poštu. Postoje besplatni servisi za tu proveru, a rezultat vam govori koliko je šteta već otišla dalje od vašeg servera.

Redosled koji ima smisla

Napravite kopiju pre bilo čega

Puna kopija fajlova i baze, čak i zaražena. To je vaša jedina zaštita ako nešto pođe naopako tokom čišćenja, i jedini izvor podataka ako kasnije bude trebalo da rekonstruišete šta se dogodilo.

Zaustavite slanje pre nego što počnete da čistite

Ako je nalog suspendovan, slanje je već zaustavljeno. Ako nije, ima smisla privremeno onemogućiti izlaznu poštu ili staviti sajt u režim održavanja dok tražite izvor. Time zaustavljate dalju štetu reputaciji domena, koja je često trajnija od same infekcije.

Nađite i uklonite izvor

Dok sajt šalje spam, uklanjanje samo jednog fajla retko je dovoljno. Uklonite malicioznu skriptu, ali i sve što je ostavljeno kao rezerva: dodatne administratorske naloge, zakazane zadatke, fajlove na neuobičajenim mestima. Ovaj deo je najlakše potceniti, a od njega zavisi da li se problem vraća.

Zatvorite ulaz

Ažurirajte jezgro, temu i sve dodatke. Uklonite ono što ne koristite, jer neaktivan dodatak sa ranjivošću je i dalje ranjiv. Promenite sve lozinke: WordPress administracija, baza podataka, hosting panel, FTP. Ako je napadač imao pristup, verovatno je i te podatke izvukao dok je bio unutra.

Javite hostingu šta ste našli

Konkretan odgovor sa opisom uzroka i preduzetih koraka ubrzava reaktivaciju naloga više od bilo kakvog moljenja. Ako imate logove koje su vam sami dali, pozovite se na njih.

Popravite reputaciju domena

Ovo je korak koji mnogi propuste. Ako je domen završio na crnim listama, vredi podneti zahtev za uklanjanje kod svake liste na kojoj se nalazi, posle čišćenja. Uz to, vredi proveriti da su SPF, DKIM i DMARC zapisi pravilno postavljeni, jer oni otežavaju lažiranje vaše adrese u budućnosti i pomažu da legitimna pošta ponovo prolazi.

Koliko šteta ide dalje od suspendovanog naloga

Kad se nalog reaktivira, lako je pomisliti da je stvar završena. Nije, i vredi znati šta ostaje iza.

Reputacija domena traje duže od infekcije

Veliki mejl provajderi vode sopstvene ocene reputacije za svaki domen. Ta ocena se gradi mesecima, a pada za nekoliko sati masovnog slanja. Posledica je da vaša legitimna pošta, ponude klijentima, obaveštenja iz prodavnice, potvrde porudžbina, počne da završava u neželjenoj pošti iako je sajt odavno čist. Oporavak je postepen i traži da neko vreme šaljete normalan, očekivan obim pošte.

Filteri šalju spam sa sajta u smeće i ruše reputaciju

Poverenje klijenata

Ako je spam poslat sa vaše adrese išao ka ljudima iz vašeg adresara, a to nije retko, oni su dobili poruku koja izgleda kao da dolazi od vas. To se pamti duže od tehničkog problema. Kratko i iskreno obaveštenje klijentima, sa objašnjenjem šta se desilo i šta ste preduzeli, obično prođe mnogo bolje od ćutanja i nade da niko nije primetio.

Podaci koji su možda otišli

Ako je napadač imao pristup dovoljan da postavi skriptu za slanje, imao je pristup i bazi podataka. To znači adrese, imena, ponekad i podatke o porudžbinama vaših korisnika. Vredi trezveno proceniti šta je bilo u toj bazi. Ako se radi o ličnim podacima korisnika, obaveza obaveštavanja može biti i pravna stvar, ne samo pitanje pristojnosti.

Zauzeto vreme koje niste planirali

Ovo je najbanalniji, a u praksi često najskuplji deo. Dan ili dva izgubljena na prepisku sa hostingom, traženje fajlova i objašnjavanje klijentima obično košta više od godišnjeg nadzora koji bi problem uhvatio na vreme.

Šta ne raditi

Ne menjajte hosting u prvom trenutku. Selidba dok sajt šalje spam samo prenosi problem, a vi ste u međuvremenu izgubili logove koji su vam bili najkorisniji trag.

Ne vraćajte stari bekap naslepo. Ako ne znate kada je infekcija počela, verovatno vraćate već zaražen sajt i još gubite sadržaj iz međuvremena. Prvo vremenska linija, pa onda odluka o bekapu.

Ne instalirajte pet bezbednosnih dodataka odjednom. Nijedan od njih neće ukloniti kod koji je već tu, a više dodataka koji rade isti posao znači sporiji sajt i moguće sukobe u radu.

Ne brišite fajlove pre nego što ste pogledali šta u njima piše. Sadržaj malicioznog fajla vam često kaže kada je postavljen i kroz koju rupu, a to je informacija bez koje rešavate posledicu i čekate da se ponovi.

Ne ostavljajte sajt u režimu održavanja nedeljama dok razmišljate šta ćete. Duže odsustvo sa mreže povlači i pad pozicija u pretrazi, pa se tehničkom problemu doda i marketinški.

Kako sprečiti ponavljanje

Sajt koji je jednom slao spam ima veće šanse da bude ponovo napadnut, delom zato što je već na listama automatizovanih skripti.

Redovno ažuriranje zatvara najveći deo ulaznih tačaka, jer većina napada cilja ranjivosti koje su odavno zakrpljene. Jake i jedinstvene lozinke uz dvofaktorsku prijavu uklanjaju drugi najčešći ulaz. Zabrana izvršavanja PHP fajlova u uploads folderu na nivou servera onemogućava celu jednu klasu ovakvih skripti, čak i ako se fajl nekako postavi.

Najvažnije je da nadzor bude redovan i automatski. Spam kampanja često radi u serijama, sa pauzama, i lako prođe neprimećeno između dve ručne provere. Sistem koji svakodnevno poredi stanje fajlova i baze sa prethodnim primeti novu skriptu pre nego što hosting primeti hiljadu poslatih mejlova.

Prvi korak koji ništa ne košta

Ako sumnjate da sajt šalje spam, besplatna brza analiza pregleda javno dostupan sadržaj vašeg sajta i traži poznate obrasce malvera i sumnjive elemente. Bez naloga, bez instalacije, obično ispod minuta.

Vredi biti jasan o tome šta ta provera ne može. Ona gleda samo ono što je javno dostupno preko interneta. Skripta za slanje pošte koja stoji u fajlu na serveru i čeka poziv nije javno vidljiva, pa je udaljena provera neće naći. Čist rezultat je dobar znak, ali kod ovakvog problema pouzdan odgovor daje samo pregled fajlova i baze na samom sajtu.

Ako je nalog već suspendovan ili imate potvrdu od hostinga da sajt šalje poštu koju niste poslali, javite se odmah. Pošaljite adresu sajta i mejl koji ste dobili od hostinga. Hitni slučajevi idu pre redovnih zahteva, jer svaki dan suspenzije nosi i izgubljene posetioce i dalju štetu reputaciji domena.

Pitanja

Česta pitanja

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

Zašto hosting kaže da šaljem spam, a ja nisam poslao ništa?

Napadač je kroz ranjivost postavio skriptu koja šalje poštu sa vašeg servera. Hosting vidi samo izlazni saobraćaj sa vašeg naloga, ne ko je kliknuo „Pošalji“. Zato deluje kao da ste vi krivi, iako niste poslali ni jedan mejl.

Gde se najčešće krije skripta koja šalje spam?

U PHP fajlu u uploads folderu, među dodacima gde ne pripada, u mu-plugins folderu, kao zakazani WordPress zadatak, ili kao kod ubačen u temu. Zakazani zadatak je posebno opasan: brišete fajl, a slanje se ipak vrati jer zadatak ostaje.

Da li je dovoljno obrisati jedan sumnjiv fajl?

Retko. Napadači ostavljaju rezervne ulaze: dodatne admin naloge, zakazane zadatke, fajlove na neuobičajenim mestima. Ako uklonite samo vidljivu skriptu, slanje se često vrati za dan ili dva, a hosting može ponovo da suspenduje nalog.

Šta posle čišćenja sa reputacijom domena za poštu?

Čišćenje zaustavlja slanje, ali ne skida domen ili IP sa crnih lista automatski. Treba proveriti liste, zatražiti delisting gde je moguće, i pratiti da li legitiman mejl ponovo prolazi. To može potrajati duže od same infekcije.

Zašto je vaš server zanimljiv napadaču za spam?

Zbog čiste istorije. Spam sa već prijavljenih servera loše prolazi filtere; spam sa „čistog“ deljenog hostinga prolazi bolje. Napadač troši vašu reputaciju dok je ne potroši, pa pređe na sledeći hakovan nalog.