Detection d’intrusion avec OSSEC 2.9

Tout administrateurs ayant un serveur sur Internet et ayant déjà consulté ses logs (tu ne sais pas comment faire Oo … aller un indice -> /var/log/) sait qu’Internet … C’est la Jungle. Mais il existe des outils permettant de faire de la détection d’intrusion ou plus précisément (je l’espère) de la détection de tentative d’intrusion.

Pour réaliser cela j’appelle donc OSSEC à la barre (il est existe d’autre). OSSEC est un HIDS (Host Intrusion Detection System) avec option HIPS (Host Intrusion Prevention System), il va analyser le système, puis il alerter (dans son rôle passif) et/ou réaliser des actions (dans son rôle actif), mais on parle alors d’IPS (Intrusion Prevention System).

Ici je vais montrer comment le déployer en mode HIDS/HIPS (Host IDS/Host IPS). Autrement dit OSSEC aura pour charge de protéger la machine sur laquelle il est installé en surveillant les logs/fichiers sensible … La tout en activant des actions active sur les détection d’intrusion. OSSEC fonctionne en mode local ou agent/serveur afin de centralisé les alertes sur un serveur dédié. Dans notre cas le serveur sera installé en mode local ce qui ne permet pas de recevoir d’alerte depuis un autre serveur, ce qui correspond donc à un mode « standalone ».

Pour plus de détail, je vous ajoute le lien vers la dernière documentation :

http://ossec-docs.readthedocs.io/en/latest/

Aller c’est partie :)

On commence par télécharger les sources depuis le git

git clone https://github.com/ossec/ossec-hids.git

Entrer dans le dossier et lancer le install.sh

cd ossec-hids/
./install.sh

Dans les choix d’installation j’ai mis en place une installation « local », j’ai activé les alertes par mail, la détection de rootkit (HIDS), l’active response (HIPS), le firewall-drop (HIDS).

Par défaut OSSEC va donc s’installer dans /var/ossec/, créer un daemon /etc/init.d/ossec et ne se lancera pas après son installation. Mais Il se lancera à chaque démarrage. L’active réponse se déclenchera au niveau 6, pour plus d’info sur les niveaux d’alerte d’ossec je vous renvoi vers la doc http://ossec-docs.readthedocs.io/en/latest/manual/rules-decoders/rule-levels.html

Ok maintenant allons affiner la conf :)

Commençons par le fichier /var/ossec/etc/ossec.conf

La partie <global> permet d’envoyer les notification par mail. Vous pouvez donc la modifier au besoin. Elle permet aussi de whitlister des IP. Je vous conseille d’ajouter, au minimum, vos serveurs DNS, passerelle et l’IP ou les IP de votre serveur.

La partie <rules> liste les règles utilisés par OSSEC, les règles se trouvent dans le dossier /var/ossec/rules/ et il vaut mieux commenter toutes les règles correspondantes à des services non utilisé. Pour commenter une ligne utiliser les balises

<!– Ma ligne commenté –>

Si vous avez des doutes sur la désactivation d’une règle je vous conseil de jeter un oeil sur ce doc http://www.ossec.net/ossec-docs/OSSEC-book-ch4.pdf et n’oublier pas Google :)

La partie <syscheck> va vérifier de manière périodique les fichiers et binaires du système afin de détecter les modifications en se basant sur un checksum MD5/SHA1. Ici vous pouvez ignorer ou ajouter des répertoires/fichiers à surveiller. Par exemple il peut être intéressant de surveiller votre répertoire hébergeant les fichiers de votre serveur web en ajoutant quelque exclusions sur les répertoires stockant des données dynamique.

La partie <alerts> permet de modifier le niveau d’alerte générant un envoi de mail ou un log en local. Par défaut le log en local est à 1 et par mail est à 7, si votre serveur est sur Internet, je vous déconseille de trop descendre la dernière valeur sous peine d’être spammé par votre propre serveur :) Par contre ce niveau de déclenchement ne viendra pas s’appliquer à certaines règles sensible.

La partie <active-response> permet de modifier le niveau d’activation de l’active reponse. L’activation de l’active réponse ajoutera une règle de blocage dans le firewall suivant un temps donné. Par défaut le déclenchement ce fait au niveau 6 avec un ban pour 10 minutes.

La partie <localfile> liste tout les fichiers de logs sous surveillance avec le type de format de log.

Voila pour les principales options et donc si tous vous semble ok vous pouvez lancer le daemon avec la commande :

/etc/init.d/ossec start

Pour info les logs OSSEC sur toutes ses alertes sont disponibles dans le répertoire /var/ossec/logs/

Enjoy :)