Servicii site-uri WordPress
Devirusare site
Ce sunt programele malware sau virușii pentru un website?
Virușii sunt un tip de software proiectat pentru infiltrarea într-un server web, fără consimțământul proprietarului acestuia.
Scopul acestor programe este foarte divers și in principiu poate fi de a face publicitate, de a distruge funcționalitatea acestuia, de a fura informații sau de a se folosi în scopul extinderii pe alte servere sau website-uri.
Cum putem sa ne protejam siteul WordPress de programele malware?
1. Sa folosim cat mai puține plugin-uri.
Exista o tentație a designerilor de site de a instala un plugin pentru fiecare funcționalitate pe care clientul o cere. In general aceasta abordare este adusa de eficacitatea cu care developerul poate realiza aceste cerințe, dar aceasta abordare vine întotdeauna cu mai multe dezavantaje cu ar fi riscul unei vulnerabilități crescute prin instalarea prea multor plugin-uri deoarece in multe cazuri acestea nu sunt întreținute suficient și conțin vulnerabilități.
2. Sa instalam plugin-uri sau teme din surse sigure și testate suficient
Tot din dorința de a rentabiliza implementarea cerințelor se instalează module din surse nesigure sau cu vulnerabilități. Exista cazuri când teme legitime sunt modificate pentru a include cod malițios.
3. Sa modificam codul temei, modulelor sau core al WordPress înțelegând ce facem.
Este tentant sa punem coduri copiate în fișierul functions.php al temei sau să editam codul sursă al unui plugin. Este important sa se cunoască în detaliu ce face acel cod și ce implicații are el la nivelul întregii aplicații.
4. Sa ținem serverul Up-To-Date .
Un server care nu este la zi atrage dupa sine vulnerabilități, performante de viteza scăzute și probleme de compatibilitate cu site-ul.
5. Sa verificam accesul și sa stabilim parole puternice.
Aici este important sa avem în vedere accesul la consola site-ului, accesul la contul de administrare al hostingului(C Panel), la conturile de ftp, la bazele de date și chiar la calculatoarele care fac administrarea acestor aplicații.
6. Sa securizam accesul la server si la website.
Trebuie sa ne asiguram ca toate conectarile la server sau la website se fac in mod criptat, folosind protocoare SSL/TLS. Si aici ne referim la conexiunea la website, la webmail si la CPanel (https), conexiunea la mail (porturi criptate IMMAP/POP3), conexiunea la FTP sa fie SSL (portul 22).
Cum devirusam un site in WordPress.
Exemplul de mai jos se refera la un website aflat la un hosting CPanel.
Daca am ajuns in aceasta situatie sau suspectam ca suntem in aceasta situatie, trebuie sa urmarim urmatorii pasi.
1. Blocati accesul la site si lastai acces numai de la IP-ul dumneavoastra
Deschideti Cpanel si mergeti in „File manager”. In folderul public_html unde se afla radacina sitului veti gasi fisierul „.htaccess”
Editati acest fisier si lasati accesul doar de la IP-ul de unde va aflati (puteti cauta pe internet „My IP” si veti gasi o serie de 4 numere despartite cu puncte). „.htaccess”
Adaugati la inceputul fisierului aceste linii:
order deny,allow
deny from all
allow from XXX.XXX.XXX.XXX
Unde XXX.XXX.XXX.XXX este IP-ul tau extern, cel al calculatorului de unde lucrezi. Pentru a verifica restrictia schimba ultima cifra si verifica daca mai ai acces la site. Daca nu mai ai inseamna ca restrictia functioneaza si poti restaura Ip-ul.
2. Schimbati toate parolele
Schimbati parolele de administrare din CPanel:
- La CPanel si la conturile de email din CPanel > Email Accounts
- La utilizatorii bazelor de date din CPanel > MySQL® Databases (retineti aceste parole deoarece ele vor trebui copiate in fisierul /wp-config.php)
- La conturile de ftp daca acestea exista CPanel > MySQL® Databases
Deschideti fisierul /wp-config.php si retineti denumirea bazei de date. Pentru aceasta baza de date va trebui sa schimbati parolele de acces si sa faceti backup
Daca sunt mai multe site-uri si/sau mai multe baze de date se va face acest lucru pentru fiecare baza.
Atentie! La schimbarea parolelor pentru utilizatorii bazei de date site-ul va deveni momentan nefunctional.
Acum nimeni nu a mai avea acces la site in afara de dumneavoastra. Deci puteti sa va relaxati si sa lucrati cu atentie.
3. Faceti un backup la site si la baza de date. Acest lucru se poate face in mai multe moduri:
- Varianta 1. Daca contul de cpanel nu pune la dispozitie un backup automat nu mai este nevoie sa faceti backupuri dar asigurativa ce ultimul backup este facut de curand si downloadati in acest backup pe calculator pentru a fi siguri ca aveti acces la el.
- Varianta 2. Daca nu exista backup automat va trebui sa faceti acest lucru manual folosind CPanel > Backup
Faceti o copie „Full Backup” sau „Partial Backups” (filele si baza de date se vor descarca separat in doua arhive). - Varianta 3. Pentru cei cu mai multa experienta, din „File manager” apasati pe butonul din dreapta de la mouse si apasati compress. Aici selectati „.zip” memorati calea unde se va trimite arhiva si apasati „Compress Files”. in radacina sistemului veti gasi arhiva filelor.
Pentru baza de date va trebui sa deschidem fisierul wp-config.php aflat tot in radacina site-ului si sa aflam denumirea bazei de date. Mergeti apoi in CPanel > phpMyAdmin selectati baza de date si apasati „export”
Arhiva bazei de date se descarca automat pe calculator la export.
4 Schimbati parolele administratorilor site-ul si ale utilizatorilor cu drepturi restranse
Generati alte variabile SALT (https://api.wordpress.org/secret-key/1.1/salt/) si copiatile in /wp-config.php
4. Devirusarea
In acest moment se poate incepe devirusarea. Este recomandat sa aduceti site-ul in forma nevirusata inainte de a proceda la update-uri.
Primul pas ar fi sa gasiti fisiere noi(adaugate) sau coduri malitioase inserate in fisierele WordPress.
Se vor cauta:
- foldere sau file modificate recent si se va retine data modificarii si formatul numelui filelor
- file care nu sunt din structura WordPress, a temei sau in structura plugin-urilor. Aceasta se poate face comparand file cu o instalare noua sau cu un backup mai vechi, nevirusat.
- file care au dimensiunea modificata fata de versiunea originala.
Acesta se poate face mai rapid prin scanare automata cu module dedicate, prin comenzi executate manual sau prin inspectare manuala, metoda care este insa foarte laborioasa.
Dar, aproape in toate cazurile sunt necesare ambele metode, mai ales pentru tema principala, pentru a ne asigura ca nu exista scapari.
In cazul scanarii automate se recomnda unul din modulele de securitate puse la dispozitie de WordPress(Wordfence), care indica cu exactitate ce file au fost modificate.
Pentru cautarea manuala este nevoie de experienta sau/si de mai multe ore de documentare.
Pentru toate folderele si fisierele wordpress mai putin ./wp-content/themes/ si /uploads este bine sa se faca o cautare automata prin comparatie cu alte instalari nevirusate.
Pentru „/wp-content/themes/” este necesar sa caute manual sau prin comparatie daca exista un backup mai vechi al temei.
Pentru tema child „/wp-content/themes/<temacurenta-child>” se va cauta/inspecta manual fiecare fila.
Cautarea manuala se face editand fiecare fila din template index.php, functions.php, header.php … si incercand sa gasim coduri malitioase. Aceste coduri contin functii precum eval(), base64_decode(),str_rot13(), gzinflate() si stringuri de forma „\x62\x61\……” sau pot contine functii exec(), system(), passthru() ce pot da acces la comenzi de sistem. In general sunt pasaje de cod inserate in codul filelor obisnuite.
Functii utile pentru cautare utile daca aveti acces la o consola ssh la server :
find -type f -name "*.php" -exec sed -i '/
find -type f -name "*.php" -exec sed -i '/
find -type f -name "*.jpg" | xargs grep -i php copiat
find -type f -name "*.php" | grep -i '<iframe' copiat
find -type f -name "*.php" | grep -i '<script' copiat
find ./wp-content/uploads/ -name "*.php"
Daca ati gasit file compromise cautati fisiere care au data ultimei modificari similara.
Odata eliminate toate aceste fisiere sau codurile malware incluse in fisiere valide trebuie verificata si baza de date.
Cautati in baza de date folosind CPanel > phpMyAdmin coduri de tipul celor de mai sus
Exemplu: cauta in toate tabelele comparatie: LIKE, termen: ‘%<iframe%’
5. Securizati instalarea
– In „/wp-content/uploads/” Stergeti toate fisierele .php,.js
– In „/wp-content/uploads/” Adaugati fisierul .htaccess
deny from all
– In „/wp-config.php” adaugati linia: define(‘DISALLOW_FILE_EDIT’, true);
Resetati permisiunile folderelor si filelor si timpii de creere modificare ai filelor
chown www-data:www-data -R * # Let Apache be owner
find . -type d -exec chmod 755 {} \; # Change directory permissions rwxr-xr-x
find . -type f -exec chmod 644 {} \; # Change file permissions rw-r–r–
find /target/dir -exec touch -m -d ‘1/1/2000’ {} + # schimba data filelor
6. Faceti un nou backup cu versiunea devirusata a siteului
Acest lucru este necesar deoarece ne putem intoarce usor la aceasta versiune daca ceva nu va functiona dupa update.
7. Faceti update la module la teme si la wordpess.
In unele cazuri este necesar sa se faca din nou update la module dupa actualizarea WP.
Aduceti PHP din CPanel la ultima versiune (>7.4) si verificati ca sitemul functioneaza corect.
8. Verificati site-ul in frontend.
Deschideti un browser si apasati pe butonul din dreapta al mouse-ului in orice regiune a siteului, dupa care apasati inspect. Selectati din meniul de jos Network si accesati siteul tinand tasta „Shift” apasata.
Veti vedea toate resursele care se incarca in pagina. Verificati ca toate sunt valide, ca sunt din surse sigure si verificati ca au protocolul https. In caz contrar trebuiesc remediate toate resursele nevalide.
9. Setati cu ajutorul modulelor de securitate instalate notificari pe mail si verificati functionalitatea acestora
10. Faceti un al treilea backup cu versiunea devirusata a site-ului si adusa la zi
11. Acum puteti reda accesul la site
Eliminand liniile adaugate in .htaccess (Punctul 1) ce restrictioneaza adresele de IP
12. Inspectati zilnic si apoi saptamanal site-ul cu modulele de scanare instalate si urmariti cu atentie notificarile.
Deoarece zilnic apar noi vulnerabilitati intretinerea site-ului devine un proces continuu. Astfel garantia totala ca sunteti protejati practic nu exista, dar posibilitatea de ca site-ul sa fie compromis scade spre zero. Veti fi avertizat prin notificari daca sunt activitati suspecte si veti avea un backup recent cu care eventual puteti sa restaurati site-ul.
Daca nu puteti realiza singuri acesti pasi va putem oferi Servicii de devirusare a site-urilor in WORDPRESS