Stručně: Zda server po hacku znovu postavit, nebo vyčistit, závisí na tom, jak jistě znáte rozsah průniku. Pokud měl útočník možná práva root, doba průniku je nejasná nebo chybějí logy, je nové vybudování z důvěryhodných zdrojů spolehlivější volbou. Vyčištění přichází v úvahu jen u úzce omezeného, dobře doloženého napadení. V obou případech platí: nejdřív zajistit důkazy a uzavřít zranitelnost, teprve potom uklízet.
Proč se tato otázka po PHP2Shell klade zvlášť často
PHP2Shell podle php.net umožňuje spuštění škodlivého kódu na dálku bez přihlášení. Kdo provozoval nezáplatovaný server, musí se proto ptát, zda se od 17. 10. 2026, tedy od prvního podle zpráv médií pozorovaného pokusu o útok, něco nestalo. Záplata tuto otázku nezodpoví a neexistují zveřejněné, potvrzené indicators of compromise.
Pokud se pak najde podezřelý soubor, neznámý proces nebo cizí cronjob, přichází rozhodnutí. Impuls bývá rychle smazat nebo hned znovu nainstalovat. Obojí může být správné, ale ne jako první krok.
Pořadí před rozhodnutím
Než zvolíte mezi vyčištěním a novým postavením, je třeba udělat tři věci. Platí pro obě cesty.
- Omezit: Odpojit server od sítě nebo omezit přístup na nejnutnější, aniž byste ho vypnuli, pokud se má ještě zajistit paměť.
- Zajistit důkazy: Zajistit logy, soubory, databázi a pokud možno obraz systému, s datem a kontrolním součtem. Proč je to nutné před každou novou instalací, vysvětluje Zajistit důkazy před novou instalací.
- Zapojit pojišťovnu a ochranu osobních údajů: Mnoho kyberpojistek očekává, že se podstatné kroky konzultují. Pokyny najdete v Kyberpojištění: na čem záleží při škodní události. Zda existuje oznamovací povinnost podle GDPR, posoudí pověřenec pro ochranu osobních údajů nebo právník.
Teprve potom se vyplatí samotná rozvaha.
Server po hacku znovu postavit, nebo vyčistit: kritéria
| Kritérium | Vyčistit | Postavit znovu |
|---|---|---|
| Rozsah průniku | Úzce omezený, doložený, např. jeden soubor ve složce pro nahrávání bez dalších stop | Nejasný nebo s náznaky přístupu k systému |
| Možná práva root u útočníka | Vyloučena s dobrými doklady | Nelze vyloučit |
| Dostupnost logů | Úplné za relevantní období | Neúplné, přepsané nebo zmanipulovatelné |
| Náročnost | Nižší, pokud je nález jasný | Vyšší, ale lépe plánovatelná |
| Zbývající nejistota | Vyšší, skrytá zadní vrátka se těžko vylučují | Nižší, pokud se čistě staví z důvěryhodných zdrojů |
| Doba výpadku | Většinou kratší | Většinou delší, s přípravou dobře řiditelná |
| Vhodnost pro starší systémy | Problematické, pokud je systém stejně zastaralý | Dobrá příležitost přejít na podporovanou verzi PHP |
Jako pravidlo palce platí: Čím méně víte, tím víc mluví pro nové vybudování. U zranitelnosti v interpretu PHP, která spouští kód v kontextu uživatele webového serveru, může útočník využít další zranitelnosti k získání vyšších práv. To lze bez důkladného vyšetření těžko vyloučit.
Obě cesty v praxi
Co „postavit znovu“ skutečně znamená
Postavit znovu neznamená zkopírovat starou zálohu na čistý server. Nové vybudování začíná čistým operačním systémem z oficiálního zdroje, aktuálními balíčky a záplatovanou verzí PHP. Aplikace se instaluje z originálu výrobce, stejně tak pluginy a šablony.
Teprve potom se přidává vlastní obsah, a to prověřený. Nahrané soubory nesmějí obsahovat spustitelné skripty, databáze může obsahovat vložený obsah, například skryté administrátorské účty nebo skripty v příspěvcích. Konfigurační soubory se píší znovu, ne kopírují. Všechny přístupové údaje se obnovují: databáze, administrátoři CMS, klíče SSH, klíče API, hostingový panel.
Zálohy hrají důležitou roli, ale jen pokud je jejich stav před průnikem a samy nebyly změněny. Více generací na oddělených místech to činí ověřitelným; více v Zálohy podle pravidla 3-2-1.
Kdy je vyčištění obhajitelné
Vyčištění může dávat smysl, pokud bylo napadení odhaleno brzy, existují úplné logy a vyšetřování nenaznačuje žádné další přístupy. Pak se nalezené soubory po zajištění odstraní, zkontrolují se cronjoby, uživatelské účty a klíče SSH a jádrové soubory se porovnají s originálem výrobce.
Důležité je realistické posouzení: Webshelly bývají nenápadné a ukryté na více místech. Jak je najít, popisuje Rozpoznání a odstranění webshellů. Po vyčištění by měl být server pečlivě sledován, aby přehlédnutá zadní vrátka vyšla najevo.
Nic nemažte, dokud nejsou zajištěny logy a soubory, a zranitelnost uzavřete dřív, než se server vrátí do sítě. Jinak ztratíte stopy a pozvete další průnik.
Kdy dodavatele nepotřebujete
U jednoduchého webu na sdíleném hostingu, kde systém spravuje poskytovatel a záplatu PHP potvrdí, často rozhodnutí vůbec není na vás. Aplikaci můžete znovu nainstalovat z originálu, obsah prověřit a přístupové údaje obnovit, s podporou poskytovatele. Zkušený interní tým zvládne nové vybudování i sám, pokud je zajištění důkazů a dokumentace v pořádku.
Externí pomoc se vyplatí, pokud nelze vyloučit práva root, mohou být dotčeny osobní údaje, je zapojena pojišťovna nebo spolu souvisí více systémů.
Jak konkrétně pomáhá PHP SOS?
- Logy, soubory a databázi zajistíme použitelně jako důkaz, dříve než se cokoli změní.
- Vyhodnotíme rozsah průniku a doporučíme vyčištění nebo nové vybudování s odůvodněním, odděleně podle toho, co je doloženo, pravděpodobné a neznámé.
- Server podle potřeby postavíme znovu z důvěryhodných zdrojů, se záplatovanou verzí PHP a obnovenými přístupy.
- Odstranění malwaru přebíráme tam, kde je vyčištění obhajitelné, a dokumentujeme každý krok.
Závěr
Otázka „postavit znovu, nebo vyčistit?“ se rozhoduje znalostí průniku. Kdo rozsah nezná jistě, staví znovu. Kdo ho umí doloženě omezit, smí čistit. V obou případech platí stejné pořadí: omezit, zajistit, uzavřít zranitelnost, teprve pak uklízet.
Časté dotazy
Je nové postavení po hacku vždy lepší?
Ne vždy, ale často. Pokud není jasné, jak daleko se útočník dostal, je nové vybudování z důvěryhodných zdrojů zpravidla spolehlivější volbou. U úzce omezeného, dobře doloženého napadení může stačit vyčištění.
Mohu prostě obnovit starou zálohu?
Jen pokud je jisté, že záloha vznikla před průnikem a neobsahuje zadní vrátka. Zranitelnost musí být navíc předtím uzavřena, jinak je server hned zase napadnutelný. Novější data je třeba prověřit zvlášť.
Co musím zajistit před novým postavením?
Logy, kopii souborů a databáze a pokud možno obraz systému. Tyto důkazy potřebujete pro analýzu příčiny, pojištění a případné oznámení. Po smazání jsou pryč.
Stačí nalezený webshell smazat?
Zřídka. Útočníci často zakládají více zadních vrátek, například cronjoby, uživatelské účty nebo klíče SSH. Kdo smaže jen viditelný soubor, nechá ostatní přístupy otevřené.