Comment savoir si son serveur Linux a été piraté : 10 signes qui ne trompent pas
La plupart des piratages de serveur ne sont pas spectaculaires. Pas de message de rançon sur la page d'accueil. L'attaquant entre, installe un mineur de cryptomonnaie ou un relais de spam, se ménage un accès de retour, et reste discret pendant des semaines.
La bonne nouvelle : une intrusion laisse des traces. Voici les dix signes à vérifier, avec les commandes à lancer.
1. Le CPU tourne à plein sans raison
Le mineur de cryptomonnaie est la charge la plus fréquente sur un serveur piraté. Il apparaît comme un processus à 90-100 % de CPU en permanence, souvent avec un nom anodin comme kworkerds ou [kthreadd].
top -o %CPU
ps aux --sort=-%cpu | head
Cherchez les processus inconnus, lancés par www-data, nobody ou un utilisateur censé être inactif.
2. Des processus ou des exécutables dans /tmp
Les attaquants adorent les dossiers accessibles en écriture à tous. Des exécutables dans /tmp, /var/tmp ou /dev/shm doivent alerter.
ls -la /tmp /var/tmp /dev/shm
find /tmp /var/tmp /dev/shm -type f -perm -u+x
3. Nouveaux utilisateurs ou nouveaux droits sudo
grep -E ':0:' /etc/passwd # un compte UID 0 autre que root ?
getent group sudo
ls -la /etc/sudoers.d/
Un nouveau compte, ou un compte existant ajouté à sudo, signifie que quelqu'un a prévu de revenir.
4. Des clés SSH que vous n'avez pas ajoutées
C'est la porte dérobée préférée : une ligne de plus dans authorized_keys.
cat ~/.ssh/authorized_keys
sudo find / -name authorized_keys 2>/dev/null
Comparez chaque clé avec la liste des personnes qui doivent avoir accès.
5. Des tâches cron qui retéléchargent quelque chose
La persistance passe souvent par une tâche planifiée qui récupère un script toutes les quelques minutes.
crontab -l
sudo ls -la /etc/cron.* /var/spool/cron/crontabs/
Méfiez-vous des curl ou wget envoyés dans sh, et des longues chaînes en base64.
6. Des connexions réussies inexpliquées
Les tentatives échouées sont normales sur Internet. Une connexion réussie depuis une IP inconnue ne l'est pas.
last -a | head -30
sudo grep "Accepted" /var/log/auth.log | tail -30
7. Des connexions sortantes vers des destinations étranges
Un mineur parle à un pool de minage, un bot à son serveur de commande.
sudo ss -tunap | grep ESTAB
Les connexions sur des ports comme 3333, 4444, 5555 ou 14444 méritent un examen.
8. Le disque se remplit sans raison
File d'attente de spam, données volées en attente d'envoi, ou journal inondé par une attaque : un saut brutal de l'occupation du disque doit être investigué.
df -h
sudo du -xh / --max-depth=2 2>/dev/null | sort -h | tail -20
9. Des fichiers système modifiés
Des binaires modifiés dans /bin ou /usr/bin, ou un /etc/passwd altéré, indiquent un rootkit ou une porte dérobée. Sur Debian et Ubuntu, on peut comparer les fichiers des paquets à leurs sommes de contrôle :
sudo dpkg --verify
10. Votre hébergeur ou une liste noire vous prévient avant vous
Un avertissement d'abus de l'hébergeur, des e-mails rejetés parce que votre IP est sur liste noire, ou une alerte dans Google Search Console. Quand cela arrive, l'intrusion date souvent de plusieurs semaines.
Vous avez trouvé quelque chose ? La première heure
- Ne redémarrez pas. La mémoire et les processus en cours sont des preuves.
- Isolez : limitez le pare-feu à votre propre IP.
- Changez les secrets : clés SSH, mots de passe de base de données, jetons d'API.
- Trouvez la porte d'entrée : framework web obsolète, mot de passe faible, interface d'administration exposée.
- Reconstruisez en cas de doute. Un serveur dont le compte root a été compromis ne peut plus être considéré comme sûr.
Faire ces vérifications chaque jour, automatiquement
Lancer ces dix contrôles une fois à la main est utile. Les lancer chaque jour, c'est ce qui permet vraiment de détecter une intrusion tôt.
C'est le rôle de FounderMode : surveiller les processus et le CPU, les fichiers sensibles (comptes, sudo, clés SSH, cron), les connexions et les versions vulnérables, puis envoyer chaque matin un rapport clair sur Slack ou par e-mail. L'installation tient en une commande. Essai gratuit 14 jours.