Kako očistiti inficirani sajt i kako sprečiti da do hakovanja uopšte dođe
Često se vlasnicima sajtova dešava da im cyber kriminalci “zaposednu” sajt – prikazujući njihovim posetiocima reklame za lekove za potenciju ili prosto koristeći njihov sajt (njihov hosting) za slanje SPAM emailova.
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, odmah da Vam kažemo da ne brinete – malware jeste veoma teško očistiti (objasnićemo i zašto) – ali postoji drugo rešenje.
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 svoj CMS na sajtu (bilo da je to WordPress, Joomla, Drupal ili nešto četvrto) ne ažurirate (ne apdejtujete) mesecima ili godinama. CMS je softver, kompleksan je, i često se desi da programeri naprave propust. Ti propusti se isprave čim se otkriju, i ako redovno ažurirate svoj CMS (uzećemo za primer da je to WordPress) i njegove pluginove – onda ne morate da brinete. Ali u slučaju da ne ažurirate svoj WordPress i pluginove, ti propusti će dakle 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 je preko “null-ovanih” pluginova i tema. To su one teme i pluginovi koji su komercijalni i koji se plaćaju inače, ali Vi (ili neko ko Vam je pravio sajt) ste ih možda na nekom warez sajtu skinuli “za džabe”, niste ih kupili. E pa sve te teme i pluginovi, koji se inače plaćaju, a koje ste skinuli besplatno, zapravo nisu baš tako “besplatni” – naplate vam to 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 “null-ovana” tema ili plugin.
Zašto je teško očistiti 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š 5-6 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 mesta. 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 na 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.
Potrošili ste dakle 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 biti uopšte 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 – 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 nije tu zapravo oduvek – tako da č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?
Vraćanje sajta iz backupa može da bude rešenje – ali tu imamo opet 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, Vi nemate pojma da je sajt inficiran, i onda 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.
Jedina ispravna odluka je radikalan rez – a suština se sastoji u tome da sa svog sajta (preko FTP-a) obrišete baš sve PHP fajlove – ostavite samo uploadovane slike i konfiguracioni fajl za povezivanje na bazu (kod WordPressa je to wp-config.php).
Sledite ove korake:
- 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)
Dakle, još jednom naglašavamo – sve što na FTP-u sme da ostane je fajl wp-config.php i folder /wp-content/uploads/ - 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 videti kako izgleda normalan wp-config.php fajl – https://generatewp.com/wp-config/ – i možete iznova generisati potpuno nov wp-config.php fajl za Vaš sajt (samo unesite MySQL login podatke).
- Preko FTP-a uđite u folder /wp-content/uploads/ i zatim zavirite u svaki njegov potfolder (kao i u potfoldere potfoldera). Sortirajte fajlove po tipu fajlova (po ekstenziji) i DOBRO proverite da se kojim slučajem u nekom potfolderu ne nalazi neki .php fajl. Ukoliko ga uočite, obrišite ga odmah, jer je u 99.99% slučajeva u pitanju malware.
S obzirom da značajan broj web developera uspeva da ispusti da obriše baš baš sve .php fajlove – ukoliko ste korisnici naše hosting kompanije molimo Vas da nas kontaktirate kako bismo proverili da li ste zaista sve .php fajlove obrisali. Možemo i mi da obrišemo sve .php fajlove. - Skinite sa https://wordpress.org/download/ svežu WordPress instalaciju i uploadujte je preko FTP-a.
- 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.
- Promenite WordPress admin password (u /wp-admin/).
- Obrišete sve ostale admin korisnike (u /wp-admin/).
- 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).
- 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 preskočiti nijedan korak – čak i ako Vam se neki korak čini besmislenim – verujte nam, nijedan nije besmislen. Preskakanjem bilo kog koraka biste rizikovali da hakerima ostavite prolaz do Vašeg sajta – i 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.
Biće možda potrebno samo da neka podešavanja u okviru teme ili pluginova ponovo podesite.
To bi bilo to.
Na kraju još jednom ponavljamo – nikada, ali nikada, ne koristite WordPress “null-ovane” 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 cyber kriminalci će sasvim sigurno iskoristiti te propuste i ući na Vaš sajt.