DE202013102179U1 - System zu detektieren von durch eine virtuelle Maschine ausgeführtem Schadcode - Google Patents

System zu detektieren von durch eine virtuelle Maschine ausgeführtem Schadcode Download PDF

Info

Publication number
DE202013102179U1
DE202013102179U1 DE201320102179 DE202013102179U DE202013102179U1 DE 202013102179 U1 DE202013102179 U1 DE 202013102179U1 DE 201320102179 DE201320102179 DE 201320102179 DE 202013102179 U DE202013102179 U DE 202013102179U DE 202013102179 U1 DE202013102179 U1 DE 202013102179U1
Authority
DE
Germany
Prior art keywords
virtual machine
program
computer system
program instructions
program error
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.)
Expired - Lifetime
Application number
DE201320102179
Other languages
English (en)
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.)
Kaspersky Lab AO
Original Assignee
Kaspersky Lab AO
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
Priority claimed from RU2012156443 external-priority
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of DE202013102179U1 publication Critical patent/DE202013102179U1/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Abstract

Automatisiertes Computersystem zum Schutz vor einer schädlichen Menge von Programmanweisungen, die durch eine virtuelle Maschine eines Prozesses ausführbar sind, wobei die virtuelle Maschine des Prozesses Programmanweisungen umfasst, die auf einem Computersystem ausführbar sind, das eine Hardwareplattform und ein Betriebssystem aufweist, gekennzeichnet durch: ein Programmfehler-Überwachungsmodul in der virtuellen Maschine des Prozesses, das durch Ergänzen der Programmanweisungen der virtuellen Maschine des Prozesses durch einen automatisierten Ergänzungsprozess, der auf dem Computersystem ausgeführt wird, eingerichtet wird, wobei die virtuelle Maschine des Prozesses dafür ausgelegt ist, die betreffende Menge von Programmanweisungen auszuführen; wobei das Programmfehler-Überwachungsmodul dafür ausgelegt ist, einen als Ergebnis der Ausführung der betreffenden Menge von Programmanweisungen auftretenden Programmfehler zu detektieren, wobei der Programmfehler ein Auftreten eines Ereignisses repräsentiert, von dem bestimmt wurde, dass es Potential zum Verstoßen gegen eine vordefinierte Sicherheitsrichtlinie aufweist; wobei das Programmfehler-Überwachungsmodul dafür ausgelegt ist, als Reaktion auf eine Detektion eines Auftretens des Programmfehlers Kontextinformationen aus der virtuellen Maschine des Prozesses zu sammeln, wobei die Kontextinformationen das Auftreten des Programmfehlers umgebende Umstände repräsentieren; wobei das Programmfehler-Überwachungsmodul dafür ausgelegt ist, die Kontextinformationen bereitzustellen, um einer Analyse auf eine Anwesenheit der schädlichen Menge von Programmanweisungen unterzogen zu werden, und auf der Basis eines Ergebnisses der Analyse zu bestimmen, ob weitere Ausführung der betreffenden Menge von Programmanweisungen durch die virtuelle Maschine des Prozesses zu gestatten ist.

