Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
network-attack-detection — Rilevamento avanzato di attacchi di port scanning, DoS e malware tramite tecniche di Machine Learning | Kitploit
Strumenti/GitHubGitHub/lucadibello/network-attack-detection
Analisi delle VulnerabilitàRaccolta InformazioniSicurezza di ReteMachine LearningRilevamento IntrusioniApprendimento e FormazioneRilevamento di AnomalieAnalisi dei Log
GitHub
lucadibello/network-attack-detection

network-attack-detection

Rilevamento avanzato di attacchi di port scanning, DoS e malware tramite tecniche di Machine Learning

Vedi RepositorySito web
133603 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Rilevamento degli attacchi di rete tramite machine learning

Descrizione

Questo progetto utilizza tecniche di machine learning per classificare attacchi di rete come Port Scanning, Denial of Service (DoS) e malware. I dati di input sono nel formato Netflow V9, un formato standard utilizzato da Cisco.

La classificazione viene eseguita utilizzando i seguenti modelli:

  • K-Nearest Neighbors (KNN)
  • Support Vector Machine Classifier (SVC) con kernel RBF (Radial Basis Function)
  • Pipeline con Principal Component Analysis (PCA) e Support Vector Machine Classifier (SVC)
  • Bagging Classifier (basato su SVC con kernel RBF)
  • Random Forest Classifier
  • Extra Trees Classifier
  • Rete neurale (MLPClassifier)

Il progetto è implementato in Python utilizzando Jupyter Notebook e diverse librerie popolari, tra cui UMAP, Pandas, NumPy, Scikit-Learn, Matplotlib e Seaborn.

Notebook

Il notebook è accessibile qui per la visualizzazione diretta su GitHub. In alternativa, puoi usare NbViewer per accedere al notebook tramite questo link.

Presentazione

La presentazione Keynote in formato PDF è accessibile qui.

Dataset

Il dataset utilizzato per questo progetto è nel formato NetFlow V9 (documentato da Cisco, disponibile qui). È composto da due file: train_net.csv e test_net.csv.

Il file train_net.csv fornisce informazioni su quando è probabile che si verifichi un determinato alert, mentre il file test_net.csv viene utilizzato esclusivamente a scopo di test e non contiene una variabile target per valutare le prestazioni del modello.

Il dataset è piuttosto grande:

  • train_net.csv: circa 4 milioni di pacchetti (da 14'066 host di rete unici)
  • test_net.csv: circa 2 milioni di pacchetti (da 6'186 host di rete unici)

Caratteristiche del dataset

  • FLOW_ID: Un identificatore univoco per il flusso
  • PROTOCOL_MAP: Una stringa che rappresenta il protocollo usato nel flusso; i possibili valori includono "ICMP", "TCP", "UDP", "IGMP", "GRE", "ESP", "AH", "EIGRP", "OSPF", "PIM", "IPV6-ICMP", "IPV6-IP", "IPV6-ROUTE", "IPV6-FRAG", "IPV6-NONXT", "IPV6-OPTS" e altri.
  • L4_SRC_PORT: Il numero della porta sorgente nel flusso; i possibili valori vanno da 0 a 65535.
  • IPV4_SRC_ADDR: L'indirizzo IPv4 sorgente nel flusso, rappresentato come stringa in notazione decimale puntata (es. "192.168.0.1").
  • L4_DST_PORT: Il numero della porta di destinazione nel flusso; i possibili valori vanno da 0 a 65535.
  • IPV4_DST_ADDR: L'indirizzo IPv4 di destinazione nel flusso, rappresentato come stringa in notazione decimale puntata (es. "192.168.0.2").
  • FIRST_SWITCHED: L'istante in cui il flusso è iniziato, misurato in secondi dall'epoch (1 gennaio 1970).
  • FLOW_DURATION_MILLISECONDS: La durata del flusso in millisecondi.
  • LAST_SWITCHED: L'istante in cui il flusso è terminato, misurato in secondi dall'epoch (1 gennaio 1970).
  • PROTOCOL: Il protocollo usato nel flusso; i possibili valori includono 1 (ICMP), 6 (TCP), 17 (UDP) e altri.
  • TCP_FLAGS: I flag TCP impostati nel flusso, rappresentati come stringa binaria (es. "100101").
  • TCP_WIN_MAX_IN: La dimensione massima della finestra annunciata (in byte) per il traffico in ingresso.
  • TCP_WIN_MAX_OUT: La dimensione massima della finestra annunciata (in byte) per il traffico in uscita.
  • TCP_WIN_MIN_IN: La dimensione minima della finestra annunciata (in byte) per il traffico in ingresso.
  • TCP_WIN_MIN_OUT: La dimensione minima della finestra annunciata (in byte) per il traffico in uscita.
  • TCP_WIN_MSS_IN: La dimensione massima del segmento (in byte) per il traffico in ingresso.
  • TCP_WIN_SCALE_IN: Il fattore di scala della finestra per il traffico in ingresso.
  • TCP_WIN_SCALE_OUT: Il fattore di scala della finestra per il traffico in uscita.
  • SRC_TOS: Il valore Type of Service (ToS) per l'indirizzo IP sorgente.
  • DST_TOS: Il valore Type of Service (ToS) per l'indirizzo IP di destinazione.
  • TOTAL_FLOWS_EXP: Il numero totale di flussi attesi.
  • MIN_IP_PKT_LEN: La lunghezza minima (in byte) dei pacchetti IP nel flusso.
  • MAX_IP_PKT_LEN: La lunghezza massima (in byte) dei pacchetti IP nel flusso.
  • TOTAL_PKTS_EXP: Il numero totale di pacchetti attesi nel flusso.
  • TOTAL_BYTES_EXP: Il numero totale di byte attesi nel flusso.
  • IN_BYTES: Il numero di byte ricevuti nel flusso.
  • IN_PKTS: Il numero di pacchetti ricevuti nel flusso.
  • OUT_BYTES: Il numero di byte inviati nel flusso.
  • OUT_PKTS: Il numero di pacchetti inviati nel flusso.
  • ANALYSIS_TIMESTAMP: L'istante in cui il flusso è stato analizzato, misurato in secondi dall'epoch (1 gennaio 1970).
  • ANOMALY: Un flag binario che indica se il flusso contiene un'anomalia (1 = vero, 0 = falso).
  • ALERT: (disponibile solo nel set di addestramento) Il tipo di attacco rilevato sul flusso corrente. Questi sono i possibili valori:
    • None: Nessun attacco rilevato
    • Port scanning: Il flusso è un attacco di port scanning
    • Denial of Service: Il flusso è un attacco DoS
    • Malware: Il flusso è un attacco malware
  • ID: Un identificatore univoco per il flusso.

Autori del dataset

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)

Link Kaggle

Scarica lo strumento