Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
controleintegrite [2009/09/08 14:43] root permier jet de portage |
controleintegrite [2012/02/05 16:43] (Version actuelle) |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== le controle d'integrite ====== | ||
+ | |||
+ | |||
cette page a été faite pour une conférence sur la sécurité au [[http://www.culte.org/ | culte]] le samedi 9 avril 2005. Elle est sous licence LGPL voir le site [[http://www.gnu.org]] pour plus de renseignements | cette page a été faite pour une conférence sur la sécurité au [[http://www.culte.org/ | 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 | 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 ====== | + | ===== 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 : | Je vais essayer d'illustrer les différents composants de la sécurité informatique par comparaison avec ceux d'une maison : | ||
- | ===== défense passive ===== | + | ==== défense passive ==== |
^ maison ^ ordinateur ^ | ^ maison ^ ordinateur ^ | ||
Ligne 14: | Ligne 18: | ||
- | ===== défense active ===== | + | ==== défense active ==== |
^ maison ^ ordinateur ^ | ^ maison ^ ordinateur ^ | ||
Ligne 21: | Ligne 25: | ||
ids = Intrusion Detection System (en français : système de détection d'intrusion) | ids = Intrusion Detection System (en français : système de détection d'intrusion) | ||
- | ===== analyse ===== | + | ==== analyse ==== |
^ maison ^ ordinateur ^ | ^ maison ^ ordinateur ^ | ||
| inventaire,empreintes | analyse des logs,contrôle d'intégrité | | | 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 [[http://www.rpm.org | 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 : | ||
+ | |||
+ | * [[http://www.tripwire.com/|tripwire]]: probablement un des plus anciens. C'était un logiciel propriétaire, mais la licence est devenue GPL sous linux. | ||
+ | * [[http://www.cs.tut.fi/~rammer/aide.html|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@free.fr|eric gerbier]] 2009/09/14 11:09// | ||
+ | {{tag>securite tripwire afick}} |