Description

  • Prioritätsanspruch
  • Die vorliegende Anmeldung beansprucht den Nutzen der Patentanmeldung Nr. 2012156443 der russischen Föderation, eingereicht am 25. Dezember 2012, deren Offenbarung hiermit durch Bezugnahme aufgenommen wird.
  • Technisches Gebiet
  • Die Erfindung betrifft allgemein die Informationsverarbeitung und -sicherheit und insbesondere ein System zum Detektieren von Schadsoftware, deren Code durch eine virtuelle Maschine ausgeführt wird.
  • Stand der Technik
  • Heutzutage wird eine dramatische Zunahme der Anzahl von Computerbedrohungen beobachtet, deren Programmcode durch eine virtuelle Maschine (zum Beispiel Java Virtual Machine, Common Language Runtime, ActionScript Virtual Machine) ausgeführt wird. Exploits sind die gefährlichsten dieser Bedrohungen. Ein Exploit ist ein Fragment eines Programmcodes oder einer Sequenz von Befehlen, das Anfälligkeiten in Software benutzt und zum Attackieren eines Computersystems verwendet wird. Die Gefahr ist nicht in den Exploits selbst begründet, sondern in den Nutzinformationen, die sie mit sich führen. Die Nutzinformationen eines Exploits sind eine vom Angreifer eingesetzte Funktionalität, die, wenn eine Anfälligkeit auf einem attackierten System ausgenutzt wird, zu unbefugter Aktivierung der Funktionalität führt. Als ein Beispiel für solche Funktionalität können Downloads von Schadsoftware angeführt werden. Exploits können entweder unabhängig benutzt werden, um Computersystemsicherheit zu prüfen, oder zusammen mit Schadsoftware.
  • Von der großen Vielfalt von Exploits sollte denen besondere Aufmerksamkeit geschenkt werden, die eine virtuelle Maschine zur Ausführung ihres Codes erfordern. Diese Art von Exploits wird am häufigsten für Attacken benutzt und ist die gefährlichste, da sie schwer zu detektieren ist.
  • Es gibt zwei Hauptansätze, um dieser Art von Bedrohung entgegenzuwirken. Bei dem ersten Verfahren wird die von dem Exploit benutzte Anfälligkeit beseitigt. Bei dem zweiten Verfahren werden spezielle Werkzeuge zum Detektieren der Anwesenheit von Exploits verwendet und ihre Aktivität gestoppt. Solche Werkzeuge können entweder in die Software selbst eingebaut (zum Beispiel das Sicherheitsmodell der Java Virtual Machine) oder extern bereitgestellt werden. Der erste Ansatz ist zuverlässig und wendet sich an eine Grundursache des Problems, hat aber zwei signifikante Nachteile. Erstens vergeht ein relativ großer Zeitraum von dem Moment, an dem die Anfälligkeit gefunden wird, zu dem Moment, an dem die korrigierte Softwareversion ausgegeben wird. Die Benutzer des anfälligen Produkts bleiben während dieses Zeitraums ungeschützt. Ein anderer Nachteil besteht darin, dass der erste Ansatz keinerlei Schutz vor den sogenannten „Zero Day”-Anfälligkeiten bereitstellt, d. h. vor Bedrohungen, die einen Fehler oder eine Anfälligkeit in der Anwendung oder dem Betriebssystem benutzen und unmittelbar nach dem Finden der Anfälligkeit auftreten, aber bevor das relevante Upgrade ausgegeben wird.
  • Bei dem zweiten Ansatz werden diese Nachteile vermieden, aber seine Zuverlässigkeit hängt von der Qualität seiner technischen Realisierung ab, und es sollte beachtet werden, dass solche Schutzwerkzeuge selbst anfällig sein können. Die am weitesten verbreiteten Lösungen, die diesen Ansatz benutzen, sind Detektion von Exploits unter Verwendung von heuristischen Regeln und Signaturanalyse (z. B. Analyse, ob der analysierte Code mit Proben des Codes bekannter Computerbedrohungen identisch ist) und eingebaute Sicherheitswerkzeuge virtueller Maschinen. Die Verwendung von Signaturen ist im Allgemeinen für die Detektion bekannter Exploits geeignet. Wenn der attackierende Code jedoch modifiziert wird, erweist sich diese Lösung als nutzlos.
  • Die Implementierung der heuristischen Analyse weist diese Unzulänglichkeiten nicht auf, kann aber ineffizient sein, falls eine aufwändigere Codemodifikation (z. B. Verschlüsselung/Verschleierung) besteht, falls eine Änderung des Algorithmus des Schadcodes besteht oder falls Techniken zur Vermeidung von Codeemulation eingesetzt werden.
  • Eine virtuelle Maschine ist eine auf Software basierende Datenverarbeitungsumgebung, die auf einer Hardwareplattform und einem Betriebssystem eines Computersystems läuft. Die virtuelle Maschine stellt einen Grad der Abstraktion her, um Unabhängigkeit von der Hardwareplattform, auf der die virtuelle Maschine tatsächlich ausgeführt wird, zu erreichen. Virtuelle Maschinen besitzen ihre eigenen eingebauten Sicherheitsmodelle. Besondere Aufmerksamkeit sollte dem Sicherheitsmodell der Java Virtual Machine (JVM) geschenkt werden, die vier Komponenten aufweist: einen Klassendateiverifizierer, einen Klassenlader, einen Sicherheitsmanager und die JVM-Architektur selbst. Da Java-Bytecode interpretiert werden kann, ist es möglich, Array-Indizes zu steuern, wodurch es möglich wird, Pufferüberläufe zu vermeiden, die die typischste und gefährlichste Art von Softwareausführungsfehler darstellen. Außerdem gibt es eingebaute Mechanismen zum Verarbeiten von Programmfehlern zur Ermöglichung einer effizienten Lösung von entstehenden Konflikten, während ein Trash-Sammler unbenutzten Speicher säubert und verhindert, dass der Angreifer die „Trash”-Speicherblöcke, die nützliche Informationen enthalten können, sieht.
  • Der Sicherheitsmanager, das wichtigste Element in dem Sicherheitsmodell für JVM, ist eine Komponente, die Anwendungen gemäß der eingerichteten Sicherheitsrichtlinie Rechte gewährt. Wenn eine Situation auftritt, in der eine Anwendung versucht, eine privilegierte Operation auszuführen, prüft der Sicherheitsmanager die Rechte der Anwendung und bestimmt die Rechtmäßigkeit eines solchen Verhaltens. Der Vorgabe-Sicherheitsmanager ist der Java-Class-java.lang.SecurityManager, der mehrere Methoden zum Prüfen von für die Sicherheitsrichtlinie kritischen Operationen umfasst.
  • In letzter Zeit hat die Anzahl gezielter Attacken auf JVM unter Verwendung von Exploits drastisch zugenommen. Wie diese Attacken gezeigt haben, weist das von den Erfindern von Java vorgeschlagene Sicherheitsmodell in der Praxis in seiner Implementierung ernste Unzulänglichkeiten auf. Diese Unzulänglichkeiten werden nun aktiv von Angreifern bei ihren Attacken benutzt.
  • Angesichts des Obigen weisen bekannte Ansätze zur Detektion von Exploits entweder Begrenzungen ihrer Anwendung auf oder Unzulänglichkeiten, die ein Sicherheitsrisiko erzeugen und im Allgemeinen keinen angemessenen Schutz bereitstellen. Es wird deshalb eine praktische Lösung benötigt, die sich an mindestens bestimmte dieser Probleme wendet und die potentiell sogar noch größere Anwendbarkeit aufweist.
  • Kurzfassung der Erfindung
  • Ein Aspekt der Erfindung betrifft ein automatisiertes computerimplementiertes Verfahren zum Schutz vor einer schädlichen Menge von Programmanweisungen, die durch eine virtuelle Maschine des Prozesses ausführbar sind. Die virtuelle Maschine des Prozesses umfasst Programmanweisungen, die auf einem Computersystem ausführbar sind, das eine Hardwareplattform und ein Betriebssystem aufweist. Das Verfahren umfasst:
    • • Ergänzen der Programmanweisungen der virtuellen Maschine des Prozesses durch einen auf dem Computersystem ausgeführten automatisierten Ergänzungsprozess, um ein Programmfehler-Überwachungsmodul in der virtuellen Maschine des Prozesses einzurichten;
    • • Ausführen der betreffenden Menge von Programmanweisungen über die virtuelle Maschine des Prozesses;
    • • Detektieren eines sich als Ergebnis der Ausführung der betreffenden Menge von Programmanweisungen ergebenden Programmfehlers durch das Programmfehler-Überwachungsmodul, wobei der Programmfehler ein Auftreten eines Ereignisses repräsentiert, von dem bestimmt wird, dass es Potential zum Verstoß gegen eine vordefinierte Sicherheitsrichtlinie aufweist;
    • • als Reaktion auf eine Detektion eines Auftretens des Programmfehlers: Sammeln von Kontextinformationen aus der virtuellen Maschine des Prozesses durch das Programmfehler-Überwachungsmodul, wobei die Kontextinformationen Umstände repräsentieren, die das Auftreten des Programmfehlers umgeben;
    • • Bereitstellen der Kontextinformationen durch das Programmfehler-Überwachungsmodul, um einer Analyse auf eine Anwesenheit der schädlichen Menge von Programmanweisungen unterzogen zu werden; und
    • • Bestimmen durch das Programmfehler-Überwachungsmodul auf der Basis eines Ergebnisses der Analyse, ob weitere Ausführung der betreffenden Menge von Programmanweisungen durch die virtuelle Maschine des Prozesses zu gestatten ist.
  • In einem verwandten Aspekt der Erfindung umfasst ein System zum Schutz vor schädlicher Funktionalität einer betreffenden Menge von Programmanweisungen ein Computersystem, das eine Hardwareplattform und ein auf der Hardwareplattform ausführbares Betriebssystem aufweist. Ein Modul der virtuellen Maschine des Prozesses ist auf dem Computersystem ausführbar und bildet, wenn es ausgeführt wird, eine virtuelle Ausführungsumgebung, in der die betreffende Menge von Programmanweisungen ausführbar ist. Auf dem Computersystem ist ein Steuermodul ausführbar, das die virtuelle Maschine des Prozesses ergänzt, um darin ein Programmfehler-Überwachungsmodul einzufügen. Das Programmfehler-Überwachungsmodul ist dafür ausgelegt, einen Programmfehler zu detektieren, der als Ergebnis der Ausführung der betreffenden Menge von Programmanweisungen auftritt, wobei der Programmfehler ein Auftreten eines Ereignisses repräsentiert, von dem bestimmt wird, dass es Potential zum Verstoß gegen eine vordefinierte Sicherheitsrichtlinie aufweist. Als Reaktion auf eine Detektion eines Auftretens des Programmfehlers sammelt das Programmfehler-Überwachungsmodul Kontextinformationen, die Umstände repräsentieren, die das Auftreten des Programmfehlers umgeben. Die Kontextinformationen werden bereitgestellt, um Analyse auf eine Anwesenheit des schädlichen Codes unterzogen zu werden (z. B. einem Analysemodul, das relativ zu dem Computersystem lokal oder entfernt ausgeführt werden kann. Das Programmfehler-Überwachungsmodul bestimmt auf der Basis eines Ergebnisses der Analyse, ob weitere Ausführung der betreffenden Menge von Programmanweisungen durch die virtuelle Maschine des Prozesses zu gestatten ist.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung kann bei Durchsicht der folgenden ausführlichen Beschreibung verschiedener Ausführungsformen der Erfindung in Verbindung mit den beigefügten Zeichnungen vollständiger verständlich werden. Es zeigen:
  • 1 ein Flussdiagramm eines Verfahrens zum Detektieren von Bedrohungen in einem durch eine virtuelle Maschine auszuführenden Stück Softwarecode gemäß einer Ausführungsform der Erfindung.
  • 2 ein Blockdiagramm eines Beispiels für ein System zum Detektieren von Bedrohungen, die durch ein durch eine virtuelle Maschine auszuführendes Stück Softwarecode dargestellt werden, gemäß einer Ausführungsform der Erfindung.
  • 3 ein Blockdiagramm einer beispielhaften Ausführungsform eines Systems zum Detektieren von Bedrohungen in einem Stück Code, das durch eine virtuelle Maschine ausgeführt wird, die eine Ergänzung der Java Virtual Machine (JVM) ist.
  • 4 eine Auflistung eines Aufrufstapels der Java Virtual Machine, woraus Informationen zur Analyse als Teil des Betriebs der Ausführungsform von 3 gesammelt werden.
  • 5 ein Blockdiagramm eines Vielzweck-Computersystems, worauf Aspekte der Erfindung implementiert werden können.
  • Obwohl vielfältige Modifikationen und alternative Formen der Erfindung möglich sind, wurden Einzelheiten dieser anhand von Beispielen in der Zeichnung gezeigt und werden ausführlich beschrieben. Es versteht sich jedoch, dass die Absicht nicht darin besteht, die Erfindung auf die beschriebenen konkreten Ausführungsformen zu beschränken. Stattdessen soll die Erfindung alle Modifikationen, Äquivalente und Alternativen abdecken, die in den Gedanken und Schutzumfang der Erfindung fallen, der durch die angefügten Ansprüche definiert wird.
  • Ausführliche Beschreibung der bevorzugten Ausführungsformen
  • Bei einer praktischen Realisierung wird das System der Erfindung unter Verwendung von Computermaschinen implementiert bzw. ausgestaltet. Das computerimplementierte System kann in einer physischen Maschine implementiert werden oder kann auf mehrere physische Maschinen verteilt werden, wie etwa nach Rolle oder Funktion oder nach Prozess-Thread im Fall eines verteilten Cloud-Datenverarbeitungsmodells. Bei verschiedenen Ausführungsformen können Aspekte der Erfindung dafür ausgelegt werden, in virtuellen Maschinen des Systems zu laufen, die ihrerseits auf einer oder mehreren physischen Maschinen ausgeführt werden. Für Fachleute ist erkennbar, dass Merkmale der Erfindung durch vielfältige verschiedene geeignete Maschinenimplementierungen realisiert werden können.
  • Um ein schädliches Stück Code zu detektieren und seine Ausführung durch eine virtuelle Maschine zu blockieren, betreffen Aspekte der Erfindung das Prüfen der virtuellen Maschine und des Codes, den sie interpretiert. Diese Aspekte der Erfindung betreffen virtuelle Maschinen des Prozesses, die auch als virtuelle Maschinen der Anwendung bekannt sind, die dazu dienen, eine Anwendungs-Ausführungsumgebung bereitzustellen, wie etwa eine Java Virtual Machine (JVM) oder die Common Language Runtime (CLR). Bei einer der Weisen, auf die dies gemäß einer Art von Ausführungsform ermöglicht wird, wird der Programmcode der virtuellen Maschine selbst ergänzt.
  • 1 zeigt einen Algorithmus zum Detektieren einer Anwesenheit eines schädlichen Stücks Code, wie etwa eines gefährdenden Programms, Applets oder dergleichen oder eines infizierten Teils eines ansonsten gutartigen Programms in einer betreffenden Menge von durch eine virtuelle Maschine ausführbaren Programmanweisungen. Im Block 101 wird der Programmcode der virtuellen Maschine um einen automatisierten Ergänzungsprozess ergänzt. Gemäß einer Ausführungsform wird der Ergänzungsprozess auf demselben Computersystem ausgeführt, auf dem die virtuelle Maschine ausgeführt wird. Der Ergänzungsprozess fügt einen spezialisierten Ergänzungscode in die Programmanweisungen der virtuellen Maschine ein. Dieser Ergänzungscode fügt Funktionalität zum Prüfen der Ausführung des Codes durch die virtuelle Maschine, zum Verfolgen von Ereignissen der virtuellen Maschine, zum Stoppen des Betriebs der virtuellen Maschine, zum Starten oder Neustarten des Betriebs usw. hinzu.
  • Der Ergänzungscode ist bei dieser Ausführungsform an die spezifische Art der virtuellen Maschine, die er ergänzt, angepasst.
  • Bei 102 werden die Programmfehler der virtuellen Maschine verfolgt. Ereignisse, die im Verlauf des Betriebs der virtuellen Maschine während der Ausführung des betreffenden Programmcodes auftreten, werden bei 103 geprüft, um zu bestimmen, ob sie einen Programmfehler darstellen; wenn ein durch die virtuelle Maschine verursachtes Ereignis ein Programmfehler ist, wird der Betrieb der virtuellen Maschine bei 104 suspendiert. Der Ausdruck Programmfehler (exceptions) bezieht sich im vorliegenden Kontext auf kritische Ereignisse, die das Potential aufweisen, Verstöße gegen die durch die Sicherheitsrichtlinie gesetzten Regeln zu verursachen. Die geltende Sicherheitsrichtlinie kann durch eine beliebige geeignete Technik definiert werden, z. B. in dem Ergänzungscode oder an einer anderen Stelle in der Konfigurationsdatei bzw. den Konfigurationsdateien einer Sicherheitsanwendung, eines Betriebssystems usw.
  • Während die virtuelle Maschine gestoppt ist, werden Informationen über die den Programmfehler umgebenden Umstände bei 105 gesammelt und dann bei 106 analysiert. Bei verschiedenen Ausführungsformen umfassen die den Programmfehler umgebenden Umstände Posten wie etwa wie und durch was der Programmfehler verursacht wurde, was dem Auftreten des zu dem Programmfehler führenden kritischen Ereignis vorausging usw. Bei einer Ausführungsform wird die Analyse der den Programmfehler umgebenden Umstände durch Vergleich der Informationen, die die den Programmfehler umgebenden Umstände angeben, bei 105 mit einer Vorlage (z. B. Vergleich des dem Programmfehler vorausgehenden Aufruf-Stapels mit dem in der Vorlage aufgelisteten Aufruf-Stapel) durchgeführt. Die Analyse wird mit dem Zweck durchgeführt, eine Bedrohung in dem Code, der den Programmfehler verursacht hat, zu detektieren. Die Entscheidung 107 prüft, ob der Code eine Bedrohung enthält, und wenn dies der Fall ist, wird die Ausführung des Codes durch die virtuelle Maschine bei 108 beendet; wenn der Code dagegen sicher ist, wird der virtuellen Maschine erlaubt, den Betrieb fortzusetzen. Folglich wird bei 109 die virtuelle Maschine wieder gestartet.
  • 2 ist ein Diagramm auf hoher Ebene, das eine virtuelle Maschine und einen zu ihr hinzugefügten Schutzmechanismus gemäß einer Ausführungsform zeigt, die ein spezialisiertes Überwachungs-Modul umfasst, das wirksam mit einem Analysemodul gekoppelt ist. Der hier verwendete Ausdruck Modul bedeutet eine Einrichtung, Komponente oder Anordnung von Komponenten der realen Welt, die unter Verwendung von Hardware implementiert werden, wie etwa durch einen ASIC (anwendungsspezifischer integrierter Schaltkreis) oder ein FPGA (Field-Programmable Gate Array), oder als Kombination von Hardware und Software, wie etwa durch ein mikroprozessorgestütztes System und eine Menge von Programmanweisungen, die in einem nichtflüchtigen Speichermedium gespeichert sind, die das mikroprozessorgestützte System dafür konfigurieren, die konkrete Funktionalität zu implementieren, die (während sie ausgeführt wird) das Mikroprozessorsystem in eine Spezialeinrichtung zum Ausführen der angegebenen Funktionalität des Moduls transformieren. Ein Modul kann auch als Kombination von Beidem implementiert werden, wobei bestimmte Funktionen allein durch Hardware und andere Funktionen durch eine Kombination von Hardware und Software ermöglicht werden. Bei bestimmten Implementierungen kann mindestens ein Teil und in bestimmen Fällen alles eines Moduls auf dem Prozessor bzw. den Prozessoren eines oder mehrerer Computer ausgeführt werden, die ein Betriebssystem, Systemprogramme und Anwendungsprogramme ausführen, während außerdem das Modul unter Verwendung von Multitasking, Multithreading, gegebenenfalls verteilter Verarbeitung (z. B. Cloud) oder anderer solcher Techniken implementiert wird. Folglich kann jedes Modul in vielfältigen geeigneten Konfigurationen realisiert werden und sollte im Allgemeinen nicht auf irgendeine hier exemplifizierte konkrete Implementierung beschränkt werden, wenn nicht solche Beschränkungen ausdrücklich erwähnt werden oder klar aus dem Kontext folgen, in dem der Ausdruck erscheint. Tatsächlich kann die virtuelle Maschine selbst als ein Modul betrachtet werden.
  • Gemäß der in 2 abgebildeten Ausführungsform ist das Überwachungsmodul 201 in den Code (d. h. die Programmanweisungen) der virtuellen Maschine 203 integriert. Das Überwachungsmodul 201 verfolgt Programmfehler, die während des Betriebs der virtuellen Maschine 203 auftreten, während sie den Code einer betreffenden Menge von Programmanweisungen ausführt, und wenn Programmfehler auftreten, sammelt das Überwachungsmodul 201 Programmfehler-Kontextinformationen über die den Programmfehler umgebenden Umstände und übermittelt die gesammelten Informationen dann zu dem Analysemodul 202. Das Analysemodul 202 ist bei dieser Ausführungsform als von der virtuellen Maschine 203 verschiedenes Modul implementiert. Das Analysemodul 202 kann bei verschiedenen Ausführungsformen als ein Anwendungsprogramm (oder Komponente davon) realisiert werden, das nativ in dem Betriebssystem läuft, in einer getrennten virtuellen Ausführungsumgebung, auf einem entfernten Computersystem (z. B. Sicherheitsserver) oder auf verteilte Weise auf mehreren verschiedenen Computersystemen, z. B. in einem Cloud-Datenverarbeitungsmodell. Das Analysemodul 202 vergleicht den empfangenen Kontext mit einer Menge von einer oder mehreren Vorlagen, die in einer regelmäßig aktualisierten Datenbank 204 enthalten sind. Jede Vorlage repräsentiert ein Muster von Ereignissen, das mit schädlicher Aktivität assoziiert ist. Auf der Basis des Vergleichs trifft das Analysemodul 202 eine Entscheidung bezüglich der Sicherheit des Codes, der den Programmfehler verursacht hat, und meldet die Schlussfolgerung an das Überwachungsmodul 201. Abhängig von der Entscheidung durch das Analysemodul 202 erlaubt das Überwachungsmodul 201 entweder der virtuellen Maschine 203, die Ausführung des Codes fortzusetzen, oder beendet ihren Betrieb.
  • 3 ist ein Blockdiagramm einer konkreten Realisierung der Erfindung gemäß einer Ausführungsform, bei der der Programmcode der JVM 302 durch Ergänzungscode ergänzt wird, der das Überwachungsmodul 201 in dem Adressraum der virtuellen Maschine 302 implementiert, um Bedrohungen zu detektieren. Bei dieser Ausführungsform wird die Einfügung des Ergänzungscodes für die JVM 302 durch das Steuermodul 303 durchgeführt, das persistent in das System geladen ist und den Start des Betriebs der virtuellen Maschine verfolgt. Bei einer Ausführungsform ergänzt das Steuermodul 303 beim Start der JVM in dem System den Code der virtuellen Maschine durch Einfügen eines spezialisierten Überwachungsmoduls 201 in die JVM.
  • Bei einer Ausführungsform wird das Überwachungsmodul 201 als eine Zusatzerweiterung eines existierenden eingebauten Sicherheitsmanagers 301 realisiert. Der eingebaute Sicherheitsmanager 301 kann von einem herkömmlichen Typ sein, d. h. Unzulänglichkeiten wie die oben identifizierten aufweisen. Bei dieser Ausführungsform bringt die Ergänzung des Codes der JVM 302 Funktions-Overloading einer Anzahl von SecurityManager-Klassenmethoden mit sich. Funktions-Overloading in diesem Kontext bezieht sich auf das Hinzufügen von zusätzlicher Funktionalität zu diesen Klassenmethoden, die aufgerufen wird, wenn diese Methoden aufgerufen werden. Siehe zum Beispiel http://en.wikipedia.org/w/index.php?title=Function_overloading&oldid=525790025, was hiermit durch Bezugnahme aufgenommen wird.
  • Das Überwachungsmodul 201 verfolgt die Programmfehler, die typischerweise im Ergebnis der Ausführung von schädlichem Code auftreten (Zugriff auf das Dateisystem, Kommunikation über ein Netzwerk usw.) und sendet, wenn ein solcher Programmfehler auftritt, die den Programmfehler umgebenden Umstände über das Steuermodul 303 zu dem Analysemodul 202. Das Analysemodul 202 bestimmt auf der Basis der Analyse der aus dem Überwachungsmodul 201 empfangenen Daten die Sicherheit des Verhaltens des Codes, der den Programmfehler verursacht hat. Wenn das Verhalten als schädlich angesehen wird, weist das Steuermodul 303 das Überwachungsmodul 201 an, die Ausführung des Codes zu beenden. Um die Bestimmung von Schädlichkeit durchzuführen, wird durch das Analysemodul 202 ein Vergleich unter Verwendung von Vorlagen ausgeführt, die in der regelmäßig aktualisierten Datenbank 204 enthalten sind.
  • Bei einer konkreten Ausführungsform kann das oben beschriebene System verwendet werden, um Exploits zu detektieren – zum Beispiel die, die die CVE-2011-3544-Anfälligkeit benutzen. Diese Anfälligkeit basiert auf einem Fehler in der Klasse sun.org.mozilla.javascript.internal.NativeError. Ausnutzung dieser Anfälligkeit erlaubt es dem Angreifer, einen beliebigen Code auf einer entfernten Maschine auszuführen. Um ein Stück schädlichen Codes, der diese Anfälligkeit benutzt, zu detektieren, wird der JVM-Code zuerst um die Funktion ergänzt, die die Methoden checkPermission und checkExec der Klasse java.lang.SecurityManager overloaden. Injektion des Ergänzungscodes in die JVM kann unter Verwendung des Parameters -Xbootclasspath/p:<path> parameter von JAVA.EXE durchgeführt werden. Durch Zeigen auf eine JAR-Klasse, die eine Implementierung spezifischer Klasse enthält, übersteuert dieser Ansatz die Standardimplementierung. Das Hinzufügen dieser auf die Datei java2sw.jar zeigenden Option übersteuert somit die Standard-SecurityManager-Implementierung mit einer erweiterten Version.
  • Bei einer verwandten Ausführungsform wird der Ergänzungscode in einen JAVA.EXE-Prozess jedes Mal injiziert, wenn er als Teil eines Java ausgeführt wird. Wenn zum Beispiel die JVM als ein Plugin ausgeführt wird, kann die Injektion von Ergänzungscode als Reaktion auf Detektion des Starts des Java-Plugins erfolgen.
  • Das Überwachungsmodul 201 verfolgt den Programmfehler, der für einen Code typisch ist, der diese Anfälligkeit ausnutzt – zum Beispiel ein Versuch, eine geschützte Ausführungsumgebung (d. h. Sandbox) zu deaktivieren, was zum Beispiel als ein setSecurityManager-Ereignis beobachtet werden kann. Wenn ein solches Ereignis auftritt, wird die Ausführung des Codes durch die virtuelle Maschine gestoppt, und das Überwachungsmodul 201 sammelt Informationen über den Kontext des Programmfehlers, einschließlich des Aufruf-Stapels des aktuellen Thread, wofür ein Beispiel in 4 angegeben ist.
  • Alle gesammelten Informationen werden zu dem Analysemodul 202 gesendet, das eine Stapel-Rahmenanalyseregel zur Detektion von Bedrohungen, die die CVE-2011-3544-Anfälligkeit benutzen, enthält. Es wird ein Stapel-Rahmen zu dem Eingang des Analysemoduls gesendet; der Stapel-Rahmen wird auf einen Aufruf für Methoden geprüft, die für die oben beschriebene Bedrohung typisch sind, nämlich die Methoden java.lang.System.setSecurityManager und sun.org.mozilla.javascript.internal.NativeError.toString. In diesem Beispiel wird, wenn der Rahmen diese Methoden enthält, der ausgeführte Code als schädlich angesehen, und das Steuermodul 303 sendet einen Befehl zu dem Überwachungsmodul, um den Betrieb der virtuellen Maschine zu stoppen.
  • Bei einer verwandten Ausführungsform kann das Analysesystem, anstatt die aktualisierte Datenbank für die Auswertung des untersuchten Codes zu verwenden, Detektion auf der Basis von starr gesetzten Vorlagen durchführen.
  • Bei einer anderen verwandten Ausführungsform kann die Ergänzung der virtuellen Maschine durchgeführt werden, bevor die virtuelle Maschine zur Ausführung in den Speicher geladen wird (zum Beispiel, wenn der Code der virtuellen Maschine immer noch in einem nichtflüchtigen Speichermedium, wie etwa einem Festplattenlaufwerk, gespeichert ist).
  • Bei einer anderen verwandten Ausführungsform wird das Überwachungsmodul 201 verwendet, um statistische Informationen über die detektierten Bedrohungen zu sammeln; und diese Informationen werden verwendet, um die Datenbank 204 zu füllen.
  • 5 ist ein Blockdiagramm eines beispielhaften Vielzweck-Computersystems, worauf eines oder mehrere Funktionsmodule des Systems implementiert werden können. Der Personal Computer oder Server 520 umfasst eine Hardwareplattform, die einen Prozessor 521, Systemspeicher 522 und den Systembus 523 umfasst, die verschiedene Systemkomponenten enthält, darunter mit dem Prozessor 521 assoziierten Speicher. Der Systembus 523 wird wie jeder bekannte in Busstruktur implementiert, darunter ein Busspeicher, Busspeichercontroller, Peripheriebus und lokaler Bus, die mit einer beliebigen anderen Busarchitektur in Interaktion treten können. Systemspeicher umfasst Nurlesespeicher (ROM) 524 und Direktzugriffsspeicher (RAM) 525. Das BIOS (Basic Input/Output System) enthält die Hauptprozeduren, die den Transfer von Informationen zwischen den Elementen des Personal Computer 520 sicherstellen, zum Beispiel zur Bootzeit unter Verwendung des ROM 524.
  • Der Personal Computer 520 enthält ein Festplattenlaufwerk 527 zum Lesen und Schreiben, ein magnetisches Laufwerk 528 zum Lesen und Schreiben auf einen wechselbaren magnetischen Datenträger 529 und ein optisches Laufwerk 530 zum Lesen und Schreiben auf einen wechselbaren optischen Datenträger 531, wie etwa CD-ROM, DVD-ROM oder andere optische Medien. Das Festplattenlaufwerk 527, das magnetische Laufwerk 528 und das optische Laufwerk 530 sind alle über die Festplattenschnittstelle 532, die Schnittstelle 533 des magnetischen Laufwerks bzw. eine Schnittstelle 534 des optischen Laufwerks mit dem Systembus 523 verbunden. Laufwerke und die entsprechenden Computerspeichermedien sind nicht flüchtig, und nichtflüchtige Speichermittel von Computeranweisungen, Datenstrukturen, Programmmodulen und anderen Daten eines Personal Computer 520. Die vorliegende Beschreibung enthüllt die Implementierung eines Systems, das eine Festplatte, einen wechselbaren magnetischen Datenträger 529 und einen wechselbaren optischen Datenträger 531 verwendet, aber es versteht sich, dass die Verwendung anderer Arten von Computerspeichermedien, die Daten in computerlesbarer Form speichern können (Halbleiterdatenträger, Kassettenband, Flash-Laufwerke oder andere nichtflüchtige Speicher, digitale Datenträger, Bernoulli-Kassetten, Direktzugriffsspeicher (RAM), Nurlesespeicher (ROM) usw.) möglich ist.
  • Bestimmte der Softwaremodule, zu denen ein Betriebssystem 535 gehören kann, werden auf einer Festplatte, einem magnetischen Datenträger 529, einem optischen Datenträger 531, ROM 524 oder RAM 525 gespeichert. Ein Computer 520 besitzt ein Dateisystem 536, das das Betriebssystem 535 und zusätzliche Softwareanwendungen 537, andere Programmmodule 538 und Programmdaten 539 speichert. Der Benutzer hat die Möglichkeit, durch Eingabeeinrichtungen (Tastatur 540, Maus 542) Befehle und Informationen in einen Personal Computer 520 einzugeben. Andere Eingabeeinrichtungen wären (nicht gezeigt): Mikrofon, Joystick, Spielkonsole, Satellitenschüssel, Scanner usw. Solche Eingabeeinrichtungen werden gewöhnlich durch einen seriellen Port 546, der seinerseits mit dem Systembus verbunden ist, mit dem Prozessor 521 verbunden, können aber auch durch andere Mittel verbunden werden, wie etwa einen parallelen Port, einen Spielport oder USB (Universal Serial Bus). Außerdem ist ein Monitor 547 oder eine andere Art von Anzeigeeinrichtung über eine Schnittstelle, wie etwa einen Videoadapter 548, mit dem Systembus 523 verbunden. Zusätzlich zu dem Monitor 547 können Personal Computer mit anderen Peripherie-Ausgabeeinrichtungen (nicht gezeigt) ausgestattet werden, wie etwa Lautsprechern und einem Drucker usw.
  • Der Personal Computer 520 arbeitet im Allgemeinen in einer vernetzten Umgebung unter Verwendung einer logischen Verbindung mit einem oder mehreren entfernten Computern 549. Ein entfernter Computer (oder entfernte Computer) 549 ist/sind dasselbe wie Personal Computer, Server, Router, Netzwerkstationen, Peering-Einrichtungen oder ein anderer Netzwerk-Host und besitzen gewöhnlich die meisten oder alle der zuvor in der Beschreibung der Substanz eines Personal Computer 520, der in 5 gezeigt ist, beschriebenen Elemente, aber nur als Speichereinrichtung 550 mit Anwendungen 537. Logische Verbindungen umfassen ein lokales Netzwerk (LAN) 551 und großflächiges Netzwerk (WAN) 552, und solche Netzwerke sind übliche Bürogeräte und werden auch in Firmencomputernetzen, Firmenintranetz und im Internet verwendet.
  • Bei Verwendung von LAN-Netzwerken ist ein Personal Computer 520 über einen Netzwerkadapter oder eine Schnittstelle 553 mit dem LAN 551 verbunden. Bei Verwendung der WAN-Vernetzung besitzt der Personal Computer 520 ein Modem 554 oder ein anderes Mittel zur Kommunikation mit dem globalen Computernetzwerk 552, wie etwa dem Internet. Ein Modem 554, das intern oder extern sein kann, ist über einen seriellen Port 546 mit dem Systembus 523 verbunden. In einer vernetzten Umgebung sind Softwaremodule exponierter Personal Computer 520 oder Teile solcher Programme in entfernten Speichereinrichtungen gespeichert. Es sollte erwähnt werden, dass die Netzwerkverbindungen lediglich beispielhaft sind und nicht erforderlich sind, um die genaue Netzwerkkonfiguration (Netzwerk) anzuzeigen, d. h. tatsächlich gibt es andere Weisen zum Herstellen einer logischen Verbindung und andere technische Mittel zur Kommunikation eines Computers mit einem anderen.
  • Es sollte erwähnt werden, dass Aspekte der Erfindung unter Verwendung eines Computersystems implementiert werden können, das eine Teilmenge des oben beschriebenen Vielzweck-Computersystems ist. Zum Beispiel kann das Computersystem ein Blade-Server sein, der eine relativ begrenzte Menge von Eingabe-/Ausgabemöglichkeiten besitzt. Das Computersystem kann auch als ein eingebettetes System implementiert werden, das auf einem Mikrocontroller-Digitalsignalprozessor, einer anwendungsspezifischen integrierten Schaltung, einem Field Progammable Gate Array und dergleichen arbeitet, solange das System ausreichend Eingabe-/Ausgabemöglichkeiten umfasst, um es ihm zu ermöglichen, eine Schnittstelle mit einem betreffenden Computersystem zu bilden, das verwaltet wird, oder mit anderen Datenverarbeitungseinrichtungen.
  • Die obigen Ausführungsformen sollen veranschaulichend und nicht beschränkend sein. Zusätzliche Ausführungsformen liegen innerhalb der Ansprüche. Zusätzlich ist für Fachleute erkennbar, dass, obwohl Aspekte der vorliegenden Erfindung mit Bezug auf konkrete Ausführungsformen beschrieben wurden, Änderungen an Form und Detail vorgenommen werden können, ohne von dem Gedanken und Schutzumfang der Erfindung abzuweichen, der durch die Ansprüche definiert wird.
  • Für Durchschnittsfachleute ist erkennbar, dass die Erfindung weniger Merkmale als in irgendeiner oben beschriebenen einzelnen Ausführungsform dargestellt umfassen kann. Die hier beschriebenen Ausführungsformen sollen keine erschöpfende Präsentation der Weisen sein, auf die die verschiedenen Merkmale der Erfindung kombiniert werden können. Dementsprechend sind die Ausführungsformen nicht sich gegenseitig ausschließende Kombinationen von Merkmalen; stattdessen kann die Erfindung eine Kombination von verschiedenen einzelnen Merkmalen umfassen, die aus verschiedenen einzelnen Ausführungsformen ausgewählt werden, sowie durch Durchschnittsfachleute verständlich ist.
  • Jede obige Aufnahme von Dokumenten durch Bezugnahme ist dergestalt beschränkt, dass kein Gegenstand integriert wird, der der expliziten Offenbarung hierin widerspricht. Jede obige Aufnahme von Dokumenten durch Bezugnahme ist ferner dergestalt beschränkt, dass keine Ansprüche in den Dokumenten enthalten sind, die durch Bezugnahme in die Ansprüche der vorliegenden Anmeldung aufgenommen werden. Die Ansprüche beliebiger der Dokumente werden jedoch als Teil der vorliegenden Offenbarung aufgenommen, wenn es nicht spezifisch ausgeschlossen wird. Jede obige Aufnahme von Dokumenten durch Bezugnahme ist weiterhin dahingehend beschränkt, dass jegliche in den Dokumenten bereitgestellten Definitionen nur dann durch Bezugnahme hiermit aufgenommen werden, wenn sie ausdrücklich hier aufgenommen werden.
  • Das Computersystem der vorliegenden Erfindung kann auf die folgenden Verfahren angewandt werden:
    • a). Ein automatisiertes computerimplementiertes Verfahren zum Schutz vor einer schädlichen Menge von Programmanweisungen, die durch eine virtuelle Maschine des Prozesses ausführbar sind, wobei die virtuelle Maschine des Prozesses Programmanweisungen umfasst, die auf einem Computersystem ausführbar sind, das eine Hardwareplattform und ein Betriebssystem aufweist, wobei das Verfahren Folgendes umfasst: Ergänzen der Programmanweisungen der virtuellen Maschine des Prozesses durch einen automatisierten Ergänzungsprozess, der auf dem Computersystem ausgeführt wird, um ein Programmfehler-Überwachungsmodul in der virtuellen Maschine des Prozesses einzurichten; Ausführen der betreffenden Menge von Programmanweisungen über die virtuelle Maschine des Prozesses; Detektieren eines als Ergebnis der Ausführung der betreffenden Menge von Programmanweisungen auftretenden Programmfehlers durch das Programmfehler-Überwachungsmodul, wobei der Programmfehler ein Auftreten eines Ereignisses repräsentiert, von dem bestimmt wird, dass es Potential zum Verstoßen gegen eine vordefinierte Sicherheitsregel aufweist; als Reaktion auf eine Detektion eines Auftretens des Programmfehlers: Sammeln von Kontextinformationen aus der virtuellen Maschine des Prozesses durch das Programmfehler-Überwachungsmodul, wobei die Kontextinformationen das Auftreten des Programmfehlers umgebende Umstände repräsentieren; Bereitstellen der Kontextinformationen durch das Programmfehler-Überwachungsmodul, um einer Analyse auf eine Anwesenheit der schädlichen Menge von Programmanweisungen unterzogen zu werden; und Bestimmen durch das Programmfehler-Überwachungsmodul auf der Basis eines Ergebnisses der Analyse, ob weitere Ausführung der betreffenden Menge von Programmanweisungen durch die virtuelle Maschine des Prozesses zu gestatten ist.
    • ab). Verfahren nach Paragraph a), ferner umfassend: als Reaktion auf eine Detektion eines Auftretens des Programmfehlers: Stoppen des Betriebs der virtuellen Maschine des Prozesses, um weitere Ausführung der betreffenden Menge von Programmanweisungen zu verhindern; und als Reaktion darauf, dass ein Ergebnis der Analyse eine Abwesenheit von schädlichem Code in der betreffenden Menge von Programmanweisungen anzeigt, Neustarten des Betriebs der virtuellen Maschine des Prozesses.
    • ac). Verfahren nach Paragraph a) bis ab), ferner umfassend: als Reaktion auf eine Detektion eines Auftretens des Programmfehlers: Stoppen des Betriebs der virtuellen Maschine des Prozesses, um weitere Ausführung der betreffenden Menge von Programmanweisungen zu verhindern; und als Reaktion darauf, dass ein Ergebnis der Analyse eine Anwesenheit von schädlichem Code in der betreffenden Menge von Programmanweisungen anzeigt, Beenden des Betriebs der virtuellen Maschine des Prozesses.
    • ad). Verfahren nach Paragraph a) bis ac), wobei das Ergänzen nach Einleitung der Ausführung der Programmanweisungen der virtuellen Maschine des Prozesses durchgeführt wird.
    • ae). Verfahren nach Paragraph a) bis ad), wobei das Ergänzen vor der Einleitung der Ausführung der Programmanweisungen der virtuellen Maschine des Prozesses durchgeführt wird.
    • af). Verfahren nach Paragraph a) bis ae), wobei beim Ergänzen spezialisierter Code zum Implementieren des Programmfehler-Überwachungsmoduls in einen existierenden Sicherheitsmanagerteil der virtuellen Maschine des Prozesses eingefügt wird.
    • ag). Verfahren nach Paragraph a) bis af), wobei das Ergänzen Funktions-Overloading einer oder mehrerer existierender Funktionen der virtuellen Maschine des Prozesses umfasst.
    • ah). Verfahren nach Paragraph a) bis ag), wobei beim Bereitstellen der Kontextinformationen die den Programmfehler umgebenden Umstände, die bereitgestellt werden, Informationen umfassen, die eine Ursache des Programmfehlers anzeigen.
    • ai). Verfahren nach Paragraph a) bis ah), wobei beim Bereitstellen der Kontextinformationen die den Programmfehler umgebenden Umstände, die bereitgestellt werden, Informationen umfassen, die Ereignisse anzeigen, die dem Auftreten eines als der Programmfehler identifizierten kritischen Ereignisses vorausgehen.
    • ak). Verfahren nach Paragraph a) bis ai), ferner umfassend: Empfangen der Kontextinformationen durch ein Analysemodul, das auf dem Computersystem ausgeführt wird; und Bestimmen durch das Analysemodul, ob die Kontextinformationen mit schädlichem Code assoziiert sind.
    • al). Verfahren nach Paragraph a) bis ak), wobei das Bestimmen, ob die Kontextinformationen mit schädlichem Code assoziiert sind, Vergleichen der Kontextinformationen mit einer Menge von mindestens einer vordefinierten Vorlage, die schädliche Aktivität repräsentiert, umfasst.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • http://en.wikipedia.org/w/index.php?title=Function_overloading&oldid=525790025 [0030]

