DE112019001121T5 - Erkennen von malware - Google Patents

Erkennen von malware Download PDF

Info

Publication number
DE112019001121T5
DE112019001121T5 DE112019001121.9T DE112019001121T DE112019001121T5 DE 112019001121 T5 DE112019001121 T5 DE 112019001121T5 DE 112019001121 T DE112019001121 T DE 112019001121T DE 112019001121 T5 DE112019001121 T5 DE 112019001121T5
Authority
DE
Germany
Prior art keywords
overlay
executable program
properties
received
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.)
Granted
Application number
DE112019001121.9T
Other languages
English (en)
Other versions
DE112019001121B4 (de
Inventor
Andrey Finkelshtein
Eitan Menahem
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112019001121T5 publication Critical patent/DE112019001121T5/de
Application granted granted Critical
Publication of DE112019001121B4 publication Critical patent/DE112019001121B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/565Static detection by checking file integrity
    • 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/564Static detection by virus signature recognition
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Image Analysis (AREA)

Abstract

Auf einem Computer implementiertes Verfahren zum Identifizieren von Malware in Computersystemen, das aufweist: Empfangen einer Mehrzahl von ausführbaren Programmdateien, die als schädlich oder unschädlich gekennzeichnet sind, Trainieren eines maschinellen Lernmodells unter Verwendung von Eigenschaften, die aus Überlagerungen extrahiert werden, die jeder der Mehrzahl von empfangenen gekennzeichneten ausführbaren Programmdateien zugehörig sind, Empfangen einer ausführbaren Programmdatei, die nicht gekennzeichnet ist, Ermitteln, ob die empfangene nicht gekennzeichnete ausführbare Programmdatei schädlich oder unschädlich ist, und zwar mittels des trainierten maschinellen Lernmodells auf der Grundlage von Eigenschaften, die aus einer Überlagerung extrahiert wurden, die der empfangenen nicht gekennzeichneten ausführbaren Programmdatei zugehörig ist, und Übertragen von Informationen, die die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich identifizieren, wenn die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich ermittelt wird.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung behandelt Techniken zum Erkennen von schädlichen ausführbaren Programmdateien durch Durchführen einer statischen Analyse der Überlagerung (overlay) von ausführbaren Programmdateien.
  • Schädliche Dateien (Malware) bergen ein großes Risiko für private Benutzer und Organisationen. Die Aufgabe, Malware zu erkennen, ist seit einigen Jahren ein großes Problem, da die Anzahl der Arten von Malware zunimmt und die Techniken zum Maskieren von Malware ständig verbessert werden.
  • Bei den derzeitigen schädlichen ausführbaren Programmen werden verschiedene und vielfältige Techniken verwendet, um ein Erkennen durch Antivirensysteme (AV) zu verhindern. Diese Techniken, z.B. Code-Packing, Polymorphie, Metamorphose, Verschlüsselung usw., werden in der Regel „vor Ort“ durchgeführt, d.h. in Teilen der schädlichen Datei, die zu Beginn der Ausführung der Datei in den Speicher geladen werden. Bestehende Mechanismen zum Erkennen eines solchen schädlichen Codes arbeiten mit hoher Effizienz und Wahrscheinlichkeit, so dass solche Angriffe weniger erfolgreich sind. Daher wurde Malware so weiterentwickelt, dass die Schadensroutine (Payload) in Abschnitten der Datei versteckt wird, die beim Ausführen der Datei nicht in den Speicher geladen werden, d.h. wo Schadensroutinen nicht erwartet werden. Nachdem ihr „unschädlicher“ Inhalt in den Speicher geladen wurde, lädt solche Malware ihren schädlichen Inhalt aus anderen Quellen und umgeht so die bestehenden Abwehrmechanismen. Eine der beliebtesten Techniken zum Durchführen dieser schwer erkennbaren Technik ist das Anhängen der Schadensroutine als Überlagerung der Datei.
  • Eine Überlagerung einer ausführbaren Programmdatei kann als ein Zusatz zu der Datei definiert werden, der nicht im Header der Datei angegeben ist. Es gibt also keine Informationen über das Vorhandensein oder den Inhalt der Überlagerung in der Datei. Die Überlagerung wird nicht in den Speicher geladen, wenn die Datei ausgeführt wird. Durch einfache Programmierung kann jedoch der „unschädliche“ laufende Prozess veranlasst werden, den schädlichen Inhalt der Überlagerung auszulesen und ihn zur Laufzeit in den Hauptspeicher des Computers zu laden. Dieser Code-Ladevorgang unterscheidet sich grundlegend von einer herkömmlichen Dateiausführung, so dass bestehende Erkennungsmechanismen heutiger Antivirensysteme solche Aktionen möglicherweise nicht als schädlich erkennen. Zudem ist es relativ einfach, eine Überlagerung zu einem bestehenden unschädlichen Code hinzuzufügen, da die Überlagerung an jede ausführbare Programmdatei angehängt werden kann, ohne deren elektronischen Signierungsmechanismus zu zerstören. Der Signierungsmechanismus ermöglicht ein Überprüfen der Herkunft oder des Namens des Erstellers des betreffenden ausführbaren Programms.
  • Auch wenn Malware-Entwickler die Überlagerung verwenden können, „belastet“ das alleinige Vorhandensein einer Überlagerung eine Datei nicht unbedingt. Es gibt berechtigte Anwendungen für Überlagerungen von ausführbaren Programmdateien in unschädlicher Software. Beispielsweise kann eine Überlagerung nützlich sein, wenn Daten zu einem Programm hinzugefügt werden sollen, ohne zusätzliche Dateien hinzuzufügen. Dementsprechend wird mit den vorhandenen Techniken das Problem nicht angemessen behandelt, schädliche Inhalte in einer Überlagerung einer ausführbaren Programmdatei zu erkennen.
  • Es besteht ein Bedarf an Techniken zum Erkennen schädlicher Software, die sich in einer Überlagerung einer ausführbaren Programmdatei befindet.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Systeme und Verfahren können schädliche ausführbare Programmdateien auf der Grundlage einer Überlagerung der ausführbaren Programmdatei erkennen, wodurch eine Verbesserung gegenüber heutigen Technologien bereitstellt wird. In Ausführungsformen kann eine verdächtige ausführbare Programmdatei analysiert werden, indem die Überlagerung der Datei (falls vorhanden) extrahiert wird, die Überlagerung analysiert wird und mittels der Analyse verschiedene Eigenschaften der Überlagerung ermittelt werden. Diese Eigenschaften können (möglicherweise mit anderen Eigenschaften der Datei) an einen Klassifikator weitergegeben werden, der entscheidet, ob die Datei schädlich oder unschädlich ist.
  • In einer Ausführungsform kann ein auf einem Computer implementiertes Verfahren zum Identifizieren von Malware in Computersystemen beispielsweise aufweisen: Empfangen einer Mehrzahl von ausführbaren Programmdateien, die als schädlich oder unschädlich gekennzeichnet sind, Trainieren eines maschinellen Lernmodells unter Verwendung von Eigenschaften, die aus Überlagerungen extrahiert werden, die jeder der Mehrzahl von empfangenen gekennzeichneten ausführbaren Programmdateien zugehörig sind, Empfangen einer ausführbaren Programmdatei, die nicht gekennzeichnet ist, Ermitteln, ob die empfangene nicht gekennzeichnete ausführbare Programmdatei schädlich oder unschädlich ist, und zwar mittels des trainierten maschinellen Lernmodells auf der Grundlage von Eigenschaften, die aus einer Überlagerung extrahiert wurden, die der empfangenen nicht gekennzeichneten ausführbaren Programmdatei zugehörig ist, und Übertragen von Informationen, die die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich identifizieren, wenn die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich ermittelt wird.
  • In Ausführungsformen können die extrahierten Eigenschaften mindestens eine Eigenschaft umfassen, die aus einer Gruppe ausgewählt wird, die grundlegende Überlagerungseigenschaften aufweist, darunter Vorhandensein der Überlagerung und/oder eine Größe der Überlagerung und/oder ein Verhältnis zwischen der Größe der Überlagerung und einer Größe der ausführbaren Programmdatei und/oder statistische Inhaltseigenschaften von Datenblöcken der Überlagerung der ausführbaren Programmdatei und/oder Deep-Content-Eigenschaften, die einen Inhalt der Überlagerung charakterisieren, darunter Reputation von URLs und/oder Domains und IP-Adressen, die in der Überlagerung gefunden wurden und/oder Signaturen oder Fingerabdrücke, die im Binärcode der Überlagerung gefunden wurden und/oder Textanalyse des lesbaren Inhalts der Überlagerung sowie andere Eigenschaften auf der Grundlage von Techniken zur Dateianalyse, die modifiziert oder an eine Überlagerungsanalyse angepasst wurden, zum Beispiel ein N-Gramm der Überlagerung. Das maschinelle Lernmodell kann mindestens ein Modell aufweisen, das aus einer Gruppe ausgewählt wird, die überwachte Lernmodelle umfasst, darunter ein Klassifikatormodell, ein neuronales Netzwerkmodell, ein Bayes-Modell, ein Entscheidungsbaummodell, ein Support-Vector-Maschinenmodell, sowie unüberwachte Lernmodelle umfasst, darunter ein Clustering-Modell und ein neuronales Netzwerkmodell. Die Eigenschaften können durch statische Analyse aus den Überlagerungen extrahiert werden, wobei die ausführbaren Programmdateien und Überlagerungen untersucht werden, wenn sie nicht ausgeführt werden. Die empfangenen ausführbaren Programmdateien können von einer Quelle empfangen werden, die einen Webbrowser und/oder eine eMail-Nachricht und/oder ein Dateisystem umfasst. Bei der Überlagerung kann es sich um eine PE-Datei (Portable Executable) handeln, und das Ermitteln erfolgt durch Analyse der Überlagerung getrennt von jeglicher Analyse anderer Abschnitte der empfangenen ausführbaren Programmdatei.
  • In einer Ausführungsform kann ein System zum Identifizieren von Malware in Computersystemen einen Prozessor, einen Speicher, auf den der Prozessor zugreifen kann, und Anweisungen für Computerprogramme aufweisen, die im Speicher gespeichert sind und durch den Prozessor ausführbar sind zum Durchführen von: Empfangen einer Mehrzahl von ausführbaren Programmdateien, die als schädlich oder unschädlich gekennzeichnet sind, Trainieren eines maschinellen Lernmodells unter Verwendung von Eigenschaften, die aus Überlagerungen extrahiert werden, die jeder der Mehrzahl von empfangenen gekennzeichneten ausführbaren Programmdateien zugehörig sind, Empfangen einer ausführbaren Programmdatei, die nicht gekennzeichnet ist, Ermitteln, ob die empfangene nicht gekennzeichnete ausführbare Programmdatei schädlich oder unschädlich ist, und zwar mittels des trainierten maschinellen Lernmodells auf der Grundlage von Eigenschaften, die aus einer Überlagerung extrahiert wurden, die der empfangenen nicht gekennzeichneten ausführbaren Programmdatei zugehörig ist, und Übertragen von Informationen, die die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich identifizieren, wenn die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich ermittelt wird.
  • In einer Ausführungsform kann ein Computerprogrammprodukt zum Identifizieren von Malware in Computersystemen einen nichtflüchtigen computerlesbaren Speicher aufweisen, in den Programmanweisungen eingebettet sind, wobei die Programmanweisungen von einem Computer ausführbar sind, um zu bewirken, dass der Computer ein Verfahren durchführt, das Folgendes aufweist: Empfangen einer Mehrzahl von ausführbaren Programmdateien, die als schädlich oder unschädlich gekennzeichnet sind, Trainieren eines maschinellen Lernmodells unter Verwendung von Eigenschaften, die aus Überlagerungen extrahiert werden, die jeder der Mehrzahl von empfangenen gekennzeichneten ausführbaren Programmdateien zugehörig sind, Empfangen einer ausführbaren Programmdatei, die nicht gekennzeichnet ist, Ermitteln, ob die empfangene nicht gekennzeichnete ausführbare Programmdatei schädlich oder unschädlich ist, und zwar mittels des trainierten maschinellen Lernmodells auf der Grundlage von Eigenschaften, die aus einer Überlagerung extrahiert wurden, die der empfangenen nicht gekennzeichneten ausführbaren Programmdatei zugehörig ist, und Übertragen von Informationen, die die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich identifizieren, wenn die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich ermittelt wird.
  • Figurenliste
  • Die Einzelheiten der vorliegenden Erfindung, sowohl was ihren Aufbau als auch ihre Funktionsweise betrifft, können am besten anhand der beigefügten Zeichnungen verstanden werden, in denen sich gleiche Referenznummern und Bezeichnungen auf die gleichen Elemente beziehen.
    • 1 zeigt ein beispielhaftes Blockschaubild eines Systems, in dem Techniken der vorliegenden Systeme und Verfahren implementiert werden können.
    • 2 ist ein beispielhaftes Flussdiagramm einer Ausführungsform eines Prozesses einer Trainingsphase.
    • 3 ist ein beispielhaftes Flussdiagramm einer Ausführungsform eines Prozesses einer Betriebsphase.
    • 4 ist eine beispielhafte Darstellung von Kategorien von Eigenschaften, die durch die in 2 und 3 dargestellten Prozesse extrahiert werden können.
    • 5 ist ein beispielhaftes Blockschaubild eines Computersystems, in dem Prozesse, die in den hier beschriebenen Ausführungsformen enthalten sind, implementiert werden können.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Ausführungsformen der vorliegenden Systeme und Verfahren können schädliche Inhalte erkennen, die sich in einer Überlagerung einer ausführbaren Programmdatei befinden, wodurch eine Verbesserung gegenüber heutigen Technologien bereitstellt wird. In Ausführungsformen kann eine verdächtige ausführbare Programmdatei analysiert werden, indem die Überlagerung der Datei (falls vorhanden) extrahiert wird, die Überlagerung analysiert wird und mittels der Analyse verschiedene Eigenschaften der Überlagerung ermittelt werden. Diese Eigenschaften können (möglicherweise mit anderen Eigenschaften der Datei) an einen Klassifikator weitergegeben werden, der entscheidet, ob die Datei schädlich oder unschädlich ist.
  • Ausführungsformen der vorliegenden Systeme und Verfahren verwenden automatische statische Analysen, die auf einem überwachten maschinellen Lernen aufbauen. Ein Mechanismus zum Erkennen von Malware analysiert die Überlagerung von PE-Dateien (Portable Executable) getrennt von den anderen Abschnitten des ausführbaren Programms. Eine Reihe von Eigenschaften der PE-Datei-Überlagerung (nämlich Funktionen) werden extrahiert, ein Algorithmus für maschinelles Lernen wird auf diese extrahierten Funktionen trainiert, und es wird zwischen unschädlicher und schädlicher Software unterschieden.
  • Ein beispielhaftes Blockschaubild eines Systems 100, in dem Techniken der vorliegenden Systeme und Verfahren implementiert werden können, ist in 1 dargestellt. In diesem Beispiel umfasst System 100 Computersystem 102 und Netzwerk 104. In der Regel kann Computersystem 102 mittels eines oder mehrerer programmierter Allzweck-Computersysteme implementiert werden, z.B. Personal Computer, Smartphones, Tablets oder Tablet-Computer, Workstations, Serversysteme, Minicomputer oder Großrechner usw. Netzwerk 104 ist in der Regel das Internet, kann aber ein beliebiges Standard- oder proprietäres, öffentliches oder privates Netzwerk sein. In der Regel ist Computersystem 102 ein System, das an das Internet angeschlossen ist und von einem Benutzer bedient wird, aber es kann jede Art von Computersystem verwendet werden, das an jede Art von Netzwerk angeschlossen ist. In der Regel empfängt Computersystem 102 eine ausführbare Programmdatei 106 vom Netzwerk 104, zum Beispiel über einen Webbrowser, einen eMail-Dienst, ein Dateisystem usw. Eine solche ausführbare Programmdatei kann eine Überlagerung 108 umfassen oder ihr zugehörig sein. Beispielsweise kann die ausführbare Programmdatei 106 beim Empfangen einen Teil einer Überlagerung 108 umfassen, der in Headern oder anderen Metadaten der Datei nicht weiter angegeben ist. Ebenso kann die ausführbare Programmdatei 106 beim Empfangen keinen Teil einer Überlagerung 108 umfassen, sondern Überlagerung 108 vom Netzwerk 104 oder einem anderen Speicher erhalten und bewirken, dass Überlagerung 108 in den Speicher geladen wird. Die ausführbare Programmdatei 106 und Überlagerung 108 können vom Malware-Erkennungssystem 110 analysiert werden, um die Wahrscheinlichkeit zu ermitteln, dass es sich bei der ausführbaren Programmdatei 106 und/oder Überlagerung 108 um Malware handelt.
  • In Ausführungsformen können die vorliegenden Techniken zum Erkennen von Malware zwei Arbeitsphasen umfassen: eine Trainingsphase und eine Betriebs- oder Online-Phase. Die Trainingsphase kann das Training eines Klassifikationsmodells anhand eines Korpus von als schädlich und unschädlich gekennzeichneten Dateien umfassen, um ein trainiertes Klassifikatormodell 112 zu erzeugen. Die Trainingsphase kann vor der Betriebsphase durchgeführt werden. In der Betriebsphase können Proben verdächtiger PE-Dateien auf dem Computersystem 102 ankommen, und mittels des trainierten Klassifikatormodells 112 können die Proben als unschädlich oder schädlich klassifiziert werden.
  • Ein beispielhaftes Flussdiagramm einer Ausführungsform eines Trainingsphasenprozesses 200, der in den vorliegenden Techniken enthalten ist, ist in 2 dargestellt. Trainingsphasenprozess 200 kann mit 202 beginnen, wo ausführbare Programmdateien, die als schädlich oder unschädlich gekennzeichnet wurden, durch den Trainingsphasenprozess 200 empfangen werden können. Bei 204 können die empfangenen ausführbaren Programmdateien analysiert und jeder Überlagerungsteil extrahiert oder abgerufen werden. Bei 206 können die extrahierten oder abgerufenen Überlagerungen analysiert werden, um die gegebenenfalls vorliegenden Eigenschaften zu ermitteln. In Ausführungsformen kann eine statische Analyse durchgeführt werden, d.h., die ausführbaren Programmdateien und zugehörigen Überlagerungen werden geprüft, wenn sie nicht ausgeführt werden. Bei 208 können die relevanten ermittelten Eigenschaften aus den Überlagerungen extrahiert werden. Bei 210 kann ein maschinelles Lernmodell trainiert werden, um schädliche Beispiele mittels der extrahierten Eigenschaften und der Kennzeichnungen zu erkennen und solche schädlichen Beispiele von unschädlichen Beispielen zu unterscheiden. In der Regel kann das maschinelle Lernmodell ein Klassifikatormodell sein, aber es kann jedes beliebige maschinelle Lernmodell verwendet werden. Beispielsweise können andere überwachte Lernmodelle verwendet werden wie einige Arten von neuronalen Netzwerkmodellen, Bayes-Modelle, Entscheidungsbaummodelle, Support-Vector-Maschinen usw. Ebenso können, auch wenn gekennzeichnete Daten vorliegen, oder alternativ, wenn nicht gekennzeichnete Daten vorliegen, unüberwachte Lernmodelle verwendet werden, z.B. Clustering-Modelle, einige Arten von neuronalen Netzwerken usw. In Ausführungsformen können bei 212 andere oder zusätzliche Eigenschaften extrahiert und für das Training 210 des maschinellen Lernmodells verwendet werden.
  • Ein beispielhaftes Flussdiagramm eines Betriebsphasenprozesses 300, der in den vorliegenden Techniken enthalten ist, ist in 3 dargestellt. Trainingsphasenprozess 300 kann mit 302 beginnen, wo ausführbare Programmdateien, die als schädlich oder unschädlich ermittelt werden sollen, durch Betriebsphasenprozess 300 empfangen werden können. Bei 304 können die empfangenen ausführbaren Programmdateien analysiert und jeder Überlagerungsteil extrahiert oder abgerufen werden. Bei 306 können die extrahierten oder abgerufenen Überlagerungen analysiert werden, um die gegebenenfalls vorliegenden Eigenschaften zu ermitteln. In Ausführungsformen kann eine statische Analyse durchgeführt werden, d.h., die ausführbaren Programmdateien und zugehörigen Überlagerungen werden geprüft, wenn sie nicht ausgeführt werden. Bei 308 können die relevanten ermittelten Eigenschaften aus den Überlagerungen extrahiert werden. Bei 310 kann ein maschinelles Lernmodell zum Klassifizieren der extrahierten Eigenschaften und Kennzeichnungen verwendet werden, um für jede empfangene ausführbare Programmdatei zu entscheiden, ob sie schädlich oder unschädlich ist, und es kann ein zugehöriges Konfidenzniveau für die Ermittlung festgelegt werden. In der Regel kann das maschinelle Lernmodell ein Klassifikatormodell sein, aber es kann jedes beliebige maschinelle Lernmodell verwendet werden. Beispielsweise können andere überwachte Lernmodelle verwendet werden wie einige Arten von neuronalen Netzwerkmodellen, Bayes-Modelle, Entscheidungsbaummodelle, Support-Vector-Maschinen usw. Bei 312 kann die ermittelte Entscheidung und ein jeweils zugehöriges Konfidenzniveau bereitgestellt werden. In Ausführungsformen können bei 314 andere oder zusätzliche Eigenschaften extrahiert und durch das maschinelle Lernmodell für Klassifizierung 310 verwendet werden.
  • Beispiele für Kategorien von Eigenschaften 400, die extrahiert werden können, sind in 4 dargestellt. In diesem Beispiel können die dargestellten Kategorien der Überlagerungseigenschaften umfassen: grundlegende Überlagerungseigenschaften 402, statistische Inhaltseigenschaften 404, Deep-Content-Eigenschaften 406 und Eigenschaften bezüglich der Anpassung von Dateianalyseverfahren. Grundlegende Überlagerungseigenschaften 404 können einfache Eigenschaften über die Überlagerung umfassen, z.B. das Vorhandensein der Überlagerung (ein boolescher oder Wahr/Falsch-Wert), die Größe der Überlagerung, das Verhältnis zwischen der Größe der Überlagerung und der Größe der gesamten Datei usw. Statistische Inhaltseigenschaften 404 können die Behandlung der Überlagerung als Datenblöcke (z.B. Bytes, Kilobytes usw.) und die Anwendung statistischer Messungen auf diese Blöcke umfassen. Beispielsweise können die Byte-Verteilung der Überlagerung und die Shannon-Entropie der Überlagerung für Byte-Blöcke verwendet werden.
  • Deep-Content-Eigenschaften 406 können den Inhalt der Überlagerung charakterisieren. Genauer gesagt können diese Eigenschaften die Inhaltsart, die die Überlagerung umschließt, und Informationen über diese Inhaltsart widerspiegeln. In der Regel können Deep-Content-Eigenschaften Charakterisierungen des Inhalts der Überlagerung sein, die auf der Grundlage von bestimmten in der Überlagerung gefundenen Daten erzeugt werden. Beispielsweise können die Reputation von URLs, Domains und IP-Adressen, die in der Überlagerung gefunden wurden, Signaturen/Fingerabdrücke, die im Binärcode gefunden wurden, und Textanalysen des lesbaren Inhalts erzeugt werden. Darüber hinaus können andere Techniken zum Extrahieren von Eigenschaften für die Malware-Erkennung die Überlagerung angewendet werden, z.B. eine N-Gramm-Analyse auf Byte-Ebene. Eine Anpassung der Dateianalyseverfahren 408 kann Eigenschaften umfassen, die auf Dateianalyseverfahren beruhen, die modifiziert oder an eine Überlagerungsanalyse angepasst wurden. Beispielsweise kann die Begriffshäufigkeit von „unschädlichen“ und „schädlichen“ N-Grammen in der Datei für die Überlagerungsanalyse angepasst werden durch: 1) Erstellen eines neuen Repository von „unschädlichen“ und „schädlichen“ N-Grammen für den Überlagerungsinhalt ; und 2) Berechnen der Eigenschaften der Begriffshäufigkeit nur für die Überlagerung selbst und nicht für die gesamte Datei. Beispielsweise kann ein N-Gramm eine zusammenhängende Folge von n binären Elementen einer bestimmten Textprobe sein, beispielsweise Bytes, Opcodes, Montageanweisungen, Systemaufruf usw. Alle anderen derartigen Techniken können für eine Überlagerungsanalyse modifiziert oder an sie angepasst werden. Beispiele können Kreuzentropie-/relative Entropieeigenschaften, Bildverarbeitungseigenschaften usw. umfassen.
  • Ein beispielhaftes Blockschaubild eines Computersystems 502, in dem Prozesse, die in den hier beschriebenen Ausführungsformen enthalten sind, implementiert werden können, ist in 5 dargestellt. Computersystem 502 kann mittels eines oder mehrerer programmierter Allzweck-Computersysteme implementiert werden, z.B. eingebettete Prozessoren, Ein-Chip-Systeme (System-on-a-Chip), Personal Computer, Workstations, Serversysteme sowie Minicomputer oder Großrechner, oder in verteilten, vernetzten Computerumgebungen. Computersystem 502 kann einen oder mehrere Prozessoren (CPUs) 502A bis 502N, Eingabe-/Ausgabeschaltkreise 504, Netzwerkadapter 506 und Speicher 508 umfassen. CPUs 502A bis 502N führen Programmanweisungen aus, um die Funktionen der vorliegenden Datenübertragungssysteme und -verfahren auszuführen. Bei den CPUs 502A bis 502N handelt es sich in der Regel um einen oder mehrere Mikroprozessoren, z.B. einen INTEL CORE®-Prozessor. 5 stellt eine Ausführungsform dar, in der Computersystem 502 als ein einzelnes Multiprozessor-Computersystem implementiert ist, in dem mehrere Prozessoren 502A bis 502N Systemressourcen wie Speicher 508, Eingabe-/Ausgabeschaltkreise 504 und Netzwerkadapter 506 gemeinsam nutzen. Die vorliegenden Datenübertragungssysteme und -verfahren umfassen jedoch auch Ausführungsformen, in denen Computersystem 502 als eine Mehrzahl von vernetzten Computersystemen implementiert ist, die Einprozessor-Computersysteme, Multiprozessor-Computersysteme oder eine Mischung davon sein können.
  • Eingabe-/Ausgabeschaltkreise 504 ermöglichen die Eingabe von Daten in das Computersystem 502 bzw. die Ausgabe von Daten aus dem Computersystem 502. Beispielsweise können Eingabe-/Ausgabeschaltkreise Eingabeeinheiten wie Tastaturen, Mäuse, Touchpads, Trackballs, Scanner, Analog-Digital-Wandler usw. umfassen sowie Ausgabeeinheiten wie Videoadapter, Monitore, Drucker usw. und Eingabe-/Ausgabeeinheiten wie Modems usw. Netzwerkadapter 506 verbindet Einheit 500 mit einem Netzwerk 510. Netzwerk 510 kann jedes öffentliche oder proprietäre LAN oder WAN sein, darunter das Internet, ohne darauf beschränkt zu sein.
  • Speicher 508 speichert Programmanweisungen, die von CPU 502 ausgeführt werden, sowie Daten, die von CPU 502 verwendet und verarbeitet werden, um die Funktionen des Computersystems 502 durchzuführen. Speicher 508 kann z.B. elektronische Speichereinheiten umfassen wie Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), programmierbaren Nur-Lese-Speicher (PROM), elektronisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), Flash-Speicher usw., und elektromechanischen Speicher wie Magnetplattenlaufwerke, Bandlaufwerke, optische Plattenlaufwerke usw., die Folgendes verwenden können: eine IDE-Schnittstelle (Integrated Drive Electronics) oder eine Variation oder Verbesserung davon, z.B. Enhanced IDE (EIDE) oder Ultra-Direkt-Speicherzugriff (UDMA), oder eine SCSI-gestützte Schnittstelle (Small Computer System Interface) oder eine Variation oder Verbesserung davon, z.B. Fast SCSI, Wide SCSI, Fast Wide SCSI usw., oder Serial ATA (Serial Advanced Technology Attachment, SATA) oder eine Variation oder Verbesserung davon, oder eine FC-AL-Schnittstelle (Fibre Channel-Arbitrated Loop).
  • Der Inhalt des Speichers 508 kann variieren, je nach der Funktion, für die das Computersystem 502 programmiert ist. In dem in 5 dargestellten Beispiel werden exemplarisch Speicherinhalte gezeigt, die Routinen und Daten für Ausführungsformen der oben beschriebenen Prozesse zeigen. Ein Fachmann würde jedoch erkennen, dass diese Routinen zusammen mit den mit diesen Routinen verbundenen Speicherinhalten möglicherweise nicht auf einem System oder einer Einheit enthalten sind, sondern vielmehr auf der Grundlage bekannter technischer Überlegungen auf eine Mehrzahl von Systemen oder Einheiten verteilt sein können. Die vorliegenden Datenübertragungssysteme und - verfahren können alle derartigen Zusammenstellungen umfassen.
  • In dem in 5 dargestellten Beispiel kann Speicher 508 Überlagerungsextraktionsroutinen 512, Eigenschaftenanalyse- und Eigenschaftenextraktionsroutinen 514, Modelltrainingsroutinen 516, Überlagerungsklassifikationsroutinen 518, Entscheidungsroutinen 520, Modelldaten 522 und Betriebssystem 524 umfassen. Überlagerungsextraktionsroutinen 512 können Softwareroutinen zum Analysieren empfangener ausführbarer Programmdateien und zum Extrahieren oder Abrufen jedes zugehörigen Überlagerungsteils umfassen. Eigenschaftenanalyse- und Eigenschaftenextraktionsroutinen 514 können Softwareroutinen zum Analysieren der extrahierten oder abgerufenen Überlagerungen umfassen, um die möglicherweise vorliegenden Eigenschaften zu ermitteln und die relevanten ermittelten Eigenschaften aus den Überlagerungen zu extrahieren. Modelltrainingsroutinen 516 können Softwareroutinen zum Trainieren eines maschinellen Lernmodells umfassen, so dass es schädliche Beispiele mittels der extrahierten Eigenschaften und der Kennzeichnungen von gekennzeichneten ausführbaren Programmdateien erkennt und solche schädlichen Beispiele von unschädlichen Beispielen unterscheidet. Überlagerungsklassifikationsroutinen 518 können Softwareroutinen zum Klassifizieren der extrahierten Eigenschaften von nicht gekennzeichneten ausführbaren Programmdateien umfassen, um für jede empfangene nicht gekennzeichnete ausführbare Programmdatei zu entscheiden, ob sie schädlich oder unschädlich ist, und können ein zugehöriges Konfidenzniveau für die Ermittlung festlegen. Entscheidungsroutinen 520 können Softwareroutinen umfassen, die die ermittelte Entscheidung bereitstellen oder übermitteln, und können jedes zugehörige Konfidenzniveau bereitstellen oder übermitteln. Modelldaten 522 können sowohl Daten umfassen, die die Struktur des maschinellen Lernmodells definieren, als auch Daten, die das trainierte maschinelle Lernmodell implementieren. Betriebssystem 520 kann die gesamte Systemfunktionalität bereitstellen.
  • Wie in 5 dargestellt, können die vorliegenden Datenübertragungssysteme und -verfahren eine Implementierung auf einem System oder Systemen umfassen, die Multiprozessor-, Multitasking-, Multiprozess- und/oder Multithread-Datenverarbeitung bereitstellen, sowie eine Implementierung auf Systemen, die nur Einprozessor-, Einzelthread-Datenverarbeitung bereitstellen. Bei der Multiprozessor-Datenverarbeitung wird die Datenverarbeitung durch mehr als einen Prozessor durchgeführt. Bei der Multitasking-Datenverarbeitung wird die Datenverarbeitung durch mehr als eine Betriebssystemaufgabe durchgeführt. Eine Aufgabe ist ein Betriebssystemkonzept, das sich auf die Kombination aus einem Programm, das ausgeführt wird, und buchhalterischen Informationen bezieht, die vom Betriebssystem verwendet werden. Immer wenn ein Programm ausgeführt wird, erstellt das Betriebssystem eine neue Aufgabe für dieses Programm. Die Aufgabe ist wie ein Briefumschlag für das Programm, da sie das Programm mit einer Aufgabennummer kennzeichnet und andere buchhalterische Informationen daran anhängt. Viele Betriebssysteme, darunter Linux, UNIX®, OS/2® und Windows®, können viele Aufgaben gleichzeitig ausführen und werden als Multitasking-Betriebssysteme bezeichnet. Multitasking ist die Fähigkeit eines Betriebssystems, mehr als ein ausführbares Programm gleichzeitig auszuführen. Jedes ausführbare Programm läuft in seinem eigenen Adressraum, was bedeutet, dass die ausführbaren Programme ihren Speicher keinesfalls gemeinsam nutzen können. Dies hat Vorteile, denn es ist unmöglich, dass ein Programm die Ausführung eines der anderen auf diesem System laufenden Programme beschädigt. Die Programme können jedoch keine Informationen austauschen, außer durch das Betriebssystem (oder durch Lesen von Dateien, die in dem Dateisystem gespeichert sind). Multiprozess-Datenverarbeitung ist der Multitasking-Datenverarbeitung ähnlich, da die Begriffe Aufgabe und Prozess oft synonym verwendet werden, obwohl bei einigen Betriebssystemen zwischen beiden unterschieden wird.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt auf jeder möglichen technischen Detailstufe der Integration handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) umfassen, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen. Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch ein System zur Ausführung von Anweisungen behalten und speichern kann.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten, Konfigurationsdaten für integrierte Schaltungen oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, so dass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, so dass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, so dass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in den Blöcken angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Zwar wurden spezifische Ausführungsformen der vorliegenden Erfindung beschrieben, der Fachmann wird jedoch verstehen, dass es andere Ausführungsformen gibt, die den beschriebenen Ausführungsformen entsprechen. Dementsprechend ist zu verstehen, dass die Erfindung nicht durch die konkret dargestellten Ausführungsformen, sondern nur durch den Umfang der beigefügten Ansprüche beschränkt werden soll.

