Modulul 7 · 7.5
Site piratată: recunoaștere, remediere și prevenire
Modulul 7: Securitate · Timp de citire: 10 minute
Obiectiv de învățare: După această lecție veți putea recunoaște un atac informatic, îl veți remedia în ordinea corectă și veți preveni repetarea lui.
Concepte-cheie: semnale ale unui atac, documentare, izolare, înlocuirea tuturor parolelor și a cheilor de securitate (salts), găsirea punctului de intrare, jurnale (logs), copie de siguranță curată, reinstalare curată, sume de control (checksums), administratori necunoscuți, PHP în uploads, mu-plugins, Search Console, raportarea unei încălcări de date
Ce înseamnă o site piratată
O site este piratată (hackuită) atunci când cineva a obținut, fără permisiune, controlul asupra (unei părți din) site. Poate modifica fișiere sau baza de date, sau poate rula cod. Deseori persoana rămâne cu acces printr-o ușă din spate (backdoor): un fișier ascuns sau o bucată de cod prin care se poate întoarce mai târziu, chiar dacă închideți vulnerabilitatea inițială.
Acesta este și miezul acestei lecții: nu este suficient să îndepărtați doar daunele vizibile. Atât timp cât ușa din spate există, sau vulnerabilitatea prin care a pătruns rămâne deschisă, atacul se va repeta. Deseori în câteva zile.
Recunoaștere
Semnale (unele le vedeți, altele trebuie căutate):
- Google afișează pentru site dumneavoastră mesajul „Această site poate fi piratată”, sau Search Console raportează o problemă de securitate.
- În rezultatele căutării (
site:example.com) apar pagini pe care nu le recunoașteți, adesea în altă limbă sau despre medicamente, jocuri de noroc sau magazine false. - Vizitatorii sunt redirecționați, de multe ori doar dacă vin din Google sau de pe un telefon. Dumneavoastră nu observați, pentru că sunteți autentificat sau accesați site prin favorite (bookmark). Testați într-o fereastră privată, pornind de la un rezultat de căutare.
- La Utilizatori apare un administrator pe care nu îl recunoașteți.
- Există fișiere PHP în
wp-content/uploads, sau fișiere cu nume ciudate în folderul rădăcină sau înwp-content/mu-plugins. - Furnizorul de găzduire sau un scanner de malware raportează fișiere infectate; e-mailurile dumneavoastră sunt respinse sau pachetul de găzduire trimite spam.
- Site devine brusc lentă sau spațiul de stocare se umple.
Planul pas cu pas
1. Păstrați calmul și documentați
Nu aruncați nimic imediat. Notați ce observați și de când, faceți capturi de ecran și realizați o copie a stării actuale (fișiere și bază de date, sau o copie de siguranță suplimentară prin furnizorul de găzduire). Veți avea nevoie de această copie pentru a găsi punctul de intrare și ca dovadă. Nu o plasați în folderul web.
2. Opriți daunele pentru vizitatori
Dezactivați temporar site sau puneți-o în spatele unei pagini de mentenanță, mai ales dacă vizitatorii sunt redirecționați către malware sau phishing. În DirectAdmin puteți suspenda domeniul; în alte sisteme puteți proteja întreaga site cu o parolă sau folosi un fișier temporar index.html cu un mesaj.
3. Înlocuiți toate parolele și cheile
Presupuneți că intrusul cunoaște fiecare parolă care putea fi găsită pe sau prin intermediul site. Înlocuiți, de preferință de pe un alt computer (curat):
- parola panoului de găzduire și a tuturor conturilor FTP și SFTP (ștergeți conturile pe care nu le folosiți);
- parola utilizatorului bazei de date, și actualizați-o în wp-config.php;
- parolele tuturor administratorilor WordPress, și ștergeți conturile pe care nu le recunoașteți;
- cheile și salts din wp-config.php (lecția 1.3). Astfel expiră toate cookie-urile de autentificare, inclusiv ale intrusului;
- parolele aplicațiilor (lecția 3.3) și cheile API ale integrărilor;
- parolele de e-mail, dacă s-a trimis spam printr-o căsuță poștală.
Activați apoi autentificarea în doi pași pe tot (lecția 7.3).
4. Găsiți punctul de intrare
Fără să cunoașteți punctul de intrare, nu puteți fi sigur că este închis. Cele mai frecvente cauze (lecția 7.1), și unde să căutați:
- Un modul (plugin) sau o temă neactualizată: ce componente erau în urmă? Căutați numele într-o bază de date de vulnerabilități (lecția 5.3).
- O parolă scursă (leak): verificați istoricul de autentificare al panoului de găzduire și al FTP.
- Jurnalele (logs) serverului web: căutați în jurul momentului în care au apărut primele fișiere ciudate cereri POST către fișiere necunoscute sau către fișiere de module (plugin), adesea de la aceeași adresă IP.
- Fișiere după dată: sortați în File Manager sau prin SFTP după data modificării. Fișierele modificate simultan, mai ales în afara unei actualizări, merită atenție.
5. Curățare
Două abordări, și adesea o combinație:
A. Restaurarea unei copii de siguranță curate dinainte de atac (lecția 8.2). Alegeți o copie de siguranță sigur dinainte de primele semnale, deoarece intrușii uneori așteaptă săptămâni. Restaurați complet, astfel încât și fișierele adăugate să dispară. Actualizați totul imediat după (altfel vulnerabilitatea reapare). Dezavantaj: tot ce a apărut după copia de siguranță (articole, comenzi) se pierde.
B. Reconstrucție curată cu conținutul existent:
- Înlocuiți WordPress propriu-zis cu o copie proaspătă de pe wordpress.org (wp-admin, wp-includes și fișierele individuale; nu wp-content și wp-config.php). Cu WP-CLI puteți verifica mai întâi ce s-a schimbat:
wp core verify-checksums
wp plugin verify-checksums --allAcestea compară fișierele dumneavoastră cu versiunile oficiale și raportează fiecare fișier modificat sau suplimentar (al doilea comandă doar pentru module (plugin) din directorul de module al wordpress.org).
- Ștergeți toate modulele (plugin) și temele și reinstalați-le din sursă, în cea mai recentă versiune. Ce nu vă este necesar, nu se mai întoarce.
- Verificați
wp-content/uploadspentru fișiere PHP și alte fișiere care nu sunt media, șiwp-content/mu-plugins. - Verificați
.htaccesspentru reguli de redirecționare ciudate, și wp-config.php pentru linii pe care nu le recunoașteți. - Verificați baza de date: administratori necunoscuți, opțiunile
siteurl,homeșiactive_pluginsdinwp_options, și căutați în articole scripturi inserate (<scriptcu adrese ciudate). - Verificați sarcinile programate: cronjob-uri în panoul de găzduire și WP-Cron (cu un modul (plugin) sau
wp cron event list).
Un scanner de malware (de la furnizorul de găzduire sau un modul (plugin)) ajută la căutare, dar nu vă bazați orbește pe el: ceea ce nu găsește, poate încă exista.
6. Închiderea vulnerabilității și verificare
- Actualizați totul, întăriți securitatea (lecția 7.4) și reactivați site.
- Este site dumneavoastră marcată ca nesigură de Google? Solicitați în Search Console, la Probleme de securitate, o nouă evaluare, numai după ce totul este curat.
- Monitorizați săptămânile următoare: fișiere noi, administratori noi, notificări de la scannerul dumneavoastră. Dacă problema reapare, înseamnă că punctul de intrare sau o ușă din spate nu a fost încă găsită.
Date cu caracter personal: raportarea unei încălcări de date
Dacă intrușii au avut acces la date cu caracter personal (date ale clienților unui magazin online, formulare trimise, liste de membri, utilizatorii site dumneavoastră), atunci este vorba de o încălcare a securității datelor cu caracter personal în sensul GDPR. Trebuie să o raportați în termen de 72 de ore de la descoperire către autoritatea de supraveghere (în România: ANSPDCP), cu excepția cazului în care este puțin probabil ca aceasta să prezinte un risc pentru persoanele vizate (articolul 33 GDPR). Dacă riscul este ridicat, trebuie să informați și acele persoane direct (articolul 34). Documentați în orice caz ce s-a întâmplat și ce ați făcut, chiar dacă nu raportați. Dacă aveți nelămuriri, consultați site-ul autorității de supraveghere din țara dumneavoastră (în România: ANSPDCP) (lecția 9.3). Pentru situația dumneavoastră, verificați și recomandările ANSPDCP.
Solicitarea ajutorului
Curățarea unui atac informatic necesită timp și experiență. Dacă nu sunteți sigur că ați rezolvat totul, cereți ajutor: constructorul dumneavoastră de site-uri, o firmă specializată, sau furnizorul de găzduire (unii furnizori, inclusiv WebOké, oferă acest serviciu, de obicei contra cost). Oferiți-le copia de la pasul 1, ce ați observat și când, și ce ați făcut deja.
Rezumat
- Un atac informatic lasă adesea o ușă din spate; nu este suficient să îndepărtați doar daunele vizibile.
- Ordine: documentare, protejarea vizitatorilor, înlocuirea tuturor parolelor și a cheilor de securitate (salts), găsirea punctului de intrare, curățare, închiderea vulnerabilității și verificare.
- Curățarea se poate face cu o copie de siguranță curată, mult înainte de atac, sau prin reinstalarea curată a WordPress, a modulelor (plugin) și a temelor, și verificarea folderelor uploads, mu-plugins, .htaccess și a bazei de date.
wp core verify-checksumsarată ce fișiere din WordPress au fost modificate.- Dacă au fost implicate date cu caracter personal, raportați încălcarea de date în termen de 72 de ore către autoritatea de supraveghere (ANSPDCP), cu excepția cazului în care un risc este puțin probabil.
Test (quiz)
Exercițiu
Exercițiul D7.5: Planul dumneavoastră de urgență pentru un atac informatic. Completați planul de urgență pentru propria dumneavoastră site, astfel încât să nu trebuiască să îl improvizați atunci când va fi nevoie: unde sunt stocate copiile de siguranță și cât de departe în timp ajung, cine deține ce parole și cum le înlocuiți pe toate (listă), unde găsiți jurnalele (logs) furnizorului dumneavoastră de găzduire, pe cine sunați pentru ajutor, și ce date cu caracter personal se află pe site (pentru a stabili dacă trebuie să raportați o încălcare de date). Faceți apoi exercițiul: ce cinci pași faceți în prima oră dacă primiți mesajul „Această site poate fi piratată”, în ce ordine, și de ce această ordine?
Exercițiul D7.5: Planul dumneavoastră de urgență pentru un atac informatic
Acest exercițiu îl faceți singur; nimeni nu îl verifică. Bifați ce ați făcut și marcați exercițiul ca finalizat.
Mai întâi documentați (capturi de ecran, păstrarea jurnalelor) înainte de a șterge ceva; protejați vizitatorii (site offline sau pagină de mentenanță); schimbați toate parolele și salts; căutați punctul de intrare; abia apoi restaurați curat. A restaura fără a închide punctul de intrare lasă ușa deschisă.
Bifele și notițele dumneavoastră rămân doar în acest browser; nu le trimitem nicăieri. Dacă sunteți autentificat, păstrăm în Cursurile mele doar faptul că ați finalizat exercițiul.
Lecturi suplimentare
Aceste articole descriu pașii în panourile WebOké; în alte panouri funcționează similar.
- Manual DirectAdmin 18.2: Site-ul meu a fost spart (hackuit): plan de acțiune
- Ajutor! Site-ul meu a fost spart. Cum pot rezolva sau preveni acest lucru?
- Manual DirectAdmin 15.11: Imunify360: scanarea website-ului pentru malware
- Manual DirectAdmin 17.2: Site summary & logs: jurnalul de erori și jurnalul de acces
- Manual DirectAdmin 3.4: Istoricul autentificărilor: cine s-a autentificat și când?
- Încălcări de date (Autoriteit Persoonsgegevens): https://www.autoriteitpersoonsgegevens.nl/themas/beveiliging/datalekken
- Întrebări frecvente: site-ul meu a fost piratată (wordpress.org, în limba engleză): https://wordpress.org/documentation/article/faq-my-site-was-hacked/
