Rootkit sous Linux â?? Comprendre comment ca fonctionne

Samedi, 27 août 2005


(Soyez le premier!)  Votes | Average: 0 out of 5 Votes | Average: 0 out of 5 Votes | Average: 0 out of 5 Votes | Average: 0 out of 5 Votes | Average: 0 out of 5
Loading ... Loading ...
Catégorie: Actualités
par Webmaster
Nombre de lectures: 217 fois
gnl

Masquage de présence dans le système

La situation dans Unix rappelle fortement celle de Windows.
L'attaquant installe le rootkit sur l'ordinateur une fois qu'il a
obtenu les accès privilèges (accès root).
Les accès root,
indispensables pour installer la majorité des rootkit, sont accessibles
via des vulnérabilités bien connues si le malfaiteur a accès au système
avec les mĂŞmes droits qu'un utilisateur ordinaire.
Dans ce cas-l? , il
peut utiliser un exploit local ou un utilitaire pour forcer les bases
protégées par mots de passe. Si le malfaiteur ne dispose pas des droits
nécessaires pour s'infiltrer dans le système, alors il peut utiliser un
exploit ? distance ou, par exemple, un sniffeur de claviers pour
obtenir les mots de passe.
L'interception de mots de passe peut ĂŞtre
utilisée pour de nombreux services (ftp, telnet etc.) du fait que ces
derniers transmettent les mots de passe sur le réseau non crypté.

En fonction de ces capacités, le rootkit peut contenir divers programmes malicieux trojan-DDoS, backdoor
et autres qui s'installent sur la machine compromise, et attendent de
la part de l'attaquant un ordre ? exécuter. De plus, les rootkit
peuvent contenir un patch qui colmate la brèche dans le système afin
d'éviter l'infiltration d'un attaquant tiers.

Tout comme dans Windows, Unix fait face ? des rootkit aussi bien au niveau des applications qu'au niveau du noyau.

Voyons les rootkits en mode utilisateur. En général, les rootkit se
composent de versions de programmes ordinaires 'infecté par trojan'
masquant la présence de ses composants dans le système, et de backdoor
assurant un passage secret dans le système. Comme exemple de rootkit en
mode utilisateur, on trouve lkr, trOn, ark et autres.

Prenons tr0n comme exemple de rootkit en mode utilisateur. Pour
cacher sa présence dans le système, ce rootkit exécute une série
d'actions. Au moment de son installation, il stoppe syslogd-demon, puis
remplace par ses Trojans les utilitaires de systèmes suivants: du,
find, ifconfig, login, ls, netstat, ps, top, sz. De plus, une version
Trojan de syslogd-demon est rajoutée dans le système. Enfin, un
sniffeur est demarré en tâche de fond, le lancement des daemons
telnetd, rsh, finger est rajouté dans inetd.conf, inetd est redémarré
et syslogd est démarré ? nouveau.

D'ordinaire, tr0n se situe dans /usr/src/.puta mais grâce au composant ls déj? installé, le catalogue est invisible.

Voyons maintenant le rootkit au niveau du noyau. Les rootkit de ce
type possèdent toutes les caractéristiques du type décrit précédemment,
mais ? un niveau plus bas. Les rootkit en mode utilisateur doivent
modifier chaque fichier binaire alors que les rootkit en mode noyau
doivent modifier uniquement le noyau, ce qui augmente considérablement
la « qualitĂ© » de camouflage de l'information.

Il existe plusieurs moyens d'introduire des rootkit dans le système noyau:

  1. l'utilisation de LKM, le noyau Linux (comme dans beaucoup
    d'autres systèmes d'exploitation) permet de télécharger des modules (ou
    des pilotes systèmes ) "? la volée", ce qui permet au malfaiteur de
    modifier les requêtes système du noyau, et de donner des informations
    erronées (par exemple une liste rectifiée de fichiers). Il est possible
    d'empêcher de telles attaques en recompilant le noyau système sans le
    LKM, mais cette méthode présente un défaut - il est indispensable
    d'inclure tous les pilotes nécessaires dans le noyau;
  2. une
    entrée dans /dev/kmem qui accorde l'accès dans la zone mémoire occupée
    par le noyau. L'entrée réécrit le noyau '? la volée'. De cette façon,
    pour modifier le noyau, il faut simplement trouver une place en
    mémoire, mais ce n'est pas un problème insoluble. Certaines
    modifications peuvent être faites, interdisant d'écrire directement
    dans /dev/kmem. Cela est réalisable par mmap;
  3. l'infection de
    modules existants; se distingue de la première méthode du fait que le
    rootkit ne contient pas de module ? part et utilise l'infiltration dans
    les modules existants. L'adoption d'une telle méthode permet de faire
    le rootkit stable lors du redémarrage, en infectant quelques modules
    qui seront téléchargés de toute façon (par exemple, le driver du
    système fichiers).

La détection de Rootkit

Pour détecter des rootkit, il n'y a malheureusement pas de solutions
miracles, mais les conseils exposés ci-dessous permettent de détecter
la majorité des rootkit actuels:

  1. l'observation d'un comportement anormal des fichiers,
    utilisation des ressources du réseau, démarrage de tâches selon un
    horaire défini et au moment du démarrage, gestion des comptes
    utilisateurs;
  2. l'utilisation des utilitaires suivants, qui
    aident ? mettre en évidence la présence de rootkit dans le système:
    Saint Jude, Chrootkit, RkScan, Carbonite, Kstat, Rootkithunter,
    Tripware, Samhain etc.

Laisser un commentaire

Vous devez vous identifier pour laisser un commentaire.