Web
Analytics
Recomandare

Cum devirusezi un site pe WordPress

WordPress este un CMS tanar, lansat in 2003, cu o cota de piata impresionanta. Peste 27% din siteurile din intreaga lume folosesc platforma Wordprees, ceea ce-i da o cota de piata estimata la 60% din totalul siturilor ce folosesc CMS-uri

Usurinta in utilizare, extensibilitatea si o matura comunitate de dezvoltatori fac din WordPress o optiune populara si o alegere sigura pentru situri web de toate dimensiunile, de la bloguri pana la siteuri de prezentare si chiar aplicatii web ce au la baza platforma WordPress.

Securitatea platformei a fost deseori subiectul unor controverse in randul dezvoltatorilor web. O parte sustin ca fiind nesigura si intr-adevar, core-ul platformei a avut momente de rascruce si au fost identificate vulnerabilitati minore, dar toata controversa cu privire la securitate este datorata in primul rand faptului ca orice programator junior poate dezvolta cu usurinta module si teme wordpress chiar daca nu are cunostinte cu privire la securitate, apoi daca 27% din siteurile din intreaga lume folosesc WordPress, este firesc sa fie indreptata atentia publicului spre acest CMS. Analistii in securitate informatica, infractorii cibernetici, comunitatea WordPress, toti vor sa identifice metode prin care pot accesa continut fara persmisiunea administratorului de sistem.

Sunt +30.000 de module si +2.000 de teme listate pe siteul WordPress.org. Pe ThemeForest sunt peste 11.000 teme iar pe CodeCanyon sunt +6.200 module listate. Aceste teme și module sunt revizuite manual de catre voluntari WordPress Foundation inainte de a deveni disponibile in director, iar pe Envato sunt specialisti pe diverse CMS-uri care analizeaza modulele inainte de aprobare.

Includerea modulelor si temelor in directorul WordPress.org sau pe diverse marketplace-uri (cum ar fi Envato) nu garanteaza ca acestea nu au vulnerabilitati de securitate. Exista ghiduri pentru dezvoltatorii de module pe care acestia sa le consulte, iar pe WordPress.org este disponibila si o documentatie stufoasa despre cum se dezvolta o temă WordPress.

Din pacate, jumatate din atacurile cibernetice sunt datorate vulnerabilitatilor modulelor sau a temelor, neactualizarea acestora dar o foarte mare parte din atacuri sunt datorate unei slabe pregatiri a fluxului operational de mentenanta a unui site web. Fiind o platforma ce perimite crearea unor siteuri de prezentare, sunt foarte multi care construiesc siteul cu acest CMS si apoi il abandoneaza chiar si un an fara sa mai verifice integritatea fisierelor pe host, daca s-a mai publicat ceva automat (este un prim semn ca ai fost atacat atunci cand intri pe site si te redirectioneaza catre siteuri warez sau ai articole cu Viagra publicate), daca mai exista hostul etc.  Cred ca un audit serios de securitate ar trebui sa existe cel tarziu o data la 2 ani si apoi periodic ar trebui testate scenarii de prevenire a atacurilor cibernetice. Nu folosesc vreun ghid anume, blogul meu este doar un blog care , dar checklist-ul personal de prevenire arata in felul urmator:

  • parola se schimba o data la 3 luni
  • am backup automat al bazei de date in dropbox si digi storage pentru ultimele 30 zile
  • am backup automat al fisierelor in dropbox si digi storage, o data pe saptamana si sunt tinute ultimele 5 versiuni
  • fac update la module si tema pe site numai dupa ce am verificat ca local nu crapa sau nu intra in conflict cu alte module
  • Folosesc .git pentru dezvoltare deci oricand pot sa imi iau proiectul de acolo, chiar daca nu am media files (nu are rost sa tin +3GB de imagini pe .git
  • limitez pe cat posibil semnaturile WordPress, meta-urile din head atat pentru tema cat si pentru module. Mai scapa cate unul dar nu vezi meta-uri jumate de pagina
  • limitez accesul remote la baza de date si fisiere. Folosesc numai acces pe cheie SSH, nu FTP. Pe hosturile unde am FTP limitez accesul la nivel de IP
  • limitez accesul la wp-login.php, wp-admin la nivel de IP iar la xml rpc dau disabled.
  • Ca sa nu stau sa pun index.php pe fiecare director nou creat mai ales ca developerii de module omit deseori sa puna in index in folderele cu media files, limitez accesul la vizualizarea structurii directoarelor (ex: accesul direct pe wp-content/an/luna)
  • eventualele conturi de autor/editor nu au acces la editorul temei/modulelor din admin
  • verific periodic daca au aparut fisiere in plus (de regula .ico cu dubla extensie sau chiar .php-uri) in directoare
  • verific periodic daca au fost actualizate fisiere de pe host de care nu stiu sa le fi actualizat eu. Sucuri are un modul util si gratuit.

Ghinionul ne loveste cand nu te astepti, unii au parole gasibile in dictionarele botilor, altii au parola similara userului, alteori faci un pustiu de bine si gazduiesti pe acelasi host siteul unui prieten si iti e afectata integritatea fisierelor sau a bazei de date prin backdoor-uri aflate in tema nulled a amicului, necazuri se intampla.  Mai ales ca zilnic sunt peste 37.000 siteuri atacate conform unor statistici din 2016 (sursa).

Devirusarea unui site, fie ca este un blog, fie ca este siteul de prezentare al unei companii, nu este la fel ca devirusarea unui calculator unde apas pe butonul de Scan de la Bitdefender si pe urma ma duc sa ma uit la un episod din Vikings pe Netflix. Devirusarea unui site presupune sa intelegi mai intai patternul atacatorului, ce model a folosit pentru a injecta date in baza sau in fisiere, care sunt elementele infectate si ce se poate intampla dupa curatarea lor, daca exista si useri creati automat in baza de date si ce drepturi au alocate, daca au fost create numai fisiere .php sau este alterat si wp-config sau fisierele index cu diverse include-uri ce ar putea apela alte fisiere de pe host (uneori mascate cu dubla extensie) etc.

Primul pas pentru remedierea situatii destul de neplacute pentru orice owner de site, este blocarea accesului public prin htaccess. Apoi incerci sa afli metoda prin care a fost accesat siteul de catre atacator (ftp, web, mysql). Pe baza acestor date incerci sa afli patternul prin care siteul a fost compromis.
Urmatorul pas este sa stergi orice privine din core-ul WordPress. Nu suprascrii fisierele cu un alt WordPress abia descarcat ci stergi fisierele cu totul. Abia apoi populezi cu fisierele dezarhivate ale ultimei versiuni WP. Asta deoarece daca ai un backdoor in /public_html/wp-includes/js/crop/virus.php, acesta nu va dispare singur cand suprascrii fisierele WP ci numai daca stergi folderele si subfolderele cu totul.

Pastreaza totusi wp-config pe care il poti analiza in liniste, folderele cu media files (de regula e wp-content/uploads) si tema curenta. Astfel, nu vei fi nevoit sa cauti in mii de fisiere ci numai in cateva.
Daca folosesti cpanel, exista tool-uri ce scaneaza continutul fisierelor dupa anumite cuvinte cheie, modele si incearca sa identifice orice comportament ce ar putea facilita accesul nepermis pe site. La Chroot optiunea se numeste Virus Scanner si este un conector de la Clam AntiVirus.

Verifica in baza de date daca nu ai cumva useri noi injectati si elimina-i daca au aparut. Schimba imediat si parolele de acces cel putin pentru utilizatorii cu drept de scriere/upload.

Un aspect ignorat de multe ori este ca un atacator nu se va limita la accesarea siteului vizat, ci va planta backdoor-uri, shell-uri in toate siteurile de pe host. Devirusarea siteului tau va fi recunoscuta de catre scripturile plantate deja pe siteurile de pe acelasi host si virusul se va reface destul de repede pe siteul abia devirusat.

Daca nu ai cunostinte minime de arhitectura WP si PHP, apeleaza cu incredere la echipa de suport tehnic din partea hosterului si solicita-le ajutorul chiar daca costurile vor fi de sysadmin. Nu trebuie sa stii criptografie, dar ajuta daca vrei sa intelegi patternul. In plus sunt destul de multe decodere online pe care le-ai putea utiliza.

Distribuie articolul pe:
TwitterFacebookGoogle+
Cristian Iosub