Když se něco pokazí
Modul 10: Zůstaňte v bezpečí · Doba čtení: 11 min.
Cíl lekce: Po této lekci poznáte příznaky napadeného serveru, uděláte první kroky, aniž byste zničili důkazy nebo zálohy, rozhodnete se mezi vyčištěním a přeinstalací a budete vědět, kdy musíte ohlásit únik osobních údajů.
Klíčové pojmy: incident, příznaky, izolace, snapshot jako důkaz, deník incidentu, přeinstalace, výměna klíčů a hesel, čistá záloha, ohlašovací povinnost při porušení zabezpečení osobních údajů (72 hodin), Úřad pro ochranu osobních údajů, krizový plán
Jak rozpoznat incident
Vniknutí se málokdy samo ohlásí. Většinou si všimnete něčeho "divného". Příznaky, které je třeba brát vážně:
- Vysoká zátěž bez důvodu: procesor je trvale na 100 %, například kvůli kryptominéru. Pomocí
topnebohtopzjistěte, o jaký proces jde a pod jakým uživatelem běží. - Neznámé procesy nebo služby: program s podivným názvem, často v
/tmp,/dev/shmnebo/var/tmp, nebo služba či časovač systemd, které jste sami nevytvořili. - Odchozí provoz, který nesedí: Váš poskytovatel hlásí, že Váš server rozesílá spam nebo útočí na jiné servery, nebo grafy sítě v panelu ukazují špičky.
- Noví uživatelé nebo klíče: řádek v
~/.ssh/authorized_keys, který neznáte, uživatel v/etc/passwds UID 0, nový řádek v/etc/sudoers.d/. - Změněné soubory: neznámé soubory PHP ve Vašem webu, změněný crontab.
- Logy, které zmizely nebo jsou prázdné: útočníci rádi zahlazují stopy.
Několik příkazů pro rychlé rozhlédnutí:
anna@web1:~$ top -o %CPU
anna@web1:~$ sudo ss -tunap | grep ESTAB
anna@web1:~$ sudo last -n 20
anna@web1:~$ awk -F: '$3 == 0 {print $1}' /etc/passwd
anna@web1:~$ sudo find /etc/systemd/system /etc/cron* -newer /etc/hostname -type f
anna@web1:~$ for u in /root /home/*; do sudo cat $u/.ssh/authorized_keys 2>/dev/null; donelast ukazuje, kdo se kdy přihlásil, řádek s awk vypíše všechny účty s UID 0 (to by měl být jen root) a řádek s find hledá unity a soubory cronu, které jsou novější než soubor vytvořený při instalaci.
Pozor: na serveru, který je opravdu napadený, mohou být podvržené i tyto příkazy. Pomohou Vám něco tušit, ne dokázat, že je vše čisté.
První kroky: klid, izolace, záznam
V prvních minutách je nejdůležitější nezačít v panice věci mazat. Postupujte v tomto pořadí.
1. Založte si deník. Zapisujte na papír nebo do notebooku (ne na server), co vidíte, kdy a co děláte. Budete to později potřebovat k nalezení příčiny, pro ohlášení, trestní oznámení nebo pojišťovnu. Doporučuje to i nizozemské NCSC.
2. Izolujte server. Zabraňte tomu, aby dál škodil (spam, útoky, odesílání dat), aniž byste ho vypnuli:
- ve firewallu svého poskytovatele (pokud existuje) zavřete vše kromě SSH z Vaší vlastní adresy; nebo
- udělejte totéž přímo na serveru přes konzoli;
- pokud to jinak nejde: vypněte server přes panel. Tím ovšem přijdete o obsah paměti.
3. Vytvořte snapshot. Snapshot v panelu zachytí stav serveru tak, jak je teď. To je Váš důkaz a zdroj, ze kterého později zjistíte, jak se útočník dostal dovnitř, i když server poté přeinstalujete.
4. Zajistěte zálohy. Zkontrolujte, zda jsou Vaše zálohy mimo server stále neporušené, a zajistěte, aby se k nim napadený server už nedostal (například zneplatněte přístupový klíč serveru k úložišti záloh). Útočníci se snaží zálohy také smazat nebo zašifrovat.
Vyčistit, nebo přeinstalovat?
Lákavá odpověď zní: smazat podezřelý soubor, zastavit kryptominér a hotovo. Jenže nevíte, co dalšího útočník udělal: druhá zadní vrátka, upravený program, klíč navíc, časovač, který vše vrátí zpět. Serveru, na kterém měl někdo práva root, už nemůžete věřit.
Správci i nizozemské NCSC proto radí: zasažené systémy přeinstalujte a data obnovte ze zálohy, která sama není infikovaná. Konkrétně:
- Nová instalace (přeinstalace v panelu, nebo nový server).
- Hned základy z tohoto kurzu: aktualizace, běžný uživatel se sudo, SSH s novými klíči, firewall (moduly 2 až 5).
- Aplikace znovu nainstalujte z oficiálních zdrojů, nejlépe pomocí svých souborů compose nebo poznámek (lekce 10.4).
- Data (databáze, nahrané soubory) obnovte ze zálohy z doby před incidentem. Kód ani konfiguraci neobnovujte naslepo: mohou obsahovat zadní vrátka. I obnovená data posuzujte kriticky; útočník mohl být uvnitř déle, než si myslíte.
- Zalepte díru, kterou se útočník dostal dovnitř. Jinak se to stane znovu. Při zjišťování pomůže snapshot z kroku 3.
Vyměňte vše, co mohlo uniknout
Počítejte s tím, že vše, co bylo na serveru, má útočník v rukou:
- Klíče SSH: veřejné klíče, které byly na serveru, všude odstraňte, a pokud byly na serveru soukromé klíče, vytvořte nové páry klíčů.
- Hesla k databázím, administračním panelům a uživatelským účtům Vaší aplikace.
- Klíče API a tokeny (e-mail, platby, cloudové úložiště, úložiště záloh) ze souborů
.enva z konfigurace: zneplatněte je u dané služby a nahraďte novými. - Certifikáty: soukromý klíč Vašeho certifikátu byl na serveru. Nechte certifikát zneplatnit a požádejte o nový (s Let's Encrypt je to rychlé, lekce 7.3).
Ohlášení: GDPR a další
Pokud byly na serveru osobní údaje (údaje zákazníků, účty, e-mailové adresy), mohlo dojít k porušení zabezpečení osobních údajů. GDPR (článek 33) stanoví, že správce ohlásí porušení zabezpečení dozorovému úřadu bez zbytečného odkladu a pokud možno do 72 hodin od okamžiku, kdy se o něm dozvěděl. V Česku je to Úřad pro ochranu osobních údajů (ÚOOÚ). Několik důležitých bodů:
- ohlašovat není nutné, pokud je nepravděpodobné, že by porušení představovalo riziko pro dotčené osoby; máte-li pochybnosti, ohlaste ho;
- pokud ještě nemáte všechny informace, ohlaste porušení přesto do 72 hodin a doplňte je později;
- osoby, jejichž údaje unikly, informujte, pokud pro ně vzniká vysoké riziko;
- každé porušení zabezpečení zaznamenejte do vlastní evidence, i když ho nemusíte ohlašovat.
Pokud spravujete server pro klienta, jste obvykle zpracovatel: pak musíte klienta (správce) informovat bez zbytečného odkladu, aby mohl porušení ohlásit. Tato lekce není právní poradenství; v případě pochybností se podívejte na web ÚOOÚ.
Dále: zneužití, ke kterému došlo z Vašeho serveru, nahlaste svému poskytovateli (často o něm už ví), a při závažném útoku podejte trestní oznámení u Policie České republiky. Pokud Vaše organizace spadá pod zákon č. 264/2025 Sb., o kybernetické bezpečnosti (česká transpozice NIS2), platí pro Vás zvláštní, kratší lhůty pro hlášení.
Příprava: krizový plán
Incident vždy přijde v nevhodnou chvíli. Co máte připravené předem, ušetří hodiny:
- Vězte, jak se dostanete ke konzoli a k tlačítku snapshotu u svého poskytovatele, a mějte přihlašovací údaje k panelu (s dvoufázovým ověřením) uložené někde mimo server.
- Vězte, kde jsou Vaše zálohy, jak je obnovit a že fungují (lekce 8.2).
- Veďte si seznam všech tajemství, která jsou na serveru, abyste věděli, co musíte vyměnit.
- Mějte seznam kontaktů: Váš poskytovatel, kdo další se musí o serveru dozvědět (klient, kolega) a kontaktní údaje pro ohlášení porušení zabezpečení osobních údajů.
V praxi
Na obrazovce VPS u WebOké najdete konzoli, snapshoty, zálohy a tlačítko pro přeinstalaci; u jiných poskytovatelů se tyto funkce jmenují podobně (console nebo VNC, snapshot, rescue, reinstall). Tento kurz je svépomoc: nikdo Vám na server nekouká a nikdo za Vás incident neuklidí. Právě proto je tak důležitý krizový plán, který dokážete provést sami.
Shrnutí
- Příznaky: nevysvětlitelná zátěž, neznámé procesy, služby nebo klíče, podivný odchozí provoz, změněné nebo zmizelé soubory a logy.
- První kroky: vést deník, izolovat server, vytvořit snapshot jako důkaz, zajistit zálohy.
- Server, na kterém měl někdo práva root, nečistíte, ale přeinstalujete; data obnovíte z čisté zálohy a zalepíte díru.
- Vyměňte všechny klíče, hesla, tokeny a certifikáty, které byly na serveru.
- Zasaženy osobní údaje? Porušení zabezpečení ohlaste pokud možno do 72 hodin ÚOOÚ a každé porušení zaznamenejte.
Kvíz
Úkol
Úkol O10.3: Váš krizový plán na jedné stránce. Sepište pro svůj server krizový plán o rozsahu nejvýše jedné strany A4: jak se dostanete do panelu, ke konzoli a ke snapshotům; kde jsou Vaše zálohy a jak je obnovíte; jaká tajemství jsou na serveru; koho musíte informovat (a zda musíte při porušení zabezpečení osobních údajů podat ohlášení); a jakých prvních pět kroků uděláte při podezření na vniknutí. Plán uložte mimo server.
Úkol O10.3: Váš krizový plán na jedné stránce
Tento úkol provádíte sami; nikdo ho nekontroluje. Odškrtněte, co jste udělali, a označte úkol jako splněný.
Nejprve zaznamenávat (deník mimo server), pak izolovat (firewall poskytovatele nebo přes konzoli), snapshot jako důkaz, zajistit zálohy; poté rozhodnout o přeinstalaci, výměně tajných údajů a ohlášení (u osobních údajů s rizikem do 72 hodin Úřadu pro ochranu osobních údajů (ÚOOÚ)). Do tohoto formuláře nezadávejte skutečná hesla.
Vaše zaškrtnutí a poznámky zůstávají pouze v tomto prohlížeči; nikam je neposíláme. Pokud jste přihlášeni, ukládáme v sekci Moje kurzy pouze to, že jste úkol splnili.
Doporučujeme k přečtení
- Žádný přístup k VPS: co teď?
- Snapshoty a zálohy VPS
- Připojení vlastního ISO nebo přeinstalace VPS
- Nizozemské NCSC, Gehackt, wat nu? (nizozemský zdroj): https://www.ncsc.nl/incidenten-en-herstellen/gehackt-wat-nu
- Úřad pro ochranu osobních údajů (ÚOOÚ), ohlašování porušení zabezpečení osobních údajů: https://uoou.gov.cz/
