Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
network-attack-detection — Erweiterte Erkennung von Port-Scanning-, DoS- und Malware-Angriffen mithilfe von Machine-Learning-Techniken | Kitploit
Tools/GitHubGitHub/lucadibello/network-attack-detection
SchwachstellenanalyseInformationsbeschaffungNetzwerksicherheitMaschinelles LernenEinbruchserkennungLernen & BildungAnomalieerkennungLog-Analyse

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
lucadibello/network-attack-detection

network-attack-detection

Erweiterte Erkennung von Port-Scanning-, DoS- und Malware-Angriffen mithilfe von Machine-Learning-Techniken

Repository anzeigenWebseite
133vor 3 JahrenNoch nicht geprüft

Erkennung von Netzwerkangriffen mittels maschinellem Lernen

Beschreibung

Dieses Projekt nutzt Techniken des maschinellen Lernens, um Netzwerkangriffe wie Port-Scanning, Denial of Service (DoS) und Malware zu klassifizieren. Die Eingabedaten liegen im Netflow-V9-Format vor, einem von Cisco verwendeten Standardformat.

Die Klassifizierung erfolgt mit den folgenden Modellen:

  • K-Nearest Neighbors (KNN)
  • Support Vector Machine Classifier (SVC) mit RBF-Kernel (Radial Basis Function)
  • Pipeline mit Hauptkomponentenanalyse (PCA) und Support Vector Machine Classifier (SVC)
  • Bagging Classifier (basierend auf SVC mit RBF-Kernel)
  • Random Forest Classifier
  • Extra Trees Classifier
  • Neuronales Netz (MLPClassifier)

Das Projekt ist in Python implementiert, unter Verwendung von Jupyter Notebook und mehreren gängigen Bibliotheken, darunter UMAP, Pandas, NumPy, Scikit-Learn, Matplotlib und Seaborn.

Notebook

Das Notebook ist hier zur direkten Ansicht auf GitHub zugänglich. Alternativ können Sie NbViewer über diesen Link nutzen.

Präsentation

Die Keynote-Präsentation im PDF-Format ist hier verfügbar.

Datensätze

Der für dieses Projekt verwendete Datensatz liegt im NetFlow-V9-Format vor (dokumentiert von Cisco, verfügbar hier). Er besteht aus zwei Dateien: train_net.csv und test_net.csv.

Die Datei train_net.csv enthält Informationen darüber, wann ein bestimmter Alarm wahrscheinlich auftritt, während test_net.csv ausschließlich zu Testzwecken dient und keine Zielvariable zur Bewertung der Modellleistung enthält.

Der Datensatz ist recht groß:

  • train_net.csv: etwa 4 Millionen Pakete (von 14.066 eindeutigen Netzwerk-Hosts)
  • test_net.csv: etwa 2 Millionen Pakete (von 6.186 eindeutigen Netzwerk-Hosts)

Merkmale des Datensatzes

  • FLOW_ID: Eine eindeutige Kennung für den Flow
  • PROTOCOL_MAP: Eine Zeichenfolge, die das im Flow verwendete Protokoll angibt; mögliche Werte sind „ICMP", „TCP", „UDP", „IGMP", „GRE", „ESP", „AH", „EIGRP", „OSPF", „PIM", „IPV6-ICMP", „IPV6-IP", „IPV6-ROUTE", „IPV6-FRAG", „IPV6-NONXT", „IPV6-OPTS" und andere.
  • L4_SRC_PORT: Die Quellportnummer im Flow; mögliche Werte reichen von 0 bis 65535.
  • IPV4_SRC_ADDR: Die IPv4-Quelladresse im Flow, dargestellt als Zeichenfolge in punktierter Dezimalschreibweise (z. B. „192.168.0.1").
  • L4_DST_PORT: Die Zielportnummer im Flow; mögliche Werte reichen von 0 bis 65535.
  • IPV4_DST_ADDR: Die IPv4-Zieladresse im Flow, dargestellt als Zeichenfolge in punktierter Dezimalschreibweise (z. B. „192.168.0.2").
  • FIRST_SWITCHED: Der Zeitpunkt, zu dem der Flow begann, gemessen in Sekunden seit dem 1. Januar 1970 (Unix-Epoche).
  • FLOW_DURATION_MILLISECONDS: Die Dauer des Flows in Millisekunden.
  • LAST_SWITCHED: Der Zeitpunkt, zu dem der Flow endete, gemessen in Sekunden seit dem 1. Januar 1970.
  • PROTOCOL: Das im Flow verwendete Protokoll; mögliche Werte sind 1 (ICMP), 6 (TCP), 17 (UDP) und andere.
  • TCP_FLAGS: Die im Flow gesetzten TCP-Flags, dargestellt als binäre Zeichenfolge (z. B. „100101").
  • TCP_WIN_MAX_IN: Die maximal angekündigte Fenstergröße (in Bytes) für eingehenden Verkehr.
  • TCP_WIN_MAX_OUT: Die maximal angekündigte Fenstergröße (in Bytes) für ausgehenden Verkehr.
  • TCP_WIN_MIN_IN: Die minimal angekündigte Fenstergröße (in Bytes) für eingehenden Verkehr.
  • TCP_WIN_MIN_OUT: Die minimal angekündigte Fenstergröße (in Bytes) für ausgehenden Verkehr.
  • TCP_WIN_MSS_IN: Die maximale Segmentgröße (in Bytes) für eingehenden Verkehr.
  • TCP_WIN_SCALE_IN: Der Fensterskalierungsfaktor für eingehenden Verkehr.
  • TCP_WIN_SCALE_OUT: Der Fensterskalierungsfaktor für ausgehenden Verkehr.
  • SRC_TOS: Der Type-of-Service (ToS)-Wert für die Quell-IP-Adresse.
  • DST_TOS: Der Type-of-Service (ToS)-Wert für die Ziel-IP-Adresse.
  • TOTAL_FLOWS_EXP: Die Gesamtanzahl der erwarteten Flows.
  • MIN_IP_PKT_LEN: Die minimale Länge (in Bytes) von IP-Paketen im Flow.
  • : Die maximale Länge (in Bytes) von IP-Paketen im Flow.

Autoren des Datensatzes

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)

Kaggle-Link

Tool herunterladen
MAX_IP_PKT_LEN
  • TOTAL_PKTS_EXP: Die Gesamtanzahl der erwarteten Pakete im Flow.
  • TOTAL_BYTES_EXP: Die Gesamtanzahl der erwarteten Bytes im Flow.
  • IN_BYTES: Die Anzahl der im Flow empfangenen Bytes.
  • IN_PKTS: Die Anzahl der im Flow empfangenen Pakete.
  • OUT_BYTES: Die Anzahl der im Flow gesendeten Bytes.
  • OUT_PKTS: Die Anzahl der im Flow gesendeten Pakete.
  • ANALYSIS_TIMESTAMP: Der Zeitpunkt der Analyse des Flows, gemessen in Sekunden seit dem 1. Januar 1970.
  • ANOMALY: Ein binäres Flag, das angibt, ob der Flow eine Anomalie enthält (1 = wahr, 0 = falsch).
  • ALERT: (nur im Trainingssatz verfügbar) Die Art des Angriffs, der im aktuellen Flow erkannt wurde. Die möglichen Werte sind:
    • None: Es wurde kein Angriff erkannt
    • Port scanning: Der Flow ist ein Port-Scanning-Angriff
    • Denial of Service: Der Flow ist ein DoS-Angriff
    • Malware: Der Flow ist ein Malware-Angriff
  • ID: Eine eindeutige Kennung für den Flow.