How to Prevent Brute Force Attacks

Cum să preveniți atacurile cu forță brută: 9 controale dovedite

De Benish Parvaiz·

Pentru a preveni atacurile de forță brută, solicitați autentificare multifactor la fiecare conectare cu acces la internet, limitați rata încercărilor eșuate în funcție de cont, IP și la nivel global, blocați parolele încălcate, stocați hash-uri cu Argon2id sau bcrypt și alertați asupra erorilor anormale de conectare. Stratificați aceste controale, deoarece nimeni nu oprește fiecare variantă.

Deschideți jurnalul de autentificare al oricărui server SSH la câteva ore după ce intră online și veți vedea asta:

3 octombrie 02:14:07 web01 sshd[2231]: parolă eșuată pentru root de la 203.0.113.45 portul 51022 ssh2
3 octombrie 02:14:09 web01 sshd[2233]: parolă eșuată pentru admin de la portul 198.51.100.17 40318 ssh2
Oct 3 02:14:11 web01 sshd[2236]: Parolă eșuată pentru ubuntu din portul 192.0.2.88 33874 ssh2

Trei nume de utilizator, trei IP-uri, la două secunde distanță. Nimeni nu tastează. Boții testează fiecare pagină de conectare, port SSH și punct final API pe care le găsesc, iar o singură presupunere reușită duce direct lapreluare cont. Mai jos sunt nouă comenzi clasificate în funcție de impact, plus modul de a detecta și de a răspunde la un atac în desfășurare.

Cum să preveniți atacurile cu forță brută: 9 comenzi clasificate în funcție de impact

  1. Implementați autentificarea cu mai mulți factori.O ghicire corectă sau o parolă scursă nu mai acordă acces.

  2. Limită de rată și autentificare de accelerație.Ghicirea lentă la o viteză care o face inutilă.

  3. Urmați regulile de parolă NIST SP 800-63B.Favorizați lungimea, blocați parolele încălcate, renunțați la rotația forțată.

  4. Hash parolele cu Argon2id sau bcrypt.O bază de date furată nu ar trebui să devină una crăpată.

  5. Adăugați CAPTCHA și detectarea botului selectiv.Provocați numai traficul suspect.

  6. Întăriți conexiunile SSH, RDP, CMS și API-urile.Închideți serviciile atacatorii au lovit primii.

  7. Utilizați reputația IP, regulile geografice și un WAF.Opriți traficul prost cunoscut devreme.

  8. Monitorizează și alertează cu privire la erorile de autentificare.Prindeți ceea ce scapă de prevenire.

  9. Testează-ți propriile apărări.Confirmați că controalele funcționează înainte ca un atacator să o facă.

La scurt timp? Efectuați mai întâi controalele 1, 2 și 8. MFA limitează daunele, limitarea ratei încetinește atacul, iar monitorizarea vă spune că se întâmplă.

De ce diferă prevenirea în funcție de variantă

How to Prevent Brute Force Attacks

Fiecare variantă este oprită de un control diferit, așa că știi cu care te confrunți.

Varianta

Cum funcționează

Semnătură jurnal

Cel mai bun control

Forță brută simplă

Multe presupuneri împotriva unui singur cont

Multe erori, un singur nume de utilizator

Reglare, blocare temporară

Pulverizarea parolei

Câteva parole comune în multe conturi

Una sau două eșecuri per cont

Limite per-IP și globale, MFA

Umplutură de acreditări

Perechile de nume de utilizator și parolă scurse au fost redate

Volum mare, IP-uri rotative

MAE, verificarea încălcării

Cracare offline

Ghicirea împotriva hashurilor furate

Niciuna pe sistemele dvs.

Argon2id sau bcrypt, parole lungi

Pulverizarea învinge blocările per cont, deoarece fiecare cont nu vede aproape nicio eșec. Cracking-ul offline nu lasă nicio urmă, motiv pentru care hashing-ul contează, chiar dacă pagina ta de conectare este perfectă.

Control 1: Implementați autentificarea cu mai mulți factori

How to Prevent Brute Force Attacks

MFA se află pe primul loc deoarece face ca o parolă corectă să fie insuficientă. Clasat după putere:

  1. Cheile de acces și cheile FIDO2.Rezistent la phishing, deoarece acreditările sunt legate de domeniul real.

  2. Aplicația de autentificare TOTP.Solid, deși un proxy de phishing poate transmite codul.

  3. Apăsați cu potrivirea numărului.Blochează aprobările oarbe.

  4. coduri SMS.Cel mai slab, expus schimbului de SIM. Utilizați numai ca rezervă.

