Fil-qosor: B'PHP disable_functions issakkru funzjonijiet li permezz tagħhom PHP jesegwixxi kmandi tas-sistema, pereżempju exec, shell_exec jew proc_open. Dan jagħmel il-pass li jmiss aktar diffiċli għall-attakkanti wara dħul. L-issettjar jaħdem biss mill-php.ini jew mill-pool FPM, irid jaqbel mal-applikazzjoni u ma jissostitwixxix aġġornament.
Għaliex disable_functions huwa sensat propju issa
F'PHP2Shell hawn l-eżekuzzjoni ta' kodiċi malizzjuż mill-bogħod mingħajr login. Iż-żewġ vulnerabbiltajiet CVE-2026-109618 u CVE-2026-109619 jinsabu fl-interpretatur ta' PHP innifsu, rranġati f'PHP 8.5.12, 8.4.27, 8.3.36 u 8.2.35. L-aġġornament huwa t-triq unika biex jingħalqu.
It-tisħiħ jibda livell wara. Min darba jista' jesegwixxi kodiċi fuq server ġeneralment irid ikompli: jibda kmandi tas-sistema, iniżżel għodod, jistabbilixxi backdoor permanenti. Ħafna minn dawn il-passi jgħaddu minn ftit funzjonijiet ta' PHP. Jekk dawn ikunu msakkra, it-triq issir iktar iebsa u iktar viżibbli.
disable_functions għalhekk mhuwiex sostitut tal-patches, imma element għall-każ li, minkejja kull prekawzjoni, xi ħaġa tgħaddi. Dan japplika għal vulnerabbiltajiet futuri bħalma japplika għal PHP2Shell.
X'jagħmel PHP disable_functions u x'ma jagħmilx
L-issettjar ineħħi l-funzjonijiet imsemmija mill-ambjent tat-tħaddim. Jekk skript isejjaħ funzjoni mblukkata, PHP jieqaf b'żball. Is-sakra tgħodd għal kull kodiċi li jaħdem f'dan il-proċess ta' PHP, għalhekk ukoll għal kodiċi introdott.
Il-limiti għandkom tkunu tafuhom:
- L-issettjar mhuwiex spazju protett magħluq. Estensjonijiet ta' PHP, żbalji fl-interpretatur jew programmi barra minn PHP jistgħu jiċċirkumvenjuh.
- Ma jipprevjenix li attakkant jaqra jew jikteb fajls li l-utent ta' PHP għandu aċċess għalihom. Għal dan jaħdmu d-drittijiet tal-fajls u l-iżolament.
- Jaħdem biss mill-php.ini jew bħala
php_admin_value. B'ini_set(),.user.inijew.htaccessma jistax jiġi ffissat.
Disable_functions jagħti l-aktar flimkien ma' php.ini nadifa, utenti separati għal kull websajt u drittijiet restrittivi tal-fajls. Il-bażijiet dwar dan jinsabu fil-gwida Kif tikkonfiguraw php.ini b'mod sikur.
Liema funzjonijiet għandkom issakkru
Għal websajts tipiċi mingħajr bżonn ta' kmandi tas-sistema, il-lista li ġejja ppruvat ruħha. Tinkludi funzjonijiet biex jinbdew proċessi u biex jiġu kkontrollati proċessi li jaħdmu.
| Grupp | Funzjonijiet | Użu leġittimu tipiku |
|---|---|---|
| Eżekuzzjoni ta' kmandi | exec, shell_exec, system, passthru |
Ipproċessar tal-immaġini, backups b'skript |
| Ftuħ ta' proċessi | proc_open, popen |
Composer, għodod tal-PDF, bgħit tal-posta |
| Kontroll ta' proċessi | proc_nice, proc_terminate, proc_get_status |
Kjuwijiet, jobs fl-isfond |
| Amministrazzjoni tal-proċessi | pcntl_exec, pcntl_fork |
ġeneralment biss fuq il-linja tal-kmand |
| Sinjali u drittijiet | posix_kill, posix_setuid |
rari fit-tħaddim tal-web |
Bħala konfigurazzjoni dan jidher hekk:
; php.ini tal-modalità tat-tħaddim tal-web, pereżempju /etc/php/8.3/fpm/php.ini
disable_functions = exec,shell_exec,system,passthru,proc_open,popen,proc_nice,proc_terminate,proc_get_status,pcntl_exec,pcntl_fork,posix_kill,posix_setuid
Jekk il-lista ma tgħoddx għall-websajts kollha fuq is-server, iffissawha għal kull pool FPM. Wara r-reload ivverifikaw liema lista verament tgħodd f'dan il-pool:
; /etc/php/8.3/fpm/pool.d/meine-seite.conf (silta)
php_admin_value[disable_functions] = exec,shell_exec,system,passthru,proc_open,popen
Ivverifikaw l-applikazzjoni minn qabel: hekk tevitaw waqfiet
Min jiffissa l-lista mingħajr verifika jirriskja li tnaqqis tal-immaġini, fatturi PDF jew il-bgħit tal-posta f'daqqa jieqfu jaħdmu. Fittxu għalhekk minn qabel fil-kodiċi għall-funzjonijiet affettwati:
# Fejn u kemm-il darba jintużaw il-funzjonijiet fil-kodiċi?
grep -rnoE "\b(exec|shell_exec|system|passthru|proc_open|popen|pcntl_exec)\s*\(" /var/www/meine-seite --include="*.php" \
| cut -d: -f1 | sort | uniq -c | sort -rn | head -30
Sejbiet ma jfissrux awtomatikament li l-funzjoni hija meħtieġa fit-tħaddim. Ħafna libreriji l-ewwel jivverifikaw jekk funzjoni hijiex disponibbli, u jaqilbu għal triq oħra jekk le. Id-deċiżiv huwa test f'ambjent staging b'kull proċess importanti: ordni, fattura, bgħit tal-formoli, upload tal-immaġini, kompiti skedati.
Jekk applikazzjoni teħtieġ bilfors waħda minn dawn il-funzjonijiet, ivverifikaw ir-rekwiżiti tas-sistema tal-manifattur fuq il-paġna uffiċjali tiegħu. Ħafna drabi l-kompitu jista' jinqaleb għal pool separat jew skript tal-linja tal-kmand li ma jintlaħaqx mill-web.
Attivaw l-issettjar u kkontrollaw l-effett
Wara l-bidla, PHP irid jerġa' jaqra l-konfigurazzjoni. Wara ivverifikaw il-valur fil-modalità tat-tħaddim tal-websajt tagħkom, mhux fuq il-linja tal-kmand:
sudo systemctl reload php8.3-fpm
php-fpm8.3 -i | grep "^disable_functions"
# Ivverifikaw il-log tal-iżbalji għal sejħiet ta' funzjonijiet imsakkra
sudo grep -i "has been disabled" /var/log/php/*.log | tail -20
Il-messaġġi fil-log tal-iżbalji huma siewja wkoll aktar tard. Jekk f'daqqa wieħed jidhru hemmhekk sejħiet ta' funzjonijiet imsakkra għalkemm l-applikazzjoni tagħkom ma tużahomx, dan jista' jindika kodiċi introdott. Kif tkomplu f'dak il-każ tiddeskrivi l-gwida Kif tagħrfu u tneħħu webshells.
Żbalji tipiċi fl-użu ta' disable_functions
Fil-prattika t-tisħiħ rari jfalli mit-teknika, imma minn dettalji żgħar. Dawn l-iżbalji huma partikolarment mifruxa:
- Fajl żbaljat mibdul: Il-lista tinsab biss fil-php.ini tal-linja tal-kmand, il-websajt taħdem permezz ta' PHP-FPM u tibqa' mhix protetta.
- L-ebda restart: Il-fajl huwa korrett, imma l-proċessi li jaħdmu għadhom jaħdmu bil-konfigurazzjoni l-qadima.
- Sakra wiesgħa żżejjed: Funzjonijiet bħal
ini_setjewmailjiġu msakkra wkoll, u proċessi importanti jieqfu mingħajr ma jidher. L-iżbalji spiss jinstabu biss wara jiem, pereżempju meta ma jaslux konfermi tal-ordni. - Iffissata darba, qatt ivverifikata: Wara trasferiment, bidla tal-verżjoni ta' PHP jew installazzjoni mill-ġdid permezz tal-panel tal-hosting, il-lista tkun sparixxiet.
- Sens falz ta' sigurtà: Is-sakra tinftiehem bħala sostitut tal-aġġornamenti. Imma ma tagħlaq l-ebda vulnerabbiltà fl-interpretatur.
Inkludu għalhekk il-verifika tal-valur attiv fir-rutina tagħkom wara kull aġġornament ta' PHP. Ħarsa qasira hija biżżejjed, ma tiswiex kważi ħin u tevita li tisħiħ jintilef bil-kwiet.
B'diversi websajts fuq server wieħed: oħolqu għal kull websajt pool proprju b'lista proprja. B'mod komplementari, open_basedir jillimita d-direttorji li PHP jista' jaċċessa.
Kif tgħin PHP SOS b'mod konkret?
- Niċċekkjaw il-kodiċi u l-proċessi tal-applikazzjoni tagħkom għall-użu ta' funzjonijiet kritiċi.
- Niffissaw għal kull websajt lista ta' sakra xierqa u nittestjawha qabel ma tmur live.
- Nikkombinaw is-sakra ma' pools, drittijiet tal-fajls u reġistrazzjoni f'kunċett konsistenti ta' tisħiħ.
- Niddokumentaw l-issettjar u nissorveljaw il-log tal-iżbalji għal sejħiet suspettużi.
Kif dan jaħdem bħala pakkett sħiħ jiddeskrivih is-servizz Tisħiħ tas-server għal servers tal-web bi PHP.
Mistoqsijiet frekwenti
Nista' nissettja disable_functions permezz ta' ini_set() jew .htaccess?
Le. L-issettjar jaħdem biss mill-php.ini jew bħala php_admin_value fil-pool FPM jew fil-konfigurazzjoni ta' Apache. Waqt it-tħaddim ma jistax jiġi ffissat, u l-applikazzjoni lanqas ma tista' terġa' tippermetti funzjonijiet imsakkra.
disable_functions jipproteġi minn PHP2Shell?
Le. PHP2Shell jolqot l-interpretatur ta' PHP innifsu, il-vulnerabbiltà tingħalaq biss bl-aġġornament. Funzjonijiet imsakkra, madankollu, jistgħu jillimitaw il-marġni ta' attakkant wara sfruttament b'suċċess.
Għaliex php -i juri lista differenti mill-websajt tiegħi?
Il-linja tal-kmand ħafna drabi taqra php.ini proprja. Għall-websajt tgħodd il-konfigurazzjoni ta' PHP-FPM, mod_php jew LiteSpeed. Ivverifikaw għalhekk il-valur fil-modalità tat-tħaddim li permezz tagħha taħdem il-websajt tagħkom.
Liema applikazzjonijiet jeħtieġu proc_open jew exec?
Dan jiddependi mill-applikazzjoni. Tipiċi huma l-ipproċessar tal-immaġini permezz ta' programmi esterni, il-ġenerazzjoni ta' PDF, il-bgħit tal-posta permezz ta' sendmail jew għodod bħal Composer. Ivverifikaw dan fil-kodiċi u fir-rekwiżiti tas-sistema tal-manifattur.