Sitwazzjoni attwali: PHP2Shell. Żewġ vulnerabbiltajiet kritiċi ta' PHP (CVSS 9,2) jippermettu kodiċi malizzjuż mingħajr login. Patches mill-21/10/2026.X'għandu jsir issa →

Kif tipproteġu l-logins tal-amministraturi minn brute force: protezzjoni brute force għal kull login

Tentattivi awtomatizzati ta' passwords jolqtu kull paġna ta' login li tintlaħaq. Kif tnaqqsu l-attakkanti b'rate limiting u Fail2ban, tipproteġu l-kontijiet b'tieni fattur u taħżnu l-passwords sewwa.

Stat 6 min. qariGwidi

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.php taċċ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.

Sorsi

Kuntatt immedjat

Kull siegħa tgħodd. Iktbu lilna issa.

Iddeskrivu fil-qosor is-sistema, il-verżjoni ta' PHP u dak li osservajtu. Nikkuntattjawkom, niċċaraw is-sitwazzjoni u naħdmu mill-bogħod sakemm l-inċident jingħalaq u jiġi ddokumentat.

Għajnuna immedjata