# Koparka kryptowalut na serwerze WWW: oznaki i działania

> Koparka kryptowalut na serwerze: sprawdź obciążenie, obce procesy, połączenia i mechanizmy restartu, zabezpiecz ślady i zamknij przyczynę.

Źródło: https://phpsos.de/pl/blog/kryptominer-auf-dem-server/  
Stan: 25.10.2026  
Dostawca: PHP SOS, Pomoc awaryjna PHP i bezpieczeństwo serwerów. Natychmiastowa pomoc przez WhatsApp: https://wa.me/491736494914?text=Dzie%C5%84%20dobry%2C%20PHP%20SOS%2C%20potrzebujemy%20pomocy%20z%20naszym%20serwerem%20PHP.%20Firma%3A%20%E2%80%A6%20Strona%20internetowa%3A%20%E2%80%A6

**Krótko:** Koparka kryptowalut na serwerze ujawnia się zwykle stale wysokim obciążeniem CPU bez widocznego powodu, obcymi procesami, często pod użytkownikiem serwera WWW, oraz połączeniami wychodzącymi do nieznanych celów. Proszę nie kończyć procesu pochopnie: najpierw zabezpieczyć ślady, poszukać mechanizmów, które go uruchamiają ponownie, i zamknąć punkt wejścia. Koparka oznacza, że ktoś mógł wykonywać kod na Państwa serwerze.

## Gdy pierwszym ostrzeżeniem jest rachunek od dostawcy chmury

Często koparka kryptowalut nie zwraca uwagi przez alarm bezpieczeństwa, lecz mimochodem. Strona staje się ospała, dostawca hostingu zgłasza przekroczenie czasu obliczeniowego, wentylator we własnym centrum danych pracuje bez przerwy albo rozliczenie u dostawcy chmury rośnie bez nowych projektów. Dla atakujących koparka to prosty sposób, by zarobić na skompromitowanym serwerze.

Kopanie oznacza wykorzystywanie mocy obliczeniowej cudzego systemu do wytwarzania kryptowaluty. Szkoda wydaje się niewielka, ponieważ żadne dane nie są szyfrowane. To złudzenie: kto może uruchomić koparkę, może też odczytać dane dostępowe, skopiować bazy danych i założyć dalsze tylne furtki.