Claims (18)

  1. Auf einem Computer implementiertes Verfahren zum Identifizieren von Malware in Computersystemen, das aufweist: Empfangen einer Mehrzahl von ausführbaren Programmdateien, die als schädlich oder unschädlich gekennzeichnet sind; Trainieren eines maschinellen Lernmodells unter Verwendung von Eigenschaften, die aus Überlagerungen extrahiert werden, die jeder der Mehrzahl von empfangenen gekennzeichneten ausführbaren Programmdateien zugehörig sind; Empfangen einer ausführbaren Programmdatei, die nicht gekennzeichnet ist; Ermitteln, ob die empfangene nicht gekennzeichnete ausführbare Programmdatei schädlich oder unschädlich ist, und zwar mittels des trainierten maschinellen Lernmodells auf der Grundlage von Eigenschaften, die aus einer Überlagerung extrahiert wurden, die der empfangenen nicht gekennzeichneten ausführbaren Programmdatei zugehörig ist; und Übertragen von Informationen, die die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich identifizieren, wenn die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich ermittelt wird.
  2. Verfahren nach Anspruch 1, wobei die extrahierten Eigenschaften mindestens eine Eigenschaft umfassen, die aus einer Gruppe ausgewählt wird, die grundlegende Überlagerungseigenschaften aufweist, darunter Vorhandensein der Überlagerung und/oder eine Größe der Überlagerung und/oder ein Verhältnis zwischen der Größe der Überlagerung und einer Größe der ausführbaren Programmdatei und/oder statistische Inhaltseigenschaften von Datenblöcken der ausführbaren Programmdatei und/oder der Überlagerung oder beidem und/oder Deep-Content-Eigenschaften, die einen Inhalt der Überlagerung charakterisieren, darunter Reputation von URLs und/oder Domains und/oder IP-Adressen, die in der Überlagerung gefunden wurden und/oder Signaturen oder Fingerabdrücke, die im Binärcode der Überlagerung gefunden wurden und/oder Textanalyse des lesbaren Inhalts der Überlagerung sowie andere Eigenschaften auf der Grundlage von Techniken zur Dateianalyse, die modifiziert oder an eine Überlagerungsanalyse angepasst wurden, zum Beispiel ein N-Gramm der Überlagerung.
  3. Verfahren nach Anspruch 1, wobei das maschinelle Lernmodell mindestens ein Modell aufweist, das aus einer Gruppe ausgewählt wird, die überwachte Lernmodelle umfasst, darunter ein Klassifikatormodell, ein neuronales Netzwerkmodell, ein Bayes-Modell, ein Entscheidungsbaummodell, ein Support-Vector-Maschinenmodell, sowie unüberwachte Lernmodelle umfasst, darunter ein Clustering-Modell und ein neuronales Netzwerkmodell.
  4. Verfahren nach Anspruch 1, wobei die Eigenschaften durch statische Analyse aus den Überlagerungen extrahiert werden, wobei die ausführbaren Programmdateien und Überlagerungen untersucht werden, wenn sie nicht ausgeführt werden.
  5. Verfahren nach Anspruch 1, wobei die empfangenen ausführbaren Programmdateien von einer Quelle empfangen werden, die einen Webbrowser und/oder eine eMail-Nachricht und/oder ein Dateisystem umfasst.
  6. Verfahren nach Anspruch 1, wobei es sich bei der Überlagerung um eine PE-Datei (Portable Executable) handelt, und das Ermitteln durch Analyse der Überlagerung erfolgt, getrennt von jeglicher Analyse anderer Abschnitte der empfangenen ausführbaren Programmdatei.
  7. System zum Identifizieren von Malware in Computersystemen, wobei das System einen Prozessor, einen Speicher, auf den der Prozessor zugreifen kann, und Anweisungen für Computerprogramme aufweist, die im Speicher gespeichert sind und durch den Prozessor ausführbar sind zum Durchführen von: Empfangen einer Mehrzahl von ausführbaren Programmdateien, die als schädlich oder unschädlich gekennzeichnet sind; Trainieren eines maschinellen Lernmodells unter Verwendung von Eigenschaften, die aus Überlagerungen extrahiert werden, die jeder der Mehrzahl von empfangenen gekennzeichneten ausführbaren Programmdateien zugehörig sind; Empfangen einer ausführbaren Programmdatei, die nicht gekennzeichnet ist; Ermitteln, ob die empfangene nicht gekennzeichnete ausführbare Programmdatei schädlich oder unschädlich ist, und zwar mittels des trainierten maschinellen Lernmodells auf der Grundlage von Eigenschaften, die aus einer Überlagerung extrahiert wurden, die der empfangenen nicht gekennzeichneten ausführbaren Programmdatei zugehörig ist; und Übertragen von Informationen, die die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich identifizieren, wenn die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich ermittelt wird.
  8. System nach Anspruch 7, wobei die extrahierten Eigenschaften mindestens eine Eigenschaft umfassen, die aus einer Gruppe ausgewählt wird, die grundlegende Überlagerungseigenschaften aufweist, darunter Vorhandensein der Überlagerung und/oder eine Größe der Überlagerung und/oder ein Verhältnis zwischen der Größe der Überlagerung und einer Größe der ausführbaren Programmdatei und/oder statistische Inhaltseigenschaften von Datenblöcken der ausführbaren Programmdatei und/oder der Überlagerung oder beidem und/oder Deep-Content-Eigenschaften, die einen Inhalt der Überlagerung charakterisieren, darunter Reputation von URLs und/oder Domains und/oder IP-Adressen, die in der Überlagerung gefunden wurden und/oder Signaturen oder Fingerabdrücke, die im Binärcode der Überlagerung gefunden wurden, und/oder Textanalyse des lesbaren Inhalts der Überlagerung sowie andere Eigenschaften auf der Grundlage von Techniken zur Dateianalyse, die modifiziert oder an eine Überlagerungsanalyse angepasst wurden, zum Beispiel ein N-Gramm der Überlagerung.
  9. System nach Anspruch 7, wobei das maschinelle Lernmodell mindestens ein Modell aufweist, das aus einer Gruppe ausgewählt wird, die überwachte Lernmodelle umfasst, darunter ein Klassifikatormodell, ein neuronales Netzwerkmodell, ein Bayes-Modell, ein Entscheidungsbaummodell, ein Support-Vector-Maschinenmodell, sowie unüberwachte Lernmodelle umfasst, darunter ein Clustering-Modell und ein neuronales Netzwerkmodell.
  10. System nach Anspruch 7, wobei die Eigenschaften durch statische Analyse aus den Überlagerungen extrahiert werden, wobei die ausführbaren Programmdateien und Überlagerungen untersucht werden, wenn sie nicht ausgeführt werden.
  11. System nach Anspruch 7, wobei die empfangenen ausführbaren Programmdateien von einer Quelle empfangen werden, die einen Webbrowser und/oder eine eMail-Nachricht und/oder ein Dateisystem umfasst.
  12. System nach Anspruch 7, wobei es sich bei der Überlagerung um eine PE-Datei (Portable Executable) handelt, und das Ermitteln durch Analyse der Überlagerung erfolgt, getrennt von jeglicher Analyse anderer Abschnitte der empfangenen ausführbaren Programmdatei.
  13. Computerprogrammprodukt zum Identifizieren von Malware in Computersystemen, wobei das Computerprogrammprodukt einen nichtflüchtigen computerlesbaren Speicher aufweist, in den Programmanweisungen eingebettet sind, wobei die Programmanweisungen von einem Computer ausführbar sind, um zu bewirken, dass der Computer ein Verfahren durchführt, das Folgendes aufweist: Empfangen einer Mehrzahl von ausführbaren Programmdateien, die als schädlich oder unschädlich gekennzeichnet sind; Trainieren eines maschinellen Lernmodells unter Verwendung von Eigenschaften, die aus Überlagerungen extrahiert werden, die jeder der Mehrzahl von empfangenen gekennzeichneten ausführbaren Programmdateien zugehörig sind; Empfangen einer ausführbaren Programmdatei, die nicht gekennzeichnet ist; Ermitteln, ob die empfangene nicht gekennzeichnete ausführbare Programmdatei schädlich oder unschädlich ist, und zwar mittels des trainierten maschinellen Lernmodells auf der Grundlage von Eigenschaften, die aus einer Überlagerung extrahiert wurden, die der empfangenen nicht gekennzeichneten ausführbaren Programmdatei zugehörig ist; und Übertragen von Informationen, die die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich identifizieren, wenn die empfangene nicht gekennzeichnete ausführbare Programmdatei als schädlich ermittelt wird.
  14. Computerprogrammprodukt nach Anspruch 13, wobei die extrahierten Eigenschaften mindestens eine Eigenschaft umfassen, die aus einer Gruppe ausgewählt wird, die grundlegende Überlagerungseigenschaften aufweist, darunter Vorhandensein der Überlagerung und/oder eine Größe der Überlagerung und/oder ein Verhältnis zwischen der Größe der Überlagerung und einer Größe der ausführbaren Programmdatei und/oder statistische Inhaltseigenschaften von Datenblöcken der ausführbaren Programmdatei und/oder der Überlagerung oder beidem und/oder Deep-Content-Eigenschaften, die einen Inhalt der Überlagerung charakterisieren, darunter Reputation von URLs und/oder Domains und IP-Adressen, die in der Überlagerung gefunden wurden und/oder Signaturen oder Fingerabdrücke, die im Binärcode der Überlagerung gefunden wurden, und/oder Textanalyse des lesbaren Inhalts der Überlagerung sowie andere Eigenschaften auf der Grundlage von Techniken zur Dateianalyse, die modifiziert oder an eine Überlagerungsanalyse angepasst wurden, zum Beispiel ein N-Gramm der Überlagerung.
  15. Computerprogrammprodukt nach Anspruch 13, wobei das maschinelle Lernmodell mindestens ein Modell aufweist, das aus einer Gruppe ausgewählt wird, die überwachte Lernmodelle umfasst, darunter ein Klassifikatormodell, ein neuronales Netzwerkmodell, ein Bayes-Modell, ein Entscheidungsbaummodell, ein Support-Vector-Maschinenmodell, sowie unüberwachte Lernmodelle umfasst, darunter ein Clustering-Modell und ein neuronales Netzwerkmodell.
  16. Computerprogrammprodukt nach Anspruch 13, wobei die Eigenschaften durch statische Analyse aus den Überlagerungen extrahiert werden, wobei die ausführbaren Programmdateien und Überlagerungen untersucht werden, wenn sie nicht ausgeführt werden.
  17. Computerprogrammprodukt nach Anspruch 13, wobei die empfangenen ausführbaren Programmdateien von einer Quelle empfangen werden, die einen Webbrowser und/oder eine eMail-Nachricht und/oder ein Dateisystem.
  18. Computerprogrammprodukt nach Anspruch 13, wobei es sich bei der Überlagerung um eine PE-Datei (Portable Executable) handelt, und das Ermitteln durch Analyse der Überlagerung erfolgt, getrennt von jeglicher Analyse anderer Abschnitte der empfangenen ausführbaren Programmdatei.