Claims (11)

  1. Automatisiertes Computersystem zum Schutz vor einer schädlichen Menge von Programmanweisungen, die durch eine virtuelle Maschine eines Prozesses ausführbar sind, wobei die virtuelle Maschine des Prozesses Programmanweisungen umfasst, die auf einem Computersystem ausführbar sind, das eine Hardwareplattform und ein Betriebssystem aufweist, gekennzeichnet durch: ein Programmfehler-Überwachungsmodul in der virtuellen Maschine des Prozesses, das durch Ergänzen der Programmanweisungen der virtuellen Maschine des Prozesses durch einen automatisierten Ergänzungsprozess, der auf dem Computersystem ausgeführt wird, eingerichtet wird, wobei die virtuelle Maschine des Prozesses dafür ausgelegt ist, die betreffende Menge von Programmanweisungen auszuführen; wobei das Programmfehler-Überwachungsmodul dafür ausgelegt ist, einen als Ergebnis der Ausführung der betreffenden Menge von Programmanweisungen auftretenden Programmfehler zu detektieren, wobei der Programmfehler ein Auftreten eines Ereignisses repräsentiert, von dem bestimmt wurde, dass es Potential zum Verstoßen gegen eine vordefinierte Sicherheitsrichtlinie aufweist; wobei das Programmfehler-Überwachungsmodul dafür ausgelegt ist, als Reaktion auf eine Detektion eines Auftretens des Programmfehlers Kontextinformationen aus der virtuellen Maschine des Prozesses zu sammeln, wobei die Kontextinformationen das Auftreten des Programmfehlers umgebende Umstände repräsentieren; wobei das Programmfehler-Überwachungsmodul dafür ausgelegt ist, die Kontextinformationen bereitzustellen, um einer Analyse auf eine Anwesenheit der schädlichen Menge von Programmanweisungen unterzogen zu werden, und auf der Basis eines Ergebnisses der Analyse zu bestimmen, ob weitere Ausführung der betreffenden Menge von Programmanweisungen durch die virtuelle Maschine des Prozesses zu gestatten ist.
  2. Computersystem nach Anspruch 1, das ferner für Folgendes ausgelegt ist: als Reaktion auf eine Detektion eines Auftretens des Programmfehlers: Stoppen des Betriebs der virtuellen Maschine des Prozesses, um weitere Ausführung der betreffenden Menge von Programmanweisungen zu verhindern; und als Reaktion darauf, dass ein Ergebnis der Analyse eine Abwesenheit von schädlichem Code in der betreffenden Menge von Programmanweisungen anzeigt: Neustarten des Betriebs der virtuellen Maschine des Prozesses.
  3. Computersystem nach Anspruch 1 oder 2, das ferner für Folgendes ausgelegt ist: als Reaktion auf eine Detektion eines Auftretens des Programmfehlers: Stoppen des Betriebs der virtuellen Maschine des Prozesses, um weitere Ausführung der betreffenden Menge von Programmanweisungen zu verhindern; und als Reaktion darauf, dass ein Ergebnis der Analyse eine Anwesenheit von schädlichem Code in der betreffenden Menge von Programmanweisungen anzeigt: Beenden des Betriebs der virtuellen Maschine des Prozesses.
  4. Computersystem nach einem der Ansprüche 1 bis 3, das ferner dafür ausgelegt ist, das Ergänzen nach der Einleitung der Ausführung der Programmanweisungen der virtuellen Maschine des Prozesses durchzuführen.
  5. Computersystem nach einem der Ansprüche 1 bis 3, das ferner dafür ausgelegt ist, das Ergänzen vor der Einleitung der Ausführung der Programmanweisungen der virtuellen Maschine des Prozesses durchzuführen
  6. Computersystem nach einem der Ansprüche 1 bis 5, das dafür ausgelegt ist, beim Ergänzen spezialisierten Code zum Implementieren des Programmfehler-Überwachungsmoduls in einen existierenden Sicherheitsmanagerteil der virtuellen Maschine des Prozesses einzufügen.
  7. Computersystem nach einem der Ansprüche 1 bis 6, das dafür ausgelegt ist, in die Ergänzung Funktions-Overloading einer oder mehrerer existierender Funktionen der virtuellen Maschine des Prozesses aufzunehmen.
  8. Computersystem nach einem der Ansprüche 1 bis 7, wobei beim Bereitstellen der Kontextinformationen die den Programmfehler umgebenden Umstände, die bereitgestellt werden, Informationen umfassen, die eine Ursache des Programmfehlers anzeigen.
  9. Computersystem nach einem der Ansprüche 1 bis 8, wobei beim Bereitstellen der Kontextinformationen die den Programmfehler umgebenden Umstände, die bereitgestellt werden, Informationen umfassen, die Ereignisse anzeigen, die dem Auftreten eines als der Programmfehler identifizierten kritischen Ereignisses vorausgehen.
  10. Computersystem nach einem der Ansprüche 1 bis 9, ferner umfassend: ein Analysemodul zum Empfangen der Kontextinformationen, wobei das Computersystem dafür ausgelegt ist, die Kontextinformationen auszuführen; und wobei das Analysemodul dafür ausgelegt ist, zu bestimmen, ob die Kontextinformationen mit schädlichem Code assoziiert sind.
  11. Computersystem nach Anspruch 10, wobei das Computersystem dafür ausgelegt ist, die Kontextinformationen mit einer Menge von mindestens einer vordefinierten Vorlage zu vergleichen, die schädliche Aktivität repräsentiert, indem bestimmt wird, ob die Kontextinformationen mit schädlichem Code assoziiert sind.
