Īsi: virtuālā ielāpošana PHP videi pārvar laiku, līdz ir instalēts īstais atjauninājums. Šim nolūkam mēs apvienojam Web Application Firewall noteikumus ar pagaidu pasākumiem, ko php.net publicējis par PHP2Shell, un uzreiz nosakām ceļu uz regulāro ielāpu. Pilnīgu aizsardzību tas nenodrošina, taču pārejas laikā samazina risku.
Kad virtuālā ielāpošana PHP videi ir lietderīga
PHP2Shell gadījumā BSI iesaka atjaunināt nekavējoties un, ja tas nav iespējams, uz laiku atvienot tīmekļa serverus no tīkla. Daudziem uzņēmumiem neviens no variantiem nav uzreiz īstenojams: veikalam jāpaliek pieejamam, pašu izstrādātai lietojumprogrammai pirms atjauninājuma vajadzīga pārbaude, vai serveris darbojas ar PHP 8.1 un vecāku, kam oficiālu atjauninājumu vairs nav.
Šādos gadījumos virtuālā ielāpošana ir tilts. Tā neaizstāj lēmumu par to, vai piemērotāka nebūtu darbība bezsaistē. Šo izvērtējumu veicat jūs, mēs sniedzam tehnisko vērtējumu.
Kāpēc ar WAF vien nepietiek
Cloudflare ziņoja par novērotiem uzbrukuma mēģinājumiem un ieviesa aizsardzības noteikumus, taču brīdina, ka noteikumi, kas balstīti tikai uz pieprasījuma datiem, nepietiek. Iemesls ir ievainojamību veidā. CVE-2026-109618 gadījumā Out-of-Memory stāvoklis var pārtraukt PHP, kamēr pieprasījuma dati ir inicializēti tikai daļēji. CVE-2026-109619 gadījumā iekšējais stāvoklis pēc atmiņas atbrīvošanas var saglabāties un tikt izmantots vēlākā pieprasījumā tajā pašā darbprocesā. Šādas kļūdas ir atkarīgas no servera stāvokļa, nevis tikai no viena pieprasījuma satura.
Tāpēc mēs balstāmies uz vairākiem slāņiem: WAF noteikumi pirms servera, pagaidu pasākumi pašā PHP un pastiprināta servera novērošana. Katrs slānis aptur daļu, neviens vien nepietiek. Kopā tie dod jums laiku atjauninājumu uzlikt sakārtoti.
Pagaidu pasākumi saskaņā ar php.net
php.net min vairākus iestatījumus, kas samazina risku, tieši norādot, ka pilnīgu aizsardzību tie nenodrošina. Svarīgi, lai lietojumprogrammas šīs vērtības nevarētu pārrakstīt. Piemērs PHP-FPM pūlam ar augšupielādēm:
; PHP2Shell pagaidu pasākumi (nav pilnīga aizsardzība), pēc tam pārstartēt visus darbprocesus
php_admin_value[memory_limit] = -1
php_admin_value[post_max_size] = 32M
php_admin_value[upload_max_filesize] = 30M
php_admin_flag[session.upload_progress.enabled] = off
; tikai PHP 8.5:
php_admin_flag[fatal_error_backtraces] = off
Bez augšupielādēm php.net iesaka post_max_size = 8M. Tā kā memory_limit tiek atcelts, klāt jānāk atmiņas ierobežojumam konteinera vai cgroup līmenī, nevis ar RLIMIT_AS vai RLIMIT_DATA. Iestatījums session.upload_progress.enabled=0 jāliek php.ini, FPM pūlā vai servera konfigurācijā, nevis ini_set() vai .user.ini. Tas ir arī pretlīdzeklis norādei par CVE-2026-115560. Visus pasākumus pārskatāmi atradīsiet lapā Tūlītēji pasākumi, ja vēl nevarat ielāpot.
Pagaidu pasākumi darbojas tikai pēc visu PHP darbprocesu pārstartēšanas. Un tie aizsargā tikai pret turpmākiem uzbrukumiem: vai iepriekš kāds jau nav iekļuvis, tie neatbild.
Kad darbība bezsaistē ir labāka izvēle
Virtuālā ielāpošana ne katrā situācijā ir pareizā atbilde. Dažās konstelācijās iesakām sekot BSI un uz laiku atvienot tīmekļa serveri no tīkla, līdz ielāps ir uzlikts:
- serveris darbojas ar Apache un mod_php, kur PHP komanda risku vērtē kā augstāko un exploit tika demonstrēts, vēl pirms tiek izpildīts lietojumprogrammas kods
- serverī atrodas īpaši aizsargājami dati, piemēram, veselības, klientu konfidenciālie vai maksājumu dati
- nav iespējas pagaidu pasākumus stingri iestatīt servera konfigurācijā, piemēram, dažās koplietošanas hostinga pakotnēs
- jau ir pazīmes, ka serveris ticis uzbrukts
Īslaicīga darbība bezsaistē nenozīmē, ka jūsu vietne ir uzlauzta. Daži sniedzēji piesardzības nolūkos vietnes ir atvienojuši no tīkla. Īsa, lietišķa informācijas lapa apmeklētājiem tad parasti ir labāks risinājums nekā neizskaidrots pārtraukums.
Kā PHP SOS palīdz konkrēti?
- Pārbaudīt situāciju: Mēs uzskaitām PHP versijas, darbības režīmus un esošos aizsardzības slāņus, piemēram, CDN, WAF vai reverse proxy. Mod_php gadījumā norādām uz paaugstināto risku, ko PHP komanda tur saskata.
- Izveidot slāņus: Mēs aktivizējam vai papildinām WAF noteikumus, stingri iestatām pagaidu pasākumus servera konfigurācijā un ierobežojam atmiņu ar konteineru vai cgroup. Nginx risinājumiem balstāmies uz Nginx ar PHP-FPM nodrošināšanu.
- Pārstartēšana un tests: Visi PHP procesi tiek pārstartēti, pēc tam pārbaudām augšupielādes, veidlapas, pieteikšanos un kasi.
- Novērot: Pārejas laikā pastiprināti sekojam darbprocesu avārijām, atmiņas pīķiem un neparastiem procesiem.
- Plānot ielāpu: Mēs nosakām, kad un kā nāk regulārais atjauninājums, un īstenojam to ar PHP ielāpu pakalpojumu.
Ko jūs saņemat, ko mums vajag un ko mēs nesolām
Jūs saņemat dokumentāciju par visiem iestatītajiem noteikumiem un iestatījumiem ar pamatojumu, testu rezultātus un termiņu un pasākumu plānu īstajam ielāpam. No jums mums vajadzīga servera vai paneļa piekļuve, piekļuve CDN vai WAF, ja tāda ir, tehniska kontaktpersona un informācija par jūsu lietojumprogrammu augšupielādes funkcijām.
Mēs nesolām, ka virtuālā ielāpošana novērsīs uzbrukumu. Tā uz ierobežotu laiku samazina risku. PHP 8.1 un vecākām versijām tas nav pastāvīgs stāvoklis; šeit plānā jāiekļauj pāreja uz atbalstītu versiju.
Biežāk uzdotie jautājumi
Kas ir virtuālā ielāpošana?
Virtuālā ielāpošana nozīmē zināmu ievainojamību norobežot pirms lietojumprogrammas, nemainot pašu kodu. Tas parasti notiek ar Web Application Firewall vai konfigurācijas izmaiņām. Tas ir pārejas risinājums, nevis atjauninājuma aizstājējs.
Vai mana CDN sniedzēja WAF pret PHP2Shell pietiek?
Atsevišķi parasti nepietiek. Cloudflare ir ieviesis aizsardzības noteikumus, taču pats brīdina, ka noteikumi, kas balstīti tikai uz pieprasījuma datiem, nepietiek. WAF ir papildu slānis blakus pagaidu pasākumiem un ielāpam.
Cik ilgi drīkst paļauties uz virtuālo ielāpošanu?
Pēc iespējas īsāk. Tai jāpārvar laiks līdz regulārajam atjauninājumam, piemēram, līdz atbrīvojas apkopes logs vai lietojumprogramma ir pārbaudīta. PHP 8.1 un vecākām versijām klāt nāk migrācijas plāns.
Vai pagaidu pasākumi var traucēt manu vietni?
Jā, tas ir iespējams. Mazāki augšupielāžu ierobežojumi var neļaut augšupielādēt lielus failus, un session upload progress izslēgšana skar augšupielādes norādes. Pēc katras izmaiņas pārbaudām svarīgākās funkcijas.