# Cryptominer sul server web: segni e come procedere

> Riconoscere un cryptominer sul server: verificare carico permanente, processi estranei, connessioni e meccanismi di riavvio, conservare le tracce e chiudere la causa.

Fonte: https://phpsos.de/it/blog/kryptominer-auf-dem-server/  
Stato: 25/10/2026  
Fornitore: PHP SOS, Assistenza di emergenza PHP e sicurezza dei server. Assistenza immediata su WhatsApp: https://wa.me/491736494914?text=Buongiorno%20PHP%20SOS%2C%20abbiamo%20bisogno%20di%20aiuto%20con%20il%20nostro%20server%20PHP.%20Azienda%3A%20%E2%80%A6%20Sito%20web%3A%20%E2%80%A6

**In breve:** un cryptominer sul server si manifesta di solito con carico di CPU permanentemente alto senza motivo riconoscibile, con processi estranei, spesso sotto l'utente del server web, e con connessioni in uscita verso destinazioni sconosciute. Non termini il processo in modo affrettato: conservi prima le tracce, cerchi i meccanismi che lo riavviano e chiuda il punto d'ingresso. Un miner significa che qualcuno ha potuto eseguire codice sul Suo server.

## Quando il conto del fornitore cloud è il primo avvertimento

Spesso un cryptominer non viene notato da un allarme di sicurezza, ma per caso. Il sito diventa lento, l'hoster segnala un superamento del tempo di calcolo, la ventola nel proprio data center gira in continuazione o il conto presso il fornitore cloud sale senza nuovi progetti. Per gli aggressori un miner è un modo semplice per trarre denaro da un server compromesso.

Fare mining significa usare la potenza di calcolo di un sistema altrui per generare criptovaluta. Il danno sembra contenuto, perché nessun dato viene cifrato. È un'illusione: chi può avviare un miner può anche leggere credenziali, copiare database e creare altre backdoor.

Dopo PHP2Shell la verifica vale particolarmente. Le vulnerabilità CVE-2026-109618 e CVE-2026-109619 consentono l'esecuzione di codice dannoso senza autenticazione. Non esistono Indicators of Compromise confermati, e un miner non è un segno specifico di queste vulnerabilità. Un carico elevato dovuto a processi sconosciuti rientra però tra i segni generali descritti in [Sono già compromesso?](https://phpsos.de/it/php2shell/bin-ich-gehackt-anzeichen/).

## Interpretare correttamente i segni di un cryptominer

Un carico elevato ha molte cause innocue. La tabella aiuta nel primo inquadramento:

| Osservazione | Possibile spiegazione innocua | Cosa verificare |
|---|---|---|
| CPU permanentemente vicina al pieno utilizzo | backup, elaborazione di immagini, creazione di indici | Il carico è uniforme anche di notte e nel fine settimana? |
| Processo con nome da servizio di sistema | raramente | Il file di programma si trova nel percorso di sistema atteso? |
| Processo sotto `www-data`, `apache` o `nginx` che non è PHP | difficilmente | Chi l'ha avviato, da quale cartella? |
| Programma in `/tmp`, `/var/tmp` o `/dev/shm` | difficilmente | Da quando esiste il file, a chi appartiene? |
| Connessione in uscita permanente verso una destinazione sconosciuta | monitoraggio, aggiornamenti | La destinazione appartiene a un servizio noto? |
| Il carico scende non appena Lei accede | raramente | Alcuni programmi dannosi si mettono in pausa quando girano strumenti di monitoraggio |

Più righe sono vere, più è probabile un ritrovamento. Che l'utente del server web avvii programmi estranei è di per sé un forte segnale d'allarme, come mostra l'articolo [Il server web avvia una shell](https://phpsos.de/it/blog/webserver-startet-shell/).

## Come verificare processi e connessioni

I comandi seguenti leggono soltanto. Annoti risultato e ora prima di modificare qualsiasi cosa:

```bash
# Processi per consumo di CPU, con utente, ora di avvio e comando completo
ps -eo pid,ppid,user,lstart,%cpu,%mem,args --sort=-%cpu | head -20

# File di programma e directory di lavoro di un processo sospetto (inserire il PID)
sudo ls -l /proc/PID/exe /proc/PID/cwd

# Connessioni in uscita con processo
sudo ss -tnp state established

# File eseguibili in cartelle temporanee
sudo find /tmp /var/tmp /dev/shm -type f -perm -u+x -ls 2>/dev/null
```

Se `/proc/PID/exe` rimanda a un file con l'aggiunta `(deleted)`, il programma è stato cancellato dopo l'avvio. È un tipico tentativo di mimetizzazione. Il processo continua a girare e, finché gira, il file di programma si può ancora conservare tramite `/proc`. Dovrebbe occuparsene qualcuno che sa trattare il software dannoso; non esegua mai il file.

