CNN-Netwerk

adesso Blog

Heutzutage ist die Klassifizierung des Netzwerkverkehrs (Network Traffic Classification, NTC) ein wichtiges Werkzeug, um den Datenverkehr in Kategorien einzuteilen, die verschiedene Netzwerkdienste repräsentieren. Die Kategorisierung von Services ist in verschiedenen Bereichen wie der Netzwerksicherheit, dem Netzwerkmanagement und der QoS-Optimierung von grundlegender Bedeutung.

Die Verwendung von verschlüsseltem Datenverkehr zur Gewährleistung von Vertraulichkeit und Sicherheit für die User macht die Analyse von NTC mit herkömmlichen Methoden zunehmend schwieriger, weshalb wir uns für eine Klassifizierung auf der Grundlage von Machine Learning entscheiden.

In meiner Dissertation, die derzeit von IEEE GLOBECOM 2024 geprüft wird, vergleiche ich verschiedene CNN (Convolutional Neural Network)-basierte Modelle und bewerte einen Kompromiss zwischen Komplexität und Genauigkeit.

Referenzszenario

Heutzutage ist der Einsatz von automatisierten Tools durch Dienstleistungsanbieter unverzichtbar geworden, um den wachsenden Bedürfnissen und Anforderungen der User hinsichtlich ihrer Erfahrungen bei der Nutzung des Netzwerks gerecht zu werden.

Infolgedessen ist NTC zu einem unverzichtbaren Tool für eine Vielzahl von Anwendungszwecken geworden, da es die Einteilung des Traffics in Klassen ermöglicht, die verschiedene Netzwerkdienste abbilden.

Die Differenzierung in Klassen innerhalb des Datenverkehrs ist im Bereich der Netzwerksicherheit von wesentlicher Bedeutung, da dank der Erkennung von anomalem Datenverkehr beispielsweise Intrusion Detection Systeme, Malware Detection Systeme, Firewalls usw. implementiert werden können. Darüber hinaus werden die Ergebnisse auch für das Management und die Verwaltung von Netzwerken, das QoS-Management und die Ressourcenüberwachung durch Internet Service Provider (ISP) verwendet.

NTC extrahiert statistische und/oder verhaltensbezogene Informationen aus dem Datenverkehr und verwendet diese Informationen dann in geeigneten Klassifizierungsalgorithmen.

Im Allgemeinen verwendet NTC drei grundlegende Ansätze, diese sind:

  • portbasiert
  • payloadbasiert
  • Machine Learning (ML) basiert

Bei portbasierten Techniken werden Services mit registrierten Portnummern verknüpft und der Traffic entsprechend klassifiziert. Die Verwendung von privaten und dynamischen Ports macht diesen Ansatz unbrauchbar.

Der auf der Payload basierende Ansatz beruht auf der Untersuchung der Nutzlast von Daten-Paketen, wie beispielsweise den Deep Packet Inspection-Algorithmen. Durch die Verwendung von verschlüsseltem Datenverkehr wird die Analyse jedoch zunehmend schwieriger. Da der verschlüsselte Datenverkehr für Dritte unsichtbar ist, sind die bei diesen Ansätzen verwendeten Muster nutzlos, veraltet und vor allem unwirksam.

Um dieses Problem zu lösen, wurden neue Klassifizierungsansätze entwickelt, darunter auch solche, die auf statischen Strömen basieren, bei denen Pakete zu Strömen zusammengefasst werden, aus denen statistische Informationen extrahiert werden. Dies ermöglicht es uns, ein Muster der Service-Klassen zu ermitteln, zu denen die betreffenden Ströme gehören, wobei der Inhalt der Nutzlast umgangen wird.

Ziel des Projekts war es, die Leistung der wichtigsten bestehenden NTC-Methoden auf der Grundlage von faltenden neuronalen Netzwerken (CNN) zu analysieren und anschliessend ein Klassifizierungsmodell auf der Grundlage von Flüssen zu implementieren.

Ausgehend von einem Referenzprojekt aus dem Lehrbuch und einen Datensatz mit verschlüsseltem QUIC-Traffic, wollen wir eine Architektur für überwachte ML-Modelle auf CNN-Basis entwickeln. Es werden alle Entwurfsphasen eines Modells für Maschinelles Lernen durchlaufen, wobei wir mit der Analyse des Datensatzes und der Vorverarbeitung beginnen, um die Daten und Features für die Implementierung dieser Algorithmen vorzubereiten. Dabei wird auf die Programmiersprache Python und ihre Bibliotheken zurückgegriffen, da sie für dieses Szenario nützlich sind. Um die Wirksamkeit der Modelle zu beobachten, werden anschliessend passende Auswertungen der erzielten Ergebnisse durchgeführt, um die finale Leistung einzusehen und die Besonderheiten der entworfenen Modelle zu bewerten.

Analyse und vorbereitende Verarbeitung

Die Analyse des Datensatzes zeigt das Auftreten von 5 verschiedenen Klassen (Google Hangout Chat, Google Hangout VoIP, Google Play Music, File Transfer und YouTube).

