# Kryptominer na webovém serveru: příznaky a postup

> Rozpoznat kryptominer na serveru: zkontrolovat trvalé zatížení, cizí procesy, spojení a mechanismy restartu, zajistit stopy a uzavřít příčinu.

Zdroj: https://phpsos.de/cs/blog/kryptominer-auf-dem-server/  
Stav: 25.10.2026  
Poskytovatel: PHP SOS, Nouzová pomoc pro PHP a bezpečnost serverů. Okamžitá pomoc přes WhatsApp: https://wa.me/491736494914?text=Dobr%C3%BD%20den%2C%20PHP%20SOS%2C%20pot%C5%99ebujeme%20pomoc%20s%20na%C5%A1%C3%ADm%20PHP%20serverem.%20Firma%3A%20%E2%80%A6%20Web%3A%20%E2%80%A6

**Stručně:** Kryptominer na serveru se většinou projeví trvale vysokým zatížením CPU bez zřejmého důvodu, cizími procesy, často pod uživatelem webového serveru, a odchozími spojeními na neznámé cíle. Proces neukončujte ukvapeně: nejprve zajistěte stopy, najděte mechanismy, které jej znovu spouštějí, a uzavřete vstupní bránu. Miner znamená, že někdo mohl na vašem serveru spouštět kód.

## Když je první varováním účet od poskytovatele cloudu

Kryptominer často neupoutá pozornost bezpečnostním poplachem, ale mimochodem. Web se zpomalí, hoster hlásí překročení výpočetního času, ventilátor ve vlastním datacentru běží bez přestání, nebo vyúčtování u poskytovatele cloudu roste bez nových projektů. Pro útočníky je miner jednoduchou cestou, jak z kompromitovaného serveru vydělat peníze.

Těžba znamená využívat výpočetní výkon cizího systému k tvorbě kryptoměny. Škoda se zdá přehledná, protože se nešifrují žádná data. To klame: Kdo může spustit miner, může také číst přístupové údaje, kopírovat databáze a zakládat další zadní vrátka.

