WordPress sigurnost i malware

Srbija nije zemlja u kojoj se mnogo pažnje posvećuje sigurnosti. Ne misli se na sigurnost zemlje, gradjana, njihovog zdravlja, socijalnog statusa, njihovih biznisa. A sigurnost je ozbiljna stvar. Pretpostavimo sada da je vaš biznis na webu. Prva ‘kapija’ na koju vaši novi klijenti dolaze je vaš sajt. Ako vaš sajt pokreće WordPress CMS, ne misliti o sigurnosti WordPressa je isto kao ne misliti na sigurnost vašeg poslovanja, vaših prihoda i vašeg prisustva u online svetu.

Sigurnost WordPressa je zaista ozbiljna tema. Videli smo kako jedan kompromitovani WordPress sajt može da zarazi veliki broj sajtova kroz cross-site scripting. Kao kod svakog CMS-a, što je popularniji, sadrži više sigurnosnih propusta. WordPress je, u neku ruku, izuzetak jer smo retko vidjali ozbiljne sigurnosne probleme u kodu samog WP-a, najveći problem leži u pluginovima i temama. WordPress tim je prilično fokusiran na rešavanje bilo kakvog sigurnosnog propusta koji se javi u njihovom kodu, dok ne možemo reći to isto za autore tema i pluginova.

wordpress-malware

Rešili smo da vam prikažemo 4 najčešća sigurnosna propusta vezana za WordPress, kako se oni zaobilaze, kako ih preventivno sprečiti i šta raditi kada se problem desi. Objasnićemo i kako se dešavaju upadi, na koje propuste su WordPress korisnici najviše ranjivi, šta oni urade WordPress sajtu. U ovom članku ćemo se baviti backdoor skriptama, malicioznim downloadima, pharma hackovima i malicioznim redirekcijama.

Malware

U protekle 2 godine, malware je porastao za 140%. U isto vreme, WordPress je doživeo svoj vrhunac, i trenutno pokreće 17% sajtova na celom interentu. U svetu sigurnosti, ovo znači da sada trenutno postoji malware za WordPress više nego ikad.

Šta čini WordPress ranjivim

Prosto je. Neažuriran WordPress, u kombinaciji sa propustima u pluginovima i temama. Kada na to dodate neznanje krajnjeg korisnika, dobijate savršenu formulu za ranjiv websajt.

Idemo jedno po jedno:

Prvi problem je neažuriran WordPress. Kad god izadje novi update za WordPress, vlasnici sajtova dobijaju poruku. E sad, dobar deo vlasnika uspešno eskivira tu poruku i uopšte ne updateuje svoj WordPress. Naveli smo da sam WordPress najčešće nije problem, ali u skoro svakoj od verzija izadje po neki security fix. Možete pogledati verzije 3.3.3 i 3.4.1. Dakle rizik postoji, ali WordPress autori toliko brzo reše taj problem i izbace novu verziju, da nikad ne dodje do masovne havarije. Samo treba neko da se seti i da ažurira WordPress. To ne bi trebalo da bude neki problem, jer su autori WordPressa sveli celu akciju na jedan klik. Primer da neažurirana verzija WordPressa može ugroziti ozbiljan biznis je nedavno hakovanje sajta Rojtersa.

Sigurnosni problemi u pluginovima i temama. Postoji preko 20.000 pluginova za WordPress. Postoji isto toliko tema da se nadje na webu. Neki pluginovi sami po sebi sadrže maliciozni kod ili sigurnosni propust, dok drugi jednostavno nisu ažurirani neko vreme. WordPress zajednica je postavila obaveštenje iznad svakog plugina koji nije ažuriran više od dve godine.

Nekad su najveći sigurnosni problem sami korisnici. Postoji to uvrženo mišljenje kod vlasnika websajtova da je najteži deo posla napraviti sajt, platiti agenciju koja će to uraditi i kad se to završi, to je to, ne diraj ništa, neka ga tako. Da smo i dalje u 1995-oj, to bi bilo super, ali danas se igra malo promenila.

