SIDPS/README.md

2.8 KiB

SIDPS - Simple Intrusion Detection and Protection System

SIDPS est un outils de détection et de prévention d'intrusion.
Il est capable de détecter & d'identifier différents types d'attaques réseaux, ainsi que de protéger contre certaines de ces attaques automatiquement.

Attention, il s'agit d'un projet étudiant, dont le but est de réaliser une démonstration pour un projet Universitaire ! Ce projet ne sera probablement pas maintenu par la suite

Fonctionnalités clés:

  • Rapidité
  • Interface web simple et intuitive
  • Messages d'alertes interopérable suivant la norme CEF (Common Event Format)
  • Détections de nombreuses attaques réseaux (scan, DOS, ...)

Installation

Pour son fonctionnement, ce projet utilise une base de donnée redis.

Un moyen simple d'avoir une base de donnée redis fonctionnel est d'utilisé docker:

docker run -d --name redis-stack-server -p 6379:6379 redis/redis-stack-server:latest

Ou si vous souhaitez avoir une interface graphique pour Redis en plus de la base de donnée, vous pouvez installer un docker de redis insight.

docker run -d --name redis-stack -p 6379:6379 -p 8001:8001 redis/redis-stack:latest

Installation interface web & noyau de l'IDS

Structure de la base de données Redis

La base de données Redis est structurée de la façon suivante:

  • stream logs:alertes contenant toutes les alertes envoyés par le noyau de l'IDPS
  • stream logs:correlations contenant toutes les corrélations d'alertes, avec un message de corrélation et les alertes corrélées

Ces deux streams suivent la norme CEF, mais sont structurées sous la forme d'objet et non d'une seule chaine de caractère. Afin de faciliter le parsing par la suite.

Interface de tests d'alertes

Un script python tests/cef-generator.py permet de générer des alertes CEF dans la base de données Redis.
Ce script peut être utile pour le développement d'interface d'affichage des alertes. Pour l'utiliser il faut une base de donnée redis, et mettre les identifiants dans le script.
De plus, ce script à besoin de la librairie redis pour pouvoir ajouter / faire des requêtes à la base de données Redis.

Pour cela, utiliser les commandes suivantes:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Puis executer le script tests/cef-generator.py avec le python3 du l'environnement virtuel.

.venv/bin/python3 tests/cef-generator.py

TODO

  • Noyau d'analyse de l'IDS
  • Interface web pour visualiser les alertes / rechercher dedans
  • Moteur de corrélation des alertes (récupération + renvoi dans Redis).