OSSEC : Surveillance du système et réponse active
Le dernier post était axé sur la surveillance de certaines données via auditd.
Et bien cette fois, câblons plus efficace, et englobons dans un joli package surveillance du système ET réponse active ! C’est le rôle d’OSSEC.
OSSEC
OSSEC est un HIDS (Host-based Intrusion Detection System). Il s’agit en quelque sorte d’une sonde qui travaille sur une machine en particulier et analyse les éléments propres à cette machine. OSSEC dispose de fonctionnalités adaptées à son utilisation, comme l’analyse de logs, la détection de rootkit, les alertes en temps réel et les réponses actives.
OSSEC fonctionne sur la plupart des OS communément rencontrés : Windows, Linux, Mac OS, HP-UX, solaris, … Il s’appuie sur un schéma client / Serveur :
- d’une part le Manager, qui met à disposition les éléments permettant d’évaluer les clients et stocke les informations renvoyées par ces clients
- d’autre part un agent, qui se charge de récupérer les éléments nécessaires aux analyses et pousse le tout au Manager
Cependant, OSSEC peut très bien se passer de l’agent, par exemple pour le cas où les systèmes à monitorer seraient plus de l’ordre des équipements réseaux. Ce mode ne sera pas testé ici, mais sachez qu’il est tout-à-fait envisageable.
Installation et configuration en standalone
Comme d’habitude, l’installation se fera depuis les sources, non pas que l’outil ne soit pas disponible sur les dépôts, mais il se peut qu’il date un peu par rapport à la fraiche mouture du site référent.
L’installation est on ne peut plus simple : ./install
$ wget http://www.ossec.net/files/ossec-hids-2.6.tar.gz $ tar zxvf ossec-hids-2.6.tar.gz $ cd ossec-hids-2.6 $ sudo "./install.sh " Password: ** Pour une installation en français, choisissez [fr] (en/br/cn/de/el/es/fr/it/jp/nl/pl/ru/sr/tr) [en]: fr OSSEC HIDS v2.6 Script d'installation - http://www.ossec.net Vous êtes sur le point d'installer OSSEC HIDS. Vous devez avoir une compilateur C préinstallé sur votre système. Si vous avez des questions ou des commentaires, envoyez un email à dcid@ossec.net (ou daniel.cid@gmail.com). - Système: Linux ossec-server.k-tux Debian - Utilisateur: root - Hôte: ossec-server.k-tux -- Appuyez sur Entrée pour continuer ou Ctrl-C pour annuler. -- 1- Quel type d'installation voulez-vous (serveur, agent, local ou aide) ? serveur - Installation du serveur choisie. 2- Définition de l'environnement d'installation. - Choisissez votre répertoire d'installation de OSSEC HIDS [/var/ossec]: - L'installation sera faite sur /var/ossec . 3- Configuration de OSSEC HIDS. 3.1- Voulez-vous une alerte par email ? (o/n) [o]: o - Quel est votre adresse email ? k-tux@k-tux.com - Quel est l'adresse IP ou le nom d'hôte de votre serveur SMTP ? smtp.k-tux.com 3.2- Voulez-vous démarrer le démon de vérification d'intégrité ? (o/n) [o]: o - Lancement de syscheck (démon de vérification d'intégrité). 3.3- Voulez-vous démarrer le moteur de détection de rootkit ? (o/n) [o]: o - Lancement de rootcheck (détection de rootkit). 3.4- La réponse active vous permet d'éxécuter des commandes spécifiques en fonction d'évènement. Par exemple, vous pouvez bloquer une adresse IP ou interdire l'accès à un utilisateur spécifique. Plus d'information sur : http://www.ossec.net/en/manual.html#active-response - voulez-vous démarrer la réponse active ? (o/n) [o]: o - Réponse active activée. - Par défaut, nous pouvons activer le contrôle d'hôte et le pare-feu (firewall-drop). Le premier ajoute un hôte dans /etc/hosts.deny et le second bloquera l'hôte dans iptables (sous linux) ou dans ipfilter (sous Solaris, FreeBSD ou NetSBD). - Ils peuvent aussi être utilisés pour arrêter les scans en force brute de SSHD, les scans de ports ou d'autres formes d'attaques. Vous pouvez aussi les bloquer par rapport à des évènements snort, par exemple. - Voulez-vous activer la réponse pare-feu (firewall-drop) ? (o/n) [o]: - pare-feu (firewall-drop) activé (local) pour les levels >= 6 - liste blanche (white list) par défaut pour la réponse active : - Voulez-vous d'autres adresses IP dans votre liste (white list) ? (o/n)? [n]: 3.5- Voulez-vous activer fonctionnalité syslog (port udp 514) ? (o/n) [o]: - Fonctionnalité syslog activé. 3.6- Mise en place de la configuration pour analyser les logs suivants : -- /var/log/messages -- /var/log/auth.log -- /var/log/secure -- /var/log/syslog -- /var/log/security -- /var/log/maillog -- /var/log/proftpd/proftpd.log -- /var/log/httpd/error_log (apache log) -- /var/log/httpd/access_log (apache log) - Si vous voulez surveiller d'autres fichiers, changez le fichier ossec.conf en ajoutant une nouvelle valeur de nom de fichier local. Pour toutes vos questions sur la configuration, consultez notre site web http://www.ossec.net --- Appuyez sur Entrée pour continuer --- 5- Installation du système - Exécution du Makefile INFO: Little endian set. [...] - Le Système est Debian Linux. - Script d'initialisation modifié pour démarrer OSSEC HIDS pendant le boot. - Configuration correctement terminée. - Pour démarrer OSSEC HIDS: /var/ossec/bin/ossec-control start - Pour arrêter OSSEC HIDS: /var/ossec/bin/ossec-control stop - La configuration peut être visualisée ou modifiée dans /var/ossec/etc/ossec.conf Merci d'utiliser OSSEC HIDS. Si vous avez des questions, suggestions ou si vous trouvez un bug, contactez nous sur contact@ossec.net ou en utilisant la liste de diffusion publique sur ossec-list@ossec.net ( http://www.ossec.net/en/mailing_lists.html ). Plus d'information peut être trouver sur http://www.ossec.net - Vous devez ajouter le(s) agent(s) avant qu'ils aient un accés autorisé. Lancez 'manage_agent' pour les ajouter ou les supprimer: /var/ossec/bin/manage_agents Plus d'information sur http://www.ossec.net/en/manual.html
C’est plutôt verbeux, ce qui nous permet de bien maîtriser ce qui est fourni à OSSEC et de savoir par où commencer. Allons faire un tour sur le basedir d’OSSEC : /var/ossec.
$ cd /var/ossec/ $ ll total 76 4 dr-xr-x--- 15 root ossec 4096 2011-08-25 15:28 . 4 drwxr-xr-x 21 root root 4096 2011-08-25 15:28 .. 4 dr-xr-x--- 3 root ossec 4096 2011-08-25 15:28 active-response 4 dr-xr-x--- 2 root ossec 4096 2011-08-25 15:28 agentless 4 -r-xr-x--- 1 root ossec 24 2011-08-25 15:28 .bash_logout 4 -r-xr-x--- 1 root ossec 191 2011-08-25 15:28 .bash_profile 4 -r-xr-x--- 1 root ossec 124 2011-08-25 15:28 .bashrc 4 dr-xr-x--- 2 root ossec 4096 2011-08-25 15:28 bin 4 dr-xr-x--- 3 root ossec 4096 2011-08-25 15:28 etc 4 dr-xr-x--- 2 root ossec 4096 2011-08-25 15:28 .gnome2 4 drwxr-x--- 5 ossec ossec 4096 2011-08-25 15:28 logs 4 dr-xr-x--- 2 root ossec 4096 2011-08-25 15:28 .mozilla 4 dr-xr-x--- 11 root ossec 4096 2011-08-25 15:28 queue 4 dr-xr-x--- 3 root ossec 4096 2011-08-25 15:28 rules 4 -r-xr-x--- 1 root ossec 3793 2011-08-25 15:28 .screenrc 4 drwx------ 2 ossec ossec 4096 2011-08-25 15:28 .ssh 4 drwxr-x--- 2 ossec ossec 4096 2011-08-25 15:28 stats 4 dr-xr-x--- 2 root ossec 4096 2011-08-25 15:28 tmp 4 dr-xr-x--- 3 root ossec 4096 2011-08-25 15:28 var
Comme on peut le voir, toute une arborescence a été créée et remplie avec les informations données à l’installation.