Prema rečima ekipe iz Smashing Magazine-a, najčešći problemi kod WordPress sajtova su:

  • Neažuriran WordPress
  • Slabo upravljanje lozinkama i logovanjem
  • Loša administracija samog sistema
  • Nezaštićeni serveri
  • Nedostatak poznavanja rada sistema
  • Neadekvatno rešenje problema – problem treba rešiti sistemski

Malo vremena i edukacije je sve što treba da do ovih problema ne bi došlo. A jednom kad naučite kako se to radi, nemojte stati, naučite još nekoga, jer sve je više ljudi koji generalno nemaju pojma o ovome, jer prosto, nije njihova struka.

Evolucija malware-a

Kako je rastao Internet, rastao je i malware. Ranije su hakovanje i malware služili da se pokaže nadmoć nad webmasterom koji održava sajt. Cilj je bio da se pokaže ko je jači, ko je bolji. Danas su stvari drugačije, danas je sve vezano za novac. Znamo za skorašnji DNSChanger koji je hakerima doneo dobit od 14 miliona dolara, dok nisu zaustavljeni od strane FBI.

Takodje, danas postoje malnets mreže, distribuirane mreže zaraženih računara koje služe za kradju podataka, DDoS napade, maliciozni download i distibuciju spama.

Pored njih, postoje malware botovi koji rade automatski tako što skeniraju ranjivosti na sajtovima i automatski insertuju maliciozni kod u njih, čime se autoru bota ostavlja vreme da se fokusira na ranjivost samog sistema. Ovi botovi se danas mogu kupiti po već pristupačnim cenama.

Najčešće WordPress ranjivosti

U ovom članku ćemo se fokusirati na 4 najčešće ranjivosti u WordPressu. To su:

  • Backdoor skripte
  • Maliciozni download
  • Pharma hack
  • Maliciozne redirekcije

Backdoor skripte

Backdoor skripte omogućavaju napadaču da dobije pristup vašem okruženju, da pristupi vašem FTP-u, sFTP-u, wp-admin sekciji i sl. Mogu pristupiti vašem nalogu kroz komandnu liniju, a nekad čak vidjamo i interfejs kao što je ovaj:

backdoor_small

Backdoor skripte su prilično opasne. U najgorem scenariju, backdoor postavljen na vaš sajt može uzrokovati ozbiljne probleme i gubitak podataka na celom serveru. AdriaHost vas svakako proaktivno štiti od ovakve vrste ranjivosti. Svake noći, dok vi mirno spavate, mi skeniramo vaš nalog i ukoliko primetimo problem, odmah vam javimo.

Kako se vrši napad?

Napad se najčešće dešava zbog neažuriranog software-a i skripti koje koristi. Skoro smo videli problem sa timthumb skriptom koju koristi većina WordPress tema, koja služi za resize slike na vašem sajtu. Sigurnosni problem u ovoj skripti je omogućavao hakerima da postave štetan kod na vaš hosting nalog i odatle ga izvrše.

Evo primera skener skripte koja traži timthumb ranjivosti:
lscreenshot-2

Kako to izgleda?

Najčešće, malicioznu skriptu možete primetiti kao enkodovanu base64/eval skriptu ili kao deo skripte koji je enkodovan. Nekad to i nije slučaj, nekad izgleda kao obična skripta, kao na slici ispod:

lscreenshot-3

Još jedan primer:

lscreenshot-4

Primer koda koji gadja isključivo timthumb ranjivost:

lscreenshot-5

Primer koda koji često vidjamo na WordPress instalacijama, poznatiji kao FilesMan:

lscreenshot-6

Kako mogu znati da sam napadnut?

Backdoor svaki put izgleda drugačije, ali se može napraviti šablon. Na vašem hosting nalogu ćete primetiti fajlove sa imenima poput:

 

  • wtf.php
  • wphap.php
  • php5.php
  • data.php
  • 1.php
  • p.php
  • satan.php

 

 

U drugim slučajevima, kod se smešta u standardne fajlove koje vaš sajt koristi:

lscreenshot-7