Combate oboseala MFA, în cazul în care atacatorii spam solicită solicitări până când cineva aprobă, cu potrivire a numărului, un plafon pentru solicitări pe oră și alerte după refuzuri repetate. Desfășurați după raza de explozie: panouri de administrare și console cloud, apoi e-mail, VPN și găzduire de cod, apoi toți ceilalți. Blocați și calea de recuperare. Nu lăsați niciodată suportul să dezactiveze MFA numai prin e-mail.

Control 2: Limită de rată și încercări de conectare la accelerație

How to Prevent Brute Force Attacks

Un bot care încearcă 10.000 de parole pe minut este o amenințare. Menținută la 5 pe minut, nu este. Accelerați înainte de a vă bloca, deoarece blocările puternice permit atacatorilor să refuze serviciul utilizatorilor reali.

  • Eșecuri de la 1 la 3: fără întârziere

  • Eșecuri 4 în continuare: 1, 2, 4, 8 secunde, plafonat la 60

  • După 10 erori: blocare de 15 minute plus un e-mail către proprietarul contului

Limită la trei dimensiuni, deoarece fiecare variantă trece peste una diferită: per cont (10 eșecuri la 15 minute), per IP (20 de încercări pe minut) și global (alertă peste 3x eșecuri de bază).

nginx

limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;

locație /login {
    limit_req zone=login burst=3 nodelay;
    limit_req_status 429;
    proxy_pass http://app_backend;
}

Nginx vede doar IP-uri, așa că utilizați contoare Redis sau un WAF pentru cont și straturile globale. Aplicați aceleași limite pentru resetarea parolei, introducerea MFA (un cod din 6 cifre are doar 1.000.000 de combinații) și rutele de conectare API.

Control 3: Setați regulile de parolă pe baza NIST SP 800-63B

NIST a înlocuit vechile reguli de complexitate cu îndrumări bazate pe modul în care atacatorii ghicesc.

  • Sunt necesare minimum 8 caractere cu MFA și 15 sau mai mult pentru conturile de administrator. Permiteți 64 sau mai mult.

  • Aruncă amestecuri forțate de simboluri și numere.capsă corectă a bateriei de caibateP@ssw0rd!.

  • Verificați parolele noi cu API-ul Have I Been Pwned Pwned Passwords, care utilizează anonimatul k, astfel încât parola completă să nu părăsească niciodată sistemul dvs.

  • Încheiați rotația programată. Forțați o resetare numai pe dovezi de compromis, cum ar fi o potrivire găsită prinmonitorizare dark web.

  • Permite lipire astfel încât managerii de parole să funcționeze.

Dacă un auditor încă solicită rotație, documentați rațiunea NIST și aplicați regula mai strictă numai acolo unde un cadru o cere.

Controlul 4: Hash parolele pentru a opri atacurile offline

Limitele de rată nu fac nimic odată ce un atacator vă deține baza de date. Un GPU modern testează miliarde de ipoteze MD5 pe secundă, așa că hashe-urile rapide cad în câteva ore. Aici esteînțelegerea modului în care funcționează hashingulplătește. Folosiți un algoritm lent, greu de memorie:

  1. Argon2id.Recomandarea actuală OWASP.

  2. cripta.Alternativă puternică.

  3. bcrypt.Testat în luptă, factor de cost 12 sau mai mare.

  4. PBKDF2.Doar acolo unde conformarea o cere, la 600.000 sau mai multe iterații.

Nu utilizați niciodată MD5, SHA-1 sau SHA-256 singur. Bibliotecile se ocupă de sărare, așa că nu o scrieți niciodată singur. Reglați factorul de lucru la aproximativ 250 până la 500 ms per hash și re-hash la următoarea conectare când setările se îmbunătățesc.

piton

din argon2 import PasswordHasher
ph = PasswordHasher(time_cost=2, memory_cost=19456, paralelism=1)
stocat = ph.hash(parolă)
ph.verify(stocat, parola) # ridică la nepotrivire

Confirmați parametrii față de fișa de cheat pentru stocarea parolei OWASP actuală înainte de expediere.

Controlul 5: Adăugați CAPTCHA și detectarea botului selectiv

CAPTCHA adaugă frecare, nu un perete. Serviciile de rezolvare vând provocările rezolvate de oameni ieftin, iar modelele AI înving acum multe puzzle-uri de imagine. Declanșează provocări cu privire la risc: trei sau mai multe erori, un dispozitiv sau o țară nouă, IP-uri ale furnizorului de găzduire sau semnături de browser fără cap. Cloudflare Turnstile, hCaptcha și reCAPTCHA v3 riscă în mod invizibil. Asociați-le cu amprenta dispozitivului și analiza temporizării și oferă o alternativă accesibilă pentru utilizatorii care nu pot îndeplini provocările vizuale.

