Malware-Erkennung und -Klassifizierung mit Amazon Rekognition PlatoBlockchain Data Intelligence. Vertikale Suche. Ai.

Malware-Erkennung und -Klassifizierung mit Amazon Rekognition

Gemäß einer Artikel von Cybersecurity Ventures ist der durch Ransomware (eine Art von Malware, die Benutzern den Zugriff auf ihre Daten blockieren kann, wenn sie kein Lösegeld zahlen) verursachte Schaden im Jahr 57 im Vergleich zu 2021 um das 2015-fache gestiegen. Darüber hinaus wird es seine Opfer voraussichtlich 265 Milliarden US-Dollar kosten ( USD) jährlich bis 2031. Zum Zeitpunkt des Verfassens dieses Artikels liegt die finanzielle Belastung durch Ransomware-Angriffe knapp über 50th Position in einer Liste von Ländern, die nach ihrem Rang geordnet sind BIP.

Angesichts der von Malware ausgehenden Bedrohung wurden mehrere Techniken entwickelt, um Malware-Angriffe zu erkennen und einzudämmen. Die beiden heute am häufigsten verwendeten Techniken sind die signatur- und die verhaltensbasierte Erkennung.

Die signaturbasierte Erkennung erstellt eine eindeutige Kennung für ein bekanntes bösartiges Objekt, sodass das Objekt in Zukunft identifiziert werden kann. Es kann sich um ein eindeutiges Codemuster handeln, das an eine Datei angehängt ist, oder es kann sich um den Hash eines bekannten Malware-Codes handeln. Wenn beim Scannen neuer Objekte eine bekannte Musterkennung (Signatur) entdeckt wird, wird das Objekt als bösartig gekennzeichnet. Die signaturbasierte Erkennung ist schnell und erfordert wenig Rechenleistung. Es hat jedoch mit polymorphen Malware-Typen zu kämpfen, die ständig ihre Form ändern, um der Erkennung zu entgehen.

Die verhaltensbasierte Erkennung beurteilt die verdächtigen Objekte anhand ihres Verhaltens. Artefakte, die von Anti-Malware-Produkten berücksichtigt werden können, sind Prozessinteraktionen, DNS-Abfragen und Netzwerkverbindungen vom Objekt. Diese Technik ist bei der Erkennung polymorpher Malware besser als signaturbasierte, hat aber einige Nachteile. Um zu beurteilen, ob ein Objekt bösartig ist, muss es auf dem Host ausgeführt werden und genügend Artefakte generieren, damit das Anti-Malware-Produkt es erkennen kann. Dieser blinde Fleck kann dazu führen, dass die Malware den Host infiziert und sich über das Netzwerk ausbreitet.

Bestehende Techniken sind alles andere als perfekt. Infolgedessen wird die Forschung mit dem Ziel fortgesetzt, neue alternative Techniken zu entwickeln, die unsere Fähigkeiten zur Bekämpfung von Malware verbessern werden. Eine neuartige Technik, die in den letzten Jahren aufgekommen ist, ist die bildbasierte Malware-Erkennung. Diese Technik schlägt vor, ein Deep-Learning-Netzwerk mit bekannten Malware-Binärdateien zu trainieren, die in Graustufenbilder umgewandelt wurden. In diesem Beitrag zeigen wir, wie Sie eine bildbasierte Malware-Erkennung durchführen können Amazon-Anerkennung Kundenspezifische Etiketten.

Lösungsüberblick

Um ein Multiklassifizierungsmodell und ein Malware-Erkennungsmodell zu trainieren, bereiten wir zunächst die Trainings- und Testdatensätze vor, die verschiedene Malware-Typen wie Flooder, Adware, Spyware usw. sowie gutartige Objekte enthalten. Anschließend konvertieren wir die Objekte der portablen ausführbaren Dateien (PE) in Graustufenbilder. Als nächstes trainieren wir ein Modell unter Verwendung der Bilder mit Amazon Rekognition.

Amazon Rekognition ist ein Service, der es einfach macht, verschiedene Arten von visuellen Analysen Ihrer Anwendungen durchzuführen. Rekognition Image unterstützt Sie beim Erstellen leistungsstarker Anwendungen zum Suchen, Überprüfen und Organisieren von Millionen von Bildern.

Amazon Rekognition Custom Labels baut auf den bestehenden Funktionen von Rekognition auf, die bereits mit Millionen von Bildern in vielen Kategorien trainiert wurden.

