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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic 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 von3 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 Block101 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 bei103 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 bei104 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 bei106 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, bei105 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 Entscheidung107 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 bei108 beendet; wenn der Code dagegen sicher ist, wird der virtuellen Maschine erlaubt, den Betrieb fortzusetzen. Folglich wird bei109 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 Überwachungsmodul201 in den Code (d. h. die Programmanweisungen) der virtuellen Maschine203 integriert. Das Überwachungsmodul201 verfolgt Programmfehler, die während des Betriebs der virtuellen Maschine203 auftreten, während sie den Code einer betreffenden Menge von Programmanweisungen ausführt, und wenn Programmfehler auftreten, sammelt das Überwachungsmodul201 Programmfehler-Kontextinformationen über die den Programmfehler umgebenden Umstände und übermittelt die gesammelten Informationen dann zu dem Analysemodul202 . Das Analysemodul202 ist bei dieser Ausführungsform als von der virtuellen Maschine203 verschiedenes Modul implementiert. Das Analysemodul202 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 Analysemodul202 vergleicht den empfangenen Kontext mit einer Menge von einer oder mehreren Vorlagen, die in einer regelmäßig aktualisierten Datenbank204 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 Analysemodul202 eine Entscheidung bezüglich der Sicherheit des Codes, der den Programmfehler verursacht hat, und meldet die Schlussfolgerung an das Überwachungsmodul201 . Abhängig von der Entscheidung durch das Analysemodul202 erlaubt das Überwachungsmodul201 entweder der virtuellen Maschine203 , 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 JVM302 durch Ergänzungscode ergänzt wird, der das Überwachungsmodul201 in dem Adressraum der virtuellen Maschine302 implementiert, um Bedrohungen zu detektieren. Bei dieser Ausführungsform wird die Einfügung des Ergänzungscodes für die JVM302 durch das Steuermodul303 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 Steuermodul303 beim Start der JVM in dem System den Code der virtuellen Maschine durch Einfügen eines spezialisierten Überwachungsmoduls201 in die JVM. - Bei einer Ausführungsform wird das Überwachungsmodul
201 als eine Zusatzerweiterung eines existierenden eingebauten Sicherheitsmanagers301 realisiert. Der eingebaute Sicherheitsmanager301 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 JVM302 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 Steuermodul303 zu dem Analysemodul202 . Das Analysemodul202 bestimmt auf der Basis der Analyse der aus dem Überwachungsmodul201 empfangenen Daten die Sicherheit des Verhaltens des Codes, der den Programmfehler verursacht hat. Wenn das Verhalten als schädlich angesehen wird, weist das Steuermodul303 das Überwachungsmodul201 an, die Ausführung des Codes zu beenden. Um die Bestimmung von Schädlichkeit durchzuführen, wird durch das Analysemodul202 ein Vergleich unter Verwendung von Vorlagen ausgeführt, die in der regelmäßig aktualisierten Datenbank204 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 Überwachungsmodul201 sammelt Informationen über den Kontext des Programmfehlers, einschließlich des Aufruf-Stapels des aktuellen Thread, wofür ein Beispiel in4 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 Steuermodul303 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 Datenbank204 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 Server520 umfasst eine Hardwareplattform, die einen Prozessor521 , Systemspeicher522 und den Systembus523 umfasst, die verschiedene Systemkomponenten enthält, darunter mit dem Prozessor521 assoziierten Speicher. Der Systembus523 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 Computer520 sicherstellen, zum Beispiel zur Bootzeit unter Verwendung des ROM524 . - Der Personal Computer
520 enthält ein Festplattenlaufwerk527 zum Lesen und Schreiben, ein magnetisches Laufwerk528 zum Lesen und Schreiben auf einen wechselbaren magnetischen Datenträger529 und ein optisches Laufwerk530 zum Lesen und Schreiben auf einen wechselbaren optischen Datenträger531 , wie etwa CD-ROM, DVD-ROM oder andere optische Medien. Das Festplattenlaufwerk527 , das magnetische Laufwerk528 und das optische Laufwerk530 sind alle über die Festplattenschnittstelle532 , die Schnittstelle533 des magnetischen Laufwerks bzw. eine Schnittstelle534 des optischen Laufwerks mit dem Systembus523 verbunden. Laufwerke und die entsprechenden Computerspeichermedien sind nicht flüchtig, und nichtflüchtige Speichermittel von Computeranweisungen, Datenstrukturen, Programmmodulen und anderen Daten eines Personal Computer520 . Die vorliegende Beschreibung enthüllt die Implementierung eines Systems, das eine Festplatte, einen wechselbaren magnetischen Datenträger529 und einen wechselbaren optischen Datenträger531 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äger529 , einem optischen Datenträger531 , ROM524 oder RAM525 gespeichert. Ein Computer520 besitzt ein Dateisystem536 , das das Betriebssystem535 und zusätzliche Softwareanwendungen537 , andere Programmmodule538 und Programmdaten539 speichert. Der Benutzer hat die Möglichkeit, durch Eingabeeinrichtungen (Tastatur540 , Maus542 ) Befehle und Informationen in einen Personal Computer520 einzugeben. Andere Eingabeeinrichtungen wären (nicht gezeigt): Mikrofon, Joystick, Spielkonsole, Satellitenschüssel, Scanner usw. Solche Eingabeeinrichtungen werden gewöhnlich durch einen seriellen Port546 , der seinerseits mit dem Systembus verbunden ist, mit dem Prozessor521 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 Monitor547 oder eine andere Art von Anzeigeeinrichtung über eine Schnittstelle, wie etwa einen Videoadapter548 , mit dem Systembus523 verbunden. Zusätzlich zu dem Monitor547 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 Computern549 . 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 Computer520 , der in5 gezeigt ist, beschriebenen Elemente, aber nur als Speichereinrichtung550 mit Anwendungen537 . 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 Schnittstelle553 mit dem LAN551 verbunden. Bei Verwendung der WAN-Vernetzung besitzt der Personal Computer520 ein Modem554 oder ein anderes Mittel zur Kommunikation mit dem globalen Computernetzwerk552 , wie etwa dem Internet. Ein Modem554 , das intern oder extern sein kann, ist über einen seriellen Port546 mit dem Systembus523 verbunden. In einer vernetzten Umgebung sind Softwaremodule exponierter Personal Computer520 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)
- 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.
- 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.
- 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.
- 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.
- 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
| 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)
| 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)
| 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 | 中国电子科技集团公司第三十研究所 | 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统 |
-
2012
- 2012-12-25 RU RU2012156443/08A patent/RU2522019C1/ru active
-
2013
- 2013-02-14 US US13/767,391 patent/US8713631B1/en active Active
- 2013-05-10 FR FR1354230A patent/FR3000249B3/fr not_active Expired - Lifetime
- 2013-05-17 DE DE201320102179 patent/DE202013102179U1/de not_active Expired - Lifetime
- 2013-12-03 CN CN201310642107.1A patent/CN103593608B/zh active Active
Non-Patent Citations (1)
| Title |
|---|
| http://en.wikipedia.org/w/index.php?title=Function_overloading&oldid=525790025 |
Cited By (8)
| 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 |