Controlul 6: Întărește serviciile pe care atacatorii au lovit cei mai mulți

SSH.Eliminați parola și forța brută nu are nimic de ghicit.

PasswordAuthentication nr
PermitRootLogin nr
AllowUsers implementează admin
MaxAuthTries 3

Generați chei cussh-keygen -t ed25519, confirmați autentificarea cu cheie într-o a doua sesiune, apoi reîncărcațisshd. Adăugați Fail2ban ca strat suport. Schimbarea portului reduce zgomotul de jurnal, dar nu este un control.

RDP.Nu expuneți niciodată portul 3389. Puneți-l în spatele unui VPN sau gateway (vedeți cumZTNA și VPN se potrivesc strategiilor moderne de securitate), activați autentificarea la nivel de rețea, solicitați MFA și setați o politică de blocare de 5 erori timp de 15 minute.

WordPress și CMS.Limitați încercările de conectare, blocați/xmlrpc.php(sistemul său.multicallmetoda testează sute de parole per cerere), restricționează/wp-login.phpprin IP și să impună MFA administrativ.

API-uri.Setați limite per-cheie și per-IP cu429răspunsuri, utilizați chei aleatoare de 332 de octeți sau mai lungi, expiră token-urile într-o oră și returnează erori identice pentru nume de utilizator greșite și parole greșite.

Control 7: Utilizați reputația IP, regulile geografice și un WAF

Filtrarea marginilor este un pre-filtru, nu o apărare primară. Atrageți feeduri de reputație, cum ar fi AbuseIPDB și Spamhaus DROP, contestați intervalele furnizorilor de găzduire și nodurile de ieșire Tor pe rutele de conectare și aplicați regulile geografice în care sunt concentrați clienții dvs. Folosiți MFA step-up în loc de blocuri dure, astfel încât călătorii să nu fie blocați. Implementați reguli WAF bazate pe rate (Cloudflare, AWS WAF sau ModSecurity), începând în modul de numărare înainte de a trece la blocare. Rețelele proxy rezidențiale rotesc IP-urile de acasă reale și eludează toate acestea, astfel încât MFA și limitarea per cont încă poartă sarcina.

Control 8: Monitorizare și alertă privind eșecurile de autentificare

How to Prevent Brute Force Attacks

Prevenirea eșuează în cele din urmă și, fără monitorizare, o conectare cu forță brută de succes pare normală. Bunmonitorizarea securității ciberneticeîncepe cu jurnalele potrivite: ID-uri de evenimente Windows 4625, 4624 și 4740; SSHauth.log401 vârfuri la autentificarea pe web și a jurnalelor de conectare a furnizorilor de identitate. Nu înregistrați niciodată parole.

Scrieți câte o detecție pentru fiecare variantă:

  • Forța brută:mai mult de 10 erori pentru un cont în 5 minute

  • Pulverizare:un IP eșuează împotriva a mai mult de 15 nume de utilizator în 30 de minute

  • Umplutura:volum de conectare peste valoarea de referință de 3x cu un raport de eșec ridicat

  • Compromite:o conectare cu succes după o explozie de eșec. Pune pe cineva pentru asta.

  • Abuz MAE:trei sau mai multe solicitări push refuzate

index=wineventlog EventCode=4625
| bin _time span=30m
| statistici dc(TargetUserName) ca utilizatori după _time, IpAddress
| unde utilizatorii > 15

Wazuh este un punct de plecare gratuit cu SSH încorporat și reguli de forță brută. Rulați alerte în modul doar de raportare timp de o săptămână și ajustați-vă pe propria dvs. valoare de bază.

Controlul 9: Testează-ți propriile apărări

Un control netestat este o presupunere. Testați numai sistemele pe care le dețineți sau aveți autorizație scrisă de testare, folosind un cont de testare dedicat. Hydra, Medusa și Burp Intruder acoperă formulare și servicii de conectare, iar Hashcat testează rezistența offline împotriva unei copii a propriilor hashe-uri într-un laborator. Plierea acestui lucru într-unmai larg testarea de penetrare și evaluarea vulnerabilitățiiprogramul îl menține într-un program.

Verificați că 15 eșecuri rapide declanșează întârzieri, o parolă în 30 de conturi declanșează detectarea spray-ului, o parolă corectă fără MFA este refuzată, SSH respinge parolele și o explozie de eșec urmată de succes ajunge la paginatorul dvs. Testul de alertă contează la fel de mult ca și testul de bloc. Retestați trimestrial și după orice modificare de autentificare.