Backdoor skripte stalno rastu i stalno se menjaju. Ne postoji konkretan način koji možemo navesti kao lek za backdoor.

Kako da se zaštitim?

Iako su backdoor skripte teške za otkrivanje kada se problem desi, postoje načini na koje se možete preventivno zaštititi od njih.

1. Kombinacija 3 stvari za zaštitu wp-admin dela sajta se pokazala kao uspešna metoda za odbijanje backdoor-a:

  • Ograničite pristup na svoju IP adresu
  • Dvoslojna autentifikacija
  • Dozvoljen login samo u odredjenom vremenu

Znamo, zvuči paranoično, ali to je zato što jeste paranoično. Morate biti freak kada je sigurnost u pitanju.

2. Onemogućite PHP izvršavanje od strane trećih lica

Najranjiviji folder je /uploads folder u WordPress instalaciji, jer da bi WordPress radio, ovaj folder mora imati mogućnost upisa. Ono što možete uraditi je sprečiti izvršavanje PHP koda iz toga foldera, dodajući sledeći kod u .htaccess fajl:

<Files *.php>
Deny from All
</Files>

Kako da ga nadjem i očistim?

Kada pronadjete i ako pronadjete fajl, dovoljno je da ga obrišete. To je prvi korak i on ustvari ne znači ništa, jer i dalje postoji rupa kroz koju je on postavljen. Ovo je deo o kome ne morate puno brinuti, jer kao što smo naveli, mi skeniramo i automatski pronalazimo fajlove koji imaju sve poznatije ranjivosti ili su backdoor skripte.

Možete proveriti vaše fajlove, proveriti datume poslednje izmene i da li na vašem hosting nalogu postoji nešto što vi niste postavili na njega. Ljudi često pogreše pa pomisle da će reinstall WordPressa rešiti stvar. Hoće, ako ste toliko srećni da se backdoor smesti samo u WordPressove fajlove, što gotovo nikad nije slučaj. WordPress reinstall ne briše fajlove sa vašeg naloga, samo ih prepisuje novijom verzijom, samim tim nema mogućnost da obriše fajl koji nije deo WordPressa.

Maliciozni download

Maliciozni downloadi su fajlovi koji se skidaju na vaš računar bez vašeg znanja. Najčešće se postavljaju na vaš sajt kao skripta koja u sebi sadrži kod koji instalira maliciozni software na računar žrtve, nakon čega njen računar postaje zombi-mašina, koja se dalje može koristiti u svrhe poznate napadaču. Ironično, najčešća poruka pri ovom problemu koju korisnik vidi je informacija da je njegov računar zaražen i da treba da instalira anti-virus.
lscreenshot-7

fakeav2-650x419

Kako dodje do napada?

Najčešći problemi su:

  • Neažuriran WordPress
  • Slaba lozinka
  • SQL injection

Kako to izgleda?

Ispod se nalaze primeri skripti koji vrše neautorizovani download:

Primer 1:
screenshot-7

Primer 2:
lscreenshot-9

Primer3:
lscreenshot-10

Kao što smo naveli, napadi postaju sve sofisticiraniji, pa možemo primetiti i uslovne donwloade koji sadrže maliciozni kod. To znači da se download neće pozvati svaki put kad se stranica učita, jer bi ga tada bilo lako primetiti, već kada se ispune odredjeni uslovi koje napadač postavi.

Kako mogu znati da sam napadnut?

Dobar način da proverite da li vaš sajt postavlja neautorizovani download na računare posetilaca je Sucuri skener. To je online skener koji proverava većinu sigurnosnih aspekata vašeg sajta, koji se mogu proveriti od strane korisnika. Takodje, tu je i Google Webmaster Tools alat, gde možete prijaviti svoj sajt. Ukoliko Google primeti malware na vašem sajtu, on će vam to potvrditi mailom, pre nego što blacklistuje vaš sajt. Ako Google blacklistuje vaš sajt, to je siguran pokazatelj da se na vašem sajtu nalazi malware. Potrebno je pronaći izvor malware-a, očistiti ga i javiti se Google-u kroz Webmaster Tools kako bi izvršili revaluaciju vašeg sajta.

