Attention, cet article a plus d'une année d'ancienneté. Il est possible que les informations présentées ne soient plus à jour, spécialement dans le cadre d'un article technique.
Bonjour à tous,
Aujourd’hui, petit article à part, ce n’est pas une procédure.
On va voir comment nous avons découvert un crypto-malware (un malware qui mine des cryptos monnaies) sur une machine et comment nous avons réussi à le bloquer.
Oui, Linux aussi a des virus (et attendez de découvrir ce qui traine sur Mac Os 🙂 )
Remerciement
Un grand merci à Jérémy qui m’a grandement aidé pour trouver la source de mon souci, parce qu’au début ce n’était pas simple.
La situation
Un serveur CentOs 6.9, pas à jour avec un cPanel préinstallé par OVH (on croirait presque le début d’un film d’horreur déjà) et le tout sans maintenance.
Ce n’est pas un serveur que nous avons installé et le client n’a donc jamais pris le contrat de l’agence web qui avait conçu et mis en place tout cela.
On connait ce serveur, car on a déjà dû le dépanner quelques fois pour des soucis d’espaces disques et on savait que cela n’avait pas été fait dans les règles de l’art à la base, rien de plus.
Le problème
Le problème de base, c’est que le serveur avait une énorme consommation de mémoire et de cpu, et l’OOM Killer était en mode pyscho comme vous pouvez le constater :
Avec un HTOP on voyait bien que le processus ksdm prenait tout le cpu et toute la mémoire.
Chose bizarre, KSMD, le daemon pour le Kernel Samepage Merging (un mécanisme d’économie de ram en environnement partagé) ne tournait pas avec l’utilisateur root, du tout …
Après vérification, encore plus bizarre, il existe en tant que module pour selinux, sauf que celui est désactivé et nous n’avons ni ksm, ni ksmtuned …
Mais c’est quoi ce service ?
Un service système pas lancé en root ? Sous le nom d’un service qui ne devrait pas être présent sur la machine ? C’est que ce n’est pas le service que cela prétend être.
Une vérification avec lsof renvoi ce résultat plutôt surprenant :
Pourquoi diable est-ce qu’un processus de gestion de la mémoire va sur le réseau, en http, sur un serveur kimsufi ? La réponse est simple, voici le script que ça allait chercher :
Tout cela pour lancer ce joli mineur de Bitcoin sur la machine, bien planqué.
Le blocage du crypto-malware et le mot de la fin.
J’ai supprimé tout le bordel laissé par ce crypto-malware, bloquer les tâches crons pour l’utilisateur incriminé, viré le shell et enfin mis à jour le serveur.
Ce qu’il faut retenir, c’est que si vous ne planifiez pas la maintenance de votre matériel, il le ferra pour vous.
La prochaine étape sera le changement de serveur et la réinstallation complète par quelqu’un qui fera une vraie infogérance pour leur site web, CentOs 6.9 étant de toute façon en fin de vie.
La porte d’entrée ? Il y avait un PHPMyAdmin ouvert au public pas à jour, je n’ai pas cherché plus loin 🙂