Sari la conținut

Atac brute force pe wp-login: cum îl recunoști și îl oprești

Află cum arată un atac brute force pe pagina de login WordPress, cum îl identifici în loguri și ce măsuri îl limitează: parole, 2FA, limitare de încercări, blocare IP.

L Echipa Leono 11 min citire

Dacă ai deschis vreodată jurnalul serverului și ai văzut sute de cereri către aceeași pagină de autentificare, în câteva minute, de la adrese diferite, ai văzut probabil un atac de tip brute force. Numele sună dramatic, dar ideea este simplă: un program încearcă, pe rând, foarte multe combinații de utilizator și parolă până când una se potrivește. Nu există nimic subtil în metodă, iar tocmai de aceea este atât de răspândită.

Pe WordPress, ținta clasică este fișierul wp-login.php, adică pagina unde te autentifici în panoul de administrare. Fiecare site WordPress are aceeași adresă de login, iar programele automate o cunosc dinainte. În continuare vezi cum arată atacul, cum îl identifici, ce poate merge prost dacă îl ignori și, mai ales, cum îl limitezi în straturi.

Ce este, de fapt, un atac brute force

„Brute force" înseamnă „forță brută": în loc să găsească o breșă în cod, atacatorul încearcă să ghicească datele de acces. Există câteva variante pe care e bine să le deosebești:

  • Brute force clasic: se încearcă multe parole pentru același utilizator, de pildă „admin".
  • Dicționar: se încearcă o listă de parole frecvente, cum ar fi cele folosite de mulți oameni sau apărute în scurgeri de date publice.
  • Credential stuffing: se testează perechi de utilizator și parolă obținute din scurgeri de la alte servicii, pe ideea că oamenii își reutilizează parolele.
  • Password spraying: se încearcă o singură parolă comună pe foarte mulți utilizatori, ca să nu declanșeze blocări pe un singur cont.

Atacul nu are nevoie de abilități speciale din partea celui care îl pornește. Rețelele de calculatoare compromise (botnet-uri) distribuie încercările pe multe adrese IP, astfel că sursa pare să se schimbe constant. De aceea o singură adresă blocată manual rareori este de ajuns.

De ce este vizată exact pagina de login

Din punctul de vedere al atacatorului, avantajele sunt clare:

  1. Adresa este previzibilă: /wp-login.php și, ca alternativă, /wp-admin.
  2. Un cont de administrator compromis oferă control aproape complet asupra site-ului.
  3. Multe site-uri nu limitează numărul de încercări, deci atacul poate continua nestingherit.
  4. Numele de utilizator se pot deduce uneori ușor, de exemplu din adresa autorului sau din numele afișat în articole.

Mai există o cale lăturalnică: interfața XML-RPC (fișierul xmlrpc.php) permite autentificarea din aplicații externe și poate fi folosită pentru încercări de parole în același mod. Dacă o lași deschisă fără să o folosești, atacul o poate ocoli pe cea principală.

Cum recunoști un atac în loguri

Primul loc unde cauți este jurnalul de acces al serverului (access log), pe care hostingul îl pune de obicei la dispoziție din panou. Nu ai nevoie de unelte speciale, ci de atenție la câteva tipare.

Semnele tipice

  • Multe cereri POST către /wp-login.php într-un interval scurt. Cererea POST este cea care trimite datele de autentificare, spre deosebire de GET, care doar afișează pagina.
  • Același răspuns repetat. Încercările eșuate returnează de obicei aceeași pagină (cu mesajul de eroare), deci vezi același cod de răspuns și aceeași dimensiune a răspunsului din nou și din nou.
  • Adrese IP multiple cu comportament identic. Dacă zeci de adrese diferite trimit exact același tip de cerere la intervale regulate, probabil este o rețea coordonată.
  • Agenți de utilizator ciudați sau lipsă. Programele automate folosesc uneori identificatori generici sau identici pentru toate cererile.
  • Cereri la ore neobișnuite sau fără pauze. Un om nu încearcă o parolă la fiecare secundă.
  • Încercări către utilizatori inexistenți. Dacă vezi nume pe care nu le-ai creat niciodată, cineva testează liste.

Alte indicii din afara loguri

  • Site-ul devine lent fără o cauză clară, pentru că serverul procesează mii de cereri de autentificare.
  • Utilizatorii legitimi se plâng că nu se pot loga sau că sunt blocați.
  • Primești multe emailuri de notificare despre încercări eșuate, dacă ai un instrument de monitorizare.
  • Apar autentificări reușite în ore ciudate, ceea ce înseamnă că atacul ar fi putut avea succes și trebuie verificat urgent.