Po PHP2Shell kontrola szczególnie się opłaca. Luki CVE-2026-109618 i CVE-2026-109619 pozwalają na wykonanie złośliwego kodu bez logowania. Potwierdzonych wskaźników kompromitacji (Indicators of Compromise) nie ma, a koparka nie jest swoistym znakiem tych luk. Wysokie obciążenie przez nieznane procesy należy jednak do ogólnych oznak opisanych w [Czy już zostałem skompromitowany?](https://phpsos.de/pl/php2shell/bin-ich-gehackt-anzeichen/).

## Prawidłowe odczytywanie oznak koparki kryptowalut

Wysokie obciążenie ma wiele niegroźnych przyczyn. Tabela pomaga w pierwszej klasyfikacji:

| Obserwacja | Możliwe niegroźne wyjaśnienie | Co sprawdzić |
|---|---|---|
| CPU stale blisko pełnego obciążenia | kopia zapasowa, obróbka obrazów, budowa indeksu | Czy obciążenie jest równomierne także w nocy i w weekend? |
| Proces o nazwie jak usługa systemowa | rzadko | Czy plik programu leży w oczekiwanej ścieżce systemowej? |
| Proces pod `www-data`, `apache` lub `nginx`, który nie jest PHP | prawie nie | Kto go uruchomił, z jakiego folderu? |
| Program w `/tmp`, `/var/tmp` lub `/dev/shm` | prawie nie | Od kiedy plik istnieje, do kogo należy? |
| Trwałe połączenie wychodzące do nieznanego celu | monitoring, aktualizacje | Czy cel należy do znanej usługi? |
| Obciążenie spada, gdy Państwo się logują | rzadko | Niektóre szkodliwe programy wstrzymują się, gdy działają narzędzia nadzoru |

Im więcej wierszy pasuje, tym bardziej prawdopodobne jest znalezisko. To, że użytkownik serwera WWW w ogóle uruchamia obce programy, jest samo w sobie silnym sygnałem ostrzegawczym, jak pokazuje artykuł [Serwer WWW uruchamia powłokę](https://phpsos.de/pl/blog/webserver-startet-shell/).

## Jak sprawdzić procesy i połączenia

Poniższe polecenia tylko odczytują dane. Wynik i godzinę proszę zanotować, zanim cokolwiek zostanie zmienione:

```bash
# Procesy według zużycia CPU, z użytkownikiem, czasem startu i pełnym poleceniem
ps -eo pid,ppid,user,lstart,%cpu,%mem,args --sort=-%cpu | head -20

# Plik programu i katalog roboczy podejrzanego procesu (wstawić PID)
sudo ls -l /proc/PID/exe /proc/PID/cwd

# Połączenia wychodzące z procesem
sudo ss -tnp state established

# Pliki wykonywalne w katalogach tymczasowych
sudo find /tmp /var/tmp /dev/shm -type f -perm -u+x -ls 2>/dev/null
```

Jeśli `/proc/PID/exe` wskazuje na plik z dopiskiem `(deleted)`, program został po uruchomieniu usunięty. To typowa próba maskowania. Proces działa dalej, a dopóki działa, plik programu można jeszcze zabezpieczyć przez `/proc`. Powinna to zrobić osoba umiejąca postępować ze szkodliwym oprogramowaniem; pliku nigdy nie wolno uruchamiać.

Jak systematycznie przejść procesy poza koparką, opisuje [Znajdowanie podejrzanych procesów na serwerach Linux](https://phpsos.de/pl/blog/verdaechtige-prozesse-linux/).

## Dlaczego koparka ciągle wraca

Wielu operatorów kończy proces, cieszy się ze spadającego obciążenia i następnego dnia stwierdza, że wszystko zaczyna się od nowa. Koparki są niemal zawsze instalowane z mechanizmem ponownego uruchamiania. Typowe miejsca to:

1. **Zadania cron** użytkownika serwera WWW lub systemowe, które co kilka minut sprawdzają, czy koparka działa, a jeśli nie, doładowują ją.
2. **Usługi systemowe** o niepozornych nazwach, startujące przy uruchamianiu systemu.
3. **Webshell** w katalogu WWW, przez który atakujący w każdej chwili uruchamia koparkę na nowo.
4. **Zmienione skrypty startowe** lub pliki profilu użytkowników.
5. **Obce klucze SSH**, którymi atakujący loguje się bezpośrednio ponownie.

```bash
# Zadania cron użytkownika serwera WWW i wpisy systemowe
sudo crontab -u www-data -l
ls -la /etc/cron.d /etc/cron.hourly /var/spool/cron 2>/dev/null

# Ostatnio zmienione unity systemd
sudo find /etc/systemd/system /lib/systemd/system -name '*.service' -newermt "2026-10-17" -ls
```

Dopiero gdy znalezione są wszystkie mechanizmy, serwer pozostaje trwale spokojny. Jeśli atakujący miał uprawnienia roota, budowa od nowa na świeżym systemie jest zwykle bardziej wiarygodna niż szukanie każdej kryjówki.

## Właściwa kolejność po znalezisku

Koparka wygląda jak techniczna uciążliwość, ale jest incydentem bezpieczeństwa. Dlatego proszę postępować w sposób uporządkowany:

- **Zabezpieczyć:** Skopiować listę procesów, połączenia, podejrzane pliki i logi z sumą kontrolną, zanim cokolwiek zostanie zakończone.
- **Powstrzymać:** Izolować serwer lub zablokować połączenia wychodzące, jeśli jest to możliwe bez utraty danych.
- **Zamknąć przyczynę:** Doprowadzić PHP do poprawionego stanu (8.5.12, 8.4.27, 8.3.36, 8.2.35 lub potwierdzony backport), zrestartować wszystkie workery, zaktualizować CMS i rozszerzenia.
- **Oczyścić lub zbudować od nowa:** Usunąć koparkę, mechanizmy restartu i tylne furtki, w razie wątpliwości zainstalować od nowa.
- **Sprawdzić skutki:** Czy można było odczytać dane dostępowe lub dane osobowe? Wtedy wyjaśnić kwestie ochrony danych i w razie potrzeby obowiązki zgłoszeniowe.

Proszę wcześnie zaangażować dostawcę hostingu lub chmury. Wielu dostawców prewencyjnie blokuje serwery z rzucającym się w oczy obciążeniem lub ruchem sieciowym. Kto sam poinformuje dostawcę i uzgodni postępowanie, łatwiej zachowa kontrolę nad momentem wyłączenia. Proszę przy tym zapytać także o protokoły sieciowe i dostępu dostawcy, ponieważ leżą poza Państwa serwerem i atakującemu trudno je zmienić.

Dla zarządu ważna jest krótka, uczciwa ocena: sama koparka kosztuje przede wszystkim czas obliczeniowy i wydajność. Właściwe pytanie brzmi jednak, co atakujący widział poza tym. Dopóki to nie zostanie wyjaśnione, incydentu nie należy uważać za zamknięty, nawet jeśli obciążenie znów jest normalne.

> **Ważne:**
> Koparka kryptowalut pokazuje, że na Państwa serwerze wykonano kod. Wszystkie dane dostępowe, które leżały na serwerze, proszę traktować jako ewentualnie wycieknięte i odnowić je po oczyszczeniu.

## Jak konkretnie pomaga PHP SOS?

- Oceniamy obciążenie i odróżniamy niegroźne przyczyny od obcych procesów.
- Zabezpieczamy procesy, pliki i połączenia, zanim koparka zostanie zakończona.
- Szukamy wszystkich mechanizmów restartu i tylnych furtek oraz oczyszczamy serwer w ramach [usuwania złośliwego oprogramowania](https://phpsos.de/pl/leistungen/malware-entfernung/) albo budujemy go od nowa.
- Zamykamy punkt wejścia, odnawiamy dostępy i konfigurujemy monitoring obciążenia, który wcześnie zgłasza nietypowe wzorce.


## Częste pytania

**Po czym poznać koparkę kryptowalut na moim serwerze?**  
Typowe jest stale wysokie obciążenie CPU, które nie pasuje do liczby odwiedzających ani zaplanowanych zadań. Dochodzą procesy o nieznanych lub niewinnie brzmiących nazwach, często pod użytkownikiem serwera WWW, oraz połączenia wychodzące do obcych adresów. Pojedyncza cecha nie jest jeszcze dowodem.

**Czy wystarczy zakończyć proces kopania?**  
Nie. Koparki są zwykle uruchamiane wciąż na nowo przez zadania cron, usługi systemowe lub webshell. Kto kończy tylko proces, często widzi go znów po krótkim czasie. Poza tym otwarty pozostaje punkt wejścia, przez który koparka trafiła na serwer.

**Czy koparka kryptowalut jest niegroźna, skoro tylko kradnie moc obliczeniową?**  
Nie. Kto mógł zainstalować koparkę, mógł wykonywać kod na serwerze. Zwykle osiągalne były wtedy także pliki konfiguracyjne, dane dostępowe i bazy danych. Koparka jest widocznym objawem włamania.

**Jakie niegroźne przyczyny ma duże obciążenie serwera?**  
Kopie zapasowe, obróbka obrazów, budowa indeksu wyszukiwania, agresywne crawlery lub wadliwe rozszerzenie również mogą zużywać dużo czasu obliczeniowego. Takie przyczyny zwykle da się przypisać do znanego procesu i harmonogramu. Jeśli obciążenie pozostaje niewyjaśnione, należy sprawdzić dokładniej.

## Źródła

- [BSI: wskazówki dotyczące incydentów bezpieczeństwa IT (Niemcy)](https://www.bsi.bund.de/)
- [php.net: komunikaty bezpieczeństwa](https://www.php.net/)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