Amazon Rekognition Custom Labels ist ein vollständig verwalteter Service, mit dem Benutzer Millionen von Bildern analysieren und sie verwenden können, um viele verschiedene Probleme des maschinellen Lernens (ML) zu lösen, einschließlich Bildklassifizierung, Gesichtserkennung und Inhaltsmoderation. Hinter den Kulissen basiert Amazon Rekognition auf einer Deep-Learning-Technologie. Der Dienst verwendet ein Convolution Neural Network (CNN), das auf einem großen gekennzeichneten Datensatz vortrainiert ist. Indem er solchen Ground-Truth-Daten ausgesetzt wird, kann der Algorithmus lernen, Muster in Bildern aus vielen verschiedenen Bereichen zu erkennen, und kann in vielen Anwendungsfällen der Branche eingesetzt werden. Da AWS die Verantwortung für den Aufbau und die Wartung der Modellarchitektur und die Auswahl einer geeigneten Schulungsmethode für die jeweilige Aufgabe übernimmt, müssen Benutzer keine Zeit für die Verwaltung der für Schulungsaufgaben erforderlichen Infrastruktur aufwenden.

Lösungsarchitektur

Das folgende Architekturdiagramm gibt einen Überblick über die Lösung.

Die Lösung wird mit erstellt AWS-Charge, AWS Fargate und Amazon-Anerkennung. Mit AWS Batch können Sie Hunderte von Batch-Computing-Jobs auf Fargate ausführen. Fargate ist mit beiden kompatibel Amazon Elastic Container-Service (Amazon ECS) und Amazon Elastic Kubernetes-Dienst (Amazon EKS). Mit benutzerdefinierten Labels von Amazon Rekognition können Sie AutoML für maschinelles Sehen verwenden, um benutzerdefinierte Modelle zu trainieren, um Malware zu erkennen und verschiedene Malware-Kategorien zu klassifizieren. AWS Step Functions werden verwendet, um die Datenvorverarbeitung zu orchestrieren.

Für diese Lösung erstellen wir die Vorverarbeitungsressourcen über AWS CloudFormation. Die CloudFormation-Stack-Vorlage und der Quellcode für die AWS Batch-, Fargate- und Step-Funktionen sind verfügbar in a GitHub-Repository.

Datensatz

Um das Modell in diesem Beispiel zu trainieren, haben wir die folgenden öffentlichen Datasets verwendet, um bösartige und gutartige Daten zu extrahieren Portable ausführbare Datei (PE):

Wir empfehlen Ihnen, die Dokumentation der Datensätze sorgfältig durchzulesen (Sophos/Reversing Labs README, PE-Malware-Dataset für maschinelles Lernen), um die Malware-Objekte sicher zu handhaben. Je nach Ihren Vorlieben können Sie auch andere Datensätze verwenden, solange sie Malware und gutartige Objekte im Binärformat bereitstellen.

Als Nächstes führen wir Sie durch die folgenden Schritte der Lösung:

  • Objekte vorverarbeiten und in Bilder konvertieren
  • Stellen Sie Vorverarbeitungsressourcen mit CloudFormation bereit
  • Wählen Sie das Modell
  • Trainiere das Modell
  • Bewerten Sie das Modell
  • Kosten und Leistung

Objekte vorverarbeiten und in Bilder konvertieren

Wir verwenden Step Functions, um den Objektvorverarbeitungs-Workflow zu orchestrieren, der die folgenden Schritte umfasst:

  1. Nehmen Sie die meta.db sqllite-Datenbank von Sorel-20m S3-Bucket und konvertieren Sie ihn in eine CSV-Datei. Dies hilft uns, die .csv-Datei in einen Fargate-Container zu laden und beim Verarbeiten der Malware-Objekte auf die Metadaten zu verweisen.
  2. Nehmen Sie die Objekte aus dem sorel-20m S3-Bucket und erstellen Sie eine Liste der Objekte im csv-Format. Indem wir diesen Schritt ausführen, erstellen wir eine Reihe von .csv-Dateien, die parallel verarbeitet werden können, wodurch die Zeit für die Vorverarbeitung verkürzt wird.
  3. Konvertieren Sie die Objekte aus dem sorel-20m S3 Bucket in Bilder mit einer Reihe von Jobs. AWS Batch-Array-Jobs haben gemeinsame Parameter zum Konvertieren der Malware-Objekte in Bilder. Sie werden als Sammlung von Bildkonvertierungsjobs ausgeführt, die auf mehrere Hosts verteilt und gleichzeitig ausgeführt werden.
  4. Wählen Sie eine vorgegebene Anzahl von Bildern für das Modelltraining mit einer Reihe von Jobs aus, die den Malware-Kategorien entsprechen.
  5. Ähnlich wie in Schritt 2 nehmen wir die gutartigen Objekte aus dem benign-160k S3-Bucket und erstellen eine Liste von Objekten im csv-Format.
  6. Ähnlich wie in Schritt 3 konvertieren wir die Objekte aus dem gutartigen 160k-S3-Bucket in Bilder mit einer Reihe von Jobs.
  7. Wählen Sie aufgrund des Amazon Rekognition-Standardkontingents für das Training benutzerdefinierter Labels (250 Bilder) eine vorgegebene Anzahl gutartiger Bilder für das Modelltraining aus.
  8. Wie in der folgenden Abbildung gezeigt, werden die Bilder in einem S3-Bucket gespeichert, der zuerst nach Malware- und gutartigen Ordnern partitioniert ist, und anschließend wird die Malware nach Malware-Typen partitioniert.
    S3-Eimer trainieren
    Trainingsdatensatz

Stellen Sie die Vorverarbeitungsressourcen mit CloudFormation bereit

Voraussetzungen:

Die folgenden Voraussetzungen sind erforderlich, bevor Sie fortfahren können:

Bereitstellung von Ressourcen

Der CloudFormation-Stack erstellt die folgenden Ressourcen:

Parameter

  • STACK_NAME – Name des CloudFormation-Stacks
  • AWS_REGION – AWS-Region, in der die Lösung bereitgestellt wird
  • AWS_PROFILE – Benanntes Profil, das für den AWS CLI-Befehl gilt
  • ARTEFACT_S3_BUCKET – S3-Bucket, in dem der Infrastrukturcode gespeichert wird. (Der Bucket muss in derselben Region erstellt werden, in der sich die Lösung befindet).
  • AWS_ACCOUNT – AWS-Konto-ID.

Verwenden Sie die folgenden Befehle, um die Ressourcen bereitzustellen

Stellen Sie sicher, dass der Docker-Agent auf dem Computer ausgeführt wird. Die Bereitstellungen erfolgen mit Bash-Skripten, und in diesem Fall verwenden wir den folgenden Befehl:

bash malware_detection_deployment_scripts/deploy.sh -s '' -b 'malware-
detection--artifacts' -p  -r "" -a

Dadurch werden die lokalen Artefakte erstellt und bereitgestellt, auf die die CloudFormation-Vorlage (z. B. cloudformation.yaml) verweist.

Trainiere das Modell

Da Amazon Rekognition das Modelltraining für Sie übernimmt, sind Computer Vision oder hochspezialisierte ML-Kenntnisse nicht erforderlich. Sie müssen Amazon Rekognition jedoch einen Bucket bereitstellen, der mit entsprechend gekennzeichneten Eingabebildern gefüllt ist.

In diesem Beitrag trainieren wir zwei unabhängige Bildklassifizierungsmodelle über die Funktion für benutzerdefinierte Labels:

  1. Malware-Erkennungsmodell (binäre Klassifizierung) – Identifizieren Sie, ob das angegebene Objekt bösartig oder gutartig ist
  2. Malware-Klassifizierungsmodell (Mehrklassenklassifizierung) – Identifizieren Sie die Malware-Familie für ein bestimmtes bösartiges Objekt

Anleitung zum Modelltraining

