Lühidalt: CERT-EU soovitab aruannete kohaselt PHP paigaldused kaardistada, paigata kohe ja isoleerida avalikult kättesaadavad rakendused, kui neid ei saa õigeaegselt paigata. CERT-Bund ja BSI soovitavad oma hoiatuses kohest uuendust ja, kui see ei õnnestu, mõjutatud veebiserverid ajutiselt võrgust maha võtta. Soovitused kattuvad tuumas: kõigepealt uuendus, isoleerimine hädalahendusena, ajutised meetmed vaid täiendusena.
Kes hoiatab ja kellele?
PHP2Shelli puhul reageerisid mitu ametlikku asutust mõne tunni jooksul. Saksamaa ettevõtete jaoks on esimene aadress BSI (Saksamaa föderaalne infoturbeamet) koos oma arvutiturvalisuse intsidentide lahendamise meeskonnaga CERT-Bund (Saksamaa föderaalvalitsuse CERT). CERT-EU on ELi institutsioonide küberturvalisuse teenistus; selle juhised on esmalt suunatud neile, kuid neid loetakse kogu Euroopas. BleepingComputeri andmetel hoiatas ka Ühendkuningriigi National Cyber Security Centre. Erasektorist andsid endast märku muu hulgas Huntress ja Cloudflare.
Teie kui käitaja jaoks on päritolust olulisem kokkulangevus. Kui mitu sõltumatut asutust soovitab sama, on see tugev signaal.
CERT-Bund, CERT-EU ja teised: PHP hoiatuste võrdlus
| Asutus | Põhisoovitus | Eripära |
|---|---|---|
| BSI / CERT-Bund | uuendada kohe, muidu veebiserverid ajutiselt võrgust maha | hoiatustase 3 / oranž |
| CERT-EU | PHP paigaldused kaardistada, paigata kohe, muidu avalikud rakendused isoleerida | pidas aruannete kohaselt võimalikuks, et mõjutatud on versioonid alates PHP 5-st |
| UK NCSC | uuendada kohe või võtta mõjutatud süsteemid paigani võrgust maha | BleepingComputeri andmetel |
| php.net | uuendada versioonile 8.5.12, 8.4.27, 8.3.36 või 8.2.35, ajutised meetmed ainult osalise kaitsena | esmaallikas versioonide ja sätete kohta |
Ükski asutus ei soovita toetuda ainult veebirakenduste tulemüürile (Web Application Firewall) ega php.ini sätetele. Kõik nimetavad tegeliku lahendusena uuendust. Mida BSI veel täpsemalt soovitab, seisab lehel Mida BSI PHP2Shelli kohta soovitab.
Versiooniküsimus: mida „alates PHP 5-st“ tähendab
CERT-EU pidas aruannete kohaselt võimalikuks, et mõjutatud on versioonid alates PHP 5-st. Erialaaruannete kohaselt tugines asutus seejuures teabele, mis liikus ringi enne ametlikku teadet. Erialaajakirjandus räägib peaaegu kõigist versioonidest tagasi kuni PHP 5.4-ni.
Praktikas see täpne piir midagi eriti ei muuda. PHP 8.1 ja vanemate jaoks PHP projekt ametlikke uuendusi enam ei anna. Versioonidele 7.4, 8.0 ja 8.1 on olemas minimaalsed lähtekoodi tagasiportimised, kuid väljalaskeid mitte. Kes käitab veel PHP 5 või 7, sõltub distributsioonidest, kolmandatest osapooltest või migreerimisest. Kas teie distributsioon on parandust tarninud, näitavad nende endi turvalehed, näiteks Debian Security Tracker, Ubuntu Security Notices või Red Hati märkused. Kommertspõhised pikaajalised pakkumised vanadele PHP versioonidele on samuti olemas; kas need PHP2Shelli katavad, tuleks lasta pakkujal kirjalikult kinnitada. Üksikasjad harude kohta on lehtedel Millised PHP versioonid on mõjutatud? ja PHP 8.1 ja vanemad.
Isoleerimine: nii viite soovituse ellu
„Isoleerimine“ kõlab abstraktselt. Mõeldud on seda, et päringud internetist ei jõua enam haavatava PHP rakenduseni. Olenevalt rakendusest on mitu astet:
- Täielikult välja lülitada: Veebisait asendatakse staatilise hädaolukorra lehega ilma PHP-ta. See on kõige turvalisem variant.
- Juurdepääsu piirata: Rakendus jääb tööle, kuid on kättesaadav ainult VPN-i kaudu või kindlaksmääratud IP-aadressidelt, näiteks sisemiste portaalide puhul.
- Eelnev sisselogimine: Sisselogimine veebiserveri või puhverserveri tasandil enne rakendust. Tähelepanu: mod_php puhul näidati ekspluateerimist enne rakenduse koodi käivitumist. Sisselogimine peab seetõttu toimima enne PHP-d, mitte rakenduses.
- Otsene juurdepääs originile sulgeda: Kes kasutab puhverserveri- või CDN-teenust, peaks tagama, et server ei ole lisaks otse kättesaadav.
Piirang veebiserveris võib välja näha sellisena, ohutu seadistusena Apache jaoks:
# Luba juurdepääs ainult sisevõrgust (kohandage näitevahemikku)
<Location "/">
Require ip 192.0.2.0/24
</Location>
Testige mõju väljastpoolt, näiteks mobiilsideühenduse kaudu. Isoleerimine, mida on kontrollitud ainult kontorivõrgus, ei ole kontrollitud isoleerimine.
Isoleerimine on ületamine. Määrake isoleerimisel kohe kindlaks, millal uuendus tuleb ja kes selle paigaldab. Muidu saab hädalahendusest püsiseisund.
Mida soovitused ühiselt nõuavad: inventar
Kõik ametlikud asutused eeldavad, et teate, kus PHP töötab. Just siin jääb paljudes ettevõtetes puudu: vanade kampaaniate mikrosaidid, unustatud kliendiportaal, avaliku aadressiga testsüsteem, rakendus NAS-il. CERT-EU nimetab PHP paigaldiste kaardistamist selgesõnaliselt esimeseks sammuks.
Unustatud süsteeme leiate kõige tõenäolisemalt kolme tee kaudu: teie domeenide DNS-tsoonid, väljastatud TLS-sertifikaatide loend ning lepingud agentuuride, veebimajutajate ja tarkvarapakkujatega. Iga kirje, mille kohta keegi kohe öelda ei oska, mis selle taga töötab, kuulub kontrollnimekirja. Just sellised süsteemid on PHP2Shelli-laadses olukorras ohtlikud, sest keegi ei paika neid ja keegi ei märka nende puudumist, kui need kompromiteeritakse.
Kasulik inventar sisaldab süsteemi kohta: aadress, otstarve, käitaja, PHP versioon ja töörežiim, pakettide allikas ning uuenduste kontaktisik. Kuidas seda üles ehitada ja ajakohasena hoida, näitab artikkel Kõigi veebisaitide ja serverite inventar.
Kuidas PHP SOS konkreetselt aitab?
- Kaardistamine: Selgitame välja teie avalikult kättesaadavad PHP süsteemid ja järjestame need riski järgi.
- Paik või isoleerimine: Paigaldame uuendused või isoleerime rakendused, mida ei saa kohe paigata, ja kontrollime mõju väljastpoolt.
- Vanad versioonid: PHP 8.1 ja vanemaga süsteemide puhul planeerime teiega tee toetatud seisuni.
- Tõend: Saate ellu viidud soovituste dokumentatsiooni süsteemide kaupa.
Kuidas viime vanad rakendused toetatud versioonidele, kirjeldab teenus PHP migreerimine pärandsüsteemidele.
Kokkuvõte
CERT-EU, CERT-Bund, BSI ja PHP projekt räägivad ühel häälel: uuendage ja kus see kohe ei õnnestu, isoleerige. Erinevused on detailides, näiteks versioonipiiris. Teie praktikas loeb esimene samm, mida kõik eeldavad: teada, kus kõikjal PHP töötab.
Korduma kippuvad küsimused
Mis vahe on CERT-Bundil ja CERT-EU-l?
CERT-Bund on BSI juures tegutsev arvutiturvalisuse intsidentide lahendamise meeskond, mis hoiatab Saksamaal turvaaukude eest. CERT-EU on Euroopa Liidu institutsioonide ja asutuste küberturvalisuse teenistus. Mõlemad annavad välja soovitusi, mis on kasulikud ka ettevõtetele.
Mida tähendab PHP rakenduse isoleerimine?
Pärast seda ei ole rakendus enam vabalt internetist kättesaadav. See on võimalik hädaolukorra lehe, juurdepääsu ainult VPN-i või kindlate IP-aadresside kaudu või täieliku väljalülitamisega. Otsustav on, et väljastpoolt tulevad päringud ei jõuaks enam haavatava PHP protsessini.
Kas CERT-EU andmetel on mõjutatud ka PHP 5 versioonid?
CERT-EU pidas aruannete kohaselt võimalikuks, et mõjutatud on versioonid alates PHP 5-st, tuginedes teabele, mis liikus ringi enne ametlikku teadet. Erialaajakirjandus nimetab peaaegu kõiki versioone kuni PHP 5.4-ni. Nii vanade versioonide jaoks ametlikke uuendusi ei ole.
Kas ründamise kohta on ametlikke tunnuseid?
Ei. Siiani ei ole PHP2Shelli kohta avaldatud ja kinnitatud kompromiteerimisnäitajaid (Indicators of Compromise). Tuvastamine põhineb käitumisanalüüsil, näiteks veebiserveri protsessidel, mis käivitavad shelle, või uutel PHP failidel üleslaadimiskaustades.