# Hľadanie podozrivých procesov na serveroch s Linuxom

> Podozrivé procesy v Linuxe: rozpoznať zmazané súbory programov, maskovacie názvy a miesta spustenia, priradiť procesy k balíku a zabezpečiť stopy.

Zdroj: https://phpsos.de/sk/blog/verdaechtige-prozesse-linux/  
Stav: 25.10.2026  
Poskytovateľ: PHP SOS, Núdzová pomoc pri PHP a bezpečnosť serverov. Okamžitá pomoc cez WhatsApp: https://wa.me/491736494914?text=Dobr%C3%BD%20de%C5%88%2C%20PHP%20SOS%2C%20potrebujeme%20pomoc%20s%20na%C5%A1%C3%ADm%20serverom%20s%20PHP.%20Spolo%C4%8Dnos%C5%A5%3A%20%E2%80%A6%20Web%3A%20%E2%80%A6

**Stručne:** Podozrivé procesy na serveroch s Linuxom spoznáte podľa niekoľkých znakov: súbor programu je zmazaný alebo v `/tmp`, `/dev/shm` či webovom adresári, názov napodobňuje systémový proces, neobvyklý používateľ, trvalé sieťové spojenia alebo vysoká záťaž bez dôvodu. Čítacími príkazmi preverte, či súbor programu patrí k nainštalovanému balíku, a nálezy zabezpečte skôr, než niečo ukončíte.

## Čo znamená „podozrivý“ pri procese

Na webovom serveri beží stovky procesov. Väčšina patrí k operačnému systému, webovému serveru, databáze alebo PHP. Útočník, ktorý mohol vykonať kód cez zraniteľnosť ako PHP2Shell, sa snaží medzi nimi nevyniknúť. Volí nenápadné názvy a ukladá programy tam, kde smie zapisovať používateľ webového servera.

Pri kontrole pomáha poznať normálny stav. Kto vie, ktoré služby majú na serveri bežať, pod akými používateľmi a s akou záťažou, rozpozná odchýlky oveľa rýchlejšie. Ak táto znalosť chýba, oplatí sa na porovnanie použiť zoznam procesov podobného, nepodozrivého servera.

