Ai un site care merge. Într-o zi primești un email de la găzduire despre „activitate suspectă” sau un client îți spune că site-ul l-a trimis pe o pagină cu pariuri. Abia atunci apare întrebarea: ce ar fi trebuit să fac înainte și cât ar fi costat?
Problema cu securitatea e că nu se vede. Când funcționează, nu se întâmplă nimic. Ofertele sunt confuze: unii îți vând un plugin, alții un firewall în cloud, alții un pachet de mentenanță. Niciunul nu spune clar ce rămâne neacoperit.
Mai jos ai o hartă în trei niveluri. Pentru fiecare vezi ce măsuri conține, ce oprește, ce nu oprește și cât te costă, ca ordine de mărime, în bani și timp. La final ai o listă de verificare în ordinea în care ar face-o cineva.
Nivelul 1: ce e gratuit și obligatoriu pentru orice site
Primul nivel nu costă bani. Costă disciplină. Și oprește cea mai mare parte din ce lovește un site obișnuit, pentru că majoritatea atacurilor sunt automate: roboți care caută versiuni vechi de software și parole slabe. Nu te caută pe tine. Caută orice ușă lăsată deschisă.
- Actualizări la timp pentru nucleu, teme și plugin-uri. Când apare o vulnerabilitate publică, roboții o caută în câteva ore.
- Parole unice și lungi, generate de un manager de parole. O parolă folosită și pe alt site ajunge la un moment dat într-o listă scursă.
- Autentificare în doi pași pentru toate conturile de administrator, fără excepție pentru „contul de test” sau „contul agenției”.
- Backup automat, păstrat în alt loc decât serverul site-ului și testat prin restaurare.
- Ștergerea plugin-urilor și temelor nefolosite. Un plugin dezactivat tot are cod pe server și tot poate fi exploatat.
- Roluri minime. Cine scrie articole primește rol de autor sau editor, nu administrator.
- HTTPS peste tot, cu redirecționare de pe http și certificat reînnoit automat.
Ce oprește și ce nu
Oprește: exploatarea vulnerabilităților cunoscute, ghicirea parolelor, reutilizarea parolelor scurse, accesul cu conturi vechi uitate. În practică, cele mai multe site-uri sparte au picat aici, nu pe ceva sofisticat.
Nu oprește: o vulnerabilitate zero-day într-un plugin popular (una pe care nici autorul nu o știe încă), un cont compromis prin phishing sau un atac care vine prin serverul de găzduire, nu prin site.
Cât costă
Zero în bani. În timp, câteva ore la început pentru a pune ordine, apoi de obicei una sau două ore pe lună pentru actualizări și verificarea backupului. Dacă nu ai pe cineva care să facă asta constant, un abonament de întreținere și actualizări este forma în care se cumpără, de fapt, nivelul 1.
Nivelul 2: ce adaugă un firewall și regulile de acces
Al doilea nivel presupune că cineva va încerca mai mult decât o scanare: roboți mai insistenți sau un atacator care a găsit o breșă înainte să apuci să actualizezi. Aici reduci fereastra de risc și câștigi vizibilitate.
- Firewall aplicativ (WAF), la nivel de plugin sau de server. Filtrează cererile care seamănă cu tipare de atac cunoscute înainte să ajungă la codul site-ului.
- Limitarea încercărilor de autentificare: după câteva parole greșite, adresa respectivă este blocată temporar.
- Blocarea accesului la fișiere sensibile:
wp-config.php,readme.html,xmlrpc.php, directorul.gitși arhivele de backup sau de migrare uitate în webroot. - Monitorizarea modificărilor de fișiere. Când un fișier din nucleu se schimbă fără să fi făcut tu o actualizare, primești o alertă.
- Jurnale de autentificare: cine s-a conectat, de unde, când. Fără ele, la un incident nu reconstitui nimic.
- Antete de securitate:
Content-Security-Policy,X-Frame-Options,Permissions-Policy,HSTS. Spun browserului ce are voie să încarce pagina și de unde. - Ascunderea versiunilor de software din codul paginii și din antetele serverului.
Ce oprește și ce nu
Oprește: forța brută asupra autentificării, o parte din exploatările noi (dacă firewall-ul are regula înainte să ai tu actualizarea), scurgerea de fișiere de configurare și backup. La fel de important, îți arată ce se întâmplă: fără jurnale, un site poate fi compromis luni de zile fără să observe nimeni.
Nu oprește: un administrator cu parolă furată prin phishing, care se autentifică perfect legitim, o vulnerabilitate pentru care firewall-ul nu are încă o regulă, sau probleme la nivelul serverului partajat cu alte site-uri.
Cât costă
Un firewall bun la nivel de plugin are variantă gratuită, dar regulile pentru vulnerabilități noi ajung mai repede în varianta plătită, un abonament anual de ordinul câtorva zeci de euro. Antetele, blocarea fișierelor și jurnalele cer cunoștințe tehnice: câteva ore de configurare, apoi timp ca cineva să citească alertele. Dacă nu ai pe cine, intră într-un serviciu de securitate WordPress cu abonament lunar.
Nivelul 3: infrastructură, izolare și un plan pentru când merge prost
Al treilea nivel are sens când site-ul face bani direct sau ține date de clienți: magazine online, platforme cu conturi, site-uri cu trafic mare. Aici protejezi și contextul în care rulează aplicația.
- Proxy sau CDN cu protecție, de exemplu Cloudflare. Traficul trece mai întâi prin rețeaua lor, care absoarbe atacurile de volum și ascunde adresa reală a serverului.
- Izolarea fiecărui site în containerul lui. Pe o găzduire partajată clasică, un site spart poate ajunge la fișierele celorlalte din același cont.
- Reguli la nivel de server pentru roboți și rate limiting. Roboții agresivi sunt blocați înainte să încarce serverul.
- Monitorizare de disponibilitate și alerte. Afli că site-ul e jos în câteva minute, nu de la un client.
- Testare periodică: cineva verifică activ, la interval regulat, dacă măsurile chiar funcționează.
- Plan de răspuns la incident, scris înainte: cine e sunat, ce se izolează, din ce backup se restaurează, cine anunță clienții.
Ce oprește și ce nu
Oprește: atacurile de tip refuz de serviciu, propagarea unui incident de la un site la altul, roboții care consumă resurse, timpul pierdut până afli că ceva nu merge. Și reduce paguba unui incident care tot se produce, pentru că ai un plan.
Nu oprește: nimic din ce trece prin ușa din față cu o parolă validă. Un administrator care își instalează un plugin piratat, cu cod malițios, trece prin toate cele trei niveluri.
Cât costă
Infrastructură dedicată, nu găzduire partajată, plus timp de administrare de sistem. Costul lunar e cu un ordin de mărime peste nivelul 2. Pentru un magazin care încasează zilnic, o zi de nefuncționare costă adesea mai mult decât un an de nivel 3.
| Nivel | Oprește | Nu oprește | Cost |
|---|---|---|---|
| 1. Igienă | Atacuri automate pe versiuni vechi și parole slabe | Zero-day, phishing, probleme de server | Timp, 1-2 ore pe lună |
| 2. Firewall și reguli | Forță brută, o parte din exploatările noi, scurgeri de fișiere | Cont furat prin phishing, vulnerabilități fără regulă încă | Abonament anual mic plus ore de configurare |
| 3. Infrastructură | Atacuri de volum, propagare între site-uri, timp pierdut până afli | Acțiuni legitime ale unui cont compromis | Cost lunar de infrastructură și administrare |
De ce WordPress se sparge cel mai des prin plugin-uri
Nucleul WordPress este întreținut de o echipă mare și primește actualizări de securitate automat. Plugin-urile sunt scrise de oricine, de la companii cu echipe de securitate până la o persoană care a abandonat proiectul acum trei ani. Site-ul tău rulează cu drepturi depline tot codul din toate plugin-urile instalate. Un singur plugin slab este de ajuns.
Cum evaluezi un plugin înainte să-l instalezi
- Data ultimei actualizări. Peste un an fără nicio actualizare este semn de abandon. Peste doi, nu-l instala.
- Numărul de instalări active. Un plugin cu multe instalări e verificat mai des de cercetători și reparat mai repede. E însă și țintit mai des.
- Istoricul de vulnerabilități. Caută numele plugin-ului într-o bază publică de vulnerabilități. Aproape toate au avut probleme. Contează cât de repede au fost reparate.
- Ce face, de fapt. Dacă ai nevoie de un formular de contact, nu instala o suită cu douăzeci de module din care folosești unul.
Un „plugin de securitate” nu înlocuiește actualizările. Poate bloca tipare de atac cunoscute și îți poate arăta ce s-a modificat, dar nu poate repara o vulnerabilitate din codul altui plugin.
Semnele că ai fost deja compromis
Un site spart nu arată neapărat spart. Atacatorul vrea de obicei să rămână nevăzut, ca să folosească site-ul pentru spam sau phishing. Uită-te după:
- Utilizatori cu rol de administrator pe care nu îi cunoști.
- Pagini sau articole pe care nu le-ai scris, adesea în altă limbă sau despre jocuri de noroc.
- Redirecționări ciudate care apar doar pe mobil sau doar când vii din Google.
- Avertismente în Google Search Console, la secțiunea de securitate.
- Fișiere modificate recent în nucleu sau fișiere noi cu nume aleatorii.
- Emailuri trimise de pe domeniul tău fără știrea ta.
- Încetinire bruscă, fără să fi schimbat nimic.
Ce faci întâi, în ordinea asta
- Nu șterge urmele. Fă mai întâi o copie a site-ului așa cum e, cu tot cu infecție, ca să poți afla pe unde a intrat.
- Schimbă parolele: toate conturile de administrator, baza de date, contul de găzduire, FTP sau SSH. Atacatorul poate avea mai multe intrări.
- Izolează. Pune site-ul în mod de mentenanță sau blochează accesul public până rezolvi.
- Restaurează dintr-un backup curat, de dinainte de incident. Curățarea manuală lasă aproape întotdeauna ceva în urmă.
- Caută cauza. Ce plugin era neactualizat, ce cont avea parolă slabă. Dacă restaurezi fără să închizi ușa, incidentul se repetă în câteva zile.
Backupul: singura dovadă că există e restaurarea
Toate cele trei niveluri se sprijină pe backup. Nu previne nimic, dar transformă un dezastru într-o oră pierdută.
Regula clasică e 3-2-1: trei copii, pe două medii diferite, dintre care una în alt loc. Pentru un site: o copie pe server, una în contul de găzduire sau într-un plugin de backup, și una la alt furnizor. Dacă serverul e compromis, copiile de pe el dispar odată cu el.
Frecvența depinde de cât de des se schimbă site-ul. Un site de prezentare modificat de câteva ori pe lună poate avea backup săptămânal. Un magazin cu comenzi zilnice are nevoie de backup zilnic al bazei de date, altfel pierzi comenzi.
Un backup pe care nu l-ai restaurat niciodată e o presupunere, nu un backup. Arhivele pot fi incomplete sau corupte fără ca nimeni să observe. Fă o restaurare de test pe un subdomeniu sau pe un server de probă măcar o dată pe trimestru. Abia atunci știi că ai backup.
Lista de verificare
- Activează autentificarea în doi pași pe toate conturile de administrator.
- Schimbă parolele scurte sau refolosite; pune-le într-un manager de parole.
- Șterge conturile vechi și coboară rolul celor care nu au nevoie de administrator.
- Actualizează nucleul, tema și plugin-urile. Șterge ce e dezactivat și nefolosit.
- Verifică data ultimului backup și unde e păstrat. Dacă e doar pe server, adaugă o copie în alt loc.
- Fă o restaurare de test și notează cât a durat.
- Verifică dacă
readme.html,xmlrpc.phpși eventuale arhive de backup sunt accesibile public. Verificarea gratuită a site-ului îți arată rapid antetele de securitate și fișierele expuse. - Instalează sau configurează un firewall și limitarea încercărilor de autentificare.
- Pornește jurnalele de autentificare și monitorizarea fișierelor, apoi stabilește cine le citește.
- Dacă site-ul încasează bani sau ține date de clienți, ia în calcul infrastructură izolată, monitorizare și plan de răspuns.
- Pune în calendar o verificare trimestrială a întregii liste.
Intră în panoul de administrare, activează autentificarea în doi pași pe contul tău de administrator, apoi caută data ultimului backup. Dacă nu o găsești în cinci minute, ai aflat deja care e prima problemă de rezolvat.