Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
network-attack-detection — Détection avancée des scans de ports, des attaques DoS et des malwares à l'aide de techniques de Machine Learning | Kitploit
Outils/GitHubGitHub/lucadibello/network-attack-detection
Analyse des VulnérabilitésCollecte d'InformationsSécurité RéseauApprentissage AutomatiqueDétection d'IntrusionApprentissage et ÉducationDétection d'AnomaliesAnalyse de Journaux

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHub
lucadibello/network-attack-detection

network-attack-detection

Détection avancée des scans de ports, des attaques DoS et des malwares à l'aide de techniques de Machine Learning

Voir le dépôtSite web
133il y a 3 ansPas encore vérifié

Détection d'attaques réseau à l'aide de l'apprentissage automatique

Description

Ce projet exploite des techniques d'apprentissage automatique pour classer les attaques réseau telles que l'analyse de ports, le déni de service (DoS) et les logiciels malveillants. Les données d'entrée sont au format Netflow V9, un format standard utilisé par Cisco.

La classification est effectuée à l'aide des modèles suivants :

  • K-Nearest Neighbors (KNN)
  • Support Vector Machine Classifier (SVC) avec noyau RBF (Radial Basis Function)
  • Pipeline avec analyse en composantes principales (PCA) et Support Vector Machine Classifier (SVC)
  • Bagging Classifier (basé sur SVC avec noyau RBF)
  • Random Forest Classifier
  • Extra Trees Classifier
  • Réseau de neurones (MLPClassifier)

Le projet est implémenté en Python à l'aide de Jupyter Notebook et de plusieurs bibliothèques populaires, notamment UMAP, Pandas, NumPy, Scikit-Learn, Matplotlib et Seaborn.

Notebook

Le notebook est accessible ici pour un affichage direct sur GitHub. Vous pouvez également utiliser NbViewer pour accéder au notebook via ce lien.

Présentation

La présentation Keynote au format PDF est accessible ici.

Jeux de données

Le jeu de données utilisé pour ce projet est au format NetFlow V9 (documenté par Cisco, disponible ici). Il se compose de deux fichiers : train_net.csv et test_net.csv.

Le fichier train_net.csv fournit des informations sur le moment où une alerte particulière est susceptible de se produire, tandis que le fichier test_net.csv est utilisé uniquement à des fins de test et ne contient pas de variable cible pour évaluer les performances du modèle.

Le jeu de données est assez volumineux :

  • train_net.csv : environ 4 millions de paquets (provenant de 14'066 hôtes réseau uniques)
  • test_net.csv : environ 2 millions de paquets (provenant de 6'186 hôtes réseau uniques)

Caractéristiques du jeu de données

  • FLOW_ID : Un identifiant unique pour le flux
  • PROTOCOL_MAP : Une chaîne de caractères représentant le protocole utilisé dans le flux, les valeurs possibles incluent « ICMP », « TCP », « UDP », « IGMP », « GRE », « ESP », « AH », « EIGRP », « OSPF », « PIM », « IPV6-ICMP », « IPV6-IP », « IPV6-ROUTE », « IPV6-FRAG », « IPV6-NONXT », « IPV6-OPTS », et d'autres.
  • L4_SRC_PORT : Le numéro de port source dans le flux, les valeurs possibles vont de 0 à 65535.
  • IPV4_SRC_ADDR : L'adresse IPv4 source dans le flux, représentée sous forme de chaîne en notation décimale à points (par exemple, « 192.168.0.1 »).
  • L4_DST_PORT : Le numéro de port de destination dans le flux, les valeurs possibles vont de 0 à 65535.
  • IPV4_DST_ADDR : L'adresse IPv4 de destination dans le flux, représentée sous forme de chaîne en notation décimale à points (par exemple, « 192.168.0.2 »).
  • FIRST_SWITCHED : L'heure à laquelle le flux a commencé, mesurée en secondes depuis l'époque (1er janvier 1970).
  • FLOW_DURATION_MILLISECONDS : La durée du flux en millisecondes.
  • LAST_SWITCHED : L'heure à laquelle le flux s'est terminé, mesurée en secondes depuis l'époque (1er janvier 1970).
  • PROTOCOL : Le protocole utilisé dans le flux, les valeurs possibles incluent 1 (ICMP), 6 (TCP), 17 (UDP), et d'autres.
  • TCP_FLAGS : Les indicateurs TCP définis dans le flux, représentés sous forme de chaîne binaire (par exemple, « 100101 »).
  • TCP_WIN_MAX_IN : La taille de fenêtre annoncée maximale (en octets) pour le trafic entrant.
  • TCP_WIN_MAX_OUT : La taille de fenêtre annoncée maximale (en octets) pour le trafic sortant.
  • TCP_WIN_MIN_IN : La taille de fenêtre annoncée minimale (en octets) pour le trafic entrant.
  • TCP_WIN_MIN_OUT : La taille de fenêtre annoncée minimale (en octets) pour le trafic sortant.
  • TCP_WIN_MSS_IN : La taille de segment maximale (en octets) pour le trafic entrant.
  • TCP_WIN_SCALE_IN : Le facteur d'échelle de fenêtre pour le trafic entrant.
  • TCP_WIN_SCALE_OUT : Le facteur d'échelle de fenêtre pour le trafic sortant.
  • SRC_TOS : La valeur Type of Service (ToS) pour l'adresse IP source.
  • DST_TOS : La valeur Type of Service (ToS) pour l'adresse IP de destination.
  • TOTAL_FLOWS_EXP : Le nombre total de flux attendus.

Auteurs du jeu de données

Maria-Elena Mihailescu, Darius Mihai, Mihai Carabas, Mikolaj Komisarek, Marek Pawlicki, Witold Holubowicz, Rafal Kozik : The Proposition and Evaluation of the RoEduNet-SIMARGL2021 Network Intrusion Detection Dataset. Sensors 21(13) : 4319 (2021)

Lien Kaggle

Télécharger l’outil
  • MIN_IP_PKT_LEN : La longueur minimale (en octets) des paquets IP dans le flux.
  • MAX_IP_PKT_LEN : La longueur maximale (en octets) des paquets IP dans le flux.
  • TOTAL_PKTS_EXP : Le nombre total de paquets attendus dans le flux.
  • TOTAL_BYTES_EXP : Le nombre total d'octets attendus dans le flux.
  • IN_BYTES : Le nombre d'octets reçus dans le flux.
  • IN_PKTS : Le nombre de paquets reçus dans le flux.
  • OUT_BYTES : Le nombre d'octets envoyés dans le flux.
  • OUT_PKTS : Le nombre de paquets envoyés dans le flux.
  • ANALYSIS_TIMESTAMP : L'heure à laquelle le flux a été analysé, mesurée en secondes depuis l'époque (1er janvier 1970).
  • ANOMALY : Un indicateur binaire indiquant si le flux contient une anomalie (1 = vrai, 0 = faux).
  • ALERT : (uniquement disponible dans l'ensemble d'entraînement) Le type d'attaque qui a été détecté sur le flux actuel. Voici les valeurs possibles :
    • None : Aucune attaque n'a été détectée
    • Port scanning : Le flux est une attaque par analyse de ports
    • Denial of Service : Le flux est une attaque DoS
    • Malware : Le flux est une attaque par logiciel malveillant
  • ID : Un identifiant unique pour le flux.