Un exemplu fictiv de rând de log

Doar ca să știi ce cauți (adresa și datele sunt inventate, în scop de exemplu):

203.0.113.25 - - [12/Mar/2026:03:14:07 +0000] "POST /wp-login.php HTTP/1.1" 200 5421
203.0.113.25 - - [12/Mar/2026:03:14:08 +0000] "POST /wp-login.php HTTP/1.1" 200 5421
203.0.113.25 - - [12/Mar/2026:03:14:09 +0000] "POST /wp-login.php HTTP/1.1" 200 5421

Trei cereri POST în trei secunde, cu aceeași dimensiune a răspunsului, indică un program, nu o persoană. Observă și codul 200: WordPress răspunde cu 200 chiar și când parola este greșită, afișând din nou pagina cu eroare, deci nu te baza doar pe codul de răspuns.

Ce se poate întâmpla dacă îl ignori

Consecințele depind de cât de bine ți-e protejat contul, dar scenariile posibile sunt:

  • Încărcare excesivă a serverului, cu încetinirea sau chiar indisponibilitatea site-ului, mai ales pe hosting partajat.
  • Compromiterea unui cont, dacă parola e slabă sau reutilizată. De aici atacatorul poate instala extensii, adăuga utilizatori sau injecta cod.
  • Blocarea hostingului de către furnizor, dacă volumul de cereri depășește limitele planului.
  • Costuri de curățare și pierderea încrederii, dacă site-ul ajunge să trimită spam sau să redirecționeze vizitatori.

Un atac nereușit nu strică nimic direct, dar arată că site-ul este în vizor și că aceeași persoană sau rețea va reveni cu alte metode.

Cum limitezi un atac brute force, în straturi

Nicio măsură singură nu este suficientă. Combinația lor face ca atacul să devină neprofitabil.

Stratul 1: parole care nu se ghicesc

Parola este prima linie de apărare. O parolă lungă, aleatorie și unică, păstrată într-un manager de parole, face aproape inutil un atac prin dicționar. Evită cuvintele din limbă, date de naștere, numele firmei și variații ale lor.

Stratul 2: autentificare în doi pași (2FA)

Cu 2FA activat, chiar dacă parola este ghicită, atacatorul mai are nevoie de un cod generat pe telefonul tău. Este cea mai eficientă măsură pentru conturile de administrator. Folosește o aplicație de coduri, nu SMS-ul, atunci când ai opțiunea, și păstrează codurile de recuperare în siguranță.

Stratul 3: limitarea încercărilor

Setează un prag de încercări eșuate (de exemplu, un număr mic într-un interval scurt), după care adresa IP este blocată temporar. Perioada de blocare poate crește la încercările repetate. Un prag prea strict poate bloca și utilizatori legitimi care și-au uitat parola, așa că alege valori rezonabile și permite deblocarea manuală.

Stratul 4: blocarea adreselor și a intervalelor

Poți bloca adrese IP care s-au dovedit abuzive și, dacă ai o listă fixă de persoane care administrează site-ul, poți permite accesul la panoul de administrare doar de la adresele lor. Fii atent: adresele casnice se schimbă adesea, iar o listă prea rigidă te poate bloca pe tine însuți.

Stratul 5: schimbarea numelor previzibile

Nu folosi „admin" ca nume de utilizator. Verifică și dacă numele de autentificare este vizibil public (de exemplu în adresa paginii de autor) și, dacă da, setează un nume afișat diferit.

Stratul 6: dezactivarea XML-RPC dacă nu îl folosești

Dacă nu ai o aplicație care are nevoie de el, închide XML-RPC. Tot din aceeași categorie face parte limitarea accesului la fișierele sensibile. Dacă vrei să blochezi manual accesul la xmlrpc.php prin fișierul .htaccess (pe servere Apache), fă întâi un backup al fișierului și testează apoi site-ul. O formă simplă arată așa:

<Files xmlrpc.php>
  Require all denied
</Files>

Sintaxa depinde de versiunea și configurarea serverului; dacă nu ești sigur, cere sprijinul hostingului sau folosește o setare dintr-un instrument de securitate.

Stratul 7: firewall și protecție la nivel de server

Un firewall de aplicație poate recunoaște tiparele de cereri automate și le poate opri înainte să ajungă la WordPress, reducând și încărcarea serverului. Diferențele dintre soluțiile la nivel de extensie și cele de la nivel de server sau CDN sunt explicate în ghidul despre firewall-ul de aplicație web.

