[Tech] Internet, cette jungle putride

Tout le monde trouve ça cool internet, ou au moins joli. C’est vrai que c’est joli le web, mais c’est comme quand on voit un beau gratte-ciel d’acier et de verre : l’observateur extérieur ne voit pas les centaines de kilomètres de canalisation sales et peuplées de cafards qui sont pourtant nécessaires à l’existence du building.

Eh bien internet c’est pareil, c’est sacrément hostile. Il suffit d’avoir déjà ouvert les logs d’un serveur web pour s’en rendre compte. Si on ouvre une machine sur internet, il suffit de quelques minutes pour recevoir des requêtes hostiles qui cherchent des failles connues pour se frayer un chemin et compromettre votre machine. Pas besoin d’être indexé par google : ces programmes scannent toutes les ip existantes et envoient systématiquement leurs requêtes.

Dans mes logs, un exemple d’ip qui scanne des dizaines de directory, peut être dans la quête d’une faille, peut être pour autre chose…

Evidemment, c’est un peu con comme technique et dans l’immense majorité des cas, ils suffit d’avoir ses softs plus ou moins à jour pour s’en prémunir. Mais les rapaces ne s’arrêtent jamais de scanner et ce n’est qu’une question de temps avant de se faire niquer.

Je suis une victime

Et justement, je me suis fait niquer il y a peu. Tout a commencé le 18 janvier quand j’ai reçu un mail de Hostinger, mon hebergeur. Ils proposent un très bon service mais sur ce coup là, ils ont été nuls à chier.

Merci pour la clarté de l’explication

Forcément, je leur demande des précisions supplémentaires et conteste l’accusation. Le résultat est clair, je le suis fait pirater, c’est de ma faute et c’est à moi d’y remédier tout seul.



Boonjour,

J'espère que vous allez bien.

J'ai vérifié que la raison de la suspension de votre plan d'hébergement est due à un abus.

Votre serveur VPS est piraté et infecté par un virus / cheval de Troie (SPAM, attaques DOS provenant du serveur).

Le VPS est infecté par un malware qui peut être vu à partir de la liste des processus. PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 1805695 www-data 20 0 513744 265436 884 S 99.7 25.3 17592:37 /dev/shm/kdevtmpfsi

Veuillez scanner le VPS avec un logiciel antivirus.

Nous recommandons clamav

Notre société s'efforce d'assurer la sécurité de l'Internet et la meilleure expérience utilisateur, de sorte que toute action abusive peut entraîner une suspension. Vous pouvez trouver cela dans nos conditions de service.

Je ne peux annuler la suspension de votre compte d'hébergement que si vous acceptez de supprimer tout le contenu signalé auparavant et de ne plus le mettre en ligne. N'oubliez pas que nous ne pouvons annuler votre hébergement que deux fois, la troisième suspension étant définitive.

N'hésitez pas à écrire de nouveau en cas de besoin.

Cordialement,

Bon, en vrai je comprend leur politique de gestion des attaques cyber, l’intérêt d’avoir un VPS est de pouvoir tout gérer, y compris la sécurité. Si ils contrôlaient la sécurité de mon VPS, je n’aurais plus à 100% la main dessus.

Toujours est-il que maintenant il faut se retrousser les manches pour comprendre un peu plus. Alors qu’est-ce qu’on a ?

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 
1805695 www-data 20 0 513744 265436 884 S 99.7 25.3 17592:37 /dev/shm/kdevtmpfsi

Ce copié/collé dégueulasse donne en fait pas mal d’infos sur mon problème. On a affaire à un programme appelé kdevtmpfsi qui pompe 99.7% de mon CPU.

En tapant kdevtmpfsi dans google startpage, le nom kinsing revient tout le temps. Kinsing est un malware qui existe depuis 2019 et qui a une fonctionnalité principale : installer le cryptominer kdevtmpfsi. Le but est d’ainsi d’utiliser la capacité de calcul de la machine compromise pour miner de la crypto et renvoyer cette douce thune au pirate.

Des cryptominers en pleine action

Kinsing a évolué au fil du temps. C’est normal : à chaque fois qu’une faille exploitée par le malware est réparée, il faut passer ailleurs, c’est le jeu du chat et la souris.

Le fonctionnement de Kinsing

Les malwares ont à peu près toujours les mêmes étapes de fonctionnement, ce sont les étapes du framework MitreATT&CK. Appliqué à mon cas, ça donne ça :

  1. Accès initial : probablement grâce à la faille log4j dans Apache2, qui a fait très mal au mois de décembre dernier. A ce moment là, le malware à trouvé une porte d’entrée dans ma machine.
  2. Execution : entrer ne suffit pas pour pouvoir exécuter du code. Ca dépend des droits de l’utilisateur que le malware contrôle. Chez moi, Kinsing n’était pas administrateur, mais il avait le droit de créer des tâches récurrentes, ce qui lui permettait de télécharger et d’exécuter n’importe quel programme, c’est à ce moment là qu’il installe son cryptominer.
  3. Persistence : ok, maintenant qu’il est entré, notre petit malware veut s’installer confortablement. Kinsing fait en sorte de redémarrer automatiquement en cas de reboot (systemctl) et de se réinstaller automatiquement si je vire le fichier du cryptominer (crontab).
  4. Defense Evasion : maintenant qu’il est bien installé, Kinsing doit faire un peu de ménage pour être plus discret. Il supprime ses traces de passages des logs, de l’historique des lignes de commande, il détecte et désactive les outils de sécurité installés, etc.

Et voilà, on a un joli cryptominer qui fonctionne bien.

Bon en fait, je n’ai pas trouvé grand chose sur mon serveur pour mon enquête, à cause du fait qu’il efface ses traces et que j’ai fait tourné un antivirus, qui a supprimer les fichiers malicieux. Heureusement, des chercheurs en cyber ont faits de belles analyses qui m’ont permit d’écrire cet article. Liens dans les sources.

Un autre problème est qu’il me manque encore plein d’infos en fait. Comment ils sortaient les cryptos de mon serveur ? Est-ce qu’ils ont installés d’autres backdoor sur ma machine ? Est-ce qu’un vrai humain est venu une seule fois sur ma machine ou était-ce 100% automatisé ? Est-ce que l’antivirus à bien viré toutes les traces de cette saloperie ?

Des commandes utiles (ubuntu) pour mon investigation :
- liste des processus : top
- ports utilisés : netstat -tlpm
- afficher la crontab de www-data : crontab -u www-data -l

Remédiation

L’antivirus a bien désactivé le cryptominer, aucun problème. Mais ma machine a été compromise, et dans le principe même, je ne peux plus lui faire confiance. Je pense que l’accès à un serveur est précieux et que les attaquants peuvent avoir mis en place d’autres backdoor pour garder la main sur ma machine, possiblement pour un futur usage (un autre cryptominer, du spam de mail, etc.).

Le plus simple est donc la purification par le feu : je reset mon VPS 🙂

Sources

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *