Stručně: Časová osa IT incidentu řadí všechna pozorování, rozhodnutí a opatření chronologicky v jednotném časovém pásmu, ideálně UTC. Každý řádek uvádí zdroj, pozorování, doklad a hodnocení jako doložené, pravděpodobné, nebo neznámé. Vznikne tak srozumitelný obraz toho, kdy byl útočník v systému, čeho mohl dosáhnout a kdy jste se o tom dozvěděli.
Proč se na konci všichni ptají na čas
Po incidentu přicházejí otázky ze všech stran. Pověřenec pro ochranu osobních údajů chce vědět, od kdy byly osobní údaje dostupné. Pojišťovna se ptá, kdy byla škoda zjištěna a nahlášena. Vedení chce vědět, zda byla zranitelnost otevřená už před poslední aktualizací. Všechny tyto otázky mají společné jedno: točí se kolem okamžiků.
Bez časové osy odpovídá každý z paměti a odpovědi si odporují. S pečlivě vedenou časovou osou existuje společný základ, na který se mohou všichni zúčastnění odvolávat. Je zároveň kostrou pro závěrečnou zprávu.
U PHP2Shell je časová osa zvlášť výmluvná, protože veřejné základní údaje jsou dobře zdokumentované. Lze je položit jako orientační body vedle vlastních pozorování. Úplný sled veřejných událostí popisuje průvodce PHP2Shell: chronologie.
Struktura: jaké sloupce časová osa potřebuje
Stačí tabulka, ať už v tabulkovém procesoru, nebo ve sdíleném dokumentu. Důležité jsou pevné sloupce, které se vyplní u každého řádku. Následující vzor ukazuje veřejné základní údaje PHP2Shell jako kotvy a pod nimi typické vlastní záznamy ve formě zástupných textů:
| Čas (UTC) | Zdroj | Pozorování | Doklad | Hodnocení |
|---|---|---|---|---|
| 17. 10. 2026 | zprávy médií | první pozorovaný pokus o útok přes PHP2Shell | tisková zpráva | doloženo jako zpráva médií |
| 20. 10. 2026 | php.net | předběžné oznámení bezpečnostních aktualizací | oznámení na php.net | doloženo |
| 21. 10. 2026, 14:00 | php.net | vydání 8.5.12, 8.4.27, 8.3.36, 8.2.35 | oznámení na php.net | doloženo |
| vlastní čas | access log | nárůst chyb 500 na běžných stránkách | výpis z logu, číslo řádku | pravděpodobně relevantní |
| vlastní čas | souborový systém | nový soubor PHP ve složce s nahranými soubory | kopie s kontrolním součtem | doloženo, okamžik nejistý |
| vlastní čas | interní | incident zaznamenán, vedení informováno | e-mail, poznámka z rozhovoru | doloženo |
| vlastní čas | interní | aktualizace nasazena, všichni workeři restartováni | log balíčků, seznam procesů | doloženo |
Sloupec Hodnocení je nejdůležitější částí. Odděluje, co je prokázáno, co se jeví jako věrohodné a co zůstává otevřené. Pozdější čtenáři tak hned vidí, kde časová osa nese a kde jsou mezery.
Časová osa IT incidentu: sloučení zdrojů
Záznamy pocházejí z mnoha zdrojů, které mají vlastní formáty a časová pásma. Postupujte v tomto pořadí:
- Určit časové pásmo: Vše vést v UTC. Přechod na zimní čas 25. 10. 2026 posouvá německé místní časy uprostřed sledovaného období o hodinu. Kdo míchá místní časy, posouvá události bez povšimnutí.
- Zkontrolovat hodiny: Šly hodiny serveru správně? Porovnání se známou událostí, například s vlastním přihlášením, ukáže odchylky.
- Nejprve externí zdroje: Logy z CDN, WAF, hostera nebo firewallu leží mimo server a lze je jen těžko zmanipulovat. Tvoří kostru.
- Doplnit logy serveru: Webový server, PHP-FPM, přihlášení, systémový žurnál. Metodiku popisuje Vyhodnocení logů webového serveru po útoku.
- Zařadit souborový systém: Časová razítka nových a změněných souborů doplnit jako nápovědy.
- Zapsat interní události: Kdy si někdo něčeho všiml, kdo byl informován, jaké rozhodnutí padlo kdy?
Co časová razítka souborů prozradí a co ne
Linux ukládá u každého souboru několik okamžiků, mimo jiné poslední změnu obsahu (mtime) a poslední změnu metadat (ctime). Oba lze vypsat jen pro čtení, zde jako seznam souborů PHP změněných od určitého dne, seřazený podle času v UTC:
# Změny obsahu od 17. 10. 2026, seřazeno, v UTC
TZ=UTC find /var/www -type f -name '*.php' -newermt '2026-10-17' -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sort
# Všechna časová razítka jednoho souboru
TZ=UTC stat /var/www/ihre-website/verdaechtig.php
Pracujte přitom jen na kopii nebo zajištěném obrazu, jak je popsáno v článku Zajistěte důkazy dříve, než server nainstalujete znovu. Mějte na paměti dvě hranice. Za prvé, útočník může datum změny souboru jednoduchými prostředky vrátit zpět; nenápadné mtime není zproštění viny. Za druhé, kopírování a některé nástroje časová razítka mění. Proto platí: časy souborů jsou nápovědy, záznamy v lozích z vnějšku jsou doklady.
Zapište okamžik, kdy se vaše firma dozvěděla o možném úniku údajů. Podle čl. 33 GDPR začíná 72hodinová lhůta pro oznámení zásadně okamžikem, kdy se o něm dozvěděla. Posouzení patří vašemu pověřenci pro ochranu osobních údajů nebo právníkovi.
Typické chyby a jak se jim vyhnout
Nejčastější chyby jsou nenápadné. Časová osa se rekonstruuje až na konci z paměti místo průběžného vedení. Záznamy obsahují závěry místo pozorování, například „útočník přišel přes formulář“ místo „požadavek POST na formulář, poté nový soubor“. A chybějí doklady, protože nikdo nezapsal, z jakého souboru logu a z jakého řádku záznam pochází.
Určete proto osobu, která časovou osu vede, a zapisujte události, jakmile nastanou. Závěry patří do samostatného sloupce nebo do zprávy, ne do pozorování.
Časovou osu navíc považujte za důvěrný dokument. Často obsahuje adresy IP, uživatelská jména a odkazy na slabá místa. Stanovte, kdo ji smí číst a měnit, a uchovávejte dřívější stavy. Když se hodnocení změní, například protože se objeví nový výpis z logu, starý řádek se nepřepisuje, ale doplňuje. Zůstane tak dohledatelné, co bylo v kterém okamžiku známo a na jakém základě se rozhodovalo.
Jak konkrétně pomáhá PHP SOS?
- Časovou osu vedeme od prvního kontaktu průběžně a v UTC, se zdrojem a dokladem u každého záznamu.
- Externí logy, logy serveru a souborový systém vyhodnocujeme společně a každé tvrzení označíme jako doložené, pravděpodobné, nebo neznámé.
- Podle potřeby převezmeme se specializovanými partnery IT forenzní analýzu pro vyhodnocení použitelné u soudu.
- Časovou osu předáme jako součást zprávy pro vedení, ochranu osobních údajů a pojišťovnu.
Časté dotazy
K čemu potřebuji po bezpečnostním incidentu časovou osu?
Seřadí všechna pozorování do posloupnosti a ukáže, kdy byl útočník v systému, čeho mohl dosáhnout a kdy jste se o tom dozvěděli. Tyto údaje potřebují pověřenci pro ochranu osobních údajů, pojišťovny, úřady i vedení firmy pro svá rozhodnutí.
V jakém časovém pásmu mám časovou osu vést?
Jednotně v UTC. Servery, služby i oznámení používají různá časová pásma a přechod na zimní čas koncem října navíc posouvá místní časy. Kdo vše přepočte na UTC a místní čas jen doplní, vyhne se chybám při porovnávání.
Mohu se spolehnout na časová razítka souborů?
Jen omezeně. Datum změny souboru lze jednoduchými prostředky zfalšovat. Spolehlivější jsou záznamy v lozích, zejména v lozích mimo dotčený server. Časová razítka souborů jsou nápovědy, které by měly být potvrzeny jinými zdroji.
Co kromě technických událostí patří do časové osy?
I rozhodnutí a komunikace: kdy byl incident zaznamenán, kdo byl informován, kdy byl server odpojen od sítě, kdy se záplatovalo. Právě okamžik, kdy jste se o incidentu dozvěděli, je důležitý pro lhůty k hlášení.