DE201320102179 2012-12-25 2013-05-17 System zu detektieren von durch eine virtuelle Maschine ausgeführtem Schadcode Expired - Lifetime DE202013102179U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2012156443/08A RU2522019C1 (ru) 2012-12-25 2012-12-25 Система и способ обнаружения угроз в коде, исполняемом виртуальной машиной
RU2012156443 2012-12-25

Publications (1)

Publication Number Publication Date
DE202013102179U1 true DE202013102179U1 (de) 2013-08-01

Family

ID=49112613

Family Applications (1)

Application Number Title Priority Date Filing Date
DE201320102179 Expired - Lifetime DE202013102179U1 (de) 2012-12-25 2013-05-17 System zu detektieren von durch eine virtuelle Maschine ausgeführtem Schadcode

Country Status (5)

Country Link
US (1) US8713631B1 (de)
CN (1) CN103593608B (de)
DE (1) DE202013102179U1 (de)
FR (1) FR3000249B3 (de)
RU (1) RU2522019C1 (de)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461832A (zh) * 2015-01-07 2015-03-25 浪潮(北京)电子信息产业有限公司 一种监控应用服务器资源的方法及装置
DE102014201592A1 (de) 2014-01-29 2015-07-30 Siemens Aktiengesellschaft Verfahren und Vorrichtungen zum Erkennen von autonomer, selbstpropagierender Software
CN112019506A (zh) * 2020-07-28 2020-12-01 杭州安恒信息技术股份有限公司 基于行为识别的钓鱼邮件检测方法、电子装置及介质
EP2881881B1 (de) * 2013-12-05 2021-02-17 McAfee, LLC Maschinenlesbares medium, verfahren und system zur detektion von java-sandbox-escape-angriffen auf grundlage von java-bytecode-intrumentation und java-einschubverfahren
CN112822291A (zh) * 2021-02-07 2021-05-18 国网福建省电力有限公司电力科学研究院 一种工控设备的监测方法与装置
CN113806750A (zh) * 2021-09-24 2021-12-17 深信服科技股份有限公司 文件安全风险检测方法、模型的训练方法、装置和设备