Stratul 8: alerte și monitorizare

Un mesaj pe email când apare un număr neobișnuit de încercări eșuate sau când un administrator se autentifică dintr-un loc nou te ajută să reacționezi repede. Fără alerte, afli despre atac abia când apar consecințele.

Pași concreți dacă ești în mijlocul unui atac

  1. Nu te panica și nu schimba nimic la întâmplare. Mai întâi notează ce vezi: intervalul orar, adresele, volumul.
  2. Fă un backup dacă nu ai unul recent.
  3. Schimbă parolele administratorilor și ale contului de hosting, mai ales dacă ai văzut autentificări reușite suspecte.
  4. Activează 2FA pentru toate conturile cu drepturi ridicate.
  5. Activează limitarea încercărilor și blochează adresele cele mai active.
  6. Verifică utilizatorii: există conturi noi pe care nu le recunoști? Șterge-le după ce te asiguri că nu ai nevoie de ele.
  7. Caută semne de infectare (fișiere modificate, redirecționări ciudate). Dacă apar, urmează pașii din ghidul site WordPress infectat: ce faci în primele ore.
  8. Contactează hostingul, dacă încărcarea serverului este mare. Mulți furnizori pot filtra traficul la nivel de rețea.

Greșeli frecvente

  • Bazarea doar pe schimbarea adresei de login. Mutarea paginii de autentificare pe altă adresă reduce zgomotul, dar nu este o măsură de securitate reală; atacatorii o pot găsi prin alte căi.
  • Blocarea manuală a unei singure adrese. Atacurile distribuite folosesc multe adrese, iar blocarea uneia nu schimbă mare lucru.
  • Praguri prea blânde sau prea stricte. Prea blând nu oprește nimic; prea strict îți blochează clienții și colegii.
  • Parole „mai complicate", dar reutilizate. O parolă complicată folosită și în alt loc rămâne vulnerabilă la credential stuffing.
  • Ignorarea contului de hosting și a FTP-ului. Atacatorul poate trece prin ele fără să atingă wp-login.
  • Neverificarea utilizatorilor după un incident. Un cont adăugat de atacator îi permite să revină oricând.

Întrebări frecvente

Un atac brute force înseamnă că site-ul meu a fost compromis?

Nu neapărat. Încercările eșuate nu produc daune în sine. Devine grav doar dacă una dintre ele reușește. De aceea verifici dacă există autentificări reușite din surse necunoscute și activezi măsurile de limitare.

Este suficient un plugin de limitare a încercărilor?

Ajută mult, dar nu acoperă tot. Combinația dintre parole unice, 2FA și limitarea încercărilor oferă protecție mult mai solidă decât oricare dintre ele separat.

Merită să schimb adresa paginii de login?

Poate reduce numărul de încercări automate, deci și zgomotul din loguri. Nu înlocuiește însă parolele bune și 2FA, pentru că adresa poate fi descoperită.

Cât timp ar trebui să blochez o adresă IP?

Depinde de politica ta. Mulți administratori folosesc blocări scurte la prima depășire (minute sau ore) și blocări mai lungi la recidivă. Important este să poți ridica manual o blocare dacă a fost greșită.

Cum te ajută Leono Security

Leono Security include protecție pentru autentificare: limitarea încercărilor, detectarea tiparelor de tip brute force, 2FA și blocarea adreselor IP, plus alerte pe email când se întâmplă ceva neobișnuit. Detaliile funcțiilor le găsești pe pagina despre protecția login-ului WordPress cu 2FA și pe pagina produsului, Leono Security. Funcțiile de bază sunt disponibile în planul gratuit, iar cele avansate prin licență anuală.

Concluzie

Un atac brute force nu este o breșă de securitate în WordPress, ci o consecință a faptului că orice pagină de login publică poate fi încercată de oricine. Nu poți împiedica încercările, dar poți face ca ele să nu ducă nicăieri: parole lungi și unice, 2FA, limitarea încercărilor, blocarea adreselor abuzive și o privire regulată asupra logurilor. Începe cu ce depinde doar de tine, adică parolele și al doilea factor, apoi adaugă straturile tehnice. Cu acestea la locul lor, ce arată ca o avalanșă în jurnal rămâne doar zgomot.

#brute force#wp-login#autentificare#loguri#2fa

Pune ideile în practică

Leono Security: Un plugin care apără site-ul de cereri suspecte, urmărește fișierele și te anunță pe email când ceva nu arată bine.

Citește și