Aujourd’hui je publie un article très rapide d’actualité. En effet, il y a deux jours, l’antivirus DrWeb a publié une note concernant un malware s’attaquant aux Raspberry Pi exclusivement et ayant pour but de miner de la crypto-monnaie derrière le dos des utilisateurs de Raspberry Pi. Dans cet article je vais donc expliquer rapidement le fonctionnement de ce malware et donner les quelques conseils pour s’assurer de ne pas être touché.
Un malware qui mine du bitcoin sur Raspberry Pi
Le malware detecté par DrWeb est en réalité un cheval de Troie connu sous le nom de Linux.MulDrop.14. Derrière ce nom barbare se cache un script extrêmement simple qui va avoir pour but de miner de la crypto-monnaie à l’insu de l’utilisateur. Ainsi il va miner du bitcoin sur votre raspberry.
Miner de la crypto-monnaie avec un Raspberry Pi ?
Vous vous demandez peut-être deux choses : premièrement, qu’est ce que c’est le minage de crypto-monnaie et secondement, si vous connaissez la réponse à la première question, vous vous demandez l’intérêt de le faire avec un Raspberry.
La crypto-monnaie qu’est-ce que c’est ?
Pour répondre à la première question commençons par définir la crypto-monnaie. je ne vais pas ré-inventer la roue, selon wikipédia :
Une crypto-monnaie ou monnaie cryptographique est une monnaie électronique sur un réseau informatiquepair à pair ou décentralisée basé sur les principes de la cryptographie pour valider les transactions et émettre la monnaie elle-même1,2. Aujourd’hui, toutes les crypto-monnaies sont des monnaies alternatives, car elles n’ont de cours légal dans aucun pays. Les crypto-monnaies utilisent un système de preuve de travail pour les protéger des contrefaçons électroniques. De nombreuses crypto-monnaies ont été développées mais la plupart sont similaires et dérivent de la première implémentation complète : le Bitcoin
En d’autres termes, une crypto-monnaie est une monnaie qui existe sur un réseau informatique et qui a une certaine valeur en argent réel. Avec cette monnaie il est possible d’acheter des choses sur internet et même dans la vraie vie. La crypto-monnaie la plus connue est le Bitcoin qui, à titre d’exemple, vaut à l’heure où j’écris cet article 2460€ l’unité, ce qui n’est pas rien.
Il existe deux moyens d’obtenir de la crypto-monnaie : en acheter où en miner.
En miner revient à créer de l’argent. Le terme est très bien choisi, à la manière d’un mineur qui va creuser à la mine dans l’espoir de récupérer des métaux rares, on va utiliser des ordinateurs pour travailler sur le réseau dans le but de créer de l’argent. En gros, on va faire effectuer des calculs aux ordinateurs du réseau. Ces calculs ont pour but de confirmer des transactions d’argent virtuel. Lorsque les transactions sont validées, on paye les ordinateurs qui ont validé la transaction et ainsi on va créer de l’argent virtuel.
Les calculs en question sont extrêmement compliqués et demandent des heures de calcul à un grand nombre d’ordinateurs afin de valider une seule transaction. La complexité permet d’éviter les contrefaçons.
Pourquoi utiliser un Raspberry Pi pour miner de la crypto monnaie ?
Si vous avez lu ce que j’ai écrit au dessus, vous avez du remarquer que j’ai insister sur le fait que les calculs sont très complexes et qu’ils demandent pour leur résolution, un nombre important d’ordinateurs sur-puissants. Alors pourquoi utiliser des machines aussi faibles que des Raspberry Pi pour miner ?
Si vous souhaitez miner tranquillement chez vous, vous pouvez oublier le Raspberry, ça n’a pas d’intérêt, ça vous coûtera plus cher en électricité que ça vous rapportera. Par contre si vous pouvez utiliser gratuitement plusieurs milliers de Raspberry Pi, là ça peut avoir un intérêt : c’est de l’argent gratuit !
C’est là qu’intervient le malware dont on parle aujourd’hui. Son but est d’infecter un maximum de Raspberry afin de faire du minage de masse.
Linux.MulDrop.14 : le malware qui mine du bitcoin sur Raspberry à votre insu
Comment Linux.MulDrop.14 fonctionne ?
Linux.MulDrop.14 fonctionne de la façon suivante : il va rechercher sur la toile les Raspberry dont le port SSH par défaut est ouvert (à savoir le port 22). A partir de là il va essayer de se loguer avec l’identifiant et le mot de passe par défaut (pi/raspberry). S’il échoue, il laisse tomber. S’il réussi il va s’exécuter sur la machine et effectuer les actions suivantes :
- Modification du mot de passe par défaut (pour qu’on le laisse faire son travail tranquillement)
- Exécution du script de minage
- Duplication afin de contaminer d’autres machines (il recherche d’autres Raspberry à infecter)
Voilà, c’est tout. Rien de bien compliqué et pourtant ça fonctionne à merveille.
Comment se protéger de Linux.MulDrop.14
Si vous avez suivi comment fonctionne le malware, vous avez certainement déjà trouvé la solution au problème.
Pour vous protéger il vous suffit de modifier le mot de passe par défaut.
Il existe cependant des solutions encore plus efficaces :
- Supprimer l’utilisateur pi et en créer un nouveau
- Désactiver le service SSH si vous ne vous en servez pas
- Changer le port par défaut de SSH
- Protéger le service SSH de son Raspberry
Je vais présenter ci-dessous chacune de ces solutions. Sachez que vous pouvez aussi trouver la plupart de ces solutions dans un autre de mes articles où j’explique comment configurer Raspbian.
Modifier le mot de passe par défaut du Raspberry Pi
Pour modifier le mot de passe del’utilisateur Pi, rien de plus simple, il vous suffit de vous connecter en tant que pi et de taper dans un terminal la commande suivante :
passwd
Si vous voulez générer un bon mot de passe solide, vous pouvez utiliser la commande suivante :
pwgen
Supprimer l’utilisateur pi
Même après avoir changé le mot de passe de l’utilisateur pi, je vous conseille fortement de supprimer l’utilisateur pi et d’en créer un nouveau.
Pour commencer on va donc créer notre nouvel utilisateur :
sudo adduser Nouvel_Utilisateur
On ajoute ce nouvel utilisateur à la liste des utilisateurs autorisés à utiliser le sudo :
sudo adduser Nouvel_Utilisateur sudo
Maintenant on se déconnecte du compte pi (CTRL+d) et on se connecte en tant que Nouvel_Utilisateur et on supprime le compte pi :
sudo userdel –remove pi
sudo groupdel pi
Désactiver le service SSH s’il n’est pas nécessaire
Si vous n’utilisez pas ce service, il est vivement recommandé de désactiver le ssh du raspberry. On est jamais à l’abris d’une faille de sécurité et si le SSH n’est pas activé, aucune chance que quelqu’un se connecte à votre Raspberry depuis l’extérieur.
Dans un terminal on lance la commande suivante :
raspi-config
On se déplace dans les options avancées, puis SSH et là on le désactive.
Changer le port par défaut du SSH
On va aller modifier le fichier de config du service SSH, le fichier est le suivant : /etc/ssh/sshd_config
A la ligne port on va changer le port par défaut du ssh (port 22) par un port de notre choix.
Vous pouvez par exemple choisir le port 222.
Ensuite on redémarre le service :
sudo services ssh restart
Il faut savoir que changer le port du SSH réduit de manière importante le nombre d’attaques contre le SSH sur une machine. Les robots sont stupides et vont au plus simple, si le port par défaut est fermé, le robot considère que le SSH est désactivé, il ne va pas chercher plus loin pour savoir s’il y a un autre port ouvert pour le SSH.
A noter que pour vous connecter en SSH sur votre machine, il faudra dorénavant modifier légèrement la commande de la façon suivante :
ssh -p222 utilisateur@raspberry
Protéger le SSH de son Raspberry
Dans un article précédent j’ai présenté fail2ban, un moyen efficace de protéger l’accès SSH de votre Raspberry contre le brute-force. Ce n’est pas le cas ici mais c’est une sécurité supplémentaire qui ne coûte rien et qui pourrait vous protéger contre d’éventuelles attaques un peu plus poussées que celle du malware présenté ici.
Si fail2ban vous intéresse, n’hésitez pas à lire mon tutoriel qui va vous expliquer comment le configurer rapidement.
Voilà, on a fait le tour sur ce méchant malware qui veut se faire de l’argent sur votre dos ! Ne vous laissez pas faire et protéger votre Raspberry !