Ce să faci în timpul unui atac activ

  1. Confirmați domeniul de aplicare.Identificați conturile vizate, IP-urile sursă și orice succes după o explozie de eșec.

  2. Blocați sursa.Utilizați firewall sau reguli WAF sau blocați prin ASN sau solicitați model dacă IP-urile se rotesc. Comutați regulile modului de numărare la blocare.

  3. Blocați conturile compromise.Resetați parolele, revocați sesiuni și verificați calitatea de proprietar MFA prin alt canal.

  4. Strângeți temporar.Scădeți pragurile și necesită creșterea MFA, apoi eliminați măsurile după atac.

  5. Activitate de vânătoare post-compromis.Căutați noi dispozitive MFA, reguli de redirecționare a cutiei poștale, chei API și granturi OAuth.

  6. Document.Înregistrați ce control ar fi trebuit să oprească acest lucru și remediați decalajul. Verificați termenele limită de notificare a încălcării dacă au fost accesate date.

Lista de verificare pentru prevenirea forței brute

Fă azi

  • Listați fiecare conectare cu acces la internet

  • Activați MFA pe conturile de administrator, e-mail și cloud

  • Dezactivează parolele SSH și închide RDP public

Faceți săptămâna aceasta

  • Adăugați limite de rată de conectare, resetare și MFA pentru punctele finale

  • Ecranează parolele împotriva listelor de încălcări

  • Setați alerte pentru succes după explozii de eșec

Faceți acest trimestru

  • Efectuați un test autorizat pentru fiecare control

  • Reglați pragurile de alertă

  • Reevaluați factorii de lucru hash

Concluzie

Atacurile cu forță brută sunt automate și constante, așa că și apărarea trebuie să fie automată. Prioritizează MFA, limitarea ratei stratificate, hashing puternic cu screening-ul de încălcare și alerte cu privire la succes după eșec. Împreună, ei cresc costul atacului, peste ceea ce vor cheltui majoritatea roboților.

Următorul pas astăzi:enumerați fiecare autentificare cu acces la internet și marcați care dintre ele nu au MFA și limitarea ratei. Remediați mai întâi panourile de administrare, e-mailul și accesul de la distanță.

Întrebări frecvente

Care este cel mai eficient mod de a preveni atacurile cu forță brută?

MFA rezistent la phishing, cum ar fi cheile de acces sau cheile FIDO2. Face ca o parolă corectă să fie insuficientă, ceea ce neutralizează împreună acreditările de ghicire, umplerea și phishing. Asociați-l cu limitarea ratei.

Blocarea contului oprește atacurile cu forță brută?

Oprește ghicitul cu un singur cont, dar atacatorii pot declanșa blocări pentru a bloca utilizatorii reali și nu face nimic împotriva pulverizării parolelor. Utilizați întârzieri progresive plus limite per-IP și globale.

Cât timp durează o parolă cu forța brută?

Depinde de lungime, setul de caractere și tipul hash. Lungimea contează cel mai mult, iar hashe-urile rapide precum MD5 cad mult mai repede decât Argon2id. Testează-ți propriile hashes într-un laborator, în loc să ai încredere într-o cifră generică.

Poate un VPN sau schimbarea portului implicit să oprească atacurile cu forță brută?

Un VPN elimină expunerea publică, astfel încât atacatorii trebuie să-și treacă mai întâi autentificarea. Schimbarea portului reduce doar zgomotul scanerului și este găsit în câteva minute.

Care este diferența dintre forța brută și umplutura de acreditări?

Forța brută ghicește parolele. Umplutura de acreditări redă perechi reale scurse, pariând pe reutilizare. Parolele unice, filtrarea încălcării și MFA opresc încărcarea.

Cum știu dacă sunt forțat brutal?

Căutați vârfuri de conectare nereușite, un IP eșuat în multe nume de utilizator, o parolă încercată în multe conturi și inundații de blocare. Un succes imediat după o explozie de eșec este cel mai grav semn.

Este Fail2ban suficient pentru a proteja SSH?

Nu. Atacurile distribuite rămân sub pragurile sale. Dezactivați autentificarea prin parolă și solicitați cheile și păstrați Fail2ban ca strat de suport.

Ești gata să fii protejat?

Începeți călătoria dvs. de securitate astăzi

Obțineți o consultație gratuită cu experții noștri în securitate cibernetică. Nu este necesar niciun angajament.