Dabartinė padėtis: PHP2Shell. Du kritiniai PHP pažeidžiamumai (CVSS 9,2) leidžia vykdyti kenkėjišką kodą be prisijungimo. Pataisos nuo 2026-10-21.Ką dabar daryti →

Ką CERT-EU ir CERT-Bund pataria dėl PHP2Shell

Oficialios institucijos sutaria: nedelsiant taisyti, kitaip izoliuoti. Palyginame rekomendacijas ir parodome, kaip izoliavimas atrodo praktiškai.

Būsena 4 min. skaitymoPadėtis ir vertinimas

Trumpai: CERT-EU, pasak pranešimų, pataria surašyti PHP diegimus, nedelsiant taisyti ir viešai pasiekiamas programas izoliuoti, jei jų nepavyksta pataisyti netrukus. CERT-Bund ir BSI savo įspėjime rekomenduoja nedelsiant atnaujinti, o jei to padaryti negalima, paveiktus žiniatinklio serverius laikinai atjungti nuo tinklo. Rekomendacijos iš esmės sutampa: pirmiausia atnaujinimas, izoliavimas kaip avarinis sprendimas, pereinamosios priemonės tik kaip papildymas.

Kas įspėja ir kam?

Dėl PHP2Shell kelios oficialios institucijos sureagavo per kelias valandas. Vokietijos įmonėms pirmasis adresas yra BSI su savo kompiuterinių incidentų reagavimo komanda CERT-Bund. CERT-EU yra ES institucijų kibernetinio saugumo tarnyba; jos nurodymai pirmiausia skirti joms, bet skaitomi visoje Europoje. Pasak BleepingComputer, įspėjo ir Didžiosios Britanijos Nacionalinis kibernetinio saugumo centras. Iš privačiojo sektoriaus pasisakė, be kita ko, Huntress ir Cloudflare.

Operatoriui kilmė mažiau svarbi nei sutapimas. Kai kelios nepriklausomos institucijos pataria tą patį, tai stiprus signalas.

CERT-Bund, CERT-EU ir kitos: PHP įspėjimų palyginimas

Institucija Pagrindinė rekomendacija Ypatumas
BSI / CERT-Bund nedelsiant atnaujinti, kitaip žiniatinklio serverius laikinai atjungti nuo tinklo įspėjimo lygis 3 / oranžinis
CERT-EU surašyti PHP diegimus, nedelsiant taisyti, kitaip viešas programas izoliuoti pasak pranešimų, laikė galimu, kad paveiktos versijos nuo PHP 5
UK NCSC nedelsiant atnaujinti arba paveiktas sistemas iki pataisos atjungti nuo tinklo pasak BleepingComputer
php.net atnaujinti iki 8.5.12, 8.4.27, 8.3.36 arba 8.2.35, pereinamosios priemonės tik kaip dalinė apsauga pirminis šaltinis versijoms ir nustatymams

Nė viena institucija nerekomenduoja pasikliauti vien žiniatinklio programų užkarda (Web Application Firewall) ar php.ini nustatymais. Visos tikruoju sprendimu įvardija atnaujinimą. Ką BSI dar konkrečiai pataria, rasite puslapyje Ką BSI rekomenduoja dėl PHP2Shell.

Versijų klausimas: ką reiškia „nuo PHP 5“

CERT-EU, pasak pranešimų, laikė galimu, kad paveiktos versijos nuo PHP 5. Institucija, pasak specialistų pranešimų, rėmėsi informacija, kuri plito prieš oficialų pranešimą. Specializuota spauda kalba apie beveik visas versijas iki pat PHP 5.4.

Praktiškai tiksli riba mažai ką keičia. PHP 8.1 ir senesnėms versijoms PHP projektas oficialių atnaujinimų nebeteikia. Yra minimalūs šaltinio atgaliniai perkėlimai (backport) versijoms 7.4, 8.0 ir 8.1, bet ne leidimai. Kas dar eksploatuoja PHP 5 ar 7, priklauso nuo distribucijų, trečiųjų šalių arba migracijos. Ar jūsų distribucija pateikė taisymą, rodo jos pačios saugumo puslapiai, pavyzdžiui, Debian Security Tracker, Ubuntu Security Notices ar Red Hat nurodymai. Komercinių ilgalaikės priežiūros pasiūlymų senoms PHP versijoms taip pat yra; ar jie apima PHP2Shell, turėtumėte prašyti teikėjo patvirtinti raštu. Išsamiau apie šakas rašoma skyreliuose Kurios PHP versijos paveiktos? ir PHP 8.1 ir senesnės.

Izoliuoti: kaip įgyvendinti rekomendaciją

„Izoliuoti“ skamba abstrakčiai. Turima omenyje, kad užklausos iš interneto nebepasiekia pažeidžiamos PHP programos. Priklausomai nuo programos, yra keli lygiai:

  1. Visiškai išjungti: svetainė pakeičiama statiniu avariniu puslapiu be PHP. Tai saugiausias variantas.
  2. Apriboti prieigą: programa lieka veikti, bet pasiekiama tik per VPN arba nustatytiems IP adresams, pavyzdžiui, vidiniams portalams.
  3. Prieš tai įjungtas prisijungimas: prisijungimas žiniatinklio serverio ar tarpinio serverio (proxy) lygiu prieš programą. Dėmesio: esant mod_php išnaudojimas buvo parodytas dar prieš vykdant programos kodą. Todėl prisijungimas turi veikti prieš PHP, o ne pačioje programoje.
  4. Užblokuoti tiesioginę prieigą prie šaltinio: kas naudoja tarpinio serverio ar CDN paslaugą, turėtų užtikrinti, kad serveris nebūtų pasiekiamas dar ir tiesiogiai.

