Trumpai: Kiek serverių paveikta PHP2Shell, galima tik įvertinti. Unit 42, pasak TechTarget, suskaičiavo daugiau nei 22,6 milijono viešai pasiekiamų egzempliorių, CybelAngel nurodo apie 2,24 milijono PHP serverių, BleepingComputer, remdamasi VirusTotal, praneša apie daugiau nei 5,1 milijono. Skaičiai matuoja skirtingus dalykus, todėl vienas kitam neprieštarauja. Jūsų įmonei svarbus kitas skaičius: kiek jūsų pačių PHP sistemų pasiekiamos ir kiek iš jų įrodomai pataisyta.
Pradžia: vienas skaičius tampa antraštėmis
„22 milijonai serverių pavojuje“ buvo daugelyje antraščių 2026 m. spalio 21 d. Skaičius kilo iš Unit 42, Palo Alto Networks tyrimų skyriaus, ir apie jį, be kita ko, pranešė TechTarget. Netrukus plito kiti skaičiai, kartais dešimt kartų mažesni.
Skaitytojams susidaro įspūdis, kad niekas nieko tiksliai nežino. Iš tikrųjų teikėjai tiesiog skaičiuoja skirtingus dalykus skirtingais metodais. Kas tai supranta, gali skaičius naudoti, užuot leidęs jiems savęs išmušti iš vėžių.
Kiek serverių paveikta PHP2Shell? Skaičių apžvalga
| Šaltinis | Skaičius | Kas buvo skaičiuojama |
|---|---|---|
| Unit 42 (Palo Alto Networks), pasak TechTarget | daugiau nei 22,6 mln. | viešai pasiekiami, potencialiai pažeidžiami egzemplioriai; metodika ataskaitoje nepaaiškinta |
| VirusTotal, pasak BleepingComputer | daugiau nei 5,1 mln. | iš interneto pasiekiami PHP serveriai (host) |
| CybelAngel, remiantis Shodan duomenimis | apie 2,24 mln. | serveriai, kurie savo žymose nurodo PHP |
| CybelAngel | 59 % iš maždaug 1,5 mln. | serverių su matoma versija dalis šakose be oficialaus atnaujinimo |
| CybelAngel | apie 740 000 | serveriai, kurie nurodo PHP, bet savo versiją slepia |
Visi skaičiai susiję su padėtimi apie spalio 20 ir 21 d. Tai akimirkos vaizdai, kurie keičiasi su kiekvienu įdiegtu atnaujinimu.
Kodėl skaičiavimai taip stipriai skiriasi
Didžiąją skirtumų dalį paaiškina trys veiksniai.
Egzempliorius, serveris, svetainė. Serveris (host) paprastai yra IP adresas arba serveris. Egzempliorius gali būti atskira paslauga arba atskira svetainė. Bendrinamo talpinimo serveryje dažnai veikia šimtai svetainių. CybelAngel pati atkreipia dėmesį: skaičiuojami serveriai, o ne organizacijos ar svetainės, tikrasis pasiekiamų programų skaičius turėtų būti didesnis.
Paslėptos versijos. Daugelis serverių PHP versijos neatskleidžia, pavyzdžiui, todėl, kad expose_php išjungtas. Jų nėra statistikoje pagal versijas. Kodėl slėpimas prasmingas, bet apsaugos nepakeičia, paaiškina straipsnis apie versijų nurodymą ir expose_php.
Atgaliniai perkėlimai (backport). Distribucijos ir talpintojai taisymus kartais įdiegia nekeisdami versijos numerio. Serveris, kuris išoriškai rodo seną numerį, todėl gali būti pataisytas. Skaičiavimai pagal rodomą versiją todėl pervertina nepataisytų sistemų skaičių. Kaip patikrinti tikrąją savo būseną, rasite skyrelyje PHP versijos ir pataisų būsenos tikrinimas.
Kaip atsiranda tokie skaičiavimai
Dauguma skaičių remiasi paieškos paslaugomis, kurios nuolat užklausia internetą ir saugo tai, ką serveriai apie save praneša. Žiniatinklio serveris savo atsakymuose dažnai nurodo programinę įrangą ir versiją, pavyzdžiui, antraštėje X-Powered-By. CybelAngel, pasak jos pačios aprašymo, remiasi tokiomis žymomis iš Shodan duomenų. Nieko neužpuolama, skaitoma tik tai, kas ir taip viešai matoma.
Iš to išplaukia paprasta skaitymo taisyklė kiekvienam naujam skaičiui žiniasklaidoje. Klauskite: kas buvo skaičiuojama, serveriai, egzemplioriai ar svetainės? Kada matuota, prieš spalio 21 d. ar po jos? Ir kaip nustatyta versija, pagal rodomą numerį ar tikru testu? Kas į šiuos tris klausimus atsakyti negali, tą skaičių turėtų vertinti kaip apytikslį dydį, o ne kaip matavimo vertę.
„Viešai pasiekiamas“ reiškia pasiekiamas ir pagal išorinius požymius galimai pažeidžiamas. Tai nereiškia užpultas ir nereiškia sukompromituotas. BSI iš pradžių nežinojo apie patvirtintas sėkmingas plataus masto atakas.
Ką skaičiai vis dėlto patikimai rodo
Net jei dydis svyruoja, skaičiavimai teikia tris tvirtus teiginius:
- Atakos paviršius milžiniškas. Net mažiausias skaičius reiškia milijonus pasiekiamų taikinių. Užpuolikams nereikia ieškoti, jie gali tikrinti automatiškai.
- Senos versijos paplitusios. Pasak CybelAngel, 59 procentai serverių su matoma versija veikė šakose, kurioms PHP projektas oficialių atnaujinimų neskelbia. Tokioms sistemoms nepadeda greita pataisa, tik atgalinis perkėlimas, trečiosios šalies sprendimas ar migracija. Rizikas aprašo vadovas PHP End of Life.
- Problema išliks ilgiau. Didelė pasiekiamų sistemų dalis nebus atnaujinta per dienas. Skenavimai ir atakos bandymai todėl tikėtina tęsis ilgai.
Kaip nustatyti savo skaičių
Pasaulio skaičius yra antraštė. Jūsų pačių yra užduotis. Taip prie jo prieinama:
- Surinkti domenus ir subdomenus: iš DNS zonų, sertifikatų, sutarčių su agentūromis ir talpintojais.
- Priskirti pasiekiamas paslaugas: kuris serveris slypi už kurio adreso, kas jį eksploatuoja?
- Nustatyti PHP būseną kiekvienoje sistemoje: versija, veikimo režimas, paketų šaltinis, atgalinio perkėlimo patvirtinimas.
- Įvertinti rezultatą: pataisyta ir įrodyta, pataisyta be įrodymo, nepataisyta, nežinoma.
- Užpildyti spragas: nežinomą pirmiausia išsiaiškinti, nepataisytą pirmiausia imtis taisyti.
Pabaigoje lieka trumpas sąrašas, o ne didelis skaičius. Kaip inventorių prižiūrėti nuolat, aprašo straipsnis Visų svetainių ir serverių inventorius.
Kaip PHP SOS padeda konkrečiai?
- Išorinis vaizdas: Nustatome, kurios jūsų sistemos pasiekiamos iš interneto ir kurios iš jų naudoja PHP.
- Vidinis vaizdas: Tikriname pataisų būseną ir paleidimą iš naujo serveriuose, o ne tik rodomą versiją.
- Vertinimas: Gaunate sąrašą su kiekvienos sistemos būsena ir aiškia eilės tvarka.
- Patikra: Pageidaujant po pataisos išbandome iš išorės, ar padėtis pagerėjo, kaip tikėtasi.
Kaip vyksta tokia patikra, aprašo Saugumo auditas ir skverbties testas.
Išvada
22,6 milijono, 5,1 milijono, 2,24 milijono: skaičiai atrodo prieštaringi, bet matuoja tik skirtingus dalykus. Kartu jie rodo, kad PHP2Shell paliečia labai didelį atakos paviršių ir kad tinkle daug senų versijų. Skaičiaus, kuris lemia jūsų riziką, joks tyrimas nepateikia. Jis atsiranda tik pažvelgus į savo sistemas.
Dažni klausimai
Kiek serverių paveikta PHP2Shell?
To tiksliai nežino niekas. Palo Alto Networks Unit 42, pasak TechTarget, suskaičiavo daugiau nei 22,6 milijono viešai pasiekiamų, potencialiai pažeidžiamų egzempliorių. CybelAngel nurodo apie 2,24 milijono iš interneto pasiekiamų serverių (host), kurie nurodo PHP. Skaičiai matuoja skirtingus dalykus ir tiesiogiai nelyginami.
Kodėl skaičiai taip stipriai skiriasi?
Todėl, kad skaičiuojami skirtingi dalykai: egzemplioriai, serveriai (host), IP adresai ar paslaugos. Viename bendrinamo talpinimo (shared hosting) serveryje gali būti šimtai svetainių. Be to, daugelis serverių PHP versijos nerodo, kiti rodo seną numerį, nors atgalinis perkėlimas (backport) įdiegtas.
Ar viešai pasiekiamas reiškia, kad serveris buvo užpultas?
Ne. Viešai pasiekiamas reiškia tik tai, kad PHP paslauga pasiekiama iš interneto ir pagal išorinius požymius galėtų būti pažeidžiama. Apie tikras atakas šie skaičiavimai nieko nesako.
Kuris skaičius svarbus mano įmonei?
Jūsų pačių viešai pasiekiamų PHP sistemų skaičius ir kiek iš jų įrodomai pataisyta. Pasaulio skaičiai rodo mastą, bet nepakeičia savo inventoriaus.