Jednotlivý znak ešte nie je dôkaz. Rozhoduje súhra. Proces s názvom vlákna jadra, ktorý beží pod `www-data`, bol spustený z `/dev/shm` a drží spojenie do zahraničia, je jasný prípad. Ako preveriť osobitný prípad shellu pod webovým serverom, opisuje [Varovný signál: webový server spúšťa shell](https://phpsos.de/sk/blog/webserver-startet-shell/).

## Prvý prehľad v piatich príkazoch

Všetky príkazy len čítajú. Spúšťajte ich ako root, aby ste videli všetky procesy, a výstupy ukladajte do súboru mimo webového adresára.

```bash
# 1. Všetky procesy s používateľom, PID rodiča, časom spustenia, CPU a príkazovým riadkom
ps -eo user,pid,ppid,lstart,%cpu,%mem,cmd --sort=-%cpu | head -40

# 2. Procesy, ktorých súbor programu bol zmazaný
ls -l /proc/[0-9]*/exe 2>/dev/null | grep "(deleted)"

# 3. Procesy, ktoré bežia z dočasných alebo webových adresárov
ls -l /proc/[0-9]*/exe 2>/dev/null | grep -E " -> (/tmp|/var/tmp|/dev/shm|/var/www)"

# 4. Procesy so sieťovými spojeniami
ss -tunap

# 5. Prehľad procesov používateľov webového servera
ps -eo user,pid,ppid,lstart,cmd | grep -E "^(www-data|apache|nginx) "
```

Mená používateľov sa podľa distribúcie a panela líšia; Plesk a iné panely často spúšťajú PHP pod používateľom príslušného zákazníka. Zoznam prispôsobte svojmu prostrediu.

Výstupy čítajte s ohľadom na čas spustenia. Procesy, ktoré bežia od posledného reštartu servera, zvyčajne patria k systému. Pozornosť si zaslúžia procesy, ktoré sa spustili uprostred noci alebo v dňoch po 17. októbri a nezodpovedajú žiadnej službe. Porovnajte aj počet procesov PHP s tým, čo dovoľuje konfigurácia poolu; výrazne viac procesov pod používateľom webového servera je náznak.

## Podozrivé procesy v Linuxe: typické znaky

| Znak | Prečo upúta | Možné neškodné vysvetlenie? |
|---|---|---|
| Súbor programu „(deleted)“ | Útočníci po spustení súbory mažú | áno, po aktualizáciách balíkov do reštartu |
| Miesto spustenia `/tmp`, `/dev/shm`, priečinok na nahrávanie | tam smie zapisovať každý alebo webový server | zriedka |
| Názov v hranatých zátvorkách ako `[kworker]` | napodobňuje vlákna jadra | nie, ak za ním stojí súbor programu |
| Trvale vysoká záťaž CPU bez príčiny | typické pre kryptominery | áno, pri dávkových úlohách alebo indexovaní |
| Rodičovský proces 1 a používateľ webového servera | odtrhnutý od webového servera, beží samostatne ďalej | zriedka |
| Spojenie na neznámy cieľ | riadenie alebo únik dát | áno, pri aktualizáciách a API |

Skutočné vlákna jadra nemajú súbor programu; `ls -l /proc/PID/exe` im nevráti žiadnu cestu. Ak proces s názvom jadra ukazuje na súbor, je maskovaný. Pri vysokej záťaži bez zjavného dôvodu pomôže článok [Kryptominery na webovom serveri](https://phpsos.de/sk/blog/kryptominer-auf-dem-server/).

## Protikontrola: patrí súbor programu k balíku?

Takmer všetky legitímne programy na serveri pochádzajú zo správy balíkov. Súbor programu, ktorý nepatrí k žiadnemu balíku, nie je automaticky škodlivý, zaslúži si však dôkladný pohľad.

```bash
PID=12345
EXE=$(readlink /proc/$PID/exe); echo "$EXE"
dpkg -S "$EXE"        # Debian/Ubuntu: ku ktorému balíku súbor patrí?
rpm -qf "$EXE"        # rodina RHEL
sha256sum /proc/$PID/exe   # kontrolný súčet, funguje aj pri zmazanom súbore
tr '\0' ' ' < /proc/$PID/environ | head -c 600; echo   # premenné prostredia
```

Ak je súbor programu zmazaný, `sha256sum /proc/$PID/exe` ho napriek tomu načíta z bežiaceho procesu. Tento kontrolný súčet patrí do dokumentácie. Kópiu súboru by mal vytvoriť len ten, kto vie, ako ju bezpečne uchovať.

## Hranice kontroly na bežiacom systéme

Všetky vyššie uvedené príkazy dôverujú systému, ktorý práve kontrolujete. Pri bežnom vlámaní cez web s právami používateľa webového servera je to obhájiteľné. Ak útočník získal práva root, môže procesy skrývať a výstupy falšovať. Server potom ukazuje len to, čo útočník dovolí.

Náznakmi sú rozpory: záťaž bez viditeľného procesu, spojenia, ktoré vidí firewall, no `ss` nie, alebo zmenené systémové programy. V takých prípadoch patrí kontrola na zabezpečený obraz. Pri bežiacich systémoch pribúda často zálohovanie pamäte RAM, pretože niektoré škodlivé programy existujú len tam a na disku zanechávajú sotva stopy. Toto zálohovanie musí prebehnúť pred reštartom a vyžaduje vhodné nástroje a skúsenosti. Prečo to treba urobiť pred novou inštaláciou, vysvetľuje [Zabezpečte dôkazy skôr, než systém nasadíte nanovo](https://phpsos.de/sk/blog/beweise-sichern-vor-neuinstallation/).

> **Dôležité:**
> Podozrivé procesy neukončujte ako prvý krok. Často ich cronjob alebo služba znovu spustí a s procesom miznú z pamäte príkazový riadok, spojenia a zmazaný súbor programu.

## Skontrolovať autoštarty a ďalšie kroky

Škodlivý proces, ktorý by po reštarte zmizol, by bol pre útočníkov bezcenný. Preto k nálezu každého procesu patrí otázka, čo ho spúšťa. Okrem cronjobov prichádzajú do úvahy hlavne služby systemd, ktoré môže útočník s právami root vytvoriť. Nápadné sú služby so všeobecnými názvami, ktorých súbor programu leží v neobvyklom adresári, a súbory jednotiek, ktoré vznikli po 17. októbri.

```bash
# Bežiace služby a nedávno zmenené súbory jednotiek
systemctl list-units --type=service --state=running --no-pager
find /etc/systemd /usr/lib/systemd /lib/systemd -type f -newerct "2026-10-17" -ls 2>/dev/null

# Vkladá sa do každého procesu knižnica? Súbor zvyčajne neexistuje.
ls -l /etc/ld.so.preload 2>/dev/null && cat /etc/ld.so.preload
```

Záznam v `/etc/ld.so.preload` je na bežných webových serveroch zriedkavý a silný ukazovateľ manipulácie s právami root. Ako úplne skontrolovať plánované úlohy, opisuje [Rozpoznanie skrytých cronjobov ako zadných vrátok](https://phpsos.de/sk/blog/cronjobs-als-hintertuer/).

Potom nasledujú ďalšie kroky v tomto poradí:

1. Zabezpečiť výstupy a kontrolné súčty s časom.
2. Hľadať perzistenciu: cronjoby, služby a časovače systemd, kľúče SSH.
3. Objasniť pôvod: logy od 20. októbra, nové súbory vo webovom adresári.
4. Server izolovať a naplánovať vyčistenie alebo nové nasadenie.

Prehľad všetkých typických príznakov po PHP2Shell poskytuje [Som už kompromitovaný?](https://phpsos.de/sk/php2shell/bin-ich-gehackt-anzeichen/).

## Ako konkrétne pomáha PHP SOS?

- **Zhodnotiť procesy:** Preveríme zoznam procesov, súbory programov a spojenia a každý nález zaradíme.
- **Zabezpečiť pred súdom:** Prostredníctvom [IT forenznej analýzy](https://phpsos.de/sk/leistungen/it-forensik/) zabezpečíme pamäť RAM a nosiče dát ešte predtým, než sa niečo zmení.
- **Nájsť perzistenciu:** Hľadáme mechanizmy, ktoré škodlivé procesy znovu spúšťajú.
- **Uzavrieť:** Vyčistíme alebo nasadíme nanovo a incident zdokumentujeme až po uzavretie.


## Časté otázky

**Podľa čoho spoznám podozrivý proces v Linuxe?**  
Typické znaky sú zmazaný súbor programu, miesto spustenia v /tmp alebo /dev/shm, názov napodobňujúci systémový proces, neobvyklý používateľ a trvalé sieťové spojenia. Jednotlivé znaky sú náznaky, viacero spolu je vážne podozrenie.

**Čo znamená „(deleted)“ pri /proc/PID/exe?**  
Súbor programu procesu bol po spustení zmazaný. To sa legitímne stáva po aktualizáciách balíkov, kým sa služba nereštartuje. Pri procesoch z dočasných priečinkov alebo pod používateľom webového servera je to typické maskovacie správanie.

**Môžem sa spoliehať na výstup ps?**  
Pri bežnom vlámaní zvyčajne áno. Ak však útočník získal práva root, môže manipulovať s nástrojmi a výstupmi. Vtedy je spoľahlivejšia kontrola zvonku, napríklad na zabezpečenom obraze.

**Mám podozrivý proces ukončiť pomocou kill?**  
Nie ako prvé. Najprv zabezpečte príkazový riadok, súbor programu, spojenia a čas spustenia. Ukončený proces už nič neprezradí a často ho cronjob alebo služba aj tak znovu spustí.

## Zdroje

- [BSI IT-Grundschutz](https://www.bsi.bund.de/DE/Themen/Unternehmen-und-Organisationen/Standards-und-Zertifizierung/IT-Grundschutz/it-grundschutz_node.html)
- [BSI: nemecký Spolkový úrad pre informačnú bezpečnosť](https://www.bsi.bund.de/)
- [OWASP Cheat Sheet Series](https://cheatsheetseries.owasp.org/)
