OSSIMIntroduction
OSSIM est une solution Open Source (http://www.ossim.net)offrant une infrastructure pour le monitoring temps réel de la sécuritéréseau (détection d'intrusions et analyses statistiques). Ses objectifssont : - Fournir une plateforme centralisée
- Fournir une console d'organisation
- Améliorer la détection et l'affichage des alarmes de sécurité
L'architecture d'OSSIM est donc composée d'un serveur centralisé sur lequel des agents peuvent s'y connecter.
Les applications Ossim-agent (agent OSSIM) et Ossim-server (serveur OSSIM) ont les caractéristiques suivantes: Ossim-agent héberge les différents plugins
(sonde réseau, sonde de statistiques réseau, etc..). L'agent récupère
ensuite les informations des fichiers de logs des plugins et les envoie
directement au serveur OSSIM permettant ainsi le traitement en temps
réel des informations. L'agent Ossim s'occupera aussi de la mise en
marche et de l'arrêt des différentes sondes (plugins) qu'il héberge. Il
ne sera ainsi pas nécessaire de démarrer les plugins des agents à la
main puisque leur activation sera effectuée depuis la console de
management offerte par Ossim-server.
Ossim-server
constitue le noyau de l'architecture. En effet, celui-ci contient les
modules d'analyse et de corrélation des données ainsi qu'un serveur Web
permettant l'interaction avec l'utilisateur (administrateur réseau en
charge de la sécurité).
La figure ci-dessous illustre un déployement detest de l'architecture OSSIM (avec une unique sonde utilisant un HUBafin de sniffer le traffic de deux serveurs de la DMZ). Lors dedéployements réel, un grand nombre d'agents seront connectés au serveurdans le but d'obtenir un maximum de points d'analyse sur le réseau.
 - Architecture d'OSSIM (déployé dans une DMZ)
Le but de "l'amélioration de la détection et de l'affichage des alarmes de sécurité" (un des objectifs d'OSSIM cités plus haut) est de permettre une réduction des faux positifs (alarmes levées pour rien) et des faux négatifs (alarmes non déclenchées alors qu'une attaque a eu lieu). Ce but est d'autant plus difficile à atteindre du fait qu'un volume considérable d'alarmes est présent. Il est donc nécessaire:
- De relier ces différentes alarmes entre elles afin d'obtenir des informations pertinantes et d'éliminer les alarmes inutiles (faux positifs).
- D'utiliser des méthodes d'analyse statistique afin de détecter les attaques non détectées (faux négatifs) par d'autres méthodes.
Ces objectifs peuvent être atteints à l'aide d'un procédé d'analyse des données nommé: Corrélation.
Le principe de fonctionnement d'OSSIM est formé de trois grandes catégories décomposées elles-mêmes en sous catégories:
- La détection:
- IDS (pattern matching)
- Détection d'anomalies (statistique)
- Firewalls (récupération de logs)
- L'analyse et le monitoring:
- Corrélation et analyse heuristique (prévisions)
- Evaluation de la dangerosité des alarmes
- Evaluation du risque sur l'architecture à protéger
- Les management (configuration):
- Inventaire des ressources informatiques (machines, systèmes d'exploitation, services)
- Définition de la topologie
- Définition des règles de corrélation
- Définition des politiques de sécurité
- Liens avec différents outils d'audits Open Source
La nouveauté offerte par OSSIM (nouveauté comparé à la solution Open Source prelude-ids) consiste principalement en l'analyse et la corrélation des alarmes. Ces procédés de corrélation et d'analyse heuristique sont détaillés ci-desssous.
Analyse d'OSSIM
OSSIM est malheureusement fourni avec une documentation très pauvre. Dans un premier temps nous avons étudié le fonctionnement des communications plugins -> agent -> serveur, par reverse-engineering. Nous avons ensuite étudié le fonctionnement de son framework (console d'administration Web) afin de comprendre la relation entre les différents menus et les plugins présents sur les agents. Toutes ces observations ont été reportées dans une documentation disponible en section liens.
Corrélation et analyse heuristique
Ce procédé permet nottamment de retrouver certaines relations entre différentes alarmes indépendantes. Ceci permettra par exemple de découvrir des attaques noyées dans le flot des alarmes ou encore de discréditer des alarmes (découverte de faux positifs)
La corrélation peut être simplement définie comme un procédé traitant des données (inputs) et retournant un résultat (outputs). OSSIM utilise deux types d'inputs:
- Informations du moniteur (qui fournit normalement des indications à l'administrateur)
- Informations des détecteurs (qui fournissent normalement des alertes)
Le résultat de ce traitement sera lui aussi d'un des deux genres cités ci-dessus (du moniteur ou des détecteurs). Les modèles de corrélations utilisés par OSSIM ont les objectifs suivants:
- Utilisation de méthodes par signatures, pour la détection d'événements connus et détectables
- Utilisation de méthodes sans signature, pour la détection d'événements non connus
- Utilisation d'une machine d'états configurable par l'utilisateur, pour la description de signatures complexes
- Utilisation d'algorithmes évolués, pour l'affichage général de la sécurité
Méthodes de corrélation
OSSIM met en oeuvre plusieurs méthodes de corrélation complémentaires:
- Corrélation utilisant des séquences d'événements, basées sur les signatures connues et détectables
- Corrélation utilisant des algorithmes heuristiques (technique consistant à apprendre petit à petit, en tenant compte de ce que l'on a fait précédemment, pour tendre vers la solution d'un problème), utilisée pour la détection d'attaques non connues
- Corrélation croisée (Cross-corrélation) permettant la recherche de relations entre les scans de vulnérabilités (Nessus) effectués et des alertes détectées par les NIDS (Snort)
Corrélation par heuristique
OSSIM implémente un algorithme d'heuristique comme un accumulateur d'événements (CALM), offrant une indication de l'état général du réseau. L'objectif de ce traitement est d'obtenir en premier lieu, le risque immédiat puis, le risque accumulé.
- Le risque immédiat offre un haut niveau de monitoring temps réel. Celui-ci peut être assimilé à un thermomètre des situations critiques, sans même connaître les détails des caractéristiques du problème.
- Le risque accumulé offre quant à lui un haut niveau de monitoring sur une certaine fenêtre temporelle (risque accumulé et non plus temps réel).
Le second algorithme heuristique utilisé par OSSIM permet la prévision des statistiques réseaux (paquets émis et reçus) en fonction des valeurs précédentes (Holt-winter). Ceci permet la détection automatique d'anomalies réseaux.
Par conséquence, la corrélation par heuristique offre:
- Une vue globale et rapide de la situation
- Une détection possible d'attaques non relevées par les autres méthodes de corrélation (se basant sur des signatures)
CALM (Compromise and Attack Level Monitor)
CALM est un algorithme (implémenté dans OSSIM) utilisant les événements accumulés et fournissant une valeur indicative du niveau de sécurité global. L'accumulation d'événements est effectuée indépendamment pour tous les éléments du réseau. Celle-ci est simplement calculée par la somme de deux variables d'état représentant le risque immédiat de chaque événement: - Variable C ou niveau de fiabilité d'une machine ou d'un réseau, mesure la probabilité qu'une machine ou un réseau soit compromis (source d'une attaque effectuée par un ver ou troyen installé sur une machine à surveiller).
- Variable A indique la probabilité que la machine ou réseau à surveiller soit la cible d'attaques.
La variable A représente la probabilité qu'une attaque a été lancée et qu'elle est réussie, alors que la variable C fournit l'évidence qu'il y a eu une attaque et qu'elle a réussi.
Chaque machine du réseau a donc une variable A et C associée, fluctuant de la manière suivante:
- Toute attaque possible d'une machine 1 (source) vers une machine 2 (cible) incrémentera le niveau A de la machine 2 et le niveau C de la machine 1.
- Lorsqu'une réponse à une attaque est détectée (signifiant que l'attaque est réussie), le niveau C des deux machines sera incrémenté.
- Lorsque l'événement est interne (source interne), seul le niveau C de la machine source est incrémenté.
CALM fonctionne d'une manière temps réel (accumulation temps réel des événements). Il peut aussi être intéressant d'observer ces statistiques dans une fenêtre temporelle (accumulation sur le temps). En effet, ceux-ci varieront grandement en fonction de la fenêtre utilisée puisqu'un fonctionnement temps réel (accumulation continue d'événements) aura pour effet de noyer certaines alarmes critiques dans la masse d'information. Nous pourrions assimiler le fonctionnement d'accumulation sur le temps à un zoom sur les statistiques temps réel.
Holt-Winter Algorithme
Algorithme heuristique implémenté dans le moteur de corrélation temps réel d'OSSIM, permettant la découverte de comportements anormaux sans l'utilisation de seuils. Description tirée de www.usenix.org/:La détection anormale de comportements est décomposée en trois parties, chacune établie selon son prédécesseur : - Un algorithme pour prévoir pas par pas les valeurs d'une série chronologique.
- Une mesure de déviation entre les valeurs prévues et les valeurs observées.
- Un mécanisme détectant lorsqu'une valeur est "trop déviante" de la valeur prévue.
L'algorithme de prévision Holt-Winter fait appel aux principes de lissage exponentiel (genre de moyenne mathématique permettant la prédiction de valeurs). En effet, Holt-Winter fournit une méthode un peu plus complexe utilisant un triple lissage exponentiel. Pour plus d'informations au sujet de cet algorithme, consultez notre documentation disponible en section liens. Une feuille de calcul Excel et Open Office vous permet d'ores et déjà de tester l'algoritme et l'effet de ses variables sur l'approximation fournie.
Corrélation par diagramme d'états (séquence d'événements)
Ce genre de corrélation fait appel à la détection par signatures. Ceci permettra à l'utilisateur (administrateur réseau en charge de la sécurité), de définir des règles de corrélation à l'aide des signatures disponnibles. Exemple: Si l'alarme A, B et C est levée, il faut exécuter l'action D. Ceci s'apparente donc au moteur de corrélation développé par M. Saladino dans le cadre de SIMS-Prelude.
Le moteur de corrélation d'OSSIM a les caractéristiques suivantes:
- Capacité de définir des variables d'origines et de destination
- Utilisation des alarmes des détecteurs (détection par signature) et/ou des informations des moniteurs (monitoring) comme input pour la corrélation
- Utilisation de variables élastiques (accumulant des informations au cour du temps)
- Architecture récursive (possibilité d'utiliser des règles précédemment définie dans de nouvelles règles)
Data flow du serveur OSSIM
Afin d'aider à la compréhension du traitement des alarmes effectué par le serveur OSSIM, nous allons détailler le cheminement de celles-ci dans la chaîne de traitement définie sur la figure ci-dessous.
 - Data flow process du serveur OSSIM (source: ossim.net)
- Détection d'un événement suspect par un détecteur (par signatures ou par l'heuristique)
- Si nécessaire, des alarmes sont regroupées (par le détecteur) afin de diminuer le trafic réseau
- Le collecteur reçoit la/les alarme(s) via différents protocoles de communications ouverts
- Le parser normalise et sauve les alarmes dans la base de données d'événements (EDB)
- Le parser assigne une priorité aux alarmes reçues en fonction de la configuration des ploitiques de sécurité définies par l'administrateur sécurité
- Le parser évalue le risque immédiat représenté par l'alarme et envoie si nécessaire une alarme interne au paneau de contrôle (Control Panel)
- L'alerte est maintenant envoyée à tous les processus de corrélation qui mettent à jour leurs états et envoient éventuellement une alerte interne plus précise (groupe d'alerte provenant de la corrélation) au module de centralisation
- Le moniteur de risque affiche périodiquement l'état de chaque risque calculés par CALM (algorithme décrit ci-dessus)
- Le paneau de contrôle affiche les alarmes les plus récentes et met à jour les indices des états qui sont comparés aux seuils définis par l'administrateur. Si les indices sont supérieurs aux seuils configurés, une alarme interne est émise
- Depuis le panneau de contrôle, l'administrateur a la possibilité de visualiser et rechercher des liens entre les différentes alarmes à l'aide de la console forensic
|