Pored skenera, pronalazak malicioznog downloada zavisi od njegove kompleksnosti. Ukoliko na vašem nalogu vidite nešto ovakvo:

lscreenshot-11

Dobar stvar u celoj priči je što se ovakva vrsta kod uvek smešta u fajlove koje vaš sajt koristi, retko se dešava da budu postavljeni zasebno u fajl koji nije deo vašeg sajta. Fajlovi gde možete potražiti maliciozni kod su:

 

  • wp_blog_header.php
  • index.php
  • index.php (fajl teme)
  • function.php (fajl teme)
  • header.php (fajl teme)
  • footer.php (fajl teme)

U 60% slučajeva, problem će se nalaziti u nekom od ovih fajlova. Anti-virusi takodje dosta pomažu u detektovanju neautorizovanog download-a. Ekipa iz Sucuri-ja je objavila da je pronašla u nekim slučajevima da je download uvučen u sam post i stranicu, što znači da je maliciozni kod ubačen u vašu SQL bazu podataka. Ukoliko je to slučaj, biće potrebno da pregledate vašu bazu za bilo šta što ne bi trebalo da bude tamo. Dobar pokazatelj da je sajt pretrpeo SQL inject napad su korisnici koji su registrovani na vašem sajtu, a vi ih niste registrovali, niti vam je poznato da su bili registrovani ranije.

Kako da očistim?

Predlažemo da preuzmete vaš sajt lokalno na vaš računar i krenete sa pretragom. Total Commander opcija za pretragu teksta unutar fajlova vam može dosta pomoći. Dovoljno je da pronadjete jedan fajl koji sadrži maliciozni kod, nakon čega možete uraditi pretragu za navedeni string na svim fajlovima vašeg sajta.

Pharma hack

Pharma hack je jedan od najsofisticiranijih načina hakovanja vašeg sajta. Vaš sajt radi normalno i vi ništa ne primećujete, ali ako ukucate naziv vašeg sajta u Google-u, dobijate veoma čudne rezultate, kao na slici ispod:

SPAM-SERPS

Kako se vrši napad?

Pharma hack koristi veliki broj pravila koja odredjuju šta će korisnik videti. To se može kontrolisati kroz jednostavan kod, kao na slici:

lscreenshot-12

Neki napadači idu korak dalje i prave baze ranjivosti na vašem nalogu, nakon čega vas redirektuju na online prodavnicu koja je pod kontrolom napadača.

lscreenshot-13

Kao i svaki drugi SPAM, pharma hack služi za donošenje zarade napadaču. Nekad se plaća click-through, a nekad poseta na sajtu. Veoma retko će vas pharma hack redirektovati na neki drugi sajt koji ima dodatne infekcije, već se sve dešava odmah. Zbog toga je teško otkriti i ukloniti ovakva napad. Pretragom za ključne reči koje se koriste u hacku nećete puno uraditi, obzirom da su maskirane. A i iznenadili biste se koliko se farmaceutskih kompanija oglašava za identične ključne reči, što znači, više novca, više napada.

Kako to izgleda?

Ova vrsta napada je veoma složena. Može izgledati ovako:

spaminjection

U zadnje vreme su stvari malo kompleksije, tako da rezultat pharma hacka može izgledati i ovako:

SPAM-TAGS

Drugi oblik pharma hacka je kada korisnik klikne na običan web link na vašem sajtu, tipa Naslovna, Kontakt, O nama i bude redirektovan na online prodavnicu koja se oglašava, kao na primeru ispod:

PharmacyAds

Kako mogu da znam da li sam napadnut?

Pre je bilo jednostavno pronaći ovakav vid ranjivosti na sajtu, obzirom da je bilo očigledno na samom sajtu, medjutim danas su stvari malo drugačije. Najbolja varijanta je postaviti neki fajl monitoring na vaš WordPress i pratiti promene. To se pokazalo kao dosta efektno rešenje.

