J’ai cru que ma box faisait une dépression. C’était mon serveur qui minait du Monero.
Une fois n’est pas coutume : aujourd’hui, je ne vais pas vous parler de LLM, ni de mon dernier projet d’écriture, ni même de cette idée brillante que j’ai eue à 2h du matin (qui, par définition, n’aurait jamais dû exister).
Aujourd’hui, je vous raconte une mésaventure un peu plus technique — avec un point commun avec les films d’horreur : au début, tout va bien, puis quelqu’un fait "un bruit dans la cave", et on se dit "c’est sûrement le vent".
Sauf que là, le vent avait installé un botnet.
Acte I — Les timeouts, ou l’art de blâmer son routeur
Il y a quelques jours, je travaille tranquillement. Je consulte de la doc, je navigue, je fais ma vie de personne moderne qui vit dans un navigateur. Et là : certains sites deviennent pénibles à atteindre.
Pas "un peu lents", non.
Des timeouts, des temps d’attente. Parfois 10 secondes, parfois plus. Le genre de latence qui vous laisse le temps :
- de remettre en question votre carrière,
- de prendre un café,
- de lire un message de votre banque,
- et de vous dire "tiens, je vais peut-être faire du sport".
Évidemment, mon cerveau cherche une explication simple. Une explication "box-friendly".
Donc je me dis :
"C’est ma box."
Ou mon routeur. Ça fait des mois que je n’ai pas fait le rituel sacré du "je redémarre et je prie".
Parce que, soyons honnêtes : en réseau, je suis de l’école "si ça marche, ne touche rien". Et "si ça ne marche pas, redémarre". C’est une philosophie de vie, pas une stratégie IT.
Je redémarre donc la box. Puis le routeur. Puis moi intérieurement.
Ça repart. Je recommence à bosser.
Je suis justement sur de la doc d’une librairie (PageIndex, très sympa pour une autre forme de RAG mais j'y reviendrai peut-être :D) — le genre de lecture qui rend attractif un manuel de montage IKEA — quand les ralentissements reviennent.
Je change de page : 15 secondes avant d’accéder à la ressource.
Et c’est là que je remarque quelque chose d’étrange.
Acte II — Le serveur qui ventile comme si on lui avait annoncé la fin du monde
À la fin de l’attente… mon petit serveur (celui qui héberge mon site) se met à ventiler fort.
Pas "un peu", hein.
Le genre de ventilation qui vous fait comprendre que la machine est en train de vivre un moment cardio qu’elle n’a pas demandé.
Et là, dans ma tête, un calcul simple :
-
Page lente
-
Et pile à ce moment-là, le serveur souffle
➡️ Il se passe quelque chose entre mon clic et le CPU.
Je doute sincèrement d’avoir soudainement déclenché un afflux massif de visiteurs.
J’aimerais. Mais non. Mes articles sont peut-être de qualité, mais pas "29 000 internautes simultanés, tous en 4K, depuis l’hémisphère nord" non plus.
La coïncidence est trop propre.
Je regarde vite fait des logs. Je fais semblant d’être quelqu’un qui sait ce qu’il fait. Et je me rends compte que… ben… je n’en trouve pas vraiment comme je m’y attends. Ou alors je ne sais pas les lire efficacement. Ce qui est une manière polie de dire : je suis un peu perdu.
Et comme je suis quelqu’un de raisonnable (c’est faux, mais j’essaie), je fais la meilleure chose possible :
Je vais voir une amie — ma voisine — qui, elle, est spécialiste en cybersécurité.
Dans ce genre de moment, vous réalisez que dans la vie, il y a deux types de personnes :
- Celles qui disent "ça doit être la box"
- Celles qui disent "ton serveur est compromis" en moins de 15 minutes
Je lui demande : "Tu peux jeter un œil ?"
Elle dit oui.
Et au bout de 15 minutes, elle revient.
Avec cette phrase qui transforme instantanément votre journée en épisode de série :
"Ton serveur a été compromis."
Acte III — Plot twist : j’hébergeais un malware, un botnet et un mineur de crypto (comme un Airbnb, mais en pire)
Le diagnostic est à la fois clair, violent, et un peu humiliant.
Sur mon serveur, on trouve :
- un cryptominer (type XMRig, pour miner du Monero)
- une variante de botnet Mirai (pour des attaques DDoS sortantes)
- et globalement, une ambiance "colocation non déclarée"
Je vous traduis en français non-tech :
-
Un cryptominer, c’est un programme qui utilise votre machine pour produire de la cryptomonnaie… pour quelqu’un d’autre.
Vous payez l’électricité, vous fournissez le CPU, eux encaissent. C’est du capitalisme, mais sans la partie "contrat".
-
Un botnet, c’est quand votre serveur devient un petit soldat dans une armée de machines piratées. Son job : envoyer du trafic pour attaquer d’autres services (DDoS).
Vous pensiez héberger un site. Vous hébergiez une carrière militaire.
Et évidemment, tout ça explique parfaitement :
- les lenteurs
- la ventilation
- la charge CPU
- et le fait que mon serveur ait visiblement pris des stéroïdes sans me prévenir
Ce qui s’est passé, en simple
Le rapport d’incident est très clair : le serveur était compromis depuis au minimum le 5 décembre 2025. Donc environ deux mois.
Il y a eu deux campagnes distinctes :
- Depuis le 5 décembre 2025 : un mineur Monero (XMRig) a tourné, et a miné activement pendant plusieurs jours.
- Depuis début février 2026 : une variante de Mirai a été déposée et utilisée pour des attaques DDoS sortantes.
En gros :
J’ai eu une première "occupation", puis une deuxième vague qui a transformé l’appartement en base arrière.
Par où ils sont entrés ?
La réponse courte : par internet.
La réponse longue : par des services exposés avec des failles + un manque de rigueur de ma part.
Et là, je préfère être honnête : j’ai fait un choix volontaire, que beaucoup font (et que beaucoup regrettent un jour).
J’ai choisi de gérer moi-même toute mon infrastructure :
- backend
- frontend
- reverse proxy
- déploiement
- "sécurité" (entre gros guillemets)
- le tout sur une machine chez moi, derrière un routeur, avec filtrage… "à ma façon"
Pourquoi ? Parce que c’était une manière d’apprendre.
Parce que j’aime comprendre ce que je fais.
Et parce que les solutions "clé en main" ont un coût mensuel qui, dans mon cerveau, se traduit immédiatement par : "ça va, je peux le faire moi-même."
Spoiler : oui, je peux.
Mais non, pas sans discipline.
Le point central : les mises à jour
Le rapport montre notamment un gros problème : certains composants n’étaient pas assez à jour.
Et c’est là que la leçon est simple et brutale :
Quand vous auto-hébergez, vous n’êtes pas seulement développeur.
Vous êtes aussi l’équipe sécu.
Et l’équipe sécu ne prend pas de week-end.
Dans mon cas, une partie de la compromission la plus récente est liée à une exploitation visant Next.js Server Actions, avec un pattern d’attaque très net dans les logs (scan, reconnaissance, puis exploitation, puis escalade avec des centaines d’IP).
Et en parallèle, le serveur exposait aussi une surface d’attaque importante via Strapi CMS, dont l’admin était accessible publiquement, avec des faiblesses majeures de configuration (inscription publique ouverte, secrets sensibles dans un .env, absence de firewall, etc.).
Traduction non-tech :
J’avais laissé des portes ouvertes, et certaines portes donnaient directement sur la salle des coffres.
Comment on le voit ? Les signes qui ne trompent pas
Le rapport montre des indicateurs assez parlants :
- 974 Go transmis en 12 jours, avec un ratio d’émission monstrueux (beaucoup plus de données sortantes que d’entrantes) : typique d’un serveur qui envoie des attaques.
- CPU très élevé, notamment une part importante liée au réseau (softirq), ce qui colle avec du trafic DDoS.
- Processus louches qui se déguisent en processus système.
- Fichiers déposés dans /tmp et /dev/shm (classique pour des malwares qui veulent être discrets et rapides).
- Scripts de persistance (un petit programme qui relance le malware toutes les 60 secondes… parce que la patience n’est pas une valeur cardinale chez les attaquants).
Et surtout : pas d’accès SSH suspect, pas d’injection dans le contenu éditorial.
Donc ce n’était pas "quelqu’un a deviné mon mot de passe".
C’était "quelqu’un a exploité une vulnérabilité applicative".
Ce que j’ai fait (aka : 5 à 6 heures de sport non-consenti)
La bonne nouvelle, c’est qu’on a pu :
- tuer les processus
- supprimer les fichiers malveillants
- enlever la persistance
- nettoyer le serveur
Résultat après nettoyage :
- CPU redescendu
- plus de processus botnet
- plus de connexions C2 actives
- machine redevenue… une machine
La mauvaise nouvelle, c’est que "nettoyer" n’est pas "sécuriser".
Parce que si vous ne changez pas les causes, vous faites juste du ménage dans une maison sans porte.
Et donc, ensuite, il y a la phase la moins fun : la rigueur.
Ce qui est (re)devenu non négociable
- Firewall (vraiment)
- services qui n’ont rien à faire sur internet : fermés
- panneaux admin : derrière restriction IP / authentification supplémentaire / VPN
- secrets (JWT, tokens, clés) : régénérés
- mises à jour : prioritaires, surtout quand elles concernent des vulnérabilités exploitées activement
- logs : activés, lisibles, conservés
En clair : arrêter de jouer à "DevOps du dimanche".
La grande leçon : le "coût" n’est pas toujours où on croit
Pendant longtemps, j’ai vu les solutions managées comme un coût "inutile".
Un abonnement de plus. Un prélèvement de plus.
Mais après cet épisode, j’ai découvert un coût bien plus concret :
- 5 à 6 heures à résoudre l’incident
- du stress
- du temps perdu
- une dette technique de sécurité
- et la sensation très agréable d’avoir été "le maillon faible" (spoiler : c’est rarement agréable)
Donc oui, je suis en train de reconsidérer certaines choses.
Pas parce que je renonce à apprendre.
Mais parce que j’ai réalisé que :
L’auto-hébergement, ce n’est pas seulement "je déploie mon site".
C’est "j’assure une permanence de sécurité".
Et ça, soit vous aimez ça… soit vous le payez.
Dans tous les cas, vous le payez.
Ce que je retiens (et que je partage, si ça peut éviter une soirée à quelqu’un)
-
Les lenteurs réseau peuvent être un symptôme serveur.
Si votre box va bien mais que votre serveur crie, écoutez votre serveur.
-
Un serveur qui ventile, c’est parfois un serveur qui travaille… pour quelqu’un d’autre.
-
Exposer des panneaux d’admin sur internet, c’est inviter le monde entier à tester votre chance.
Et le monde entier a du temps.
-
Pas de firewall, c’est une déclaration philosophique.
Une déclaration qui dit : "Je crois en l’humanité."
Spoiler : l’humanité est un botnet.
-
Les mises à jour de sécurité ne sont pas une suggestion.
Ce sont des deadlines.
-
Avoir un ami en cybersécurité, c’est sous-coté.
Mais ne le sollicitez pas uniquement quand ça brûle : faites des audits avant.
Conclusion — Je ne pensais pas faire du DDoS, et pourtant
Je voulais juste écrire, coder, publier tranquillement.
Et sans m’en rendre compte, j’ai hébergé :
- un mineur de Monero,
- un botnet Mirai,
- et une petite leçon d’humilité.
Le plus ironique, c’est que je m’imaginais "apprendre" à gérer mon infra.
Et j’ai effectivement appris. Mais pas comme prévu.
Donc si vous êtes comme moi — à aimer bidouiller, héberger, bricoler "pour comprendre" — faites-le. C’est formateur.
Mais faites-le avec une checklist mentale simple :
- patch
- logs
- firewall
- admin lock
- secrets safe
- surface minimale
Sinon, votre serveur finira peut-être, lui aussi, par se lancer dans une carrière alternative.
Et je vous garantis que "nœud botnet" sur un CV, ça passe rarement.