Families Citing this family (196)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8584239B2 (en) 2004-04-01 2013-11-12 Fireeye, Inc. Virtual machine with dynamic data flow analysis
US7587537B1 (en) 2007-11-30 2009-09-08 Altera Corporation Serializer-deserializer circuits formed from input-output circuit registers
US8881282B1 (en) 2004-04-01 2014-11-04 Fireeye, Inc. Systems and methods for malware attack detection and identification
US8528086B1 (en) 2004-04-01 2013-09-03 Fireeye, Inc. System and method of detecting computer worms
US9106694B2 (en) 2004-04-01 2015-08-11 Fireeye, Inc. Electronic message analysis for malware detection
US8566946B1 (en) 2006-04-20 2013-10-22 Fireeye, Inc. Malware containment on connection
US8898788B1 (en) 2004-04-01 2014-11-25 Fireeye, Inc. Systems and methods for malware attack prevention
US8793787B2 (en) 2004-04-01 2014-07-29 Fireeye, Inc. Detecting malicious network content using virtual environment components
US8171553B2 (en) 2004-04-01 2012-05-01 Fireeye, Inc. Heuristic based capture with replay to virtual machine
US8549638B2 (en) 2004-06-14 2013-10-01 Fireeye, Inc. System and method of containing computer worms
US8997219B2 (en) 2008-11-03 2015-03-31 Fireeye, Inc. Systems and methods for detecting malicious PDF network content
US8832829B2 (en) 2009-09-30 2014-09-09 Fireeye, Inc. Network-based binary file extraction and analysis for malware detection
US10572665B2 (en) 2012-12-28 2020-02-25 Fireeye, Inc. System and method to create a number of breakpoints in a virtual machine via virtual machine trapping events
US9159035B1 (en) 2013-02-23 2015-10-13 Fireeye, Inc. Framework for computer application analysis of sensitive information tracking
US8990944B1 (en) 2013-02-23 2015-03-24 Fireeye, Inc. Systems and methods for automatically detecting backdoors
US9009822B1 (en) * 2013-02-23 2015-04-14 Fireeye, Inc. Framework for multi-phase analysis of mobile applications
US9195829B1 (en) 2013-02-23 2015-11-24 Fireeye, Inc. User interface with real-time visual playback along with synchronous textual analysis log display and event/time index for anomalous behavior detection in applications
US9176843B1 (en) 2013-02-23 2015-11-03 Fireeye, Inc. Framework for efficient security coverage of mobile software applications
US9367681B1 (en) 2013-02-23 2016-06-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications using symbolic execution to reach regions of interest within an application
US9009823B1 (en) 2013-02-23 2015-04-14 Fireeye, Inc. Framework for efficient security coverage of mobile software applications installed on mobile devices
US9104867B1 (en) 2013-03-13 2015-08-11 Fireeye, Inc. Malicious content analysis using simulated user interaction without user involvement
US9355247B1 (en) 2013-03-13 2016-05-31 Fireeye, Inc. File extraction from memory dump for malicious content analysis
US9626509B1 (en) 2013-03-13 2017-04-18 Fireeye, Inc. Malicious content analysis with multi-version application support within single operating environment
US9430646B1 (en) 2013-03-14 2016-08-30 Fireeye, Inc. Distributed systems and methods for automatically detecting unknown bots and botnets
US9311479B1 (en) 2013-03-14 2016-04-12 Fireeye, Inc. Correlation and consolidation of analytic data for holistic view of a malware attack
US20140283038A1 (en) 2013-03-15 2014-09-18 Shape Security Inc. Safe Intelligent Content Modification
US10713358B2 (en) 2013-03-15 2020-07-14 Fireeye, Inc. System and method to extract and utilize disassembly features to classify software intent
US9178908B2 (en) 2013-03-15 2015-11-03 Shape Security, Inc. Protecting against the introduction of alien content
US9338143B2 (en) 2013-03-15 2016-05-10 Shape Security, Inc. Stateless web content anti-automation
WO2014145805A1 (en) 2013-03-15 2014-09-18 Mandiant, Llc System and method employing structured intelligence to verify and contain threats at endpoints
US9298911B2 (en) * 2013-03-15 2016-03-29 Intel Corporation Method, apparatus, system, and computer readable medium for providing apparatus security
US9225737B2 (en) 2013-03-15 2015-12-29 Shape Security, Inc. Detecting the introduction of alien content
US9495180B2 (en) 2013-05-10 2016-11-15 Fireeye, Inc. Optimized resource allocation for virtual machines within a malware content detection system
US9635039B1 (en) 2013-05-13 2017-04-25 Fireeye, Inc. Classifying sets of malicious indicators for detecting command and control communications associated with malware
US9088541B2 (en) * 2013-05-31 2015-07-21 Catbird Networks, Inc. Systems and methods for dynamic network security control and configuration
US10133863B2 (en) 2013-06-24 2018-11-20 Fireeye, Inc. Zero-day discovery system
US9300686B2 (en) 2013-06-28 2016-03-29 Fireeye, Inc. System and method for detecting malicious links in electronic messages
US8943592B1 (en) * 2013-07-15 2015-01-27 Eset, Spol. S.R.O. Methods of detection of software exploitation
US9171160B2 (en) 2013-09-30 2015-10-27 Fireeye, Inc. Dynamically adaptive framework and method for classifying malware using intelligent static, emulation, and dynamic analyses
US9690936B1 (en) 2013-09-30 2017-06-27 Fireeye, Inc. Multistage system and method for analyzing obfuscated content for malware
US9294501B2 (en) 2013-09-30 2016-03-22 Fireeye, Inc. Fuzzy hash of behavioral results
US10515214B1 (en) 2013-09-30 2019-12-24 Fireeye, Inc. System and method for classifying malware within content created during analysis of a specimen
US9736179B2 (en) 2013-09-30 2017-08-15 Fireeye, Inc. System, apparatus and method for using malware analysis results to drive adaptive instrumentation of virtual machines to improve exploit detection
US9628507B2 (en) 2013-09-30 2017-04-18 Fireeye, Inc. Advanced persistent threat (APT) detection center
US9921978B1 (en) 2013-11-08 2018-03-20 Fireeye, Inc. System and method for enhanced security of storage devices
US9756074B2 (en) 2013-12-26 2017-09-05 Fireeye, Inc. System and method for IPS and VM-based detection of suspicious objects
US9747446B1 (en) 2013-12-26 2017-08-29 Fireeye, Inc. System and method for run-time object classification
US9817638B2 (en) * 2013-12-27 2017-11-14 Symantec Corporation Systems and methods for injecting code into an application
US9292686B2 (en) 2014-01-16 2016-03-22 Fireeye, Inc. Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment
US8954583B1 (en) 2014-01-20 2015-02-10 Shape Security, Inc. Intercepting and supervising calls to transformed operations and objects
US8893294B1 (en) 2014-01-21 2014-11-18 Shape Security, Inc. Flexible caching
US9225729B1 (en) 2014-01-21 2015-12-29 Shape Security, Inc. Blind hash compression
US9262635B2 (en) 2014-02-05 2016-02-16 Fireeye, Inc. Detection efficacy of virtual machine-based analysis with application specific events
US9241010B1 (en) 2014-03-20 2016-01-19 Fireeye, Inc. System and method for network behavior detection
US10242185B1 (en) 2014-03-21 2019-03-26 Fireeye, Inc. Dynamic guest image creation and rollback
US9721092B2 (en) * 2014-03-27 2017-08-01 International Busines Machines Corporation Monitoring an application in a process virtual machine
US9591015B1 (en) 2014-03-28 2017-03-07 Fireeye, Inc. System and method for offloading packet processing and static analysis operations
US9223972B1 (en) 2014-03-31 2015-12-29 Fireeye, Inc. Dynamically remote tuning of a malware content detection system
US9432389B1 (en) 2014-03-31 2016-08-30 Fireeye, Inc. System, apparatus and method for detecting a malicious attack based on static analysis of a multi-flow object
US8997226B1 (en) * 2014-04-17 2015-03-31 Shape Security, Inc. Detection of client-side malware activity
US9438623B1 (en) 2014-06-06 2016-09-06 Fireeye, Inc. Computer exploit detection using heap spray pattern matching
US9973531B1 (en) 2014-06-06 2018-05-15 Fireeye, Inc. Shellcode detection
US9594912B1 (en) 2014-06-06 2017-03-14 Fireeye, Inc. Return-oriented programming detection
US10084813B2 (en) 2014-06-24 2018-09-25 Fireeye, Inc. Intrusion prevention and remedy system
US9398028B1 (en) 2014-06-26 2016-07-19 Fireeye, Inc. System, device and method for detecting a malicious attack based on communcations between remotely hosted virtual machines and malicious web servers
US10805340B1 (en) 2014-06-26 2020-10-13 Fireeye, Inc. Infection vector and malware tracking with an interactive user display
US10089216B2 (en) 2014-06-30 2018-10-02 Shape Security, Inc. Automatically determining whether a page of a web site is broken despite elements on the page that may change
US10002252B2 (en) 2014-07-01 2018-06-19 Fireeye, Inc. Verification of trusted threat-aware microvisor
US9075990B1 (en) 2014-07-01 2015-07-07 Shape Security, Inc. Reliable selection of security countermeasures
US9356945B2 (en) * 2014-07-17 2016-05-31 Check Point Advanced Threat Prevention Ltd Automatic content inspection system for exploit detection
US20160048679A1 (en) * 2014-08-18 2016-02-18 Bitdefender IPR Management Ltd. Systems And Methods for Exposing A Current Processor Instruction Upon Exiting A Virtual Machine
US9363280B1 (en) 2014-08-22 2016-06-07 Fireeye, Inc. System and method of detecting delivery of malware using cross-customer data
US10671726B1 (en) 2014-09-22 2020-06-02 Fireeye Inc. System and method for malware analysis using thread-level event monitoring
US10027689B1 (en) 2014-09-29 2018-07-17 Fireeye, Inc. Interactive infection visualization for improved exploit detection and signature generation for malware and malware families
US9773112B1 (en) 2014-09-29 2017-09-26 Fireeye, Inc. Exploit detection of malware and malware families
US9690933B1 (en) 2014-12-22 2017-06-27 Fireeye, Inc. Framework for classifying an object as malicious with machine learning for deploying updated predictive models
US9934380B2 (en) 2014-12-23 2018-04-03 Mcafee, Llc Execution profiling detection of malicious objects
US10075455B2 (en) 2014-12-26 2018-09-11 Fireeye, Inc. Zero-day rotating guest image profile
US9934376B1 (en) 2014-12-29 2018-04-03 Fireeye, Inc. Malware detection appliance architecture
WO2016107753A1 (en) 2014-12-30 2016-07-07 British Telecommunications Public Limited Company Malware detection in migrated virtual machines
WO2016107754A1 (en) 2014-12-30 2016-07-07 British Telecommunications Public Limited Company Malware detection
US9838417B1 (en) 2014-12-30 2017-12-05 Fireeye, Inc. Intelligent context aware user interaction for malware detection
US10148693B2 (en) 2015-03-25 2018-12-04 Fireeye, Inc. Exploit detection system
US9690606B1 (en) 2015-03-25 2017-06-27 Fireeye, Inc. Selective system call monitoring
US9438613B1 (en) 2015-03-30 2016-09-06 Fireeye, Inc. Dynamic content activation for automated analysis of embedded objects
US10474813B1 (en) 2015-03-31 2019-11-12 Fireeye, Inc. Code injection technique for remediation at an endpoint of a network
US10417031B2 (en) 2015-03-31 2019-09-17 Fireeye, Inc. Selective virtualization for security threat detection
US9483644B1 (en) 2015-03-31 2016-11-01 Fireeye, Inc. Methods for detecting file altering malware in VM based analysis
US9654485B1 (en) 2015-04-13 2017-05-16 Fireeye, Inc. Analytics-based security monitoring system and method
US9594904B1 (en) 2015-04-23 2017-03-14 Fireeye, Inc. Detecting malware based on reflection
US9986058B2 (en) 2015-05-21 2018-05-29 Shape Security, Inc. Security systems for mitigating attacks from a headless browser executing on a client computer
US10642753B1 (en) 2015-06-30 2020-05-05 Fireeye, Inc. System and method for protecting a software component running in virtual machine using a virtualization layer
US10726127B1 (en) 2015-06-30 2020-07-28 Fireeye, Inc. System and method for protecting a software component running in a virtual machine through virtual interrupts by the virtualization layer
US11113086B1 (en) 2015-06-30 2021-09-07 Fireeye, Inc. Virtual system and method for securing external network connectivity
US10454950B1 (en) 2015-06-30 2019-10-22 Fireeye, Inc. Centralized aggregation technique for detecting lateral movement of stealthy cyber-attacks
WO2017007705A1 (en) 2015-07-06 2017-01-12 Shape Security, Inc. Asymmetrical challenges for web security
WO2017007936A1 (en) 2015-07-07 2017-01-12 Shape Security, Inc. Split serving of computer code
US10715542B1 (en) 2015-08-14 2020-07-14 Fireeye, Inc. Mobile application risk analysis
US10176321B2 (en) 2015-09-22 2019-01-08 Fireeye, Inc. Leveraging behavior-based rules for malware family classification
US10033747B1 (en) 2015-09-29 2018-07-24 Fireeye, Inc. System and method for detecting interpreter-based exploit attacks
US10601865B1 (en) 2015-09-30 2020-03-24 Fireeye, Inc. Detection of credential spearphishing attacks using email analysis
US10210329B1 (en) 2015-09-30 2019-02-19 Fireeye, Inc. Method to detect application execution hijacking using memory protection
US9825989B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Cyber attack early warning system
US10706149B1 (en) 2015-09-30 2020-07-07 Fireeye, Inc. Detecting delayed activation malware using a primary controller and plural time controllers
US9825976B1 (en) 2015-09-30 2017-11-21 Fireeye, Inc. Detection and classification of exploit kits
US10817606B1 (en) 2015-09-30 2020-10-27 Fireeye, Inc. Detecting delayed activation malware using a run-time monitoring agent and time-dilation logic
US10375026B2 (en) 2015-10-28 2019-08-06 Shape Security, Inc. Web transaction status tracking
US9817971B2 (en) * 2015-10-29 2017-11-14 International Business Machines Corporation Using call stack snapshots to detect anomalous computer behavior
US10284575B2 (en) 2015-11-10 2019-05-07 Fireeye, Inc. Launcher for setting analysis environment variations for malware detection
US10447728B1 (en) 2015-12-10 2019-10-15 Fireeye, Inc. Technique for protecting guest processes using a layered virtualization architecture
US10846117B1 (en) 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
WO2017109128A1 (en) * 2015-12-24 2017-06-29 British Telecommunications Public Limited Company Detecting malicious software
WO2017108575A1 (en) 2015-12-24 2017-06-29 British Telecommunications Public Limited Company Malicious software identification
US10733296B2 (en) * 2015-12-24 2020-08-04 British Telecommunications Public Limited Company Software security
US10133866B1 (en) 2015-12-30 2018-11-20 Fireeye, Inc. System and method for triggering analysis of an object for malware in response to modification of that object
US10565378B1 (en) 2015-12-30 2020-02-18 Fireeye, Inc. Exploit of privilege detection framework
US10621338B1 (en) 2015-12-30 2020-04-14 Fireeye, Inc. Method to detect forgery and exploits using last branch recording registers
US10050998B1 (en) 2015-12-30 2018-08-14 Fireeye, Inc. Malicious message analysis system
US9824216B1 (en) 2015-12-31 2017-11-21 Fireeye, Inc. Susceptible environment detection system
US11552986B1 (en) 2015-12-31 2023-01-10 Fireeye Security Holdings Us Llc Cyber-security framework for application of virtual features
US10581874B1 (en) 2015-12-31 2020-03-03 Fireeye, Inc. Malware detection system with contextual analysis
US10116625B2 (en) * 2016-01-08 2018-10-30 Secureworks, Corp. Systems and methods for secure containerization
US10009380B2 (en) 2016-01-08 2018-06-26 Secureworks Corp. Systems and methods for security configuration
JP2019511030A (ja) * 2016-01-24 2019-04-18 ハサン・シェド・カムラン 人工知能によるコンピュータセキュリティ
US10601863B1 (en) 2016-03-25 2020-03-24 Fireeye, Inc. System and method for managing sensor enrollment
US10671721B1 (en) 2016-03-25 2020-06-02 Fireeye, Inc. Timeout management services
US10785255B1 (en) 2016-03-25 2020-09-22 Fireeye, Inc. Cluster configuration within a scalable malware detection system
US10476906B1 (en) 2016-03-25 2019-11-12 Fireeye, Inc. System and method for managing formation and modification of a cluster within a malware detection system
WO2017167544A1 (en) 2016-03-30 2017-10-05 British Telecommunications Public Limited Company Detecting computer security threats
EP3437291B1 (de) 2016-03-30 2022-06-01 British Telecommunications public limited company Netzwerkverkehrsbedrohungsidentifizierung
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10169585B1 (en) 2016-06-22 2019-01-01 Fireeye, Inc. System and methods for advanced malware detection through placement of transition events
US10462173B1 (en) 2016-06-30 2019-10-29 Fireeye, Inc. Malware detection verification and enhancement by coordinating endpoint and malware detection systems
RU2634211C1 (ru) 2016-07-06 2017-10-24 Общество с ограниченной ответственностью "Траст" Способ и система анализа протоколов взаимодействия вредоносных программ с центрами управления и выявления компьютерных атак
RU2649793C2 (ru) 2016-08-03 2018-04-04 ООО "Группа АйБи" Способ и система выявления удаленного подключения при работе на страницах веб-ресурса
WO2018033375A2 (en) 2016-08-16 2018-02-22 British Telecommunications Public Limited Company Mitigating security attacks in virtualised computing environments
WO2018033350A1 (en) 2016-08-16 2018-02-22 British Telecommunications Public Limited Company Reconfigured virtual machine to mitigate attack
US10592678B1 (en) 2016-09-09 2020-03-17 Fireeye, Inc. Secure communications between peers using a verified virtual trusted platform module
RU2634209C1 (ru) 2016-09-19 2017-10-24 Общество с ограниченной ответственностью "Группа АйБи ТДС" Система и способ автогенерации решающих правил для систем обнаружения вторжений с обратной связью
US10491627B1 (en) 2016-09-29 2019-11-26 Fireeye, Inc. Advanced malware detection using similarity analysis
US10430591B1 (en) * 2016-10-04 2019-10-01 Bromium, Inc. Using threat model to monitor host execution in a virtualized environment
US10795991B1 (en) 2016-11-08 2020-10-06 Fireeye, Inc. Enterprise search
US10587647B1 (en) 2016-11-22 2020-03-10 Fireeye, Inc. Technique for malware detection capability comparison of network security devices
US10552610B1 (en) 2016-12-22 2020-02-04 Fireeye, Inc. Adaptive virtual machine snapshot update framework for malware behavioral analysis
US10581879B1 (en) 2016-12-22 2020-03-03 Fireeye, Inc. Enhanced malware detection for generated objects
US10523609B1 (en) 2016-12-27 2019-12-31 Fireeye, Inc. Multi-vector malware detection and analysis
RU2637477C1 (ru) 2016-12-29 2017-12-04 Общество с ограниченной ответственностью "Траст" Система и способ обнаружения фишинговых веб-страниц
RU2671991C2 (ru) 2016-12-29 2018-11-08 Общество с ограниченной ответственностью "Траст" Система и способ сбора информации для обнаружения фишинга
US10904286B1 (en) 2017-03-24 2021-01-26 Fireeye, Inc. Detection of phishing attacks using similarity analysis
US10902119B1 (en) 2017-03-30 2021-01-26 Fireeye, Inc. Data extraction system for malware analysis
US10798112B2 (en) 2017-03-30 2020-10-06 Fireeye, Inc. Attribute-controlled malware detection
US10791138B1 (en) 2017-03-30 2020-09-29 Fireeye, Inc. Subscription-based malware detection
US10848397B1 (en) 2017-03-30 2020-11-24 Fireeye, Inc. System and method for enforcing compliance with subscription requirements for cyber-attack detection service
US10503904B1 (en) 2017-06-29 2019-12-10 Fireeye, Inc. Ransomware detection and mitigation
US10601848B1 (en) 2017-06-29 2020-03-24 Fireeye, Inc. Cyber-security system and method for weak indicator detection and correlation to generate strong indicators
US10855700B1 (en) 2017-06-29 2020-12-01 Fireeye, Inc. Post-intrusion detection of cyber-attacks during lateral movement within networks
US10893068B1 (en) 2017-06-30 2021-01-12 Fireeye, Inc. Ransomware file modification prevention technique
US10747872B1 (en) 2017-09-27 2020-08-18 Fireeye, Inc. System and method for preventing malware evasion
US10805346B2 (en) 2017-10-01 2020-10-13 Fireeye, Inc. Phishing attack detection
US11108809B2 (en) 2017-10-27 2021-08-31 Fireeye, Inc. System and method for analyzing binary code for malware classification using artificial neural network techniques
RU2689816C2 (ru) 2017-11-21 2019-05-29 ООО "Группа АйБи" Способ для классифицирования последовательности действий пользователя (варианты)
US11005860B1 (en) 2017-12-28 2021-05-11 Fireeye, Inc. Method and system for efficient cybersecurity analysis of endpoint events
US11271955B2 (en) 2017-12-28 2022-03-08 Fireeye Security Holdings Us Llc Platform and method for retroactive reclassification employing a cybersecurity-based global data store
US11240275B1 (en) 2017-12-28 2022-02-01 Fireeye Security Holdings Us Llc Platform and method for performing cybersecurity analyses employing an intelligence hub with a modular architecture
RU2668710C1 (ru) 2018-01-17 2018-10-02 Общество с ограниченной ответственностью "Группа АйБи ТДС" Вычислительное устройство и способ для обнаружения вредоносных доменных имен в сетевом трафике
RU2676247C1 (ru) 2018-01-17 2018-12-26 Общество С Ограниченной Ответственностью "Группа Айби" Способ и компьютерное устройство для кластеризации веб-ресурсов
RU2677368C1 (ru) 2018-01-17 2019-01-16 Общество С Ограниченной Ответственностью "Группа Айби" Способ и система для автоматического определения нечетких дубликатов видеоконтента
RU2677361C1 (ru) 2018-01-17 2019-01-16 Общество с ограниченной ответственностью "Траст" Способ и система децентрализованной идентификации вредоносных программ
RU2680736C1 (ru) * 2018-01-17 2019-02-26 Общество с ограниченной ответственностью "Группа АйБи ТДС" Сервер и способ для определения вредоносных файлов в сетевом трафике
RU2681699C1 (ru) 2018-02-13 2019-03-12 Общество с ограниченной ответственностью "Траст" Способ и сервер для поиска связанных сетевых ресурсов
US10826931B1 (en) 2018-03-29 2020-11-03 Fireeye, Inc. System and method for predicting and mitigating cybersecurity system misconfigurations
US11003773B1 (en) 2018-03-30 2021-05-11 Fireeye, Inc. System and method for automatically generating malware detection rule recommendations
US11558401B1 (en) 2018-03-30 2023-01-17 Fireeye Security Holdings Us Llc Multi-vector malware detection data sharing system for improved detection
US10956477B1 (en) 2018-03-30 2021-03-23 Fireeye, Inc. System and method for detecting malicious scripts through natural language processing modeling
US11314859B1 (en) 2018-06-27 2022-04-26 FireEye Security Holdings, Inc. Cyber-security system and method for detecting escalation of privileges within an access token
US11075930B1 (en) 2018-06-27 2021-07-27 Fireeye, Inc. System and method for detecting repetitive cybersecurity attacks constituting an email campaign
US11228491B1 (en) 2018-06-28 2022-01-18 Fireeye Security Holdings Us Llc System and method for distributed cluster configuration monitoring and management
US11316900B1 (en) 2018-06-29 2022-04-26 FireEye Security Holdings Inc. System and method for automatically prioritizing rules for cyber-threat detection and mitigation
US11182473B1 (en) 2018-09-13 2021-11-23 Fireeye Security Holdings Us Llc System and method for mitigating cyberattacks against processor operability by a guest process
US11763004B1 (en) 2018-09-27 2023-09-19 Fireeye Security Holdings Us Llc System and method for bootkit detection
RU2708508C1 (ru) 2018-12-17 2019-12-09 Общество с ограниченной ответственностью "Траст" Способ и вычислительное устройство для выявления подозрительных пользователей в системах обмена сообщениями
US11368475B1 (en) 2018-12-21 2022-06-21 Fireeye Security Holdings Us Llc System and method for scanning remote services to locate stored objects with malware
CN111444508A (zh) * 2018-12-27 2020-07-24 北京奇虎科技有限公司 基于虚拟机实现的cpu漏洞检测装置及方法
RU2701040C1 (ru) 2018-12-28 2019-09-24 Общество с ограниченной ответственностью "Траст" Способ и вычислительное устройство для информирования о вредоносных веб-ресурсах
US11258806B1 (en) 2019-06-24 2022-02-22 Mandiant, Inc. System and method for automatically associating cybersecurity intelligence to cyberthreat actors
US11556640B1 (en) 2019-06-27 2023-01-17 Mandiant, Inc. Systems and methods for automated cybersecurity analysis of extracted binary string sets
US11392700B1 (en) 2019-06-28 2022-07-19 Fireeye Security Holdings Us Llc System and method for supporting cross-platform data verification
US11637862B1 (en) 2019-09-30 2023-04-25 Mandiant, Inc. System and method for surfacing cyber-security threats with a self-learning recommendation engine
RU2728497C1 (ru) 2019-12-05 2020-07-29 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения принадлежности программного обеспечения по его машинному коду
RU2728498C1 (ru) 2019-12-05 2020-07-29 Общество с ограниченной ответственностью "Группа АйБи ТДС" Способ и система определения принадлежности программного обеспечения по его исходному коду
RU2743974C1 (ru) 2019-12-19 2021-03-01 Общество с ограниченной ответственностью "Группа АйБи ТДС" Система и способ сканирования защищенности элементов сетевой архитектуры
SG10202001963TA (en) 2020-03-04 2021-10-28 Group Ib Global Private Ltd System and method for brand protection based on the search results
US11411805B1 (en) 2021-07-12 2022-08-09 Bank Of America Corporation System and method for detecting root cause of an exception error in a task flow in a distributed network
US20230195881A1 (en) * 2021-12-16 2023-06-22 Hewlett-Packard Development Company, L.P. Virtual machines to install untrusted executable codes
US11438251B1 (en) 2022-02-28 2022-09-06 Bank Of America Corporation System and method for automatic self-resolution of an exception error in a distributed network

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3801643B2 (ja) 1996-01-24 2006-07-26 サン・マイクロシステムズ・インコーポレイテッド スタックを用いる演算マシンのための命令フォールディング処理
US7007301B2 (en) 2000-06-12 2006-02-28 Hewlett-Packard Development Company, L.P. Computer architecture for an intrusion detection system
GB2378535A (en) * 2001-08-06 2003-02-12 Ibm Method and apparatus for suspending a software virtual machine
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US20050076186A1 (en) 2003-10-03 2005-04-07 Microsoft Corporation Systems and methods for improving the x86 architecture for processor virtualization, and software systems and methods for utilizing the improvements
US7263690B1 (en) 2003-11-14 2007-08-28 Sun Microsystems, Inc. Mechanism for safe byte code in a tracing framework
US8239939B2 (en) * 2005-07-15 2012-08-07 Microsoft Corporation Browser protection module
US8201246B1 (en) 2008-02-25 2012-06-12 Trend Micro Incorporated Preventing malicious codes from performing malicious actions in a computer system
US8352240B2 (en) 2008-06-20 2013-01-08 Vmware, Inc. Decoupling dynamic program analysis from execution across heterogeneous systems
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
KR101493076B1 (ko) 2009-04-07 2015-02-12 삼성전자 주식회사 버퍼 오버플로우 관리를 통한 바이러스 코드 실행방지장치 및 그 방법
US8225317B1 (en) 2009-04-17 2012-07-17 Symantec Corporation Insertion and invocation of virtual appliance agents through exception handling regions of virtual machines
US20110197256A1 (en) 2009-12-18 2011-08-11 Assured Information Security, Inc. Methods for securing a processing system and devices thereof
US8966623B2 (en) 2010-03-08 2015-02-24 Vmware, Inc. Managing execution of a running-page in a virtual machine
CN102750475B (zh) * 2012-06-07 2017-08-15 中国电子科技集团公司第三十研究所 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
http://en.wikipedia.org/w/index.php?title=Function_overloading&oldid=525790025

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2881881B1 (de) * 2013-12-05 2021-02-17 McAfee, LLC Maschinenlesbares medium, verfahren und system zur detektion von java-sandbox-escape-angriffen auf grundlage von java-bytecode-intrumentation und java-einschubverfahren
DE102014201592A1 (de) 2014-01-29 2015-07-30 Siemens Aktiengesellschaft Verfahren und Vorrichtungen zum Erkennen von autonomer, selbstpropagierender Software
CN104461832A (zh) * 2015-01-07 2015-03-25 浪潮(北京)电子信息产业有限公司 一种监控应用服务器资源的方法及装置
CN104461832B (zh) * 2015-01-07 2017-09-12 浪潮(北京)电子信息产业有限公司 一种监控应用服务器资源的方法及装置
CN112019506A (zh) * 2020-07-28 2020-12-01 杭州安恒信息技术股份有限公司 基于行为识别的钓鱼邮件检测方法、电子装置及介质
CN112019506B (zh) * 2020-07-28 2023-04-18 杭州安恒信息技术股份有限公司 基于行为识别的钓鱼邮件检测方法、电子装置及介质
CN112822291A (zh) * 2021-02-07 2021-05-18 国网福建省电力有限公司电力科学研究院 一种工控设备的监测方法与装置
CN113806750A (zh) * 2021-09-24 2021-12-17 深信服科技股份有限公司 文件安全风险检测方法、模型的训练方法、装置和设备

