Le ver Ramen sous Linux Red Hat
Date : 12 Juillet 2005
Ce mois-ci un nouveau ver à été découvert sous l’environnement Linux. Ramen, dont c’est le nom, a la particularité de ne s’attaquer qu’à des systèmes Linux Red Hat 6.2 ou 7. Outre le fait de se propager à travers des vulnérabilités connues de ces deux systèmes, Ramen remplace tous les fichiers index.html situés sur le système et détruit le fichier /etc/hosts.deny
Vulnérabilités utilisées :
- Sur Red Hat 6.2 :
- Vulnérabilité dans wu-ftp : CERT-IST/AV-2000.149
- Vulnérabilité dans rpc.statd : CERT-IST/AV-2000.165
- Sur Red Hat 7 :
- Vulnérabilité dans LPRng : CERT-IST/AV-2000.229
Description :
Pour rendre cette description assez claire, nous partons du cas où le système a été infecté par Ramen et allons étudier la manière dont il s’exécute sur ce système et celle dont il se propage sur les autres machines à travers Internet , ceci afin de boucler la boucle.
Ainsi, une fois téléchargé sur un système Linux Red Hat vulnérable, Ramen (ramen.tgz) accomplit plusieurs actions afin d’effacer/remplacer certains fichiers du système et afin de se répliquer sur d’autres machines.
Une fois le script d’initialisation lancé (/usr/src/.poop/start.sh), le ver effectue les actions suivantes :
- Il remplace tous les fichiers " index.html " trouvés sur le système par un fichier personnalisé du même nom.
- Il efface le fichier de contrôle d’accès de TCP Wrapper /etc/hosts.deny .
- Il crée une entrée dans le fichier d’initialisation /etc/rc.d/rc.sysinit afin de se réactiver lors du démarrage du système.
- Il créer un fichier contenant l’adresse IP du système dans le répertoire /usr/src/.poop.
- Il copie un fichier " asp " dans le répertoire " /sbin "
- Si le système possède le fichier /etc/inetd.conf (Red Hat 6.2) :
- Il crée une entrée dans inetd.conf afin d’ouvrir un service relatif au programme " asp " précédemment cité sur le port 27374. Ce service agira par la suite comme un serveur ftp à partir duquel un client pourra venir télécharger le fichier contenant les exécutables du ver (contenu dans /tmp/ramen.tqz)
- Il envoie un signal (au sens Unix du terme) afin de recharger la configuration du démon inetd.
- Il désactive les services rpc.statd et rpc.rstatd.
- Il supprime également les fichiers relatifs à ces services (/sbin/rpc.statd et /usr/sbin/rpc.statd).
- Si le système ne possède pas de fichier /etc/inetd.conf (il utilise alors la nouvelle version de inetd, xinetd) (Red Hat 7)
- Il crée une entrée dans xinetd.d afin d’ouvrir un service relatif au programme " asp " précédemment cité sur le port 27374. Ce service agira par la suite comme un serveur ftp à partir duquel un client pourra venir télécharger le fichier contenant les exécutables du ver (contenu dans /tmp/ramen.tqz).
- Il envoie un signal (au sens Unix du terme) afin de recharger la configuration du démon xinetd.
- Il désactive le service lpd.
- Il supprime également le fichier relatif à ce service (/usr/sbin/lpd).
- Il ajoute dans le fichier de configuration du serveur ftp, /etc/ftpusers, les utilisateurs " ftp " et " anonymous " afin d’éviter que d’autres personnes se connectent au serveur ftp hacké.
- Il crée également 2 fichiers " .l " et " .w "
- Il scanne alors une adresse de classe B à la recherche des vulnérabilités décrites plus haut (wu-ftp, rpc.statd et lrpng)
Une fois qu’une machine vulnérable à l’une de ces 3 vulnérabilités est détectée, un programme d’exploitation est lancé contre cette dernière afin d’exécuter du code avec des privilèges root. Ce code effectuera alors les opérations suivantes :
- Il crée le répertoire /usr/src/.poop sur le système
- Le fichier ramen.tgz est copié de la machine " attaquante " via le service " asp " sur le port 27374 vers le répertoire /usr/src/.poop
- Il copie le fichier /usr/src/.poop/ramen.tgz dans le répertoire /tmp
- Il envoie un mail à 2 comptes (gb31337@yahoo.com et gb31337@hotmail.com) comportant l’adresse IP de la machine infectée
- Il décompresse le fichier /usr/src/.poop/ramen.tgz et exécute le script de démarrage start.sh
Protection :
Si vous utilisez des systèmes Linux Red Hat 6.2 ou 7, le CERT-IST vous recommande d’appliquer les correctifs des vulnérabilités décrites en introduction.
- Vulnérabilité dans wu-ftp : CERT-IST/AV-2000.149
- Vulnérabilité dans rpc.statd : CERT-IST/AV-2000.165
- Vulnérabilité dans LPRng : CERT-IST/AV-2000.229
Conclusion :
Le CERT-IST a décidé de ne pas émettre d’avis ou d’alerte concernant Ramen car ce ver s’appuie sur des vulnérabilités connues qui ont fait l’objet d’avis et de rappels tout au long des éditoriaux (Les attaques du mois) des récents bulletins mensuels.
Dès lors à première vue, Ramen ne devrait être que très peu rencontré dans la communauté puisqu’il s’appuie sur des vulnérabilités bien maîtrisées.
Cependant, de nombreuses infections ont été déjà signalées dans la communauté des CERTs, et dans la communauté du CERT-Renater notamment.
Cette situation démontre les efforts qu’il reste à accomplir dans le domaine de la sensibilisation des administrateurs systèmes/réseaux afin que ces derniers prennent conscience des dangers que représentent des systèmes non à jour en terme de correctifs de sécurité.
Ramen reste cependant un ver très dépendant du système d’exploitation, Red Hat 6.2 ou 7. Il est également assez bruyant car il laisse de nombreuses traces sur les systèmes infectés.
Le document de WhiteHats propose une analyse intéressante et très détaillée de ce ver.
Informations complémentaires :
- Avis d’ISS : http://xforce.iss.net/alerts/advise71.php
- Incident Note du CERT/CC : http://xforce.iss.net/alerts/advise71.php
- Document de White Hats : http://whitehats.com/print/library/worms/ramen/index.html