Apribojimas žiniatinklio serveryje gali atrodyti taip, kaip nepavojinga Apache konfigūracija:

# Leisti prieigą tik iš vidinio tinklo (pavyzdinį diapazoną pritaikyti)
<Location "/">
    Require ip 192.0.2.0/24
</Location>

Poveikį išbandykite iš išorės, pavyzdžiui, per mobiliojo ryšio jungtį. Izoliacija, patikrinta tik biuro tinkle, nėra patikrinta izoliacija.

Patarimas

Izoliavimas yra laikina priemonė. Izoliuodami iš karto nustatykite, iki kada atnaujinimas pasirodys ir kas jį įdiegs. Kitaip avarinis sprendimas virsta nuolatine būsena.

Ko rekomendacijos reikalauja bendrai: inventoriaus

Visos oficialios institucijos numato, kad žinote, kur veikia PHP. Būtent čia daug įmonių suklumpa: seniai kampanijų mikrosvetainės, pamirštas klientų portalas, bandomoji sistema su vieša adresu, programa NAS įrenginyje. CERT-EU PHP diegimų surašymą aiškiai įvardija kaip pirmą žingsnį.

Pamirštas sistemas lengviausia rasti trimis keliais: jūsų domenų DNS zonomis, išduotų TLS sertifikatų sąrašu ir sutartimis su agentūromis, talpintojais ir programinės įrangos teikėjais. Kiekvienas įrašas, apie kurį niekas negali iš karto pasakyti, kas už jo veikia, patenka į tikrinamų sąrašą. Būtent tokios sistemos yra pavojingos esant tokiai padėčiai kaip PHP2Shell, nes jų niekas netaiso ir niekas nepasigenda, kai jos sukompromituojamos.

Naudingas inventorius kiekvienai sistemai apima: adresą, paskirtį, operatorių, PHP versiją ir veikimo režimą, paketų šaltinį ir kontaktinį asmenį atnaujinimams. Kaip jį sudaryti ir atnaujinti, parodo straipsnis Visų svetainių ir serverių inventorius.

Kaip PHP SOS padeda konkrečiai?

  • Surašymas: Nustatome jūsų viešai pasiekiamas PHP sistemas ir suskirstome jas pagal riziką.
  • Pataisa ar izoliacija: Įdiegiame atnaujinimus arba izoliuojame programas, kurių iš karto pataisyti negalima, ir poveikį tikriname iš išorės.
  • Senos versijos: Sistemoms su PHP 8.1 ir senesne versija su jumis planuojame kelią į palaikomą būseną.
  • Įrodymas: Gaunate įgyvendintų rekomendacijų dokumentaciją kiekvienai sistemai.

Kaip senas programas perkeliame į palaikomas versijas, aprašo paslauga PHP migracija senoms sistemoms.

Išvada

CERT-EU, CERT-Bund, BSI ir PHP projektas kalba vienu balsu: atnaujinti, o kur to iš karto neįmanoma, izoliuoti. Skirtumai yra detalėse, pavyzdžiui, versijos ribose. Jūsų praktikoje svarbus pirmas žingsnis, kurio reikalauja visi: žinoti, kur apskritai veikia PHP.

Dažni klausimai

Kuo skiriasi CERT-Bund ir CERT-EU?

CERT-Bund yra BSI (Vokietijos federalinė informacijos saugumo tarnyba) kompiuterinių incidentų reagavimo komanda ir Vokietijoje perspėja apie pažeidžiamumus. CERT-EU yra Europos Sąjungos institucijų ir įstaigų kibernetinio saugumo tarnyba. Abi teikia rekomendacijas, kurios naudingos ir įmonėms.

Ką reiškia izoliuoti PHP programą?

Po to programa nebėra laisvai pasiekiama iš interneto. Tai galima padaryti avariniu puslapiu, prieiga tik per VPN ar nustatytus IP adresus arba visiškai išjungus. Lemia tai, kad išorinės užklausos nebepasiektų pažeidžiamo PHP proceso.

Ar, pasak CERT-EU, paveiktos ir PHP 5 versijos?

CERT-EU, pasak pranešimų, laikė galimu, kad paveiktos versijos nuo PHP 5, remdamasi informacija, kuri plito prieš oficialų pranešimą. Specializuota spauda mini beveik visas versijas iki PHP 5.4. Tokioms senoms versijoms oficialių atnaujinimų nėra.

Ar yra oficialių atakų atpažinimo požymių?

Ne. Kol kas dėl PHP2Shell nėra paskelbtų, patvirtintų kompromitavimo rodiklių (Indicators of Compromise). Aptikimas remiasi elgsenos analize, pavyzdžiui, žiniatinklio serverio procesais, kurie paleidžia apvalkalus (shell), arba naujais PHP failais įkėlimo aplankuose.

Šaltiniai

Skubus kontaktas

Kiekviena valanda svarbi. Parašykite mums dabar.

Trumpai aprašykite sistemą, PHP versiją ir pastebėjimus. Mes atsakysime, išsiaiškinsime padėtį ir dirbsime nuotoliu, kol incidentas bus užbaigtas ir dokumentuotas.

Skubi pagalba