Intégrité d’un système Linux

Dans le cadre de mes études, nous avons vu à plusieurs reprises l’importance de l’intégrité d’un système. Cette intégrité se caractérise par le fait de contrôler qu’il y ai aucunes altérations des données que ce soit volontaire, accidentelle ou autre. L’intégrité des données comprend quatre éléments principaux :

– Intégralité
– Précision
– Exactitude / Authenticité
– Validité

Cependant, comment arriver à surveiller de façon structurée que tel ou tel fichier n’a pas été modifié sur un de nos serveurs.

Prenons l’exemple d’un pirate ayant pris la main sur votre serveur Web Apache, ce dernier va surement modifié le fichier /etc/passwd afin de passer root avec ou sans mot de passe dès lors qu’il en aura besoin.

La première question à se poser est : est-ce que je consulte ce fichier tous les jours ?

La réponse est bien évidemment non. Du coup le temps passe, et le système a vite le temps d’être compromis sans que l’on s’en rende compte.

De plus le méchant pirate ne va surement pas modifier que ce fichier…

Alors nous vient une seconde question : comment effectuer une vérification automatique d’une partie ou de tout mon système entier ?

C’est la que je vais vous présenter l’outil : AIDE (Advanced Intrusion Detection Environment).

Cet outil permet de surveiller l’intégrité d’un système d’exploitation en comparant l’ensemble des fichiers avec une base de données de fichier préalablement créé.

Installation (Debian) :

#apt-get install aide

Il est nécessaire, après l’installation, de créer la base de données d’empreintes des fichiers que l’on souhaite surveiller.

Pour explication, si une personne modifie le fichier /etc/shadow, alors l’empreinte sera modifiée également. Le programme AIDE nous avertira automatiquement d’une telle modification.

Je dois ajouté le fait que la base de données peut également être modifiée ! ! ! et la, c’est le drame 🙂

Il est donc recommandé, par mesure de sécurité, de placer cette base de données sur un CD, clé USB, ou tout autre support en lecture seule afin d’éviter toutes altérations de cette base.

Configuration :

Le fichier de configuration aide.conf, spécifie quels sont les fichiers et les éléments à surveiller.

Exemple pour la ligne : /sbin p+u+md5

Cela indique que l’on demande à AIDE de vérifier les droits (p), le propriétaire (u) et la somme Md5 des fichiers de l’arborescence /sbin.

Le MD5 permet de calculer un hash sur vos fichiers. Si ces fichiers sont modifiés ne serait-ce que d’un bit, le hash deviendra complètement différent.

Création de la base de données :

#aideinit

Si votre fichier de configuration se situe à un autre endroit, vous pouvez le préciser comme ceci :

#aide --init -c /etc/aide/aide.conf

A ce moment, vous pouvez aller prendre un petit café car cela risque de prendre une bonne dizaine de minutes.




ZzzzzzzZZZZZZZzzzzzzz


Vous avez bien dorm… euh il était bon votre café ? 🙂

Continuons…

Notre BDD est maintenant créée, il nous faut renommer celle-ci afin qu’elle serve de référence :

#mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db

Vérification de l’intégrité :

On lance la commande suivante afin de vérifier l’intégrité des fichiers indiquées dans le fichiers de configuration :

#aide --check

Si votre fichier de configuration se situe à un autre endroit, vous pouvez le préciser comme ceci :

#aide --check -c /etc/aide/aide.conf

Et là, comme par magie, il vous liste les fichiers qui ont été modifiés ^_^

Il est tout à fait possible ensuite d’effectuer cette action toutes les heures et de vous faire parvenir un mail dans le cas ou une altération a été détectée.


2 Responses to "Intégrité d’un système Linux"

Laissez un commentaire