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

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
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
1333 anni faNon ancora revisionato

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.
  • : La lunghezza minima (in byte) dei pacchetti IP nel 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
MIN_IP_PKT_LEN
  • 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.