Slips est un puissant système de prévention et de détection des intrusions comportementales de point final qui utilise l'apprentissage automatique pour détecter les comportements malveillants dans le trafic réseau. Les glissages peuvent fonctionner avec le trafic réseau en temps réel, les fichiers PCAP et les flux réseau à partir d'outils populaires comme Suricata, Zeek / Bro et Argus. La détection des menaces de glissements est basée sur une combinaison de modèles d'apprentissage automatique formés pour détecter les comportements malveillants, plus de 40 aliments de renseignement sur les menaces et des heuristiques expertes. Les glissements rassemblent des preuves d'un comportement malveillant et utilisent des seuils largement formés pour déclencher des alertes lorsque suffisamment de preuves sont accumulées.
Slips est le premier logiciel libre IDS / IP basés sur l'apprentissage de la machine pour les points de terminaison. Il a été créé en 2012 par Sebastian Garcia au laboratoire de stratosphère, AIC, FEE, Université technique tchèque de Prague. L'objectif était d'offrir un IDS / IPS local qui exploite l'apprentissage automatique pour détecter les attaques de réseau en utilisant l'analyse comportementale.
Slips est pris en charge uniquement sur Linux, MacOS et Windows Dockers. Les fonctionnalités de blocage des glissements ne sont prises en charge que sur Linux
Slips est basé sur Python et s'appuie sur le cadre d'analyse de réseau Zeek pour capturer le trafic en direct et analyser les PCAP. et s'appuie sur redis> = 7.0.4 pour la communication interprodique.
La façon recommandée d'utiliser des glissements est sur Docker.
docker run --rm -it -p 55000:55000 --cpu-shares "700" --memory="8g" --memory-swap="8g" --net=host --cap-add=NET_ADMIN --name slips stratosphereips/slips:latest
./slips.py -f dataset/test7-malicious.pcap -o output_dir
cat output_dir/alerts.log
Dans MacOS, n'utilisez pas --net = hôte si vous souhaitez accéder aux ports du conteneur interne à partir de l'hôte.
docker run --rm -it -p 55000:55000 --platform linux/amd64 --cpu-shares "700" --memory="8g" --memory-swap="8g" --cap-add=NET_ADMIN --name slips stratosphereips/slips_macos_m1:latest
./slips.py -f dataset/test7-malicious.pcap -o output_dir
cat output_dir/alerts.log
Pour plus d'options d'installation
Pour une explication détaillée des paramètres de glissement
Pour vérifier la sortie des glissements à l'aide d'une interface graphique, vous pouvez utiliser l'interface Web ou notre interface basée sur la ligne de commande kalipso
./webinterface.sh
Accédez ensuite à http://localhost:55000/ de votre navigateur.
Pour plus d'informations sur l'interface Web, consultez les documents: https://stratosphériquelinuxips.readthedocs.io/en/develop/usage.html#the-web-interface
./kalipso.sh
Pour plus d'informations sur l'interface de Kalipso, consultez les documents: https://stratosphérique
Les glissements nécessitent Python 3.10.12 et au moins 4 Go de RAM pour fonctionner en douceur.
Les glissements peuvent être exécutés sur différentes plates-formes, la manière la plus simple et la plus recommandée si vous êtes un utilisateur Linux est d'exécuter des glissements sur Docker.
Slips a une configuration / slip.yaml qui contient des configurations utilisateur pour différents modules et exécution générale.
Vous pouvez modifier la largeur du tempswindow en modifiant le paramètre time_window_width
Vous pouvez modifier la direction d'analyse à all si vous souhaitez voir les attaques de et vers votre ordinateur
Vous pouvez également spécifier de train ou test les modèles ML
Vous pouvez activer les notifications contextuelles de preuves, activer le blocage, brancher votre propre script zeek et plus encore.
Plus de détails sur les options de fichiers de configuration ici
Les caractéristiques clés des glissements sont:
Nous accueillons des contributions pour améliorer la fonctionnalité et les caractéristiques des glissements.
Veuillez lire attentivement les lignes directrices contributives pour contribuer au développement des feuillets
Vous pouvez exécuter des bordereaux et signaler des bogues, faire des demandes de fonctionnalités et suggérer des idées, ouvrir une demande de traction avec un problème GitHub résolu et une nouvelle fonctionnalité, ou ouvrir une demande de traction avec un nouveau module de détection.
Les instructions pour créer un nouveau module de détection avec un modèle ici.
Si vous êtes étudiant, nous vous encourageons à postuler au programme Google Summer of Code auquel nous participons en tant qu'organisation d'hébergement.
Vérifiez les feuillets dans GSOC2023 pour plus d'informations.
Vous pouvez rejoindre nos conversations dans Discord pour des questions et des discussions. Nous apprécions vos contributions et merci d'avoir contribué à améliorer les glissements!
Documentation utilisateur
Code des documents
Si vous ne pouvez pas écouter une interface sans sudo, vous pouvez exécuter la commande suivante pour permettre à n'importe quel utilisateur d'utiliser Zeek pour écouter une interface et non seulement root.
sudo setcap cap_net_raw,cap_net_admin=eip /<path-to-zeek-bin/zeek
Vous pouvez rejoindre nos conversations dans Discord pour des questions et des discussions.
Ou envoyez-nous un e-mail à
Licence publique générale GNU
Fondateur: Sebastian Garcia, [email protected], [email protected].
Auteurs principaux: Sebastian Garcia, Alya Gomaa, Kamila Babayeva
Contributeurs:
https://github.com/stratosphereips/stratospherelinuxips/blob/develop/changelog.md
Les vidéos suivantes contiennent des démos de glissement en action dans divers événements:
Nous sommes reconnaissants pour le généreux soutien et le financement fourni par les organisations suivantes:
Ce projet est financé par NGI0 ENGUST, un fonds créé par NLNET avec le soutien financier du programme Internet de la prochaine génération de la Commission européenne. En savoir plus sur la page du projet NLNET.
Leur financement a joué un rôle crucial dans le développement et le succès de ce projet. Nous apprécions sincèrement leur engagement à faire progresser la technologie et leur reconnaissance des glissements de valeur apporte à la communauté.