prodaja@stozacibrid.com hr@hardtechnique.com vjeko.kovacicek@coolintunit.com info@tehnikhard.net mail@coolintunit.com webmaster@stozacibrid.com admin@hardtechnique.com tehnikhard.net web.stozacibrid.com www.coolintunit.com
  • Vaša IP adresa: 18.97.9.169

5 važnih koraka kod čišćenja hakiranog WordPressa

  • POSLuH hosting
  • 12.10.2015.

Redovito održavanje CMS-a važno je za njegov stabilan rad, a osobito važno u segmentu sigurnosti. Vaši podatci i sadržaj mogu biti kompromitirani ako se ne vodi računa o redovitom održavanju sigurnosti web aplikacije, posebno kada se radi o open source rješenjima. Zbog velike popularnosti, WordPress je danas daleko najpopularnija meta hakera u svakodnevnim pokušajima zloporabe sigurnosnih propusta otkrivenih u raznim komponentama CMS-a, koji se zbog velikog tržišta otkrivaju na dnevnoj bazi. Kada se problem već dogodi (zbog neredovitog održavanja, nepravilne zaštite ili masovnog sigurnosnog propusta) potrebno je pažljivo slijediti upute u dokumentaciji kako se problem ne bi ponovio. U nastavku je osvrt na takve mjere zaštite i upute koje je bitno temeljito slijediti, upravo radi sprečavanja ponovnog neovlaštenog pristupa Vašem sadržaju.

  • 1. Preuzimanje sadržaja
    •     1.1. Preuzimanje cjelokupnog sadržaja web prostora uključujući i sadržaj baze podataka.
    •     1.2. Preuzimanje tjedne/mjesečne sigurnosne kopije podataka (backup).
  • 2. Uklanjanje cjelokupnog sadržaja
  • 3. Provjera sadržaja sigurnosne kopije
  • 4. Nova instalacija WordPressa
    •    4.1 Promjena lozinki i sigurnosnih ključeva i ostalih postavki CMS-a
    •    4.2 Vraćanje sadržaja baze podataka i web prostora
  • 5. Instalacija dodatka

1. Preuzimanje sadržaja (web + baza podataka + backup)

Nakon što ste samostalno primijetili ili dobili obavijest da je Vaša instalacija WordPressa kompromitirana, prvi korak je – svakako – spremanje kopije trenutnog sadržaja i preuzimanje sadržaja iz backupa koji je napravljen u vrijeme za koje smatrate da je WordPress bio u kontroliranom stanju (da je sve bilo u redu). Preporuka je da sadržaj baze podataka i datoteke vraćate iz backupa starijeg od 14 dana jer se do sad pokazalo kako čišćenje i provjera starije kopije sadržaja traje kraće. U slučaju da često radite izmjene i postavljate novi sadržaj na web stranice (na dnevnoj bazi/više puta tjedno) najbolje je da koristite sadržaj iz kopije napravljene prije 48-72h.

2. Uklanjanje cjelokupnog sadržaja

Kako bi suzbili mogućnost proširenja infekcije, nastanka novih kompromitiranih lokacija ili uzrokovanja bilo kakvih problema pružatelju hosting usluga, odmah nakon obavljenog prvog koraka uklonite sav sadržaj s web prostora. Spojite se direktno na server FTP klijentom (Filezilla, WinSCP, FireFTP) ili pomoću "File Manager" alata kroz upravljačko sučelje u cPanelu i uklonite kompletan sadržaj web prostora. Ako ste WordPress instalirali pomoću Softaculous ili nekog drugog rješenja koje nudi mogućnost automatske instalacije popularnih skripti/web aplikacija, brisanje možete napraviti kroz navedeni alat, no važno je napomenuti da ćete tako ukloniti i sadržaj baze podataka te ga nećete biti u mogućnosti koristiti u sljedećem koraku. Ako je baza podataka obrisana, potrebno napraviti novog korisnika s pripadajućim privilegijama i novu bazu podataka. Nakon toga, radi se uvoz sadržaja stare baze podataka koju ćete pregledati u idućem koraku.

3. Provjera sadržaja sigurnosne kopije

Ovaj korak može biti zahtjevan osobito ako se radi o ranije kompromitiranoj bazi podataka gdje je često teško pronaći neželjeni sadržaj. Tablice koje obavezno morate provjeriti su:

prefiks_users | prefiks_posts | prefiks_options

Najčešći tip napada koji narušava integritet baze podataka neke instalacije WordPressa je SQL injection - bilo kroz nedostatak i sigurnosnu rupu neke datoteke kao sastavni dio jezgre CMS-a ili neke dodatne komponente poput dodatka ili predloška. Najbolje je da navedene tablice provjerite silazno prema „id-u“ zapisa (za users i posts) u njima (zadnje dodani = prvi) za bilo kakve sumnjive unose. Kod options tablice pretraga za vrijednostima „generic“, „support“, hash“, „rss“, „hack“, „base64“, „46esab“ za sva polja najčešće može pomoći. U nastavku je primjer upita za pretragu tablice options i posts s nekim generičkim (čestim) uvjetima:

SELECT * FROM `wp_options` WHERE `option_value` REGEXP 'generic|support|hash|rss|hack|base64|46esab' or `option_name` REGEXP 'generic|support|hash|rss|hack|base64|46esab' or `autoload` REGEXP 'generic|support|hash|rss|hack|base64|46esab' or `option_id` REGEXP 'generic|support|hash|rss|hack|base64|46esab'

