Outils pour utilisateurs

Outils du site


controleintegrite

le controle d'integrite

cette page a été faite pour une conférence sur la sécurité au culte le samedi 9 avril 2005. Elle est sous licence LGPL voir le site http://www.gnu.org pour plus de renseignements Vous pouvez redistribuer et modifier ce document selon les termes de la Licence Publique Générale GNU (LGPL) version 2 ou toute autre version ultérieure

rappels sur la sécurité informatique

Je vais essayer d'illustrer les différents composants de la sécurité informatique par comparaison avec ceux d'une maison :

défense passive

maison ordinateur
fermer les portes,fenêtres,volets fermer les ports réseau
une bonne serrure mots de passe difficiles, protocoles cryptes

défense active

maison ordinateur
alarme anti-virus, ids

ids = Intrusion Detection System (en français : système de détection d'intrusion)

analyse

maison ordinateur
inventaire,empreintes analyse des logs,contrôle d'intégrité

généralités sur le contrôle d'intégrité

son but

Le but est de connaître ce qui a été modifié sur une machine, ce qui va permettre de :

  • détecter les intrusions : pourquoi la commande bash a-t-elle changé de taille ?
  • corriger une configuration : depuis hier ce logiciel ne se lance plus, qu'est-ce qui a changé ?
  • faire des rapports d'installation : pour savoir ce qu'un logiciel installe exactement

que surveiller

Les propriétés des fichiers :

  • taille
  • droits
  • propriétaire/groupe
  • date de modification, d'accès
  • checksum (md5, sha1) : à calculer pour détecter des modifications

comment ça marche

Le logiciel travaille par comparaison avec un état précédant, un peu comme le jeu des 7 erreurs entre 2 photos. Il stocke cet état dans une base de donnée.

préconisation

Lancement régulier du logiciel. La meilleure solution est un lancement journalier par cron.

remarque

Le système de package rpm offre un système équivalent pour

  • vérifier l'intégrité d'un package fichier : rpm -K
  • vérifier l'intégrité d'un package installé par rapport à son “image” initiale : rpm -V

mais il ne détecteras pas un nouveau fichier installé sans rpm.

Les limites du contrôle d'intégrité

la configuration

Des fichiers sont modifiés en permanence, pour ne pas être submergé de fausses alarmes, on ne peut pas surveiller tous les fichiers, ni tous les paramètres. Il y a donc un travail important de configuration initiale.

l'état initial

Après la configuration, il faut fabriquer le premier “état”. Il faut que celui-ci soit absolument sûr (machine non infectée), puisque on va se baser dessus.

les mises à jour

Une des préconisation de la sécurité informatique, c'est de mettre régulièrement sa machine à jour avec les correctifs de sécurité logiciels :

  • attention à ne prendre que des correctifs surs : si possible signé par gpg, et contrôler l'intégrité du correctif.
  • Toute mise a jour va générer de gros rapports, qu'il va falloir contrôler pour voir si ça ne masque pas une intrusion
  • il faut pouvoir mettre à jour la base de données du controle d'intégrité

intrusion "forte"

lors d'une intrusion, l'attaquant va chercher a camoufler ses traces (logs , …). l'attaquant peut aussi chercher si des logiciels d'intrusions sont installés et tenter de modifier leur fonctionnement :

base attaquée

il peut essayer de modifier la base de référence, afin que la comparaison ne montre rien. solutions :

  • cryptage de la base de référence
  • base de référence sur un support en lecture seule, ou externe, montée seulement pour les comparaisons

logiciel attaqué

il peut modifier le logiciel lui-même. solution :

  • auto-controle du logiciel
  • logiciel sur un support externe amovible

noyau attaqué

il peut modifier le système d'exploitation : libc, module noyau … solution :

  • lancer le logiciel depuis un système propre, par exemple un livecd (knoppix …)

tous ces problèmes militent pour un lancement manuel, en plus du lancement par cron.

Panorama des logiciels existants

Il y a maintenant un panorama très étendu d'outils :

  • tripwire: probablement un des plus anciens. C'était un logiciel propriétaire, mais la licence est devenue GPL sous linux.
  • aide : un clone de tripwire, écrit en C, pour offrir une alternative libre au logiciel commercial sur linux/unix
  • afick : un clone libre et portable, pour fonctionner sur toute plate-forme (Unix, linux, Windows), avec des interfaces graphiques conviviales, dont je suis l'auteur

eric gerbier 2009/09/14 11:09

controleintegrite.txt · Dernière modification: 2012/02/05 16:43 (modification externe)