Bei der vorbereitenden Verarbeitung wurde der Traffic in Ströme unterteilt (nach dem Fünffach-IP-Quelle/Ziel, Port-Quelle/Ziel, Protokoll), so dass insgesamt 294062 Ströme entstanden. Die Strommerkmale werden dann für insgesamt 16 identifiziert:

  • Paketlänge
  • Relative Zeit, die seit dem ersten Paket verstrichen ist
  • Delta- Zeit, die seit dem letzten Paket verstrichen ist
  • Prozentsatz der grossen Pakete in einem Strom
  • Prozentsatz der kleinen Pakete in einem Strom
  • Stromgrösse
  • Stromdauer
  • und andere statistische Informationen dazu (Standardabweichung, Kurtosis usw.)

Anschliessend haben wir die Formatierung einiger Klassen geändert und uns vor allem um die Ausreisser gekümmert, sowie die Anzahl der Ströme auf 231012 reduziert. Danach haben wir die Daten normalisiert und eine Kodierung für die Etiketten des Datensatzes verwendet.

NTC-Schema

Ausgehend von dem Referenzmodell, das auf einer Kombination aus Random Forest und CNN mit Hunderten von Merkmalen basiert, haben wir beschlossen, uns auf Einfachheit zu konzentrieren und CNN allein zu verwenden, und zwar, wie bereits oben beschrieben, mit nur 16 Merkmalen für den Teil der Datenverarbeitung.

Während des Projekts wurden einige wenige gültige Architekturen identifiziert, insgesamt 4.

Sie sind CNN-basiert und beginnen mit einer komplexen Architektur und werden dann schrittweise einfacher. Die Modelle haben ein allgemeines Schema, das die wesentlichen Schichten eines faltenden neuronalen Netzwerks enthält: faltende Schichten, Pooling-Schichten, Dropout-Schichten, flache Schichten und dichte Schichten.

Die Modelle unterscheiden sich alle in Bezug auf die Anzahl der Schichten und die Eigenschaften der einzelnen Schichten, es gibt aber einige architektonische Entscheidungen, die allen Vorlagen gemeinsam sind, darunter:

  • Die Aufteilung des Datensatzes von 80 % zu 20 % für Training und Tests
  • Trainieren für 20 Epochen in Stapeln von 32 Stichproben
  • Optimierer Adam
  • Zehn-Kreuz-Validierung

Zum Vergleich der Modelle werden folgende Bewertungsmassstäbe herangezogen:

  • Gewichtete Genauigkeit
  • Präzision
  • Recall
  • F1-Score

Nach zahlreichen Implementierungen der in Betracht gezogenen CNN-basierten NTC-Architektur, sowie mehreren Trials & Errors, haben wir einige Modelle gefunden, die sich am besten bewährt haben; diese sind in der folgenden Tabelle zusammengefasst:

Ergebnisse

Die Ergebnisse in der Tabelle zeigen, dass die durchschnittlichen Ergebnisse immer in einem konstanten Bereich zwischen 89 % und 91 % liegen.

Das Modell 4 weist die beste Leistung auf und ist gleichzeitig eines der einfachsten, was beweist, dass Komplexität nicht immer gleichbedeutend mit hoher Leistung ist.

Diese Ergebnisse von ca. 92 % sind 7-8 % niedriger als die in der Literatur vorhandenen Modelle, aber es ist zu beachten, dass die Einfachheit der Architektur das Hauptaugenmerk der in diesem Projekt ausgewählten Modelle war. Die in der Literatur erzielten Ergebnisse verwenden eine grosse Anzahl von Merkmalen, die in die Hunderte gehen. Im Vergleich dazu verwenden unsere Modelle nur 16 Merkmale, was die Eignung für den Einsatz in Echtzeitszenarien zeigt.

Fazit

In diesem Projekt haben wir CNN-Modelle zur Klassifizierung von QUIC-basierten Diensten (verschlüsselter Datenverkehr) unter Verwendung einer strombasierten Klassifizierung bewertet. Die vorgeschlagenen Modelle nutzen auf Machine Learning basierende Ansätze zur Klassifizierung von Diensten wie Google Hangout Chat, VoIP, Dateiübertragung, Google Play Music und YouTube. Es werden verschiedene Architekturen mit unterschiedlichen Komplexitätsgraden betrachtet und ihre Genauigkeit bewertet.

Im Vergleich zum NTC-Basismodell hat unser Ansatz eine geringere Gesamtgenauigkeit von etwa 91 %, während das Basismodell eine Genauigkeit von 99 % aufweist. Unser Modell zeichnet sich jedoch durch seine Einfachheit aus, da es sich auf ein einstufiges CNN stützt, das mit nur 16 Merkmalen arbeitet, während das Basismodell Random Forest mit CNN kombiniert und Hunderte von Merkmalen verwendet. Trotz der potenziell geringeren Leistung bietet unser Ansatz eine hohe Genauigkeit bei gleichzeitig geringer Komplexität. Unsere künftige Arbeit zielt darauf ab, die Genauigkeit des Modells weiter zu verbessern und gleichzeitig seine wenig komplexe Architektur beizubehalten oder sie sogar zu verbessern.

Mehr zum Thema

Bild Matteo Flumini

Autor Matteo Flumini

Matteo Flumini arbeitet bei adesso Schweiz als DevOps- und Network Engineer in der LoB TEM. Er ist im schönen Lugano ansässig und seit etwa anderthalb Jahren Teil der adesso-Familie.

Diese Seite speichern. Diese Seite entfernen.