Inficirani WordPress sajt — kako ga očistiti i sprečiti da do hakovanja dođe

Često se vlasnicima sajtova dešava da im cyber kriminalci „zaposednu” sajt prikazujući njihovim posetiocima razne reklame i spamove. U ovom članku možete da pročitate kako da prepoznate i otklonite hack na vašem sajtu.

prenosimo - 15. Mart, 2019.

Često se vlasnicima sajtova dešava da im cyber kriminalci „zaposednu” sajt prikazujući njihovim posetiocima reklame za lekove za potenciju ili jednostavno koristeći njihov sajt (njihov hosting) za slanje SPAM emailova — namene su različite.

Ako je i vama sajt inficiran, ključno pitanje koje imate je — kako očistiti sajt od malicioznog softvera?

Odgovor je jednostavan – NIKAKO.

Ali pre nego što pomislite da ste u beznadežnoj situaciji, ne brinite — malware jeste veoma teško očistiti (objasnićemo i zašto), ali postoji i drugo rešenje.

No, pre nego što odemo dalje, hajde prvo da vidimo kako cyber kriminalci uopšte inficiraju sajtove.

Postoje dva najčešća načina da cyber kriminalci uđu na neki sajt:

Prvi način je da dozvolite da svoju WordPress instalaciju ne ažurirate (ne apdejtujete) mesecima ili godinama. WordPress je po svojoj strukturi kompleksan i često se desi da programeri naprave propust. Ti propusti se isprave čim se otkriju, i ako redovno ažurirate WordPress i njegove pluginove onda ne morate da brinete. Ali u slučaju da ne ažurirate svoj WordPress i pluginove, ti propusti će nastaviti i dalje da postoje na vašem sajtu. Cyber kriminalci redom češljaju sve sajtove i proveravaju da li na sajtu postoji neki od poznatih propusta. Pronalaze propust, ubacuju svoju skriptu na vaš sajt, i onda kreće „žurka”.

Drugi način na koji cyber kriminalci ulaze na sajt jeste preko „nullovanihpluginova i tema. To su one teme i pluginovi koji su komercijalni i koji se inače plaćaju, ali vi (ili neko ko vam je pravio sajt) ste ih možda na nekom warez sajtu skinuli „za džabe”, elem niste ih kupili. Sve te teme i pluginovi, koji se inače plaćaju, a koje ste skinuli besplatno, zapravo nisu baš tako „besplatni” — naplate vam ih cyber kriminalci, samo malo kasnije. U skoro sve te „null-ovane” pluginove i teme cyber kriminalci dodaju i sakriveni „poklončić” — njihov maliciozni softver koji im kasnije omogućava da uđu na sajt na koji je instalirana „nullovana” tema ili plugin.

Na ovom grafu, možete videti koji su najčešći načini za hakovanje vašeg WordPress sajta na globalnom nivou:

Postavljamo drugo pitanje, zašto je teško da se očisti malware?

Pre svega, on je po pravilu dobro skriven — često se nalazi u sred nekog PHP fajla i izgleda kao sasvim legitiman deo koda — kao sastavni deo plugina ili teme.

Da bi cyber kriminalci napravili „zadnja vrata” često im treba samo jedna linija PHP koda — utoliko je teže i uočiti tako nešto.

Drugo, oni kada jednom uđu na sajt — postaraju se obavezno da „zadnja vrata” ugrade na još pet, šest mesta na sajtu — inficiraju po nekoliko slučajno odabranih PHP fajlova u bilo kom folderu, postave još nekoliko upload skripti u sasvim legitimnim WordPress folderima.

Tako dolazimo do glavne problematike — ako vam je sajt inficiran budite sigurni da vam on nije inficiran samo na jednom mestu, već bar na nekoliko. Cyber kriminalci to namerno rade da bi osigurali kontrolu na sajtom, jer ako otkrijete njihov malware na jednom mestu i otklonite ga, oni mogu da uđu kroz još desetak „rupa”.

Vi ćete potrošiti sate da nađete malware, naći ćete ga na jednom mestu, očistićete ga, ali oni su ubacili toliko malicioznih linija da će vam koliko već sledeće noći ponovo ući na sajt.

Dakle, potrošili ste sate uzaludno.

Neće vam pomoći ni da „pregazite” celu WordPress instalaciju najsvežijim WordPress fajlovima jer je malware često ubačen kao zaseban fajl — sam WordPress ne sadrži taj fajl, pa neće imati šta da „pregazi” taj fajl.

Druga stvar je što ne postoji način da antivirusni softver detektuje maliciozni softver sa sigurnošću. Danas svako može da napiše svoj maliciozni PHP kod i da koristi sasvim legitimne PHP funkcije (fopen, fwrite, file_get_contents) koje, kao takve, neće uopšte biti sumnjive antivirusnom softveru. Antivirusni softver može da detektuje neke stvari, ali apsolutno nemate garanciju da je sav maliciozni softver detektovan.