Možete pokušati i sa besplatnim skenerima, opet se vraćamo na Sucuri, ali imajte na umu da je ovo zaista prilično sofisticiran exploit i da ne deluje kao da je bilo šta tehnički neispravno, i onda je malo teže razaznati šta je validan a šta hakovan sadržaj.

Kako ga očistiti?

Preuzmite vaš WordPress i vašu bazu lokalno na vaš računar i tražite ključne reči. Možda time nećete puno uraditi, ali će vas navesti na pravi put, kako biste znali gde se hack nalazi, da li su to komentari, članci, da li su u fajlovima i sl. Kada utvrdite, prodjite vašu WordPress bazu podataka i proverite ceo sadržaj. Bazu možete editovati kao tekstualni fajl i tražiti ključne reči koje ste pre toga ustanovili. Savet: pharma hack će često imati veze sa Akismet pluginom, tačnije zavući će se u njegove tabele u bazi.

Ako ne uspevate da pronadjete ključne reči u vašim fajlovima, možete probati servis Bots vs. Browsers, koji će testirati rezultat vašeg sajta na sve browsere.

Kako ga sprečiti?

Primećeno je da se pharma hack najčešće desio kod zastarelih WordPress verzija, ali to ne mora nužno da bude problem. Videli smo DreamHost čiji je server bio kopromitovan i u sve WP baze na serveru je usadjen pharma hack.

Da biste sprečili pharma hack:

1. Ažurirajte vaš WordPress i sve dodatke na poslednju verziju
2. Ne hostujte vaš sajt na serverima koji nisu dobro osigurani

Maliciozne redirekcije

Maliciozna redirekcija šalje posetioca vašeg sajta na maliciozni sajt. U 2010-oj pronadjeno je 42926 malicioznih domena na kojima završavaju žrtve ove ranjivosti. U 2011 taj broj je porastao na 55294. Tu su uključeni samo glavni domeni, ne i poddomeni.

Maliciozne redirekcije mogu a i ne moraju sadržati maliciozni kod. Npr ako posetilac dodje na vaš sajt i bude usmeren na nekidrugisajt.com/fajl.php, a fajl.php sadrži maliciozni kod, onda se radi o malicioznom napadu. Ukoliko se radi o redirektovanju na nekidrugidrugisajt.com radi beleženja posete, onda nije strašno, ali svakako treba da rešite taj problem.

Kako dolazi do napada?

Kao i do sada, problem je neautorizovani pristup. Napadač bi postavio bota koji traži Timthumb ranjivost, kada je nadje, postavio bi fajl koji funkcioniše kao backdoor o kom smo ranije pričali. Zatim postavlja fajlove koji redirektuju vaše posetioce na druge sajtove.

Kako to izgleda?

Ovaj problem se najlakše rešava od sva 4 navedena. Obično se redirekcija vrši direktno u vašem htaccess fajlu i može izgledati ovako:

lscreenshot-16

Ili ovako:

lscreenshot-15

Redirekcija se može vršiti i preko PHP fajla, kroz enkodovanu skriptu obično u index.php, header.php ili footer.php fajlovima.

To izgleda otprilike ovako:

lscreenshot-17

Kako da znam da li sam hakovan?

Postoji nekoliko načina:

  • Sucuri skener
  • Testiranje preko Bots vs Browsers
  • Posetioci vašeg sajta će vam sami javiti

Kako ga očistiti?

Maliciozne redirekcije se najlakše čiste. Evo nekih predloga:

  • Otvorite vaš .htaccess fajl
  • Sačuvajte rewrite pravila koja ste sami dodali
  • Sve ostalo obrišite
  • Pronadjite sve .htaccess fajlove na vašem hostingu

Kako se zaštititi?

Obzirom da se radi o .htaccess fajlu, predlažemo da spustite permisije nad tim fajlom, tako da ga samo vlasnik naloga može modifikovati.

Pročitajte i ovaj tutorijal o zaštiti WordPress htacess fajla.

Zaključak

