DE102018129692A1 - Tiefgehendes Lernen anhand von Ausführungsverlaufsdaten zur Erkennung von Exploits - Google Patents

Tiefgehendes Lernen anhand von Ausführungsverlaufsdaten zur Erkennung von Exploits Download PDF

Info

Publication number
DE102018129692A1
DE102018129692A1 DE102018129692.4A DE102018129692A DE102018129692A1 DE 102018129692 A1 DE102018129692 A1 DE 102018129692A1 DE 102018129692 A DE102018129692 A DE 102018129692A DE 102018129692 A1 DE102018129692 A1 DE 102018129692A1
Authority
DE
Germany
Prior art keywords
images
execution
execution history
processor
image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102018129692.4A
Other languages
English (en)
Inventor
Salmin Sultana
Li Chen
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102018129692A1 publication Critical patent/DE102018129692A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/217Validation; Performance evaluation; Active pattern learning techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/62Text, e.g. of license plates, overlay texts or captions on TV images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/044Recurrent networks, e.g. Hopfield networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/047Probabilistic or stochastic networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Virology (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Image Analysis (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Hierin offenbarte Technologien sehen ein Umwandeln eines ersten Datenelements eines ersten Kontrollflusspakets in ein erstes Pixel, wobei das erste Datenelement eine oder mehrere Verzweigungen anzeigt, die während einer bekannten Ausführung einer Anwendung genommen wurden, Generieren einer Anordnung von Pixeln unter Verwendung des ersten Pixels und eines oder mehrerer anderer Pixel, die mit einem oder mehreren anderen Kontrollflusspaketen assoziiert sind, die aus der bekannten Ausführung generiert wurden, Transformieren der Pixelanordnung in eine Reihe von Bildern und Verwenden eines maschinellen Lernalgorithmus mit Eingaben vor, um ein Verhaltensmodell zu trainieren, um ein bösartiges Verhalten in einer unbekannten Ausführung der Anwendung zu identifizieren. Die Eingaben enthalten ein oder mehrere Bilder der Reihe von Bildern und jeweilige dem einen oder den mehreren Bildern zugewiesene Bildkennzeichnungen. Spezifischere Ausführungsformen enthalten ein Extrahieren des ersten Kontrollflusspakets aus einem Ausführungsverlauf, der zumindest einen Teil der bekannten Ausführung repräsentiert.

Description

  • VERWEIS AUF EINE VERWANDTE ANMELDUNG
  • Diese Anmeldung beansprucht unter 35 U.S.C. §119(e) Priorität gegenüber der vorläufigen US-Anmeldung mit der Seriennr. 62/611,312, angemeldet am 28. Dezember 2017, mit dem Titel „DEEP LEARNING ON PROCESSOR TRACE DATA FOR EXPLOIT DETECTION“, Erfinder Li Chen et al. Die Offenbarung der vorangehenden vorläufigen Anmeldung wird als Teil der Offenbarung dieser Anmeldung betrachtet und wird durch Bezugnahme vollständig in die Offenbarung dieser Anmeldung aufgenommen.
  • TECHNISCHES GEBIET
  • Diese Offenbarung betrifft allgemein das Gebiet der Computersysteme und genauer Computersicherheit unter Verwendung von tiefgehendem Lernen anhand von Ausführungsverlaufsdaten zur Erkennung von Exploits.
  • STAND DER TECHNIK
  • Malware hat sich in den letzten paar Jahren wesentlich weiterentwickelt, wie aus dem hohen Volumen und der Komplexität der Angriffe ersichtlich ist. Einige Sicherheitsbedrohungsmeldungen weisen darauf hin, dass jeden Tag mehr als eine Million Malwarevarianten das Internet treffen. Herkömmliche signaturbasierte Malware-Erkennungstechniken können bei bestimmten Typen von Angriffstechniken unwirksam sein, wie zum Beispiel Codeobfuskation und Polymorphismus, die verwendet werden, um das Schreiben neuer Malwarevarianten und Zero-Day-Exploits zu automatisieren. Darüber hinaus sind erweiterte Kontrollflussangriffe auf Codewiederverwendungsbasis heute einer der vorherrschenden Arten von Arbeitsspeicherexploits und werden durch herkömmliche Malwareerkennungstechniken nicht wirksam beseitigt. Folglich werden wirksamere Techniken für eine automatische Erkennung und Klassifizierung von Malware benötigt.
  • Figurenliste
  • Um ein vollständigeres Verständnis der vorliegenden Offenbarung und ihrer Merkmale und Vorteile zu vermitteln, wird auf die folgende Beschreibung in Verbindung mit den beigefügten Figuren Bezug genommen, wobei gleiche Bezugszeichen gleiche Teile bezeichnen, in denen:
    • 1 ein vereinfachtes Blockdiagramm ist, das beispielhafte Komponenten eines Systems für tiefgehendes Lernen und Malwareerkennung nach mindestens einer Ausführungsform der vorliegenden Offenbarung veranschaulicht;
    • 2 ein vereinfachtes Blockdiagramm ist, das einen beispielhaften Ablauf eines Systems für tiefgehendes Lernen und Malwareerkennung nach mindestens einer Ausführungsform veranschaulicht;
    • 3 ein vereinfachtes Blockdiagramm ist, das mit Komponenten eines Systems für tiefgehendes Lernen und Malwareerkennung assoziierte beispielhafte Trainings- und Erkennungsabläufe nach mindestens einer Ausführungsform veranschaulicht;
    • 4A eine Veranschaulichung eines beispielhaften Formats eines kurzen Genommen/Nichtgenommen(TNT)-Kontrollflusspakets nach mindestens einer Ausführungsform ist;
    • 4B eine Veranschaulichung eines beispielhaften Formats eines langen Genommen/Nichtgenommen(TNT)-Kontrollflusspakets nach mindestens einer Ausführungsform ist;
    • 5 eine Veranschaulichung eines beispielhaften Formats eines Ziel-Internetprotokoll(TIP)-Kontrollflusspakets nach mindestens einer Ausführungsform ist;
    • 6 ein vereinfachtes Blockdiagramm ist, das mit einem System für tiefgehendes Lernen und Malwareerkennung assoziierte beispielhafte Abläufe nach mindestens einer Ausführungsform veranschaulicht;
    • 7 eine repräsentative Veranschaulichung eines Beispiels einer Zeitreihe von von einem System für tiefgehendes Lernen und Malwareerkennung generierten Bildern nach mindestens einer Ausführungsform ist;
    • 8 ein Beispiel eines Systems für tiefgehendes Lernen und Malwareerkennung nach mindestens einer Ausführungsform veranschaulicht;
    • 9 ein vereinfachtes Ablaufdiagramm ist, das mit einem System für tiefgehendes Lernen und Malwareerkennung assoziierte beispielhafte Abläufe nach mindestens einer Ausführungsform veranschaulicht;
    • 10 ein vereinfachtes Ablaufdiagramm ist, das mit einem System für tiefgehendes Lernen und Malwareerkennung assoziierte beispielhafte Abläufe nach mindestens einer Ausführungsform veranschaulicht;
    • 11 ein vereinfachtes Ablaufdiagramm ist, das mit einem System für tiefgehendes Lernen und Malwareerkennung assoziierte beispielhafte Abläufe nach mindestens einer Ausführungsform veranschaulicht;
    • 12 ein vereinfachtes Ablaufdiagramm ist, das mit einem System für tiefgehendes Lernen und Malwareerkennung assoziierte beispielhafte Abläufe nach mindestens einer Ausführungsform veranschaulicht;
    • 13 ein vereinfachtes Ablaufdiagramm ist, das mit einem System für tiefgehendes Lernen und Malwareerkennung assoziierte beispielhafte Abläufe nach mindestens einer Ausführungsform veranschaulicht;
    • 14 ein Graph ist, der eine Betriebskennlinie eines Empfängers (ROC) veranschaulicht, die Ergebnisse zeigt, die die Wirksamkeit eines beispielhaften, von einem System für tiefgehendes Lernen und Malwareerkennung erstellten Verhaltensmodells nach mindestens einer Ausführungsform anzeigen;
    • 15 ein Blockdiagramm ist, das einen beispielhaften Prozessorkern und Arbeitsspeicher nach mindestens einer Ausführungsform veranschaulicht;
    • 16 ein Blockdiagramm einer beispielhaften Computerarchitektur nach mindestens einer Ausführungsform ist; und
    • 17 ein Blockdiagramm einer beispielhaften Ein-Chip-System(SoC)-Computerarchitektur nach mindestens einer Ausführungsform ist.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Offenbarung stellt verschiedene mögliche Ausführungsformen oder Beispiele zum Implementieren von tiefgehendem Lernen an Kontrollflussdaten einer Anwendungsausführung bereit, um Exploits in einem Rechensystem zu erkennen. In einer Ausführungsform kann eine Einrichtung mit einer Rechenplattform konfiguriert sein, die Hardware enthält, die Kontrollflussinformationen über eine Anwendungsausführung erzeugen kann. In einem Beispiel enthält diese Hardware Intel® Processor Trace (PT), von Intel Corporation in Santa Clara, Kalifornien, angeboten. Intel® PT kann Prozessorverlaufspakete generieren, die Kontrollflussdaten einer Anwendungsausführung enthalten. Die Kontrollflussdaten können verwendet werden, um gutartige und bösartige Ausführungsvorgänge einer Anwendung zu klassifizieren. Auf Grundlage dieser Klassifizierung kann das System zwischen gutartigen und bösartigen Kontrollflussdaten unterscheiden und dementsprechend unter anderem Kontrollfluss-, getarnte oder datenorientierte Programmier(DOP)-Angriffe erkennen.
  • Zu Veranschaulichungszwecken der mehreren Ausführungsformen, die tiefgehendes Lernen an Kontrollflussdaten einer Anwendungsausführung auf einem Rechensystem ermöglichen, ist es wichtig, zuerst mögliche Malwareaktivitäten zu verstehen, die im Rechensystem auftreten können. Dementsprechend kann die folgende grundlegende Information als eine Basis angesehen werden, anhand der die vorliegende Offenbarung richtig erklärt werden kann.
  • Code-wiederverwendungsbasierte erweiterte Kontrollflussangriffe sind heutzutage die vorherrschende Kategorie von Arbeitsspeicherexploits. Diese Angriffe nutzen eine Arbeitsspeicherschwachstelle aus, um den Kontrollfluss eines Programms zu kapern und danach die Malware herunterzuladen und auszuführen. Neuerdings tendieren Angreifer dazu, getarnte Angriffe auszuführen, die, anstatt einmalige Angriffe zu starten, bösartige Nutzlasten in gutartige Anwendungen implantieren und gleichzeitig unter dem Mantel von gutartigen Prozessen ausgeführt werden. Während gegen verschiedene Codewiederverwendungsangriffe (z. B. rücksprungorientierte Programmierung (ROP), aufruforientierte Programmierung (COP)) Verteidigungsvorgänge entwickelt wurden, gibt es komplexere Varianten (z. B. sprungorientierte Programmierung (JOP), gefälschte objektorientierte Programmierung (COOP) usw.), die immer noch gefährlich sind. Darüber hinaus, da die Abwehr von Kontrollflussangriffen immer breiter eingesetzt wird, bleiben mögliche Arbeitsspeicherexploits. Angriffe, die auf Nicht-Kontrolldaten im Arbeitsspeicher abzielen, können zum Beispiel Informationslecks oder Erweiterung von Zugriffsberechtigungen zeigen. Datenorientierte Programmierung (DOP) ist eine systematische Technik, die Werte auf Datenebene für bösartige Zwecke verwendet, während die Integrität des Kontrollflusses vollständig beibehalten wird.
  • Maschinelle Lernalgorithmen sind für einige Verhaltensanalysen von Malwareausführungsvorgängen auf Grundlage von Systemaufrufen, Portable-Executable(PE)-Kopfzeilenanalyse usw. verwendet worden. Tiefgehendes Lernen ist ein Typ von maschinellem Lernen, der eine geschichtete Algorithmenstruktur, als künstliche neuronale Netze (oder ANNs) bekannt, verwendet, um Muster aus Datendarstellungen zu lernen und zu erkennen. ANNs werden allgemein als Systeme von miteinander verbundenen „Neuronen“ dargestellt, die Werte aus Eingaben berechnen können. ANNs stellen eine der relevantesten und verbreitetsten Techniken dar, die verwendet werden, um Muster zu erlernen und zu erkennen. Folglich haben sich ANNs als eine wirksame Lösung für intuitive Mensch/Maschine-Interaktionen herausgestellt, die ein Benutzererlebnis verbessern, ein neues Rechenmuster, das als „kognitives Rechnen“ bekannt ist. Unter anderen Verwendungsmöglichkeiten können ANNs für Bildverarbeitung, Sprach- und Objekterkennung oder Verarbeitung natürlicher Sprache verwendet werden. Faltende neuronale Netze (CNNs) und Deep Belief Networks (DBNs) sind nur einige wenige Beispiele von Rechenmustern, die ANN-Algorithmen einsetzen.
  • Bestehende Malwareerkennungs- und -klassifizierungssysteme auf Grundlage von tiefgehendem Lernen erlernen Merkmale aus einer statischen Analyse einer ausführbaren Datei oder aus einer Verhaltensanalyse zur Laufzeit. Diese neuronalen Netzwerk-Malwareklassifizierungseinheiten sind jedoch gegenüber feindlichen Eingaben anfällig. Durch Erstellen von feindlichen Malwareproben oder Anwendungsprogrammierschnittstellen(API)-Aufrufsequenzen kann ein Angreifer die Malwareklassifizierungseinheit beispielsweise irreführen und eine hohe Falschklassifizierungsrate erzielen, ohne die Funktionalität der Malware zu beeinflussen. Die vorgeschlagenen Angriffe sind gegen viele Klassifizierungseinheiten wirksam, einschließlich rekurrente neuronale Netzwerkvarianten (RNN), Feed-Forward-DNNs und Klassifizierungseinheiten mit herkömmlichem maschinellem Lernen wie Support Vector Machine (SVM). Darüber hinaus erfordert eine API-Aufruf-basierte Malwareanalyse auch eine wesentliche manuelle Merkmalsentwicklung, um die für Malwareausführung am relevantesten API-Aufrufe auszuwählen.
  • In einem Beispiel implementieren einige Systeme eine Malwareerkennung auf Basis von maschinellem Lernen unter Verwendung von hardwaregestützten Funktionen auf niedriger Ebene. Ein System verwendet beispielsweise CPU-Leistungsindikatoren, um mikroarchitektonische Signaturen von Malware zu modellieren und Varianten von Malware aus bekannten Malware-Signaturen zu erkennen. Die zugrunde liegende Beobachtung ist, dass Programme in einem Zeitreihenverhalten (z. B. L1-Aufrufe, ausgeführte arithmetische µOps usw.) eindeutig sind, während Varianten der gleichen Programme ähnliche Dinge tun. Die Systeme trainieren einen Satz von Klassifikatoren mit dem vollständigen Verlauf des Programmverhaltens durch Abtasten verschiedener Leistungsindikatoren zusammen mit den Prozessidentifikatoren des aktuell ausgeführten Programms zu jedem N-ten Zyklus. Die maschinellen Lernklassifikatoren werden auf Thread- und Anwendungsgranularitätsebene angewandt, um Varianten bekannter Malware zu erkennen. In einem anderen Beispiel fördert ein System die Nutzung von mikroarchitektonischen Merkmalen zur Erkennung von Malwareexploits in einem anomaliebasierten Detektor. Sie setzen architektonische Ereignisse (LOAD, STORE, ARITH, BR, CALL, CALL_D, CA LL_ID, RET) und mikroarchitektonische Ereignisse (LLC, MIS_LLC, MISP_BR, MISP_RET, MISP_CALL, MISP_BR_C, MIS_ICACHE, MIS _ITLB, MIS -DTLBL, MIS -DTLBS, STLB_HIT, %MIS_LLC, %MISP BR, %MISP_RET) ein, um Grundwertmodelle von zu schützenden gutartigen Programmen aufzubauen, und verwenden diese Profile, um Abweichungen zu erkennen, die aufgrund von Malware-Ausnutzung auftreten. In noch einem weiteren Beispiel erweitert ein System Prozessoren mit einem Online-Detektor auf Hardwarebasis, MAP, der als erste Verteidigungslinie dient, um Malware von legitimen Programmen zu unterscheiden und dem System bei der Priorisierung zu helfen, wie kostspieligere softwarebasierte Lösung anzuwenden sind. Die MAP-Logik befindet sich am Ende der Prozessorpipeline nach der Anweisungsfestschreibungsphase. Eine Merkmalssammeleinheit (FC-Einheit) sammelt Merkmale, wie architektonische Ereignisse (genommene und unmittelbare Verzweigungen, Arbeitsspeicherzugriffe usw.), Arbeitsspeicheradressen (Histogramm der Frequenz von Arbeitsspeicheradressdistanz usw.) und ausgeführten Anweisungen (Frequenz von verschiedenen Anweisungen/Opcodes usw.), und sendet diese an eine Vorhersageeinheit (PU). Die PU klassifiziert den gesammelten Merkmalsvektor einmal alle 10.000 Anweisungen und sendet die Vorhersagen an ein Online-Erkennungsmodul (OD-Modul). Das OD-Modul wendet einen Zeitreihenalgorithmus an, um eine Entscheidung über den Prozess zu treffen.
  • Andere Malwareerkennungsverfahren können konstruiert werden, um von Intel® Processor Trace (PT) generierte Prozessorverlaufspakete auszuwerten, um Malware zu erkennen. Intel® PT ist eine Hardwarefunktion, die Kontrollflussinformationen einer Anwendungsausführung aufzeichnet, einschließlich Anwendungszeiger, indirekte Verzweigungsziele usw., und eine Zeitreihenanalyse, anweisungsgranulare Analyse usw. von Ausführungsvorgängen ermöglicht. Da es eine Hardwarefunktion ist, weist Intel® PT Einsicht in alle auf der CPU ausgeführten Anweisungen auf und stellt deshalb den vollständigen Kontrollflussverlauf einer Anwendungsausführung bereit. Diese Fähigkeit von Intel® PT macht es für eine blanke Malwareanalyse geeignet, die ausweichende Malware erkennen kann, die eine Malwareerkennung auf virtueller Maschinenbasis oder Sandkastenbasis umgehen kann.
  • Einige Malwareerkennungssysteme können Prozessorverlaufsdaten einsetzen, indem sie die Pakete des aktuellen Verlaufs mit den legitimen Paketen in der Datenbank abgleichen. Falls es eine Diskrepanz gibt, wird eine Bedrohung identifiziert. Diese Art von deterministischer Lösung ist üblicherweise exakt. Angesichts der enormen Menge von Prozessorverlaufsdaten, die für eine Anwendung, die ausgeführt wird, generiert werden können, ist es jedoch fast unmöglich, zur Laufzeit einen deterministischen Vergleich durchzuführen. Darüber hinaus sind deterministische Lösungen nicht auf eine große Menge von vom System bereitgestellte Verlaufsdaten skalierbar. Obwohl ein manueller oder deterministischer Vergleich Angriffe erkennen kann, sind derartige Verfahren nicht auf eine große Menge von Prozessorverlaufsdaten oder eine Erkennung zur Laufzeit skalierbar.
  • Ein System für tiefgehendes Lernen und Malwareerkennung 100, wie in 1 gezeigt, löst viele der vorgenannten Probleme (und mehr). Das System für tiefgehendes Lernen und Malwareerkennung 100 kann künstliche Intelligenz, maschinelles Lernen und tiefgehendes Lernen einsetzen, um eine Sicherheitslösung auf Ausführungsverlaufsbasis zu implementieren und gleichzeitig das Skalierbarkeitsproblem, wie es oben identifiziert wurde, (und andere beispielhafte Probleme) zu lösen. Ein tiefgehendes neuronales Netz (DNN) kann zum Beispiel verwendet werden, um gut- und bösartige Ausführungsvorgänge zu klassifizieren. Diese Lösung funktioniert auch dann, wenn sich der Angreifer ändert oder Rauschen zu seinem Angriffscode hinzufügt. Eine derartige Lösung kann darüber hinaus mit Kontrollfluss, Nicht-Kontrolldaten-Angriffen und sogar getarnten Angriffen behandeln.
  • In einem Beispiel ist das System für tiefgehendes Lernen und Malwareerkennung 100 ein intelligentes System, das eine leichte Bildumwandlung von Ausführungsverlaufsdaten implementiert, um Angriffe effizient zu erkennen. Es können ein oder mehrere tiefgehende hierarchische Ensemblelernalgorithmen verwendet werden, um gutartige und bösartige Ausführungsvorgänge einer Anwendung zu klassifizieren. Die Kontrollflusspakete (z. B. in einem Ausführungsverlauf) können in einen Strom von Pixeln umgewandelt werden und ein tiefgehendes Verhaltensmodell für die jeweilige Anwendung kann an segmentierten Sequenzen von Pixeln trainiert werden, um gut- und bösartige Ausführungsvorgänge zu kennzeichnen. Zur Laufzeit erzeugt das trainierte und validierte Verhaltensmodell eine Bewertung für jede Segmentierung. Die endgültige Entscheidung hängt von einem EnsembleAbstimmungsschema ab. Da in den Trainingsdaten Rauschen vorhanden sein kann, können die Parameter im Abstimmungsschema kreuzvalidiert werden, um eine falsch positive Rate zu reduzieren.
  • Sicherheitsprodukte können unter Verwendung eines derartigen Systems implementiert werden, um eine Malwareerkennungsfunktionalität durch effizientes und genaues Erkennen von Kontrollflussexploits, beispielsweise unter Verwendung von Intels Hardwarefunktion, Processor Trace, zu verbessern. Darüber hinaus kann dieser Ansatz mit anderen Sicherheitslösungen kombiniert werden, um einen ganzheitlichen Ansatz bereitzustellen, um Malwareaktivität auf Rechenplattformen zu erkennen. In einigen Ausführungsformen kann ein hierin offenbartes System zur Verbesserung von Malwareerkennungsfunktionalität durch Erkennen von Kontrollflussexploits tiefgehendes Inception-Transferlernen an einem Ausführungsverlauf, wie Intel-Hardware Processor Trace, verwenden du eine wirksame Bedrohungserkennung ermöglichen. In anderen Ausführungsformen kann ein hierin offenbartes System einen tiefgehenden Lernalgorithmus von Grund auf trainieren, um Kontrollflussexploits in einem Ausführungsverlauf wirksam zu erkennen. Ausführungsformen von hierin offenbarten Systemen können eine höhere Klassifizierungsgenauigkeit und niedrigere falsch positive Raten als herkömmliche maschinelle Lernalgorithmen (ML-Algorithmen) aufweisen und gleichzeitig die Kosten der Funktionskonstruktion reduzieren, da diese auf tiefgehendem Lernen basiert. Insbesondere resultiert die auf Kontrollflussdaten angewandte Pixelumwandlung in minimalem bis keinem Verlust von Informationen aus dem Umwandeln der rohen Ausführungsverlaufsdaten in eine Zeitreihe von Bildern für maschinelles Lernen und Malwareerkennung. Darüber hinaus kann ein derartiges System das Problem von verrauschten Trainingskennzeichnungen beheben und die optimalen Parameter für eine robustere Erkennung von Bedrohungen und eine verbesserte Rate von falsch positiven Ergebnissen auswählen, unter anderen beispielhaften Vorteilen.
  • 1 veranschaulicht ein System für tiefgehendes Lernen und Malwareerkennung 100 zum Trainieren eines Verhaltensmodells und Verwenden des trainierten Verhaltensmodells, um eine bösartige Ausführung klar zu erkennen und einen Angriff zu erkennen. Das System 100 enthält einen Benutzerraum, einen Systemkern und Hardware. Die Hardware enthält eine Zentralverarbeitungseinheit, CPU (110) mit Ausführungsverlaufshardware 112. Der Systemkern enthält einen Ausführungsverlaufssammlungstreiber 120. Der Benutzerraum enthält eine Ausführungsverlaufsammeleinheit 130, einen Ausführungsverlaufsdecodierer 140, ein Bildumwandlungsmodul 150 und ein Klassifizierungsmodul mit tiefgehendem neuronalem Netz (DNN) 160. Verlaufsdatenpakete 115 strömen vom Prozessor 110 zum Ausführungsverlaufssammlungstreiber 120. Ein Ausführungsverlauf 125, der Kontrollflusspakete beinhaltet, strömt vom Ausführungsverlaufssammlungstreiber 120 im Systemkern zur Ausführungsverlaufsammeleinheit 130 des Benutzerraums. In mindestens einigen Ausführungsformen kann der Ausführungsverlauf 125 zusätzlich zu den Kontrollflusspaketen auch andere Verlaufsdatenpakete enthalten. Der Ausführungsverlauf 125 wird von der Ausführungsverlaufsammeleinheit 130 zum Ausführungsverlaufsdecodierer 140 weitergeleitet. Eine Sequenz von Kontrollflusspaketen 145 wird durch den Ausführungsverlaufsdecodierer 140 extrahiert und an das Bildumwandlungsmodul 150 weitergeleitet. Bildrahmen 155 werden durch das Bildumwandlungsmodul 150 generiert und an das DNN-Klassifizierungsmodul 160 weitergeleitet. Die Bildrahmen 155 können in mindestens einer Ausführungsform in Form einer Zeitreihe von Bildern sein.
  • Nun wird die mögliche Infrastruktur kurz besprochen, die mit dem System für tiefgehendes Lernen und Malwareerkennung 100 assoziiert sein kann. Das System 100 kann in einer beliebigen Recheneinrichtung bereitgestellt werden, die fähig ist, Informationen über Softwareausführung auf Hardwarethreads zu erfassen. Diese erfassten Informationen werden hierin auch als ‚Verlaufsdaten‘ bezeichnet. Verlaufsdaten enthalten Kontrollflussdaten der Anwendungsausführung, wie Zeitgebungs- und Programmflussinformationen (z. B. Hinweise auf genommene und nicht genommene Verzweigungen, Verzweigungsziele). Die Verlaufsdaten können auch programminduzierte, mit Modi verbundene Informationen (z. B. Zustandsübergänge, Kontrollregisteränderungen) enthalten.
  • Wie hierin verwendet kann eine ,Recheneinrichtung‘, in dem das System für tiefgehendes Lernen und Malwareerkennung 100 implementiert sein kann, unter anderem eine mobile Einrichtung (z. B. ein Smartphone, ein Tablet, Phablet, ein E-Book-Lesegerät usw.), einen Personalcomputer, einen Laptop, ein Gamingsystem, ein Infotainmentsystem in einem Fahrzeug (z. B. einem Automobil, einem Flugzeug, einem Zug, einem Bus, einer U-Bahn usw.), eine tragbare elektronische Einrichtung, eine eingebettete Einrichtung und eine beliebige andere Komponente, ein beliebiges anderes Element oder Objekt enthalten, die bzw. das betrieben werden kann, um Kontrollflussdaten einer Anwendungsausführung zu generieren. In anderen Implementierungen kann die Einrichtung 200 Netzwerkelemente wie Server, Geräte, Router, Prozessoren, Verarbeitungssysteme oder eine beliebige andere geeignete Komponente oder ein beliebiges anderes geeignetes Element oder Objekt enthalten, die bzw. das betrieben werden kann, um Informationen in einer Netzwerkumgebung auszutauschen und Kontrollflussdaten einer Anwendungsausführung zu generieren.
  • In einer Ausführungsform ist der Prozessor 110 ein Systemprozessor, der mit Ausführungsverlaufshardware 112 ausgestattet ist, die Kontrollflussdaten einer Anwendungsausführung erfassen kann und Kontrollflusspakete generieren kann, die die erfassten Kontrollflussinformationen enthalten. Eine von der Ausführungsverlaufshardware generierte Sequenz von Paketen, die zumindest die erfassten Kontrollflussdaten, die mit einer Anwendungsausführung verbunden sind, wird hierin als ein ,Ausführungsverlauf‘ bezeichnet. In einem Beispiel kann die Funktion Intel® Processor Trace (PT) als Ausführungsverlaufshardware 112 des Prozessors 110 implementiert sein. Alternativ könnte eine beliebige andere geeignete Hardware verwendet werden, die fähig ist, Kontrollflusspakete für eine Anwendungsausführung zu erzeugen. Die Ausführungsverlaufshardware 112 kann konfiguriert sein, eine Anwendung zur Laufzeit zu überwachen, um Ausführungsverlaufsdaten zu erfassen, die Kontrollflussinformationen der Anwendungsausführung enthalten, einschließlich eines Anweisungszeigers, indirekter Verzweigungsziele, bedingter Verzweigungsentscheidungen usw., und eine Zeitreihenanalyse, eine Analyse mit Anweisungsgranularität usw. der Ausführungsvorgänge zu ermöglichen. Hardwarebasierte Ausführungsverläufe sind fälschungssicher und bieten daher den vollständigen Kontrollflussverlauf einer Anwendungsausführung.
  • Sowohl gutartige als auch bösartige Ausführungsverläufe einer Anwendung können verwendet werden, um ein Verhaltensmodell in Übereinstimmung mit Ausführungsformen des Systems für tiefgehendes Lernen und Malwareerkennung 100 zu trainieren. Ein Ausführungsverlauf wird als ,gutartig` bezeichnet, wenn er auf Grundlage einer gutartigen Version einer Anwendung (d. h. ohne Malware) generiert wird. Ein Ausführungsverlauf wird als ,bösartig‘ bezeichnet, wenn er auf Grundlage der Ausführung einer Anwendung generiert wird, die zur Ausführung eines Angriffs ausgenutzt wird.
  • Im Systemkern des Systems 100 kann der Ausführungsverlaufssammlungstreiber 120 mit der Ausführungsverlaufshardware 112 wechselwirken und diese konfigurieren. Der Treiber 120 empfängt Verlaufsdatenpakete 115, die von der Ausführungsverlaufshardware 112 generiert wurden. Diese Verlaufsdatenpakete können dem Systemkern bereitgestellt werden, während sie generiert werden. Die Ausführungsverlaufsammeleinheit 130 ist eine Anwendung im Benutzerraum, die mit dem Ausführungsverlaufssammlungstreiber 120 wechselwirkt, um Laufzeit-Ausführungsverlaufsdaten für eine überwachte Anwendung zu konfigurieren und zu sammeln. Die Ausführungsverlaufsammeleinheit 130 empfängt einen Ausführungsverlauf 125, der Verlaufsdatenpakete 115 enthält, vom Ausführungsverlaufssammlungstreiber 120. In einigen Szenarien kann der Ausführungsverlauf 125 alle der während einer Anwendungsausführung generierten Verlaufsdatenpakete enthalten. Während der Trainingsphase kann die Anwendung die Ausführung abschließen, bevor der Ausführungsverlauf dem Benutzerraum zum Training bereitgestellt wird. In anderen Szenarien kann jeder Ausführungsverlauf 125, der der Ausführungsverlaufsammeleinheit 130 bereitgestellt wird, einen unterschiedlichen Abschnitt von während der Anwendungsausführung generierten Verlaufsdatenpaketen enthalten. Während der Erkennungsphase können der Ausführungsverlaufsammeleinheit 130 zum Beispiel mehrere sequenzielle Ausführungsverläufe während der Ausführung einer Anwendung bereitgestellt werden.
  • Der Ausführungsverlaufsdecodierer 140 ist eine Anwendung im Benutzerraum, die den rohen Ausführungsverlauf 125 von der Ausführungsverlaufsammeleinheit 130 empfängt. In einigen Implementierungen kann der Ausführungsverlauf 125 eine Sequenz von Paketen enthalten, die die gleichen und/oder unterschiedlichen Arten von Informationen aufweisen. Der Ausführungsverlaufsdecodierer decodiert den Ausführungsverlauf 125 und extrahiert Sequenzen von Paketen, die einen Kontrollfluss bei Verzweigungen (z. B. indirekten Verzweigungen, bedingte Verzweigungen) der Anwendungsausführung anzeigen. In einem Beispiel können Kontrollflusspakete Genommen/Nicht-genommen(TNT)-Pakete und Ziel-IP(TIP)-Pakete enthalten. Ein TIP-Paket repräsentiert den Kontrollflusstransfer an einer indirekten Verzweigung zur Zieladresse in der Nutzlast. Ein Genommen/Nichtgenommen(TNT)-Paket enthält eine Anzahl von bedingten Verzweigungen, wobei jedes Bit den Kontrollflusstransfer an einer bedingten Verzweigung repräsentiert. Falls während der Ausführung eine bedingte Verzweigung genommen wird, wird ein Bit mit einem Wert von 1 in einem TNT-Paket aufgezeichnet. Andernfalls wird das Bit als eine 0 aufgezeichnet.
  • Der Ausführungsverlaufsdecodierer 140 kann die TIP- und TNT-Pakte extrahieren. In einer Ausführungsform können die TIP- und TNT-Pakete dem Bildumwandlungsmodul 150 bereitgestellt werden. In einer anderen Ausführungsform kann der Ausführungsverlaufsdecodierer 140 Daten aus den Paketen (z. B. Arbeitsspeicheradressen aus TIP-Paketen, ein oder mehrere Nutzlastbytes aus langen TNT-Paketen, ein Bit aus kurzen TNT-Paketen) extrahieren und dem Bildumwandlungsmodul 150 diese Informationen bereitstellen. Indirekte Verzweigungsziele können zum Beispiel aus TIP-Paketen extrahiert werden. In einigen Implementierungen können zufällig binäre Informationen ebenfalls extrahiert werden, die beim Umwandeln der TIP-Pakete in Pixel zu verwenden sind.
  • Das Bildumwandlungsmodul 150 ist eine Datenvorverarbeitungskomponente, die extrahierte Kontrollflusspakete 145 (oder aus den Kontrollflusspaketen extrahierte Bytes) zur Umwandlung in einen Bereich von Pixeln empfängt. Ein Pixel ist das kleinste steuerbare Element in einem Rasterbild. Jeder Pixelwert liegt zwischen 0 und 255. In einem Beispiel wandelt das Bildumwandlungsmodul 150 die Kontrollflusspakete oder Abschnitte der Kontrollflusspakete in eine eindimensionale Pixelanordnung um. Um das große Datenvolumen aufzunehmen, kann die Pixelanordnung in N Teilanordnungen segmentiert werden. Jede segmentierte Pixelsequenz wird in ein Graustufenbild transformiert. Jedes Graustufenbild kann dreimal vervielfältigt werden. Als Ergebnis ist jedes Verhalten (z. B. indirekte Verzweigungen, bedingte Verzweigungen) ein 3-Kanal-Bild, das ein segmentiertes Verhalten des Ausführungsverlaufs angibt. Deshalb wandelt das Bildumwandlungsmodul 150 den Ausführungsverlauf in eine Zeitreihe von Bildern um, in 1 als Bildrahmen 155 angezeigt.
  • Das DNN-Klassifizierungsmodul 160 ist eine Komponente im Benutzerraum, die vom Bildumwandlungsmodul 150 generierte Bildrahmen 155 empfängt. Der DNN-Klassifizierer 160 wendet auf die eingebetteten Daten ein faltendes neuronales Netz (CNN) zur Klassifizierung an. In einem Trainingsablauf führt das DNN-Klassifizierungsmodul 160 Transferlernen an der Zeitreihe von Bildern durch, um das gutartige/bösartige Verhaltensmodell zu trainieren. Die Zeitreihe von Bildern und die Kennzeichnungen der Bilder als gutartig/bösartig können als Eingabe für das CNN verwendet werden. Ein Verhaltensmodell auf niedriger Ebene, das gutartige oder bösartige Verhalten jedes Verlaufssegments (d. h. jedes Bilds) kennzeichnet, kann generiert werden. In einem Erkennungsablauf (oder Laufzeitablauf) verwendet das DNN-Klassifizierungsmodul das trainierte Verhaltensmodell, um einen Exploit auf Grundlage einer Unregelmäßigkeit in der Ausführung zu erkennen.
  • 2 veranschaulicht ein Blockdiagramm, das eine beispielhafte Implementierung einer Pipeline für tiefgehendes Lernen 200 zeigt, die von einem beispielhaften System, wie dem System für tiefgehendes Lernen und Malwareerkennung 100, implementiert werden kann. Das beispielhafte System kann eine Exploiterkennung ein probabilistisches Klassifizierungsproblem behandeln, wobei das Ziel ist, eine Ausführung als gutartig oder bösartig zu kennzeichnen. In mindestens einer Ausführungsform repräsentiert die Pipeline für tiefgehendes Lernen 200 Funktionen, um ein tiefgehendes hierarchisches Ensemblelernen zu ermöglichen, um einen eingehenden Ausführungsverlauf als gutartig oder bösartig zu klassifizieren. Da das System in seiner Natur hierarchisch sein kann, kann das System zuerst ein Verhaltensmodell mit feiner Granularität für eine bestimmte Anwendung aufbauen. Zur Laufzeit wird der eingehende Ausführungsverlauf in eine Sequenz von Zeitreihenbildern segmentiert und an jeder Segmentierung bewertet. Die endgültige Entscheidung basiert auf einem Ensemble von Bewertungen, die vom Verhaltensmodell bereitgestellt werden. Die Pipeline für tiefgehendes Lernen weist im Wesentlichen die folgenden drei Hauptprozesse auf: 1) Vorverarbeitung und Segmentierung, 2) Aufbau des Verhaltensmodells auf Basis von tiefgehendem Lernen und 3) dynamische Ensembleklassifizierung.
  • Im Vorverarbeitungs- und Segmentierungsprozess kann die Pipeline für tiefgehendes Lernen 200 eine Verlaufsdatenpaketphase 202, die von einem Systemprozessor (z. B. dem Prozessor 110) generiert werden, eine Umwandlungsphase von ausgewählten Verlaufsdatenpaketen (z. B. Kontrollflusspaketen) in eine Pixelintensität 204, eine Blockerzeugungsphase (oder Segmenterzeugungsphase) 206 und eine Neuskalierungsphase der Blöcke in ein Bild 208 enthalten. Der Prozess zum Aufbau eines Verhaltensmodells auf Grundlage von tiefgehendem Lernen kann eine Transferlernphase 210 enthalten, um ein Modell zu trainieren. Der dynamische Ensembleklassifizierungsprozess kann eine Ensemble- und hierarchische Phase 220 enthalten, um Klassifizierungsergebnisse zu erzeugen, ob die ausgewählten Verlaufsdatenpakete einen Angriff anzeigen.
  • 3 veranschaulicht ausgewählte Abschnitte der Architektur des Systems für tiefgehendes Lernen und Malwareerkennung 100 und Abläufe, die auf die Architektur in Übereinstimmung mit einem oder mehreren Ausführungsformen angewendet werden können. Die veranschaulichte Architektur enthält den Prozessor 110 mit der Ausführungsverlaufshardware 112, dem Ausführungsverlaufsdecodierer 140, dem Bildumwandlungsmodul 150 und dem DNN-Klassifizierungsmodul 160. Darüber hinaus enthält die Architektur einen Malwaredetektor 180. Das DNN-Klassifizierungsmodul 160 enthält ein Modul für maschinelles Lernen 162 und eine Bildklassifizierungseinheit 164.
  • 3 veranschaulicht einen beispielhaften Trainingsablauf 310 und einen beispielhaften Erkennungsablauf 320 des Systems für tiefgehendes Lernen und Malwareerkennung 100. Während des Trainingsablaufs 310 wird ein Verhaltensmodell an bekannten gutartigen Proben und bekannten bösartigen Proben einer Anwendung, wie der Anwendung 330, trainiert. Dementsprechend werden während des Trainingsablaufs 310 bekannte Verlaufsdaten 115A durch die Ausführungsverlaufshardware 112 generiert. Wenn der Verlaufsdatendecodierer 140 die bekannten Verlaufsdaten 115A empfängt, werden bekannte Kontrollflusspakete 145A extrahiert und dem Bildumwandlungsmodul 150 bereitgestellt.
  • Während des Erkennungsablaufs 320 wird das während des Trainingsablaufs 310 trainierte Verhaltensmodell verwendet, um zu ermitteln, ob eine Anwendung, die ausgeführt wird, wie zum Beispiel Anwendung 330, einem Angriff ausgesetzt ist. Dementsprechend werden während des Erkennungsablaufs 330 unbekannte Verlaufsdaten 115B durch die Ausführungsverlaufshardware 112 generiert. Wenn der Verlaufsdatendecodierer 140 die unbekannten Verlaufsdaten 115B empfängt, die in Form eines Ausführungsverlaufs sein können, der Verlaufsdatenpakete enthält, werden unbekannte Kontrollflusspakete 145B extrahiert und dem Bildumwandlungsmodul 150 bereitgestellt.
  • Kontrollflusspakete in einem Ausführungsverlauf können verwendet werden, um eine Ausführung zu kennzeichnen. Dementsprechend wandelt das Bildumwandlungsmodul 150 in einer oder mehreren Ausführungsformen Kontrollflusspakete (z. B. 145A oder 145B) in eine Zeitreihe von Bildern (z. B. 155A oder 155B) um, die die Ausführung der Anwendung (z. B. 330) kennzeichnen. In mindestens einer Ausführungsform ist der Prozess zum Umwandeln der Kontrollflusspakete in eine Zeitreihe von Bildern der gleiche, egal, ob die Kontrollflusspakete bekannte, während eines Trainingsablaufs (z. B. 310) generierte Kontrollflusspakete oder unbekannte, während eines Erkennungsablaufs (z. B. 320) generierte Kontrollflusspakete sind. In mindestens einer Ausführungsform können die Kontrollpakete Genommen/Nicht-genommen(TNT)-Pakete und/oder Ziel-IP(TIP)-Pakete enthalten. Anfänglich kann eine leichtgewichtige Umwandlung durchgeführt werden, um die TNT- und TIP-Pakete in einen Pixelstrom umzuwandeln. Jeder Pixelwert liegt zwischen 0 und 255. Nun werden spezifische beispielhafte Prozesse zum Umwandeln von TNT-Paketen und TIP-Paketen in eine Zeitreihe von Bildern beschrieben.
  • Ein Genommen/Nicht-genommen(TNT)-Paket enthält eine Anzahl von bedingten Verzweigungen, wobei jedes Bit den Kontrollflusstransfer an einer bedingten Verzweigung repräsentiert. Falls während der Ausführung eine bedingte Verzweigung genommen wird, wird ein Bit mit einem Wert von 1 in einem TNT-Paket aufgezeichnet. Andernfalls wird das Bit als eine 0 aufgezeichnet. Wie in den 4 und 5 gezeigt, kann in einem Beispiel eine Pixelumwandlung unter Verwendung von zwei Varianten von TNT-Paketen eingesetzt werden: (1) ein kurzes TNT-Paket aus einem Byte, (2) ein langes TNT-Paket aus bis zu acht Bytes.
  • 4A zeigt ein beispielhaftes kurzes TNT-Paketformat 400 aus einem Byte. Zeile 410 zeigt das Byte in einem kurzen TNT-Paket an und Spalten 420 zeigen die Bitpositionen innerhalb des Bytes 410 an. Ein kurzes TNT-Paket weist das niederwertigste Bit 402 als einen 1-Bit-Kopf auf. Das kurze TNT-Paket kann von 1 bis 6 TNT-Bits enthalten, in 4A als B1-B6 bezeichnet. Das letzte gültige TNT-Bit ist von einer nachfolgenden ,1' oder einem Stopp-Bit gefolgt. Ein Stopp-Bit 404 wird zum Beispiel im kurzen TNT-Paketformat 400 auf Grundlage davon gezeigt, dass das Paket 6 TNT-Bits B1-B6 enthält. Falls ein kurzes TNT-Paket nicht voll ist (d. h. weniger als 6 TNT-Bits), wird das Stopp-Bit vorverlegt und die nachfolgenden Bits des Pakets werden jeweils mit einer ,0' gefüllt. Für ein kurzes TNT-Paket kann das 1-Byte-Paket in einen vorzeichenlosen 1-Byte-Wert umgewandelt werden, der eine Pixelintensität repräsentiert. Dieser Wert kann zwischen 0 und 255 liegen.
  • 4B zeigt ein beispielhaftes langes TNT-Paketformat 450 aus bis zu acht Bytes. Zeilen 460 zeigen die Bytes in einem langen TNT-Paket an und Spalten 470 zeigen die Bitpositionen innerhalb der Bytes an. Ein langes TNT-Paket weist die niederwertigsten zwei Bits 462 als einen 2-Bit-Kopf auf. Eine Nutzlast 466 enthält die höchstwertigen drei bis acht Bytes. Das lange TNT-Paket kann von 1 bis 47 TNT-Bits in der Nutzlast enthalten, in 4B als B1...B47 bezeichnet. Die TNT-Bits B1...BN repräsentieren die letzten N bedingten Verzweigungen, sodass B1 die älteste ist und BN die jüngste ist. Dementsprechend repräsentiert B1 im kurzen TNT-Paket 450 die älteste bedingte Verzweigung und B47 repräsentiert die jüngste bedingte Verzweigung. Das letzte gültige TNT-Bit ist von einer nachfolgenden ,1' oder einem Stopp-Bit gefolgt. Ein Stopp-Bit 402 wird zum Beispiel im langen TNT-Paketformat 450 auf Grundlage davon gezeigt, dass das Paket 47 TNT-Bits B1-B47 enthält. Falls ein langes TNT-Paket nicht voll ist (d. h. weniger als 47 TNT-Bits), wird das Stopp-Bit vorverlegt und die nachfolgenden Bits des Pakets werden jeweils mit einer ,0' gefüllt. Für ein langes TNT-Paket kann der 2-Byte-Kopf 462 entfernt werden und die Länge der Paket-Nutzlast kann ermittelt werden. Jedes Byte der Nutzlast 464 kann in einen vorzeichenlosen 1-Byte-Wert umgewandelt werden, der eine Pixelintensität repräsentiert. Dieser Wert kann zwischen 0 und 255 liegen. Daher kann ein langes TNT-Paket 1 bis 6 Pixel generieren.
  • Ein TIP-Paket repräsentiert den Kontrollflusstransfer an einer indirekten Verzweigung zur in der Nutzlast des TIP-Pakets enthaltenen Zieladresse. 5 repräsentiert ein beispielhaftes TIP-Paketformat 500. Zeilen 510 zeigen die Bytes in einem TIP-Paket an und Spalten 520 zeigen die Bitpositionen innerhalb der Bytes an. In einem in 5 gezeigten Beispiel weist das TIP-Paket einen 1-Byte-Kopf 512 und bis zu einer 8 Byte langen Nutzlast 514 auf. Im 1-Byte-Kopf 512 werden die niederwertigsten 5 Bits (d. h. die Bits 0-4) verwendet, um ein TIP-Paket zu identifizieren. Die nächsten 3 Bits (d. h. die Bits 5-7), die hierin auch als ein „IPBytes“-Feld bezeichnet werden, zeigen an, wie die Zieladressennutzlast komprimiert ist. Abhängig vom Komprimierungsmodus kann die Größe der Zieladressen(TargetIP)-Nutzlast von 0 bis 8 Bytes variieren.
  • 6 ist ein vereinfachtes Blockdiagramm, das einen beispielhaften Prozess 600 zum Umwandeln eines TIP-Pakets in eine Anordnung von 5 Pixeln veranschaulicht. In diesem beispielhaften Prozess 600 werden in TIP-Paketen enthaltene Zieladressen normiert, um die Auswirkungen einer Herstellung einer Zufallsordnung von Lastadressen von Binärdateien zur Laufzeit zu mindern. Adressraumverwürfelung (ASLR) ist zum Beispiel ein Arbeitsspeicherschutzprozess, den einige Betriebssysteme verwenden, um vor Pufferüberlaufangriffen durch Herstellung einer Zufallsordnung der Position zu schützen, an der die Binärdatei zur Laufzeit in den Arbeitsspeicher geladen wird. Normieren einer Zieladresse mindert die Auswirkung der Herstellung einer Zufallsordnung durch ASLR und möglicherweise anderer Zufallsordnungstechniken.
  • Ein TIP-Paket 602 wird vom Bildumwandlungsmodul 150 empfangen. In einigen Szenarien kann die TIP-Paket-Nutzlast keine vollständige Zieladresse enthalten. Stattdessen kann sich die Zieladresse in einem Komprimierungsmodus (z. B. 2 oder 4 Bytes) in der Nutzlast befinden. Bei 604 wird die bestimmte IP-Komprimierung (gegebenenfalls) auf Grundlage des IP-Bytes-Felds im Kopf des TIP-Pakets identifiziert. Das System kann den 1-Byte-Header des TIP-Pakets entfernen und eine IP-Nutzlast 608 aus dem TIP-Paket auf Grundlage des identifizierten IP-Komprimierungsmodus holen. In einem Beispiel einer komprimierten Nutzlast in einem TIP-Paket kann die Zieladresse der indirekten Verzweigung auf Grundlage der letzten IP (d. h. der für das vorangehende TIP-Paket ermittelten Zieladresse) und der komprimierten IP-Nutzlast ermittelt werden. In anderen Szenarien kann das TIP-Paket eine nicht komprimierte Nutzlast (d. h. die vollständige Zieladresse) enthalten und deshalb wird die letzte IP nicht benötigt, um die Zieladresse zu ermitteln. Die Zieladresse 612 und Laufzeitbinärlastinformationen 614 können bei 616 verwendet werden, um die Binärdatei zu identifizieren, zu der die Zieladresse gehört. Jede Binärdatei kann mit einer 1-Byte-Kennung (hierin als eine ,binäre ID‘ bezeichnet) identifiziert werden.
  • Um die Auswirkung von Lastadresszufallsordnung wie ASLR zu normieren, kann der Offset der Zieladresse von der binären Lastadresse bei 622 berechnet werden. Die rekonstruierte Zieladresse 612 und die binäre ID und identifizierte Lastadresse 620 können bei 622 verwendet werden, um einen Offset zu berechnen. Der Zieladressenoffset 624 und die binäre ID 626 können verwendet werden, um die normierte Zieladresse als ein Tupel aus <binäre ID, Offset> zu repräsentieren. In mindestens einer Ausführungsform ist das Tupel 5 Bytes lang, wobei die binäre ID ein Byte und der Offset vier Bytes lang sind. Bei 628 wird das 5-Byte-Tupel in eine Anordnung von 5 Pixeln umgewandelt, unter anderen beispielhaften Implementierungen.
  • Wieder unter Bezugnahme auf 3, wandelt das Bildumwandlungsmodul 150 nach der Umwandlung der TNT- und TIP-Pakete eines Ausführungsverlaufs in Pixel die Pixel (z. B. von kurzen TNT-Paketen und möglicherweise einigen langen TNT-Paketen mit 1-Byte-Nutzlasten) und Pixelanordnungen (z. B. von langen TNT-Paketen mit Mehrbyte-Nutzlasten und TIP-Paketen) in eine eindimensionale Pixelanordnung um. Deshalb wird der Ausführungsverlauf als eine eindimensionale Pixelanordnung repräsentiert. Die Pixelanordnung wird hierin als X bezeichnet, wobei X eine Länge L aufweist und jedes Pixel ein Wert von 0 bis 255 ist, d. h. XE {0, 255}L.
  • Das Bildumwandlungsmodul 150 kann die eindimensionale Anordnung in N Anordnungen oder N Segmente aufteilen, wobei jedes Segment der Anordnung eine Länge von m2 aufweist. In einem Beispiel weist jede Anordnung eine Länge von 50.176 auf, wobei m = 224. Falls L kein Vielfaches von m2 ist, dann wird das letzte Segment aufgefüllt. Jedes Segment wird auf eine zweidimensionale Anordnung der Größe m-mal-m abgebildet und wird als ein Graustufenbild repräsentiert. In mindestens einer Ausführungsform wird jede zweidimensionale Anordnung vervielfältigt, um ein 3-Kanal-Bild zu erzeugen. Dementsprechend wird die Pixeldarstellung X jedes Verlaufs in eine Zeitreihe von Bildern {I1, I2, ... IN} aufgeteilt, wobei jeweils Ik∈ {0,255}mxm und wobei k ∈ {1,2,... N}. Diese Sequenz-zu-Bild-Größenänderung bildet die Form direkt neu ab und erleidet deshalb keinen Informationsverlust.
  • Das DNN-Klassifizierungsmodul 160 empfängt die aus einem Ausführungsverlauf generierte Zeitreihe von Bildern (z. B. 155A oder 155B). In mindestens einer Ausführungsform wendet der DNN-Klassifizierer 160 zur Klassifizierung ein faltendes neuronales Netz (CNN) auf die eingebetteten Daten an. Falls die Zeitreihe von Bildern einen Ausführungsverlauf während eines Trainingsablaufs 310 repräsentiert, wie zum Beispiel die Zeitreihe der Bilder 155A, dann führt das Modul für maschinelles Lernen 162 eine Klassifizierung auf Grundlage der Bilder zum Trainieren eines Verhaltensmodells einer Anwendung durch. Falls eine Zeitreihe von Bildern einen Ausführungsverlauf während eines Erkennungsablaufs 320 repräsentiert, wie zum Beispiel die Zeitreihe der Bilder 155B, dann wendet die Bildklassifizierungseinheit 164 das trainierte Verhaltensmodell auf die Bilder an, um einen Exploit auf Grundlage einer Unregelmäßigkeit in der Ausführung zu erkennen.
  • In einer beispielhaften Implementierung wird ein Verhaltensmodell 170 während mehrerer Trainingsabläufe 310 erstellt. Das Verhaltensmodell ist das Modell mit der feinsten Granularität. Dieses Modell auf niedriger Ebene unterscheidet gutartiges und bösartiges Verhalten einer Anwendungsausführung. Es kann jedoch schwierig sein, ein robustes DNN-Verhaltensmodell zu erstellen. Aus einer maschinellen Lernperspektive (ML-Perspektive) liegt zum Beispiel eine Herausforderung im Problem des verrauschten Grundwissens. Üblicherweise wird bei überwachtem Lernen ein ML-Modell unter Verwendung gekennzeichneter (oder klassifizierter) Daten trainiert. Die Kennzeichnungen an den Trainingsdaten werden als vollständig richtig angenommen. Das Problem einer verrauschten Grundwissenklassifizierung bedeutet, dass die Kennzeichnungen an den Trainingsdaten nicht vollständig richtig sind und Rauschen aufweisen. Am Beginn des Trainings durch das Modul für maschinelles Lernen 160 befasst sich das System mit dem Problem von möglicherweise hohen Raten falsch positiver Ergebnisse aufgrund von verrauschten Trainingsdaten. Während der Erkennung stellt das System eine Parameteroptimierung bereit, bei der ein Parameter hinzugefügt wird, um die Rate falsch positiver Ergebnisse zu reduzieren.
  • Während des Trainings sammelt ein beispielhaftes System einen Ausführungsverlauf für gutartige und bösartige Proben einer Anwendung. Der Trainingsdatensatz eines DNN-Verhaltensmodells auf niedriger Ebene umfasst mehrere Zeitreihen von Bildern, wie die Zeitreihen der Bilder 155A. Um Kennzeichnungen einer Zeitreihe von Bildern bereitzustellen, wird die ursprüngliche, vorab angegebene Kennzeichnung für den entsprechenden Ausführungsverlauf eingesetzt. Gutartige Ausführungsverlaufsdaten sind immer gutartig; daher können die Kennzeichnungen von einem gutartigen Datensatz alle als richtig angesehen werden. Falls der Ausführungsverlauf Xi zum Beispiel gutartig ist, dann werden alle segmentierten Bilder { I 1 i , I 2 i ,   I N i }
    Figure DE102018129692A1_0001
    als gutartig gekennzeichnet. Ein bösartiger Ausführungsverlauf wird jedoch erst dann als bösartig angesehen, wenn ein Angriff eingetreten ist. Vor dem Angriff repräsentiert der Ausführungsverlauf weiterhin eine gutartige Ausführung. Daher ist es stark möglich, dass das Grundwissen für einige der angeblich bösartigen Verhalten innerhalb eines Ausführungsverlaufs tatsächlich gutartig sind. Dies kann zu einer künstlich hohen Rate falsch positiver Ergebnisse führen.
  • Ein beispielhaftes System kann dieses Problem durch Auswählen des letzten t Abschnitts des bösartigen Ausführungsverlaufs zum Training vermeiden. In mindestens einer Implementierung ist der Parameter t für einen Ausführungsverlauf spezifisch und kann den Prozentsatz des Ausführungsverlaufs anzeigen, der zum Training auszuwählen ist. Dieser Parameter t kann entweder (1) durch Identifizieren der Position (z. B. Arbeitsspeicheradresse) im Ausführungsverlauf, die der Initiierung des Malwareangriffs entspricht, oder (2) Bereitstellen einer Abschätzung der Position im Ausführungsverlauf, die der Initiierung des Malwareangriffs entspricht, ermittelt werden. Der Parameter t kann der Prozentsatz des Ausführungsverlaufs sein, der durch die identifizierte (oder geschätzte) Position im Ausführungsverlauf zum Ende des Ausführungsverlaufs definiert wird. Falls die Position des Beginns des Angriffs beispielsweise als auf halbem Weg durch den Ausführungsverlauf eingetreten identifiziert oder geschätzt wird, dann kann der Parameter t 0,5 (50 %) sein. Die identifizierte (oder geschätzte) Position im Ausführungsverlauf kann verwendet werden, um ein entsprechendes Pixel in einem Bild der Zeitreihe der Bilder zu identifizieren. Das Bild, das das identifizierte Pixel enthält, und nachfolgende Bilder in der Zeitreihe der Bilder können als bösartig gekennzeichnet werden. Bilder in der Zeitreihe, die vor dem Bild sind, das das identifizierte Pixel enthält, können verworfen und aus dem Trainingsdatensatz weggelassen werden. In einem Beispiel können Anwendungsprogrammierschnittstellenaufrufe (API-Aufrufe) eingesetzt werden, um die Position im Ausführungsverlauf des Malwareangriffs zu identifizieren. Der API-Aufruf kann auf die Adresse abgebildet werden. Um eine Position eines Malwareangriffs abzuschätzen, kann eine API-Sequenz untersucht und zurück auf eine Position im Ausführungsverlauf abgebildet werden. Darüber hinaus ist der Parameter t während des Trainingsprozesses justierbar, da Malwareangriffe in unterschiedlichen Ausführungsverläufen an unterschiedlichen Positionen innerhalb dieser Ausführungsverläufe initiiert werden können. Als Ergebnis kann das System die Neigung dazu, dass eine gutartige Probe als bösartig betrachtet wird, reduzieren.
  • 7 veranschaulicht eine grafische Darstellung einer möglichen Zeitreihe von Bildern 800 eines bösartigen Ausführungsverlaufs Xi, in dem verrauschte Trainingsdaten in Übereinstimmung mit mindestens einer Ausführungsform gemindert werden. Bilder 700 des bösartigen Ausführungsverlaufs Xi enthalten { I 1 i , I 2 i ,   I N i } .
    Figure DE102018129692A1_0002
    Der Parameter t wird auf Grundlage einer identifizierten Position im Ausführungsverlauf einer Initiierung eines Malwareangriffs ermittelt. In 7 bezeichnet der Parameter k das Bild in der Zeitreihe der Bilder, das ein Pixel enthält, das der identifizierten Position des Beginns des Malwareangriffs im Ausführungsverlauf Xi entspricht. Ein Schwellenwert mithilfe des Parameters t wird auf einen Abschnitt 702 des bösartigen Ausführungsverlaufs Xi angewandt, der Bilder { I k i , I k + 1     i ,   I N i }
    Figure DE102018129692A1_0003
    enthält. Deshalb werden Bilder { I k i , I k + 1     i ,   I N i }
    Figure DE102018129692A1_0004
    jeweils als bösartig gekennzeichnet, wohingegen die Bilder { I 1 i , I 2   i ,   I k 1 i }
    Figure DE102018129692A1_0005
    in mindestens einer Ausführungsform verworfen und im Trainingsdatensatz weggelassen werden.
  • In einigen Implementierungen kann der Trainingsdatensatz nach Verarbeiten, Segmentierung und Auswählen des letzten t Abschnitts von Segmenten von bösartigen Verläufen aus sowohl gutartigen als auch bösartigen Verhaltensweisen bestehen. Jedes Verhalten ist ursprünglich eine Anordnung der Länge 50.176 und das System transformiert jedes Verhalten in ein Graustufenbild aus 224 × 224 Pixeln. In einigen Szenarien kann das Graustufenbild zur Anpassung an unterschiedliche Typen von neuronalen Netzen aufgefüllt (z. B. auf 299 × 299 Pixel) werden. In mindestens einer Ausführungsform wird der Graustufenkanal (z. B. 224 × 224 oder 299 × 299) drei Mal vervielfältigt. Als Ergebnis ist jedes Verhalten durch ein 3-Kanal-Bild repräsentiert, das ein segmentiertes Verhalten eines Ausführungsverlaufs angibt. Jeder Ausführungsverlauf wird deshalb als eine Zeitreihe von Bildern enthaltend angesehen.
  • Wieder unter Bezugnahme auf 3 kann eine Zeitreihe von Bildern (z. B. 155A oder 155B) dem DNN-Klassifizierungsmodul 160 bereitgestellt werden. In mindestens einigen Ausführungsformen kann das Modul für maschinelles Lernen 162 als ein tiefgehendes neuronales Netz (DNN) wie ein faltendes neuronales Netz (CNN) fungieren. Im Allgemeinen enthält ein CNN Eingabe- und Ausgabeschichten, zusätzlich zu vielen verdeckten Schichten. Die verdeckten Schichten können faltende Schichten, Pooling-Schichten und vollständig verbundene Schichten enthalten.
  • 8 veranschaulicht ein CNN-System 800, das eine faltende Schicht 802, eine Pooling-Schicht 804, eine vollständig verbundene Schicht 806 und Ausgabevorhersagen 808 in Übereinstimmung mit Ausführungsformen der vorliegenden Offenbarung enthält. Jede Schicht kann eine einzigartige Art von Operation durchführen. Die faltenden Schichten wenden eine Faltungsoperation auf die Eingabe an, um Merkmale aus dem Eingabebild zu extrahieren, und leiten das Ergebnis an die nächste Schicht weiter. Merkmale eines Bilds können durch Anwenden eines oder mehrerer Filter in Form von Matrizen auf das Eingabebild extrahiert werden, um eine Merkmalsabbildung (oder Neuronencluster) zu erstellen. Wenn eine Eingabe zum Beispiel eine Zeitreihe von Bildern ist, kann die faltende Schicht 802 Filteroperationen 812 auf Pixel jedes Eingabebilds anwenden, wie zum Beispiel Bild 810. Die Filteroperationen 812 können als Faltung eines Filters über ein gesamtes Bild implementiert werden.
  • Ergebnisse der Filteroperationen 812 können zusammen summiert werden, um eine Ausgabe bereitzustellen, wie Merkmalsabbildungen 814, von der faltenden Schicht 802 an die Pooling-Schicht 804. Andere Operationen können ebenfalls durchgeführt werden, wie zum Beispiel eine lineare Gleichrichtereinheitsoperation. Pooling-Schichten kombinieren die Ausgaben von ausgewählten Merkmalen oder Neuronenclustern in einer Schicht in ein einziges Neuron in der nächsten Schicht. In einigen Implementierungen kann die Ausgabe eines Neuronenclusters der Maximalwert im Cluster sein. In einer anderen Implementierung kann die Ausgabe eines Neuronenclusters der Durchschnittswert im Cluster sein. In noch einer anderen Implementierung kann die Ausgabe eines Neuronenclusters die Summe des Clusters sein. Die Pooling-Schicht 804 kann zum Beispiel Teilabtastoperationen 816 (z. B. Maximalwert, Durchschnitt oder Summe) durchführen, um die Merkmalsabbildung 814 auf einen Stapel von reduzierten Merkmalsabbildungen 818 zu reduzieren.
  • Diese Ausgabe der Pooling-Schicht 804 kann der vollständig verbundenen Schicht 806 zugeführt werden, um Mustererkennungen durchzuführen. Vollständig verbundene Schichten verbinden jedes Neuron in einer Schicht mit jedem Neuron in einer anderen Schicht. Die vollständig verbundenen Schichten verwenden die Merkmale von den anderen Schichten, um ein Eingabebild auf Grundlage des Trainingsdatensatzes zu klassifizieren. Die vollständig verbundene Schicht 806 kann einen Satz von Gewichten auf ihre Eingaben anwenden und ein Ergebnis als eine Ausgabe 808 akkumulieren. Ausführungsformen hierin könnten zum Beispiel in Ausgabevorhersagen (z. B. einer Wahrscheinlichkeit) resultieren, ob ein Bild gutartig oder bösartig ist.
  • In der Praxis können faltende und Pooling-Schichten mehrmals auf Eingabedaten angewandt werden, bevor die Ergebnisse an die vollständig verbundene Schicht übertragen werden. Danach wird der endgültige Ausgabewert getestet, um zu ermitteln, ob ein Muster erkannt wurde oder nicht. Jede der faltenden, Pooling- und vollständig verbundenen neuronalen Netzschichten können mit normalen Multiplikations-gefolgt-von-Akkumulations-Operationen implementiert werden. Algorithmen, die auf Standardprozessoren wie CPU oder GPU implementiert sind, können ganzzahlige (oder Festkomma-)Multiplikation und Addition enthalten oder Gleitkomma-Fused-Multiply-Add (FMA). Diese Operationen involvieren Multiplikationsoperationen von Eingaben mit Parametern und eine nachfolgende Summierung der Multiplikationsergebnisse.
  • In mindestens einer Ausführungsform kann das Modul für maschinelles Lernen 162 einen oder mehrere Algorithmen enthalten, um ein tiefgehendes Transferlernen in einem CNN zu ermöglichen, um ein DNN-Verhaltensmodell zu trainieren, wie zum Beispiel das Verhaltensmodell 170. In mindestens einer Ausführungsform wird das Verhaltensmodell 170 für eine bestimmte Anwendung generiert, und andere Verhaltensmodelle können für andere Anwendungen generiert werden. Transferlernen involviert ein Ausleihen des Wissens aus einer anderen Domäne, um es auf eine Zieldomäne anzuwenden. In einer oder mehreren Ausführungsformen ist das Modell auf niedriger Ebene ein Visionsklassifizierungsproblem. Die Zieldomäne ist Bedrohungserkennung und Sicherheit und Computervision kann die andere Domäne sein, aus der Wissen zum Trainieren des Verhaltensmodells ausgeliehen wird. Dementsprechend wird das Wissen, das von anderen großen visuellen Datensätzen, wie ImageNet (z. B. mehr als eine Million Bilder und Tausend Kategorien), auf ein Bedrohungserkennungs- und Sicherheitsverhaltensmodell übertragen. In einer Ausführungsform kann ein CNN verwendet werden, das vorab an einem ImageNet-Datensatz trainiert wurde. Ein Trainingsdatensatz, der die Zeitreihe von Bildern und Kennzeichnungen für jedes der Bilder enthält, kann die Eingabe in ein vorab trainiertes CNN sein, um das Verhaltensmodell zu trainieren.
  • Aufgrund der Verwendung eines Transferlernschemas kann die Segmentierungsgröße m auf 224 gesetzt werden. In mindestens einer Ausführungsform weist das System die Flexibilität auf, ein beliebiges geeignetes CNN für das Transferlernschema zu verwenden, einschließlich, aber nicht notwendigerweise beschränkt auf Visual Geometry Group (VGG) oder Inception, das vorab an einem ImageNet-Datensatz trainiert ist. Es ist anzumerken, dass das System bei Verwendung von Inception-v3 die Ausführungsverlaufsbilder automatisch auf 299 x 299 auffüllen kann. In einigen Implementierungen kann das System zum Beispiel Inception-bn aufgrund seiner schnellen rechnerischen Architektur und hohen Leistung an ImageNet auswählen. Der erste Abschnitt des Netzes kann dann eingefroren werden und das System kann die vollständig verbundenen Schichten an den Ausführungsverlaufsbildern trainieren. Das erneute Trainieren kann an den Schichten nach der letzten Pooling-Schicht durchgeführt werden. Darüber hinaus führt ein Erweitern der Kanäle der ursprünglichen Graustufenbilder durch Vervielfältigen des Graustufenkanals in RBG-Kanäle dazu, dass jedes verhaltenssegmentierte Bild eine Größe aufweist, die mit den vorab trainierten neuronalen Netzen kompatibel ist. Aufgrund des Transferlernschemas ist eine schnellere Modellkonvergenz möglich, wobei das Modell in einem Beispiel fähig ist, innerhalb von 10 Epochen zu konvergieren.
  • Die Validierung kann am trainierten Verhaltensmodell durchgeführt werden. In einem Beispiel können 80 % der verfügbaren Daten zum Training und 20 % der verfügbaren Daten zum Testen verwendet werden. Das Verhaltensmodell kann unter Verwendung von Daten außerhalb der Proben validiert werden, die nach der Sammlung der zum Training des Modells verwendeten Daten gesammelt wurden. Durch Validierung, wie unten ausführlicher besprochen, wird die im Vergleich zu klassischen maschinellen Lernalgorithmen höhere Genauigkeit und niedrigere Rate falsch positiver Ergebnisse des Verhaltensmodells der vorliegenden Offenbarung nachgewiesen.
  • Nach dem Training und Validieren des Verhaltensmodells kann das System eine Laufzeitklassifizierung durchführen. In mindestens einer Ausführungsform kann die Laufzeitklassifizierung durch die Bildklassifizierungseinheit 164 und das trainierte Verhaltensmodell 170 während des in 3 gezeigten Erkennungsablaufs 320 durchgeführt werden. Mit einem gegebenen Ausführungsverlauf verarbeitet das System den Verlauf in eine Zeitreihe von Bildern (z. B. 155B) der Größe 224 x 224 oder 299 x 299. Danach kann das Verhaltensmodell 170 eine Bewertung an der Zeitreihe von Bildern erzeugen. In mindestens einer Ausführungsform kann die endgültige Entscheidung darüber, ob der Ausführungsverlauf ein gutartiger oder ein bösartiger Verlauf ist, auf Ensembleabstimmung beruhen. Anstatt einer einfachen Mehrheitsabstimmung bietet eine Implementierung des Systems ein robusteres Ensembleabstimmungsschema, um die Rate falsch positiver Ergebnisse zu reduzieren.
  • Wie bereits hierin erwähnt, kann die Herausforderung eintreten, ein wirksames Verhaltensmodell zu trainieren, falls Rauschen im Trainingsdatensatz vorhanden ist. Unregelmäßige Verläufe sind nicht immer bösartig und das bösartige Verhalten sollte nur dann gekennzeichnet werden, wenn ein Angriff eintritt. Daher könnten in bestimmten Szenarien einige gutartige Verhaltensweisen inhärent aus den Trainingskennzeichnungen irrtümlich als bösartige Verhaltensweisen gekennzeichnet werden und derartige Fehler werden während des Trainings als das Grundwissen angesehen. Dies könnte möglicherweise zu einem systematischen Fehler in den Test- und Erkennungsphasen und zu einer künstlich höheren Rate falsch positiver Ergebnisse führen.
  • Um das Problem des verrauschten Grundwissens weiter zu behandeln, kann ein beispielhaftes System einen Konvexkombinationsparameter a in das Verhaltensmodell einführen, um die Rate falsch positiver Ergebnisse zu reduzieren. Der Parameter a kann einen Schwellenprozentsatz repräsentieren, der verwendet wird, um zu ermitteln, ob ein bestimmter Ausführungsverlauf bösartig oder gutartig ist. In einem Beispiel ist a = 0,75 (oder 75 %) als ein Standardschwellenwert zum Ermitteln gesetzt, ob der Prozentsatz von Bildern in einem bestimmten Ausführungsverlauf, der als bösartig gewählt wurde, anzeigt, dass der Ausführungsverlauf bösartig ist. Das heißt, falls 75 % oder mehr Bilder als bösartig gewählt wurden, dann wird der Ausführungsverlauf als bösartig klassifiziert. Andernfalls wird der Ausführungsverlauf als gutartig klassifiziert. In mindestens einer Ausführungsform kann eine Stimme eine Bewertung sein, die einem Bild zugewiesen ist, die anzeigt, dass das Bild entweder bösartig oder gutartig ist. Es ist anzumerken, dass der Parameter a bei Bedarf angepasst werden kann, zum Beispiel durch einen Anwender, auf Grundlage bestimmter Implementierungen und/oder Anforderungen. Da das Problem des verrauschten Grundwissens bei Malwareerkennung oft auftreten kann, können in einigen beispielhaften Implementierungen zwei Abwehrmechanismen (z. B. der Parameter t, der während der Testabläufe angewandt wird, und der Parameter a, der während der Erkennungsabläufe angewandt wird) im System bereitgestellt werden, um dieses Problem zu beheben.
  • In einigen Ausführungsformen können zusätzliche Szenarien durch das System beim Ermitteln berücksichtigt werden, ob der Ausführungsverlauf als gutartig oder als bösartig zu klassifizieren ist. Falls zum Beispiel keine Klassifizierung ermittelt werden kann (z. B. falls ein Schwellenprozentsatz von Bildern nicht klassifiziert werden kann), dann könnte der Verlauf erneut in eine kleinere Anzahl von Bildern segmentiert werden und eine Klassifizierung kann erneut versucht werden. In einem Beispiel, falls eine Klassifizierung von N Bildern nicht ermittelt werden kann, dann kann N halbiert werden und eine Klassifizierung kann erneut an den neu generierten N/2 Bildern versucht werden.
  • Ein weiteres Szenario, das vom System berücksichtigt werden kann, ist, wenn der Prozentsatz von bösartigen Bildern, oder der Prozentsatz von gutartigen Bildern nicht innerhalb des Schwellenwerts für die Klassifizierungseinheit liegt, um eine Entscheidung zu treffen. Falls der Prozentsatz von bösartigen Bildern in einem Ausführungsverlauf zum Beispiel innerhalb eines Bereichs fällt, der nicht hoch genug ist, um definitiv als bösartig klassifiziert zu werden, aber nicht niedrig genug ist, um definitiv als gutartig klassifiziert zu werden, dann kann die Klassifizierungseinheit möglicherweise nicht fähig sein, den Ausführungsverlauf zu klassifizieren. In mindestens einer Ausführungsform kann in diesem Szenario eine Benutzerrückmeldung angefordert und empfangen werden, wie der Ausführungsverlauf klassifiziert werden soll. Diese Benutzerrückmeldung kann in die Bildklassifizierungseinheit 164 eingebunden werden. Deshalb können nachfolgende ähnliche Ausführungsverläufe zumindest teilweise auf Grundlage der Benutzerrückmeldung klassifiziert werden.
  • In einer weiteren Ausführungsform zum Durchführen einer Laufzeitklassifizierung können jedem Bild in einer Zeitreihe von Bildern Wahrscheinlichkeiten zugewiesen werden und als eine Grundlage zum Ermitteln verwendet werden, ob der entsprechende Ausführungsverlauf bösartig ist. Ein eingehender Verlauf X weist zum Beispiel vorhergesagte Wahrscheinlichkeiten {p1, p2, ..., pn} auf, wobei jede Wahrscheinlichkeit durch das Verhaltensmodell auf niedriger Ebene 170 an einem der Segmente der Zeitreihe der Bilder 155B erzeugt wird. Das übergeordnete Modell (z. B. die Bildklassifizierungseinheit 164) aggregiert dann die Sequenz der Wahrscheinlichkeiten durch Berechnen des Durchschnitts. Daher ist die Wahrscheinlichkeit, dass ein Prozess einem Angriff ausgesetzt ist, durch P{X∈Y} = {P1, P2, ..., PN} gegeben. In dieser Ausführungsform kann der Parameter p einen Schwellenprozentsatz repräsentieren, der verwendet wird, um zu ermitteln, ob ein bestimmter Ausführungsverlauf bösartig oder gutartig ist, auf Grundlage des Durchschnitts der Sequenz von Wahrscheinlichkeiten, die der Zeitreihe von Bildern zugeordnet sind. In einem Beispiel ist p = 0,75 (oder 75 %) als ein Standardschwellenwert zum Ermitteln, ob der Durchschnitt der Wahrscheinlichkeiten der Bilder, die einen bestimmten Ausführungsverlauf repräsentieren, anzeigt, dass der Ausführungsverlauf selbst bösartig ist. Das heißt, falls der Durchschnitt der Wahrscheinlichkeiten 75 % oder mehr beträgt, dann kann der Ausführungsverlauf als bösartig klassifiziert werden. Andernfalls kann der Ausführungsverlauf als gutartig klassifiziert werden. Es ist anzumerken, dass der Parameter p bei Bedarf angepasst werden kann, zum Beispiel durch einen Anwender, auf Grundlage bestimmter Implementierungen und/oder Anforderungen.
  • Nun auf 9 Bezug nehmend, ist 9 ein vereinfachtes Ablaufdiagramm, das eine hohe Ebene eines möglichen Ablaufs 900 von Operationen veranschaulicht, die mit einem System für tiefgehendes Lernen und Malwareerkennung nach Ausführungsformen hierin assoziiert sind. In mindestens einer Ausführungsform entspricht eine Gruppe von Operationen Aktivitäten von 9. Der Verlaufsdecodierer 140, das Bildumwandlungsmodul 150 und die DNN-Klassifizierungseinheit 160 oder Abschnitte davon können mindestens einen Abschnitt der Gruppe von Operationen einsetzen. Das System für tiefgehendes Lernen und Malwareerkennung 100 kann Mittel wie den Prozessor 110 zum Durchführen der Operationen umfassen. In einer Ausführungsform können eine oder mehrere Operationen des Ablaufs 900 durch den Verlaufsdecodierer 140, das Bildumwandlungsmodul 150 und das DNN-Klassifizierungsmodul 160 durchgeführt werden.
  • Anfänglich wird eine Anwendung auf dem Prozessor 110 ausgeführt und die Ausführungsverlaufshardware 112 läuft, um Verlaufsdatenpakete 115 zu generieren, die der Ausführung der Anwendung entsprechen. Die Verlaufsdatenpakete werden dem Ausführungsverlaufssammlungstreiber 120 bereitgestellt. Eine Sequenz von Verlaufsdatenpaketen, die als ein Ausführungsverlauf 125 bezeichnet wird, wird einer Benutzerraumanwendung, der Ausführungsverlaufsammeleinheit 130 bereitgestellt. Die Ausführungsverlaufsammeleinheit 130 stellt dem Verlaufsdecodierer 140 den Ausführungsverlauf 125 bereit.
  • Bei 902 werden Kontrollflussdatenpakete, die während der Ausführung der Anwendung genommene Verzweigungen anzeigen, wie indirekte Verzweigungen oder bedingte Verzweigungen, aus dem Ausführungsverlauf der Anwendung extrahiert.
  • Bei 904 werden die extrahierten Kontrollflusspakete in Pixel umgewandelt. Ein 1-Byte-Paket wird in ein einzelnes Pixel umgewandelt, wohingegen ein Paket mit einer Mehrbyte-Nutzlast oder einer komprimierten Ziel-IP-Adresse in eine Anordnung von Pixeln umgewandelt wird. Bei 906 werden die Pixel und Pixelanordnungen in eine eindimensionale Anordnung von Pixeln transformiert. Dieser transformierte Verlauf kann mit X mit einer Länge L bezeichnet werden.
  • Bei 908 wird die eindimensionale Anordnung in zwei oder mehr Segmente aufgeteilt, N, wobei N = L/m2, L die Länge der Sequenz X ist und jedes Segment eine Länge m2 aufweist. Bei 910 wird der Verlauf durch Abbilden jedes Segments in eine zweidimensionale Anordnung (oder ein zweidimensionales Bild) von m x m und Vervielfältigen jedes m-x-m-Bild zum Erzeugen eines 3-Kanal-Bilds in eine Zeitreihe von Bildern transformiert. Jedes 3-Kanal-Bild entspricht einem Segment und wird durch Ik mit k ∈ {1,2, ... N} bezeichnet, sodass X = {I1, I2,... IN}, wobei {I1, I2,... IN} die Zeitreihe von Bildern repräsentiert.
  • Bei 912 kann eine Ermittlung erfolgen, ob der Ausführungsverlauf zum Training (bekannte Ausführung) oder zur Malwareerkennung (unbekannte Ausführung) dient. Falls der Ausführungsverlauf zum Training dient, dann können bei 914 Kennzeichnungen, die anzeigen, ob ein Bild gutartig oder bösartig ist, für jedes der Bilder in der Zeitreihe der Bilder ermittelt werden (und diesen zugewiesen werden). Dieser Kennzeichnungsprozess wird hierin unter Bezugnahme auf 11 ausführlicher besprochen.
  • Bei 916 kann ein maschineller Lernalgorithmus mit Eingaben verwendet werden, um ein Verhaltensmodell wie vorher hierin beschrieben zu trainieren. Die Eingaben können die Zeitreihe von Bildern und die mit den Bildern assoziierten Kennzeichnungen enthalten. Das resultierende trainierte Verhaltensmodell kann einen Exploit in einer unbekannten Ausführung auf Grundlage einer Unregelmäßigkeit in der Ausführung erkennen. Das trainierte Verhaltensmodell kann den Exploit auf Grundlage der Eingabe einer Zeitreihe von Bildern erkennen, die einen Ausführungsverlauf der unbekannten Ausführung repräsentieren.
  • Bei 912, falls der Ausführungsverlauf unbekannt ist und für eine mögliche Malwareerkennung ausgewertet wird, dann kann das Verhaltensmodell bei 918 auf die Zeitreihe der Bilder angewandt werden, um jedes Bild zu bewerten. In einigen Implementierungen können die Bilder als gutartig oder bösartig bewertet werden. In anderen Implementierungen kann jedem Bild eine Wahrscheinlichkeit zugewiesen werden, die die Wahrscheinlichkeit oder Eintrittswahrscheinlichkeit anzeigen, dass das Bild bösartig ist.
  • Bei 920 können die bewerteten Bilder ausgewertet werden, um zu ermitteln, ob ein Malwareangriff in der Ausführung vorliegt und der Ausführungsverlauf und/oder die Anwendung kann bzw. können angemessen auf Grundlage der Auswertung als gutartig oder bösartig klassifiziert werden. Falls ermittelt wird, dass ein Malwareangriff vorliegt, können eine oder mehrere Maßnahmen getroffen werden (z. B. Senden einer Warnung an einen Benutzer, Beenden einer Ausführung der Anwendung usw.). Die Prozesse von 918 und 920 wurden vorher hierin beschrieben und werden weiter unter Bezugnahme auf 12 und 13 beschrieben.
  • Nun auf 10 Bezug nehmend, ist 10 ein vereinfachtes Ablaufdiagramm, das einen möglichen Ablauf 1000 von Operationen veranschaulicht, die mit einem System für tiefgehendes Lernen und Malwareerkennung nach Ausführungsformen hierin assoziiert sind. In mindestens einer Ausführungsform entspricht eine Gruppe von Operationen Aktivitäten von 10. Das Bildumwandlungsmodul 150 kann mindestens einen Abschnitt der Gruppe von Operationen einsetzen. Das System für tiefgehendes Lernen und Malwareerkennung 100 kann Mittel wie den Prozessor 110 zum Durchführen der Operationen umfassen. In mindestens einer Ausführungsform bietet der Ablauf 1000 eine mögliche Implementierung zum Umwandeln extrahierter Kontrollflusspakete und Abschnitte von extrahierten Kontrollflusspaketen in Pixeln, wie bei 904 in 9 angezeigt. Der Ablauf 1000 kann für jedes vom Bildumwandlungsmodul 150 empfangene Kontrollflusspaket durchgeführt werden.
  • Bei 1002 wird ein Typ des vom Bildumwandlungsmodul 150 empfangenen Kontrollflusspakets identifiziert. Es kann ermittelt werden, dass das Kontrollflusspaket ein kurzes TNT-Paket ist, das 1 bis 6 TNT-Bits, ein Kopfbit und ein nachfolgendes Bit enthält. Falls ermittelt wird, dass das Kontrollflusspaket ein kurzes TNT-Paket ist, dann kann das Paket bei 1004 in ein Pixel mit einem Wert von 0 bis 255 umgewandelt werden.
  • Falls ermittelt wird, dass das Kontrollflusspaket ein langes TNT-Paket ist, das eine 1-Byte- bis 6-Byte-Nutzlast und einen 2-Byte-Kopf enthält, dann wird bei 1006 die Länge (z. B. die Anzahl der Bytes) in der Nutzlast ermittelt. In mindestens einem Beispiel wird die Länge der Nutzlast durch Untersuchen des Kopfes ermittelt. Bei 1008 kann der Kopf entfernt werden. Bei 1010 können die Nutzlastbytes in ein Pixel oder in eine Pixelanordnung umgewandelt werden, abhängig davon, wie viele Bytes sich in der Nutzlast befinden. Falls das lange TNT-Paket nur ein Byte in der Nutzlast enthält, dann kann das identifizierte eine Byte in ein einzelnes Pixel umgewandelt werden. Falls das lange TNT-Paket jedoch zwei oder mehr Bytes in der Nutzlast enthält, dann kann jedes Byte in der Nutzlast in ein Pixel umgewandelt werden und deshalb kann eine Pixelanordnung generiert werden, falls die Nutzlast mehr als ein Byte enthält. Jedes Pixel kann einen Wert von 0 bis 255 aufweisen.
  • Falls ermittelt wird, dass das Kontrollflusspaket ein TIP-Paket ist, das einen 1-Byte-Kopf und abhängig vom Komprimierungsmodus 0-8 Bytes in der Nutzlast enthält, dann wird bei 1012 der an Adressen in der Nutzlast verwendete Komprimierungsmodus ermittelt. Der Komprimierungsmodus zeigt an, wie die Zieladressennutzlast (TargetIP) komprimiert ist und dieser Modus kann aus den höchstwertigen drei Bits im Kopf identifiziert werden.
  • Bei 1014 kann der Kopf des TIP-Pakets entfernt werden.
  • Bei 1016 kann die Zieladresse der indirekten Verzweigung unter Verwendung des letzten IP und der IP-Nutzlast rekonstruiert werden.
  • Die Zieladresse wird dann normiert, um eine Lastadressenzufallsordnung durch Betriebssystemtechniken wie ASLR zu berücksichtigen. Bei 1018 werden die binäre Lastadresse und eine binäre Kennung der ausführenden Anwendung identifiziert. Bei 1020 wird auf Grundlage der binären Lastadresse und der Zieladresse ein Zieladressenoffset berechnet.
  • Bei 1024 wird ein Tupel generiert, dass die binäre ID und den Zieladressenoffset enthält. In einem Beispiel ist die binäre ID ein Byte lang und der Offset ist vier Bytes lang. Dementsprechend wird das Tupel bei 1026 in eine Anordnung von fünf Pixeln umgewandelt. Jedes Pixel kann einen Wert von 0 bis 255 aufweisen.
  • Nun auf 11 Bezug nehmend, ist 11 ein vereinfachtes Ablaufdiagramm, das eine hohe Ebene eines möglichen Ablaufs 1100 von Operationen veranschaulicht, die mit einem System für tiefgehendes Lernen und Malwareerkennung nach Ausführungsformen hierin assoziiert sind. In mindestens einer Ausführungsform entspricht eine Gruppe von Operationen Aktivitäten von 11. Das DNN-Klassifizierungsmodul 160 oder Abschnitte davon, wie zum Beispiel das Modul für maschinelles Lernen 162, können zumindest einen Abschnitt der Gruppe von Operationen einsetzen. Das System für tiefgehendes Lernen und Malwareerkennung 100 kann Mittel wie den Prozessor 110 zum Durchführen der Operationen umfassen. In mindestens einer Ausführungsform bietet Ablauf 1100 eine mögliche Implementierung zum Kennzeichnen einer Trainingsdateneingabe für einen maschinellen Lernalgorithmus, wie bei 914 in 9 angezeigt. Der Ablauf 1100 wird auf Grundlage von Ausführungsverläufen durchgeführt, die eine ursprüngliche oder bekannte Klassifizierung (z. B. gutartig oder bösartig) aufweisen und deshalb als bekannte Ausführungsverläufe angesehen werden. Der Ablauf 1100 kann aufgerufen werden, wenn eine aus einem bekannten Ausführungsverlauf (oder einem Abschnitt eines bekannten Ausführungsverlaufs) generierte Zeitreihe von Bildern {I1, I2,... IN} vom DNN-Klassifizierungsmodul 160 empfangen wurde.
  • Bei 1102 wird eine ursprüngliche Kennzeichnung des durch die Zeitreihe von Bildern repräsentierten Ausführungsverlaufs (oder des Abschnitts des Ausführungsverlaufs) identifiziert. In mindestens einer Ausführungsform kann die ursprüngliche Kennzeichnung anzeigen, dass der Ausführungsverlauf gutartig oder bösartig ist.
  • Bei 1104 erfolgt eine Ermittlung, ob die ursprüngliche Kennzeichnung anzeigt, dass der Ausführungsverlauf bösartig oder gutartig ist. Falls die ursprüngliche Kennzeichnung anzeigt, dass der Ausführungsverlauf gutartig ist, kann bei 1106 eine Kennzeichnung auf jedes Bild der Zeitreihe der Bilder {I1, I2,... In} angewandt werden, um anzuzeigen, dass von den Bildern repräsentierte Verhaltensweisen gutartig sind.
  • Bei 1104, falls die ursprüngliche Kennzeichnung anzeigt, dass der Ausführungsverlauf bösartig ist, dann wird bei 1108 die Position im Ausführungsverlauf identifiziert, an der ein Malwareangriff initiiert wurde. In anderen Szenarien, falls die Position, an der der Angriff begann, nicht präzise identifiziert werden kann, kann die Position abgeschätzt werden, an der der Angriff begann.
  • Bei 1110 wird ein Pixel in der Zeitreihe von Bildern identifiziert, die der identifizierten Position im Ausführungsverlauf entspricht. Ein Parameter t ist der Prozentsatz des Ausführungsverlaufs, der durch die identifizierte (oder geschätzte) Position im Ausführungsverlauf zum Ende des Ausführungsverlaufs definiert wird. Deshalb ist der Parameter t ein Prozentsatz des Ausführungsverlaufs, der dem Malwareangriff entspricht. Dieser Abschnitt des Ausführungsverlaufs kann Pakete, die generiert wurden, als der Angriff initiiert wurde, und Pakete enthalten, die nach der Initiierung des Angriffs generiert wurden.
  • Bei 1112 kann eine Kennzeichnung auf jedes Bild der Zeitreihe von Bildern angewandt werden, die den letzten t Abschnitt des Ausführungsverlaufs repräsentieren. In einer Zeitreihe von Bildern {I1, I2,... IN}, wobei Ik das Bild ist, das das identifizierte Pixel enthält, können die Bilder, auf die eine Kennzeichnung als bösartig angewandt wird, zum Beispiel als {Ik, Ik+1, ... IN} repräsentiert werden. Die Kennzeichnung zeigt an, dass die von den Bildern repräsentierten Verhaltensweisen, die mit den Kennzeichnungen assoziiert sind, bösartig sind.
  • 12 ist ein vereinfachtes Ablaufdiagramm, das einen möglichen Ablauf 1200 von Operationen veranschaulicht, die mit einem System für tiefgehendes Lernen und Malwareerkennung nach Ausführungsformen hierin assoziiert sind. In mindestens einer Ausführungsform entspricht eine Gruppe von Operationen Aktivitäten von 12. Das Verhaltensmodell 170 und das DNN-Klassifizierungsmodul 160 oder Abschnitte davon, wie zum Beispiel die Bildklassifizierungseinheit 164, können zumindest einen Abschnitt der Gruppe von Operationen einsetzen. Das System für tiefgehendes Lernen und Malwareerkennung 100 kann Mittel wie den Prozessor 110 zum Durchführen der Operationen umfassen. In mindestens einer Ausführungsform bietet Ablauf 1200 eine mögliche Implementierung zum Durchführen einer Klassifizierung zum Erkennen eines Malwareangriffs, wie bei 918-920 in 9 angezeigt. Der Ablauf 1200 wird auf Grundlage von Ausführungsverläufen durchgeführt, die keine ursprüngliche oder bekannte Klassifizierung aufweisen und deshalb als unbekannte Ausführungsverläufe angesehen werden. Der Ablauf 1200 kann beginnen, wenn eine aus einem unbekannten Ausführungsverlauf (oder einem Abschnitt eines unbekannten Ausführungsverlaufs) generierte Zeitreihe von Bildern {I1, I2,... IN} vom DNN-Klassifizierungsmodul 160 empfangen wurde.
  • Bei 1202 kann ein trainiertes Verhaltensmodell auf die unbekannte Zeitreihe von Bildern {I1, I2,... IN} angewandt werden.
  • Bei 1204 erfolgt eine Ermittlung, ob Klassifizierungen der Zeitreihen von Bildern durch das trainierte Verhaltensmodell ermittelt werden können. Falls zum Beispiel keine Klassifizierungen der Bilder auf Grundlage des trainierten Verhaltensmodells erfolgen können oder falls die Klassifizierungen gemacht werden, aber scheinbar nicht exakt sind, dann können die Klassifizierungen der Bilder nicht ermittelbar sein und folglich können den Bildern keine Bewertungen zugewiesen werden. In diesem Szenario kann bei 1216 eine Größenänderung auf Grundlage einer reduzierten Anzahl von Segmenten durchgeführt werden. Falls die Zeitreihe von Bildern zum Beispiel 100 Bilder enthält (d. h. N = 100), dann könnte der Ausführungsverlauf erneut segmentiert werden und Bilder mit geänderter Größe könnten auf Grundlage eines reduzierten Werts von N, wie 1/2 von N generiert werden. Die eindimensionale Anordnung des Ausführungsverlaufs (der z. B. bei 906 von 9 generiert wurde) kann beispielsweise in N' Anordnungen oder N' Segmente aufgeteilt werden, wobei N' = N/2. Deshalb wird in jeder Iteration die Granularität reduziert und das Modell an weniger Proben trainiert.
  • Sobald die neuen Segmente generiert wurden, kann der Ablauf zurück zu 910 von 9 gehen, wo jedes der N' Segmente auf eine zweidimensionale Anordnung abgebildet wird. Dementsprechend wird in diesem Beispiel eine Zeitreihe mit geänderter Größe von 50 Bildern generiert, was die Granularität am gleichen Ausführungsverlauf reduziert. In mindestens einem Beispiel kann die Größe der Bilder auf 224x224 oder 299x299 geändert werden.
  • Wiederum unter Bezugnahme auf 1204, falls die Zeitreihe von Bildern auf Grundlage des trainierten Verhaltensmodells klassifiziert werden kann, kann jedem Segment (oder Bild) der N Segmente bei 1206 eine Bewertung zugewiesen werden. Bewertungen können durch Sk repräsentiert werden, wobei k ∈ {1,2, ... N}, und jede Bewertung (oder Stimme) kann anzeigen, ob ein jeweiliges Bild der Zeitreihe von Bildern gutartig oder bösartig ist.
  • Bei 1208 kann der Prozentsatz von Bildern berechnet werden, die gutartig oder bösartig sind. In einigen Implementierungen wird der Prozentsatz von bösartigen Bildern berechnet. Falls zum Beispiel 80 Bilder von 100 Bildern eine Bewertung aufweisen, die anzeigt, dass sie bösartig sind, dann beträgt der Prozentsatz von bösartigen Bildern 80 % oder 0,8. In einigen Implementierungen wird der Prozentsatz von gutartigen Bildern berechnet. Falls zum Beispiel 70 Bilder von 100 Bildern eine Bewertung aufweisen, die anzeigt, dass sie gutartig sind, dann beträgt der Prozentsatz von gutartigen Bildern 70 % oder 0,7.
  • Bei 1210 erfolgt eine Ermittlung, ob die Klassifizierung des Ausführungsverlaufs ermittelt werden kann. Dieses Szenario kann zum Beispiel eintreten, falls der Prozentsatz von bösartigen Bildern von einem Ausführungsverlauf innerhalb eines Bereichs fällt, der nicht hoch genug ist, um den Ausführungsverlauf als bösartig zu klassifizieren, aber nicht niedrig genug ist, um sicher zu sein, dass der Ausführungsverlauf gutartig ist. In mindestens einigen Implementierungen kann die Klassifizierungseinheit möglicherweise nicht fähig sein, den Ausführungsverlauf zu klassifizieren. Falls die Klassifizierung des Ausführungsverlaufs nicht aufgrund des Prozentsatzes von gutartigen Bildern und/oder des Prozentsatzes von bösartigen Bildern ermittelt werden kann, dann kann bei 1220 eine Benutzerrückmeldung erhalten werden, um bei der Klassifizierung zu helfen, wenn nachfolgend ähnliche Ausführungsverläufe ausgewertet werden.
  • Falls die Klassifizierung des Ausführungsverlaufs aufgrund des Prozentsatzes von gutartigen Bildern und/oder des Prozentsatzes von bösartigen Bildern ermittelt werden kann, dann kann bei 1212 auf Grundlage eines Parameters a eine Ermittlung erfolgen, ob der Ausführungsverlauf bösartig ist. Der Parameter a kann einen Schwellenprozentsatz repräsentieren, der verwendet wird, um zu ermitteln, ob ein bestimmter Ausführungsverlauf bösartig oder gutartig ist, auf Grundlage des Prozentsatzes von bösartigen oder gutartigen Bildern, die im Verlauf durch das Verhaltensmodell identifiziert wurden. In einem Beispiel ist a = 0,75 (oder 75 %) als ein Standardschwellenwert zum Ermitteln, ob der Prozentsatz von Bildern in einem bestimmten Ausführungsverlauf, der als bösartig klassifiziert wurde, anzeigt, dass der Ausführungsverlauf bösartig ist. Das heißt, falls in diesem Beispiel 75 % oder mehr Bilder als bösartig bewertet (oder gewählt) wurden, dann wird der Ausführungsverlauf als bösartig klassifiziert. Andernfalls wird der Ausführungsverlauf als gutartig klassifiziert. In einer anderen Implementierung ist der Parameter a = 0,50 (oder 50 %) als ein Standardschwellenwert zum Ermitteln, ob der Prozentsatz von Bildern in einem bestimmten Ausführungsverlauf, der als gutartig klassifiziert wurde, anzeigt, dass der Ausführungsverlauf gutartig ist. Das heißt, falls in diesem Beispiel 50 % oder mehr Bilder als gutartig bewertet (oder gewählt) wurden, dann wird der Ausführungsverlauf als gutartig klassifiziert.
  • Falls bei 1212 auf Grundlage des Parameters a und des Prozentsatzes der als bösartig bewerteten Bilder und/oder des Prozentsatzes der als gutartig bewerteten Bilder eine Ermittlung erfolgt, dass der Verlauf gutartig ist, dann wird der Ausführungsverlauf bei 1222 als gutartig klassifiziert.
  • Falls bei 1212 auf Grundlage des Parameters a und des Prozentsatzes der als bösartig bewerteten Bilder und/oder des Prozentsatzes der als gutartig bewerteten Bilder eine Ermittlung erfolgt, dass der Verlauf bösartig ist, dann wird der Ausführungsverlauf bei 1214 als bösartig klassifiziert. In mindestens einer Ausführungsform, falls ein Ausführungsverlauf als bösartig klassifiziert wird, kann eine Maßnahme ergriffen werden. Die Maßnahme kann unter anderem ein Senden einer Warnung an einen Benutzer, ein Anhalten einer Ausführung der Anwendung, ein Anhalten einer Ausführung aller Anwendungen, ein Unter-Quarantäne-Stellen der Anwendung, ein Protokollieren der Informationen usw. enthalten.
  • 13 ist ein vereinfachtes Ablaufdiagramm, das einen möglichen alternativen Ablauf 1300 von bestimmten Operationen veranschaulicht, die mit einem System für tiefgehendes Lernen und Malwareerkennung nach Ausführungsformen hierin assoziiert sind. In mindestens einer Ausführungsform entspricht eine Gruppe von Operationen Aktivitäten von 13. Das Verhaltensmodell 170 und das DNN-Klassifizierungsmodul 160 oder Abschnitte davon, wie zum Beispiel die Bildklassifizierungseinheit 164, können zumindest einen Abschnitt der Gruppe von Operationen einsetzen. Das System für tiefgehendes Lernen und Malwareerkennung 100 kann Mittel wie den Prozessor 110 zum Durchführen der Operationen umfassen. In mindestens einer Ausführungsform bietet Ablauf 1300 eine alternative Ausführungsform zum Durchführen einer Klassifizierung zum Erkennen eines Malwareangriffs, wie bei 918-920 in 9 angezeigt. Der Ablauf 1300 wird auf Grundlage von Ausführungsverläufen durchgeführt, die keine ursprüngliche oder bekannte Klassifizierung aufweisen und deshalb als unbekannte Ausführungsverläufe angesehen werden. Der Ablauf 1300 kann beginnen, wenn eine aus einem unbekannten Ausführungsverlauf (oder einem Abschnitt eines unbekannten Ausführungsverlaufs) generierte Zeitreihe von Bildern {I1, I2,... IN} vom DNN-Klassifizierungsmodul 160 empfangen wurde.
  • Bei 1302 kann ein trainiertes Verhaltensmodell auf die unbekannte Zeitreihe von Bildern {I1, I2,... IN} angewandt werden und eine Wahrscheinlichkeit, dass ein Bild gutartig oder bösartig ist, kann jedem Bild zugewiesen werden.
  • Bei 1304 kann eine Wahrscheinlichkeit für jedes Bild der Zeitreihe von Bildern erhalten werden. Wahrscheinlichkeiten können durch Pk repräsentiert werden, k ∈ {1, 2, ... N}, und jeder Wahrscheinlichkeitswert kann eine Wahrscheinlichkeit anzeigen, ob ein jeweiliges Bild der Zeitreihe von Bildern gutartig oder bösartig ist.
  • Bei 1306 kann der Durchschnitt der den Bildern zugewiesenen Wahrscheinlichkeiten {P1, P2, ..., PN} berechnet werden.
  • Bei 1308 erfolgt auf Grundlage der Durchschnittwahrscheinlichkeit und eines Parameters p eine Ermittlung, ob der Ausführungsverlauf bösartig ist. Der Parameter p kann einen Schwellenprozentsatz repräsentieren, der verwendet wird, um zu ermitteln, ob ein bestimmter Ausführungsverlauf bösartig oder gutartig ist, auf Grundlage des Durchschnitts der Sequenz von Wahrscheinlichkeiten, die der Zeitreihe von Bildern zugeordnet sind. In einem Beispiel ist p = 0,75 (oder 75 %) als ein Standardschwellenwert zum Ermitteln gesetzt, ob der Durchschnitt der Wahrscheinlichkeiten der Bilder, die einen bestimmten Ausführungsverlauf repräsentieren, anzeigt, dass der Ausführungsverlauf bösartig ist. Das heißt, falls der Durchschnitt der Wahrscheinlichkeiten 75 % oder mehr beträgt, dann kann der Ausführungsverlauf als bösartig klassifiziert werden. Andernfalls kann der Ausführungsverlauf als gutartig klassifiziert werden. Es ist anzumerken, dass der Parameter p bei Bedarf angepasst werden kann, zum Beispiel durch einen Anwender, auf Grundlage bestimmter Implementierungen und/oder Anforderungen.
  • Falls bei 1308 auf Grundlage des Parameters p und des Durchschnitts der Sequenz den Bildern zugewiesenen Wahrscheinlichkeiten eine Ermittlung erfolgt, dass der Verlauf gutartig ist, dann wird der Ausführungsverlauf bei 1312 als gutartig klassifiziert.
  • Falls bei 1308 auf Grundlage des Parameters p und des des Durchschnitts der Sequenz den Bildern zugewiesenen Wahrscheinlichkeiten eine Ermittlung erfolgt, dass der Verlauf bösartig ist, dann wird der Ausführungsverlauf bei 1310 als bösartig klassifiziert. In mindestens einer Ausführungsform, falls ein Ausführungsverlauf als bösartig klassifiziert wird, kann eine Maßnahme ergriffen werden. Die Maßnahme kann unter anderem ein Senden einer Warnung an einen Benutzer, ein Anhalten einer Ausführung der Anwendung, ein Anhalten einer Ausführung aller Anwendungen, ein Unter-Quarantäne-Stellen der Anwendung, ein Protokollieren der Informationen usw. enthalten.
  • Es ist auch anzumerken, dass in der Ausführungsform von Ablauf 1300 ebenfalls alternative Prüfungen enthalten sein können. Zum Beispiel Prüfungen, ob Klassifizierungen von Bildern ermittelt werden können (z. B. 1206) und/oder Prüfungen, ob eine Ausführungsverlaufsklassifizierung ermittelt werden kann (z. B. 1210), können in den Ablauf 1300 auf eine ähnliche Weise eingebunden werden, wie sie in den Ablauf 1200 eingebunden sind.
  • Experimentelle Ergebnisse
  • Der bildanalysebasierte DNN-Ansatz, um ROP-Angriffe zu erkennen, kann gegen Adobe®-Reader®-Software in einem Windows®-7-Betriebssystem validiert werden. Für Experimente wird ein Probensatz von 348 gutartigen und 299 bösartigen PDF-Dateien verwendet, von denen 348 gutartige und 299 bösartige Verläufe gesammelt werden. Das Verhaltensmodell der feinsten Granularität kann in Übereinstimmung mit einer hierin beschriebenen Ausführungsform trainiert werden. TIP- und TNT-Pakete werden extrahiert und Arbeitsspeicheradressen werden in Pixel mit Werten von 0 bis 255 umgewandelt. Eine Segmentierungsgröße m wird auf 224 gesetzt und jeder Verlauf wird in eine Zeitreihe von Graustufenbildern der Größe 224 x 244 segmentiert. Nach der Segmentierung können 55.666 gutartige Verhaltensbilder und 82.416 bösartige Bilder erhalten werden, wobei 80 % der Daten zum Training und 20 % zum Testen verwendet werden. Einzelkanalbilder werden durch Vervielfältigen des Graustufenbilds in drei Kanäle umgewandelt. Danach kann ein Inception-basiertes Transferlernschema an den Verhaltensbildern verwendet werden.
  • Die experimentellen Ergebnisse zeigen eine Genauigkeit von 0,9663 beim Klassifizieren von bösartigen und gutartigen Verhaltensweisen und 0,0053 falsch positive Ergebnisse. Eine Out-of-Sample-Malwareerkennung ist ein hierarchisches Ensembleverfahren, das aktuell 100 % beim Erkennen von bösartigen Verläufen und 90 % beim Erkennen von gutartigen Verläufen mit einem bestimmten Schwellenparameter erzielt.
  • Nun auf 14 Bezug nehmend, ist 14 ein Graph 1400, der eine Annahmekennlinienkurve (ROC-Kurve) 1410 an einem Testsatz von Daten zeigt. Die Fläche unter der ROC-Kurve 1410 ist ein Maß dafür, wie gut ein Parameter zwischen einer tatsächlich positiven Rate der Malwareerkennung und einer falsch positiven Rate der Malwareerkennung unterscheiden kann. Aus den Testergebnissen beträgt die Fläche unter der ROC-Kurve 1410 0,996. Dies zeigt, dass eine wünschenswerte falsch positive Rate erhalten werden kann, ohne Genauigkeit einzubüßen.
  • Darüber hinaus kann dieser bildanalysebasierte DNN-Ansatz zum Erkennen von ROP-Angriffen mit klassischen maschinellen Lernalgorithmen verglichen werden. Für k-nächste-Nachbarn kann K variiert werden, um die Genauigkeit und falsch positiven Ergebnisse zu untersuchen. Für die Algorithmen im Vergleich bieten die oben beschriebenen beispielhaften Systeme die beste Leistung:
    Algorithmus Genauigkeit Falsche
    Positiva
    Tiefgehender Inception-Transfer 0,99 0,004
    k-nächste-Nachbarn mit PCA 0,8 0,05
    Random Forest mit PCA 0,63 0,02
  • Das Transferlernschema kann weiter mit einem Training von Grund auf verglichen werden. In diesem Vergleich verwendet das System mit Training von Grund auf ein 3-Schicht-CNN mit 2 faltenden Schichten und 1 vollständig verbundener Schicht, wobei die Größe der Bilder auf 28 mal 28 geändert wurde, daher ein großes Ausmaß an Datenverlust. Der Zweck dieses Experiments ist es, Grundwerte für Algorithmen auf Grundlage von tiefgehendem Lernen bereitzustellen und auch den Vorteil der Verwendung von Transferlernen für eine ausführungsverlaufsbasierte Bedrohungsanalyse vorzustellen.
  • Das tiefgehende Lerntrainingsschema kann mit einem klassischen ML-Algorithmus verglichen werden. Es wird festgestellt, dass tiefgehendes Lernen eine bessere Leistung als klassisches maschinelles Lernen zeigt:
    Algorithmus Training Genauigkeit Falsch positives Informations-Verlust
    Inception-Transfer (224 mal 224) Transfertraining 0,99 0,004 Kein Informationsverlust
    2-Schicht-CNN und Größenänderung auf 28 mal 28 Training von Grund auf 0,9 0,1 Informationsverlust aufgrund der Größenänderung
    KNN an 28 mal 28 K = 3, 5, ..., 23 0,75 0,4 Informationsverlust aufgrund der Größenänderung
    Naives Bayes an 28 mal 28 0,82 0,23
  • Das oben beschriebene beispielhafte System kann verwendet werden, um eine Out-of-Sample-Validierung und eine Laufzeiterkennung durchzuführen. Für eine Out-of-Sample-Erkennung gibt es 31 gutartige Verläufe und 29 bösartige Verläufe. In einem Prototypsystem ist die Out-of-Sample-Erkennung das hierarchische Ensembleverfahren, das 100 % beim Erkennen von bösartigen Verläufen und 92 % beim Erkennen von gutartigen Verläufen mit einem bestimmten Schwellenparameter erzielt. Mit einer Kreuzvalidierung unter Verwendung des Parameters a ist es möglich, das die Rate falsch positiver Ergebnisse noch weiter reduziert werden kann.
  • Nun auf 15-17 Bezug nehmend, sind 15-17 Blockdiagramme von beispielhaften Computerarchitekturen, die in Übereinstimmung mit hierin offenbarten Ausführungsformen (z. B. dem System für tiefgehendes Lernen und Malwareerkennung 100) verwendet werden können. Im Allgemeinen können beliebige, auf dem Fachgebiet bekannte Computerarchitekturdesigns für Prozessoren und Rechensysteme verwendet werden. In einem Beispiel sind Systemdesigns und -konfigurationen, die in der Technik für Laptops, Desktops, tragbare PCs, Organizer, Tablets, Entwicklungs-Workstations, Server, Netzwerkeinrichtungen, Server, Haushaltsgeräte, Netzwerkhubs, Router, Switches, eingebettete Prozessoren, digitale Signalprozessoren (DSPs), Grafikeinrichtungen, Videospieleinrichtungen, Set-Top-Boxen, Mikrocontroller, Smartphones, Mobileinrichtungen, tragbare elektronische Einrichtungen, tragbare Mediaplayer, tragbare Einrichtungen und verschiedene andere Elektronikeinrichtungen bekannt sind, sind ebenfalls für Ausführungsformen des hierin beschriebenen Systems für tiefgehendes Lernen und Malwareerkennung 100 geeignet. Im Allgemeinen können für hierin offenbarte Ausführungsformen geeignete Computerarchitekturen unter anderem Konfigurationen enthalten, die in 15-17 veranschaulicht sind.
  • 15 ist eine beispielhafte Veranschaulichung eines Prozessors nach einer Ausführungsform. Prozessor 1500 ist ein Beispiel eines Typs von Hardwareeinrichtung, die in Verbindung mit den obigen Implementierungen verwendet werden kann, einschließlich beispielsweise Prozessor 110. Der Prozessor 1500 kann ein beliebiger Prozessor sein, wie ein Mikroprozessor, ein eingebetteter Prozessor, ein digitaler Signalprozessor (DSP), ein Netzwerkprozessor, ein Mehrkernprozessor, ein Einzelkernprozessor oder eine andere Einrichtung zum Ausführen von Code. Obwohl in 15 nur ein Prozessor 1500 veranschaulicht ist, kann ein Verarbeitungselement alternativ mehr als einen des in 15 veranschaulichten Prozessors 1500 enthalten. Der Prozessor 1500 kann ein Einzelthreadkern sein oder für mindestens eine Ausführungsform kann der Prozessor 1500 dahingehend ein Multithreadingprozessor sein, dass er mehr als einen Hardwarethreadkontext (oder „logischen Prozessor“) pro Kern enthalten kann.
  • 15 veranschaulicht auch einen Arbeitsspeicher 1502, der in Übereinstimmung mit einer Ausführungsform an den Prozessor 1500 gekoppelt ist. Der Arbeitsspeicher 1502 kann ein beliebiger einer breiten Vielfalt von Arbeitsspeichern sein (einschließlich verschiedener Schichten von Arbeitsspeicherhierarchie), wie sie Fachleuten auf dem Gebiet bekannt oder anderweitig für diese verfügbar sind. Derartige Arbeitsspeicherelemente können unter anderem Arbeitsspeicher mit wahlfreiem Zugriff (RAM), Nurlesearbeitsspeicher (ROM), Logikblöcke eines feldprogrammierbaren Gatearray (FPGA), löschbare programmierbare Nurlesearbeitsspeicher (EPROM) und elektrisch löschbare programmierbare ROM (EEPROM) enthalten.
  • Der Prozessor 1500 kann einen beliebigen Typ von Anweisungen ausführen, der mit hierin ausführlich beschriebenen Algorithmen, Prozessen oder Operationen assoziiert ist. Allgemein kann der Prozessor 1500 ein Element oder einen Gegenstand (z. B. Daten) von einem Zustand oder Ding in einen anderen Zustand oder ein anderes Ding transformieren.
  • Der Code 1504, der eine oder mehrere Anweisungen sein kann, die vom Prozessor 1500 auszuführen sind, kann im Arbeitsspeicher 1502 gespeichert sein oder kann in Software, Hardware, Firmware oder einer beliebigen geeigneten Kombination daraus gespeichert sein oder in einer beliebigen anderen internen oder externen Komponente, Einrichtung, einem solchen Element oder Objekt, wo angemessen und auf Grundlage von bestimmten Anforderungen. In einem Beispiel kann der Prozessor 1500 einer Programmsequenz von Anweisungen folgen, die vom Code 1504 angezeigt werden. Jede Anweisung läuft in eine Front-End-Logik 1506 ein und wird von einem oder mehreren Decodierern 1508 verarbeitet. Der Decodierer kann als seine Ausgabe eine Mikrooperation wie eine Mikrooperation fester Breite in einem vordefinierten Format erzeugen, oder kann andere Anweisungen, Mikroanweisungen oder Steuersignale erzeugen, die die ursprüngliche Codeanweisung widerspiegeln. Die Front-End-Logik 1506 enthält auch Registerumbenennungslogik 1510 und Planungslogik 1512, die allgemein Ressourcen zuordnen und die Operation entsprechend der Anweisung zur Ausführung in eine Warteschlange stellen.
  • Der Prozessor 1500 kann auch Ausführungslogik 1514 mit einem Satz von Ausführungseinheiten 1516a, 1516b, 1516n usw. enthalten. Einige Ausführungsformen können eine Anzahl von Ausführungseinheiten enthalten, die für spezifische Funktionen oder Sätze von Funktionen reserviert sind. Andere Ausführungsformen können nur eine Ausführungseinheit oder eine Ausführungseinheit enthalten, die eine bestimmte Funktion durchführen kann. Die Ausführungslogik 1514 führt die durch die Codeanweisungen angegebenen Operationen durch.
  • Nach Abschluss der Ausführung der von den Codeanweisungen angegebenen Operationen kann Back-End-Logik 1518 die Anweisungen des Codes 1504 stilllegen. In einer Ausführungsform ermöglicht der Prozessor 1500 eine Out-of-Order-Ausführung, aber erfordert eine In-Order-Stilllegung der Anweisungen. Stilllegungslogik 1520 kann eine Vielfalt von bekannten Formen annehmen (z. B. Umordnungspuffer oder dergleichen). Auf diese Weise wird der Prozessor 1500 während der Ausführung des Codes 1504 zumindest in Bezug auf die vom Decodierer erzeugte Ausgabe, von der Registerumbenennungslogik 1510 eingesetzte Hardwareregister und Tabellen und alle von der Ausführungslogik 1514 modifizierten Register (nicht gezeigt) transformiert.
  • Obwohl in 15 nicht gezeigt, kann ein Verarbeitungselement andere Elemente auf einem Chip mit dem Prozessor 1500 enthalten. Ein Verarbeitungselement kann zum Beispiel zusammen mit dem Prozessor 1500 Arbeitsspeichersteuerlogik enthalten. Das Verarbeitungselement kann E/A-Steuerlogik enthalten und/oder kann in Arbeitsspeichersteuerlogik integrierte E/A-Steuerlogik enthalten. Das Verarbeitungselement kann auch einen oder mehrere Zwischenspeicher enthalten. In einigen Ausführungsformen kann auch nichtflüchtiger Arbeitsspeicher (wie Flashspeicher oder Sicherungen) auf dem Chip mit dem Prozessor 1500 enthalten sein.
  • 16 veranschaulicht ein Rechensystem 1600, das in einer Punkt-zu-Punkt(PtP)-Konfiguration nach einer Ausführungsform angeordnet ist. Insbesondere zeigt 16 ein System, in dem Prozessoren, Arbeitsspeicher und Eingabe-/Ausgabeeinrichtungen durch eine Anzahl von Punkt-zu-Punkt-Schnittstellen miteinander verbunden sind. Im Allgemeinen kann bzw. können ein oder mehrere der hierin beschriebenen Rechensysteme oder Recheneinrichtungen (z. B. das System für tiefgehendes Lernen und Malwareerkennung 100) auf die gleiche oder eine ähnliche Weise wie das Rechensystem 1600 konfiguriert sein.
  • Die Prozessoren 1670 und 1680 können als Einzelkernprozessoren 1674a und 1684a oder Mehrkernprozessoren 1674a-1674b und 1684a-1684b implementiert sein. Die Prozessoren 1670 und 1680 können jeweils einen Zwischenspeicher 1671 und 1681 enthalten, die von ihrem jeweiligen Kern oder Kernen verwendet werden. Ein gemeinsam genutzter Zwischenspeicher (nicht gezeigt) kann in einem der Prozessoren oder außerhalb beider Prozessoren enthalten sein, jedoch mit den Prozessoren über eine P-P-Verbindung verbunden sein, sodass die lokalen Zwischenspeicherinformationen von einem der beiden oder beiden Prozessoren im gemeinsam genutzten Zwischenspeicher gespeichert werden kann, wenn ein Prozessor in einen Niedrigenergiemodus versetzt wird.
  • Die Prozessoren 1670 und 1680 können auch jeweils integrierte Arbeitsspeichersteuerlogik (MC) 1672 und 1682 enthalten, um mit Arbeitsspeicherelementen 1632 und 1634 zu kommunizieren, die Abschnitte von Hauptarbeitsspeicher sein können, die lokal an die jeweiligen Prozessoren angebunden sind. In alternativen Ausführungsformen kann die Arbeitsspeichersteuerlogik 1672 und 1682 diskrete Logik separat von den Prozessoren 1670 und 1680 sein. Die Arbeitsspeicherelemente 1632 und/oder 1634 können verschiedene Daten speichern, die von den Prozessoren 1670 und 1680 beim Erzielen von hierin skizzierten Operationen und Funktionalitäten zu verwenden sind.
  • Die Prozessoren 1670 und 1680 können beliebige Typen von Prozessoren sein, wie die in Verbindung mit anderen Figuren besprochenen. Die Prozessoren 1670, 1680 können Daten über eine Punkt-zu-Punkt(PtP)-Schnittstelle 1650 unter Verwendung der Punkt-zu-Punk-Schnittstellenschaltkreise 1678 bzw. 1688 austauschen. Die Prozessoren 1670, 1680 können jeweils Daten über individuelle Punkt-zu-Punkt-Schnittstellen 1652 und 1654 mit einem Eingabe/Ausgabe(E/A)-Subsystem 1690 unter Verwendung von Punkt-zu-Punkt-Schnittstellenschaltkreisen 1676, 1686, 1694 und 1698 austauschen. Das E/A-Subsystem 1690 kann auch Daten über eine Hochleistungs-Grafikschnittstelle 1639 unter Verwendung eines Schnittstellenschaltkreises 1692, der ein PtP-Schnittstellenschaltkreis sein könnte, mit einem Hochleistungs-Grafikschaltkreis 1638 austauschen. In einer Ausführungsform ist der Hochleistungs-Grafikschaltkreis 1638 ein Prozessor für Sonderzwecke, wie zum Beispiel ein MIC-Prozessor mit hohem Durchsatz, ein Netzwerk- oder Kommunikationsprozessor, eine Komprimierungsengine, ein Grafikprozessor, eine GPGPU, ein eingebetteter Prozessor oder Ähnliches. Das E/A-Subsystem 1690 kann auch mit einer Anzeige 1633 zum Anzeigen von Daten kommunizieren, die von einem menschlichen Benutzer angesehen werden können. In alternativen Ausführungsformen könnten beliebige oder alle der in 16 veranschaulichten PtP-Verknüpfungen als ein Multi-Drop-Bus anstatt einer PtP-Verknüpfung implementiert sein.
  • Das E/A-Subsystem 1690 kann über einen Schnittstellenschaltkreis 1696 in Kommunikation mit einem Bus 1620 stehen. Der Bus 1620 kann eine oder mehrere Einrichtungen aufweisen, die über ihn kommunizieren, wie eine Busbrücke 1618 und E/A-Einrichungen 1616. Über einen Bus 1610 kann die Busbrücke 1618 in Kommunikation mit anderen Einrichtungen wie einer Benutzerschnittstelle 1612 (wie einer Tastatur, einer Maus, einem Berührungsbildschirm oder anderen Eingabeeinrichtungen), Kommunikationseinrichtungen 1626 (wie Modems, Netzwerkschnittstelleneinrichtungen oder anderen Typen von Kommunikationseinrichtungen, die über ein Computernetzwerk 1660 kommunizieren können), Audio-E/A-Einrichtungen 1614 und/oder eine Datenspeichereinrichtung 1628 stehen. Die Datenspeichereinrichtung 1628 kann Code und Daten 1630 speichern, die von den Prozessoren 1670 und/oder 1680 ausgeführt werden können. In alternativen Ausführungsformen können beliebige Abschnitte der Busarchitekturen mit einem oder mehreren PtP-Verknüpfungen implementiert werden.
  • Das in 16 gezeigte Computersystem ist eine schematische Veranschaulichung einer Ausführungsform eines Rechensystems, das eingesetzt werden kann, um verschiedene hierin besprochene Ausführungsformen zu implementieren. Es ist klar, dass verschiedene Komponenten des in 16 gezeigten Systems in einer Ein-Chip-Architektur (SoC-Architektur) oder in einer beliebigen anderen geeigneten Konfiguration kombiniert werden können, die fähig ist, die Funktionalität und Funktionen von hierin bereitgestellten Beispielen und Implementierungen zu erreichen.
  • Auf 17 Bezug nehmend, 17 ist ein vereinfachtes Blockdiagramm, das mit einem beispielhaften Advanced-RISC-Machines(ARM)-Ökosystem-Ein-Chip-System (SOC) 1700 der vorliegenden Offenbarung assoziiert ist. Mindestens ein Implementierungsbeispiel der vorliegenden Offenbarung kann die hierin besprochenen tiefgehenden Lern- und Malwareerkennungsfunktionen und eine ARM-Komponente enthalten. In mindestens einigen Ausführungsformen könnte das System 100, hierin gezeigt und beschrieben, zum Beispiel auf die gleiche oder ähnliche Weise wie ARM-Ökosystem-SOC 1700 konfigurier sein. Ferner kann die Architektur Teil eines beliebigen Typs von Tablet, Smartphone (einschließlich von Android™-Telefonen, iPhones™), iPad™, Google Nexus™, Microsoft Surface™, Personalcomputer, Server, Videoverarbeitungskomponenten, Laptopcomputer (einschließlich eines beliebigen Typs von Notebook), Ultrabook™-System, tragbarer elektronischer Einrichtung, eines beliebigen Typs von berührungsaktivierter Eingabeeinrichtung usw. sein.
  • In diesem Beispiel von 17 kann das ARM-Ökosystem-SOC 1700 mehrere Kerne 1706-1707, eine L2-Zwischenspeicher-Steuerung 1707, eine Busschnittstelleneinheit 1709, einen L2-Zwischenspeicher 1710, eine Grafikverarbeitungseinheit (GPU) 1715, eine Zwischenverbindung 1702, einen Videocodec 1720 und eine Schnittstelle für organische lichtemittierende Dioden (OLED) 1725 enthalten, die mit Mobile-Industry-Processor-Interface(MIPI)-/High-Definition-Multimedia-Interface(HDMI)-Verknüpfungen assoziiert sein kann, die an eine OLED-Anzeige koppeln.
  • Das ARM-Ökosystem-SOC 1700 kann auch eine Teilnehmer-Identitätsmodul(SIM)-Schnittstelle 1730, einen Boot-Nurlesearbeitsspeicher (ROM) 1735, eine Steuerung für synchronen dynamischen Arbeitsspeicher mit wahlfreiem Zugriff (SDRAM) 1740, eine Flashsteuerung 1745, einen seriellen peripheren Schnittstellenmaster 1750, eine geeignete Energiesteuerung 1755, einen dynamischen RAM (DRAM) 1760, Flash 1765 und einen oder mehrere Sensoren 1790 enthalten. Darüber hinaus enthalten ein oder mehrere Ausführungsbeispiele eine oder mehrere Kommunikationsfähigkeiten, -schnittstellen und -funktionen, wie Instanzen von Bluetooth™ 1770, einem 3G-Modem 1775, einem globalen Positionierungssystem (GPS) 1780 und 802.11 Wi-Fi 1785.
  • Im Betrieb kann das Beispiel von 17 Verarbeitungsfunktionen zusammen mit relativ niedrigem Energieverbrauch bieten, um Rechnen verschiedener Typen zu ermöglichen (z. B. mobilem Rechnen, digitalem High-End-Heim, Server, drahtloser Infrastruktur usw.). Darüber hinaus kann eine derartige Architektur eine beliebige Anzahl von Software-Anwendungen ermöglichen (z. B. Android™, Adobe® Flash® Player, Java Platform Standard Edition (Java SE), JavaFX, Linux, Microsoft Windows Embedded, Symbian und Ubuntu usw.). In mindestens einem Ausführungsbeispiel kann der Kernprozessor eine superskalare Out-of-Order-Pipeline mit einem gekoppelten Level-2-Zwischenspeicher niedriger Latenz implementieren.
  • In einer beispielhaften Implementierung enthält das System für tiefgehendes Lernen und Malwareerkennung 100 Software, um das tiefgehende Lernen und die Malwareerkennung zu erzielen (oder zu fördern), wie hierin besprochen. In einigen Ausführungsformen können diese Techniken von Hardware und/oder Firmware ausgeführt werden, extern zu diesen Elementen implementiert sein oder in einem anderen Rechensystem enthalten sein, um die beabsichtigte Funktionalität zu erzielen. Diese Elemente können auch Software (oder reziproke Software) enthalten, die mit anderen Netzwerkelementen oder Rechensystemen koordinieren kann, um die beabsichtigte Funktionalität zu erzielen, wie hierin beschrieben. In noch anderen Ausführungsformen können ein oder mehrere Elemente beliebige geeignete Algorithmen, Hardware, Software, Komponenten, Module, Schnittstellen oder Objekte enthalten, die die Operationen davon ermöglichen. Module können geeignet kombiniert oder auf beliebige angemessene Weise aufgeteilt werden, die auf bestimmten Konfigurations- und/oder Bereitstellungsanforderungen basieren kann.
  • Obwohl diese Offenbarung in Bezug auf bestimmte Implementierungen und allgemein zugehörige Verfahren beschrieben wurde, werden Änderungen und Permutationen dieser Implementierungen und Verfahren für Fachleute offensichtlich sein. Beispielsweise können die hierin beschriebenen Handlungen in einer anderen Reihenfolge als der beschriebenen durchgeführt werden und dennoch die gewünschten Ergebnisse erzielen. Als ein Beispiel erfordern die in den begleitenden Figuren dargestellten Prozesse nicht notwendigerweise die bestimmte dargestellte Reihenfolge oder sequenzielle Reihenfolge, um die gewünschten Ergebnisse zu erzielen. In bestimmten Implementierungen können Multitasking und Parallelverarbeitung von Vorteil sein. Zusätzlich können andere Benutzerschnittstellenlayouts und Funktionalitäten unterstützt werden. Eine Benutzerrückmeldeschleife kann zum Beispiel eingebunden werden, um eine Benutzerrückmeldung in Bezug auf Klassifizierungen von Bildern und/oder Ausführungsverläufen (z. B. 1220) anzufordern und zu erhalten. Andere Variationen liegen im Geltungsbereich der folgenden Ansprüche.
  • Die hier vorgestellten Architekturen dienen nur als Beispiel und sollen nicht ausschließlich und nicht einschränkend sein. Darüber hinaus sollen die verschiedenen offenbarten Teile nur logische Unterteilungen sein und müssen nicht notwendigerweise physisch getrennte Hardware- und/oder Softwarekomponenten darstellen. Bestimmte Computersysteme können Arbeitsspeicherelemente in einer einzelnen physischen Arbeitsspeichereinrichtung bereitstellen, und in anderen Fällen können Arbeitsspeicherelemente funktional auf viele physische Einrichtungen verteilt sein. Im Fall von virtuellen Maschinenverwaltungen oder Hypervisoren kann die Gesamtheit oder ein Teil einer Funktion in Form von Software oder Firmware bereitgestellt werden, die über einer Virtualisierungsschicht läuft, um die offenbarte logische Funktion bereitzustellen.
  • Es ist zu beachten, dass mit den hierin gebotenen Beispielen eine Interaktion in Form eines einzelnen Rechensystems beschrieben werden kann. Dies wurde jedoch nur zu Zwecken von Klarheit und Beispiel gemacht. In bestimmten Fällen kann es einfacher sein, eine oder mehrere der Funktionalitäten eines bestimmten Satzes von Abläufen nur durch Bezugnahme auf ein einzelnes Rechensystem zu beschreiben. Darüber hinaus ist das System für tiefgehendes Lernen und Malwareerkennung leicht skalierbar und kann über eine große Anzahl von Komponenten (z. B. mehrere Rechensysteme) sowie kompliziertere/hochentwickeltere Anordnungen und Konfigurationen implementiert werden. Dementsprechend sollten die gebotenen Beispiele den Umfang nicht einschränken oder die breiten Lehren des Rechensystems nicht behindern, wie möglicherweise auf eine Unzahl von anderen Architekturen angewandt.
  • Wenn nicht ausdrücklich anders angegeben, bezieht sich die Verwendung des Ausdrucks „mindestens eines von“ hierin auf eine beliebige Kombination der genannten Elemente, Zustände oder Aktivitäten. Zum Beispiel soll ,mindestens eines von X, Y und Z' eines von Folgendem bedeuten: 1) mindestens ein X, aber nicht Y und nicht Z; 2) mindestens ein Y, aber nicht X und nicht Z; 3) mindestens ein Z, aber nicht X und nicht Y; 4) mindestens ein X und Y, aber nicht Z; 5) mindestens ein X und Z, aber nicht Y; 6) mindestens ein Y und Z, aber nicht X; oder 7) mindestens ein X, mindestens ein Y und mindestens ein Z.
  • Sofern nicht ausdrücklich etwas anderes angegeben ist, sollen die Ausdrücke ,erste/r/s', ,zweite/r/s', dritte/r/s' usw. darüber hinaus die bestimmten Substantive unterscheiden (z. B. Element, Bedingung, Modul, Aktivität, Operation, Anspruchselement usw.), die sie modifizieren, sind aber nicht dazu gedacht, irgendeine Art von Reihenfolge, Rang, Wichtigkeit, zeitlicher Reihenfolge oder Hierarchie des modifizierten Substantivs anzugeben. Beispielsweise sollen erstes X' und zweites X' zwei separate X-Elemente bezeichnen, die nicht notwendigerweise durch eine beliebige Reihenfolge, Rang, Wichtigkeit, zeitliche Reihenfolge oder Hierarchie der zwei Elemente eingeschränkt sind.
  • Bezugnahmen in der Beschreibung auf „eine Ausführungsform“, „einige Ausführungsformen“ usw. zeigen an, dass die beschriebene(n) Ausführungsform(en) ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft enthalten kann bzw. können, aber jede Ausführungsform kann oder kann nicht notwendigerweise dieses bestimmte Merkmal, diese bestimmte Struktur oder Eigenschaft enthalten. Darüber hinaus beziehen sich solche Formulierungen nicht notwendigerweise auf die gleiche Ausführungsform.
  • Zwar beinhaltet diese Beschreibung viele spezifische Implementierungsdetails, jedoch sollten diese nicht als Beschränkungen des Geltungsbereichs beliebiger Ausführungsformen oder der möglichen Ansprüche ausgelegt werden, sondern vielmehr als Beschreibungen spezifischer Merkmale bestimmter Ausführungsformen. Bestimmte Merkmale, die in dieser Beschreibung im Zusammenhang mit getrennten Ausführungsformen beschrieben sind, können auch in Kombination in einer einzigen Ausführungsform implementiert werden. Umgekehrt können verschiedene Merkmale, die im Zusammenhang mit einer einzelnen Ausführungsform beschrieben sind, auch in mehreren Ausführungsformen getrennt oder in irgendeiner geeigneten Teilkombination implementiert werden. Auch wenn die Merkmale vorstehend als in gewissen Kombinationen funktionierend beschrieben oder gar anfänglich als solche beansprucht werden, können außerdem ein oder mehrere Merkmale einer beanspruchten Kombination in einigen Fällen aus der Kombination herausgelöst werden und die beanspruchte Kombination kann an eine Unterkombination oder eine Variation einer Unterkombination verwiesen werden.
  • Gleichermaßen sollte die Trennung verschiedener Systemkomponenten und -module in den oben beschriebenen Ausführungsformen nicht als in allen Ausführungsformen erforderliche derartige Trennung verstanden werden. Es versteht sich, dass die beschriebenen Programmkomponenten, -module und -systeme im Allgemeinen zusammen in ein einziges Softwareprodukt integriert oder in mehrere Softwareprodukte verpackt werden können.
  • Es wurden deshalb bestimmte Ausführungsformen des Gegenstandes beschrieben. Andere Ausführungsformen liegen im Geltungsbereich dieser Offenbarung. Viele andere Änderungen, Substitutionen, Variationen, Veränderungen und Modifikationen können von Fachleuten ermittelt werden, und es ist beabsichtigt, dass die vorliegende Offenbarung alle solchen Änderungen, Substitutionen, Variationen, Veränderungen und Modifikationen als in den Geltungsbereich der angefügten Ansprüche fallend umfasst.
  • Andere Anmerkungen und Beispiele
  • Die folgenden Beispiele betreffen Ausführungsformen in Übereinstimmung mit dieser Beschreibung. Beispiel A1 sieht eine Vorrichtung, ein System, eine oder mehrere maschinenlesbare Speichermedien, ein Verfahren und/oder Hardware-, Firmware- und/oder Software-basierte Logik vor, wobei das Beispiel von A1 ein Umwandeln eines ersten Datenelements eines ersten Kontrollflusspakets in ein erstes Pixel enthält, wobei das erste Datenelement eine oder mehrere Verzweigungen anzeigt, die während einer bekannten Ausführung einer Anwendung genommen wurden; Generieren einer Anordnung von Pixeln unter Verwendung des ersten Pixels und eines oder mehrerer anderer Pixel, die mit einem oder mehreren anderen Kontrollflusspaketen assoziiert sind, die aus der bekannten Ausführung generiert wurden; Transformieren der Pixelanordnung in eine Reihe von Bildern; und Verwenden eines maschinellen Lernalgorithmus mit Eingaben, um ein Verhaltensmodell zu trainieren, um ein bösartiges Verhalten in einer unbekannten Ausführung der Anwendung zu identifizieren, wobei die Eingaben ein oder mehrere Bilder der Reihe von Bildern und jeweilige, dem einen oder den mehreren Bildern zugewiesene Bildkennzeichnungen enthalten.
  • In Beispiel A2 kann der Gegenstand von Beispiel A1 optional enthalten, dass die ersten Daten ein oder mehrere Bits enthalten, die jeweils anzeigen, ob bei der bekannten Ausführung eine bedingte Verzweigung genommen wurde.
  • In Beispiel A3 kann der Gegenstand von Beispiel A1 optional enthalten, dass die ersten Daten eine Arbeitsspeicheradresse in einer Nutzlast des ersten Kontrollflusspakets enthalten, wobei die Arbeitsspeicheradresse eine Zieladresse einer bei der bekannten Ausführung genommenen indirekten Verzweigung repräsentiert.
  • In Beispiel A4 kann der Gegenstand eines der Beispiele A1-A3 optional enthalten, dass die Reihe von Bildern eine Sequenz von Dreikanalbildern ist.
  • In Beispiel A5 kann der Gegenstand eines der Beispiele A1-A4 optional ein Aufteilen der Pixelanordnung in zwei oder mehr Segmente enthalten; Abbilden jedes Segments auf eine zweidimensionale Anordnung; und Vervielfältigen jeder zweidimensionalen Anordnung, um ein einem jeweiligen Segment entsprechendes Dreikanalbild zu erzeugen.
  • In Beispiel A6 kann der Gegenstand eines der Beispiele A1-A5 optional ein Extrahieren des ersten Kontrollflusspakets aus einem Ausführungsverlauf enthalten, der zumindest einen Teil der bekannten Ausführung der Anwendung repräsentiert.
  • In Beispiel A7 kann der Gegenstand eines der Beispiele A1-A6 optional vor dem Verwenden des maschinellen Lernalgorithmus zum Trainieren des Verhaltensmodells ein Zuweisen der jeweiligen Bildkennzeichnungen zu dem einen oder den mehreren Bildern in der Reihe von Bildern enthalten.
  • In Beispiel A8 kann der Gegenstand eines der Beispiele A6-A7 optional ein Anzeigen auf Grundlage einer ersten Kennzeichnung enthalten, dass der Ausführungsverlauf gutartig ist, wobei jede Bildkennzeichnung, die einem entsprechenden Bild zugewiesen ist, anzeigt, dass ein vom entsprechenden Bild repräsentiertes Verhalten gutartig ist.
  • In Beispiel A9 kann der Gegenstand eines der Beispiele A1-A8 optional enthalten, dass das eine oder die mehreren Bilder alle der Bilder der Reihe von Bildern enthalten.
  • In Beispiel A10 kann der Gegenstand eines der Beispiele A6-A7 optional ein Anzeigen auf Grundlage einer ersten Kennzeichnung enthalten, dass der Ausführungsverlauf bösartig ist, wobei die jeweiligen Bildkennzeichnungen den Bildern zugewiesen werden, um anzuzeigen, dass von den Bildern repräsentierte Verhalten bösartig sind.
  • In Beispiel A11 kann der Gegenstand eines der Beispiele A6-A7 oder A10 optional ein Identifizieren einer Position im Ausführungsverlauf enthalten, die einer Initiierung eines Malwareangriffs entspricht; Identifizieren eines Pixels in einem Bild der Reihe von Bildern, die der identifizierten Position im Ausführungsverlauf entspricht; und Auswählen des das Pixel beinhaltenden Bilds und jedes nachfolgenden Bilds, das den Ausführungsverlauf repräsentiert, als das eine oder die mehreren Bilder, denen die jeweiligen Bildkennzeichnungen zuzuweisen sind.
  • In Beispiel A12 kann der Gegenstand eines der Beispiele A1-A11 optional enthalten, dass der maschinelle Lernalgorithmus mit einem faltenden neuronalen Netz (CNN) assoziiert ist, wobei das CNN vorab an einem Datensatz trainiert wurde, der mit einer von Malwareerkennung verschiedenen Domäne assoziiert ist.
  • In Beispiel A13 kann der Gegenstand eines der Beispiele A1-A12 optional ein Generieren einer zweiten Reihe von Bildern auf Grundlage eines oder mehrerer anderer Steuerpakete einer unbekannten Ausführung der Anwendung enthalten; Anwenden des Verhaltensmodells auf die zweite Reihe von Bildern, um eine jeweilige Bewertung für jedes Bild der zweiten Reihe von Bildern zu erstellen; und Ermitteln, ob ein Malwareangriff in der unbekannten Ausführung vorliegt, zumindest teilweise auf Grundlage der Bewertungen und eines Parameters.
  • Beispiel B1 sieht eine Vorrichtung, ein System, eine oder mehrere maschinenlesbare Speichermedien, ein Verfahren und/oder Hardware-, Firmware- und/oder Software-basierte Logik vor, wobei das Beispiel von B1 ein Umwandeln eines ersten Datenelements eines ersten Kontrollflusspakets in ein erstes Pixel enthält, wobei das erste Datenelement eine oder mehrere Verzweigungen anzeigt, die während einer unbekannten Ausführung einer Anwendung genommen wurden; Generieren einer Anordnung von Pixeln unter Verwendung des ersten Pixels und eines oder mehrerer anderer Pixel, die mit einem oder mehreren anderen Kontrollflusspaketen assoziiert sind, die aus der unbekannten Ausführung generiert wurden; Transformieren der Pixelanordnung in eine Reihe von Bildern; und Anwenden eines von einem maschinellen Lernalgorithmus erstellten Verhaltensmodells auf die Reihe von Bildern, um eine jeweilige Bewertung für jedes Bild der Reihe von Bildern zu erstellen; und Ermitteln, ob ein Malwareangriff in der unbekannten Ausführung vorliegt, auf Grundlage der Bewertungen und eines Parameters.
  • In Beispiel B2 kann der Gegenstand von Beispiel B1 optional enthalten, dass die ersten Daten ein oder mehrere Bits enthalten, die jeweils anzeigen, ob bei der unbekannten Ausführung eine bedingte Verzweigung genommen wurde.
  • In Beispiel B3 kann der Gegenstand von Beispiel B1 optional enthalten, dass die ersten Daten eine Arbeitsspeicheradresse in einer Nutzlast des ersten Kontrollflusspakets enthalten, wobei die Arbeitsspeicheradresse eine Zieladresse einer bei der unbekannten Ausführung genommenen indirekten Verzweigung repräsentiert.
  • In Beispiel B4 kann der Gegenstand eines der Beispiele B1-B3 optional enthalten, dass die Reihe von Bildern eine Sequenz von Dreikanalbildern ist.
  • In Beispiel B5 kann der Gegenstand eines der Beispiele B1-B4 optional ein Aufteilen der Pixelanordnung in zwei oder mehr Segmente enthalten, Abbilden jedes Segments auf eine zweidimensionale Anordnung, und Vervielfältigen jeder zweidimensionalen Anordnung, um ein einem jeweiligen Segment entsprechendes Dreikanalbild zu erzeugen.
  • In Beispiel B6 kann der Gegenstand von Beispiel B5 optional vor dem Aufteilen der Pixelanordnung in die zwei oder mehr Segmente ein Auswählen einer reduzierte Anzahl von Segmenten als Reaktion darauf enthalten, dass das Verhaltensmodell eine erste Reihe von Bildern, die einer ersten Anzahl von Segmenten entspricht, nicht klassifizieren kann, wobei die reduzierte Anzahl von Segmenten den zwei oder mehr Segmenten entspricht.
  • In Beispiel B7 kann der Gegenstand eines der Beispiele B1-B6 optional ein Extrahieren des ersten Kontrollflusspakets aus einem Ausführungsverlauf enthalten, der zumindest einen Teil der unbekannten Ausführung der Anwendung repräsentiert.
  • In Beispiel B8, kann der Gegenstand von Beispiel B7 optional auf Grundlage eines Ermittelns, dass ein Malwareangriff in der unbekannten Ausführung vorliegt, ein Klassifizieren des Ausführungsverlaufs als bösartig und Ergreifen einer Maßnahme enthalten.
  • In Beispiel B9 kann der Gegenstand eines der Beispiele B7-B8 optional ein Berechnen eines Prozentsatzes von Bildern, die in Übereinstimmung mit den den Bildern zugewiesenen Bewertungen als bösartig klassifiziert werden, und ein Ermitteln auf Grundlage des berechneten Prozentsatzes von Bildern und eines durch den Parameter repräsentierten Schwellenprozentsatzes von Bildern enthalten, ob der Ausführungsverlauf als bösartig zu klassifizieren ist.
  • In Beispiel B10 kann der Gegenstand eines der Beispiele B7-B8 optional auf Grundlage der den Bildern zugewiesenen Bewertungen ein Berechnen einer Durchschnittswahrscheinlichkeit eines Malwareangriffs in der unbekannten Ausführung, wobei jede einem entsprechenden Bild zugewiesene Bewertung eine Wahrscheinlichkeit ist, dass das entsprechende Bild ein bösartiges Verhalten in der unbekannten Ausführung repräsentiert; und ein Ermitteln auf Grundlage der berechneten Durchschnittswahrscheinlichkeit und einer durch den Parameter repräsentierten Schwellenwahrscheinlichkeit enthalten, ob der Ausführungsverlauf als bösartig zu klassifizieren ist.
  • In Beispiel B11 kann der Gegenstand eines der Beispiele B1-B10 optional enthalten, dass das Verhaltensmodell zumindest teilweise auf Grundlage eines faltenden neuronalen Netzes (CNN) trainiert ist, wobei das CNN vorab an einem Datensatz trainiert wurde, der mit einer von Malwareerkennung verschiedenen Domäne assoziiert ist.
  • Ein Beispiel X1 sieht eine Vorrichtung vor, wobei die Vorrichtung Mittel zum Durchführen des Verfahrens nach einem der vorangehenden Beispiele umfasst.
  • In Beispiel X2 kann der Gegenstand von Beispiel X1 optional enthalten, dass das Mittel zum Durchführen des Verfahrens mindestens einen Prozessor und mindestens ein Arbeitsspeicherelement umfasst.
  • In Beispiel X3 kann der Gegenstand von Beispiel X2 optional enthalten, dass das mindestens eine Arbeitsspeicherelement maschinenlesbare Anweisungen umfasst, die, wenn sie ausgeführt werden, bewirken, dass die Vorrichtung das Verfahren nach einem der Beispiele A1-A13 oder B1-B11 durchführt.
  • In Beispiel X4 kann der Gegenstand eines der Beispiele X1-X3 optional enthalten, dass die Vorrichtung entweder ein Rechensystem oder ein Ein-Chip-System ist.
  • Beispiel Y1 sieht mindestens ein maschinenlesbares Speichermedium vor, das Anweisungen umfasst, wobei die Anweisungen, wenn sie ausgeführt werden, eine Vorrichtung in einem der Beispiele A1-A13 oder B1-B11 realisieren oder ein Verfahren in einem der Beispiele A1-A13 oder B1-B11 implementieren.

Claims (25)

  1. Vorrichtung, wobei die Vorrichtung umfasst: mindestens einen an einen Arbeitsspeicher gekoppelten Prozessor, wobei der Prozessor ausgelegt ist, im Arbeitsspeicher gespeicherte Programmanweisungen auszuführen, um: ein erstes Datenelement eines ersten Kontrollflusspakets in ein erstes Pixel umzuwandeln, wobei das erste Datenelement eine oder mehrere Verzweigungen anzeigt, die während einer bekannten Ausführung einer Anwendung genommen wurden; eine Anordnung von Pixeln unter Verwendung des ersten Pixels und eines oder mehrerer anderer Pixel zu generieren, die mit einem oder mehreren anderen Kontrollflusspaketen assoziiert sind, die aus der bekannten Ausführung generiert wurden; die Pixelanordnung in eine Reihe von Bildern zu transformieren; und einen maschinellen Lernalgorithmus mit Eingaben zu verwenden, um ein Verhaltensmodell zu trainieren, um ein bösartiges Verhalten in einer unbekannten Ausführung der Anwendung zu identifizieren, wobei die Eingaben ein oder mehrere Bilder der Reihe von Bildern und jeweilige, dem einen oder den mehreren Bildern zugewiesene Bildkennzeichnungen enthalten.
  2. Vorrichtung nach Anspruch 1, wobei die ersten Daten ein oder mehrere Bits enthalten, die jeweils anzeigen, ob bei der bekannten Ausführung eine bedingte Verzweigung genommen wurde.
  3. Vorrichtung nach Anspruch 1, wobei die ersten Daten eine Arbeitsspeicheradresse in einer Nutzlast des ersten Kontrollflusspakets enthalten, wobei die Arbeitsspeicheradresse eine Zieladresse einer bei der bekannten Ausführung genommenen indirekten Verzweigung repräsentiert.
  4. Vorrichtung nach einem der Ansprüche 1-3, wobei die Reihe von Bildern eine Sequenz von Dreikanalbildern ist.
  5. Vorrichtung nach einem der Ansprüche 1-4, wobei der Prozessor ausgelegt ist, im Arbeitsspeicher gespeicherte Programmanweisungen auszuführen, um: die Pixelanordnung in zwei oder mehr Segmente aufzuteilen; jedes Segment auf eine zweidimensionale Anordnung abzubilden; und jede zweidimensionale Anordnung zu vervielfältigen, um ein einem jeweiligen Segment entsprechendes Dreikanalbild zu erzeugen.
  6. Vorrichtung nach einem der Ansprüche 1-5, wobei der Prozessor ausgelegt ist, im Arbeitsspeicher gespeicherte Programmanweisungen auszuführen, um: vor dem Verwenden des maschinellen Lernalgorithmus zum Trainieren des Verhaltensmodells dem einen oder den mehreren Bildern in der Reihe von Bildern die jeweiligen Bildkennzeichnungen zuzuweisen.
  7. Vorrichtung nach einem der Ansprüche 1-6, wobei der Prozessor ausgelegt ist, im Arbeitsspeicher gespeicherte Programmanweisungen auszuführen, um: das erste Kontrollflusspaket aus einem Ausführungsverlauf zu extrahieren, der zumindest einen Teil der bekannten Ausführung der Anwendung repräsentiert.
  8. Vorrichtung nach Anspruch 7, wobei auf Grundlage einer ersten Bildkennzeichnung, die anzeigt, dass der Ausführungsverlauf gutartig ist, jede Bildkennzeichnung, die einem entsprechenden Bild zugewiesen ist, anzeigt, dass ein vom entsprechenden Bild repräsentiertes Verhalten gutartig ist.
  9. Vorrichtung nach Anspruch 7, wobei auf Grundlage einer ersten Bildkennzeichnung, die anzeigt, dass der Ausführungsverlauf bösartig ist, die jeweiligen Bildkennzeichnungen den Bildern zugewiesen werden, um anzuzeigen, dass von den Bildern repräsentierte Verhalten bösartig sind.
  10. Vorrichtung nach einem der Ansprüche 7 oder 9, wobei der Prozessor ausgelegt ist, im Arbeitsspeicher gespeicherte Programmanweisungen auszuführen, um: eine Position im Ausführungsverlauf zu identifizieren, die einer Initiierung eines Malwareangriffs entspricht; ein Pixel in einem Bild der Reihe von Bildern zu identifizieren, die der identifizierten Position im Ausführungsverlauf entspricht; und das das Pixel beinhaltende Bild und jedes nachfolgende Bild, das den Ausführungsverlauf repräsentiert, als das eine oder die mehreren Bilder auszuwählen, denen die jeweiligen Bildkennzeichnungen zuzuweisen sind.
  11. Vorrichtung nach einem der Ansprüche 1-10, wobei das eine oder die mehreren Bilder alle der Bilder der Reihe von Bildern enthalten.
  12. Vorrichtung nach einem der Ansprüche 1-11, wobei der maschinelle Lernalgorithmus mit einem faltenden neuronalen Netz (CNN) assoziiert ist, wobei das CNN vorab an einem Datensatz trainiert wurde, der mit einer von Malwareerkennung verschiedenen Domäne assoziiert ist.
  13. Vorrichtung nach einem der Ansprüche 1-12, wobei der Prozessor ausgelegt ist, im Arbeitsspeicher gespeicherte Programmanweisungen auszuführen, um: eine zweite Reihe von Bildern auf Grundlage eines oder mehrerer anderer Steuerpakete einer unbekannten Ausführung der Anwendung zu generieren; das Verhaltensmodell auf die zweite Reihe von Bildern anzuwenden, um eine jeweilige Bewertung für jedes Bild der zweiten Reihe von Bildern zu erstellen; und zumindest teilweise auf Grundlage der Bewertungen und eines Parameters zu ermitteln, ob ein Malwareangriff in der unbekannten Ausführung vorliegt.
  14. Verfahren, wobei das Verfahren umfasst: Umwandeln eines ersten Datenelements eines ersten Kontrollflusspakets in ein erstes Pixel, wobei das erste Datenelement eine oder mehrere Verzweigungen anzeigt, die während einer bekannten Ausführung einer Anwendung genommen wurden; Generieren einer Anordnung von Pixeln unter Verwendung des ersten Pixels und eines oder mehrerer anderer Pixel, die mit einem oder mehreren anderen Kontrollflusspaketen assoziiert sind, die aus der bekannten Ausführung generiert wurden; Transformieren der Pixelanordnung in eine Reihe von Bildern; und Verwenden eines maschinellen Lernalgorithmus mit Eingaben, um ein Verhaltensmodell zu trainieren, um ein bösartiges Verhalten in einer unbekannten Ausführung der Anwendung zu identifizieren, wobei die Eingaben ein oder mehrere Bilder der Reihe von Bildern und jeweilige, dem einen oder den mehreren Bildern zugewiesene Bildkennzeichnungen enthalten.
  15. Verfahren nach Anspruch 14, wobei die ersten Daten ein oder mehrere Bits enthalten, die jeweils anzeigen, ob bei der bekannten Ausführung eine bedingte Verzweigung genommen wurde.
  16. Verfahren nach Anspruch 14, wobei die ersten Daten eine Arbeitsspeicheradresse in einer Nutzlast des ersten Kontrollflusspakets enthalten, wobei die Arbeitsspeicheradresse eine Zieladresse einer bei der bekannten Ausführung genommenen indirekten Verzweigung repräsentiert.
  17. Verfahren nach einem der Ansprüche 14-16, wobei die Reihe von Bildern eine Sequenz von Dreikanalbildern ist.
  18. Verfahren nach einem der Ansprüche 14-17, wobei die Anweisungen, wenn sie vom mindestens einen Prozessor ausgeführt werden, bewirken, dass der mindestens eine Prozessor: die Pixelanordnung in zwei oder mehr Segmente aufteilt; jedes Segment auf eine zweidimensionale Anordnung abbildet; und jede zweidimensionale Anordnung vervielfältigt, um ein einem jeweiligen Segment entsprechendes Dreikanalbild zu erzeugen.
  19. Verfahren nach einem der Ansprüche 14-18, ferner umfassend: Extrahieren des ersten Kontrollflusspakets aus einem Ausführungsverlauf, der zumindest einen Teil der bekannten Ausführung der Anwendung repräsentiert.
  20. Verfahren, wobei das Verfahren umfasst: Umwandeln eines ersten Datenelements eines ersten Kontrollflusspakets in ein erstes Pixel, wobei das erste Datenelement eine oder mehrere Verzweigungen anzeigt, die während einer unbekannten Ausführung einer Anwendung genommen wurden; Generieren einer Anordnung von Pixeln unter Verwendung des ersten Pixels und eines oder mehrerer anderer Pixel, die mit einem oder mehreren anderen Kontrollflusspaketen assoziiert sind, die aus der unbekannten Ausführung generiert wurden; Transformieren der Pixelanordnung in eine Reihe von Bildern; und Anwenden eines von einem maschinellen Lernalgorithmus erstellten Verhaltensmodells auf die Reihe von Bildern, um eine jeweilige Bewertung für jedes Bild der Reihe von Bildern zu erstellen; und Ermitteln, ob ein Malwareangriff in der unbekannten Ausführung vorliegt, auf Grundlage der Bewertungen und eines Parameters.
  21. Verfahren nach Anspruch 20, wobei die Anweisungen, wenn sie vom mindestens einen Prozessor ausgeführt werden, bewirken, dass der mindestens eine Prozessor: das erste Kontrollflusspaket aus einem Ausführungsverlauf extrahiert, der zumindest einen Teil der unbekannten Ausführung der Anwendung repräsentiert.
  22. Verfahren nach Anspruch 21, wobei die Anweisungen, wenn sie vom mindestens einen Prozessor ausgeführt werden, bewirken, dass der mindestens eine Prozessor auf Grundlage eines Ermittelns, dass in der unbekannten Ausführung ein Malwareangriff vorliegt: den Ausführungsverlauf als bösartig klassifiziert; und eine Maßnahme ergreift.
  23. Verfahren nach einem der Ansprüche 20-22, wobei die Anweisungen, wenn sie vom mindestens einen Prozessor ausgeführt werden, bewirken, dass der mindestens eine Prozessor: einen Prozentsatz von Bildern berechnet, die in Übereinstimmung mit den den Bildern zugewiesenen Bewertungen als bösartig klassifiziert sind; und auf Grundlage des berechneten Prozentsatzes von Bildern und eines durch den Parameter repräsentierten Schwellenprozentsatzes von Bildern ermittelt, ob der Ausführungsverlauf als bösartig zu klassifizieren ist.
  24. Vorrichtung, wobei die Vorrichtung Mittel zum Durchführen des Verfahrens nach einem der Ansprüche 14-23 umfasst.
  25. Mindestens ein maschinenlesbares Speichermedium, das Anweisungen umfasst, wobei die Anweisungen, wenn sie ausgeführt werden, eine Vorrichtung nach einem der Ansprüche 1-23 realisieren oder ein Verfahren nach einem der Ansprüche 1-23 implementieren.
DE102018129692.4A 2017-12-28 2018-11-26 Tiefgehendes Lernen anhand von Ausführungsverlaufsdaten zur Erkennung von Exploits Pending DE102018129692A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201762611312P 2017-12-28 2017-12-28
US62/611,312 2017-12-28
US15/922,868 US10915631B2 (en) 2017-12-28 2018-03-15 Deep learning on execution trace data for exploit detection
US15/922,868 2018-03-15

Publications (1)

Publication Number Publication Date
DE102018129692A1 true DE102018129692A1 (de) 2019-07-04

Family

ID=65229799

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018129692.4A Pending DE102018129692A1 (de) 2017-12-28 2018-11-26 Tiefgehendes Lernen anhand von Ausführungsverlaufsdaten zur Erkennung von Exploits

Country Status (3)

Country Link
US (1) US10915631B2 (de)
CN (1) CN110059484A (de)
DE (1) DE102018129692A1 (de)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11507663B2 (en) 2014-08-11 2022-11-22 Sentinel Labs Israel Ltd. Method of remediating operations performed by a program and system thereof
US9710648B2 (en) 2014-08-11 2017-07-18 Sentinel Labs Israel Ltd. Method of malware detection and system thereof
US11616812B2 (en) 2016-12-19 2023-03-28 Attivo Networks Inc. Deceiving attackers accessing active directory data
US11695800B2 (en) 2016-12-19 2023-07-04 SentinelOne, Inc. Deceiving attackers accessing network data
US10462171B2 (en) 2017-08-08 2019-10-29 Sentinel Labs Israel Ltd. Methods, systems, and devices for dynamically modeling and grouping endpoints for edge networking
US10706150B2 (en) * 2017-12-13 2020-07-07 Paypal, Inc. Detecting malicious software by inspecting table look-aside buffers
US10963566B2 (en) * 2018-01-25 2021-03-30 Microsoft Technology Licensing, Llc Malware sequence detection
US11470115B2 (en) 2018-02-09 2022-10-11 Attivo Networks, Inc. Implementing decoys in a network environment
JP7067612B2 (ja) * 2018-03-15 2022-05-16 日本電気株式会社 分析装置、分析方法、及び、プログラム
US11140068B2 (en) * 2018-06-25 2021-10-05 Edgewater Networks, Inc. Edge networking devices and systems for identifying a software application
US11093605B2 (en) * 2018-06-28 2021-08-17 Cisco Technology, Inc. Monitoring real-time processor instruction stream execution
US11126721B2 (en) * 2018-06-28 2021-09-21 Intel Corporation Methods, systems and apparatus to detect polymorphic malware
US11222114B2 (en) * 2018-08-01 2022-01-11 International Business Machines Corporation Time and frequency domain analysis of bytecode for malware detection
US11042634B2 (en) * 2018-12-21 2021-06-22 Fujitsu Limited Determining information leakage of computer-readable programs
RU2724710C1 (ru) * 2018-12-28 2020-06-25 Акционерное общество "Лаборатория Касперского" Система и способ классификации объектов вычислительной системы
EP3906508B1 (de) * 2018-12-31 2024-03-13 Intel Corporation Sicherungssysteme mit künstlicher intelligenz
SG11202107620QA (en) * 2019-01-17 2021-08-30 Visa Int Service Ass A deep learning model for learning program embeddings
CN109829306B (zh) * 2019-02-20 2023-07-21 哈尔滨工程大学 一种优化特征提取的恶意软件分类方法
KR102007809B1 (ko) * 2019-03-05 2019-08-06 에스지에이솔루션즈 주식회사 이미지를 이용한 신경망 기반 익스플로잇킷 탐지 시스템
US20220255953A1 (en) * 2019-03-23 2022-08-11 British Telecommunications Public Limited Company Feature detection with neural network classification of images representations of temporal graphs
CN110060247B (zh) * 2019-04-18 2022-11-25 深圳市深视创新科技有限公司 应对样本标注错误的鲁棒深度神经网络学习方法
EP3973427A4 (de) 2019-05-20 2023-06-21 Sentinel Labs Israel Ltd. Systeme und verfahren zur ausführbaren codedetektion, automatische merkmalsextraktion und positionsunabhängige codedetektion
WO2020239234A1 (en) * 2019-05-31 2020-12-03 Huawei Technologies Co., Ltd. Apparatuses and methods for detecting malware
US11070572B2 (en) * 2019-07-09 2021-07-20 Mcafee, Llc Methods, systems, articles of manufacture and apparatus for producing generic IP reputation through cross-protocol analysis
US11610076B2 (en) * 2019-08-07 2023-03-21 Applied Materials, Inc. Automatic and adaptive fault detection and classification limits
US11616795B2 (en) * 2019-08-23 2023-03-28 Mcafee, Llc Methods and apparatus for detecting anomalous activity of an IoT device
US11496495B2 (en) * 2019-10-25 2022-11-08 Cognizant Technology Solutions India Pvt. Ltd. System and a method for detecting anomalous patterns in a network
TWI779245B (zh) * 2019-10-31 2022-10-01 安碁資訊股份有限公司 異常流量偵測方法與異常流量偵測裝置
CN110826698A (zh) * 2019-11-04 2020-02-21 电子科技大学 一种通过上下文相关的图嵌入表示人群移动模式的方法
KR102134653B1 (ko) * 2019-11-25 2020-07-16 한국인터넷진흥원 익스플로잇 공격에 대한 탐지 정확도를 향상시키기 위한 룰 최적화 장치 및 그 방법
TWI732370B (zh) 2019-12-04 2021-07-01 財團法人工業技術研究院 神經網路模型的訓練裝置和訓練方法
US11818145B2 (en) * 2019-12-09 2023-11-14 International Business Machines Corporation Characterizing user behavior in a computer system by automated learning of intention embedded in a system-generated event graph
JP7403340B2 (ja) * 2020-02-17 2023-12-22 株式会社日立製作所 物体認識モデルの流用可否を判定するシステム。
US11363041B2 (en) * 2020-05-15 2022-06-14 International Business Machines Corporation Protecting computer assets from malicious attacks
US20220150143A1 (en) * 2020-11-12 2022-05-12 At&T Intellectual Property I, L.P. Classification of encrypted internet traffic with binary traffic vectors
US20220172073A1 (en) * 2020-11-26 2022-06-02 Zecang Gu Simulated deep learning method based on sdl model
US11579857B2 (en) 2020-12-16 2023-02-14 Sentinel Labs Israel Ltd. Systems, methods and devices for device fingerprinting and automatic deployment of software in a computing network using a peer-to-peer approach
US12019720B2 (en) * 2020-12-16 2024-06-25 International Business Machines Corporation Spatiotemporal deep learning for behavioral biometrics
KR102514257B1 (ko) * 2021-02-19 2023-03-29 한국전자통신연구원 제어 흐름 무결성 위반 탐지 장치 및 방법
CN112989344B (zh) * 2021-03-16 2022-07-05 北京理工大学 基于硬件追踪技术的恶意程序智能检测方法、装置及系统
CN113449303B (zh) * 2021-06-28 2022-11-11 杭州云象网络技术有限公司 基于教师-学生网络模型的智能合约漏洞检测方法和系统
CN113569913B (zh) * 2021-06-29 2023-04-25 西北大学 基于分层选择性Adaboost-DNNs的图像分类模型建立、分类方法及系统
US11899782B1 (en) 2021-07-13 2024-02-13 SentinelOne, Inc. Preserving DLL hooks
US20220092179A1 (en) * 2021-12-02 2022-03-24 Intel Corporation Detecting data oriented attacks using hardware-based data flow anomaly detection
US11853751B2 (en) * 2021-12-13 2023-12-26 International Business Machines Corporation Indirect function call target identification in software
US11973785B1 (en) 2023-06-19 2024-04-30 King Faisal University Two-tier cybersecurity method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9378455B2 (en) * 2012-05-10 2016-06-28 Yan M. Yufik Systems and methods for a computer understanding multi modal data streams
US10248424B2 (en) 2016-10-01 2019-04-02 Intel Corporation Control flow integrity
US10282622B2 (en) * 2016-12-09 2019-05-07 Hitachi Kokusai Electric Inc. Marine intrusion detection system and method
US11004003B2 (en) 2017-06-14 2021-05-11 Intel Corporation Machine learning based exploit detection
CN107801026B (zh) * 2017-11-09 2019-12-03 京东方科技集团股份有限公司 图像压缩方法及装置、图像压缩及解压缩系统
US20190042743A1 (en) * 2017-12-15 2019-02-07 Intel Corporation Malware detection and classification using artificial neural network
US11657162B2 (en) * 2019-03-22 2023-05-23 Intel Corporation Adversarial training of neural networks using information about activation path differentials
US20190272375A1 (en) * 2019-03-28 2019-09-05 Intel Corporation Trust model for malware classification

Also Published As

Publication number Publication date
CN110059484A (zh) 2019-07-26
US20190042745A1 (en) 2019-02-07
US10915631B2 (en) 2021-02-09

Similar Documents

Publication Publication Date Title
DE102018129692A1 (de) Tiefgehendes Lernen anhand von Ausführungsverlaufsdaten zur Erkennung von Exploits
Liang et al. Rice blast disease recognition using a deep convolutional neural network
DE112020004702T5 (de) Bildgenerierung unter verwendung eines oder mehrerer neuronaler netze
DE112020004237T5 (de) Video-upsampling unter verwendung eines oder mehrerer neuronaler netze
DE112020004541T5 (de) Spieleranalyse unter verwendung eines oder mehrerer neuronaler netze
DE112020003127T5 (de) Erweiterung von dynamischem Verarbeitungselement-Array
WO2019091181A1 (zh) 图像处理方法、处理装置和处理设备
DE102018128581A1 (de) Erkennung und klassifikfation von schadsoftware unter verwendung eines künstlichen neuronalen netzes
DE112019001121B4 (de) Auf einem computer implementiertes verfahren zum identifizieren von malware und system hierfür
DE102018115440A1 (de) Techniken zum Trainieren tiefer neuronaler Netzwerke
DE102018132069A1 (de) Äquivariante Orientierungspunkt-Transformation für Orientierungspunkt-Lokalisierung
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
DE112017003335T5 (de) Maschinelles lernen in gegnerischen umgebungen
DE112020004107T5 (de) Inhaltsempfehlungen unter verwendung eines oder mehrerer neuronaler netze
DE102018001535A1 (de) Laufzeit-prozessoroptimierung
DE112020003165T5 (de) Videointerpolation unter Verwendung eines oder mehrerer neuronaler Netze
DE102021124372A1 (de) Wissensentdeckung mit einem neuronalen netz
DE102021132069A1 (de) Grafikverarbeitungseinheiten zur erkennung von betrug mittels neuronaler netze
DE112020002693T5 (de) Verringerung der berechnung in neuralen netzwerken mit selbstmodifizierendem code
DE102021115585A1 (de) Empfehlungserzeugung unter verwendung von einem oder mehreren neuronalen netzwerken
DE112019006156T5 (de) Erkennung und behandlung von unsachgemässen eingaben durch neuronale netzwerke
DE102022106057A1 (de) Authentifikatorintegriertes generatives adversariales netzwerk (gan) zur sicheren deepfake-erzeugung
DE112020005560T5 (de) Gesichtsmanipulationsdetektion unter Verwendung eines durch physische Hinweise geführten Mehrquellen-Mehrkanal-Rahmens
DE102018127802A1 (de) Hybrider klassifikator eines gepulsten neuronalen netzwerks und einer support-vektor-maschine
DE102021206615A1 (de) Charakterisierung von anomalien unter verwendung eines oder mehrerer neuronaler netzwerke