Fil-qosor: Meta PHP-FPM, Apache jew proċess ieħor tas-server tal-web jibda shell bħal sh jew bash, dan huwa wieħed mill-aqwa sinjali ta' twissija ta' dħul permezz tal-websajt. Iċċekkja s-siġra tal-proċessi, il-linja tal-kmand u d-direttorju tax-xogħol tas-shell, qabel ma twaqqaf xi ħaġa. Shells individwali qosra jistgħu jkunu leġittimi; shells li jdumu jaħdmu b'għodod tan-netwerk kważi qatt ma huma.
Għaliex dan il-mudell jgħid daqshekk
Server tal-web iwieġeb talbiet. PHP-FPM, jiġifieri l-amministratur tal-proċessi li jesegwixxi skripts ta' PHP għas-server tal-web, normalment ma jibdix programmi oħra għal dan. Shell taħt is-server tal-web tfisser li kodiċi ta' PHP sejjaħ programm intenzjonalment. Jew l-applikazzjoni tagħmel dan apposta, jew xi ħadd ieħor daħħal kodiċi.
Għal PHP2Shell ma hemm l-ebda Indicators of Compromise ippubblikati u kkonfermati, jiġifieri l-ebda lista ta' sinjali fissi ta' tagħrif. L-iskoperta tistrieħ fuq l-imġiba. Skont ir-rapporti li għandna quddiemna, proċessi tas-server tal-web jew ta' PHP-FPM li jibdew shell jagħmlu parti mill-aqwa sinjali ġenerali ta' twissija. Dan japplika għal kull vulnerabbiltà li biha l-attakkanti jesegwixxu kodiċi fuq is-server. Ħarsa ġenerali lejn sinjali oħra tagħti Diġà kompromess?.
Għaliex is-shell hija daqshekk importanti għal attakkant? B'vulnerabbiltà jista' l-ewwel jibgħat biss kmandi individwali permezz tal-proċess ta' PHP. Shell tagħmel minn dan post tax-xogħol komdu: jista' jħares madwar, iniżżel għodod, jaqra dettalji tal-aċċess minn fajls tal-konfigurazzjoni u jistabbilixxi ruħu b'mod permanenti. Min jagħraf is-shell, ħafna drabi jagħraf l-attakkant eżattament fil-mument li jgħaddi mill-ewwel aċċess għall-pjan veru.
PHP-FPM jibda bash: aqra s-siġra tal-proċessi
Kull proċess taħt Linux għandu proċess ġenitur. Il-mistoqsija hija jekk shell taħdimx bħala tifel ta' proċess tas-server tal-web. Il-kmandi li ġejjin jaqraw biss:
# Siġra tal-proċessi bl-utent, il-PID tal-ġenitur u l-ħin tal-bidu
ps -eo user,pid,ppid,lstart,cmd --forest | grep -B2 -A4 -E "[p]hp-fpm|[a]pache2|[h]ttpd|[l]sphp"
# Shells li jaħdmu taħt utenti tipiċi tas-server tal-web
ps -eo user,pid,ppid,lstart,cmd | grep -E "^(www-data|apache|nginx) " | grep -E "[ /](ba|da)?sh( |$)"
# Siġra mill-eqdem proċess ta' PHP-FPM
pstree -alp "$(pgrep -o php-fpm)"
Jekk sibt shell suspettuża, id-daħliet taħt /proc jagħtu indikazzjonijiet oħra, ukoll jaqraw biss:
PID=12345 # PID tas-shell suspettuża
tr '\0' ' ' < /proc/$PID/cmdline; echo # linja tal-kmand sħiħa
ls -l /proc/$PID/cwd /proc/$PID/exe # direttorju tax-xogħol u fajl tal-programm
ls -l /proc/$PID/fd 2>/dev/null | grep socket # konnessjonijiet tan-netwerk miftuħa
L-ismijiet tal-proċessi fuq Debian u Ubuntu spiss ikunu php8.3-fpm jew simili; adatta l-mudelli tat-tfittxija. Direttorji tax-xogħol f'/tmp, /dev/shm jew f'folders tal-upload huma sinjal ċar.
Eċċezzjonijiet leġittimi u sinjali veri ta' twissija
Xi applikazzjonijiet isejħu programmi permezz ta' PHP. Hekk jista' jinħoloq shell għal ftit, pereżempju meta PHP jgħaddi posta permezz ta' sendmail_path jew applikazzjoni tipproċessa immaġini b'għodda esterna. Shells bħal dawn jgħixu biss sekondi u dejjem isejħu l-istess programm. Iddokumenta dawn il-każijiet mistennija darba sew; imbagħad kull devjazzjoni minnhom tidher minnufih, minflok ma tintilef f'għargħar ta' messaġġi magħrufa.
| Osservazzjoni | Aktar bla ħsara jekk | Suspettuża jekk |
|---|---|---|
| Shell qasira taħt PHP-FPM | tibda programm magħruf tal-applikazzjoni | mira u skop mhux ċari |
| Shell li ddum taħdem | qatt | iddum minuti jew sigħat |
| Għodod tan-netwerk bħala proċess tifel | mistoqsija magħrufa ta' aġġornament jew API tal-applikazzjoni | isegwu downloads f'direttorji temporanji |
| Direttorju tax-xogħol | folder tal-proġett tal-applikazzjoni | /tmp, /dev/shm, folders tal-upload |
| Mument | jaqbel ma' azzjoni magħrufa, pereżempju ibgħat tal-posta | bil-lejl, mingħajr attività tal-utent, f'ċumulu |
Jekk ma tafx jekk l-applikazzjoni tiegħek issejjaħx programmi, staqsi lill-iżviluppatur jew fittex fil-kodiċi funzjonijiet bħal exec, shell_exec, system, passthru, proc_open u popen. Riżultati fil-kodiċi proprju huma normali, riżultati fi fajls mhux magħrufa le.
Issorvelja b'mod permanenti minflok tħares darba
Ritratt tal-mument b'ps jaqbad biss shells li jkunu qed jaħdmu. Proċessi ta' ħajja qasira jaħarbu. Aktar affidabbli huwa li l-bidu tal-programmi mill-utent tas-server tal-web jiġi rreġistrat b'mod permanenti. Taħt Linux dan jagħmlu s-servizz tal-awditjar auditd b'regola għall-bidu ta' programmi mill-utent tas-server tal-web. L-evalwazzjoni ssir b'qari:
# Uri l-bidu tal-programmi rreġistrati taħt ċavetta tar-regola (ċavetta bħala eżempju)
sudo ausearch -k web_exec --start today -i | grep -E "exe=|proctitle="
Kif tidher ir-regola jiddependi mid-distribuzzjoni u mill-ID tal-utent; ittestjaha l-ewwel, għax fuq servers b'tagħbija kbira jinħolqu ħafna daħliet.
Żewġ żidiet jagħmlu s-sorveljanza soda. L-ewwel, il-protokolli għandhom imorru wkoll lejn sistema ċentrali, għax attakkant b'drittijiet ta' root jista' jħassar logs lokali. It-tieni, hemm bżonn ta' allarm: bidu ta' programm mill-utent tas-server tal-web li ma jinsabx fuq lista qasira ta' programmi mistennija għandu jattiva notifika, mhux biss daħla fil-log. Min diġà juża soluzzjoni ta' skoperta fuq apparati finali jew servers jista' jirrappreżenta l-istess regola hemm. B'mod preventiv b'disable_functions jista' jiġi mblukkat dak li l-applikazzjoni ma teħtieġx. Dan ma jagħlaqx vulnerabbiltà fl-interpretatur, imma jagħmel il-pass li jmiss tal-attakkant aktar diffiċli. Dettalji hemm taħt Kif tuża sew disable_functions.
X'għandek tagħmel jekk issib shell taħt is-server tal-web
- Iddokumenta: Salva l-output ta'
ps, il-linja tal-kmand, id-direttorju tax-xogħol u l-konnessjonijiet miftuħa f'fajl barra mid-direttorju tal-web. - Tnaddafx: Tħassarx fajls u twaqqafx proċessi qabel ma jiġu salvati t-traċċi.
- Iżola: Neħħi s-server min-netwerk jew illimita l-aċċess b'mod qawwi.
- Fittex il-kawża: Iċċekkja l-logs, fajls ġodda u persistenza bħal cronjobs, ara Sib proċessi suspettużi fuq servers tal-Linux.
- Biddel l-aċċessi: Il-passwords u ċ-ċwievet kollha li kienu fuq is-server jitqiesu magħrufa.
Jekk l-applikazzjoni taħdem f'containers, japplika l-istess prinċipju fuq skala żgħira. Shell f'container ta' PHP hija suspettuża bl-istess mod bħal fuq server klassiku, u l-images tal-container spiss fihom biss għax l-image bażi jġibha magħha. Qabel ma terġa' tibda l-container salva l-istat tiegħu, għax mal-container jisparixxu wkoll it-traċċi fis-sistema tal-fajls volatili.
Iċċekkja wkoll il-viċinat. Attakkant b'shell fuq server tal-web spiss jipprova minn hemm jilħaq sistemi oħra, pereżempju d-database, il-ħażna tal-backups jew interfaces interni tal-amministrazzjoni. Dettalji tal-aċċess fil-fajls tal-konfigurazzjoni tal-applikazzjoni jagħmlu dan faċli għalih.
Shell li ddum taħdem taħt PHP-FPM fuq server b'data tal-klijenti hija inċident tas-sigurtà. Ittrattaha hekk: salva, iżola, aħdem b'mod strutturat, ħalli l-obbligi ta' notifika jiġu vverifikati.
Kif tgħin PHP SOS b'mod konkret?
- Nikklassifikaw is-sejba: Niċċekkjaw is-siġra tal-proċessi, il-linji tal-kmand u l-konnessjonijiet u nifirdu l-imġiba tal-applikazzjoni minn traċċi ta' dħul.
- Insalvaw it-traċċi: Insalvaw l-istat tas-sistema b'mod traċċabbli qabel ma jinbidel xi ħaġa.
- Nittrattaw l-inċident: Bl-Incident Response inwasslu mill-ilqugħ sal-għeluq iddokumentat.
- Nassiguraw fit-tul: Nissettjaw ir-reġistrazzjoni tal-bidu tal-programmi u nillimitaw il-funzjonijiet ta' PHP għal dak meħtieġ. Kif jaħdem PHP-FPM internament tispjegah PHP-FPM spjegat.
Mistoqsijiet frekwenti
Kull shell taħt PHP-FPM hija attakk?
Mhux kollha. Xi applikazzjonijiet jsejħu intenzjonalment programmi permezz ta' PHP, pereżempju għall-ipproċessar tal-immaġini jew l-ibgħat tal-posta, u hekk jista' jinħoloq shell għal ftit. Isir suspettuż meta s-shell idum jaħdem, tibda għodod tan-netwerk jew taħdem minn direttorji mhux tipiċi.
Għandi nwaqqaf immedjatament il-proċess suspettuż?
L-ewwel iddokumenta, imbagħad aġixxi. Żomm id-data tal-proċess, il-linja tal-kmand, id-direttorju tax-xogħol u l-konnessjonijiet tan-netwerk. Wara iżola s-server. Waqfien bil-għaġla jeqred it-traċċi u ma jipprevjenix li l-attakkant jirritorna.
Hemm sinjali ta' tagħrif ikkonfermati għal PHP2Shell?
Le. Ma hemm l-ebda Indicators of Compromise ippubblikati u kkonfermati. Shells taħt is-server tal-web huma sinjal ġenerali ta' twissija għal dħul permezz ta' applikazzjonijiet tal-web, mhux speċifiku għal PHP2Shell.
Kif nipprevjeni li PHP jibda shells?
Permezz ta' disable_functions jistgħu jiġu mblukkati funzjonijiet bħal exec, shell_exec, system u proc_open, jekk l-applikazzjoni ma teħtiġhomx. Dan ma jagħlaqx vulnerabbiltà fl-interpretatur ta' PHP, imma jagħmel l-isfruttament aktar diffiċli.