Stručně: Po varování před PHP2Shell byly v Německu odstaveny weby, mimo jiné podle médií webový portál města Mohuč (Mainz) a stránky hesenské zemské vlády a BKA (německý Spolkový kriminální úřad). Šlo o prevenci podle doporučení BSI (německý Spolkový úřad pro informační bezpečnost), ne o potvrzené útoky. Firmy se z toho mohou poučit: Odstavení je legitimní možnost, pokud záplata není hned možná, a nejlépe se daří, když je připravené.
Weby odstavené kvůli PHP: co se stalo 21. října
V den bezpečnostních aktualizací PHP nebyly v Německu dostupné desítky veřejných webů. Podle mediálních zpráv město Mohuč preventivně odpojilo svůj centrální webový portál. Úřady zůstaly dostupné telefonicky a e-mailem.
V Hesensku byly podle hessenschau dočasně offline mimo jiné stránky zemské vlády, Spolkového kriminálního úřadu (BKA) a měst Kassel a Wiesbaden. Státní kancelář mluvila o technických úpravách a žádný útok nenahlásila. Zemské stránky byly večer opět dostupné. Další obce, vysoké školy a kliniky podle zpráv také preventivně odpojily své nabídky.
Pozadím je doporučení BSI k PHP2Shell: okamžitě aktualizovat a, pokud to hned nejde, postižené webové servery dočasně odpojit od sítě. Co BSI konkrétně radí, shrnuje stránka Co BSI k PHP2Shell doporučuje.
Odstavený neznamená napadený
V komentářích a na sociálních sítích se z „offline“ rychle stalo „napadený“. To je podle všeho, co je známo, nesprávné. Odstavení byla ochranným opatřením v okamžiku, kdy mnoho provozovatelů ještě neznalo jistě stav záplat svých serverů.
Pro firmy je toto rozlišení důležité dvojnásob. Za prvé navenek: Kdo preventivně odstavuje sám, měl by to tak pojmenovat a nemlčet. Za druhé uvnitř: Odstavení neodpovídá na otázku, zda byl server předtím napaden. Zastaví jen další pokusy. Kontrola stop zůstává nutná.
Třetí bod se často přehlíží: Odstavení nesmí zničit stopy. Kdo server kvůli odstavení prostě znovu nainstaluje nebo smaže logy, aby uvolnil místo, připraví se o možnost později objasnit, co se před odstavením stalo. Lepší je přesměrovat webový server na nouzovou stránku nebo zablokovat přístup zvenčí a samotný server se všemi logy ponechat beze změny.
Proč právě veřejné instituce takto reagovaly
Úřady často provozují vedle sebe mnoho webů: hlavní portál, odborné portály, formulářové služby, stránky jednotlivých odborů a zařízení. Podílí se na tom často několik dodavatelů. V den varování nebylo pro mnoho správ prostě možné získat během hodin doložený stav záplat každého systému. Preventivní odstavení bylo v této situaci nejrychlejším způsobem, jak se doporučením BSI řídit.
Pro firmy s organicky vzniklou IT infrastrukturou je situace často podobná. Otázka „Je všechno záplatováno?“ nescházívá na technice, ale na chybějícím přehledu.
Pozoruhodné je také, jak rychle se hesenské zemské stránky podle zpráv vrátily: ještě večer téhož dne. To ukazuje, že preventivní odstavení nemusí trvat dny. Kdo své systémy zná a ovládá cestu aktualizace, může během několika hodin záplatovat, zkontrolovat a opět se vrátit online. Odstavení pak překlene jen dobu, než nastane jasno.
Kdy je pro firmy preventivní odstavení rozumné
Úřady mají zvláštní situaci: mnoho webů, často rozděleně spravovaných, a vysokou veřejnou viditelnost. Zvažování, před kterým stály, je ale stejné jako v každé firmě. Následující přehled pomáhá při rozhodování:
| Situace | Spíše odstavit | Spíše nechat online |
|---|---|---|
| Stav záplat | nejasný nebo nepotvrzený | opraveno a doloženo, procesy restartovány |
| Verze PHP | 8.1 nebo starší bez potvrzeného backportu | podporovaná větev na aktuálním stavu |
| Provozní režim | Apache s mod_php | záplatované PHP-FPM s nastavenými přechodnými opatřeními |
| Data na serveru | zákaznická data, přihlášení, platební údaje | čistě statický obsah |
| Dostupnost dodavatele | záplata možná až za několik dní | záplata v krátké době naplánována |
Zvažování mezi záplatováním, odstavením a vyčkáváním prohlubuje článek Záplatovat, odstavit, nebo vyčkat?. Co je technicky možné jako přechodné řešení, když aktualizace ještě chybí, stojí na stránce Okamžitá opatření bez záplaty.
Dočasné odstavení e-shopu nebo zákaznického portálu stojí tržby. Napadený server se zákaznickými daty může stát výrazně víc, až po oznamovací povinnosti. Rozhodněte se vědomě a písemně to zaznamenejte.
Jak se na odstavení připravit
Mohuč ukázala, na čem záleží: Správa zůstala dostupná jinými kanály. To se podaří jen tehdy, když je to připravené. Tyto kroky se vyplatí, než nastane příští ostrý případ:
- Mít připravenou nouzovou stránku: statická stránka HTML bez PHP, s krátkým vysvětlením, telefonním a e-mailovým kontaktem a případně s upozorněním na probíhající objednávky nebo termíny.
- Stanovit cestu přepnutí: Kdo může web přesměrovat na nouzovou stránku, přes webový server, DNS, nebo předřazenou službu? Jak dlouho to trvá?
- Vyjasnit pravomoc rozhodnout: Kdo smí nařídit odstavení, i mimo pracovní dobu?
- Znát závislé služby: Závisí na webu rozhraní, aplikace nebo partneři? Kdo musí být předem informován?
- Definovat kritéria návratu: záplata doložena, restart proveden, první kontrola stop bez nálezu.
- Předem formulovat sdělení: dvě až tři věty pro zákazníky, partnery a tisk.
Jak v takové situaci komunikovat navenek, popisuje průvodce krizovou komunikací.
Jak konkrétně pomáhá PHP SOS?
- Podklad pro rozhodnutí: Zjistíme stav záplat, provozní režim a datovou situaci vašich serverů a dáme vám jasné posouzení, zda je odstavení na místě.
- Uspořádané odstavení: Přepneme na statickou nouzovou stránku, aniž bychom ztratili logy nebo stopy.
- Záplata a kontrola: Aktualizujeme PHP, restartujeme všechny procesy a kontrolujeme nápadnosti.
- Řízený návrat: Web uvedeme znovu online teprve tehdy, když jsou dohodnutá kritéria splněna a zdokumentována.
Postup popisuje okamžitá pomoc při PHP2Shell.
Závěr
Odstavení ze strany úřadů nebyla známkou ztráty kontroly, ale vědomým preventivním opatřením. Pro firmy je to skutečné poučení: Jít offline je legitimní rozhodnutí, když je stav záplat nejasný. Kdo má připravenou nouzovou stránku, odpovědnost a kritéria návratu, učiní je v minutách místo hodin.
Časté dotazy
Proč byly weby úřadů kvůli PHP odstaveny?
BSI doporučuje u PHP2Shell okamžitou aktualizaci a, pokud ji nelze provést hned, webové servery dočasně odpojit od sítě. Několik úřadů se tímto doporučením preventivně řídilo, dokud nebyly jejich systémy zkontrolovány a aktualizovány.
Znamená odstavený web, že byl napaden?
Ne. Preventivní odstavení je ochranné opatření. Hesenská státní kancelář například podle hessenschau výslovně žádný útok nenahlásila. Zda byl server před odstavením dotčen, vyjasní teprve kontrola.
Jak dlouho má web zůstat offline?
Dokud není PHP na opraveném stavu, nejsou restartovány všechny procesy PHP a první kontrola stop neodhalí žádné nápadnosti. Pevná doba neexistuje; hesenské zemské stránky byly podle zpráv znovu dostupné večer téhož dne.
Co ukázat návštěvníkům, zatímco je web offline?
Nejlépe jednoduchou statickou nouzovou stránku bez PHP s krátkým vysvětlením a kontakty, na kterých zůstanete dostupní. Měla by být připravena dříve, než ji budete potřebovat.