DE112019001121.9T 2018-05-15 2019-04-24 Auf einem computer implementiertes verfahren zum identifizieren von malware und system hierfür Active DE112019001121B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/979,496 2018-05-15
US15/979,496 US10846403B2 (en) 2018-05-15 2018-05-15 Detecting malicious executable files by performing static analysis on executable files' overlay
PCT/IB2019/053379 WO2019220241A1 (en) 2018-05-15 2019-04-24 Malware detection

Publications (2)

Publication Number Publication Date
DE112019001121T5 true DE112019001121T5 (de) 2020-11-19
DE112019001121B4 DE112019001121B4 (de) 2022-08-04

Family

ID=68533620

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112019001121.9T Active DE112019001121B4 (de) 2018-05-15 2019-04-24 Auf einem computer implementiertes verfahren zum identifizieren von malware und system hierfür

Country Status (6)

Country Link
US (1) US10846403B2 (de)
JP (1) JP7300804B2 (de)
CN (1) CN112041815B (de)
DE (1) DE112019001121B4 (de)
GB (1) GB2586195A (de)
WO (1) WO2019220241A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11636208B2 (en) * 2019-07-19 2023-04-25 Palo Alto Networks, Inc. Generating models for performing inline malware detection
US11374946B2 (en) * 2019-07-19 2022-06-28 Palo Alto Networks, Inc. Inline malware detection
CN110917626A (zh) * 2019-11-29 2020-03-27 武汉极意网络科技有限公司 基于机器学习的游戏盗量监督方法和装置
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
CN111444507B (zh) * 2020-06-15 2020-11-03 鹏城实验室 加壳软件是否误报的判定方法、装置、设备及存储介质
CN113837210A (zh) * 2020-06-23 2021-12-24 腾讯科技(深圳)有限公司 小程序分类方法、装置、设备及计算机可读存储介质
US11743286B2 (en) * 2021-01-29 2023-08-29 Palo Alto Networks, Inc. Combination rule mining for malware signature generation
CN113516162A (zh) * 2021-04-26 2021-10-19 湖南大学 一种基于OCSVM和K-means算法的工控***流量异常检测方法与***
CN115080974B (zh) * 2022-08-17 2022-11-08 杭州安恒信息技术股份有限公司 一种恶意pe文件检测方法、装置、设备及介质
CN116305172B (zh) * 2023-05-23 2023-08-04 北京安天网络安全技术有限公司 OneNote文档的检测方法、装置、介质及设备
US12013945B1 (en) 2023-10-27 2024-06-18 Morgan Stanley Services Group Inc. Fraudulent overlay detection in electronic documents

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7487544B2 (en) 2001-07-30 2009-02-03 The Trustees Of Columbia University In The City Of New York System and methods for detection of new malicious executables
US8479174B2 (en) * 2006-04-05 2013-07-02 Prevx Limited Method, computer program and computer for analyzing an executable computer file
US8341744B1 (en) * 2006-12-29 2012-12-25 Symantec Corporation Real-time behavioral blocking of overlay-type identity stealers
US20100146589A1 (en) * 2007-12-21 2010-06-10 Drivesentry Inc. System and method to secure a computer system by selective control of write access to a data storage medium
IL191744A0 (en) 2008-05-27 2009-02-11 Yuval Elovici Unknown malcode detection using classifiers with optimal training sets
US8181251B2 (en) * 2008-12-18 2012-05-15 Symantec Corporation Methods and systems for detecting malware
US8356354B2 (en) 2009-11-23 2013-01-15 Kaspersky Lab, Zao Silent-mode signature testing in anti-malware processing
RU2487405C1 (ru) * 2011-11-24 2013-07-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ для исправления антивирусных записей
US9292688B2 (en) 2012-09-26 2016-03-22 Northrop Grumman Systems Corporation System and method for automated machine-learning, zero-day malware detection
US9613210B1 (en) * 2013-07-30 2017-04-04 Palo Alto Networks, Inc. Evaluating malware in a virtual machine using dynamic patching
RU2635271C2 (ru) * 2015-03-31 2017-11-09 Закрытое акционерное общество "Лаборатория Касперского" Способ категоризации сборок и зависимых образов
JP2016206950A (ja) * 2015-04-22 2016-12-08 日本電信電話株式会社 マルウェア判定のための精査教師データ出力装置、マルウェア判定システム、マルウェア判定方法およびマルウェア判定のための精査教師データ出力プログラム
US10599844B2 (en) 2015-05-12 2020-03-24 Webroot, Inc. Automatic threat detection of executable files based on static data analysis
US9367686B1 (en) * 2015-07-21 2016-06-14 AO Kaspersky Lab System and method for antivirus checking of native images of software assemblies
WO2017126786A1 (ko) 2016-01-19 2017-07-27 삼성전자 주식회사 악성 코드 분석을 위한 전자 장치 및 이의 방법
RU2625053C1 (ru) * 2016-07-29 2017-07-11 Акционерное общество "Лаборатория Касперского" Устранение ложных срабатываний антивирусных записей
EP3635603A4 (de) * 2017-05-30 2021-03-03 Cyemptive Technologies, Inc. Echtzeitdetektion und -schutz vor malware und steganographie in einem kernmodus
CN107992745A (zh) * 2017-11-29 2018-05-04 暨南大学 一种基于安卓平台的界面劫持应对方法

