Documentation

Détection d'anomalies

Création du modèle d’apprentissage

Le but de cette interface est de mettre en place un système de détection d’anomalies en temps réel. Pour cela, la première étape est de sauvegarder un dataset d’entraînement depuis l’interface de gestion des logs. Ce dataset doit refléter au maximum une activité légitime au sein d’une application de Vulture, le but étant de pouvoir détecter une activité illégitime.

Une fois le dataset sauvegardé ce dernier apparaît dans l’onglet “Datasets” de la GUI.

detection-anomalies-1

Les informations disponibles sont :

  • Name : Le nom du dataset, il est composé du nom de l’application concernée et de la date de création.
  • Number of lines : Nombre de lignes de logs du dataset, nous conseillons au minimum 1000 lignes de logs pour avoir des résultats probants .
  • Built : Ce champs passe à “True” une fois que le Dataset a fini d’être importé depuis l’interface de logs.
  • SVM : Ce champs passe à “True” une fois que la SVM a été construite.
  • Actions : Les boutons permettant d’organiser le module de détection d’anomalies :
    • Interface de visualisation : Permet de visualiser les différents graphs de détection, ce bouton n’est disponible qu’une fois les SVM construites.
    • Construire les SVM : Permet de construire les “Machine à vecteurs de support” (SVM) permettant de déterminer les frontières d’apprentissage et donc par la suite de détecter les anomalies. Avant de lancer la construction, il faut choisir le paramètres de précision des différents algorithmes, celui ci est réglé par défaut sur la valeur 1/n (n étant le nombre de lignes de logs). Nous conseillons d’ajuster ce paramètre en fonction des résultats obtenus lors de la visualisation. detection-anomalies-2
    • Éditer le dataset : Permet de visualiser votre dataset et de supprimer des lignes de logs.
    • Supprimer le dataset : Supprime le dataset et les SVM associées.

Interface de visualisation

Dans cette interface il est possible de visualiser les frontières d’apprentissages liés à votre dataset d’entraînement. Les contours délimitent les zones considérés comme légitimes.

6 algorithmes sont disponibles :

  • Data received by server : Met en corrélation la quantité de données reçus par le serveur et le code de réponse HTTP.
  • Data sent by user : Met en corrélation la quantité de données envoyés par le client et le code de réponse HTTP.
  • Trafic evolution over day per IP : Met en corrélation le nombre de requête par seconde par IP différentes en fonction de l’heure de la journée.
  • Trafic evolution over day per User : Met en corrélation le nombre de requête par seconde par utilisateur authentifié différents en fonction de l’heure de la journée.
  • Request content analysis : Analyse le contenu de la requête et le compare avec le dataset d’entraînement pour mettre en corrélation la “distance” entre les mots. Deux sous algorithmes sont disponibles, le premier analyse la totalité de la requête, le second la sépare en fonction du caractère “/”.

Une fois le bouton “real time” coché, le trafic généré en temps réel sur l’application est analysé et reporté sur les différents graphiques. Ceci permet de vérifier le bon fonctionnement du modèle d’apprentissage. Si les résultats de l’analyse ne sont pas conformes avec la réalité, il est possible de régénérer le modèle en modifiant les paramètres. Le trafic considéré comme légitime apparait sous la forme de carrés et les anomalies sous la forme de points.

detection-anomalies-2

Carte du dataset

Sur l’interface de visualisation, l’onglet “Map” permet de visualiser la provenance géographique des logs du set d’entraînement. Un filtrage par code HTTP est disponible pour vérifier les codes de retour généré par les logs du set d’entraînement :

detection-anomalies-3