Fil-qosor: Protezzjoni brute force effettiva għal login tikkonsisti f'diversi saffi: awtentikazzjoni b'żewġ fatturi għall-admins kollha, limitu għat-tentattivi ta' login fis-server tal-web, blokki awtomatiċi fil-livell tan-netwerk u ħażna sikura tal-passwords fil-kodiċi. Fejn possibbli, il-qasam tal-amministrazzjoni jintlaħaq addizzjonalment biss minn netwerks magħrufa.
Kif jaħdmu l-attakki brute force fuq logins
Kull paġna ta' login li tintlaħaq pubblikament tiġi attakkata b'mod awtomatizzat, kmieni jew tard. Dan jolqot logins ta' CMS, backends tal-ħwienet, panels tal-hosting, webmail u SSH. L-attakkanti ma jeħtiġux jafu lil min tappartjeni l-websajt; l-għodod tagħhom ifittxu fl-internet indirizzi magħrufa tal-login.
Hemm tliet varjanti mifruxa. Fi brute force klassiku jiġu ppruvati ħafna passwords kontra kont wieħed. Fi password spraying password komuni tiġi ttestjata kontra ħafna kontijiet, biex il-blokki jiġu evitati. Fi credential stuffing jintużaw kredenzjali misruqa minn servizzi oħra.
Għall-maniġment u s-sidien is-sitwazzjoni tista' tinġabar faċilment: kont ta' amministratur meħud huwa perikoluż daqs vulnerabbiltà fis-server. Min huwa amministratur jista' jinstalla estensjonijiet, ibiddel il-kodiċi u jesporta data.
Attakki bħal dawn jingħarfu minn akkumulazzjoni ta' logins li falliw, minn talbiet POST lejn l-indirizz tal-login minn ħafna indirizzi IP differenti u minn tentattivi ta' login b'ismijiet tal-utenti bħal “admin” jew ismijiet mill-impressum. Anke tagħbija tas-server notevolment ogħla f'ħinijiet mhux tas-soltu tista' tindika dan, għax kull login jiswa ħin tal-kompjuter għall-verifika tal-password.
Protezzjoni brute force fil-login: l-aktar miżuri effettivi
Mhux kull miżura taqbel ma' kull sistema. Is-sekwenza li ġejja ppruvat ruħha, għax l-ewwel punti jgħaqqdu l-aktar effett b'ftit sforz:
- Awtentikazzjoni b'żewġ fatturi għall-kontijiet kollha b'drittijiet ta' amministratur. Anke password mahsuba mhux se tkun biżżejjed allura. Dettalji fil-gwida Awtentikazzjoni b'żewġ fatturi għall-aċċessi tal-amministraturi.
- Passwords uniċi u twal minn maniġer tal-passwords, l-ebda kontijiet maqsuma.
- Rate limiting fis-server tal-web, biex għal kull indirizz isiru possibbli biss ftit tentattivi fil-minuta.
- Blokki awtomatiċi ta' indirizzi li jidhru ripetutament fil-livell tan-netwerk, pereżempju b'Fail2ban.
- Naqqsu l-qasam tal-amministrazzjoni: aċċess biss mill-network tal-kumpanija jew permezz ta' VPN, itfu interfaces mhux meħtieġa.
- Messaġġi uniformi ta' żball, li ma jiżvelawx jekk l-isem tal-utent jeżistix.
- Sorveljanza ta' logins li falliw u notifika f'każ ta' anomaliji.
Rate limiting fis-server tal-web
B'Nginx in-numru ta' talbiet lejn indirizz tal-login jista' jiġi llimitat għal kull indirizz IP. L-eżempju juri paġna ta' login ta' WordPress; adattaw il-mogħdija u l-għoti lil PHP għas-sistema tagħkom.
# fil-blokk http
limit_req_zone $binary_remote_addr zone=login:10m rate=5r/m;
# fil-blokk server
location = /wp-login.php {
limit_req zone=login burst=3 nodelay;
limit_req_status 429;
# hawn daħħlu l-għoti tas-soltu lil PHP tas-server tagħkom
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
Taħt Apache r-restrizzjoni tal-qasam tal-amministrazzjoni għal indirizzi magħrufa toffri protezzjoni sempliċi u effettiva:
<Location "/admin">
Require ip 192.0.2.0/24
</Location>
L-indirizz 192.0.2.0/24 huwa placeholder mill-qasam tad-dokumentazzjoni; daħħlu n-netwerk tal-kumpanija tagħkom jew l-indirizz tal-VPN tagħkom. Jekk il-websajt tagħkom tinsab wara proxy jew CDN, is-server għandu jaf l-indirizz veru tal-viżitatur, inkella r-regola ma taħdimx kif mixtieq.
Fail2ban u blokki fil-livell tan-netwerk
Fail2ban jaqra fajls tal-log u jimblokka indirizzi li jidhru ripetutament għal żmien stabbilit fil-firewall. Għar-rate limiting ta' Nginx, Fail2ban diġà jġib filtru xieraq:
# /etc/fail2ban/jail.local
[nginx-limit-req]
enabled = true
port = http,https
logpath = /var/log/nginx/error.log
maxretry = 10
findtime = 10m
bantime = 1h
[sshd]
enabled = true
maxretry = 5
bantime = 1h
Wara r-restart ivverifikaw b'fail2ban-client status jekk il-jails humiex attivi. Oqogħdu attenti li teskludu l-indirizzi fissi tagħkom stess permezz ta' ignoreip, biex ma tagħlqux lilkom infuskom barra. Għal paġni tal-login ta' CMS individwali huma possibbli filtri proprji, imma jridu jaqblu mal-format attwali tal-log u jiġu ttestjati minn qabel.
Jekk quddiem is-server hemm CDN jew proxy, Fail2ban mingħajr issettjar ieħor jara biss l-indirizzi tiegħu. Blokk imbagħad jolqot lill-viżitaturi kollha. F'dan il-każ is-server tal-web irid jieħu l-indirizz veru tal-viżitatur mill-header tas-servizz li jinsab quddiemu, u l-blokki jitqiegħdu aħjar direttament fis-CDN.
Blokki fil-livell tan-netwerk huma għodda kontra l-massa, mhux kontra attakki immirati. Attakki mqassma minn ħafna indirizzi b'ftit tentattivi għal kull indirizz jevitaw kull limitu. Għalhekk it-tieni fattur jibqa' l-aktar saff importanti, u Fail2ban inaqqas fuq kollox it-tagħbija u l-ħoss fil-logs.
Aħżnu sewwa l-passwords f'softwer proprju
Min jipprogramma logins proprji qatt m'għandu jaħżen passwords bħala test ċar jew b'funzjonijiet hash mgħaġġla bħal MD5 jew SHA-1. PHP iġib password_hash() bħala soluzzjoni sikura, li timmaniġġja awtomatikament is-salt u l-proċedura.
<?php
declare(strict_types=1);
// Mal-reġistrazzjoni jew mal-bidla tal-password
$hash = password_hash($passwort, PASSWORD_DEFAULT);
// Mal-login
if (password_verify($eingabe, $hashAusDatenbank)) {
if (password_needs_rehash($hashAusDatenbank, PASSWORD_DEFAULT)) {
$neu = password_hash($eingabe, PASSWORD_DEFAULT);
// $neu aħżnuh fid-database
}
// Login b'suċċess, ġeddu s-session ID
} else {
usleep(random_int(200000, 400000)); // ħin uniformi tat-tweġiba
// uri messaġġ uniformi ta' żball
}
password_needs_rehash() jiżgura li hashes eqdem jinbidlu awtomatikament għall-proċedura attwali mal-login li jmiss. Tentattivi li falliw irreġistrawhom bil-ħin, il-kont u l-indirizz, biex mudelli jidhru. Tagħrif dwar l-evalwazzjoni jinsab fil-gwida Kif tevalwaw il-logs tas-server wara attakk.
Partikolaritajiet f'CMS, ħwienet u panels
Ħafna sistemi għandhom, minbarra l-paġna viżibbli tal-login, toroq oħra li bihom jiġu vverifikati l-kredenzjali. Dawn id-dħul sekondarji spiss jintesew fil-protezzjoni.
- WordPress: L-interface
xmlrpc.phptaċċetta wkoll logins. Jekk ma tinħtieġx, pereżempju għal apps eqdem, saħħuha fis-server tal-web. Ivverifikaw ukoll jekk l-ismijiet tal-utenti humiex viżibbli permezz ta' paġni tal-awturi jew l-interface REST, u uża għall-admins ismijiet li ma jidhrux pubblikament. - Ħwienet: Minbarra l-qasam tal-amministrazzjoni, il-kontijiet tal-klijenti huma mira, speċjalment għal credential stuffing. Hawnhekk jgħinu rate limiting, notifiki għal logins ġodda u tieni fattur fakultattiv għall-klijenti.
- Panels tal-hosting u webmail: Dawn l-interfaces spiss jintlaħqu mad-dinja kollha u jipproteġu s-server kollu. Għandhom jintlaħqu biss minn netwerks magħrufa jew permezz ta' VPN.
- SSH: Login b'ċavetta minflok password jagħmel it-tbassir klassiku bla effett.
Liema funzjonijiet ta' protezzjoni tiġi magħha s-sistema tagħkom stess jinsab fid-dokumentazzjoni tal-manifattur. Estensjonijiet ta' fornituri terzi għandhom jinżammu b'mod attiv, inkella jsiru huma stess riskju. Għall-operaturi ta' WordPress il-paġna WordPress u PHP2Shell tiġbor il-prijoritajiet attwali.
Kif tgħin PHP SOS b'mod konkret?
- Nirreġistraw il-paġni kollha tal-login li jintlaħqu fuq is-servers tagħkom, mis-CMS sal-panel tal-hosting, u nevalwaw il-protezzjoni tagħhom.
- Nistabbilixxu rate limiting, Fail2ban u restrizzjonijiet tal-aċċess fil-qafas tat-Tisħiħ tas-server u nittestjawhom.
- Nakkumpanjaw l-introduzzjoni tal-awtentikazzjoni b'żewġ fatturi għall-admins u niddokumentaw aċċessi ta' emerġenza.
- Bis-Sorveljanza tas-sigurtà inżommu f'għajnejna kontinwament il-logins li falliw u l-kontijiet ġodda ta' amministraturi.
Mistoqsijiet frekwenti
Kif nagħraf attakk brute force?
Tipiċi huma ħafna logins li falliw f'ħin qasir, ħafna drabi kontra l-istess paġna tal-login u b'ismijiet tal-utenti li jinbidlu. Fil-log tal-aċċess dan jidher bħala akkumulazzjoni ta' talbiet POST lejn l-indirizz tal-login, spiss minn ħafna indirizzi IP differenti.
Kont għandu jiġi mblukkat wara diversi tentattivi li falliw?
Oqogħdu attenti: blokki iebsa jistgħu jintużaw mill-attakkanti biex iċaħħdu lil utenti leġittimi. Aħjar huma dewmien li jiżdied, blokki limitati fiż-żmien għal kull indirizz IP u notifika lis-sid tal-kont.
Jgħin jekk insemmi mill-ġdid l-indirizz tal-login?
Inaqqas ħoss awtomatizzat fil-logs, imma mhuwiex protezzjoni vera. Min jaf jew isib l-indirizz jista' jkompli jattakka. Effettivi huma awtentikazzjoni b'żewġ fatturi, rate limiting u restrizzjoni tal-qasam tal-amministrazzjoni.
X'inhu credential stuffing?
Hawnhekk l-attakkanti jipprovaw kombinazzjonijiet ta' e-mail u password misruqa minn servizzi oħra. Jaħdem meta l-utenti jużaw l-istess password diversi drabi. Passwords uniċi u tieni fattur ineħħu l-bażi ta' dan il-metodu.