Also Published As

Publication number Publication date
CN112041815B (zh) 2024-06-11
JP2021523434A (ja) 2021-09-02
WO2019220241A1 (en) 2019-11-21
GB202018989D0 (en) 2021-01-13
US20190354682A1 (en) 2019-11-21
US10846403B2 (en) 2020-11-24
CN112041815A (zh) 2020-12-04
DE112019001121B4 (de) 2022-08-04
GB2586195A (en) 2021-02-10
JP7300804B2 (ja) 2023-06-30

Similar Documents

Publication Publication Date Title
DE112019001121T5 (de) Erkennen von malware
DE112011101831B4 (de) Schutz vor websiteübergreifenden Scripting-Attacken
DE112018002984T5 (de) Konformitätsbewusste Laufzeiterzeugung auf Grundlage von Anwendungsmustern und Risikobeurteilung
DE202011111121U1 (de) System zum Erfassen komplexer Schadsoftware
DE112018004660T5 (de) Verwenden von kommentaren zum bereitstellen von optimierungen
DE102017106016A1 (de) System und Verfahren zur Erkennung von Befehlssequenzen von Interesse
DE102013203854A1 (de) Erfassen von bösartigem Computercode in einem ausführenden Programmmodul
DE112019003431T5 (de) Regelerzeugung mithilfe von künstlicher intelligenz
DE112019005729T5 (de) Erkennen von sicherheitsrisiken in zusammenhang mit einer software-komponente
DE112012000526T5 (de) Malware - Erkennung
DE112010003979T5 (de) System und Verfahren für das statische Erkennen und Kategorisieren von Informationsfluss-Herabstufungseinrichtungen
DE112017000937B4 (de) Persistente Datenflusserkennungen, die verteilte Anwendungen ermöglichen
DE102016204698A1 (de) Verbessern des Erkennens von Steganographie am Perimeter
DE112017004962T5 (de) Steuerflussintegrität
US20240045971A1 (en) Scalable source code vulnerability remediation
DE112021001639T5 (de) Schutz von computeranlagen vor bösartigen angriffen
DE112021004808T5 (de) Erkennen von malware durch analyse verteilter telemetriedaten
DE102016102945A1 (de) Code-Analyse zum Bereitstellen von Datenschutz in ETL-Systemen
Alrabaee et al. On leveraging coding habits for effective binary authorship attribution
EP2362321A1 (de) Verfahren und System zum Erkennen einer Schadsoftware
DE112021000455T5 (de) Deep packet analyse
DE102016204594A1 (de) Abgleichen von datenquellen ohne tags mit datenanalyseanwendungen ohne tags
DE112018004284T5 (de) Dynamisches neuzusammenstellen von patch-gruppen unter verwendung von stream-clustering
DE112021002291T5 (de) Verringern von ressourcenkosten bei visueller erkennung
DE112020003888T5 (de) De-identifizierungscode für organisationsübergreifendes fehlerbehebungswissen

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final