Stručne: Časové okno medzi záplatou a útokom bolo pri PHP2Shell záporné: podľa mediálnych správ bol prvý pokus o útok už 17. októbra 2026, štyri dni pred aktualizáciami. Pre prevádzkovateľov preto nerozhoduje otázka „Koľko času zostáva?“, ale „Ako dlho je môj server otvorený?“. Toto osobné okno sa končí až vtedy, keď je aktualizácia nainštalovaná a všetky procesy PHP reštartované.
Východisko: útoky pred záplatou
Dlho platil pohodlný predpoklad: medzi bezpečnostnou aktualizáciou a prvými útokmi uplynie niekoľko dní, dosť času na ďalšie servisné okno. PHP2Shell tento predpoklad vyvrátil. Podľa mediálnych správ, ktoré sa odvolávajú na Amazon, bol prvý pokus o útok pozorovaný už 17. októbra. Cloudflare takisto informoval o skorých útokoch. Záplaty prišli 21. októbra o 14:00 UTC.
Tento príspevok vysvetľuje, ako takéto časové okná vznikajú a ako vaše skrátiť. Presný sled dátumov nájdete v časovej osi PHP2Shell.
Časové okno medzi záplatou a útokom po fázach
Okolo bezpečnostnej zraniteľnosti sa dá rozlíšiť niekoľko fáz. Pri PHP2Shell vyzerali takto:
| Fáza | Všeobecne | Pri PHP2Shell |
|---|---|---|
| Pred zverejnením | zraniteľnosť je známa len objaviteľom a výrobcovi | vývoj opravy pod embargom |
| Prvé útoky bez záplaty | útočníci zneužívajú zraniteľnosť, kým aktualizácia neexistuje | podľa mediálnych správ prvý pokus 17. 10. |
| Oznámenie vopred | výrobca oznámi aktualizáciu | 20. 10., php.net oznamuje vydanie |
| Záplata k dispozícii | vychádza aktualizácia a bezpečnostné hlásenie | 21. 10., 14:00 UTC |
| Vyhodnotenie záplaty | výskumníci a útočníci analyzujú zmeny | watchTowr podľa vlastných údajov zreprodukoval CVE-2026-109618 |
| Široké zneužívanie | automatizované kampane proti nezaplátaným serverom | očakávané BSI; potvrdené úspešné útoky vo väčšom rozsahu spočiatku neboli známe |
| Vaša záplata | aktualizácia a reštart na vašich serveroch | individuálne |
Posledný riadok je jediný, ktorý môžete ovplyvniť. Všetko pred ním určujú iní.
Prečo samotná záplata zvyšuje tlak
Bezpečnostná aktualizácia zraniteľnosť uzavrie, no zároveň ju sprístupní pohľadu. Zmeny zdrojového kódu v open-source projektoch, ako je PHP, sú verejné. Kto porovná rozdiely medzi starou a novou verziou, zistí, na ktorom mieste chyba bola. To nie je výčitka projektu PHP, ale normálny stav otvoreného softvéru a základ toho, aby distribúcie mohli zostavovať backporty.
Pre prevádzkovateľov z toho vyplýva: s každým dňom po záplate rastie počet tých, ktorí vedia, ako zraniteľnosť funguje. Zároveň klesá počet nezaplátaných serverov. Zostávajúce sa tak stávajú najbližšími cieľmi. Ako PHP dodáva bezpečnostné aktualizácie v rámci svojej údržby verzií, vysvetľuje príspevok o cykle vydávania PHP.
Ak bol váš server dostupný medzi 17. októbrom a vašou záplatou, patrí k tomu kontrola stôp. Zálohujte logy od 20. októbra predtým, než sa stratia rotáciou.
Zmerať vlastné časové okno
Vaše osobné časové okno začína najneskôr zverejnením záplat a končí reštartom posledného procesu PHP. Zaznamenajte pre každý server:
- Vedomosť: Kedy sa niekto vo firme dozvedel o zraniteľnosti?
- Dostupnosť: Kedy bol balík vašej distribúcie alebo poskytovateľa hostingu k dispozícii?
- Inštalácia: Kedy bol nasadený?
- Reštart: Kedy už nebežali žiadne staré procesy PHP?
Práve reštart sa často zabúda. Nainštalovaná aktualizácia zaberie až vtedy, keď sa staré procesy ukončia. Ako to skontrolovať, popisuje Reštart PHP-FPM a všetkých procesov PHP. Či ešte bežia procesy spred aktualizácie, ukáže pohľad na časy spustenia:
# Zobraziť čas spustenia všetkých procesov PHP
ps -eo pid,lstart,cmd | grep -E "php-fpm|php-cgi|lsphp" | grep -v grep
Ak je čas spustenia pred inštaláciou aktualizácie, okno je stále otvorené.
Prečo vaše okno závisí od zdroja
Ako rýchlo môžete záplatovať, nezávisí len od vás, ale aj od toho, odkiaľ vaše PHP pochádza. Distribúcie dodali backporty podľa správ čiastočne ešte 21. októbra. Kto získava PHP z repozitára tretej strany, je odkázaný na jeho tempo. Kto používa kontajnery, musí obrazy zostaviť nanovo a nasadiť, pouhá aktualizácia v bežiacom kontajneri nestačí. A pri zdieľanom hostingu určuje čas poskytovateľ hostingu.
Ak poznáte zdroj každého servera, viete aj, kde zostáva vaše okno otvorené najdlhšie. Práve tam sa príprava oplatí najviac, napríklad dohodou s poskytovateľom hostingu alebo odskúšaným postupom pre nové obrazy kontajnerov.
Ako okno skrátiť nabudúce
- Odoberať hlásenia: Bezpečnostné hlásenia php.net a vašej distribúcie dostávať priamo, nie až cez tlač.
- Určiť zodpovednosť: Pre každý server zodpovednú osobu so zástupom.
- Využívať automatiku tam, kde sedí: Bezpečnostné aktualizácie z distribúcie sa dajú nasadzovať automaticky. Čo hovorí za a čo proti, popisujú Automatické bezpečnostné aktualizácie.
- Naplánovať reštart: Reštart služieb PHP patrí pevne do postupu, nie do dodatočnej práce.
- Pripraviť núdzovú cestu: Núdzová stránka a rozhodnutie o dočasnom vypnutí pre prípad, že aktualizácia nie je okamžite možná.
- Viesť doklad: Zdokumentovať časy inštalácie a reštartu, aby ste svoje okno mohli neskôr doložiť.
Trvalý proces, ktorý tieto body spája, je opísaný v príspevku o procese správy záplat.
Ako konkrétne pomáha PHP SOS?
- Záplata a reštart: Nasadíme aktualizáciu a zabezpečíme, aby už nebežali žiadne staré procesy PHP.
- Doložiť časové okno: Zdokumentujeme inštaláciu a reštart pre každý server s časom.
- Kontrola stôp: Pre obdobie, keď bol váš server otvorený, zálohujeme logy a kontrolujeme nápadnosti.
- Proces do budúcnosti: Spolu s vami zriadime cesty hlásenia, zodpovednosti a postupy aktualizácií.
Viac pod služba záplatovania PHP.
Záver
Pri PHP2Shell neexistovala žiadna ochranná lehota. Časové okno medzi záplatou a útokom je pri kritických zraniteľnostiach dnes často nulové alebo dokonca záporné. Čo môžete riadiť, je vaše vlastné okno: končí sa reštartom a prípravou sa dá skrátiť z dní na hodiny.
Časté otázky
Koľko času zostáva po bezpečnostnej aktualizácii do útokov?
Pevná lehota neexistuje. Pri PHP2Shell bol podľa mediálnych správ prvý pokus o útok pozorovaný už 17. októbra, teda štyri dni pred záplatami. Pri kritických zraniteľnostiach v rozšírenom softvéri by ste mali vychádzať z toho, že prakticky neexistuje žiadna ochranná lehota.
Čo je zero-day?
Zraniteľnosť, ktorá sa napáda skôr, než je k dispozícii aktualizácia. Výrobca mal akoby nulu dní na jej odstránenie. Potom sa často hovorí o známej zraniteľnosti alebo N-Day, pre ktorú už záplata existuje.
Prečo sa útoky po záplate často zintenzívnia?
So záplatou sa zverejní, na ktorom mieste chyba bola. Bezpečnostní výskumníci a útočníci môžu zmeny vyhodnotiť. Zároveň mnohé servery zostávajú ešte dni alebo týždne nezaplátané, a teda lákavými cieľmi.
Kedy je môj server skutočne chránený?
Keď je aktualizácia nainštalovaná a všetky procesy PHP boli reštartované. Samotné nové súbory nezaberú, kým v pamäti bežia staré procesy. Koniec vášho osobného časového okna je teda reštart, nie stiahnutie.