Eto, nadamo se da smo malo pojasnili koji su najčešći problemi u sigurnosti WordPress-a. Možda gore navedeno deluje zastrašujuće, ali verujte da se sve može rešiti i do sada nismo naišli na korisnika koji je izgubio svoj sajt zbog ranjivosti WordPressa. I ako jednu stvar treba da zapamitite iz ove dugačke priče, to je – uvek ažurirajte svoj WordPress.

10 saveta za WordPress sigurnost:

  • Ne korisitite generičke naloga, znajte uvek ko pristupa vašem sajtu
  • Osigurajte foldere. Zabranite PHP izvršavanje.
  • Pravite backup – nikad se ne zna.
  • Vršite sigurnu konekciju ka vašem serveru.
  • Proverite sigurnost hosting provajdera
  • Zabranite nepotrebne logine na wp admin, FTP
  • Ne morate pisati članke kao admin, ne moraju svi da budu admini
  • IP filtering + Dvoslojna autentifikacija + Jaka lozinka = Siguran pristup
  • Ako niste sigurni, odaberite hosting provajdera koji će vam pomoći sa WP
PRIJAVITE SE ODMAH ZA NAJNOVIJE TEKSTOVE SA NAŠEG BLOGA!

 

Tags: , ,

10 Responses

  1. Freelancer.rs април 4, 2013 at 12:12 pm #

    Odličan članak!

  2. WhiteHatSec април 4, 2013 at 12:33 pm #

    Ovo su sve zatareli napadi (napadi koji su korisceni do 2011te), danas takve napade koriste najopsaniji hakeri, a to su deca.
    Koja se obrazuju po forumima poput HF, Ljuska i ostali.
    Odlicno objasnjeno kako se zastiti.
    Samo bih pridodao par imena shell fajlova na koje treba obratiti paznju:
    c99.php cookies.php indexx.php configg.php ..php , tj treba obratiti paznju na svaki php fajl koji nije od npr WP-a ili od strane autora sajta.

    Skoro je WhiteHatSec drzao webinar na ovu temu i objasnio je najpopularnije napade u ovoj i prosloj godini, a i kako se zastiti:
    http://www.slideshare.net/MattJohansen/top-10-web-hacks-2012

    Ukoliko posedujete Virtualni Privatni Server (VPS) i sami “sredjujete” svoj server, moj predlog je da proverite svoj server sa Nessusom, arachni i metasploitom. Kako bi proverili Vas sistem na sve moguce rupe.

    Drago mi je da jedan ozbiljan hosting posvecuje ovoliku paznju zastiti i obrazovanju korisnika.

    Postovanje i sve najbolje u daljem radu,
    Velimir Majstorov
    White Hat Sec

    • Goran Magdic април 4, 2013 at 2:48 pm #

      Zahvaljujemo Vladimire.

      Želimo da pohvalimo slide koji ste postavili, sadrži dosta korisnih informacija i detaljan pristup problemima.

  3. Strugar април 4, 2013 at 12:35 pm #

    Izvanredan tekst, hvala!

  4. Igrice април 5, 2013 at 1:45 am #

    Dobra ilustracija. Ja bih jos dodao password za wp-admin dir u .htaccess, ako se vec pristupa sa dinamicke adrese.

  5. Vladimir Zivkovic април 5, 2013 at 6:18 pm #

    E bas ste me iznenadili sa ovim tekstom! Ima da se cita i cita! Hvala! Inace ja MRZIM WordPress. Oduvek mi je odbojan iz nemam pojma kog razloga tako da cu i dalje nastaviti da ga ne koristim. 🙂 Veliki pozdrav svima

  6. Elvis април 14, 2013 at 11:14 am #

    Ovo je odličan članak, ali mene je zabunio jedan dio članka:

    WordPress je doživeo svoj vrhunac, i trenutno pokreće 17% sajtova na celom interentu.

    Odakle je taj podatak i koliko je točan?

    • Goran Magdic април 15, 2013 at 11:50 am #

      Poštovani,

      Podatak je bio aktuelan u momentu pisanja teksta. U medjuvremenu, ovaj broj je narastao na 22% 🙂

Submit Comment