sept
27
Posted on 27-09-2010
Filed Under (Sécurité) by admin

Dans cet article nous allons voir comment mettre en place certaines mesures permettant d’être alerté en cas de hack de serveurs.

Le principe est simple, nous faisons une image du serveur à un instant t, et vérifions le reste du temps qu’aucun changement ne soit fait.

Imaginons que votre système de fichiers /usr change, du jour au lendemain, sans intervention de votre part. Vous êtes peut être victime d’un hack.

La commande mtree, qui permet de créer ou vérifier l’arborescence d’un répertoire, fait l’objet de cet article.

Figer le système à un instant t

Nous ne parlons pas de snapshot au niveau disque, mais seulement d’enregistrer dans un fichier texte la liste des fichiers et des répertoires présent sur notre serveur.

Ce fichier contiendra des informations sur les fichiers/répertoires, comme par exemple le propriétaire, le groupe, les droits, les flags, etc… le tout hacher en md5 et sha1.

Dressons la liste des fichiers et des répertoires vivant de notre serveur :

$ mkdir /root/spec
$ cat /root/spec/exclude.list
# root filesystem
./dev
./mnt
./proc
./root
./tmp

# var filesystem
./log
./tmp

# usr filesystem
./home
./obj
./src

Passons au listing des fichiers et des répertoires de notre serveur :

$ mtree -c -k md5digest,sha1digest -x -X /root/spec/exclude.list -p / > /root/spec/root.spec
$ mtree -c -k md5digest,sha1digest -x -X /root/spec/exclude.list -p /usr > /root/spec/usr.spec
$ mtree -c -k md5digest,sha1digest -x -X /root/spec/exclude.list -p /var > /root/spec/var.spec

-c : Afficher le résultat sur la sortie standard
-k : Ajouter des options (par défaut : flags, gid, mode, nlink, size, link, time, et uid)
-x : Ne pas descendre dans un point de montage
-X : Fichier d’exclusions
-p : Répertoire à vérifier

Le scan journalier à la recherche d’éventuelle modification, se fera à partir des fichiers ci-dessus qu’il nous faut conserver précieusement.

$ chmod 0500 /root/spec
$ chmod 0400 /root/spec/*

Si vous êtes vraiment paranoïaque :

$ chflags -R schg /root/spec
$ ls -lao /root/spec
total 46454
dr-x------  2 root  wheel  schg      512 Sep 26 21:14 .
drwx------  5 root  wheel  -         512 Sep 26 18:41 ..
-r--------  1 root  wheel  schg       35 Sep 26 20:56 exclude.list
-r--------  1 root  wheel  schg 23918730 Sep 26 21:06 root.spec
-r--------  1 root  wheel  schg 23333747 Sep 26 21:23 usr.spec
-r--------  1 root  wheel  schg   241933 Sep 26 21:14 var.spec

Vérification journalière

Pour montrer à quel point la commande mtree est utile et efficace, mettons un peu de désordre dans le répertoire /etc.

$ for i in `seq 1 3`
> do
> dd if=/dev/zero of=/etc/music$i.mp3 bs=1024k count=2
> done
$ ls -l /etc/music*
-rw-r--r--  1 root  wheel  2097152 Sep 26 22:10 /etc/music1.mp3
-rw-r--r--  1 root  wheel  2097152 Sep 26 22:10 /etc/music2.mp3
-rw-r--r--  1 root  wheel  2097152 Sep 26 22:10 /etc/music3.mp3

Nous sommes d’accord, les fichiers musicaux n’ont rien à faire dans le répertoire de configuration du système.
Voyons ce que la commande mtree remonte pour le système de fichiers racine.

$ mtree -K md5digest,sha1digest -x -X /root/spec/exclude.list -f /root/spec/root.spec -p /
etc/music1.mp3 extra
etc/music2.mp3 extra
etc/music3.mp3 extra

-f : Fichier contenant une arborescence mtree

Une option sympatique de la commande mtree permet de garder une correspondance entre le fichier mtree et les fichiers sur disque.

$ mtree -K md5digest,sha1digest -x -r -U -X /root/spec/exclude.list -f /root/spec/root.spec -p /
etc/music1.mp3 extra, removed
etc/music2.mp3 extra, removed
etc/music3.mp3 extra, removed

-r : Les fichiers présent sur disque mais absent du fichier mtree sont supprimés
-U : Les fichiers absent sur disque mais présent dans le fichier mtree sont créés

Avec cette vérification journalière, qui peut être exécutée par script, nous gardons un oeil sur ce qui se passe sur notre serveur.

Si vous avez des remarques ou juste pour dire un petit « merci », laissez un commentaire.

(0) Comments    Read More   
Poster un commentaire
Votre pseudo:
Votre e-mail:
Votre site:
Votre commentaire: