DE102018128581A1 - Erkennung und klassifikfation von schadsoftware unter verwendung eines künstlichen neuronalen netzes - Google Patents

Erkennung und klassifikfation von schadsoftware unter verwendung eines künstlichen neuronalen netzes Download PDF

Info

Publication number
DE102018128581A1
DE102018128581A1 DE102018128581.7A DE102018128581A DE102018128581A1 DE 102018128581 A1 DE102018128581 A1 DE 102018128581A1 DE 102018128581 A DE102018128581 A DE 102018128581A DE 102018128581 A1 DE102018128581 A1 DE 102018128581A1
Authority
DE
Germany
Prior art keywords
array
ann
layers
malware
binary file
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
DE102018128581.7A
Other languages
English (en)
Inventor
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 DE102018128581A1 publication Critical patent/DE102018128581A1/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/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • 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/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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

Landscapes

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

Abstract

Eine Vorrichtung zum Rechnen wird dargestellt. In Ausführungsformen kann die Vorrichtung einen Konverter zum Empfangen und Konvertieren einer Binärdatei in ein multidimensionales Array aufweisen, wobei die Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung auszuführen ist. Die Vorrichtung kann ferner einen Analysator aufweisen, der mit dem Konverter gekoppelt ist, wobei der Analysator das multidimensionale Array verarbeitet, um Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist, wobei wenigstens ein teilweise nachtrainiertes künstliches neuronales Netz verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist. Der Analysator kann ferner ein Klassifikationsergebnis ausgeben, und das Klassifikationsergebnis kann verwendet werden, um ein Ausführen der Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung zu verhindern.

Description

  • Gebiet
  • Ausführungsformen der vorliegenden Offenbarung beziehen sich auf das technische Gebiet des Computerwesens und insbesondere auf die Erkennung und Klassifikation von Schadsoftware.
  • Allgemeiner Stand der Technik
  • Herkömmliche Rechensysteme können automatisierte Systeme zur Erkennung von Schadsoftware aufweisen. Einige Systeme zur Erkennung von Schadsoftware können durch Algorithmen aus dem Bereich des maschinellen Lernens unterstützt werden, die Signaturen verwenden, um hochwertige Klassifikationsergebnisse zu erzielen. Die rapide Zunahme an Signaturen, die schon annähernd exponentiell ist, macht Signaturabgleiche durch maschinelles Lernen jedoch schwierig beziehungsweise zu langsam. Andere Ansätze umfassen statische und dynamische Analysen, die beide jeweils Vor- und Nachteile haben. Während eine statische Analyse einen zu analysierenden Code disassemblieren kann, kann ihre Leistung durch Obfuskation (Verschleierung) des Codes beeinträchtigt werden. Andererseits kann eine dynamische Analyse, die in der Lage ist, unbekannten oder verdächtigen Code zu dekomprimieren, zeitaufwendig sein. Darüber hinaus können bei Datensätzen, die eine große Anzahl von Dimensionen aufweisen, wenn die Dimensionsverringerung ohne genaue Kenntnis der Daten durchgeführt wird, die Klassifikationsergebnisse erheblich beeinträchtigt sein.
  • Figurenliste
    • 1 veranschaulicht eine Übersicht eines Systems, das Technologien der vorliegenden Offenbarung zur Erkennung und Klassifikation von Schadsoftware in Übereinstimmung mit verschiedenen Ausführungsformen aufweist.
    • 1A veranschaulicht eine Übersicht eines Trainingssystems in Übereinstimmung mit verschiedenen Ausführungsformen.
    • Figure 2 veranschaulicht eine Übersicht eines alternativen Systems, das ein „Bündelungs“-System in Übereinstimmung mit verschiedenen Ausführungsformen zeigt.
    • 3 veranschaulicht die Verwendung von Transferlearning in Übereinstimmung mit verschiedenen Ausführungsformen.
    • 4A bis 4L veranschaulichen einen beispielhaften teilweise nachtrainierten Klassifikator für tiefe neuronale Netze in Übereinstimmung mit verschiedenen Ausführungsformen.
    • 5 veranschaulicht eine Übersicht des operativen Ablaufs eines Verfahrens zum Erkennen und Klassifizieren von Schadsoftware in Übereinstimmung mit verschiedenen Ausführungsformen.
    • 6 veranschaulicht eine Übersicht des operative Ablaufs eines alternativen Verfahrens zum Erkennen und Klassifizieren von Schadsoftware unter Verwendung von Bündeln von zwei künstlichen neuronalen Netzen in Übereinstimmung mit verschiedenen Ausführungsformen.
    • 7 veranschaulicht eine Übersicht des operativen Ablaufs eines Verfahrens zum Trainieren und Validieren eines Systems zur Erkennung und Klassifikation von Schadsoftware in Übereinstimmung mit verschiedenen Ausführungsformen.
    • 8 veranschaulicht ein Blockdiagramm einer Computervorrichtung, die zum Praktizieren der vorliegenden Offenbarung in Übereinstimmung mit verschiedenen Ausführungsformen geeignet ist.
    • 9 veranschaulicht ein exemplarisches computerlesbares Speichermedium, das Anweisungen aufweist, die ausgelegt sind, um Aspekte der Verfahren der 5-7 in Übereinstimmung mit verschiedenen Ausführungsformen zu praktizieren.
  • Detaillierte Beschreibung
  • In Ausführungsformen kann eine Vorrichtung zum Rechnen aufweisen: einen Konverter zum Empfangen und Konvertieren einer Binärdatei in ein multidimensionales Array, wobei die Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung auszuführen ist, und einen Analysator, der mit dem Konverter gekoppelt ist, um das multidimensionale Array zu verarbeiten, um Schadsoftware zu erkennen und zu klassifizieren die in das multidimensionale Array eingebettet ist. Der Konverter kann in Ausführungsformen wenigstens ein teilweise nachtrainiertes künstliches neuronales Netz verwenden, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist. Der Konverter kann ferner in Ausführungsformen ein Klassifikationsergebnis ausgeben, wobei das Klassifikationsergebnis verwendet wird, um eine Ausführung der Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung zu verhindern.
  • Das multidimensionale Array kann in Ausführungsformen ein 2D-Array sein. Der Konverter kann in Ausführungsformen zunächst die Binärdatei in einen Vektor von vorzeichenlosen 8-Bit Ganzzahlen konvertieren und dann den Vektor in das 2D-Array konvertieren. Darüber hinaus kann der Konverter in einigen Ausführungsformen den Vektor zunächst in ein internes 2D-Array konvertieren und dann das interne 2D-Array in der Größe verändern, bevor er das 2D-Array ausgibt. In derartigen Ausführungsformen kann das größenveränderte 2D-Array eine Größe von beispielsweise 224 x 224 oder 299 x 299 aufweisen. In alternativen Ausführungsformen, bei denen der Konverter zwei 2D-Arrays ausgibt, die jeweils von zwei künstlichen neuronalen Netzen zu analysieren sind, können die größenveränderten Arrays ein erstes 2D-Array von beispielsweise 224 x 224 oder 299 x 299 und ein zweites 2D-Array von beispielsweise 28 x 28 aufweisen.
  • Das wenigstens eine teilweise nachtrainierte künstliche neuronale Netz kann in Ausführungsformen ein neuronales Netz aufweisen, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden. So kann beispielsweise das künstliche neuronale Netz das Inception-BN-Netz aufweisen, dessen letzte Schicht zum Klassifizieren von Schadsoftware nachtrainiert wurde. Oder beispielsweise kann das künstliche neuronale Netz in Ausführungsformen eines von Visual Geometry Group (VGG) 16 oder VGG 19 sein, wobei dessen obere Schichten eingefroren sind und dessen letzten drei Schichten nachtrainiert sind, um Schadsoftware zu klassifizieren.
  • In Ausführungsformen kann die Vorrichtung einen Schadsoftware-Detektor einschließlich des Konverters und des Analysators umfassen, oder kann beispielsweise ein Betriebssystem aufweisen, das den Konverter und den Analysator umfasst. Die Vorrichtung kann in Ausführungsformen ein Cloud-Server sein.
  • In der folgenden Beschreibung wird auf die beigefügten Zeichnungen verwiesen, die einen Bestandteil hiervon bilden, wobei gleiche Bezugsziffern (oder gegebenenfalls die letzten beiden Ziffern einer Indexzahl) durchweg gleiche Teile bezeichnen, und in denen Ausführungsformen, die ausgeführt werden können, zur Veranschaulichung dargestellt sind. Es versteht sich, dass andere Ausführungsformen verwendet werden können und strukturelle oder logische Änderungen vorgenommen werden können, ohne vom Schutzumfang der vorliegenden Offenbarung abzuweichen. Daher ist die folgende detaillierte Beschreibung nicht in einem einschränkenden Sinne zu verstehen, und der Schutzumfang der Ausführungsformen wird durch die beigefügten Ansprüche und deren Äquivalente definiert.
  • Operationen verschiedener Verfahren können als vielfache separate Aktionen oder als aufeinanderfolgende Operationen beschrieben werden, je nachdem, wie es für das Verständnis des beanspruchten Gegenstands am hilfreichsten ist. Die Reihenfolge der Beschreibung sollte jedoch nicht dahingehend ausgelegt werden, dass sie impliziert, dass diese Vorgänge notwendigerweise von der Reihenfolge abhängig sind. Insbesondere werden diese Vorgänge möglicherweise nicht in der Reihenfolge der Darstellung durchgeführt. Beschriebene Operationen können in einer anderen Reihenfolge als bei den beschriebenen Ausführungsformen ausgeführt werden. In zusätzlichen Ausführungsformen können verschiedene zusätzliche Operationen durchgeführt werden und/oder beschriebene Operationen weggelassen, unterteilt oder kombiniert werden.
  • Der Ausdruck „A und/oder B“ bedeutet für die Zwecke der vorliegenden Offenbarung (A), (B) oder (A und B). Der Ausdruck „A, B und/oder C“ bedeutet für die Zwecke der vorliegenden Offenbarung (A), (B), (C), (A und B), (A und C), (B und C) oder (A, B und C).
  • Die Beschreibung kann die Ausdrücke „in einer Ausführungsform“ oder „in Ausführungsformen“ verwenden, die sich jeweils auf eine oder mehrere der gleichen Ausführungsform oder unterschiedlicher Ausführungsformen beziehen können. Darüber hinaus sind die Begriffe „umfassen“, „aufweisen“, „enthalten“ und dergleichen, wie sie in Bezug auf die Ausführungsformen der vorliegenden Offenbarung verwendet werden, synonym.
  • Es wird auch angemerkt, dass Ausführungsformen als ein Verfaheren beschrieben werden können, das als ein Flussdiagramm, Ablaufdiagramm, Datenflussdiagramm, Strukturdiagramm oder Blockdiagramm dargestellt wird. Auch wenn ein Flussdiagramm die Operationen als sequentielles Verfahren beschreiben kann, können viele der Operationen parallel, gleichlaufend oder gleichzeitig ausgeführt werden. Darüber hinaus kann die Reihenfolge der Operationen neu geordnet werden. Ein Verfahren kann beendet sein, wenn seine Operationen abgeschlossen sind, kann aber auch zusätzliche Schritte enthalten, die nicht in der Figur/den Figuren enthalten sind. Ein Verfahren kann einer Methode, einer Funktion, einer Prozedur, einer Unterroutine, einem Unterprogramm und dergleichen entsprechen. Wenn ein Verfahren einer Funktion entspricht, kann seine Beendung einer Rückkehr der Funktion zur aufrufenden Funktion und/oder zur Hauptfunktion entsprechen. Darüber hinaus kann ein Verfahren durch Hardware, Software, Firmware, Middleware, Mikrocode, Hardwarebeschreibungssprachen oder eine beliebige Kombination derselben implementiert sein. Bei Implementierung in Software, Firmware, Middleware oder Mikrocode kann der Programmcode oder können die Codesegmente, die die erforderlichen Aufgaben ausführen, auf einem maschinen- oder computerlesbaren Medium gespeichert sein. Ein Codesegment kann eine Prozedur, Funktion, ein Unterprogramm, Programm, eine Routine, Unterroutine, ein Modul, Programmcode, Softwarepaket, eine Klasse oder eine beliebige Kombination von Anweisungen, Datenstrukturen, Programmanweisungen und dergleichen repräsentieren.
  • So wie hier verwendet, einschließlich der Ansprüche, kann sich der Begriff „Schaltung“ auf Folgendes beziehen, ein Teil von Folgendem sein oder Folgendes aufweisen: einen anwendungsspezifischen integrierten Schaltkreis (ASIC), eine elektronische Schaltung, einen Prozessor (gemeinsam genutzt, dediziert oder Gruppenprozessor) und/oder Arbeitsspeicher (gemeinsam, dediziert oder Gruppenarbeitsspeicher), die ein oder mehrere Software- oder Firmwareprogramme, eine kombinatorische Logikschaltung und/oder andere geeignete Hardwarekomponenten, die die beschriebene Funktionalität bereitstellen, ausführen. In einigen Ausführungsformen kann die Schaltung ein oder mehrere Software- oder Firmware-Module implementieren, oder Funktionen, die mit der Schaltung assoziiert sind, können durch ein oder mehrere Software- oder Firmware-Module implementiert sein.
  • So wie hier verwendet, einschließlich der Ansprüche, kann der Begriff „Arbeitsspeicher“ eine oder mehrere Hardwarevorrichtungen zum Speichern von Daten darstellen, einschließlich Direktzugriffsspeicher (RAM), magnetischen RAM, Kernspeicher, Nur-LeseSpeicher (ROM), Magnetschichtspeichermedien, optische Speichermedien, Flash-Speichervorrichtungen und/oder andere maschinenlesbare Medien zum Speichern von Daten. Der Begriff „computerlesbares Medium“ kann unter anderem Arbeitsspeicher, tragbare oder stationäre Speichervorrichtungen, optische Speichervorrichtungen, drahtlose Kanäle und verschiedene andere Medien umfassen, die Anweisungen und/oder Daten speichern, enthalten und/oder tragen können.
  • So wie hier verwendet, einschließlich der Ansprüche, kann der Begriff „Rechenplattform“ als gleichbedeutend mit Folgendem gesehen werden und im Weiteren gelegentlich als Folgendes bezeichnet werden: eine Rechnervorrichtung, Rechenvorrichtung, Client-Vorrichtung oder ein Client, Mobilgerät, eine Mobileinheit, ein mobiles Endgerät, eine mobile Station, ein mobiler Benutzer, eine mobile Ausrüstung, Benutzervorrichtung (UE), Benutzerausrüstung, Vorrichtung zur maschinellen Kommunikation (MTC), Vorrichtung zur Maschine-zu-Maschine-Kommunikation (M2M), M2M-Ausrüstung (M2ME), Internet der Dinge-Vorrichtung (IoT), ein Teilnehmer, Benutzer, Empfänger, usw., und kann jede physische Hardwarevorrichtung beschreiben, die in der Lage ist, sequentiell und automatisch eine Folge von arithmetischen oder logischen Operationen auszuführen, die zum Aufzeichnen/Speichern von Daten auf einem maschinenlesbaren Medium und zum Senden und Empfangen von Daten von einer oder mehreren anderen Vorrichtungen in einem Kommunikationsnetzwerk ausgelegt ist. Darüber hinaus kann der Begriff „Rechenplattform“ jede Art von elektronischer Vorrichtung umfassen, wie beispielsweise ein Mobiltelefon oder Smartphone, einen Tablet-PC, eine Wearable-Rechnervorrichtung, einen autonomen Sensor, persönliche digitale Assistenten (PDAs), einen Laptop-Computer, einen Desktop-PC, eine Videospielkonsole, einen digitalen Medienplayer, eine im Fahrzeug befindliche Infotainment-Vorrichtung (IVI) und/oder eine ICE-Vorrichtung (ein im Auto befindliches Entertainment-System), ein im Fahrzeug befindliches Computersystem, ein Navigationssystem, ein System zum autonomen Fahren, ein Fahrzeug-zu-Fahrzeug(V2V)-Kommunikationssystem, ein Verkehrsvernetzungs(V2X)-Kommunikationssystem, eine tragbare Messaging-Vorrichtung, einen persönlichen Datenassistenten, ein elektronisches Buchlesegerät, eine Augmented-Reality-Vorrichtung und/oder jede andere ähnliche elektronische Vorrichtung.
  • So wie hier nachfolgend verwendet, einschließlich der Ansprüche, kann sich der Begriff „Link“ oder „Kommunikationsverbindung“ auf jedes materielle oder immaterielle Übertragungsmedium beziehen, das zur Übermittlung von Daten oder eines Datenstroms verwendet wird. Darüber hinaus kann der Begriff „Link“ gleichbedeutend und/oder äquivalent mit „Kommunikationskanal“, „Datenkommunikationskanal“, „Übertragungskanal“, „Datenübertragungskanal“, „Zugangskanal“, „Datenzugangskanal“, „Kanal“, „Datenlink“, „Funkverbindung“, „Träger“, „Hochfrequenzträger“ und/oder einem anderen ähnlichen Begriff sein, der einen Pfad oder ein Medium bezeichnet, über den bzw. das Daten übertragen werden.
  • So wie hier nachfolgend verwendet, einschließlich der Ansprüche, können sich die Begriffe „Modul“, „Eingabeschnittstelle“, „Konverter“, „Analysator“ „künstliches neuronales Netz“, „trainiertes neuronales Netz“, „teilweise nachtrainiertes künstliches neuronales Netz“ oder „nachtrainiertes künstliches neuronales Netz“ auf eine oder mehrere der Folgenden beziehen, Teil dieser sein oder diese umfassen: anwendungsspezifische integrierte Schaltungen (ASIC), elektronische Schaltungen, programmierbare kombinatorische Logikschaltungen (wie feldprogrammierbare Gate-Arrays (FPGA)), die mit Logik programmiert sind, um hierin beschriebene Operationen durchzuführen, einen Prozessor (gemeinsam genutzt, dediziert oder Gruppenprozessor) und/oder Speicher (gemeinsam genutzt, dediziert oder Gruppenspeicher), der eine oder mehrere Software- oder Firmwareprogramme ausführt, die aus einer Vielzahl von Programmieranweisungen mit einer Logik erzeugt wurden, um die hierin beschriebenen Operationen auszuführen, und/oder andere geeignete Komponenten, die die beschriebene Funktionalität bereitstellen.
  • Im Folgenden wird ein System zur Erkennung von Schadsoftware beschrieben, das Transferlearning nutzt. Es sei zunächst angemerkt, dass es ziemlich teuer sein kann, künstliche neuronale Netze (ANNs) zu trainieren. Beispielsweise kann das Trainieren hochkomplexer Modelle unter Verwendung von hunderten Maschinen, die jeweils mit teuren Grafikverarbeitungseinheiten (GPUs) ausgestattet sind, wochenlang dauern. Daher kann in Ausführungsformen eine Beispielvorrichtung unter Verwendung von Transferlearning so viel Wissen wie möglich aus einem komplexen künstlichen neuronalen Netz übertragen und dieses Wissen auf einen vergleichsweise kleineren Datensatz anwenden, wie beispielsweise Schadsoftware-Binärdateien. Infolgedessen kann, wie nachfolgend beschrieben, in Ausführungsformen ein komplexes künstliches neuronales Netz, das bereits auf einen großen Datensatz trainiert wurde, in kurzer Zeit auf Schadsoftware-Binärdateien teilweise trainiert werden. Darüber hinaus sind Vorrichtungen nach verschiedenen Ausführungsformen, wie auch im Folgenden erwähnt, widerstandsfähig gegenüber Code-Obfuskation.
  • Begrenzte Schadsoftware-Trainingsdaten können in Ausführungsformen verwendet werden, um effektive Klassifikationsergebnisse zu etablieren. So kann beispielsweise eine Quelleneinstellung textliche Informationen, die aus 1,5 Millionen Bildern gelernt wurden, aufweisen, die dann auf eine Zielaufgabe einer Klassifikation von Schadsoftware-Bildern angewendet werden können. So muss ein künstliches neuronales Netz (ANN), das auf die 1,5 Millionen Bilder trainiert wurde, nur geringfügig auf einen Schadsoftware-Datensatz nachtrainiert werden, um Bilder korrekt als Schadsoftware enthaltend klassifizieren zu können.
  • Es sei angemerkt, dass von verschiedenen hierin beschriebenen Ausführungsformen gesagt werden kann, dass sie ein Schadsoftware-Erkennungsproblem in ein visuelles Erkennungsproblem verwandeln. So können in Ausführungsformen der Aufwand und die Kosten für das Extrahieren von Schadsoftwaremerkmalen deutlich reduziert werden. Es wird zudem hier darauf hingewiesen, dass, während herkömmliche Schadsoftware-Erkennungsverfahren ein oder mehrere der folgenden Schritte erfordern können: Codeanalyse, Signaturabgleich und Zählen von Histogrammen und Schleifen, in Ausführungsformen in Bilder umgewandelte Schadsoftware-Binärdateien schnell gescannt und klassifiziert werden können, ohne dass ein Extrahieren von Merkmalen oder ähnlicher Aufwand erforderlich ist. So kann in Übereinstimmung mit verschiedenen Ausführungsformen durch eine Vorrichtung eine Visualisierung durchgeführt werden, um die Beschaffenheit von Schadsoftware-Binärdateien zu untersuchen.
  • 1 veranschaulicht eine Übersicht eines Systems 100, das mit Technologien der vorliegenden Offenbarung zur Erkennung und Klassifikation von Schadsoftware in Übereinstimmung mit verschiedenen Ausführungsformen versehen ist. System 100 kann eine Vorrichtung umfassen, die einen Konverter 110 und einen Analysator 120 aufweist. Konverter 110 und Analysator 120 können jeweils separate Chips oder Module sein oder beispielsweise in einen einzelnen Chip oder Modul integriert sein. Unter Bezugnahme auf 1 kann eine Binärdatei 101 in Konverter 110 eingegeben werden. Die Binärdatei kann Audiodaten, Textdaten, Bilddaten oder dergleichen aufweisen. Im Regelfall ist Binärdatei 101 nicht als sicher bekannt und kann Schadsoftware aufweisen, weshalb es wünschenswert ist, sie zu scannen und zu klassifizieren, bevor sie auf einer Vorrichtung ausgeführt werden kann, z. B. einer Vorrichtung, die System 100 aufweist, oder einer anderen Vorrichtung, die von System 100 über das Klassifikationsergebnis informiert werden kann. Wenn sie nach der Analyse als eine Art von Schadsoftware eingestuft wird, kann das Klassifikationsergebnis in Ausführungsformen verwendet werden, um ein Ausführen der Binärdatei auf einer Vorrichtung, die System 100 aufweist, oder einer anderen Vorrichtung, die von System 100 über das Klassifikationsergebnis informiert werden kann, zu verhindern.
  • Konverter 110 kann in Ausführungsformen die Binärdatei 101 über eine Binärdatei-Eingabeschnittstelle 111 empfangen und kann mehrere Vorbehandlungsverfahren durchführen. Diese Verfahren können in Ausführungsformen ein Konvertieren der Binärdatei in einen Vektor umfassen, wie beispielsweise einen Vektor aus vorzeichenlosen 8-Bit Ganzzahlen. Dies kann in Ausführungsformen durch Konvertierung von Binär zu 8-Bit-Vektor 113 erfolgen. Nach Konvertierung kann der Vektor in ein multidimensionales Array, wie beispielsweise durch 2D-Array-Konvertierung 115 in ein 2D-Array, umgewandelt werden, wie in der exemplarischen Vorrichtung von 1 dargestellt. Beispielsweise kann der 1D-8-Bit-Vektor in ein 2D-Array umgewandelt werden, dessen Größe von der Länge des 1D-Vektors abhängt. Beispielsweise kann eine 2D-Array-Konvertierung eine Breite und Höhe des 2D-Arrays gemäß der folgenden Tabelle festlegen, wobei die Höhe des 2D-Arrays die Gesamtlänge dividiert durch die Breite ist: Tabelle 1 - 2D-Array Breite/Höhe
    Länge (Bytes) Breite Höhe
    <= 1000 512 Länge/512
    > 1000 bis 1500 1024 Länge/1024
    > 1500 2048 Länge/2048
  • In Ausführungsformen kann das durch 2D-Array-Konvertierung 115 erzeugte 2D-Array weiter größenverändert werden, um eine Eingabegröße zu ermöglichen, die von einem ANN benötigt wird, um dieses zu verarbeiten. Betrachtet man zum Beispiel einige bekannte künstliche neuronale Faltungsnetze, akzeptieren Visual Geometry Group (VGG) 16, VGG19, Inception-BN, AlexNet und ResNet 224x224 Eingabebilder, während Inception v3 und Xception 299x299 Pixeleingaben erfordern. Auf der anderen Seite hat LeNet eine Eingabegröße von 28x28. So kann in Ausführungsformen das in Konverter 110 dargestellte letzte Modul, d. h. Array-Größenänderung 117, die Größe des 2D-Arrays, das durch 2D-Array-Konvertierung 115 erzeugt wurde, auf ein oder mehrere größenveränderte 2D-Arrays ändern. Da ein 2D-Array von Daten, insbesondere ein 2D-Array mit vorzeichenlosen 8-Bit Ganzzahlen, als Bild angesehen werden kann, bei dem jedes Element einen Grauwert zwischen 0 und 255 beschreibt, kann ein solches 2D-Array hierin als „ein 2D-Bild“ bezeichnet werden.
  • Es wird hier noch einmal darauf hingewiesen, dass ein 2D-Array nur ein Beispiel eines multidimensionalen Arrays ist, das in verschiedenen Ausführungsformen verwendet werden kann, und somit nicht einschränkend ist. Es versteht sich daher, dass für andere multidimensionale Arrays jedes der Module Array-Konvertierung 115 und Array-Größenänderung 117 von Konverter 110, wie in 1 dargestellt, in Ausführungsformen Arrays verschiedener Maße erzeugen und in der Größe verändern können.
  • Weiterhin unter Bezug auf 1 kann in Ausführungsformen eine größenveränderte 2D-Array-Ausgabe von Array-Größenänderung 117 in Analysator 120 eingegeben werden. Analysator 120 kann ein teilweise nachtrainiertes ANN 123 aufweisen, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl von versteckten Schichten zwischen der Eingabe- und der Ausgabeschicht umfasst, zum Beispiel ein neuronales Faltungsnetz wie Inception-BN. Eine beispielhafte Version eines teilweise nachtrainierten Inception-BN ist in 4A bis 4L dargestellt, die im Folgenden beschrieben sind. Es wird hier darauf hingewiesen, dass ANN 123 als tiefes neuronales Netz bezeichnet werden kann, und darüber hinaus, unter Verwendung von Transferlearning, wie oben beschrieben, in Übereinstimmung mit verschiedenen Ausführungsformen verwendet werden kann. So können in Ausführungsformen die ersten mehreren Schichten eines ANN eingefroren sein und seine Gewichte können aus bestehenden neuronalen Netzmodellen von Stand der Technik gewonnen werden. Diese Informationen können in Ausführungsformen aus Domänen wie z. B. Klassifikation natürlicher Bilder oder Computer Vision bezogen werden. Dann können die restlichen Schichten des ANN, d. h. die nicht eingefrorenen, abgestimmt und auf domänenspezifische Daten trainiert werden, wie, in Übereinstimmung mit verschiedenen Ausführungsformen, Schadsoftware-Bildern, um ein teilweise nachtrainiertes ANN 123 zu erhalten. Dieses Verfahren eines Nachtrainings wird im Folgenden mit Bezug auf 1A näher beschrieben.
  • Schließlich kann nach Verarbeitung des größenveränderten 2D-Arrays mit einem teilweise nachtrainierten ANN 123 ein Klassifikationsergebnis 140 erhatten werden. Wenn Klassifikationsergebnis 140 eine Form von Schadsoftware ist, kann Klassifikationsergebnis 140 in Ausführungsformen verwendet werden, um eine Ausführung der Binärdatei 101 auf einer Vorrichtung, die System 100 aufweist, oder einer anderen Vorrichtung, die von System 100 über das Klassifikationsergebnis informiert werden kann, zu verhindern.
  • System 100 kann in Ausführungsformen als ein Schadsoftware-Detektor implementiert werden, der Konverter 110 und Analysator 120 aufweist. Alternativ kann System 100 auch ein Betriebssystem umfassen, das Konverter 110 und Analysator 120 aufweist. Und System 100 kann ebenfalls alternativ ein Cloud-Server sein.
  • 1A veranschaulicht ein Trainingssystem 100A in Übereinstimmung mit verschiedenen Ausführungsformen. Trainingssystem 100A kann in Ausführungsformen mit einigen wenigen Abweichungen dem System 100 aus 1 sehr ähnlich sein. Zur Vereinfachung der Beschreibung werden nur diese Abweichungen beschrieben. Trainingssystem 100A kann in Ausführungsformen verwendet werden, um das ANN von System 100 aus 1, konkret das teilweise nachtrainierte ANN 123, zu trainieren. Trainingssystem 100A kann in Ausführungsformen den gleichen Konverter 110 mit den gleichen Komponenten wie System 100 in 1 aufweisen. Es wird allerdings darauf hingewiesen, dass die Schadsoftware-Binärdatei(en) 101, die in Trainingssystem 100A eingegeben werden, ein Trainingssatz an Schadsoftware-Binärdateien sein können, von denen bekannt ist, dass sie bestimmte Arten von Schadsoftware aufweisen, die zum Training der letzten Schichten von ANN 123 verwendet werden können, wobei Nachtrainingsmodul 125 verwendet wird.
  • So kann Trainingssystem 100A aus 1A, anstatt einen vollständig trainierten Analysator zum Verarbeiten von 2D-Bildern zu verwenden, stattdessen Trainingsmodul 120 aufweisen. Trainingsmodul 120 kann, wie gezeigt, ein vortrainiertes ANN 123 laden, das durch Nachtrainingsmodul 125 teilweise nachtrainiert werden kann. Wie in Ausführungsformen gezeigt, kann Nachtrainingsmodul 125 die letzten wenigen Schichten des vortrainierten ANN 123 unter Verwendung eines Satzes von Schadsoftware, die Binärdateien aufweist, die in 2D-Bilder umgewandelt wurden, nachtrainieren, wobei die Schadsoftware, die Binärdateien aufweist, wie gezeigt in Konverter 110 eingegeben wird. In anderen Ausführungsformen kann Trainingssystem 1A verwendet werden, um alle Schichten eines ANN vollständig zu trainieren, wie z. B. Modell mit niedriger Auflösung 205, wie in 2 dargestellt und nachfolgend beschrieben.
  • Es sei angemerkt, dass, wenn beispielsweise die Größe der 2D-Bilder durch Array-Größenänderungs-Modul 117 auf 224 mal 224 geändert wird, es mehrere ANNs gibt, die als vortrainiertes ANN 123 verwendet werden können, und dadurch Transferlearning in Übereinstimmung mit verschiedenen Ausführungsformen nutzen. Diese ANNs können z. B. Inception-BN, VGG oder AlexNet umfassen, wie oben erwähnt. Die Architektur kann in Ausführungsformen als das Originalmodell beibehalten werden, und dann kann die letzte Pooling-Schicht, vor allen vollständig verbundenen Schichten, gegen Ende der neuronalen Netzarchitektur, identifiziert werden. Dann können die Parameter und Gewichte vor der letzten Pooling-Schicht unverändert beibehalten werden. In Ausführungsformen können die Parameternamen der letzten wenigen wenigen vollständig verbundenen Schichten gleich bleiben, aber die Werte können basierend auf einem Training an einem spezifizierten Schadsoftware-Datensatz aktualisiert werden. In Ausführungsformen kann der Trainingsdatensatz in einen Trainingssatz und einen Validierungssatz aufgeteilt werden.
  • Fortfahrend mit Bezugnahme auf 1A bleibt, sobald die letzten wenigen Schichten des vortrainierten ANN 123 nachtrainiert wurden, zu entscheiden, welche Epoche des ANN auszuwählen ist. Dies ist die Funktion des Validierungs- und Klassifikationsmoduls 140.
  • In Ausführungsformen können die Parameter des ANN als gleichmäßige Verteilung oder Gaußsche Verteilung initialisiert werden. Als nächstes können die Lernraten, Anzahl der Epochen, Auswertungsmetrik, Momentum, Gewichtsabnahme, stochastische Gradientenabsenkung als die Optimierer und Batchgröße eingestellt werden. Dann kann in Ausführungsformen das Modell bei einer k-ten Epoche basierend auf der Validierungsgenauigkeit als ein endgültiges Modell gesetzt werden. Es sei angemerkt, dass, wenn die Trainingsgenauigkeit steigt, während die Validierungsgenauigkeit abnimmt, dies zu Überanpassung führt. Wenn jedoch sowohl die Trainingsgenauigkeit als auch die Validierungsgenauigkeit zunehmen, deutet dies darauf hin, dass das Modell noch nicht konvergiert ist und für eine bessere Genauigkeit noch weiter trainiert werden kann. In Ausführungsformen kann, wenn eine Epoche erreicht ist, in der die Validierungsgenauigkeit des Modells nicht zunimmt, aber die Validierungsgenauigkeit noch nicht begonnen hat abzunehmen, das Modell bei der entsprechenden k-ten Epoche ausgewählt werden. Dieses Modell kann dann, beispielsweise als teilweise nachtrainiertes ANN 123, zum Testen des Analysators 120 in 1 verwendet werden.
  • Ein exemplarisches teilweise nachtrainiertes ANN ist in 4A bis 4L dargestellt. Hier wurde ein vortrainiertes ImageNet Inception-BN Netz zur Speicherung von Startgewichten verwendet. Diese sind in 4A bis 4K dargestellt. Die letzte Schicht wurde dann nachtrainiert, deren Ausgabe in 4L dargestellt ist. So wurde im Beispiel des Inception-BN Netzes der 4A bis 4L das Inception-BN-Netz bei der 126. Iteration geladen und die Gewichte und Architektur für die früheren Gewichte eingefroren. Es sei angemerkt, dass diese Gewichte aus dem Training des Inception-BN ANN an den 10 Millionen Bildern aus dem ImageNet-Datensatz gewonnen wurden. Dann wurden die letzte vollständig verbundene Schicht und die Softmax-Schicht, d. h. vollständig verbundene Schicht 410 und Softmax-Schicht 420 aus 4L, an einem Trainingssatz von Schadsoftware-Bildern nachtrainiert. In diesem Beispiel wurden die letzten Schichten unter Verwendung eines Benchmark-Datensatzes, der 9458 Schadsoftware-Typen aus 25 Schadsoftware-Familien umfasst, nachtrainiert. Diese Familien umfassen z. B. Adialer, Agent, Allaple und Yuner.
  • In einem alternativen Beispiel, wenn ein VGG-Netz als vortrainiertes ANN 123 ausgewählt wird, kann das System 100A die oberen Schichten einfrieren und Nachtrainingsmodul 125 kann nach Max-Pooling die letzten drei vollständig verbundenen Schichten und eine Softmax-Schicht nachtrainieren.
  • 2 veranschaulicht eine Übersicht eines alternativen Systems 200, das ein „Bündelungs“-System 200 in Übereinstimmung mit verschiedenen Ausführungsformen zeigt. Es sei angemerkt, dass das Beispielsystem aus 2 eine Obermenge von dem von System 100 aus 1 ist. Konverter 210 aus 2 ist äquivalent zu Konverter 110 aus 1, und Analysator A 220 aus 2 ist äquivalent zu Analysator 120 aus 1. Ebenso ist Klassifikationsergebnis 250 aus 2 äquivalent zu Klassifikationsergebnis 140 aus 1. Infolgedessen müssen diese äquivalenten Elemente von System 200 nicht näher beschrieben zu werden.
  • Fortfahrend mit Bezug auf 2, umfassen die zusätzlichen Elemente von System 200, die keine Äquivalente in 1 aufweisen, umfassen Analysator B 225 und Bündelungsmodul 240. System 200 aus 2 verwendet also zwei Analysatoren, Analysator A 220, der ein teilweise nachtrainiertes ANN 223 aufweist, welches äquivalent zum teilweise nachtrainierten ANN 123 aus 1 ist, und einen zweiten Analysator, Analysator B 225, der ein vollständig nachtrainiertes ANN 225 mit niedriger Auflösung 225 aufweist, das in Ausführungsformen ein Modell mit niedrigerer Auflösung mit einem Trainingsschema von oben nach unten für Schadsoftware-Binärdateien sein kann. Es sei angemerkt, dass in Ausführungsformen ein ANN 227 mit niedriger Auflösung von Grund auf trainiert werden kann, um Schadsoftware-Binärdateien zu erkennen, oder dass es in alternativen Ausführungsformen ein ANN sein kann, das von Grund auf trainiert wird, um Schadsoftware-Binärdateien zu erkennen, dessen Architektur jedoch von bestehenden neuronalen Netzarchitekturen, wie beispielsweise einer LeNet-Struktur, einer neuronalen CIFAR-10-Netzstruktur oder beispielsweise Multilayerperceptrons, die Trainieren und Testen an verschiedenen Größen von Schadsoftware-Bildern mit niedrigerer Auflösung ermöglichen, erhalten bleiben kann.
  • Da ANN 227 ein Modell mit niedriger Auflösung ist, kann es in Ausführungsformen kleinere 2D-Bilder als Eingaben akzeptieren. Daher kann Konverter 210 in Ausführungsformen zwei Versionen eines größenveränderten 2D-Bildes ausgeben, eines als Eingabe für Analysator A über Link 205 und das andere als Eingabe für Analysator B über Link 203. In Ausführungsformen kann die größenveränderte 2D-Bildeingabe an Analysator B 225 beispielsweise eine Größe im Bereich von 28 × 28 bis 64 × 64 aufweisen. In Ausführungsformen kann ein vollständig trainiertes ANN 227 mit niedriger Auflösung beispielsweise eine LeNet-Struktur, eine neuronale CIFAR-10-Netzstruktur oder beispielsweise Multilayerperceptrons aufweisen, um Trainieren und Testen an Schadsoftware-Bildern mit niedriger Auflösung in verschiedenen Größen zu ermöglichen.
  • In Ausführungsformen kann jeder der Analysatoren A und B, die jeweils ein teilweise nachtrainiertes ANN 223 mit hoher Auflösung und ein vollständig trainiertes ANN 227 mit niedriger Auflösung aufweisen, seine jeweiligen Versionen von größenveränderten 2D-Bildern, die von Konverter 210 empfangen wurden, verarbeiten. Diese Ergebnisse können dann jeweils über Links 231 und 233 in Kombinierer 240 eingegeben werden. In Ausführungsformen kann Kombinierer 240 als Ausgabe ein Klassifikationsergebnis 250 produzieren. In Ausführungsformen kann Klassifikationsergebnis 250 eine Wahrscheinlichkeit dafür liefern, ob Binärdatei 201 eine böswillige Anwendung oder eine unbedenkliche Anwendung ist oder umfasst. In Ausführungsformen kann Kombinierer 240, wenn das Ergebnis böswillig ist, ferner eine Wahrscheinlichkeit in Bezug auf die Frage liefern, zu welcher Schadsoftware-Familie die Anwendung gehört. In Ausführungsformen kann Kombinierer 240 durch Erzeugen von Klassifikationsergebnis 250 die Ergebnisse von jeweils Analysator A und B bündeln (d. h. kombinieren).
  • In Ausführungsformen kann Kombinierer 240 mehrere Modi des Kombinierens von Ergebnissen aufweisen. So kann beispielsweise ein gewichteter Durchschnitt, ein Durchschnitt, eine Mehrheitsentscheidung, eine gewichtete Mehrheitsentscheidung oder ein Boosting der Modelle notwendig sein, um die jeweiligen Ergebnisse von Analysator A und B zu kombinieren. Es wird hier darauf hingewiesen, dass Boosting ein iteratives Verfahren ist, das mehrere Klassifikatoren umfassen kann. Der für jeden der Klassifikatoren verwendete Trainingssatz kann nach Leistungsfähigkeit des jeweiligen Klassifikators ausgewählt werden. Boosting wählt falsch klassifizierte Trainingsdatenpunkte häufiger aus als korrekt klassifizierte Trainingsdaten. In Ausführungsformen kann Kombinierer 240 generell der Ausgabe des Modells mit hoher Auflösung, d. h. ANN 223, ein höheres Gewicht geben. Es sei hier angemerkt, dass in Experimenten, die unter Verwendung von verschiedenen Ausführungsformen durchgeführt wurden, beobachtet wurde, dass sich die beiden ANNs 223 und 227 in weniger als 2 % der Fälle nicht einig waren. In Ausführungsformen kann eine solche Meinungsverschiedenheit auch umfassen, ob Schadsoftware überhaupt in der Binärdatei vorhanden ist, oder, falls Schadsoftware vorhanden ist, um welche Art von Schadsoftware es sich handelt. Wenn daher beispielsweise ANN 223 eine Genauigkeit von 99 % und ANN 227 eine Genauigkeit von 97 % erzielt, gibt es in Ausführungsformen immer noch die Möglichkeit, durch Zusammenfassen der beiden ANNs eine Genauigkeit von mehr als 99 % zu erreichen. Wenn darüber hinaus ein ANN voraussagt, dass eine Eingabedatei mit einer Wahrscheinlichkeit von 85 % böswillig ist, und das andere ANN voraussagt, dass die Datei mit einer Wahrscheinlichkeit von 55 % böswillig ist, kann Verwenden von Bündeln in Ausführungsformen die Wahrscheinlichkeiten und das Vertrauen in eine Vorhersage stärken.
  • Es sei hier angemerkt, dass, wenn das ANN mit hoher Auflösung mit dem ANN mit niedriger Auflösung nicht einig ist und das ANN mit hoher Auflösung korrekt vorhersagt, es sein kann, dass das ANN mit niedriger Auflösung nicht so viele Informationen wie möglich umfasst wie das ANN mit hoher Auflösung. Wenn andererseits die beiden nicht einig sind, aber das ANN mit niedriger Auflösung korrekt vorhersagt, kann es sein, dass das ANN mit niedriger Auflösung aufgrund des Trainings aller seiner Schichten, d. h. von oben nach unten, nur an Schadsoftware-Daten (statt unter Verwendung des Transferlearning-Schemas von ANN 223), Merkmale des Schadsoftware-Datensatzes korrekter erfassen und extrahieren kann.
  • In Ausführungsformen kann davon ausgegangen werden, dass das ANN 223 mit hoher Auflösung eine höhere Genauigkeit aufweist. Daher kann in Ausführungsformen im Bündelungsverfahren des Kombinierers dem Modell mit hoher Auflösung vorzugsweise mehr Gewicht beigemessen werden. Jedoch kann in Ausführungsformen auch ein ANN 227 mit niedriger Auflösung sehr nützlich sein, da es zur Verbesserung der Gesamtgenauigkeit von Klassifikationsergebnis 250 beitragen kann. Da in Ausführungsformen ANN 227 mit niedriger Auflösung von der oberen bis zur unteren Schicht auf Schadsoftware-Daten trainiert wird, ohne anderes gelerntes Wissen aus einer anderen Domäne zu verwenden, kann in Ausführungsformen das Extrahieren von Merkmalen durch ANN 227 mit niedriger Auflösung dazu beitragen, Fälle zu differenzieren, bei denen Merkmale der Binärdatei, die durch ANN 223 mit hoher Auflösung extrahiert wurden, nicht unterschieden werden können.
  • 3 veranschaulicht Transferlearning, wie es in Übereinstimmung mit verschiedenen Ausführungsformen verwendet wird. Bei Transferlearning wird Wissen, das beim Lösen eines Problems erworben wurde, gespeichert und auf ein anderes, aber verwandtes, Problem angewendet. Es wird hier allgemein darauf hingewiesen, dass Transferlearning die Konzepte einer Domäne und einer Aufgabe beinhaltet.
  • Genauer gesagt kann eine Domäne D aus einem Merkmalsraum X und einer marginalen Wahrscheinlichkeitsverteilung P(X) über den Merkmalsraum bestehen, wobei X = x1,..., xn E X ist. Bei einer gegebenen Domäne, D = {X,P(X)}, kann eine Aufgabe T aus einem Labelraum Y und einer bedingten Wahrscheinlichkeitsverteilung P(Y|X) bestehen, die typischerweise aus den Trainingsdaten gelernt wird, die aus den Paaren xi E X und yi E Y bestehen. In Ausführungsformen kann Y der Satz aller Labels der Schadsoftware-Familie sein.
  • Bei einer gegebenen Quellendomäne DS, einer entsprechenden Quellaufgabe TS sowie einer Zieldomäne DT und einer Zielaufgabe TT hat Transferlearning nun zum Ziel, uns zu ermöglichen, die bedingte Wahrscheinlichkeitsverteilung P(YT|XT) des Ziels mit den Informationen, die aus DS und TS erhalten wurden, wobei DS ≠ DT oder TS ≠ TT ist, zu lernen.
  • 3 veranschaulicht die Anwendung dieser Prinzipien auf die Verwendung des Transferlearnings in Systemen zur Erkennung und Klassifikation von Schadsoftware in Übereinstimmung mit verschiedenen Ausführungsformen. Unter Bezugnahme auf 3 kann daher eine Quelldomäne DS 310 1,5 Millionen Bilder aufweisen. Ein ANN 320, wie z. B. Inception-BN, kann an Quelldomäne 310 für die Quellaufgabe TT einer Extrahierung und Klassifikation von Bildmerkmalen trainiert sein. Infolgedessen enthält es Wissen 330, das in eine Zieldomäne DT des Benchmark-Schadsoftware-Datensatzes 350 portiert werden kann, und eine Zielaufgabe TT einer Extrahierung und Erkennung von Schadsoftware-Merkmalen in Schadsoftware-Binärdateien, die in größenveränderte multidimensionale Arrays konvertiert wurden. Wie gezeigt, kann dies durch Nachtrainieren von ANN 320 auf Zieldomäne DT 350 erreicht werden, um ein nachtrainiertes ANN 340 zu erhalten. Ein Vorteil einer Verwendung von Transferlernen in Ausführungsformen ist der bloße Unterschied in der Größe von Quell- und Zieldomänen. In der Regel ist die Anzahl an beispielhaften Zieldomänen, den Schadsoftware-Binärdateien, begrenzt. Diese Anzahl ist exponentiell kleiner als die Anzahl der gekennzeichneten Quellbeispiele, die verfügbar sind, nämlich die Bilder in der ImageNet-Datenbank.
  • Daher wurde im exemplarischen ANN, das in den 4A bis 4L dargestellt ist, das Inception-Netz zunächst an den 1,5 Millionen Bildern in ImageNet trainiert. Anschließend wurden unter Verwendung des in 1A dargestellten Trainingssystems die letzten beiden Schichten des Inception-Netzes, wie oben erwähnt, unter Verwendung eines Benchmark-Schadsoftware-Datensatzes nachtrainiert. Wie oben erwähnt, stellen 4A bis 4K die eingefrorenen Schichten des exemplarischen Inception-Netzes dar, und 4L stellt die nachtrainierten letzten beiden Schichten (unten oder nachfolgend, letzte Pooling-Schicht 401), FullyConnected fc1 410 und Softmax 420, dar.
  • In diesem Beispiel wurden, da das vortrainierte ANN 3 Kanäle aufwies, während die Schadsoftware-Trainingsdaten einkanalig waren, die größenveränderten 2D-Graustufenbilder zweimal dupliziert, um sie in drei Kanäle von Eingangsdaten zu konvertieren.
  • Es wird darauf hingewiesen, dass zum Initialisieren des Nachtrainierens eines Inception ANN zunächst die Parameter, die sich anfänglich in der Schicht in 4L befinden, gleichmäßig abgetastet werden können. Dann können eine Lernrate, ein Momentum und eine Anzahl der Epochen festgelegt werden, um mit dem Nachtrainieren fortzufahren. Beim Training des ANN der 4A bis 4L konvergierte das Modelltrainingsschema bei der 10. Epoche. Das Folgende ist ein exemplarischer Pseudocode, der in Ausführungsformen verwendet werden kann, um ein solches Nachtraining zu programmieren:
    • Laden des vortrainierten Inception-BN bei 126. Iteration;
    • Einfrieren der Gewichte und Architektur für frühere Gewichte, wie in 4A-4K zu sehen;
    • Neuzuweisen von vollständig verbundenen Gewichts- und vollständig verbundenen Bias-Parametern. Initiieren von Parameterwerten durch zufällige Probenahme aus einer gleichmäßigen Verteilung;
    • Nachtrainieren des Netzes an der vollständig verbundenen Schicht;
    • Verwenden des Validierungsdatensatzes, um das zu verwendende Modell zu bestimmen (d. h. Modell bei welcher Epoche) .
  • Wie oben erwähnt kann, wenn das Verwenden eines VGG ANN zum Transferlearning gewünscht wird, ein System in Ausführungsformen die oberen Schichten des VGG ANN einfrieren und dann dessen letzte drei Schichten für eine Schadsoftware-Klassifikation nachtrainieren.
  • 5 veranschaulicht eine Übersicht des operativen Ablaufs eines Verfahrens zum Erkennen und Klassifizieren von Schadsoftware in Übereinstimmung mit verschiedenen Ausführungsformen. Unter Bezugnahme auf 5 kann Verfahren 500 von einem System oder einer Vorrichtung gemäß verschiedener Ausführungsformen durchgeführt werden. Verfahren 500 kann in Ausführungsformen von einem System ähnlich dem in 1 gezeigten durchgeführt werden. Verfahren 500 kann Blöcke 510 bis 550 aufweisen. In alternativen Ausführungsformen kann Verfahren 500 mehr oder weniger Operationen aufweisen, und einige der Operationen können in abgewandelter Reihenfolge ausgeführt werden.
  • Verfahren 500 kann bei Block 510 beginnen, wo ein exemplarisches System eine Binärdatei empfangen kann. Die Binärdatei kann Audiodaten, Textdaten, Bilderdaten oder dergleichen aufweisen. Im Regelfall ist die Binärdatei nicht als sicher bekannt und kann Schadsoftware aufweisen, weshalb es wünschenswert ist, sie zu scannen und zu klassifizieren, bevor sie auf einer Vorrichtung ausgeführt werden kann. Von Block 510 aus kann Verfahren 500 mit Block 520 fortfahren, wo die Binärdatei in einen 8-Bit-Vektor umgewandelt werden kann. In Ausführungsformen kann der Vektor aus vorzeichenlosen 8-Bit Ganzzahlen bestehen. Allgemeiner kann der Vektor in Ausführungsformen die binäre Repräsentation einer Datei auf Ganzzahlen zwischen 0 und 255 abbilden.
  • Von Block 520 aus kann Verfahren 500 mit Block 530 fortfahren, wo der 8-Bit-Vektor in ein multidimensionales Array umgewandelt und dann in der Größe verändert werden kann. Das multidimensionale Array kann in Ausführungsformen ein 2D-Array sein, und kann beispielsweise auf eine Größe von 224 x 224 oder 299 x 299 geändert werden. Blöcke 510 bis 530 können in Ausführungsformen von Konverter 110 ausgeführt werden, wie beispielsweise in 1 dargestellt.
  • Von Block 530 kann Verfahren 500 zu Block 540 übergehen, wobei das größenveränderte multidimensionale Array unter Verwendung eines teilweise nachtrainierten ANN analysiert werden kann, um in das Array eingebettete Schadsoftware zu erkennen und zu klassifizieren. Das multidimensionale Array kann in Ausführungsformen ein 2D-Array sein, und kann beispielsweise auf eine Größe von 224 × 224 oder 299 × 299 geändert werden. In Ausführungsformen kann das teilweise nachtrainierte ANN eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl von versteckten Schichten zwischen den Eingabeschichten und Ausgabeschichten aufweisen. Block 540 aus Verfahren 500 kann in Ausführungsformen von Analysator 120 ausgeführt werden, wie beispielsweise in 1 dargestellt. Schließlich kann Verfahren 500 von Block 540 zu Block 550 übergehen, wobei ein Klassifikationsergebnis ausgegeben werden kann, das dazu verwendet werden kann, eine Ausführung der Binärdatei auf einer Vorrichtung zu verhindern. Bei Block 550 kann Verfahren 500 enden.
  • 6 veranschaulicht eine Übersicht eines operativen Ablaufs eines alternativen Verfahrens 600 zum Erkennen und Klassifizieren von Schadsoftware unter Verwendung von Bündeln von zwei ANNs in Übereinstimmung mit verschiedenen Ausführungsformen. Unter Bezugnahme auf 6 kann Verfahren 600 von einem System oder einer Vorrichtung gemäß verschiedener Ausführungsformen durchgeführt werden. Verfahren 600 kann in Ausführungsformen von einem System ähnlich dem in 2 gezeigten durchgeführt werden. Verfahren 600 kann Blöcke 610 bis 665 aufweisen. In alternativen Ausführungsformen kann Verfahren 600 mehr oder weniger Operationen aufweisen, und einige der Operationen können in unterschiedlicher Reihenfolge ausgeführt werden.
  • Verfahren 600 kann bei Block 610 beginnen, wo ein exemplarisches System eine Binärdatei empfangen kann. Die Binärdatei kann Audiodaten, Textdaten, Bilderdaten oder dergleichen aufweisen. Im Regelfall ist die Binärdatei nicht als sicher bekannt und kann Schadsoftware aufweisen, weshalb es wünschenswert ist, sie zu scannen und zu klassifizieren, bevor sie auf einer Vorrichtung ausgeführt werden kann. Von Block 610 kann Verfahren 600 zu Block 620 übergehen, wo die Binärdatei in einen 8-Bit-Vektor umgewandelt werden kann. In Ausführungsformen kann der Vektor aus vorzeichenlosen 8-Bit Ganzzahlen bestehen. Allgemeiner kann der Vektor in Ausführungsformen die binäre Repräsentation einer Datei auf Ganzzahlen zwischen 0 und 255 abbilden.
  • Von Block 620 kann Verfahren 600 zu Block 630 übergehen, wo der 8-Bit-Vektor in ein multidimensionales Array umgewandelt werden kann, und dann das multidimensionale Array in zwei Versionen unterschiedlicher Größe größenverändert wird, um als jeweilige Eingänge in zwei separate ANNs zu dienen. Eine erste Version des größenveränderten Arrays kann in Ausführungsformen kleiner sein, um in ein ANN mit niedrigerer Auflösung eingegeben zu werden, und eine zweite Version des größenveränderten Arrays kann größer sein, um in ein ANN mit höherer Auflösung eingegeben zu werden. Das multidimensionale Array kann in Ausführungsformen ein 2D-Array sein, und eine erste größenveränderte Version des 2D-Arrays kann beispielsweise eine Größe von 224 × 224 oder 299 × 299 aufweisen. Eine zweite größenveränderte Version des 2D-Arrays kann in Ausführungsformen beispielsweise eine Größe zwischen 28 × 28 und 64 × 64 aufweisen. Blöcke 610 bis 630 können in Ausführungsformen von Konverter 210 ausgeführt werden, wie beispielsweise in 2 dargestellt.
  • Von Block 630 kann sich Verfahren 600 verzweigen und kann sowohl zu Block 640 als auch zu Block 645 übergehen. Bei Block 640 kann eine erste größenveränderte Version des multidimensionalen Arrays, d. h. die kleinere Version, mit einem vollständig trainierten ANN mit niedriger Auflösung analysiert werden, um Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist. Ähnlich und parallel dazu kann bei Block 645 eine zweite größenveränderte Version des multidimensionalen Arrays, d. h. die größere Version, mit einem teilweise nachtrainierten ANN mit hoher Auflösung analysiert werden, um Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist. In Ausführungsformen kann das teilweise nachtrainierte ANN eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl von versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweisen.
  • Von Blöcken 640 und 645 kann Verfahren 600 jeweils zu Blöcken 650 und 655 übergehen. Bei Block 650 kann eine erste Klassifikationsausgabe der Binärdatei aus dem ANN mit niedriger Auflösung erhalten werden, und bei Block 655 kann eine zweite Klassifikationsausgabe der Binärdatei aus dem ANN mit hoher Auflösung erhalten werden. Blöcke 640 und 650 aus Verfahren 600 können in Ausführungsformen beispielsweise durch Analysator B 225 durchgeführt werden, wie in 2 dargestellt, und Blöcke 645 und 655 aus Verfahren 600 können beispielsweise durch Analysator A 223 durchgeführt werden, wie in 2 dargestellt. Schließlich kann Verfahren 600 nach den Blöcken 650 und 655 konvergieren und zu Block 660 übergehen, wo die beiden Klassifikationsausgaben kombiniert werden können. Block 660 kann in Ausführungsformen von Kombinierer 240 ausgeführt werden, wie in 2 dargestellt. In Ausführungsformen können die beiden Klassifikationsausgaben unter Verwendung verschiedener Algorithmen kombiniert werden, wie beispielsweise gewichteter Durchschnitt, Durchschnitt, Mehrheitsentscheidung, gewichtete Mehrheitsentscheidung oder Boosting der ANNs.
  • Schließlich kann Verfahren 600 von Block 660 zu Block 665 übergehen, wo ein endgültiges Klassifikationsergebnis ausgegeben werden kann, das verwendet werden kann, um eine Ausführung der Binärdatei auf einer Vorrichtung zu verhindern. Bei Block 665 kann Verfahren 600 enden.
  • 7 veranschaulicht eine Übersicht des operativen Ablaufs eines Verfahrens 700 zum Trainieren und Validieren eines Systems zur Erkennung und Klassifikation von Schadsoftware in Übereinstimmung mit verschiedenen Ausführungsformen. Es sei angemerkt, dass, genauso wie System 100 in 1 ähnlich zu System 100A in 1A ist, Verfahren 700 ähnlich zu Verfahren 500 in 5 ist, mit einigen Abweichungen in den Details des Trainings.
  • Unter Bezugnahme auf 7 kann Verfahren 700 von einem System oder einer Vorrichtung gemäß verschiedener Ausführungsformen durchgeführt werden. Verfahren 700 kann in Ausführungsformen von einem System ähnlich dem in 1 gezeigten durchgeführt werden. Verfahren 700 kann Blöcke 710 bis 750 aufweisen. In alternativen Ausführungsformen kann Verfahren 700 mehr oder weniger Operationen aufweisen, und einige der Operationen können in abgewandelter Reihenfolge ausgeführt werden.
  • Verfahren 700 kann bei Block 710 beginnen, wo ein exemplarisches System eine Binärdatei empfangen kann. Die Binärdatei kann Audiodaten, Textdaten, Bilderdaten oder dergleichen aufweisen. Die Binärdatei kann Schadsoftware enthalten, als Bestandteil eines Trainingssets für Schadsoftware-Binärdateien, das zum Trainieren eines ANNs daran verwendet werden kann. Von Block 710 kann Verfahren 700 zu Block 720 übergehen, wo die Binärdatei in einen 8-Bit-Vektor umgewandelt werden kann. In Ausführungsformen kann der Vektor aus vorzeichenlosen 8-Bit Ganzzahlen bestehen. Allgemeiner kann der Vektor in Ausführungsformen die binäre Repräsentation einer Datei auf Ganzzahlen zwischen 0 und 255 abbilden.
  • Von Block 720 kann Verfahren 700 zu Block 730 übergehen, wo der 8-Bit-Vektor in ein multidimensionales Array umgewandelt und dann in der Größe verändert werden kann. Das multidimensionale Array kann in Ausführungsformen ein 2D-Array sein, und kann beispielsweise auf eine Größe von 224 x 224 oder 299 x 299 geändert werden. Blöcke 710 bis 730 können in Ausführungsformen von Konverter 110 ausgeführt werden, wie beispielsweise in 1A dargestellt.
  • Von Block 730 kann Verfahren 700 zu Block 740 übergehen, wo das größenveränderte multidimensionale Array verwendet werden kann, um ein ANN zu trainieren oder ein ANN zumindest teilweise nachzutrainieren, um Schadsoftwaremerkmale aus dem multidimensionalen Array zu extrahieren. In Ausführungsformen kann das ANN, das entweder zu trainieren oder teilweise nachzutrainieren ist, eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl von versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweisen. Block 740 aus Verfahren 700 kann in Ausführungsformen von Training 120 ausgeführt werden, wie beispielsweise in 1A dargestellt. Es sei angemerkt, dass Blöcke 710 bis 740 für mehrere Schadsoftware-Binärdateien wiederholt werden können, wie es z. B. ein ganzer Trainingssatz umfassen kann. Daher kann Verfahren 700 von Block 740 zu Abfrageblock 745 übergehen, wo bestimmt werden kann, ob es zusätzliche Schadsoftware-Binärdateien gibt, um das ANN daran zu trainieren. Falls Ja bei Abfrageblock 745, dann kann Verfahren 700 zu Block 710 zurückkehren und den Verfahrensablauf von Blöcken 710 bis 740 wiederholen. Wenn das Ergebnis von Abfrageblock 745 jedoch Nein ist, kann Verfahren 700 zu Block 750 übergehen, wo das trainierte oder nachtrainierte ANN (ob teilweise nachtrainiert oder vollständig trainiert) unter Verwendung eines Validierungssatzes, der in Ausführungsformen auch ein Satz an bekannten Schadsoftware-Binärdateien sein kann, sich aber vom Trainingssatz unterscheidet, validiert werden kann. Bei Block 750 kann Verfahren 700 enden.
  • Es wird hier darauf hingewiesen, dass Verfahren 700 aus 7 verwendet werden kann, um eines der im Bündelungssystem 200 gezeigten ANNs zu trainieren, wie in 2 dargestellt. Daher werden im Falle eines teilweise nachtrainierten ANN 223 mit hoher Auflösung nur die letzten wenigen Schichten des ANN unter Verwendung von Verfahren 700 nachtrainiert. Jedoch kann das ANN 227 mit niedriger Auflösung, das in Ausführungsformen vollständig von Grund auf trainiert werden kann, unter Verwendung von Verfahren 700 an einem Trainingsset von Schadsoftware-Binärdateien trainiert werden. Wenn ANN 227 mit niedriger Auflösung von Grund auf zu trainieren ist, dann kann Verfahren 700 bei Block 740 die Option „Trainieren“ von Block 740 durchführen. Das ANN 227 mit niedriger Auflösung kann in Ausführungsformen von Grund auf vollständig an einem Schadsoftware-Datensatz trainiert werden und seine Architektur kann neu definiert werden. Oder alternativ kann in Ausführungsformen das ANN 227 mit niedriger Auflösung von Grund auf vollständig an einem Schadsoftware-Datensatz trainiert werden, aber die Architektur des ANN kann von bestehenden Architekturen neuronaler Netze beibehalten werden, wie beispielsweise einer LeNet-Struktur, einer CIFAR-10 neuronalen Netzstruktur oder beispielsweise Multilayerperceptrons, um Trainieren und Testen an verschiedenen Größen von Schadsoftware-Bildern mit niedrigerer Auflösung zu ermöglichen. In weiteren alternativen Ausführungsformen kann ANN 227 mit niedriger Auflösung teilweise nachtrainiert werden und Transferlearning nutzen, wie vorstehend im Falle des ANN 223 mit hoher Auflösung beschrieben.
  • Nun unter Bezug auf 8, wo ein Blockdiagramm einer Computervorrichtung veranschaulicht wird, die zum Praktizieren der vorliegenden Offenbarung in Übereinstimmung mit verschiedenen Ausführungsformen geeignet ist. Wie gezeigt, kann Computervorrichtung 800 einen oder mehrere Prozessoren 802, Arbeitsspeichercontroller 803 und Systemarbeitsspeicher 804 aufweisen. Jeder Prozessor 802 kann einen oder mehrere Prozessorkerne und Hardwarebeschleuniger 805 aufweisen. Ein Beispiel eines Hardwarebeschleunigers 805 kann unter anderem programmierte feldprogrammierbare Gate-Arrays (FPGA) aufweisen. Prozessor 802 kann in Ausführungsformen auch einen Arbeitsspeichercontroller aufweisen (nicht dargestellt). Systemarbeitsspeicher 804 kann in Ausführungsformen einen bekannten flüchtigen oder nichtflüchtigen Arbeitsspeicher aufweisen.
  • Zusätzlich kann Computervorrichtung 800 Massenspeichervorrichtung(en) 806 (wie Halbleiterlaufwerke), Ein-/Ausgabegeräteschnittstelle 808 (zum Kommunizieren mit verschiedenen Ein-/Ausgabegeräteschnittstellen, wie Maus, Cursorsteuerung, Anzeigevorrichtung (einschließlich berührungsempfindlichem Bildschirm) und so weiter) und Kommunikationsschnittstellen 810 (wie Netzwerkschnittstellenkarten, Modems und so weiter) aufweisen. Kommunikationsschnittstellen 810 können in Ausführungsformen drahtgebundene oder drahtlose Kommunikation unterstützen, einschließlich Nahfeldkommunikation. Die Elemente können über Systembus 812 miteinander gekoppelt sein, der einen oder mehrere Busse repräsentieren kann. Im Falle von mehreren Bussen können sie durch eine oder mehrere Busbrücken (nicht dargestellt) überbrückt warden.
  • Jedes dieser Elemente kann seine konventionellen Funktionen ausführen, die in der Fachwelt bekannt sind. Insbesondere können Systemarbeitsspeicher 804 und Massenspeichervorrichtung(en) 806 verwendet werden, um eine Arbeitskopie und eine permanente Kopie des ausführbaren Codes der Programmieranweisungen eines Betriebssystems, einer oder mehrerer Anwendungen und/oder verschiedener softwareimplementierter Komponenten von Konverter 110, Binärdatei-Eingabeschnittstelle 111, Binär-zu-8-Bit-Vektorkonvertierung 113, 2D-Array-Konvertierung 115, Array-Größenänderung 117 der 1 und 1A, Analysator 120, teilweise nachtrainiertem ANN 123 aus 1, Training 120, Nachtraining 125 und Validierung und Klassifikation 140 aus 1A, Konverter 210, Binärdatei-Eingabeschnittstelle 211, Binär-zu-8-Bit-Vektorkonvertierung 213, 2D-Array-Konvertierung 215, Array-Größenänderung 217, Analysator A 220, teilweise nachtrainiertem ANN 223, Analysator B 225, vollständig trainiertem ANN 227 und Kombinierer 240 aus 2, zusammenfassend als Rechenlogik 822 bezeichnet, zu speichern. Die Programmieranweisungen, die Rechenlogik 822 implementieren, können Assembleranweisungen umfassen, die von Prozessor(en) 802 oder höheren Programmiersprachen, wie beispielsweise C, unterstützt werden, die zu solchen Anweisungen kompiliert werden können. Ein Teil einer Rechenlogik kann in Ausführungsformen im Hardwarebeschleuniger 805 implementiert sein. Ein Teil einer Rechenlogik 822, z. B. ein Abschnitt der Rechenlogik 822, der der Laufzeitumgebung des Compilers zugeordnet ist, kann in Ausführungsformen im Hardwarebeschleuniger 805 implementiert sein.
  • Die permanente Kopie des ausführbaren Codes der Programmieranweisungen oder der Bitströme zum Konfigurieren von Hardwarebeschleuniger 805 können im Werk oder vor Ort in permanente Massenspeichervorrichtung(en) 806 und/oder Hardwarebeschleuniger 805 eingebracht werden, beispielsweise durch ein Verteilungsmedium (nicht gezeigt), wie beispielsweise eine Compact-Disc (CD), oder durch Kommunikationsschnittstelle 810 (von einem Verteilungsserver (nicht gezeigt)). Während zum besseren Verständnis der Compiler und der Hardwarebeschleuniger, der den erzeugten Code ausführt, welcher die Prädikatenberechnungslehre der vorliegenden Offenbarung inkorporiert, um das Pipelining und/oder die parallele Ausführung von verschachtelten Schleifen zu erhöhen, als auf derselben Rechenvorrichtung angeordnet dargestellt werden, können sich der Compiler und der Hardwarebeschleuniger in alternativen Ausführungsformen auf unterschiedlichen Rechenvorrichtungen befinden.
  • Die Anzahl, Fähigkeit und/oder Kapazität dieser Elemente 810-812 kann je nach Verwendungszweck der exemplarischen Computervorrichtung 800 variieren, z. B. ob die exemplarische Computervorrichtung 800 ein Smartphone, Tablet, Ultrabook, Laptop, Server, eine Set-Top-Box, Spielekonsole, Kamera usw. ist. Die Beschaffenheiten dieser Elemente 810-812 sind anderweitig bekannt und werden daher nicht weiter beschrieben.
  • 9 veranschaulicht ein exemplarisches computerlesbares Speichermedium, das Anweisungen aufweist, die ausgelegt sind, um gemäß verschiedener Ausführungsformen alle (oder einen Teil von) Software-Implementierungen von Konverter 110, Binärdatei-Eingabeschnittstelle 111, Binär-zu-8-Bit-Vektorkonvertierung 113, 2D-Array-Konvertierung 115, Array-Größenänderung 117 der 1 und 1A, Analysator 120, teilweise nachtrainiertem ANN 123 aus 1, Training 120, Nachtraining 125 und Validierung und Klassifikation 140 aus 1A, Konverter 210, Binärdatei-Eingabeschnittstelle 211, Binär-zu-8-Bit-Vektorkonvertierung 213, 2D-Array-Konvertierung 215, Array-Größenänderung 217, Analysator A 220, teilweise nachtrainiertem ANN 223, Analysator B 225, vollständig trainiertem ANN 227 und Kombinierer 240 aus 2 zu implementieren, und/oder (Aspekte von) Verfahren 500 aus 5, 600 aus 6 und 700 aus 7, wie zuvor beschrieben, zu praktizieren. Wie dargestellt, kann ein computerlesbares Speichermedium 1002 den ausführbaren Code einer Anzahl von Programmieranweisungen oder Bitströmen 1004 aufweisen. Ausführbarer Code von Programmieranweisungen (oder Bitströmen) 1004 kann ausgelegt sein, um einer Vorrichtung, z. B. einer Computervorrichtung 800, als Reaktion auf Ausführen der ausführbaren Code-/Programmieranweisungen (oder Betrieb eines codierten Hardwarebeschleunigers 875) zu ermöglichen, (Aspekte von) Verfahren 500 aus 5, Verfahren 600 aus 6 und/oder 700 aus 7 auszuführen. In alternativen Ausführungsformen können ausführbare Code-/Programmieranweisungen/Bitströme 904 stattdessen auf mehreren nichttransitorischen, computerlesbaren Speichermedien 902 angeordnet sein. Ein computerlesbares Speichermedium 902 kann in Ausführungsformen nichttransitorisch sein. In noch weiteren Ausführungsformen können ausführbare Code-/Programmieranweisungen 904 in einem transitorischen computerlesbaren Medium, wie beispielsweise Signalen, kodiert sein.
  • Unter erneuter Bezugnahme auf 8 kann für eine Ausführungsform wenigstens einer der Prozessoren 802 zusammen mit einem computerlesbaren Speichermedium verpackt sein, wobei ein Teil oder die gesamte Rechenlogik 822 (anstelle einer Speicherung im Systemarbeitsspeicher 804 und/oder Massenspeichervorrichtung 806) ausgelegt ist, um alle oder ausgewählte der zuvor unter Bezugnahme auf die 5-7 beschriebenen Vorgänge auszuführen. Für eine Ausführungsform kann wenigstens einer der Prozessoren 802 zusammen mit einem computerlesbaren Speichermedium verpackt sein, das einen Teil oder die gesamte Rechenlogik 822 aufweist, um ein System-in-a-Package (SiP) zu bilden. Für eine Ausführungsform kann wenigstens einer der Prozessoren 802 auf demselben Die mit einem computerlesbaren Speichermedium integriert sein, welches einen Teil oder die gesamte Rechenlogik 822 aufweist. Für eine Ausführungsform kann wenigstens einer der Prozessoren 802 zusammen mit einem computerlesbaren Speichermedium verpackt sein, das einen Teil oder die gesamte Rechenlogik 822 aufweist, um ein System-on-Chip (SoC) zu bilden. Für wenigstens eine Ausführungsform kann der SoC z. B. unter anderem in einem Hybrid-Computertablet/Laptop verwendet werden.
  • Veranschaulichende Beispiele für die hierin offenbarten Technologien sind im Folgenden aufgeführt. Eine Ausführungsform der Technologien kann eine oder mehrere sowie eine beliebige Kombination der nachfolgend beschriebenen Beispiele aufweisen.
  • BEISPIELE
  • Beispiel 1 kann eine Vorrichtung zum Berechnen aufweisen, die Folgendes umfasst: einen Konverter zum Empfangen und Konvertieren einer Binärdatei in ein multidimensionales Array, wobei die Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung auszuführen ist; und einen Analysator, der mit dem Konverter gekoppelt ist, um: das multidimensionale Array zu verarbeiten, um die Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist, wobei wenigstens ein teilweise nachtrainiertes künstliches neuronales Netz verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist; und ein Klassifikationsergebnis auszugeben, wobei das Klassifikationsergebnis verwendet wird, um ein Ausführen der Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung zu verhindern.
  • Beispiel 2 kann die Vorrichtung nach Beispiel 1 und/oder einem anderen Beispiel hierin aufweisen, wobei das multidimensionale Array ein 2D-Array ist.
  • Beispiel 3 kann die Vorrichtung nach Beispiel 2 und/oder einem anderen Beispiel hierin aufweisen, wobei der Konverter zuerst die Binärdatei in einen Vektor von vorzeichenlosen 8-Bit Ganzzahlen konvertiert und dann den Vektor in das 2D-Array konvertiert.
  • Beispiel 4 kann die Vorrichtung nach Beispiel 3 und/oder einem anderen Beispiel hierin aufweisen, wobei der Konverter ferner zuerst den Vektor in ein internes 2D-Array konvertiert und dann das interne 2D-Array in der Größe verändert, bevor er das 2D-Array ausgibt.
  • Beispiel 5 kann die Vorrichtung nach Beispiel 4 und/oder einem anderen Beispiel hierin aufweisen, wobei das größenveränderte 2D-Array eine Größe von entweder 224 × 224 oder 299 × 299 aufweist.
  • Beispiel 6 kann die Vorrichtung nach Beispiel 1 und/oder einem anderen Beispiel hierin aufweisen, wobei das wenigstens eine teilweise nachtrainierte künstliche neuronale Netz ein neuronales Netz aufweist, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden.
  • Beispiel 7 kann die Vorrichtung nach Beispiel 6 und/oder einem anderen Beispiel hierin aufweisen, wobei das künstliche neuronale Netz eines von einem Inception-BN-Netz, einem Visual Geometry Group (VGG)-Netz oder AlexNet-Netz ist.
  • Beispiel 8 kann die Vorrichtung nach Beispiel 6 und/oder einem anderen Beispiel hierin aufweisen, wobei das künstliche neuronale Netz ein Inception-BN-Netz ist, dessen letzte Schicht zum Klassifizieren von Schadsoftware nachtrainiert wurde.
  • Beispiel 9 kann die Vorrichtung nach Beispiel 6 und/oder einem anderen Beispiel hierin aufweisen, wobei das künstliche neuronale Netz eines von Visual Geometry Group (VGG) 16 oder VGG 19 ist, wobei dessen obere Schichten eingefroren sind und dessen letzte drei Schichten nachtrainiert sind, um Schadsoftware zu klassifizieren.
  • Beispiel 10 kann die Vorrichtung nach einem der Beispiele 1-9 und/oder einem anderen Beispiel hierin aufweisen, die einen Schadsoftware-Detektor umfasst, der den Konverter und den Analysator aufweist.
  • Beispiel 11 kann die Vorrichtung nach einem der Ansprüche 1-9 und/oder einem anderen Beispiel hierin aufweisen, die ein Betriebssystem umfasst, das den Konverter und den Analysator aufweist.
  • Beispiel 12 kann die Vorrichtung nach einem der Ansprüche 1-9 und/oder einem anderen Beispiel hierin aufweisen, wobei die Vorrichtung ein Cloud-Server ist.
  • Beispiel 13 kann eine Vorrichtung zum Berechnen aufweisen, die Folgendes umfasst: einen Konverter zum Empfangen und Konvertieren einer Binärdatei in zwei multidimensionale Arrays, wobei die Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung auszuführen ist; einen ersten Analysator und einen zweiten Analysator, die jeweils mit dem Konverter gekoppelt sind, um beide: eines der multidimensionalen Arrays zu verarbeiten, Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist, wobei eines von einem trainierten, nachtrainierten oder teilweise nachtrainierten ANN verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist; und ein Klassifikationsergebnis auszugeben, wobei das Klassifikationsergebnis verwendet wird, um ein Ausführen der Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung zu verhindern; und einen Kombinierer, der jeweils mit dem ersten und dem zweiten Analysator gekoppelt ist, um die Klassifikationsergebnisse zu verarbeiten und ein kombiniertes Klassifikationsergebnis auszugeben.
  • Beispiel 14 kann die Vorrichtung nach Beispiel 13 und/oder einem anderen Beispiel hierin aufweisen, wobei die multidimensionalen Arrays 2D-Arrays sind.
  • Beispiel 15 kann die Vorrichtung nach Beispiel 14 und/oder einem anderen Beispiel hierin aufweisen, wobei der Konverter zuerst die Binärdatei in einen Vektor von vorzeichenlosen 8-Bit Ganzzahlen konvertiert und dann den Vektor in die 2D-Arrays konvertiert.
  • Beispiel 16 kann die Vorrichtung nach Beispiel 15 und/oder einem anderen Beispiel hierin aufweisen, wobei der Konverter ferner zuerst den Vektor in ein internes 2D-Array konvertiert und dann das interne 2D-Array in der Größe verändert, um die 2D-Arrays zu erhalten.
  • Beispiel 17 kann die Vorrichtung nach Beispiel 16 und/oder einem anderen Beispiel hierin aufweisen, wobei eines der größenveränderten 2D-Arrays eine Größe von entweder 224 × 224 oder 299 × 299 aufweist.
  • Beispiel 18 kann die Vorrichtung nach Beispiel 16 und/oder einem anderen Beispiel hierin aufweisen, wobei eines der größenveränderten 2D-Arrays eine Größe im Bereich von 28 × 28 bis 64 × 64 aufweist.
  • Beispiel 19 kann die Vorrichtung nach Beispiel 13 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN des ersten Analysators ein neuronales Netz aufweist, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden.
  • Beispiel 20 kann die Vorrichtung nach Beispiel 13 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN des zweiten Analysators vollständig auf einen Satz an Schadsoftware-Bildern trainiert ist und seine Architektur neu definiert ist.
  • Beispiel 21 kann die Vorrichtung nach Beispiel 13 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN des zweiten Analysators vollständig auf einen Satz an Schadsoftware-Bildern trainiert ist, aber seine Architektur behält eine der Folgenden bei: eine LeNet-Struktur, eine CIFAR-10 neuronale Netzstruktur oder Multilayerperceptrons.
  • Beispiel 22 kann ein oder mehrere nichttransitorische, computerlesbare Speichermedien aufweisen, die eine Vielzahl von Anweisungen umfassen, die als Reaktion auf ihre Ausführung eine Rechenvorrichtung zu Folgendem veranlassen: Empfangen und Konvertieren einer Binärdatei in ein multidimensionales Array, wobei die Binärdatei auf der Rechenvorrichtung oder einer anderen Rechenvorrichtung auszuführen ist; Verarbeiten des multidimensionale Arrays, um Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist, wobei wenigstens ein teilweise nachtrainiertes ANN verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist; und Ausgeben eines Klassifikationsergebnisses, wobei das Klassifikationsergebnis verwendet wird, um ein Ausführen der Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung zu verhindern.
  • Beispiel 23 kann das eine oder die mehreren nichttransitorischen, computerlesbaren Speichermedien aus Beispiel 22 und/oder einem anderen Beispiel hierin aufweisen, wobei das multidimensionale Array ein 2D-Array ist.
  • Beispiel 24 kann das eine oder die mehreren nichttransitorischen computerlesbaren Speichermedien nach Beispiel 23 und/oder einem anderen Beispiel hierin aufweisen, wobei das Konvertieren der Binärdatei in ein multidimensionales Array zuerst ein Konvertieren der Binärdatei in einen Vektor von 8-Bit Ganzzahlen, dann ein Konvertieren des Vektors in ein internes 2D-Array und dann eine Größenänderung des internen 2D-Arrays in das Eingabe-2D-Array umfasst.
  • Beispiel 25 kann das eine oder die mehreren nichttransitorischen computerlesbaren Speichermedien nach Beispiel 24 und/oder einem anderen Beispiel hierin aufweisen, wobei das größenveränderte 2D-Array eine Größe von entweder 224 × 224 oder 299 × 299 aufweist.
  • Beispiel 26 kann das eine oder die mehreren nichttransitorischen computerlesbaren Speichermedien nach Beispiel 22 und/oder einem anderen Beispiel hierin aufweisen, wobei das wenigstens eine teilweise nachtrainierte ANN ein neuronales Netz aufweist, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden.
  • Beispiel 27 kann das eine oder die mehreren nichttransitorischen computerlesbaren Speichermedien nach Beispiel 22 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN eines von Inception-BN, Visual Geometry Group (VGG) 16, VGG 19 oder AlexNet ist.
  • Beispiel 28 kann ein oder mehrere nichttransitorische, computerlesbare Speichermedien nach Beispiel 27 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN ein Inception-BN-Netz ist, dessen letzte Schicht zum Klassifizieren von Schadsoftware nachtrainiert wurde.
  • Beispiel 29 kann das eine oder die mehreren nichttransitorischen, computerlesbaren Speichermedien nach Beispiel 27 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN eines von VGG 16 oder VGG 19 ist, wobei dessen obere Schichten eingefroren sind und dessen letzte drei Schichten nachtrainiert sind, um Schadsoftware zu klassifizieren.
  • Beispiel 30 kann das eine oder die mehreren nichttransitorischen, computerlesbaren Speichermedien nach einem der Beispiele 22-29 und/oder einem anderen Beispiel hierin aufweisen, wobei die Rechenvorrichtung ein Schadsoftware-Detektor ist.
  • Beispiel 31 kann das eine oder die mehreren nichttransitorischen, computerlesbaren Speichermedien nach einem der Beispiele 22-29 und/oder einem anderen Beispiel hierin aufweisen, die in einem Betriebssystem oder als Teil eines Betriebssystems bereitgestellt werden.
  • Beispiel 32 kann das eine oder die mehreren nichttransitorischen, computerlesbaren Speichermedien nach einem der Beispiele 22-29 und/oder einem anderen Beispiel hierin aufweisen, wobei die Rechenvorrichtung ein Cloud-Server ist.
  • Beispiel 33 kann ein Verfahren zum Erkennen von Schadsoftware in Binärdateien aufweisen, das Folgendes umfasst: Empfangen und Konvertieren einer Binärdatei in ein multidimensionales Array, wobei die Binärdatei auf einer oder mehreren Vorrichtungen auszuführen ist; und Verarbeiten des multidimensionalen Arrays, um Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist, wobei wenigstens ein teilweise nachtrainiertes ANN verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und der Ausgabeschicht aufweist; und Ausgeben eines Klassifikationsergebnisses; wobei das Klassifikationsergebnis verwendet wird, um ein Ausführen der Binärdatei auf einer oder mehreren Vorrichtungen zu verhindern.
  • Beispiel 34 kann das Verfahren nach Beispiel 33 und/oder einem anderen Beispiel hierin aufweisen, ferner umfassend: Konvertieren der Binärdatei in ein zusätzliches multidimensionales Array, wobei das zusätzliche multidimensionale Array kleiner als das multidimensionale Array ist; Verarbeiten des zusätzlichen multidimensionalen Arrays, um Schadsoftware zu klassifizieren, die in das zusätzliche multidimensionale Array eingebettet ist, wobei ein zweites trainiertes ANN verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist, um ein zweites Klassifikationsergebnis zu erhalten; Kombinieren des ersten Klassifikationsergebnisses und des zweiten Klassifikationsergebnisses zu einem endgültigen Klassifikationsergebnis; und Ausgeben des endgültigen Klassifikationsergebnisses an einen Benutzer.
  • Beispiel 35 kann das Verfahren nach Beispiel 33 und/oder einem anderen Beispiel hierin aufweisen, wobei das multidimensionale Array ein 2D-Array ist.
  • Beispiel 36 kann das Verfahren nach Beispiel 35 und/oder einem anderen Beispiel hierin aufweisen, wobei der Konverter zuerst die Binärdatei in einen Vektor von vorzeichenlosen 8-Bit Ganzzahlen konvertiert und dann den Vektor in das 2D-Array konvertiert.
  • Beispiel 37 kann das Verfahren nach Beispiel 36 und/oder einem anderen Beispiel hierin aufweisen, wobei der Konverter ferner zuerst den Vektor in ein internes 2D-Array konvertiert und dann das interne 2D-Array in der Größe verändert, bevor er das 2D-Array ausgibt.
  • Beispiel 38 kann das Verfahren nach Beispiel 37 und/oder einem anderen Beispiel hierin aufweisen, wobei das größenveränderte 2D-Array eine Größe von entweder 224 × 224 oder 299 × 299 aufweist.
  • Beispiel 39 kann das Verfahren nach Beispiel 33 und/oder einem anderen Beispiel hierin aufweisen, wobei das wenigstens eine teilweise nachtrainierte ANN ein neuronales Netz aufweist, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden.
  • Beispiel 40 kann das Verfahren nach Beispiel 39 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN eines von einem Inception-BN-Netz, einem Visual Geometry Group (VGG)-Netz oder einem AlexNet-Netz ist.
  • Beispiel 41 kann das Verfahren nach Beispiel 39 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN ein Inception-BN-Netz ist, dessen letzte Schicht zum Klassifizieren von Schadsoftware nachtrainiert wurde.
  • Beispiel 42 kann das Verfahren nach Beispiel 39 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN eines von Visual Geometry Group (VGG) 16 oder VGG 19 ist, wobei dessen obere Schichten eingefroren sind und dessen letzte drei Schichten nachtrainiert sind, um Schadsoftware zu klassifizieren.
  • Beispiel 43 kann das Verfahren nach einem der Beispiele 33-42 und/oder einem anderen Beispiel hierin aufweisen, das durch einen Schadsoftware-Detektor ausgeführt wird.
  • Beispiel 44 kann das Verfahren nach einem der Beispiele 33-42 und/oder einem anderen Beispiel hierin aufweisen, das durch ein Betriebssystem ausgeführt wird.
  • Beispiel 45 kann das Verfahren nach einem der Ansprüche 33-42 und/oder einem anderen Beispiel hierin aufweisen, das durch einen Cloud-Server ausgeführt wird.
  • Beispiel 46 kann ein oder mehrere nichttransitorische, computerlesbare Speichermedien aufweisen, die eine Vielzahl von Anweisungen umfassen, die als Reaktion auf ihre Ausführung eine Rechenvorrichtung veranlassen, das Verfahren nach einem der Beispiele 33-42 auszuführen.
  • Beispiel 47 kann eine Vorrichtung zum Rechnen aufweisen, die Folgendes umfasst: Mittel zum Empfangen und Konvertieren einer Binärdatei in ein multidimensionales Array, wobei die Binärdatei auf der Rechenvorrichtung oder einer anderen Rechenvorrichtung auszuführen ist; Mittel zum Verarbeiten des multidimensionalen Arrays, um Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist, wobei wenigstens ein teilweise nachtrainiertes ANN verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist; und Mittel zum Ausgeben eines Klassifikationsergebnisses, wobei das Klassifikationsergebnis verwendet wird, um ein Ausführen der Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung zu verhindern.
  • Beispiel 48 kann die Vorrichtung zum Rechnen nach Beispiel 47 und/oder einem anderen Beispiel hierin aufweisen, wobei das multidimensionale Array ein 2D-Array ist.
  • Beispiel 49 kann die Vorrichtung zum Rechnen nach Beispiel 48 und/oder einem anderen Beispiel hierin aufweisen, wobei die Mittel zum Konvertieren der Binärdatei in ein multidimensionales Array Mittel aufweisen, um zuerst die Binärdatei in einen Vektor von 8-Bit Ganzzahlen zu konvertieren, sowie Mittel, um den Vektor in ein internes 2D-Array zu konvertieren und Mittel, um die Größe des internen 2D-Arrays auf das Eingabe-2D-Array zu ändern.
  • Beispiel 50 kann die Vorrichtung zum Rechnen nach Beispiel 49 und/oder einem anderen Beispiel hierin aufweisen, wobei das größenveränderte 2D-Array eine Größe von entweder 224 × 224 oder 299 × 299 aufweist.
  • Beispiel 51 kann die Vorrichtung zum Rechnen nach Beispiel 47 und/oder einem anderen Beispiel hierin aufweisen, wobei das wenigstens eine teilweise nachtrainierte ANN ein neuronales Netz aufweist, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden.
  • Beispiel 52 kann die Vorrichtung zum Rechnen nach Beispiel 47 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN eines von Inception-BN, Visual Geometry Group (VGG) 16, VGG 19 oder AlexNet ist.
  • Beispiel 53 kann die Vorrichtung zum Rechnen nach Beispiel 47 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN ein Inception-BN-Netz ist, dessen letzte Schicht zum Klassifizieren von Schadsoftware nachtrainiert wurde.
  • Beispiel 54 kann die Vorrichtung zum Rechnen nach Beispiel 52 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN eines von VGG 16 oder VGG 19 ist, wobei dessen obere Schichten eingefroren sind und dessen letzte drei Schichten nachtrainiert sind, um Schadsoftware zu klassifizieren.
  • Beispiel 55 kann die Vorrichtung zum Rechnen nach einem der Beispiele 47-54 und/oder einem anderen Beispiel hierin aufweisen, wobei die Vorrichtung zum Rechnen ein Schadsoftware-Detektor ist oder Teil eines Schadsoftware-Detektors ist.
  • Beispiel 56 kann die Vorrichtung zum Rechnen nach einem der Beispiele 47-54 und/oder einem anderen Beispiel hierin aufweisen, wobei die Vorrichtung zum Rechnen ein Cloud-Server ist.
  • Beispiel 57 kann eine Vorrichtung zum Rechnen aufweisen, die Folgendes umfasst: Mittel zum Empfangen und Konvertieren einer Binärdatei in zwei multidimensionale Arrays, wobei die Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung auszuführen ist; ein erstes Mittel zum Analysieren und ein zweites Mittel zum Analysieren, die jeweils mit den Mitteln zum Empfangen und Konvertieren gekoppelt sind, um beide: eines der multidimensionalen Arrays zu verarbeiten, um Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist, wobei eines von einem trainierten, nachtrainierten oder teilweise nachtrainierten ANN verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist; und ein Klassifikationsergebnis auszugeben, wobei das Klassifikationsergebnis verwendet wird, um eine Ausführung der Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung zu verhindern; und ein Mittel zum Kombinieren, gekoppelt mit dem ersten und dem zweiten Analysator, um die Klassifikationsergebnisse zu verarbeiten und ein kombiniertes Klassifikationsergebnis auszugeben.
  • Beispiel 58 kann die Vorrichtung zum Rechnen nach Beispiel 57 und/oder einem anderen Beispiel hierin aufweisen, wobei die multidimensionalen Arrays 2D-Arrays sind.
  • Beispiel 59 kann die Vorrichtung zum Rechnen nach Beispiel 58 und/oder einem anderen Beispiel hierin aufweisen, wobei die Mittel zum Konvertieren zuerst die Binärdatei in einen Vektor von vorzeichenlosen 8-Bit Ganzzahlen konvertieren und dann den Vektor in die 2D-Arrays konvertieren.
  • Beispiel 60 kann die Vorrichtung zum Rechnen nach Beispiel 59 und/oder einem anderen Beispiel hierin aufweisen, wobei die Mittel zum Konvertieren ferner zuerst den Vektor in ein internes 2D-Array konvertieren und ferner ein Mittel umfassen, um das interne 2D-Array in der Größe zu verändern, um die 2D-Arrays zu erhalten.
  • Beispiel 61 kann die Vorrichtung zum Rechnen nach Beispiel 60 und/oder einem anderen Beispiel hierin aufweisen, wobei eines der größenveränderten 2D-Arrays eine Größe von entweder 224 × 224 oder 299 × 299 aufweist.
  • Beispiel 62 kann die Vorrichtung zum Rechnen von Beispiel 60 aufweisen, wobei eines der größenveränderten 2D-Arrays eine Größe im Bereich von 28 × 28 bis 64 × 64 aufweist.
  • Beispiel 63 kann die Vorrichtung zum Rechnen nach Beispiel 57 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN des ersten Mittels zum Analysieren ein neuronales Netz aufweist, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden.
  • Beispiel 64 kann die Vorrichtung zum Rechnen nach Beispiel 63 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN der ersten Mittel zum Analysieren von Verfahren ein 2D-Array ist, das eine Größe von entweder 224 × 224 oder 299 × 299 aufweist.
  • Beispiel 65 kann die Vorrichtung zum Rechnen nach Beispiel 63 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN der zweiten Mittel zum Analysieren von Verfahren ein 2D-Array ist, das eine Größe im Bereich von 28 × 28 bis 64 × 64 aufweist.
  • Beispiel 66 kann die Vorrichtung zum Rechnen nach Beispiel 57 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN der zweiten Mittel zum Analysieren vollständig auf einen Satz an Schadsoftware-Bildern trainiert ist und seine Architektur neu definiert ist.
  • Beispiel 67 kann die Vorrichtung zum Rechnen nach Beispiel 57 und/oder einem anderen Beispiel hierin aufweisen, wobei das ANN der zweiten Mittel zum Analysieren vollständig auf einen Satz an Schadsoftware-Bildern trainiert ist, aber seine Architektur behält eine der Folgenden bei: eine LeNet-Struktur, eine CIFAR-10 neuronale Netzstruktur oder Multilayerperceptrons.
  • Beispiel 68 kann die Vorrichtung zum Rechnen nach Beispiel 57 und/oder einem anderen Beispiel hierin aufweisen, wobei die Mittel zum Kombinieren das kombinierte Klassifikationsergebnis basierend auf wenigstens einem der Folgenden ausgeben: einem gewichteten Durchschnitt, einem Durchschnitt, einer Mehrheitsentscheidung, einer gewichteten Mehrheitsentscheidung oder einem Boosting der ANNs der ersten und zweiten Mittel zum Analysieren, um die Ergebnisse der ersten Mittel zum Analysieren und der zweiten Mittel zum Analysieren zu kombinieren.
  • Beispiel 69 kann die Vorrichtung zum Rechnen nach Beispiel 57 und/oder einem anderen Beispiel hierin aufweisen, wobei die Mittel zum Kombinieren die Ausgabe des ANN der ersten Mittel zum Analysieren höher gewichten.

Claims (25)

  1. Vorrichtung zum Berechnen, die Folgendes umfasst: einen Konverter zum Empfangen und Konvertieren einer Binärdatei in ein multidimensionales Array, wobei die Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung auszuführen ist; und einen Analysator, der mit dem Konverter gekoppelt ist, um: das multidimensionale Array zu verarbeiten, um Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist, wobei wenigstens ein teilweise nachtrainiertes künstliches neuronales Netz (ANN) verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist; und ein Klassifikationsergebnis auszugeben; wobei das Klassifikationsergebnis verwendet wird, um ein Ausführen der Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung zu verhindern.
  2. Vorrichtung nach Anspruch 1, wobei das multidimensionale Array ein 2D-Array ist.
  3. Vorrichtung nach Anspruch 2, wobei der Konverter zuerst die Binärdatei in einen Vektor von vorzeichenlosen 8-Bit Ganzzahlen konvertiert und dann den Vektor in das 2D-Array konvertiert.
  4. Vorrichtung nach Anspruch 3 wobei der Konverter ferner zuerst den Vektor in ein internes 2D-Array konvertiert und dann das interne 2D-Array in der Größe verändert, bevor er das 2D-Array ausgibt.
  5. Vorrichtung nach Anspruch 4, wobei das größenveränderte 2D-Array eine Größe von entweder 224 × 224 oder 299 × 299 aufweist.
  6. Vorrichtung nach Anspruch 1, wobei das wenigstens eine teilweise nachtrainierte ANN ein neuronales Netz aufweist, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden.
  7. Vorrichtung nach Anspruch 6, wobei das ANN eines von einem Inception-BN-Netz, einem Visual Geometry Group (VGG)-Netz oder einem AlexNet-Netz ist.
  8. Vorrichtung nach Anspruch 6, wobei das ANN ein Inception-BN-Netz ist, dessen letzte Schicht zum Klassifizieren von Schadsoftware nachtrainiert wurde.
  9. Vorrichtung nach Anspruch 6, wobei das ANN eines von Visual Geometry Group (VGG) 16 oder VGG 19 ist, wobei dessen obere Schichten eingefroren sind und dessen letzte drei Schichten nachtrainiert sind, um Schadsoftware zu klassifizieren.
  10. Vorrichtung nach einem der Ansprüche 1-9, die einen Schadsoftware-Detektor umfasst, der den Konverter und den Analysator aufweist.
  11. Vorrichtung nach einem der Ansprüche 1-9, die ein Betriebssystem umfasst, das den Konverter und den Analysator aufweist.
  12. Vorrichtung nach einem der Ansprüche 1-9, wobei die Vorrichtung ein Cloud-Server ist.
  13. Vorrichtung zum Berechnen, die Folgendes umfasst: einen Konverter zum Empfangen und Konvertieren einer Binärdatei in zwei multidimensionale Arrays, wobei die Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung auszuführen ist; einen ersten Analysator und einen zweiten Analysator, die jeweils mit dem Konverter gekoppelt sind, um beide: eines der multidimensionalen Arrays zu verarbeiten, um Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist, wobei eines von einem trainierten, nachtrainierten oder teilweise nachtrainierten ANN verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist; und ein Klassifikationsergebnis auszugeben, wobei das Klassifikationsergebnis verwendet wird, um ein Ausführen der Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung zu verhindern; und einen Kombinierer, der jeweils mit dem ersten und dem zweiten Analysator gekoppelt ist, um die Klassifikationsergebnisse zu verarbeiten und ein kombiniertes Klassifikationsergebnis auszugeben.
  14. Vorrichtung nach Anspruch 13, wobei die multidimensionalen Arrays 2D-Arrays sind.
  15. Vorrichtung nach Anspruch 14, wobei der Konverter zuerst die Binärdatei in einen Vektor von vorzeichenlosen 8-Bit Ganzzahlen konvertiert und dann den Vektor in die 2D-Arrays konvertiert.
  16. Vorrichtung nach Anspruch 15, wobei der Konverter ferner zuerst den Vektor in ein internes 2D-Array konvertiert und dann das interne 2D-Array in der Größe verändert, um die 2D-Arrays zu erhalten.
  17. Vorrichtung nach Anspruch 13, wobei das ANN des ersten Analysators ein neuronales Netz aufweist, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden.
  18. Vorrichtung nach Anspruch 17, wobei entweder: das ANN ein Inception-BN-Netz ist, dessen letzte Schicht zur Klassifikation von Schadsoftware nachtrainiert wurde; oder das ANN eines von Visual Geometry Group (VGG) 16 oder VGG 19 ist, wobei dessen obere Schichten eingefroren sind und dessen letzte drei Schichten nachtrainiert sind, um Schadsoftware zu klassifizieren.
  19. Ein oder mehrere nichttransitorische, computerlesbare Speichermedien, die eine Vielzahl von Anweisungen umfassen, die als Reaktion auf ihre Ausführung eine Rechenvorrichtung zu Folgendem veranlassen: Empfangen und Konvertieren einer Binärdatei in ein multidimensionales Array, wobei die Binärdatei auf der Rechenvorrichtung oder einer anderen Rechenvorrichtung auszuführen ist; Verarbeiten des multidimensionalen Arrays, um Schadsoftware, die in das multidimensionale Array eingebettet ist, zu erkennen und zu klassifizieren, wobei wenigstens ein teilweise nachtrainiertes ANN verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist; und Ausgeben eines Klassifikationsergebnisses, wobei das Klassifikationsergebnis verwendet wird, um ein Ausführen der Binärdatei auf der Vorrichtung oder einer anderen Vorrichtung zu verhindern.
  20. Ein oder mehrere nichttransitorische, computerlesbare Speichermedien nach Anspruch 19, wobei das multidimensionale Array ein 2D-Array ist.
  21. Ein oder mehrere nichttransitorische computerlesbare Speichermedien nach Anspruch 19 oder 20, wobei das wenigstens eine teilweise nachtrainierte ANN ein neuronales Netz aufweist, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden.
  22. Verfahren zum Erkennen von Schadsoftware in Binärdateien, das Folgendes umfasst: Empfangen und Konvertieren einer Binärdatei in ein multidimensionales Array, wobei die Binärdatei auf einer Vorrichtung oder mehreren Vorrichtungen auszuführen ist; und Verarbeiten des multidimensionalen Arrays, um Schadsoftware zu erkennen und zu klassifizieren, die in das multidimensionale Array eingebettet ist, wobei wenigstens ein teilweise nachtrainiertes ANN verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist; und Ausgeben eines Klassifikationsergebnisses; wobei das Klassifikationsergebnis verwendet wird, um ein Ausführen der Binärdatei auf einer Vorrichtung oder mehreren Vorrichtungen zu verhindern.
  23. Verfahren nach Anspruch 22, ferner umfassend: Konvertieren der Binärdatei in ein zusätzliches multidimensionales Array, wobei das zusätzliche multidimensionale Array kleiner als das multidimensionale Array ist; Verarbeiten des zusätzlichen multidimensionalen Arrays, um Schadsoftware zu klassifizieren, die in das zusätzliche multidimensionale Array eingebettet ist, wobei ein zweites trainiertes ANN verwendet wird, das eine Eingabeschicht, eine Ausgabeschicht und eine Vielzahl an versteckten Schichten zwischen der Eingabe- und Ausgabeschicht aufweist, um ein zweites Klassifikationsergebnis zu erhalten; Kombinieren des ersten Klassifikationsergebnisses und des zweiten Klassifikationsergebnisses zu einem endgültigen Klassifikationsergebnis; und Ausgeben des endgültigen Klassifikationsergebnisses an einen Benutzer.
  24. Verfahren nach Anspruch 22, wobei das wenigstens eine teilweise nachtrainierte ANN ein neuronales Netz aufweist, das zuvor darauf trainiert wurde, Muster zu erkennen, wobei die Gewichte einer Anzahl seiner anfänglichen Schichten eingefroren sind und die Gewichte einer Anzahl seiner letzten Schichten auf das Erkennen von Schadsoftware-Binärdateien nachtrainiert wurden.
  25. Ein oder mehrere nichttransitorische, computerlesbare Speichermedien, die eine Vielzahl von Anweisungen umfassen, die als Reaktion auf ihre Ausführung eine Rechenvorrichtung veranlassen, das Verfahren nach einem der Ansprüche 22-24 auszuführen.
DE102018128581.7A 2017-12-15 2018-11-14 Erkennung und klassifikfation von schadsoftware unter verwendung eines künstlichen neuronalen netzes Pending DE102018128581A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/843,900 2017-12-15
US15/843,900 US20190042743A1 (en) 2017-12-15 2017-12-15 Malware detection and classification using artificial neural network

Publications (1)

Publication Number Publication Date
DE102018128581A1 true DE102018128581A1 (de) 2019-06-19

Family

ID=65230292

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102018128581.7A Pending DE102018128581A1 (de) 2017-12-15 2018-11-14 Erkennung und klassifikfation von schadsoftware unter verwendung eines künstlichen neuronalen netzes

Country Status (3)

Country Link
US (1) US20190042743A1 (de)
CN (1) CN109933982A (de)
DE (1) DE102018128581A1 (de)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10915631B2 (en) * 2017-12-28 2021-02-09 Intel Corporation Deep learning on execution trace data for exploit detection
US11222114B2 (en) * 2018-08-01 2022-01-11 International Business Machines Corporation Time and frequency domain analysis of bytecode for malware detection
IL281410B2 (en) * 2018-09-15 2024-02-01 Quantum Star Tech Inc Bit-level data generation and artificial intelligence techniques and architectures for data protection
EP3663948B1 (de) * 2018-12-03 2022-02-23 Siemens Aktiengesellschaft Erkennung von abweichungen im sicherheitsverhalten von automatisierungseinheiten
KR102007809B1 (ko) * 2019-03-05 2019-08-06 에스지에이솔루션즈 주식회사 이미지를 이용한 신경망 기반 익스플로잇킷 탐지 시스템
CN110245494B (zh) * 2019-06-18 2024-05-24 平安科技(深圳)有限公司 恶意软件的检测方法、电子装置及计算机可读存储介质
CN110362597A (zh) * 2019-06-28 2019-10-22 华为技术有限公司 一种结构化查询语言sql注入检测方法及装置
US10940393B2 (en) * 2019-07-02 2021-03-09 Electronic Arts Inc. Customized models for imitating player gameplay in a video game
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
US10884710B1 (en) * 2019-08-13 2021-01-05 Accenture Global Solutions Limited System and method for generating unified experiences on digital platforms
TWI723547B (zh) * 2019-09-19 2021-04-01 宏碁股份有限公司 風格移轉的方法及其電腦程式產品
US20210158161A1 (en) * 2019-11-22 2021-05-27 Fraud.net, Inc. Methods and Systems for Detecting Spurious Data Patterns
US20210201157A1 (en) * 2019-12-28 2021-07-01 Tencent America LLC Neural network model compression with quantizability regularization
CN111241550B (zh) * 2020-01-08 2023-04-18 湖南大学 基于二进制映射和深度学习的漏洞检测方法
US11550911B2 (en) 2020-01-31 2023-01-10 Palo Alto Networks, Inc. Multi-representational learning models for static analysis of source code
US11615184B2 (en) * 2020-01-31 2023-03-28 Palo Alto Networks, Inc. Building multi-representational learning models for static analysis of source code
CN111552965A (zh) * 2020-04-07 2020-08-18 哈尔滨工程大学 一种基于pe头可视化的恶意软件分类方法
US11514318B2 (en) * 2020-04-08 2022-11-29 International Business Machines Corporation Multi-source transfer learning from pre-trained networks
CN111651762A (zh) * 2020-04-21 2020-09-11 浙江大学 一种基于卷积神经网络的pe恶意软件检测方法
CN111914254B (zh) * 2020-06-24 2024-05-28 中国科学院信息工程研究所 一种基于弱耦合sgan的恶意软件家族分类器生成方法、装置及可读存储介质
US11720673B2 (en) * 2020-09-25 2023-08-08 Mcafee, Llc Visual classification according to binary memory dump
CN112347478B (zh) * 2020-10-13 2021-08-24 北京天融信网络安全技术有限公司 一种恶意软件检测方法及装置
US11790085B2 (en) * 2020-10-29 2023-10-17 Electronics And Telecommunications Research Institute Apparatus for detecting unknown malware using variable opcode sequence and method using the same
US20220256347A1 (en) * 2021-02-09 2022-08-11 Qualcomm Incorporated Context Dependent V2X Misbehavior Detection
TWI767582B (zh) * 2021-02-23 2022-06-11 財團法人資訊工業策進會 檔案弱點檢測系統及其檢測方法
CN112906002A (zh) * 2021-03-26 2021-06-04 山西三友和智慧信息技术股份有限公司 一种基于深度学习的恶意软件识别方法
KR102535978B1 (ko) * 2021-06-07 2023-05-26 숭실대학교 산학협력단 전이학습을 통한 적응형 모델 기반의 온 디바이스 안드로이드 악성코드 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치
CN114611107B (zh) * 2022-03-11 2024-05-31 广州翰南工程技术有限公司 一种基于超分辨特征图像的安卓恶意软件分类方法
CN114896598B (zh) * 2022-05-11 2024-05-21 武汉科技大学 一种基于卷积神经网络的恶意代码检测方法
US11934523B1 (en) * 2022-12-01 2024-03-19 Flexxon Pte. Ltd. System and method for securing data files
CN118468272B (zh) * 2024-07-10 2024-09-13 山东省计算中心(国家超级计算济南中心) 基于域空间特征对齐方法的恶意代码变体检测方法和系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10305928B2 (en) * 2015-05-26 2019-05-28 Cisco Technology, Inc. Detection of malware and malicious applications
WO2017011702A1 (en) * 2015-07-15 2017-01-19 Cylance Inc. Malware detection
US9690938B1 (en) * 2015-08-05 2017-06-27 Invincea, Inc. Methods and apparatus for machine learning based malware detection
US10417530B2 (en) * 2016-09-30 2019-09-17 Cylance Inc. Centroid for improving machine learning classification and info retrieval
KR101960869B1 (ko) * 2017-06-30 2019-03-21 주식회사 씨티아이랩 인공지능 기반 악성코드 검출 시스템 및 방법

Also Published As

Publication number Publication date
US20190042743A1 (en) 2019-02-07
CN109933982A (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
DE102018128581A1 (de) Erkennung und klassifikfation von schadsoftware unter verwendung eines künstlichen neuronalen netzes
Wu et al. Wider or deeper: Revisiting the resnet model for visual recognition
DE102018129692A1 (de) Tiefgehendes Lernen anhand von Ausführungsverlaufsdaten zur Erkennung von Exploits
DE112020003127T5 (de) Erweiterung von dynamischem Verarbeitungselement-Array
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
CN112561027A (zh) 神经网络架构搜索方法、图像处理方法、装置和存储介质
Koné et al. Hierarchical ResNeXt models for breast cancer histology image classification
DE102022107186A1 (de) Generatorausnutzung zur deepfake-detektion
CN112801146B (zh) 一种目标检测方法及系统
DE102022119386A1 (de) Verfahren und einrichtung zum durchführen einer dichten vorhersage unter verwendung von transformatorblöcken
CN112215171B (zh) 目标检测方法、装置、设备及计算机可读存储介质
CN103052962A (zh) 粗糙小波粒化空间和多光谱遥感图像的分类
CN106651887A (zh) 一种基于卷积神经网络的图像像素分类方法
DE102022106057A1 (de) Authentifikatorintegriertes generatives adversariales netzwerk (gan) zur sicheren deepfake-erzeugung
DE112020005789T5 (de) Hierarchische partitionierung von operatoren
DE102022105808A1 (de) Effiziente quantisierung für eine bereitstellung und ausführung von neuronalen netzen
DE102022105810A1 (de) Effiziente Speichernutzungsoptimierung für Einsatz und Ausführung neuronaler Netze
DE102023101265A1 (de) Objekterfassung bei Bildstromverarbeitung unter Verwendung von optischem Fluss mit dynamischen Regionen von Interesse
Verdhan et al. Image classification using LeNet
CN116310688A (zh) 基于级联融合的目标检测模型及其构建方法、装置及应用
DE102022105598A1 (de) Einrichtung, Verfahren und computerlesbares Medium für robuste Reaktion auf adversariale Störungen unter Verwendung hyperdimensionaler Vektoren
CN110633735A (zh) 基于小波变换的渐进式深度卷积网络图像识别方法及装置
DE102023130782A1 (de) Trainieren eines neuronalen netzwerks mit einer budding-ensemble-architektur basierend auf diversitätsverlust
CN113139581A (zh) 一种基于多图融合的图像分类方法和系统
Jagetia et al. Visual transformer for soil classification