Administrator servera može preko Linux terminala da sortira sve fajlove po datumu izmene i to može da pomogne da se lociraju modifikovani ili novo-uploadovani fajlovi, ali opet nema garancije da „rupa” nije u samom (nekom) pluginu ili temi, i da zapravo nije tu oduvek — stoga čišćenje naknadno ubačenih i modifikovanih fajlova neće pomoći — izvorna „rupa” će i dalje biti ukopana duboko u nekom pluginu ili temi.

Šta onda uopšte raditi? Koja je procedura?

Backup

Vraćanje sajta iz backupa može da bude rešenje, ali tu ponovo postoji problem — vi nemate pojma kada je sajt zapravo inficiran. Cyber kriminalci su mogli da ga inficiraju i pre godinu dana i da godinu dana ne vrše nikakve aktivnosti, a da vi nemate pojma da je sajt inficiran, i onda da odjednom krenu u teror. Vama izgleda kao da je sajt hakovan juče — vratite backup od pre mesec dana — ali džaba — i taj backup od pre mesec dana sadrži njihov malware.

FTP Clean Up

Jedina ispravna odluka je radikalan rez, a njegova suština se sastoji u tome da sa svog sajta (preko FTP-a) obrišete baš sve PHP fajlove i ostavite samo uploadovane slike i konfiguracioni fajl za povezivanje na bazu (kod WordPressa je to wp-config.php).

Sledite ove korake:

  1. Preko FTP-a obrišete SVE fajlove sa sajta (ali baš sve) osim fajla wp-config.php i foldera /wp-content/uploads/ (uploadovane slike ne brišite).
  2. Dakle, još jednom naglašavamo — sve što na FTP-u sme da ostane je fajl wp-config.php i folder /wp-content/uploads/
  3. Preko FTP-a otvorite u nekom editoru (recimo Notepad++) fajl wp-config.php i dobro proverite da nije ubačen tu neki kod koji vam izgleda kao gomila nabacanih slova ili kao PHP kod za koji ste sigurni da nije deo WordPressa i da je malware. Ukoliko vidite malware obrišete ceo taj blok sa malware-om. Uključite u editoru Word wrap tako da vam ne promakne malware ako je smešten iza stotog karaktera u liniji, iza vidljivog polja (u Notepad++ je to u meniju View -> Word wrap). Ako niste sigurni šta je šta u tom fajlu — ovde možete da vidite kako izgleda normalan wp-config.php fajl i možete iznova generisati potpuno nov wp-config.php fajl za Vaš sajt (samo unesite MySQL login podatke).
  4. Preko FTP-a uđite u folder /wp-content/uploads/ i zatim zavirite u svaki njegov podfolder (kao i u podfoldere podfoldera). Sortirajte fajlove po tipu fajlova (po ekstenziji) i DOBRO proverite da se kojim slučajem u nekom podfolderu ne nalazi neki .php fajl. Ukoliko ga uočite, obrišite ga odmah, jer je u 99.99 odsto slučajeva u pitanju malware.
  5. Skinite sa https://wordpress.org/download/ svežu WordPress instalaciju i uploadujte je preko FTP-a.
  6. Ulogujte se na Vaš sajt u /wp-admin/, instalirajte istu temu (skinete najnoviju verziju teme, ne koristite staru), instalirajte iste pluginove koje ste imali pre brisanja.
  7. Promenite WordPress admin password (u /wp-admin/).
  8. Obrišete sve ostale admin korisnike (u /wp-admin/).
  9. Promenite FTP password (to je uglavnom ujedno i password od hosting naloga, tako da to u većini slučajeva možete uraditi u hosting panelu).
  10. Promenite MySQL password (to takođe u većini slučajeva možete da uradite u hosting panelu), a zatim taj novi MySQL password unesite u wp-config.php fajl (preko FTP-a).

Važno je ne da ne preskočite nijedan korak, čak i ako vam se neki korak čini besmislenim, verujte nam da ni jedan to nije. Preskakanjem bilo kog koraka biste rizikovali da hakerima ostavite prolaz do vašeg sajta i date im priliku da ponovo inficiraju sajt — pa ste onda uzalud čistili sajt.

Pošto nismo brisali bazu niti uploads/ folder (uploadovane slike), sajt će imati isti sadržaj kao pre brisanja WordPress fajlova.

Jedino će možda biti potrebno da neka podešavanja u okviru teme ili pluginova ponovo podesite.

Na kraju još jednom ponavavljamo  nikada, ali nikada, ne koristite WordPress „nullovane” premium teme i pluginove jer po pravilu dolaze sa malware-om.

Redovno update-ujte WordPress i pluginove jer, kao što smo rekli, često se desi da se otkriju propusti u pluginovima, a ponekad i u samom WordPressu. Ako ih ne update-ujete hakeri će sasvim sigurno iskoristiti te propuste i ući na vaš sajt.

I za kraj jos nekoliko saveta od autora plugina WordFence, kako na vreme da saznate da li vam je sajt hakovan.


Tekst je originalno objavljen na blogu MyCity Hostinga, a autor Predrag Damnjanović je osnivač ove kompanije.