Come esaminare in modo sistematico i processi oltre al miner lo descrive [Individuare processi sospetti sui server Linux](https://phpsos.de/it/blog/verdaechtige-prozesse-linux/).

## Perché il miner torna sempre

Molti gestori terminano il processo, si rallegrano del carico che scende e il giorno dopo constatano che tutto ricomincia. I miner vengono quasi sempre installati con un meccanismo di riavvio. Luoghi tipici sono:

1. **Cron job** dell'utente del server web o a livello di sistema, che ogni pochi minuti verificano se il miner gira e altrimenti lo scaricano di nuovo.
2. **Servizi di sistema** con nomi poco appariscenti, che partono all'avvio.
3. **Una webshell** nella directory web, attraverso la quale l'aggressore riavvia il miner in qualsiasi momento.
4. **Script di avvio modificati** o file di profilo degli utenti.
5. **Chiavi SSH estranee**, con cui l'aggressore accede di nuovo direttamente.

```bash
# Cron job dell'utente del server web e voci di sistema
sudo crontab -u www-data -l
ls -la /etc/cron.d /etc/cron.hourly /var/spool/cron 2>/dev/null

# Unit systemd modificate più di recente
sudo find /etc/systemd/system /lib/systemd/system -name '*.service' -newermt "2026-10-17" -ls
```

Solo quando tutti i meccanismi sono stati trovati il server resta tranquillo in modo permanente. Se l'aggressore aveva diritti di root, una ricostruzione su un sistema nuovo è di solito più affidabile della ricerca di ogni nascondiglio.

## L'ordine corretto dopo il ritrovamento

Un miner sembra una seccatura tecnica, ma è un incidente di sicurezza. Proceda quindi in modo ordinato:

- **Conservare:** copiare con somma di controllo elenco dei processi, connessioni, file sospetti e log prima di terminare qualcosa.
- **Contenere:** isolare il server o bloccare le connessioni in uscita, se è possibile senza perdita di dati.
- **Chiudere la causa:** portare PHP a uno stato corretto (8.5.12, 8.4.27, 8.3.36, 8.2.35 o backport confermato), riavviare tutti i worker, aggiornare CMS ed estensioni.
- **Bonificare o ricostruire:** rimuovere miner, meccanismi di riavvio e backdoor, nel dubbio reinstallare.
- **Verificare le conseguenze:** hanno potuto essere letti credenziali o dati personali? In tal caso chiarire la protezione dei dati ed eventualmente gli obblighi di notifica.

Coinvolga presto il Suo hoster o fornitore cloud. Molti fornitori bloccano in via precauzionale i server con carico o traffico di rete anomalo. Chi informa personalmente il fornitore e concorda la procedura mantiene più facilmente il controllo sul momento dello spegnimento. Chieda in quella sede anche i log di rete e di accesso del fornitore, perché si trovano fuori dal Suo server e sono difficili da modificare per un aggressore.

Per la direzione è importante un breve e onesto inquadramento: il miner in sé costa soprattutto tempo di calcolo e prestazioni. La vera domanda è però cos'altro l'aggressore abbia visto. Finché questo non è chiarito, l'incidente non dovrebbe considerarsi concluso, anche se il carico è tornato normale.

> **Importante:**
> Un cryptominer mostra che sul Suo server è stato eseguito del codice. Tratti tutte le credenziali che si trovavano sul server come possibilmente uscite e le rinnovi dopo la bonifica.

## Come aiuta concretamente PHP SOS?

- Inquadriamo il carico e distinguiamo tra cause innocue e processi estranei.
- Conserviamo processi, file e connessioni prima che il miner venga terminato.
- Cerchiamo tutti i meccanismi di riavvio e le backdoor e bonifichiamo il server nell'ambito della [rimozione del malware](https://phpsos.de/it/leistungen/malware-entfernung/) oppure lo ricostruiamo.
- Chiudiamo il punto d'ingresso, rinnoviamo gli accessi e configuriamo un monitoraggio del carico che segnali presto i modelli insoliti.


## Domande frequenti

**Da cosa riconosco un cryptominer sul mio server?**  
Tipico è un carico di CPU permanentemente alto che non corrisponde al numero di visitatori né alle attività pianificate. Si aggiungono processi con nomi sconosciuti o dal suono innocuo, spesso sotto l'utente del server web, e connessioni in uscita verso indirizzi estranei. Una singola caratteristica non è ancora una prova.

**Basta terminare il processo di mining?**  
No. I miner vengono di solito riavviati continuamente tramite cron job, servizi di sistema o una webshell. Chi termina solo il processo spesso lo rivede poco dopo. Inoltre resta aperto il punto d'ingresso attraverso cui il miner è arrivato sul server.

**Un cryptominer è innocuo perché ruba solo potenza di calcolo?**  
No. Chi ha potuto installare un miner ha potuto eseguire codice sul server. Di norma erano quindi raggiungibili anche file di configurazione, credenziali e database. Il miner è il sintomo visibile di un'intrusione.

**Quali cause innocue ha un carico elevato del server?**  
Anche backup, elaborazione di immagini, creazione di indici di ricerca, crawler aggressivi o un'estensione difettosa possono consumare molto tempo di calcolo. Queste cause si possono di solito ricondurre a un processo e a una pianificazione noti. Se il carico resta senza spiegazione, dovrebbe verificare più a fondo.

## Fonti

- [BSI: indicazioni sugli incidenti di sicurezza IT](https://www.bsi.bund.de/)
- [php.net: segnalazioni di sicurezza](https://www.php.net/)
- [OWASP Cheat Sheets](https://cheatsheetseries.owasp.org/)
