Surveillance de l’integrite de son systeme Linux

août 1st, 2007
|

Cet article explique comment surveiller l’intégrité d’un système d’exploitation Linux, afin d’être prévenu rapidement d’une intrusion sur une machine.

Pour bien comprendre l’intérêt de la surveillance de l’intégrité de son système, je vais prendre plusieurs exemples d’actions effectuées par un pirate informatique, lorsque ce dernier a réussi à s’introduire sur une machine, par le biais d’une faille de sécurité par exemple.

  • Exemple de modification du système
  • Pour chacun de ces cas, une surveillance de l’intégrité permettra de détecter très rapidement, les mouvements de l’intrus.

    Cas n°1 : modification du fichier /etc/passwd

    Notre pirate a réussi, par une méthode ou une autre, à accéder en écriture, au fichier /etc/passwd. Afin de pouvoir passer en root sur la machine, il y a ajouté la ligne suivante:

    1
    system::0:0:system:/:/bin/bash


    On notera ici, qu’il a simplement créé un utilisateur nommé système, sans mot de passe, qui a le même ID que root. L’intrus pourra ainsi, a tout moment passer root sur la machine, via un simple compte utilisateur, en utilisant la commande su – system

    Ce type de backdoor est assez difficile à repérer, étant donné que l’on ne consulte pas le fichier /etc/passwd tous les jours et qu’en plus, le nom system pourrait paraître normal.

    Cas n°2 : le bit SUID

    Là encore, notre intrus à obtenu les droits root et il voudrait être sêr de pouvoir revenir sous cette identité, à sa guise et même après un changement du mot de passe de ce dernier par l’administrateur. Pour se faire, il pourra positionner un bit SUID, sur les commandes qu’il désire, afin de pouvoir les exécuter ensuite en tant que root:

    1
    2
    3
    4
    5
    6
    7
    8
    $ cat /etc/shadow
    cat: /etc/shadow: Permission denied
    $ su -
    Password:
    # chmod a+s /bin/cat
    # exit
    $ cat /etc/shadow
    root:xxxxx:13449:0:99999:7:::

    Encore une fois, pour repérer ce genre de manipulation, cela reste difficile, car il faudra régulièrement regarder les bons droits sur les fichiers (avec la commande find / -perm +4000 par exemple).

  • La solution
  • Pour éviter ce genre d’action, on pourra mettre en place un logiciel comme Tripwire ou encore AIDE sur la machine. Ce dernier a pour but de s’assurer l’intégrité des répertoires et des fichiers importants en identifiant tous changements apportés à ces derniers.

    Pour ma part, je n’ai pas trouvé de version gratuite de Tripwire et je me suis donc rabattu sur AIDE (Advanced Intrusion Detection Environment). Voici la commande à lancer pour l’installer sur une Debian:

    1
    apt-get install aide

    On initialisera ensuite la base de données (environ 15 minutes de traitement) :

    1
    aide --init

    On devra ensuite placer la base de données dans un lieu sur (media accessible quand lecture, DVD par exemple). Pour faire simple ici, je vais laisser la base dans le dossier où elle se trouve initialement, en la renommant afin d’être exploitable par la commande aide:

    1
    mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz

    On pourra ainsi vérifier l’intégrité du système via la commande suivante (environ 10 minutes de traitement pour 160Go de disque):

    1
    aide --check

    Dans notre cas ici, j’avais pris le soin de construire une base, avant la mis en pratique des différents cas cités plus haut. Et voici ce que donne la commande aide –check après vérification:

    1
    2
    3
    4
    ...
    changed: /etc/passwd
    changed: /bin/cat
    ...

    Les modifications système ont donc bien été détectées. On pourra bien sûr rendre ce genre de procédure automatique, en ajoutant cette commande à une crontab et lui faisant retourner le résultat par mail.

    Dans le cas d’une mise à jour du système, ou de changement de configuration, l’administrateur pourra a tout moment mettre lui même AIDE à jour, en utilisant le paramètre update:

    1
    aide --update

  • Conclusion
  • On pourra aller beaucoup plus loin dans la configuration AIDE, en modifiant le fichier /etc/aide.conf. On pourra par exemple, rajouter la surveillance des fichiers de son site web, afin d’être prévenu rapidement en cas de « défaçage « .

      Aller plus loin

    * Site officiel de AIDE
    * Manuel de AIDE

    Tags:

    One Comment:

    1. bravo c’est tres bien

      et encore merci !!

    Leave a comment: