Īsi sakot: CERT-EU saskaņā ar ziņojumiem iesaka apzināt PHP instalācijas, nekavējoties ielāpot un izolēt publiski sasniedzamas lietojumprogrammas, ja tās nevar ielāpot laikus. CERT-Bund un BSI (Vācijas Federālais informācijas drošības birojs) savā brīdinājumā iesaka nekavējoties atjaunināt un, ja tas nav iespējams, skartos tīmekļa serverus uz laiku atvienot no tīkla. Ieteikumi pēc būtības sakrīt: vispirms atjauninājums, izolēšana kā avārijas risinājums, pagaidu pasākumi tikai kā papildinājums.
Kas brīdina un kam?
PHP2Shell gadījumā vairākas oficiālas iestādes reaģēja dažu stundu laikā. Uzņēmumiem Vācijā pirmā adrese ir BSI ar savu datoru ārkārtas reaģēšanas komandu CERT-Bund. CERT-EU ir ES institūciju kiberdrošības dienests; tā norādes vispirms ir adresētas šīm institūcijām, taču tiek lasītas visā Eiropā. Saskaņā ar BleepingComputer brīdināja arī Apvienotās Karalistes National Cyber Security Centre. No privātā sektora uzstājās cita starpā Huntress un Cloudflare.
Jums kā operatoram izcelsme ir mazāk svarīga par sakritību. Ja vairākas neatkarīgas iestādes iesaka vienu un to pašu, tas ir spēcīgs signāls.
CERT-Bund, CERT-EU un citi: PHP brīdinājumu salīdzinājums
| Iestāde | Galvenais ieteikums | Īpatnība |
|---|---|---|
| BSI / CERT-Bund | nekavējoties atjaunināt, citādi tīmekļa serverus uz laiku atvienot no tīkla | brīdinājuma līmenis 3 / oranžs |
| CERT-EU | apzināt PHP instalācijas, nekavējoties ielāpot, citādi izolēt publiskas lietojumprogrammas | saskaņā ar ziņojumiem uzskatīja par iespējamu skartību versijām sākot ar PHP 5 |
| UK NCSC | nekavējoties atjaunināt vai skartās sistēmas līdz ielāpam atvienot no tīkla | saskaņā ar BleepingComputer |
| php.net | atjaunināt uz 8.5.12, 8.4.27, 8.3.36 vai 8.2.35, pagaidu pasākumi tikai kā daļēja aizsardzība | primārais avots versijām un iestatījumiem |
Neviena iestāde neiesaka paļauties tikai uz Web Application Firewall vai iestatījumiem failā php.ini. Visas kā īsto risinājumu min atjauninājumu. Ko BSI papildus iesaka konkrēti, lasāms lapā Ko BSI iesaka par PHP2Shell.
Versiju jautājums: ko nozīmē “sākot ar PHP 5”
CERT-EU saskaņā ar ziņojumiem uzskatīja par iespējamu, ka skartas ir versijas sākot ar PHP 5. Tajā pašā laikā iestāde saskaņā ar speciālajiem ziņojumiem balstījās uz informāciju, kas cirkulēja pirms oficiālā paziņojuma. Speciālā prese runā par gandrīz visām versijām līdz pat PHP 5.4.
Praktiski precīzā robeža maz ko maina. PHP 8.1 un vecākām versijām PHP projekts oficiālus atjauninājumus vairs nepiegādā. Ir minimāli pirmkoda backport labojumi 7.4, 8.0 un 8.1, bet nav laidienu. Kas vēl darbina PHP 5 vai 7, ir atkarīgs no distributīviem, trešajām pusēm vai migrācijas. Vai jūsu distributīvs ir piegādājis labojumu, rāda to pašu drošības lapas, piemēram, Debian Security Tracker, Ubuntu Security Notices vai Red Hat norādes. Pastāv arī komerciāli ilgtermiņa piedāvājumi veciem PHP versijām; vai tie aptver PHP2Shell, lūdziet pakalpojuma sniedzējam apstiprināt rakstiski. Detaļas par atzariem ir sadaļās Kuras PHP versijas ir skartas? un PHP 8.1 un vecākas.
Izolēšana: kā īstenot ieteikumu
“Izolēt” izklausās abstrakti. Ar to domāts, ka pieprasījumi no interneta vairs nesasniedz ievainojamo PHP lietojumprogrammu. Atkarībā no lietojumprogrammas ir vairāki līmeņi:
- Pilnībā atslēgt: Vietni aizstāj ar statisku paziņojuma lapu bez PHP. Tas ir drošākais variants.
- Ierobežot piekļuvi: Lietojumprogramma paliek darbībā, bet ir sasniedzama tikai caur VPN vai noteiktām IP adresēm, piemēram, iekšējiem portāliem.
- Priekšā ieslēgta pieteikšanās: Pieteikšanās tīmekļa servera vai starpniekservera līmenī pirms lietojumprogrammas. Uzmanību: mod_php gadījumā exploit tika demonstrēts, pirms tiek izpildīts lietojumprogrammas kods. Tāpēc pieteikšanās jāiedarbina pirms PHP, nevis lietojumprogrammā.
- Bloķēt tiešo piekļuvi izcelsmes serverim: Kas izmanto starpniekservera vai CDN pakalpojumu, tam jānodrošina, ka serveris papildus nav sasniedzams arī tieši.
Ierobežojums tīmekļa serverī var izskatīties šādi, kā nekaitīga Apache konfigurācija:
# Atļaut piekļuvi tikai no iekšējā tīkla (piemēra diapazonu pielāgot)
<Location "/">
Require ip 192.0.2.0/24
</Location>
Pārbaudiet iedarbību no ārpuses, piemēram, caur mobilo savienojumu. Izolēšana, kas pārbaudīta tikai biroja tīklā, nav pārbaudīta izolēšana.
Izolēšana ir pārejas risinājums. Izolējot, uzreiz noteiciet, līdz kuram laikam atjauninājums nāks un kurš to ieviesīs. Citādi avārijas risinājums kļūst par pastāvīgu stāvokli.
Ko ieteikumi kopīgi prasa: inventāru
Visas oficiālās iestādes pieņem, ka jūs zināt, kur darbojas PHP. Tieši pie tā daudzos uzņēmumos viss iestrēgst: mikrovietnes no vecām kampaņām, aizmirsts klientu portāls, testa sistēma ar publisku adresi, lietojumprogramma uz NAS. CERT-EU PHP instalāciju apzināšanu tieši min kā pirmo soli.
Aizmirstās sistēmas visdrīzāk atradīsiet trīs ceļos: jūsu domēnu DNS zonās, izsniegto TLS sertifikātu sarakstā un līgumos ar aģentūrām, hostinga sniedzējiem un programmatūras piegādātājiem. Katrs ieraksts, par kuru neviens uzreiz nevar pateikt, kas aiz tā darbojas, jāliek pārbaudes sarakstā. Tieši šādas sistēmas ir bīstamas tādā situācijā kā PHP2Shell, jo tās neviens neielāpo un neviens nepalaiž garām, ja tās tiek kompromitētas.
Lietojams inventārs katrai sistēmai satur: adresi, mērķi, operatoru, PHP versiju un darbības režīmu, pakotņu iegādes avotu un kontaktpersonu atjauninājumiem. Kā to izveidot un uzturēt aktuālu, rāda raksts Visu vietņu un serveru inventārs.
Kā PHP SOS palīdz konkrēti?
- Apzināšana: Mēs noskaidrojam jūsu publiski sasniedzamās PHP sistēmas un sakārtojam tās pēc riska.
- Ielāps vai izolēšana: Mēs ieviešam atjauninājumus vai izolējam lietojumprogrammas, kuras nevar ielāpot uzreiz, un pārbaudām iedarbību no ārpuses.
- Vecas versijas: Sistēmām ar PHP 8.1 un vecāku kopā ar jums plānojam ceļu uz atbalstītu stāvokli.
- Apliecinājums: Jūs saņemat dokumentāciju par īstenotajiem ieteikumiem katrai sistēmai.
Kā vecas lietojumprogrammas pārvedam uz atbalstītām versijām, apraksta pakalpojums PHP migrācija mantotajām sistēmām.
Secinājums
CERT-EU, CERT-Bund, BSI un PHP projekts runā vienā balsī: atjaunināt, un kur tas nav iespējams uzreiz, izolēt. Atšķirības ir detaļās, piemēram, versiju robežā. Jūsu praksei svarīgs ir pirmais solis, ko visi pieņem: zināt, kur visur darbojas PHP.
Biežāk uzdotie jautājumi
Kāda ir atšķirība starp CERT-Bund un CERT-EU?
CERT-Bund (Vācijas valdības CERT) ir datoru ārkārtas reaģēšanas komanda pie BSI, un tā Vācijā brīdina par ievainojamībām. CERT-EU ir Eiropas Savienības iestāžu un struktūru kiberdrošības dienests. Abi izdod ieteikumus, kas noder arī uzņēmumiem.
Ko nozīmē izolēt PHP lietojumprogrammu?
Pēc tam lietojumprogramma vairs nav brīvi sasniedzama no interneta. To var panākt ar paziņojuma lapu, ar piekļuvi tikai caur VPN vai noteiktām IP adresēm vai ar pilnīgu atslēgšanu. Izšķirošais ir tas, ka pieprasījumi no ārpuses vairs nesasniedz ievainojamo PHP procesu.
Vai saskaņā ar CERT-EU ir skartas arī PHP 5 versijas?
CERT-EU saskaņā ar ziņojumiem uzskatīja par iespējamu, ka skartas ir versijas sākot ar PHP 5, un balstījās uz informāciju, kas cirkulēja pirms oficiālā paziņojuma. Speciālā prese min gandrīz visas versijas līdz pat PHP 5.4. Tik vecām versijām oficiālu atjauninājumu nav.
Vai ir oficiālas uzbrukumu atpazīšanas pazīmes?
Nē. Līdz šim nav publicētu, apstiprinātu PHP2Shell kompromitācijas indikatoru (Indicators of Compromise). Atpazīšana balstās uz uzvedības analīzi, piemēram, tīmekļa servera procesiem, kas startē shell, vai jauniem PHP failiem augšupielādes mapēs.