SELECT * FROM `wp_posts` WHERE 'post_content' REGEXP 'pharmacy|cialis|viagra|xanax|eval|base64|46esab' or `post_title` REGEXP 'pharmacy|cialis|viagra|xanax|eval|base64|46esab'

Preporuka je da se sadržaj predloška ponovno preuzme od izdavača ako nisu napravljene bitne izmjene u postavkama predloška. Druga je opcija da se direktorij predloška preuzme iz starijeg backupa (14 – 30 dana) zbog manje intervencija u čišćenju i pregledavanju integriteta osnovnih datoteka u sklopu predloška. Za navedeno je najbolje pretražiti kompletan sadržaj uz usporedbu s originalom. Prilikom takvih radnji često su jako korisni alati poput:

* Windows Grep (pretraga za čestim ključnim riječima odnosno zlonamjernim kodom ubačenim u neku od datoteka)
* WinMerge (usporedba s prvobitnim/početnim stanjem komponenti predloška).

Nakon provjere sadržaja predloška, on se postavlja u novu instalaciju dok je kod direktorija /wp-content/uploads potrebno u potpunosti pretražiti sve direktorije za datoteke koje nisu slike, pdf ili drugi multimedijski sadržaj. Tu se podrazumijeva brisanje svih .php, .htaccess, php.ini ili drugih datoteka koje tu ne bi trebale biti.

4. Nova instalacija WordPressa

Nakon što je detaljno obrađena faza provjere sadržaja s kojim raspolažete za vraćanje, obavlja se proces instalacije WordPressa. Kako ne bi izgubili određene funkcionalnosti, inačica instalacije mora biti jednaka onoj koju ste prethodno koristili. Preuzmite potrebnu inačicu sa sljedeće poveznice:
https://wordpress.org/download/release-archive/

Pratite upute do koraka unosa postavki za bazu podataka. Kod unosa postavki podatci moraju biti isti kao podatci za bazu podataka (ranije provjerenu) gdje se trenutno nalazi sadržaj za pripadajuću web stranicu. Kroz phpMyAdmin sučelje dostupna je mogućnost promjene prefiksa tablica. Obavezno se kod lozinke i prefiksa tablica koriste nasumično generirani znakovi odnosno podatci koji nisu ranije korišteni. WordPress prilikom instalacije generira nove sigurnosne ključeve. U slučaju da ih trebate ručno generirati, to možete napraviti ovdje:
https://api.wordpress.org/secret-key/1.1/salt/

Napomena: Nije poželjno da preskačete ovaj korak i da koristite datoteke iz vršnog direktorija i direktorija /wp-includes/* i /wp-admin/* iz stare instalacije WordPressa. Najveću mogućnost da ste kvalitetno i uspješno obavili posao kod čišćenja i vraćanja postići ćete ako ste pažljivo pratili sve prethodno preporučene upute. Vraćanje starog sadržaja bazirajte na vraćanju osnovnog (neophodnog) multimedijalnog sadržaja i predloška (za predložak se preporučuje nova instalacija direktno od izdavača). Nikako ne vraćajte dodatke (/wp-content/plugins/) već ih iznova instalirajte i postavite, osim ako se radi o pluginovima gdje se gubi veća količina sadržaja. Za njih svakako prije vraćanja ponovite 4. korak.

5. Instalacija dodataka

Ako ste pravilno odradili sve prethodne korake, kroz administrativno sučelje WordPressa možete iznova instalirati sve potrebne dodatke. No, prije toga, važno je da samu jezgru CMS-a i predloška ažurirate na posljednju dostupnu inačicu. Ako predložak nije ažuriran više od 12 mjeseci i nema dostupnu podršku, trebali bi potražiti alternative. Isto vrijedi i za dodatke. Koristite samo one koji su Vam neophodni i koji imaju pozitivan feedback WordPress zajednice. Nakon instalacije WordPressa možete ukloniti dodatke, datoteke ili predloške koji su automatski postavljeni s WordPressom, a nećete ih koristiti. To su najčešće:


/wp-content/plugins/hello.php
/wp-content/plugins/askimet/
/wp-content/themes/twentyfifteen/
/wp-content/themes/twentyfourteen/
/wp-content/themes/twentythirteen/
/license.txt
/readme.html
/wp-config-sample.php

Treba napomenuti da se prilikom svake veće obnove inačice WordPressa većina ovih komponenti ponovno vraća.

Mjere zaštite

Obzirom na nastalu situaciju, očigledno je da mjere zaštite nisu bile odgovarajuće. Kako bi popravili opću razinu sigurnosti WordPress CMS-a korisno je pratiti trendove i konvencionalne metode zaštite čime smanjujete mogućnost bilo kakvog incidenta ispod 0.1%. Potrebno je redovito (barem 2 puta mjesečno) provjeravati postoje li nove inačice pojedine komponente CMS-a. Posao Vam može pojednostaviti dodatak poput „Wordfence Security“ (preporuka) koji će Vam redovito (na dnevnoj bazi) slati obavijesti o novim inačicama CMS-a, dodataka, predloška ili o bilo kakvim sumnjivim aktivnostima. Detaljnije informacije, zašto i kako zaštititi WordPress dostupne su ovdje:
http://codex.wordpress.org/Hardening_WordPress
Svakako pročitajte naše opće upute za maksimalnu zaštitu WordPress CMS-a koji Vam pritom mogu pomoći: https://www.posluh.hr/pdf-upute/sigurnost/Savjeti-za-maksimalnu-zastitu-WordPress-Open-Source-CMS-a.pdf

Za besplatni savjet ili ponudu za sve navedene i dodatne mjere zaštite WordPressa, slobodno nas kontaktirajte.