Článek
Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) doporučil okamžitou aktualizaci systémů využívajících programovací jazyk PHP. Důvodem jsou dvě bezpečnostní chyby, které útočníkům umožňují na dálku a bez přihlášení spustit na serveru vlastní kód.
Programovací jazyk PHP využívá velká část internetu - od jednoduchých blogů přes velké zpravodajské portály až po rozsáhlé internetové obchody.
Riziko vedlo k preventivním krokům i na nejvyšších místech. Úřad vlády ČR ve středu večer zhruba na dvě hodiny preventivně odstavil svůj web, dočasně mimo provoz byly i některé stránky Českého hydrometeorologického ústavu (ČHMÚ) či Drážního úřadu. Podobně reagovaly také vládní instituce v dalších evropských zemích. České vysoké učení technické ve čtvrtek čelilo kybernetickému útoku a odstavilo část systémů.
Co přesně tato zranitelnost znamená a jak k jejímu odhalení přispěla pokročilá umělá inteligence, vysvětluje pro Seznam Zprávy náměstek ředitele NÚKIB Tomáš Krejčí.
„Když víte, jak tu zranitelnost zneužít, v podstatě získáte kontrolu nad serverem a dá se tam udělat téměř cokoliv. Útočník může v první řadě stáhnout data, nahrát si tam vlastní kód nebo obsah stránky úplně smazat,“ upozorňuje v rozhovoru odborník.
Díra v kódu PHP byla podle dostupných informací skrytá několik let. Jak je možné, že si jí tak dlouho nikdo nevšiml?
Ten kód je složitý a to, že jsou v něm chyby, je běžná věc. Ta chyba tam byla tušena, indicie tam byly, ale nikdo ji nedokázal prokázat a dovést až do stavu zranitelnosti. Prokázalo se to až teď postupnými kroky. Systémy jsou komplikované, kódy mají tisíce a desetitisíce řádků a komplexnost je obrovská. Není to tak, že by to bylo triviální, bylo to někde schované a jen se čekalo, až si toho někdo všimne.
Při tomto konkrétním odhalení hrála roli umělá inteligence. Jakým způsobem?
Konkrétně nevím, to je spíš můj expertní odhad. Výzkumník se snaží najít zranitelnosti a problémy v kódu, které se dají zneužít, a používá k tomu různé nástroje. Jedním z nich byla umělá inteligence. Ta dokáže kód a jednotlivé kroky rozebrat mnohem líp než člověk. Díky sekvencím kroků, na které přišla, mohl výzkumník prohlásit, že tam ta zranitelnost je a co může způsobit, pokud správně uděláte exploit. To je sekvence kroků, kterou docílíte zneužití systému.
Jedna věc je zranitelnost a druhá věc je umět ji zneužít, což není automatické. S boomem umělé inteligence jsou tyto nástroje skvělé a děje se to teď jak na běžícím páse.
Takže postup těch, kdo systém brání, a těch, kdo na něj útočí, je vlastně stejný?
Přesně tak. Vývojáři PHP i útočníci to dělají stejně – mají řadu výzkumníků, kteří se na to specializují a ty chyby hledají. Jenže pro obránce je to výrazně složitější disciplína než pro útočníka.
V čem přesně?
Útočníkovi stačí chybu najít a přijít na to, jak ji zneužít. Obránce ji ale musí nejen najít a vyhodnotit, ale také vyvinout záplatu, která problém skutečně vyřeší.
Nemůžete záplatu pustit ven jen tak, když nevíte, co to způsobí. Musíte ověřit kompatibilitu se všemi zařízeními a systémy, na kterých to běží. Kdybyste to neotestovali, oprava by mohla způsobit pády dalších systémů. Proto je vždycky nešťastné, když se zranitelnost a návod na její zneužití objeví dřív než samotná záplata – vývoj opravy i její otestování prostě stojí čas a velké úsilí. V tomto je to pro obránce vždy složitější.
Co by mohl útočník na napadeném serveru udělat, kdyby chybu zneužil?
Když víte, jak tu zranitelnost zneužít, v podstatě získáte kontrolu nad serverem.
Dá se tam udělat téměř cokoliv. Útočník může v první řadě stáhnout data, která tam jsou. Může tam nahrát vlastní kód, což znamená nějaký malware (škodlivé programy, které v počítači provádějí činnost, se kterou uživatel nesouhlasí, pozn. red.). Může pozměnit obsah stránky, takže by stránka vypadala úplně jinak. A samozřejmě může web i úplně odstavit nebo zničit, protože tam nahraje kód, který to smaže.
Jak v takovém případě postupují správci webů?
V první řadě jsou tu takzvané indikátory kompromitace – tedy vodítka, na co se v systému podívat. Útočník za sebou zanechává stopy, které prostě poznáte, pokud své systémy monitorujete. Protože víte, jak se váš systém chová za běžného provozu, dokážete rozpoznat podezření – například když se v záznamech objeví neobvykle spuštěný proces. Následně to prověříte a zjistíte, zda se podezření potvrdí. Někteří útočníci to dělají tak, že o nich víte hned, jiní se snaží své kroky maskovat.
Pokud se napadení potvrdí, startuje běžný proces řízení incidentu. Zjišťujete, kde přesně problém je, co může způsobit, a standardním krokem bývá například odpojení systémů od internetu. Větší instituce jsou na to připravené i ze zákona. Cílem je v prvé řadě útočníka odříznout, zamezit jeho dalšímu působení v síti a prověřit, zda útočník nepřeskočil na další části systému.
Vyřeší doporučená aktualizace na opravenou verzi PHP všechny problémy?
Obecně je řešením buď server odpojit z internetu, nebo ho aktualizovat, jiná varianta není. Pokud se bavíme o této konkrétní situaci s PHP, tak ano, ta aktualizace to vyřeší.
Rozhodně se ale nedá říct, že když vám tam hacker pronikl předtím, než jste to aktualizovali, že byste to tou aktualizací vyřešili. Útočník tam mohl udělat další kroky a vy byste ho ze systému dostávali velice těžce. Proto je důležité systémy monitorovat. Není to zas tak problematické, aby si instituce ověřily, zda tam ten útočník je, nebo není.
NÚKIB hájí svůj postup
Národní úřad pro kybernetickou a informační bezpečnost hájí svůj postup při varování před kritickou zranitelností v programovacím jazyce PHP. Reaguje tak na kritiku ze sociálních sítí, podle které informoval veřejnost pozdě. NÚKIB zdůraznil, že jeho prioritou je nejprve hrozbu prověřit a zajistit ochranu klíčových subjektů, nikoli jen mít nejrychlejší příspěvek na sociální síti. ČTK to napsala vedoucí oddělení komunikace úřadu Anna Zádrapová.
Preventivně musel web vypnout i Úřad vlády. Hrozilo tam, že by se útočníci dostali k interním systémům nebo citlivým informacím?
Kdyby se v tomto případě zranitelnost zneužila, hrozí tady spíše reputační riziko. U většiny firem to není tak citlivé, ale tady si dokážu představit, že by útočník byl motivovaný udělat takzvaný defacement – tedy že by na web vypublikoval zprávu, která je falešná.
Proč toto varování vyvolalo tak obrovské globální ohlasy?
Je to nebezpečná kombinace vysoké kritičnosti zranitelnosti, kterou sami vývojáři zhodnotili jako 9,2 z 10, což je opravdu vysoké skóre, a toho, že jde o velmi rozšířenou komponentu, kterou využívají skoro všichni.
Pokud bychom se bavili o komponentě, kterou celosvětově využívá třeba jen pět procent serverů, tak to zapadne.
Je to srovnatelné s něčím z minulosti?
Z minulosti byla velmi podobná zranitelnost u Log4Shell z roku 2021, případně Heartbleed z roku 2014. Z dat plyne, že taková zranitelnost se neřeší každý rok. Konec internetu ale určitě nehrozí. Pro představu: denně je zveřejněno asi 200 až 300 zranitelností a tohle jsou dvě z nich. Pozornost tomu byla ale dána velmi oprávněně, aby si toho všichni všimli.
A zároveň, jak jsem zmiňoval, my dnes máme už velmi pokročilé jazykové modely. Tím, jak umělá inteligence dokáže řetězit kroky a vlastně objevovat další zranitelnosti, tak tady lze očekávat, že toho bude jenom přibývat.














