Détecteur d'intrusions OSSEC-HIDS

Cette page traite de la procédure à suivre afin d'installer et d'utiliser OSSEC, un détecteur d'intrusion sur machine hôte : "HIDS" (Host-based Intrusion Detection System). Ossec est l'un des HIDS le plus utilisés. Il est très facile d'accès tant pour l'installation que pour l'utilisation.

Pouvant réagir, c'est également une IPS, Système de prévention d'intrusion machine.

Pour en savoir plus sur ce qu'est un IDS, vous pouvez vous référer à ce lien, ou à celui-là.

Voir en complément :

  • Disposer des droits d'administration ;
  • Disposer d'une connexion à Internet configurée et activée ;
  • (Pour l'interface graphique uniquement) Disposer d'apache2.

Installation manuelle

Malheureusement, OSSEC n'est pas dans les dépôts, il vous faudra donc vous rendre sur le site d'OSSEC et télécharger la dernière version. À l'heure où ce tuto est écrit, il s'agit de la 2.5.1

Une fois le paquet téléchargé, placez-vous dans le répertoire de téléchargement et continuez par

wget http://www.ossec.net/files/ossec-hids-2.5.1.tar.gz
tar xzvf ossec-hids-2.5.1.tar.gz
cd ossec-hids-2.5.1
sudo ./install.sh

Parmi la liste de questions qu'on va vous poser, vous pouvez choisir la réponse par défaut dans tous les cas. Lorsqu'on vous demande quel type d'installation préférer, optez pour local.

Quand on vous demande si vous souhaitez ajouter des IP dans la liste blanche, pensez à renseigner les IPs des ordinateurs de votre LAN, le cas échéant.

Si vous souhaitez utiliser une interface graphique pour OSSEC, il vous faudra un serveur apache2 en état de fonctionnement.

Si c'est le cas, rendez-vous à nouveau sur le site d'OSSEC et téléchargez la dernière version de la WebInterface dans /var/www/. Ensuite :

cd /var/www
sudo tar xzvf ~/ossec-wui-0.3.tar.gz
sudo mv ossec-wui* ossec

cd ossec
sudo ./setup.sh

cd /var/www
sudo chown -R www-data.www-data ossec
sudo usermod -G ossec -a www-data

L'installation est terminée, vous pouvez maintenant relancer apache et lancer OSSEC :

sudo /etc/init.d/apache2 restart
sudo /etc/init.d/ossec start

Installation par dépot launchpad

Pour lucid 10.04 LTS, Precise 12.04 LTS:PPA (comment installer un PPA?), préférer l'installation manuelle

Erreur au lancement dans le navigateur

Si au lancement de la page web vous obtenez une erreur de type opendir failed (/var/ossec) et que vous avez modifé le répertoire d'ossec à l'installation (/home/ossec par exemple, il faut éditer le fichier /var/www/ossec/ossec_conf.php et faire les changements suivants :

/* Ossec directory */
$ossec_dir="/home/ossec";

Il n'y a pas grand chose à faire pour configurer OSSEC. Vous pouvez toutefois jeter un oeil au fichier de configuration /var/ossec/etc/ossec.conf, ainsi qu'au manuel (anglais) si vous souhaitez tout paramétrer.

Pour ajouter un fichier à surveiller, ouvrez le fichier /var/ossec/etc/ossec.conf.

Recherchez syscheck dans ce document xml, et ajoutez sous <directories> séparé d'une virgule les dossiers à ajouter ou rajoutez des lignes qui suivent cette forme :

<directories check_all="yes">/home/ton_user/ton_dossier,/ton_autre_dossier</directories>

Par défaut OSSEC fait une analyse d'intégrité toutes les 22h que vous remarquerez par cette valeur : <frequency>79200</frequency>.

Voici un exemple d'analyse en temps réel :

Ajouter Firefox et Filezilla… (Il est conseillé d'avoir Quad de 2.8 GHz minimum pour appliquer cet exemple.) Cela donne :

<directories check_all="yes" realtime="yes">/home/marypopy/.mozilla,/home/marypopy/.filezilla</directories>

(Remplacer "marypopy" par votre identifiant)

Mise à jour de la base pour la vérification d'intégrité

sudo /var/ossec/bin/syscheck_update -a

Et

sudo /var/ossec/bin/syscheck_update -l

Suite à une modification, relancez OSSEC

sudo /var/ossec/bin/ossec-control restart

Si vous obtenez un message de ce type c'est ok :

Starting OSSEC HIDS v2.4.1 (by Trend Micro Inc.)...
ossec-maild already running...
ossec-execd already running...
ossec-analysisd already running...
ossec-logcollector already running...
ossec-syscheckd already running...
ossec-monitord already running...
Completed.

Si ce n'est pas ok vous obtiendrez un message de ce type :

Starting OSSEC HIDS v2.4.1 (by Trend Micro Inc.)...
2010/08/26 13:20:25 ossec-config(1226): ERROR: Error reading XML file '/var/ossec/etc/ossec.conf': XMLERR: Attribute 'realtime' not followed by a " or '. (line 76).
2010/08/26 13:20:25 ossec-testrule(1202): ERROR: Configuration error at '/var/ossec/etc/ossec.conf'. Exiting.
ossec-analysisd: Configuration error. Exiting.
2010/08/26 13:20:25 ossec-config(1226): ERROR: Error reading XML file '/var/ossec/etc/ossec.conf': XMLERR: Attribute 'realtime' not followed by a " or '. (line 76).
2010/08/26 13:20:25 ossec-maild(1202): ERROR: Configuration error at '/var/ossec/etc/ossec.conf'. Exiting.
ossec-maild: Configuration error. Exiting

Configurer le <syscheck> aux petits oignons.

A la place de "check_all" qui active toutes les actions énumérées ci-dessous, vous pourriez préférer les activer séparément selon vos besoins.

  • check_sum vérifications selon sommes de contrôle
  • check_size vérification sur la taille des fichiers
  • check_owner vérification basée sur le changement de propriétaire
  • check_perm vérification basée sur le changement de permission

Toujour indiquer le yes. L'activation se passe donc sous cette forme :

<directories check_sum="yes" check_size="yes" check_owner="yes" check_groupe="yes" check_perm="yes">/home/ton_user/tes_dossiers</directories>

Cette forme est absolument égale à :

<directories check_all="yes">/home/ton_user/tes_dossiers</directories>

Ensuite "yes" "no" équivaut à un bouton on ou off

La balise <ignore> sert à exclure du contenu de l'analyse.

Vous trouverez des informations sur cette discussion du forum.

Visionner vos alertes en temps réel

Visionner les alertes en temps réel :

sudo tail -f /var/ossec/logs/alerts/alerts.log

ou

sudo tail -f /var/ossec/logs/ossec.log

Ajouter un agent

L'avantage d'OSSEC est de pouvoir monitorer des serveurs distants appelés agents. Pour les ajouter voici comment faire.

On lance sur le serveur maître (celui qui monitorera les agents) la commande suivante :

(server)# /var/ossec/bin/manage_agents

****************************************
* OSSEC HIDS v0.8 Agent manager.       *
* The following options are available: *
****************************************
   (A)dd an agent (A).
   (E)xtract key for an agent (E).
   (L)ist already added agents (L).
   (R)emove an agent (R).
   (Q)uit.
Choose your actions: A,E,R or Q:   //On choisi alors l'action a réaliser. On choisi d'ajouter un agent (option A):
- Adding a new agent (use ‘q’ to return to main menu).
  Please provide the following:
    * A name for the new agent: Linux01 // On choisi le nom qu'on veut donné a notre agent, par exemple Linux01
    * The IP Address for the new agent: 192.168.2.32 // On entre l'adresse IP du serveur

    * An ID for the new agent[001]:
Agent information:
    ID:001
    Name:linux1
    IP Address:192.168.2.32

Confirm adding it?(y/n): y
Added.

Voila l'agent est ajouté. Seulement pour sécuriser les transferts il faut créer un clé de confiance entre les deux entités.

Toujours du coté serveur on tape :

(server)# /var/ossec/bin/manage_agents

****************************************
* OSSEC HIDS v0.8 Agent manager.       *
* The following options are available: *
****************************************
   (A)dd an agent (A).
   (E)xtract key for an agent (E).
   (L)ist already added agents (L).
   (R)emove an agent (R).
   (Q)uit.
Choose your actions: A,E,R or Q: e          // On choisi cette option pour créer la clef

Available agents:
    ID: 001, Name: linux1, IP: 192.168.2.32
    ID: 002, Name: obsd1, IP: 192.168.2.10
Provide the ID of the agent you want to extract the key: 001  // On choisi notre premier agent

Agent key information for ‘001′ is:
CDAxIGxpbnX4MSAxOTIuMTY4LjAuMzIgOWM5MENlYzNXXXYYYZZZZZ==

** Press ENTER to continue

Il faut copier cette clé et la coller dans l'agent.

Maintenant du coté agent on fait ceci :

(agent)# /var/ossec/bin/manage_agents

****************************************
* OSSEC HIDS v0.8 Agent manager.       *
* The following options are available: *
****************************************
   (I)mport key for the server (I).
   (Q)uit.
   Choose your actions: I or Q: i  // On choisi d'insérer une clef

* Provide the Key generated from the server.
* The best approach is to cut and paste it.
*** OBS: Do not include spaces or new lines.

Paste it here: CDAxIGxpbnX4MSAxOTIuMTY4LjAuMzIgOWM5MENlYzNXXXYYYZZZZZ== // On colle la clé créer avec le serveur

Agent information:
    ID:001
    Name:linux1
    IP Address:192.168.2.32

Confirm adding it?(y/n): y

Added.
** Press ENTER to continue.

****************************************
* OSSEC HIDS v0.8 Agent manager.       *
* The following options are available: *
****************************************
    (I)mport key for the server (I).
    (Q)uit.
Choose your actions: I or Q: q

manage_agents: Exiting ..

Voila notre agent est configuré sur le serveur.

Pour vous connecter à l'interface graphique, tapez ceci dans votre navigateur :

http://votre_ip_locale/ossec

L'interface est très simple, aussi ne nécessite-t-elle pas plus d'explications… :-)

Pour afficher la liste des agents actifs on saisis dans un terminal :

/var/ossec/bin/agent_control -lc
OSSEC HIDS agent_control. List of available agents:
ID: 000, Name: enigma.ossec.net (server), IP: 127.0.0.1, Active/Local
ID: 002, Name: winhome, IP: 192.168.2.190, Active
ID: 005, Name: jul, IP: 192.168.2.0/24, Active
ID: 165, Name: esqueleto2, IP: 192.168.2.99, Active
ID: 174, Name: lili3win, IP: 192.168.2.0/24, Active

Pour interroger le status d'un agent on tape :

/var/ossec/bin/agent_control -i 002

    OSSEC HIDS agent_control. Agent information:
    Agent ID: 002
    Agent Name: winhome
    IP address: 192.168.2.190
    Status: Active

    Operating system: Microsoft Windows XP Professional (Build 2600)
    Client version: OSSEC HIDS v1.5-SNP-080412
    Last keep alive: Fri Apr 25 14:33:03 2008

    Syscheck last started at: Fri Apr 25 05:07:13 2008
    Rootcheck last started at: Fri Apr 25 09:04:12 2008

Pour supprimer cette application, il vous faut supprimer les fichiers liés, via le terminal :

sudo rm -rf /var/ossec
sudo rm -f /etc/init.d/ossec
sudo rm -f /etc/ossec-init.conf

Le rootcheck OSSEC est un outil puissant. N'appartenant pas à la logithèque il vous faudra le compiler. Le tutorial présent sur le forum à la page :http://forum.ubuntu-fr.org/viewtopic.php?pid=3725713#p3725713 vous expliquera facilement comment installer le Rootcheck et cela même si vous êtes débutant.

Des références particulièrement intéressantes pour approfondir le sujet peuvent être utiles.


Contributeurs : naoli, MaryPopy.

Basé sur « Ubuntu Intrusion Detection » par bodhi.zazen.

  • ossec.txt
  • Dernière modification: Le 05/07/2017, 13:00
  • (modification externe)