Also Published As

Publication number Publication date
CN103593608B (zh) 2016-11-23
RU2012156443A (ru) 2014-06-27
US8713631B1 (en) 2014-04-29
FR3000249A3 (fr) 2014-06-27
RU2522019C1 (ru) 2014-07-10
CN103593608A (zh) 2014-02-19
FR3000249B3 (fr) 2015-04-24

Similar Documents

Publication Publication Date Title
DE202013102179U1 (de) System zu detektieren von durch eine virtuelle Maschine ausgeführtem Schadcode
DE202011111121U1 (de) System zum Erfassen komplexer Schadsoftware
EP3274825B1 (de) Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
DE202014011086U1 (de) System zur Bestimmung einer Vertrauenswürdigkeitskategorie von Anwendungen, die eine Schnittstellenüberlagerung durchführen
DE60303753T2 (de) Selektives Erkennen von böswilligem Rechnercode
DE112019001121B4 (de) Auf einem computer implementiertes verfahren zum identifizieren von malware und system hierfür
DE102005021064B4 (de) Verfahren und Vorrichtung zum Schutz gegen Buffer Overrun-Attacken
EP3111355B1 (de) Verfahren zum schutz eines computerprogramms gegen beeinflussung und computersystem
DE202014011092U1 (de) Sicherheitsarchitektur für virtuelle Maschinen
DE112012000279T5 (de) Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen
DE102013203854A1 (de) Erfassen von bösartigem Computercode in einem ausführenden Programmmodul
DE102007046475A1 (de) Überwachen eines Ausführungsmusters eines Target-Agents auf einem VT-fähigen System
DE112019000594T5 (de) Injizieren von Abfangcode in einen Ausführungspfad eines ein Programm ausführenden Prozesses, um einen Abfangadressbereich zu erzeugen, um möglichen schädlichen Programmcode zu erkennen
DE112010004526T5 (de) System, Verfahren und Vorrichtung für eine Gleichzeitige Festlegung und Durchsetzung von Richtlinien zur Zugriffskontrolle und Integrität
DE112017004962T5 (de) Steuerflussintegrität
EP3095065B1 (de) Vorrichtung und verfahren zum detektieren einer manipulation an einem programmcode
DE102005046696B4 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
DE112020004607T5 (de) Sicherheitsüberprüfung eines universal serial bus gerätes
DE202013103358U1 (de) Selektive Einschätzung der Schädlichkeit von im Adressraum eines vertrauenswürdigen Prozesses ausgeführtem Software-Code
Li et al. Holistic security requirements analysis: An attacker's perspective
DE102015112837A1 (de) Vorrichtung und Verfahren zur Verhinderung des Klonens von Code
DE102021110768B3 (de) Forensik-Modul und eingebettetes System
DE102021212994B3 (de) Verfahren zur Erkennung von auf eine Manipulation hindeutenden Anomalien während eines sicheren Startvorgangs einer softwaregesteuerten Vorrichtung
Lunkeit et al. Verifikation und Validierung
WO2022229153A1 (de) Emulationssystem und verfahren

Legal Events

Date Code Title Description
R207 Utility model specification

Effective date: 20130926

R150 Utility model maintained after payment of first maintenance fee after three years
R081 Change of applicant/patentee

Owner name: AO KASPERSKY LAB, RU

Free format text: FORMER OWNER: KASPERSKY LAB, ZAO, MOSKAU, RU

R082 Change of representative

Representative=s name: V. FUENER EBBINGHAUS FINCK HANO, DE

R151 Utility model maintained after payment of second maintenance fee after six years
R152 Utility model maintained after payment of third maintenance fee after eight years
R071 Expiry of right