Digital Fingerprinting und GPU-Accelerated-Computing mit Nvidia Morpheus & Rapids

31.07.2023Frederik Möllers
Tech Artificial Intelligence Machine Learning

Was ist Digital Fingerprinting?

Bei einem digitalen Fingerprint handelt es sich, ähnlich wie bei einem Fingerabdruck in der realen Welt, um eine (mehr oder weniger) eindeutige Identifikation einer Entität. In der digitalen Welt kann diese Entität ein (technischer) Benutzer, eine Benutzergruppe oder auch ein spezifisches Gerät sein.

Das Ziel des digitalen Fingerprintings ist es, eine Identität anhand eines spezifischen Sets von Merkmalen zu identifizieren. Diese Merkmale können beispielsweise sein:

  • IP-Adresse
  • User-Agent
  • Betriebssystem
  • Browser
  • Zeitzone
  • usw.

Darüber hinaus kann auch das allgemeine Verhalten, wie zum Beispiel der Zugriff auf bestimmte Anwendungen von einem bestimmten Ort aus, als weiteres Merkmal dienen.

Wenn ausreichend Daten verfügbar sind, kann ein digitaler Fingerprint von einem Benutzer oder einer Benutzergruppe erstellt werden, der zur relativ eindeutigen Identifizierung eines Benutzers verwendet werden kann. Neben der Identifizierung von Benutzern besteht natürlich auch die Möglichkeit, bereits authentifizierte Benutzer zu verifizieren. An dieser Stelle kommt Morpheus ins Spiel.

GPU Acceleration mit Nvidia Rapids

Bevor wir uns mit Morpheus befassen, werfen wir einen kurzen Blick auf Nvidia Rapids und die GPU-Beschleunigung, da dies die Grundlage für Morpheus bildet.

Unter beschleunigtem Computing versteht man den Einsatz spezieller Prozessoren, sogenannter GPUs, um bestimmte Aufgaben zu beschleunigen. Um von GPUs zu profitieren, müssen die Aufgaben parallelisierbar sein, ein Beispiel hierfür sind Daten-Transformationen, bei denen jeder Datensatz einzeln transformiert wird. Klassischerweise werden GPUs für Grafikberechnungen verwendet, da diese sehr gut parallelisiert werden können. Vor allem im Bereich des maschinellen Lernens sind GPUs heutzutage unverzichtbar, da sie die Berechnungen um ein Vielfaches beschleunigen können (und teilweise überhaupt erst ermöglichen).

Um Programme auf der GPU ausführen zu können, müssen sie speziell für die GPU geschrieben werden. Dies ist mittels CUDA für Nvidia-GPUs, Vulkan für AMD-GPUs oder OpenCL möglich.

Figure: Quelle: Nvidia RAPIDS.ai

Als Erfinder und einer der grössten Hersteller von GPUs ist Nvidia natürlich auch im Bereich der GPU-Beschleunigung sehr aktiv. Morpheus basiert unter anderem auf Nvidia Rapids, einem OpenSource-Framework, das bekannte Data Science Frameworks wie Scikit-Learn und Pandas auf die GPU portiert. Dadurch wird die Datenverarbeitung auf die GPU ausgelagert und die Berechnungen beschleunigt.

Da meistens eine Transformation von Daten und Feature Engineering notwendig ist, bevor diese in weiteren Prozessen wie zum Beispiel einem Machine Learning Modell verwendet werden können, ermöglicht Rapids nicht nur die Beschleunigung von Prozessen, sondern auch das Erstellen von komplexeren Pipelines, die in Echtzeit große Datenmengen verarbeiten können. Genau diese Möglichkeit, in Echtzeit riesige Datenmengen verarbeiten zu können, macht Morpheus erst nutzbar.

Digital Fingerprinting mit Morpheus

Das Morpheus SDK ist ein von Nvidia entwickeltes OpenSource-Framework, das unter anderem ermöglicht, digitale Fingerabdrücke anhand von Netzwerk-Traffic-Logs zu erstellen und zu verifizieren. Neben digitalen Fingerabdrücken können auch andere Anwendungsfälle wie zum Beispiel Sensitive Information Detection, Fraud Detection und Phishing-Email Detection eingesetzt werden. Darüber hinaus bietet Morpheus Entwicklern die Möglichkeit, eigene Modelle und Pipelines für den jeweiligen Anwendungsfall zu erstellen.

Morpheus kann sowohl on-prem, in der Cloud oder auch auf der Edge eingesetzt werden. Die Daten werden dabei nicht gespeichert, sondern nur analysiert. Dies ist vor allem für Unternehmen interessant, die aus Compliance-Gründen keine Daten speichern dürfen.

Das steckt bei Morpheus unter der Haube

Um digitale Fingerabdrücke zu erstellen, verwendet das SDK einen einfachen Autoencoder. Auf die Netzwerk-Logs eines jeden Nutzers (auch einer Gruppe) wird ein kleiner Autoencoder trainiert. Sobald dies passiert ist, kann kontinuierlich verifiziert werden, ob der Nutzer sich so verhält, wie erwartet, oder ob es Abweichungen gibt.

Mögliche Abweichungen und Anomalien können in diesem Fall zum Beispiel sein, dass ein Nutzer versucht, sich von einem anderen Ort aus anzumelden oder, dass er versucht, auf eine Applikation zuzugreifen, auf die er normalerweise keinen Zugriff hat.

Da es sich hierbei um vollkommen normale Entwicklungen handeln kann, die man aus dem Betriebsalltag kennt (zum Beispiel wenn jemand eine Abteilung oder das Projekt wechselt), besteht natürlich die Möglichkeit, die Modelle im Nachhinein zu optimieren.

Falls jedoch ein Nutzer kompromittiert wurde oder ein Angreifer Zugriff auf eine Maschine erlangt hat, kann abweichendes Verhalten einen sehr frühen Hinweis auf einen Angriff geben. Da dies nicht nur auf Stichproben des Netzwerk-Traffics basiert, sondern auf 100% des Traffics, können auch sehr kleine Abweichungen sehr früh erkannt werden.

Nvidia nutzt Morpheus selbst intern und überwacht damit 100% des Netzwerk-Traffics von rund 25.000 Nutzern.

Fazit und Ausblick

Accelerated Computing ist ein sehr spannendes Thema, das in Zukunft noch viel Potential haben wird. Fortschritte wie LLM’s (Stichwort ChatGPT) zeigen aktuell eindrucksvoll, was aus der Kombination von riesigen Datensätzen und massiver Rechenpower möglich ist. Die Möglichkeit, ohne großen Aufwand in Echtzeit den Netzwerk-Traffic von tausenden Nutzern analysieren und auswerten zu können, ist aus meiner Sicht ein schönes Beispiel dafür, welchen Mehrwert GPU Acceleration bieten kann.

Wenn es um Daten zum Training von Machine Learning Algorithmen geht, wird häufig an statische Datensätze gedacht, die über einen längeren Zeitraum aggregiert wurden und nun genutzt werden können, um spezifischen Mehrwert zu generieren. Nvidia analysiert mittels Morpheus 900TB an Netzwerk-Logs pro Tag, eine Menge an Daten, bei der allein die Speicherung schon eine Herausforderung darstellen würde.

Ich denke, dass wir in der Zukunft noch viele interessante Anwendungsfälle sehen werden, die nur durch die Möglichkeiten einer direkten Verarbeitung, Analyse und Auswertung von großen Datenmengen in Echtzeit möglich sind. Wir bleiben auf jeden Fall dran, und hoffen du auch! 😎🔥

Morpheus

Rapids