Fil-qosor: L-aktar mod effettiv biex tipproteġu l-erja tal-admin huwa li tiftħuha biss għal netwerks magħrufa: b'whitelist tal-IP fis-server tal-web, permezz ta' VPN b'indirizz ta' ħruġ fiss jew b'tieni login minn qabel. Importanti huma lista kompluta tal-indirizzi kollha ta' amministrazzjoni, trattament korrett tal-proxies u tas-CDNs u test mill-barra. L-ħabi jissupplimenta l-awtentikazzjoni b'żewġ fatturi u l-aġġornamenti, ma jissostitwihomx.
Għaliex il-backend huwa miftuħ fl-ewwel lok?
F'ħafna kumpaniji l-admins fil-ġimgħa li għaddiet aġġornaw lil PHP u reġgħu bdew il-workers. Min jara l-protokolli tal-aċċess wara dan, spiss isib xi ħaġa oħra: il-paġna tal-login tas-CMS, l-għodda tad-database u l-panel tal-hosting jiġu mitluba 24 siegħa kuljum minn madwar id-dinja. Imma jeħtiġuhom biss ftit nies fit-tim proprju.
Kull wieħed minn dawn l-indirizzi huwa wiċċ ta' attakk. Il-formoli tal-login jiġu ttestjati bil-forza, l-għodda ta' amministrazzjoni fihom vulnerabbiltajiet proprji, u l-plugins għall-backend spiss huma eżaminati inqas minn qalba ta' CMS. Jekk il-barranin ma jilħqux dawn l-erji xejn, ħafna attakki jispiċċaw fix-xejn qabel ma jibdew.
Klassifikazzjoni onesta: kontra PHP2Shell innifsu dan jgħin ftit. Il-vulnerabbiltajiet jinsabu fl-interpretatur u, skont php.net, jistgħu jiġu attivati mingħajr login permezz ta' paġni pubbliċi ta' PHP. L-ħabi tal-backend huwa hardening permanenti, mhux patch ta' emerġenza.
Aħbi l-erja tal-admin b'IP, VPN jew tieni login
M'hemmx metodu wieħed korrett. Id-deċiżiv huwa kif jaħdem it-tim tagħkom u fejn taħdem il-websajt.
| Metodu | Adattat għal | Limitu |
|---|---|---|
| Whitelist tal-IP fis-server tal-web | Uffiċċju b'indirizz fiss, timijiet żgħar | indirizzi li jinbidlu mad-dar, manutenzjoni tal-lista |
| VPN b'indirizz ta' ħruġ fiss | timijiet imqassma, fornituri tas-servizzi | il-VPN stess trid tkun sigurata sew u aġġornata |
| Login minn qabel (awtentikazzjoni HTTP) | Suppliment meta ma jistax ikun hemm indirizz fiss | password addizzjonali, tagħmel sens biss ma' TLS |
| Ċertifikati tal-klijent | ftit apparati amministrati b'mod fiss | l-ħruġ u l-irtirar taċ-ċertifikati jeħtieġu dixxiplina |
| Hostname proprju biss fin-netwerk intern | ambjenti akbar b'DNS intern | tibdil fl-applikazzjoni, mhux kull CMS jappoġġjah |
Fil-prattika taħdem tajjeb kombinazzjoni: permess biss għall-VPN jew in-netwerk tal-kumpanija, flimkien ma' tieni login bħala livell ta' riżerva. Il-login proprju fis-CMS jibqa' bis-sistema b'żewġ fatturi, kif deskritt fil-gwida Awtentikazzjoni b'żewġ fatturi għall-aċċessi tal-admin.
Liema indirizzi jappartjenu fil-fatt għall-backend?
L-aktar dgħufija frekwenti mhijiex it-teknoloġija, imma lista mhux kompluta. Għalhekk imxu f'din l-ordni:
- Irreġistraw il-paġni tal-login tas-CMS jew tal-ħanut, inklużi indirizzi alternattivi tal-login li joħolqu l-plugins.
- Fittxu l-għodod ta' amministrazzjoni: interfaces tad-database, file managers, skripts tal-installazzjoni, paġni tal-istatus u tal-monitoraġġ.
- Inkludu l-panels tal-hosting u tas-server, li spiss jaħdmu fuq ports proprji.
- Iċċekkjaw l-istanzi tat-test u tal-staging, li spiss jużaw l-istess dettalji tal-aċċess bħall-websajt live.
- Iddefinixxu l-interfaces: Xi mogħdijiet tal-backend jissejħu wkoll mill-frontend pubbliku, pereżempju għal talbiet Ajax. Dawn m'għandekomx timblukkawhom bl-addoċċ, inkella jinkisru l-formoli jew il-karrijiet tax-xiri.
Il-ħames punt huwa r-raġuni għaliex l-ħabi dejjem irid jiġi ttestjat. Pereżempju f'WordPress fajl fil-folder tal-admin jintuża wkoll għal funzjonijiet pubbliċi.
Konfigurazzjoni: whitelist tal-IP flimkien ma' tieni login
Taħt Nginx iż-żewġ kundizzjonijiet jistgħu jiġu kkombinati. B'satisfy all talba trid tiġi minn netwerk permess u barra minn hekk tgħaddi t-tieni login. Mogħdija, indirizzi u trasferiment lil PHP huma placeholders:
location ^~ /backend/ {
satisfy all;
allow 192.0.2.0/24; # in-netwerk tal-kumpanija (placeholder)
allow 198.51.100.10; # ħruġ tal-VPN (placeholder)
deny all;
auth_basic "Interner Bereich";
auth_basic_user_file /etc/nginx/htpasswd-backend;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}
Il-location imdaħħla ta' PHP hija importanti: minħabba ^~ ir-regoli l-oħra għal .php ma jibqgħux jiġu evalwati. Taħt Apache tiksbu l-istess b'blokk li fih iż-żewġ kundizzjonijiet iridu jiġu sodisfatti:
<Location "/backend">
AuthType Basic
AuthName "Interner Bereich"
AuthUserFile /etc/apache2/htpasswd-backend
<RequireAll>
Require ip 192.0.2.0/24 198.51.100.10
Require valid-user
</RequireAll>
</Location>
Il-fajl tal-passwords jappartjeni barra mill-webroot. It-tieni login jittrasferixxi d-dettalji tal-aċċess ma' kull talba, għalhekk uża biss permezz ta' HTTPS.
Qabel kull bidla żommu miftuħa t-tieni triq lejn is-server, pereżempju sessjoni SSH eżistenti. Min jagħlaq lilu nnifsu barra jeħtieġ lill-hoster.
In-nasbiet: CDN, proxy, IPv6 u xogħol mid-dar
Jekk il-websajt tagħkom tinsab wara CDN bħal Cloudflare jew load balancer, is-server tal-web għall-ewwel jara biss l-indirizzi tagħhom. Whitelist tal-IP allura jew tagħlaq lil kulħadd jew iħalli lil kulħadd jgħaddi. Is-server tal-web irid jieħu l-indirizz veru minn header, taħt Nginx b'set_real_ip_from u real_ip_header, taħt Apache b'mod_remoteip.
Hawnhekk japplika: aċċettaw l-header biss mill-indirizzi tal-proxy proprju. Inkella kull viżitatur jista' jippretendi oriġini arbitrarja. Daqstant importanti hu li s-server tal-oriġini ma jkunx aċċessibbli direttament, għax inkella l-proxy bir-regoli tiegħu jista' jiġi evitat. Tagħrif dwar dan insibu f'Firewall għas-server tal-web.
Żewġ punti oħra spiss jiġu injorati. Jekk is-server huwa aċċessibbli b'IPv6, l-indirizzi IPv6 tan-netwerk tagħkom jeħtieġu wkoll entrata, inkella l-admins b'IPv6 jispiċċaw quddiem blokk. U l-konnessjonijiet privati tal-internet jibdlu l-indirizz tagħhom regolarment. Għax-xogħol mid-dar u għall-fornituri esterni VPN għalhekk ġeneralment hija soluzzjoni aktar stabbli.
Kif tivverifikaw li l-ħabi jaħdem
Regola li ma ġietx ittestjata ma titqiesx implimentata. Ittestjaw minn konnessjoni barra min-netwerk tal-kumpanija, pereżempju permezz tan-netwerk mobbli:
# Mistenni: 403 (imblukkat) jew 401 (it-tieni login mitlub)
curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/backend/
# Iċċekkja direttament ukoll il-fajls PHP, mhux biss id-direttorju
curl -s -o /dev/null -w "%{http_code}\n" https://www.example.de/backend/index.php
Imbagħad l-istess sejħiet min-netwerk tal-kumpanija jew mill-VPN: hemmhekk il-paġna trid tkun aċċessibbli. Wara ikkontrollaw il-frontend pubbliku, jiġifieri l-formoli, it-tiftix u l-karrettun tax-xiri. Fil-protokolli tal-jiem ta' wara, l-aċċessi għall-indirizzi tal-admin għandhom ikunu kważi dejjem bi status 401 jew 403.
Jekk l-erja kienet miftuħa sa issa, jixraq li titfgħu ħarsa lejn il-kontijiet eżistenti. Kif issibu amministraturi mhux magħrufa jiddeskrivi Sib kontijiet barranin ta' admin fis-CMS u fis-server. Barra minn hekk protezzjoni kontra t-tiftix bil-massa tgħin, ara Ipproteġi l-logins tal-admin minn brute force.
Kif tgħin PHP SOS b'mod konkret?
- Nirreġistraw l-indirizzi kollha ta' amministrazzjoni tal-websajts, tal-panels u tal-għodod tagħkom u nifirduhom mill-mogħdijiet meħtieġa pubblikament.
- Magħkom nagħżlu l-proċedura adattata, skont id-daqs tat-tim, ix-xogħol mid-dar u l-hosting.
- Napplikaw ir-regoli fis-server tal-web, nikkunsidraw CDN, proxy u IPv6 u waqt dan inżommu triq lura miftuħa.
- Nittestjaw mill-barra u minn ġewwa u nagħtu dokumentazzjoni qasira bin-netwerks permessi.
L-ħabi tal-erji tal-admin huwa parti mill-Hardening tas-server għal servers tal-web PHP tagħna.
Mistoqsijiet frekwenti
Password sigura għal-login tas-CMS mhijiex biżżejjed?
Password b'saħħitha u awtentikazzjoni b'żewġ fatturi huma obbligatorji, imma jipproteġu biss il-login innifsu. Vulnerabbiltajiet f'paġni tal-login, plugins jew għodod ta' amministrazzjoni jibqgħu aċċessibbli għal kulħadd. Protezzjoni fil-livell tan-netwerk jew tas-server tal-web tiżgura li barranin ma jilħqux sa hemm.
X'nagħmel jekk l-impjegati tiegħi għandhom indirizzi IP li jinbidlu?
Allura VPN b'indirizz ta' ħruġ fiss ġeneralment hija soluzzjoni aħjar minn lista ta' indirizzi individwali. L-admins kollha l-ewwel jgħaqqdu mal-VPN, u s-server tal-web jippermetti biss l-indirizz tagħha. Alternattivament hija adattata tieni login minn qabel.
Blokk tal-IP jaħdem ukoll wara Cloudflare jew load balancer?
Biss jekk is-server tal-web jieħu l-indirizz veru tal-viżitatur minn header affidabbli u jaċċetta dan l-header esklussivament mill-proxy proprju. Inkella jara biss l-indirizzi tal-proxy jew jafda dettalji falsifikati. Barra minn hekk is-server tal-oriġini m'għandux ikun aċċessibbli direttament mill-internet.
Erja tal-admin moħbija tipproteġi minn PHP2Shell?
Ftit ħafna. Il-vulnerabbiltajiet ta' PHP2Shell jinsabu fl-interpretatur ta' PHP u jistgħu jiġu attakkati mingħajr login permezz ta' kull paġna pubblika ta' PHP. Kontra PHP2Shell jgħin l-aġġornament ta' PHP segwit mir-restart tal-workers kollha; l-ħabi sempliċement inaqqas il-wiċċ ta' attakk l-ieħor.