Die in der folgenden exemplarischen Vorgehensweise aufgeführten Schritte gelten für beide Modelle. Daher müssen Sie die Schritte zweimal durchlaufen, um beide Modelle zu trainieren.

  1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die Amazon Rekognition trösten.
  2. Wählen Sie im linken Bereich aus Verwenden Sie benutzerdefinierte Beschriftungen. Die Zielseite für benutzerdefinierte Amazon Rekognition-Etiketten wird angezeigt.
  3. Wählen Sie auf der Landingpage von Amazon Rekognition Custom Labels aus Los geht´s.
  4. Wählen Sie im linken Bereich Auswählen Projekte.
  5. Auswählen Projekt anlegen.
  6. In Projektname, geben Sie einen Namen für Ihr Projekt ein.
  7. Auswählen Projekt anlegen um Ihr Projekt zu erstellen.
  8. Im Projekte Wählen Sie auf der Seite das Projekt aus, dem Sie einen Datensatz hinzufügen möchten. Die Detailseite für Ihr Projekt wird angezeigt.
  9. Auswählen Datensatz erstellendem „Vermischten Geschmack“. Seine Datensatz erstellen Seite angezeigt wird.
  10. In Startkonfiguration, wählen Beginnen Sie mit einem einzelnen Datensatz um Amazon Rekognition den Datensatz für Training und Test aufteilen zu lassen. Beachten Sie, dass Sie möglicherweise bei jeder Iteration des Modelltrainings unterschiedliche Testbeispiele erhalten, was zu leicht unterschiedlichen Ergebnissen und Bewertungsmetriken führt.
  11. Auswählen Importieren Sie Bilder aus dem Amazon S3-Bucket.
  12. In S3-URI, geben Sie den S3-Bucket-Speicherort und den Ordnerpfad ein. Derselbe S3-Bucket, der aus dem Vorverarbeitungsschritt bereitgestellt wird, wird verwendet, um beide Datasets zu erstellen: Malware-Erkennung und Malware-Klassifizierung. Das Malware-Erkennungs-Dataset verweist auf den Stamm (d. h. s3://malware-detection-training-{account-id}-{region}/) des S3-Buckets, während das Malware-Klassifizierungs-Dataset auf den Malware-Ordner verweist (d. h. s3://malware-detection-training-{account-id}-{region}/malware) des S3-Buckets. Trainingsdaten
  13. Auswählen Fügen Sie Bilder basierend auf dem Ordner automatisch Etiketten hinzu.
  14. Auswählen Datensätze erstellen. Die Datensatzseite für Ihr Projekt wird geöffnet.
  15. Auf dem Zugmodell Seite wählen Zugmodell. Der Amazon-Ressourcenname (ARN) für Ihr Projekt sollte sich in der befinden Projekt auswählen Bearbeitungsfeld. Wenn nicht, geben Sie den ARN für Ihr Projekt ein.
  16. Im Möchten Sie Ihr Modell trainieren? Dialogfeld, wählen Sie Zugmodell.
  17. Wählen Sie nach Abschluss des Trainings den Namen des Modells aus. Das Training ist beendet, wenn der Modellstatus lautet AUSBILDUNG_ABGESCHLOSSEN.
  18. Im Modelle Abschnitt, wählen Sie die Modell verwenden Registerkarte, um mit der Verwendung des Modells zu beginnen.

Weitere Einzelheiten finden Sie in den benutzerdefinierten Labels von Amazon Rekognition Erste Schritte -Guide.

Bewerten Sie das Modell

Wenn die Trainingsmodelle vollständig sind, können Sie auf die Bewertungsmetriken zugreifen, indem Sie auswählen Überprüfen Sie die Metriken auf der Modellseite. Amazon Rekognition bietet Ihnen die folgenden Metriken: F1-Score, durchschnittliche Genauigkeit und Gesamterinnerung, die häufig verwendet werden, um die Leistung von Klassifizierungsmodellen zu bewerten. Letztere sind gemittelte Metriken über die Anzahl der Labels.

Im Leistung pro Label finden Sie die Werte dieser Metriken pro Label. Um außerdem die Werte für Richtig Positiv, Falsch Positiv und Falsch Negativ zu erhalten, wählen Sie die aus Testergebnisse anzeigen.

Metriken des Malware-Erkennungsmodells

Auf dem ausgewogenen Datensatz von 199,750 Bildern mit zwei Labels (gutartig und Malware) erhielten wir die folgenden Ergebnisse:

  • F1-Punktzahl – 0.980
  • Durchschnittliche Genauigkeit – 0.980
  • Gesamterinnerung – 0.980

Metriken des Malware-Erkennungsmodells

Metriken des Malware-Klassifizierungsmodells

Auf dem ausgewogenen Datensatz von 130,609 Bildern mit 11 Labels (11 Malware-Familien) erhielten wir die folgenden Ergebnisse:

  • F1-Punktzahl – 0.921
  • Durchschnittliche Genauigkeit – 0.938
  • Gesamterinnerung – 0.906

Metriken des Malware-Klassifizierungsmodells

Um zu beurteilen, ob das Modell gut abschneidet, empfehlen wir, seine Leistung mit anderen Branchen-Benchmarks zu vergleichen, die mit demselben (oder zumindest ähnlichen) Datensatz trainiert wurden. Leider gibt es zum Zeitpunkt des Schreibens dieses Beitrags keine vergleichenden Forschungsergebnisse, die dieses Problem mit derselben Technik und denselben Datensätzen lösen. Innerhalb der Data-Science-Community wird jedoch ein Modell mit einem F1-Score über 0.9 als sehr gut angesehen.

Kosten und Leistung

Aufgrund der serverlosen Natur der Ressourcen werden die Gesamtkosten durch die Zeit beeinflusst, die jeder Dienst verwendet wird. Andererseits wird die Leistung durch die Menge der verarbeiteten Daten und die Größe des Trainingsdatensatzes beeinflusst, die an Amazon Rekognition übermittelt wird. Für unsere Kosten- und Leistungsschätzung betrachten wir das folgende Szenario:

  • 20 Millionen Objekte werden aus dem sorel-Datensatz katalogisiert und verarbeitet.
  • 160,000 Objekte werden aus dem PE Malware Machine Learning Dataset katalogisiert und verarbeitet.
  • Ungefähr 240,000 Objekte werden in den Trainings-S3-Bucket geschrieben: 160,000 Malware-Objekte und 80,000 gutartige Objekte.

Basierend auf diesem Szenario betragen die durchschnittlichen Kosten für die Vorverarbeitung und Bereitstellung der Modelle 510.99 USD. Für jede Stunde, die Sie das Modell nutzen, werden Ihnen zusätzlich 4 USD/h berechnet. Die detaillierte Kostenaufstellung finden Sie im schätzen generiert über die AWS-Preisrechner.

In Bezug auf die Leistung sind dies die Ergebnisse unserer Messung:

  • ~2 h, bis der Vorverarbeitungsablauf abgeschlossen ist
  • ca. 40 Stunden für den Abschluss des Malware-Erkennungsmodells
  • ~40 h für das Malware-Klassifizierungsmodell-Training bis zum Abschluss

Aufräumen

Um zukünftige Gebühren zu vermeiden, halt und löschen die Amazon Rekognition-Modelle und löschen Sie die Vorverarbeitungsressourcen über die zerstören.sh Skript. Die folgenden Parameter sind erforderlich, um das Skript erfolgreich auszuführen:

  • STACK_NAME – Der Name des CloudFormation-Stacks
  • AWS_REGION – Die Region, in der die Lösung bereitgestellt wird
  • AWS_PROFILE – Das benannte Profil, das für den AWS CLI-Befehl gilt

Verwenden Sie die folgenden Befehle, um die auszuführen ./malware_detection_deployment_scripts/destroy.sh Skript:

bash malware_detection_deployment_scripts/destroy.sh -s  -p
 -r 

Zusammenfassung

In diesem Beitrag haben wir gezeigt, wie Malware-Erkennung und -Klassifizierung mit Amazon Rekognition durchgeführt wird. Die Lösungen folgen einem serverlosen Muster und nutzen Managed Services für die Datenvorverarbeitung, Orchestrierung und Modellbereitstellung. Wir hoffen, dass dieser Beitrag Ihnen bei Ihren laufenden Bemühungen zur Bekämpfung von Malware hilft.

In einem zukünftigen Beitrag zeigen wir einen praktischen Anwendungsfall der Malware-Erkennung, indem wir die in diesem Beitrag bereitgestellten Modelle verwenden.


Über die Autoren

Edvin HallvaxhiuEdvin Hallvaxhiu ist Senior Global Security Architect bei AWS Professional Services und hat eine Leidenschaft für Cybersicherheit und Automatisierung. Er unterstützt Kunden beim Aufbau sicherer und konformer Lösungen in der Cloud. Außerhalb der Arbeit reist er gerne und treibt Sport.

Rahul ShauryaRahul Shaurya ist Principal Data Architect bei AWS Professional Services. Er hilft und arbeitet eng mit Kunden zusammen, die Datenplattformen und Analyseanwendungen auf AWS aufbauen. Außerhalb der Arbeit liebt Rahul lange Spaziergänge mit seinem Hund Barney.

Bruno DeftoBruno Defto ist Global Security Architect bei AWS Professional Services. Er konzentriert sich darauf, Kunden beim Aufbau sicherer und zuverlässiger Architekturen in AWS zu unterstützen. Außerhalb der Arbeit interessiert er sich für die neuesten Technologie-Updates und Reisen.

Nadim MajedNadim Majed ist Datenarchitekt bei AWS Professional Services. Er arbeitet Seite an Seite mit Kunden, die ihre Datenplattformen auf AWS aufbauen. Außerhalb der Arbeit spielt Nadim Tischtennis und schaut gerne Fußball.

Zeitstempel:

Mehr von AWS Maschinelles Lernen