En bref : un mineur de cryptomonnaie sur le serveur se manifeste le plus souvent par une charge CPU durablement élevée sans raison apparente, par des processus étrangers, souvent sous l'utilisateur du serveur web, et par des connexions sortantes vers des destinations inconnues. N'arrêtez pas le processus trop vite : sauvegardez d'abord les traces, cherchez les mécanismes qui le redémarrent et fermez la porte d'entrée. Un mineur signifie que quelqu'un a pu exécuter du code sur votre serveur.
Quand la facture du fournisseur cloud est le premier avertissement
Souvent, un mineur de cryptomonnaie ne se remarque pas par une alerte de sécurité, mais en passant. Le site devient poussif, l'hébergeur signale un dépassement du temps de calcul, le ventilateur du centre de données interne tourne en permanence, ou la facturation du fournisseur cloud augmente sans nouveaux projets. Pour les attaquants, un mineur est un moyen simple de transformer un serveur compromis en argent.
Miner, c'est utiliser la puissance de calcul d'un système étranger pour produire de la cryptomonnaie. Le dommage paraît limité, car aucune donnée n'est chiffrée. Cela trompe : qui peut démarrer un mineur peut aussi lire des identifiants, copier des bases de données et créer d'autres portes dérobées.
Après PHP2Shell, la vérification vaut particulièrement la peine. Les failles CVE-2026-109618 et CVE-2026-109619 permettent l'exécution de code malveillant sans authentification. Il n'existe pas d'indicateurs de compromission (Indicators of Compromise) confirmés, et un mineur n'est pas un signe spécifique de ces failles. Une forte charge due à des processus inconnus fait toutefois partie des signes généraux décrits sous Suis-je déjà compromis ?.
Bien interpréter les signes d'un mineur de cryptomonnaie
Une forte charge a de nombreuses causes inoffensives. Le tableau aide pour un premier classement :
| Observation | Explication bénigne possible | Ce que vous vérifiez |
|---|---|---|
| CPU durablement proche de la pleine charge | sauvegarde, traitement d'images, construction d'index | La charge est-elle aussi régulière la nuit et le week-end ? |
| Processus portant un nom de service système | rarement | Le fichier programme se trouve-t-il dans le chemin système attendu ? |
Processus sous www-data, apache ou nginx qui n'est pas PHP |
à peine | Qui l'a lancé, depuis quel dossier ? |
Programme dans /tmp, /var/tmp ou /dev/shm |
à peine | Depuis quand le fichier existe-t-il, à qui appartient-il ? |
| Connexion sortante durable vers une destination inconnue | surveillance, mises à jour | La destination appartient-elle à un service connu ? |
| La charge baisse dès que vous vous connectez | rarement | Certains logiciels malveillants se mettent en pause quand des outils de surveillance tournent |
Plus de lignes correspondent, plus une découverte est probable. Que l'utilisateur du serveur web lance des programmes étrangers est en soi un signal d'alerte fort, comme le montre l'article Le serveur web lance un shell.
Comment vérifier processus et connexions
Les commandes suivantes ne font que lire. Notez le résultat et l'heure avant de modifier quoi que ce soit :
# Processus par consommation de CPU, avec utilisateur, heure de démarrage et commande complète
ps -eo pid,ppid,user,lstart,%cpu,%mem,args --sort=-%cpu | head -20
# Fichier programme et répertoire de travail d'un processus suspect (insérer le PID)
sudo ls -l /proc/PID/exe /proc/PID/cwd
# Connexions sortantes avec processus
sudo ss -tnp state established
# Fichiers exécutables dans des dossiers temporaires
sudo find /tmp /var/tmp /dev/shm -type f -perm -u+x -ls 2>/dev/null
Si /proc/PID/exe pointe vers un fichier avec la mention (deleted), le programme a été supprimé après son démarrage. C'est une tentative de camouflage typique. Le processus continue de tourner, et tant qu'il tourne, le fichier programme peut encore être sauvegardé via /proc. Cela devrait être pris en charge par quelqu'un qui sait manipuler des logiciels malveillants ; n'exécutez jamais le fichier.
La façon de passer systématiquement en revue les processus au-delà du mineur est décrite dans Trouver les processus suspects sur les serveurs Linux.
Pourquoi le mineur revient toujours
De nombreux exploitants arrêtent le processus, se réjouissent de la baisse de charge et constatent le lendemain que tout recommence. Les mineurs sont presque toujours installés avec un mécanisme de redémarrage. Les emplacements typiques sont :
- Des tâches cron de l'utilisateur du serveur web ou à l'échelle du système, qui vérifient toutes les quelques minutes si le mineur tourne et le rechargent sinon.
- Des services système aux noms discrets, qui démarrent au boot.
- Un webshell dans le répertoire web, par lequel l'attaquant redémarre le mineur à tout moment.
- Des scripts de démarrage ou fichiers de profil d'utilisateurs modifiés.
- Des clés SSH étrangères avec lesquelles l'attaquant se reconnecte directement.
# Tâches cron de l'utilisateur du serveur web et entrées à l'échelle du système
sudo crontab -u www-data -l
ls -la /etc/cron.d /etc/cron.hourly /var/spool/cron 2>/dev/null
# Unités systemd modifiées en dernier
sudo find /etc/systemd/system /lib/systemd/system -name '*.service' -newermt "2026-10-17" -ls
Ce n'est que lorsque tous les mécanismes sont trouvés que le serveur reste durablement calme. Si l'attaquant avait les droits root, une reconstruction sur un système neuf est le plus souvent plus fiable que la recherche de chaque cachette.
Le bon ordre après la découverte
Un mineur ressemble à une nuisance technique, mais c'est un incident de sécurité. Procédez donc de façon ordonnée :
- Sauvegarder : copier la liste des processus, les connexions, les fichiers suspects et les journaux avec somme de contrôle avant que quoi que ce soit ne soit arrêté.
- Contenir : isoler le serveur ou bloquer les connexions sortantes si c'est possible sans perte de données.
- Fermer la cause : amener PHP à un état corrigé (8.5.12, 8.4.27, 8.3.36, 8.2.35 ou rétroportage confirmé), redémarrer tous les workers, mettre à jour le CMS et les extensions.
- Nettoyer ou reconstruire : supprimer le mineur, les mécanismes de redémarrage et les portes dérobées, réinstaller en cas de doute.
- Vérifier les conséquences : des identifiants ou des données à caractère personnel ont-ils pu être lus ? Clarifier alors la protection des données et, le cas échéant, les obligations de notification.
Associez tôt votre hébergeur ou fournisseur cloud. De nombreux fournisseurs bloquent à titre préventif les serveurs à la charge ou au trafic réseau remarquables. Qui informe lui-même le fournisseur et s'accorde sur la marche à suivre garde plus facilement la maîtrise du moment de l'arrêt. Demandez aussi les journaux réseau et d'accès du fournisseur, car ils se trouvent en dehors de votre serveur et sont difficiles à modifier pour un attaquant.
Pour la direction, un bref classement honnête est important : le mineur lui-même coûte surtout du temps de calcul et de la performance. La vraie question est toutefois de savoir ce que l'attaquant a vu en plus. Tant que ce n'est pas clarifié, l'incident ne devrait pas être considéré comme clos, même si la charge est redevenue normale.
Un mineur de cryptomonnaie montre que du code a été exécuté sur votre serveur. Traitez tous les identifiants qui se trouvaient sur le serveur comme éventuellement exfiltrés, et renouvelez-les après le nettoyage.
Comment PHP SOS aide-t-il concrètement ?
- Nous situons la charge et distinguons les causes inoffensives des processus étrangers.
- Nous sauvegardons processus, fichiers et connexions avant que le mineur soit arrêté.
- Nous cherchons tous les mécanismes de redémarrage et portes dérobées et nettoyons le serveur dans le cadre de la suppression de logiciels malveillants ou le reconstruisons.
- Nous fermons la porte d'entrée, renouvelons les accès et mettons en place une surveillance de la charge qui signale tôt les schémas inhabituels.
Questions fréquentes
Comment reconnaître un mineur de cryptomonnaie sur mon serveur ?
Une charge CPU durablement élevée qui ne correspond ni au nombre de visiteurs ni à des tâches planifiées est typique. S'y ajoutent des processus aux noms inconnus ou à consonance anodine, souvent sous l'utilisateur du serveur web, et des connexions sortantes vers des adresses étrangères. Une caractéristique isolée n'est pas encore une preuve.
Suffit-il d'arrêter le processus de minage ?
Non. Les mineurs sont le plus souvent relancés sans cesse via des tâches cron, des services système ou un webshell. Qui se contente d'arrêter le processus le revoit souvent peu après. De plus, la porte d'entrée par laquelle le mineur est arrivé sur le serveur reste ouverte.
Un mineur de cryptomonnaie est-il inoffensif parce qu'il ne fait que voler de la puissance de calcul ?
Non. Qui a pu installer un mineur a pu exécuter du code sur le serveur. Les fichiers de configuration, les identifiants et les bases de données étaient donc en règle générale aussi accessibles. Le mineur est le symptôme visible d'une intrusion.
Quelles causes inoffensives une forte charge du serveur peut-elle avoir ?
Les sauvegardes, le traitement d'images, la construction d'un index de recherche, des robots d'exploration agressifs ou une extension défectueuse peuvent aussi consommer beaucoup de temps de calcul. Ces causes se rattachent le plus souvent à un processus et à une planification connus. Si la charge reste inexpliquée, vous devriez vérifier de plus près.