Po PHP2Shell se kontrola vyplatí zvlášť. Zranitelnosti CVE-2026-109618 a CVE-2026-109619 umožňují spuštění škodlivého kódu bez přihlášení. Potvrzené indikátory kompromitace (Indicators of Compromise) neexistují a miner není specifickým znakem těchto zranitelností. Vysoké zatížení neznámými procesy ale patří k obecným příznakům popsaným v článku [Jsem už kompromitován?](https://phpsos.de/cs/php2shell/bin-ich-gehackt-anzeichen/).

## Příznaky kryptominera správně vyložit

Vysoké zatížení má mnoho neškodných příčin. Tabulka pomáhá při prvním zařazení:

| Pozorování | Možné neškodné vysvětlení | Co zkontrolovat |
|---|---|---|
| CPU trvale blízko plného využití | záloha, zpracování obrázků, budování indexu | Je zatížení rovnoměrné i v noci a o víkendu? |
| Proces s názvem jako systémová služba | zřídka | Leží programový soubor v očekávané systémové cestě? |
| Proces pod `www-data`, `apache` nebo `nginx`, který není PHP | téměř ne | Kdo jej spustil, z jaké složky? |
| Program v `/tmp`, `/var/tmp` nebo `/dev/shm` | téměř ne | Od kdy soubor existuje, komu patří? |
| Trvalé odchozí spojení na neznámý cíl | monitoring, aktualizace | Patří cíl ke známé službě? |
| Zatížení klesne, jakmile se přihlásíte | zřídka | Některé škodlivé programy se pozastaví, když běží sledovací nástroje |

Čím více řádků platí, tím pravděpodobnější je nález. To, že uživatel webového serveru vůbec spouští cizí programy, je samo o sobě silný varovný signál, jak ukazuje článek [Webový server spouští shell](https://phpsos.de/cs/blog/webserver-startet-shell/).

## Jak zkontrolovat procesy a spojení

Následující příkazy jen čtou. Výsledek a čas si poznamenejte dřív, než cokoli změníte:

```bash
# Procesy podle spotřeby CPU, s uživatelem, časem spuštění a úplným příkazem
ps -eo pid,ppid,user,lstart,%cpu,%mem,args --sort=-%cpu | head -20

# Programový soubor a pracovní adresář podezřelého procesu (dosaďte PID)
sudo ls -l /proc/PID/exe /proc/PID/cwd

# Odchozí spojení s procesem
sudo ss -tnp state established

# Spustitelné soubory v dočasných složkách
sudo find /tmp /var/tmp /dev/shm -type f -perm -u+x -ls 2>/dev/null
```

Ukazuje-li `/proc/PID/exe` na soubor s dodatkem `(deleted)`, byl program po spuštění smazán. To je typický pokus o maskování. Proces běží dál a dokud běží, lze programový soubor ještě zajistit přes `/proc`. To by měl převzít někdo, kdo umí zacházet se škodlivým softwarem; soubor nikdy nespouštějte.

Jak procesy systematicky projít nad rámec mineru, popisuje [Hledání podezřelých procesů na serverech s Linuxem](https://phpsos.de/cs/blog/verdaechtige-prozesse-linux/).

## Proč se miner pořád vrací

Mnoho provozovatelů proces ukončí, raduje se z klesajícího zatížení a druhý den zjistí, že vše začíná znovu. Minery se téměř vždy instalují s mechanismem restartu. Typická místa jsou:

1. **Cron úlohy** uživatele webového serveru nebo celosystémové, které každých pár minut kontrolují, zda miner běží, a jinak jej stáhnou znovu.
2. **Systémové služby** s nenápadnými názvy, které se spouštějí při startu.
3. **Webshell** ve webovém adresáři, přes který útočník miner kdykoli znovu spustí.
4. **Změněné startovací skripty** nebo profilové soubory uživatelů.
5. **Cizí klíče SSH**, jimiž se útočník přímo znovu přihlásí.

```bash
# Cron úlohy uživatele webového serveru a celosystémové záznamy
sudo crontab -u www-data -l
ls -la /etc/cron.d /etc/cron.hourly /var/spool/cron 2>/dev/null

# Naposledy změněné units systemd
sudo find /etc/systemd/system /lib/systemd/system -name '*.service' -newermt "2026-10-17" -ls
```

Teprve když jsou nalezeny všechny mechanismy, zůstane server trvale klidný. Měl-li útočník práva root, je nová výstavba na čerstvém systému většinou spolehlivější než hledání každé skrýše.

## Správné pořadí po nálezu

Miner působí jako technická nepříjemnost, ale je bezpečnostním incidentem. Postupujte proto uspořádaně:

- **Zajistit:** Seznam procesů, spojení, podezřelé soubory a logy zkopírovat s kontrolním součtem dříve, než se cokoli ukončí.
- **Zadržet:** Server izolovat nebo zablokovat odchozí spojení, pokud je to možné bez ztráty dat.
- **Uzavřít příčinu:** PHP uvést na opravený stav (8.5.12, 8.4.27, 8.3.36, 8.2.35 nebo potvrzený backport), restartovat všechny workery, aktualizovat CMS a rozšíření.
- **Vyčistit nebo znovu postavit:** Odstranit miner, mechanismy restartu a zadní vrátka, v případě pochybností nasadit znovu.
- **Zkontrolovat následky:** Mohly být přečteny přístupové údaje nebo osobní údaje? Pak objasnit ochranu osobních údajů a případné oznamovací povinnosti.

Zapojte včas svého hostera nebo poskytovatele cloudu. Mnoho poskytovatelů servery s nápadným zatížením nebo nápadným síťovým provozem preventivně blokuje. Kdo poskytovatele informuje sám a postup si domluví, spíše si udrží kontrolu nad okamžikem odpojení. Zeptejte se přitom i na síťové a přístupové protokoly poskytovatele, protože leží mimo váš server a útočník je jen těžko změní.

Pro vedení firmy je důležité stručné a upřímné zařazení: Samotný miner stojí především výpočetní čas a výkon. Skutečná otázka ale zní, co útočník navíc viděl. Dokud to není objasněno, neměl by se incident považovat za vyřízený, i když je zatížení opět normální.

> **Důležité:**
> Kryptominer ukazuje, že na vašem serveru byl spuštěn kód. Všechny přístupové údaje, které na serveru ležely, považujte za případně uniklé a po vyčištění je obnovte.

## Jak konkrétně pomáhá PHP SOS?

- Zařazujeme zatížení a rozlišujeme mezi neškodnými příčinami a cizími procesy.
- Zajišťujeme procesy, soubory a spojení dříve, než se miner ukončí.
- Hledáme všechny mechanismy restartu a zadní vrátka a server vyčistíme v rámci [odstranění malwaru](https://phpsos.de/cs/leistungen/malware-entfernung/), nebo jej postavíme znovu.
- Uzavíráme vstupní bránu, obnovujeme přístupy a zavádíme sledování zatížení, které neobvyklé vzorce hlásí včas.


## Časté dotazy

**Podle čeho poznám kryptominer na svém serveru?**  
Typické je trvale vysoké zatížení CPU, které neodpovídá počtu návštěvníků ani plánovaným úlohám. K tomu přistupují procesy s neznámými nebo neškodně znějícími názvy, často pod uživatelem webového serveru, a odchozí spojení na cizí adresy. Jediný znak ještě není důkaz.

**Stačí proces těžby ukončit?**  
Ne. Minery se většinou znovu a znovu spouštějí přes cron úlohy, systémové služby nebo webshell. Kdo proces jen ukončí, často jej za chvíli uvidí znovu. Navíc zůstává otevřená vstupní brána, kterou se miner na server dostal.

**Je kryptominer neškodný, protože jen krade výpočetní výkon?**  
Ne. Kdo mohl nainstalovat miner, mohl na serveru spouštět kód. Zpravidla tak byly dosažitelné i konfigurační soubory, přístupové údaje a databáze. Miner je viditelným příznakem průniku.

**Jaké neškodné příčiny má vysoké zatížení serveru?**  
Hodně výpočetního času mohou spotřebovat i zálohy, zpracování obrázků, budování vyhledávacího indexu, agresivní crawlery nebo chybné rozšíření. Tyto příčiny lze většinou přiřadit známému procesu a časovému plánu. Zůstává-li zatížení bez vysvětlení, měli byste zkoumat podrobněji.

## Zdroje

- [BSI: pokyny k bezpečnostním incidentům IT](https://www.bsi.bund.de/)
- [php.net: bezpečnostní oznámení](https://www.php.net/)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
