DE202011111121U1 - System zum Erfassen komplexer Schadsoftware - Google Patents

System zum Erfassen komplexer Schadsoftware Download PDF

Info

Publication number
DE202011111121U1
DE202011111121U1 DE202011111121.4U DE202011111121U DE202011111121U1 DE 202011111121 U1 DE202011111121 U1 DE 202011111121U1 DE 202011111121 U DE202011111121 U DE 202011111121U DE 202011111121 U1 DE202011111121 U1 DE 202011111121U1
Authority
DE
Germany
Prior art keywords
processes
objects
threads
context
separate
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
DE202011111121.4U
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
Application filed by Kaspersky Lab AO filed Critical Kaspersky Lab AO
Publication of DE202011111121U1 publication Critical patent/DE202011111121U1/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/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

System zum Erfassen von Computer-Schadsoftware, umfassend:
einen Speicher, der dafür konfiguriert ist, eine Liste vertrauenswürdiger Software-Objekte (109) und Schadsoftware-Verhaltensregeln (107) zu speichern;
einen mit dem Speicher verbundenen Prozessor, wobei der Prozessor für Folgendes konfiguriert ist:
Beobachten der Ausführung von Prozessen oder Threads (201, 202) eines oder mehrerer Software-Objekte (101);
Bestimmen, ob das eine oder die mehreren Objekte (101) vertrauenswürdige Objekte oder nicht vertrauenswürdige Objekte sind;
Erzeugen eines separaten Objektkontexts (203, 204) für jedes nicht vertrauenswürdige Objekt;
Speichern von Ausführungsereignissen der beobachteten Prozesse oder Threads (201, 202) jedes nicht vertrauenswürdigen Objekts in einer Vielzahl von separaten Objektkontexten (203, 204); dadurch gekennzeichnet, dass der Prozessor für Folgendes konfiguriert ist:
Bestimmen, ob die Prozesse oder Threads (201, 202), deren Ausführungsereignisse in separaten Objektkontexten (203, 204) gespeichert sind, miteinander verwandt sind, wobei Prozesse verwandt sind, wenn ein Prozess einen anderen Prozess initiiert, ein Prozess ein neues Objekt erzeugt, aus dem ein neuer Prozess initiiert wird, oder ein Prozess einen Thread in einen anderen Prozess einbettet;
Erzeugen eines neuen separaten gemeinsamen Kontexts (205) für zwei oder mehr verwandte Prozesse oder Threads (201, 202);
Verschmelzen von Ereignissen, die in den separaten Objektkontexten (203, 204) der zwei oder mehr verwandten Prozesse oder Threads (201, 202) gespeichert sind, zu dem separaten gemeinsamen Kontext (205);
unabhängiges Analysieren von Ereignissen der Prozesse oder Threads (201, 202), die in jedem der Vielzahl von separaten Objektkontexten (203, 204) gespeichert sind, unter Verwendung von Schadsoftware-Verhaltensregeln (107) zum Identifizieren eines oder mehrerer schädlicher Software-Objekte, die schädliche Verhaltensmuster aufweisen; und
unabhängiges Analysieren von Ereignissen der verwandten Prozesse oder Threads (201, 202), die in dem separaten gemeinsamen Kontext (205) gespeichert sind, unter Verwendung von Schadsoftware-Verhaltensregeln (107) zum Identifizieren eines oder mehrerer schädlicher Software-Objekte, die komplexe schädliche Verhaltensmuster aufweisen.

Description

  • Die vorliegende Erfindung betrifft das Gebiet der Computersicherheit, und insbesondere ein System und ein Computerprogrammprodukt zum Schutz eines Computers vor Schadsoftware mit komplexen Infizierungsmustern.
  • HINTERGRUND
  • Computerschadsoftware wie Viren, Würmer und Trojaner stellen wesentliche Sicherheitsbedrohungen für Computersysteme und Netzwerke dar. Um die immer stärkere Ausbreitung von Computerschadsoftware zu bekämpfen, wurde eine große Zahl von Antivirus-Erfassungstechniken entwickelt. Jedoch sind nicht alle Schadsoftware-Erfassungssysteme wirksam beim Schutz von Computern vor Schadsoftware; insbesondere wenn die Schadsoftware speziell dafür entwickelt wurde, diese Erfassungssysteme zu umgehen.
  • Die US 2008/0066179 offenbart ein Antivirus-Schutzsystem und -verfahren für Computer auf der Grundlage einer Programmverhaltensanalyse. Das System umfasst eine Prozessverhaltens-Auswertungseinheit zum Identifizieren der auf den Computern des Benutzers vorhandenen Programme und deren Einteilung in normale Programme und verdächtige Programme; eine Programmbeobachtungseinheit zum Beobachten und Aufzeichnen der Aktionen und/oder Verhaltensweisen von Programmen; eine Korrelationsanalyseeinheit zum Erzeugen von Korrelationsbäumen und Analysieren der Korrelationen von Aktionen und/oder Verhaltensweisen von Programmen, wobei die Korrelationsbäume einen Prozessbaum und einen Dateibaum umfassen; eine Virusidentifizierungs-Wissensdatenbank, die eine Programmverhaltens-Wissensdatenbank und eine Datenbank von Angriffs-Identifikationsregeln umfasst; eine Virusidentifizierungseinheit zum Vergleichen aufgenommener Aktionen und/oder Verhaltensweisen mit den Informationen in der Virusidentifizierungs-Wissensdatenbank, um zu bestimmen, ob das Programm ein Virusprogramm ist. Insbesondere können die Korrelationsbäume einen Prozessbaum und einen Dateibaum aufweisen. Bei dem Prozessbaum kann jeder Knotenpunkt einen Prozess darstellen und die Informationen über das Aktionsverhalten, wenn der Prozess läuft, sowie die Indexinformationen in dem Dateibaum speichern. Der Elternknoten jedes Knotens kann dessen Elternprozess entsprechen.
  • Im einfachsten Fall kann eine Schadsoftware eine einzelne Komponente oder ein einzelnes Objekt sein, beispielsweise eine ausführbare Datei, die, wenn sie gestartet wird, Aktionen durchführt, die dem Computer Schaden zufügen können. Übliche Schadsoftware-Erfassungstechniken wie eine Signatur oder eine heuristische Analyse erfassen typischerweise Einzelkomponenten-Schadsoftware. Komplexere Schadsoftware besteht jedoch aus multiplen Komponenten, wobei jede Komponente bestimmte Aktionen durchführt; beispielsweise kann eine Komponente Aktionen mit Dateien durchführen, die zweite Komponente kann die Systemregistrierung verändern, und die dritte Komponente kann Netzwerkfunktionen durchführen. Weiterhin ist es möglich, dass jede Komponente allein keine schädlichen Aktionen durchführt, wenn aber ihre Aktionen kombiniert werden, können sie dem Computer Schaden zufügen. Die gewöhnlichen Schadsoftware-Erfassungssysteme können solche Mehrkomponenten-Schadsoftware mit komplexen Infizierungsmustern möglicherweise nicht wirksam erfassen.
  • Dementsprechend besteht Bedarf an einem neuen System zur Erfassung von Schadsoftware mit komplexen Infizierungsmustern.
  • KURZER ABRISS DER ERFINDUNG
  • Offenbart werden ein System und ein Computerprogrammprodukt zum Erfassen von Computerschadsoftware wie in den unabhängigen Ansprüchen dargelegt.
  • Ein entsprechendes Verfahren umfasst das Beobachten der Ausführung von Prozessen oder Threads eines oder mehrerer Software-Objekte auf einem Computer durch ein Schadsoftware-Erfassungssystem. Das System bestimmt anschließend, ob das eine oder die mehreren Objekte vertrauenswürdige Objekte sind, indem digitale Signaturen der Objekte berechnet werden und geprüft wird, ob die digitalen Signaturen mit vertrauenswürdigen Objekten in Verbindung stehen. Wenn die Objekte vertrauenswürdig sind, beendet das System die Beobachtung des einen oder der mehreren Prozesse oder Threads des vertrauenswürdigen Objekts. Wenn das eine oder die mehreren Objekte nicht vertrauenswürdig sind, speichert das System Ausführungsereignisse der beobachteten Prozesse oder Threads jedes nicht vertrauenswürdigen Objekts in einer Vielzahl von separaten Objektkontexten. Das System analysiert anschließend getrennt Ausführungsereignisse des beobachteten Prozesses oder Threads, die in jedem Objektkontext gespeichert sind, unter Verwendung von Schadsoftware-Verhaltensregeln, um schädliche Objekte zu identifizieren. Wenn die Ausführungsereignisse des beobachteten Prozesses oder Threads bei separaten Objektkontexten nicht schädlich sind, bestimmt das System, ob die beobachteten Prozesse oder Threads miteinander verwandt sind, und verschmilzt Kontexte verwandter Prozesse oder Threads zu einem gemeinsamen Kontext. Das System analysiert anschließend die in dem gemeinsamen Kontext gespeicherten Ereignisse unter Verwendung von Schadsoftware-Verhaltensregeln, um schädliche Objekte mit komplexem Verhalten zu identifizieren.
  • Dieser Abriss ist kein umfassender Überblick über alle in Betracht gezogenen Aspekte der Erfindung und dient weder der Identifikation von Schlüsselelementen oder kritischen Elementen aller Ausführungsformen noch der Begrenzung des Schutzbereichs einiger oder aller Ausführungsformen. Sein einziger Zweck ist die Darstellung einiger Konzepte eines oder mehrerer Aspekte in vereinfachter Form als Einführung zu der folgenden, detaillierteren Beschreibung. Zum Erreichen dieses und verwandter Ziele umfassen die eine oder die mehreren Ausführungsformen die Merkmale, die im Folgenden vollständig beschrieben und in den Ansprüchen besonders hervorgehoben sind. Die folgende Beschreibung und die beigefügten Zeichnungen stellen bestimmte illustrative Merkmale der einen oder der mehreren Ausführungsformen dar. Diese Merkmale sind jedoch nur für wenige der verschiedenen Arten indikativ, auf die die Prinzipien verschiedener Aspekte der Erfindung angewandt werden können, und diese Beschreibung soll alle diese Aspekte der Erfindung und ihre Äquivalente umfassen.
  • Figurenliste
  • Die beigefügten Zeichnungen, die in diese Beschreibung eingefügt sind und einen Teil von ihr bilden, stellen ein oder mehrere Ausführungsbeispiele der Erfindung dar und dienen zusammen mit der ausführlichen Beschreibung der Erläuterung ihrer Grundsätze und Anwendungen.
  • In den Zeichnungen stellen dar:
    • 1 ein schematisches Diagramm eines Schadsoftware-Erfassungssystems gemäß einem Ausführungsbeispiel;
    • 2 ein Beispiel einer Kontextverschmelzung für verwandte Prozesse, die durch das Schadsoftware-Erfassungssystem gemäß einem Ausführungsbeispiel implementiert wird;
    • 3A-B den Operationsalgorithmus des Schadsoftware-Erfassungssystems gemäß einem Ausführungsbeispiel;
    • 4 ein schematisches Diagramm eines Computersystems gemäß einem Ausführungsbeispiel.
  • AUSFÜHRLICHE BESCHREIBUNG VON AUSFÜHRUNGSBEISPIELEN
  • Ausführungsbeispiele der vorliegenden Erfindung sind hier im Kontext von Systemen und Computerprogrammprodukten für die Erfassung von Computer-Schadsoftware beschrieben. Dem Durchschnittfachmann wird klar sein, dass die folgende Beschreibung rein illustrativ ist und in keiner Weise einschränkend sein soll. Weitere Ausführungsformen werden dem Fachmann, der von dieser Offenbarung profitiert, ohne weiteres klar werden. Im Folgenden wird detailliert auf Implementierungen der Ausführungsbeispiele eingegangen, wie in den beigefügten Zeichnungen dargestellt. Dieselben Bezugszeichen werden, soweit möglich, in den Zeichnungen und in der folgenden Beschreibung verwendet, um dieselben oder gleichartige Gegenstände zu bezeichnen.
  • 1 stellt ein Ausführungsbeispiel eines Schadsoftware-Erfassungssystems dar. Das System kann auf einem Personal Computer, einem Server, einem Netzwerk-Router, einem Mobiltelefon oder einem anderen elektronischen Gerät implementiert sein, das vor Computer-Schadsoftware geschützt werden muss (hier allgemein als Computer bezeichnet). Insgesamt beobachtet das System 100 die Ausführung von Prozessen und Threads, die durch verschiedene Software-Objekte 101 auf dem Computer gestartet werden, wie Programme, Dateien, Skripte, Dynamic-Link-Libraries usw., um schädliche Objekte zu erfassen. Bei einem Ausführungsbeispiel kann das beobachtete Objekt 101 eine ausführbare Datei umfassen, die einen Befehlscode aufweist, der in dem Speicherplatz des Computers, beispielsweise einem Festplattenlaufwerk oder Arbeitsspeicher des Computers, angeordnet ist. Wenn das Objekt 101 gestartet wird, erzeugt es einen Prozess in einem Systemspeicher. Ein Prozess ist ein Container, in dem der Befehlscode des Objekts 101 (z.B. einer ausführbaren Datei) ausgeführt wird. Der Prozess weist einen virtuellen Adressraum auf, wo seine Laufzeitdaten gespeichert werden und wo verwandte dynamische Bibliotheken DLL (Dynamic Link Library) abgebildet werden. Ein Prozess kann multiple Ausführungs-Threads umfassen. Der Code des Objekts wird innerhalb der Prozess-Threads ausgeführt. Jeder Prozess kann mit einem oder mehreren Objekten 101 in Zusammenhang stehen. Das bedeutet, dass, wenn ein Prozess oder ein Thread schädliche Aktionen auf dem Computer durchführt, das prozessstartende Objekt 101 ebenfalls schädlich ist.
  • Bei einem Ausführungsbeispiel umfasst das Schadsoftware-Erfassungssystem 100 ein Analysewerkzeug 102, das, wenn ein neuer Prozess auf einem Computer gestartet wird, die Parameter des Objekts 101 prüft, von dem der vorliegende Prozess gestartet wurde, unter Verwendung der verfügbaren Betriebssystemwerkzeuge und/oder einer digitalen Signatur des prozessstartenden Objekts 101. Als ein Parameter des Objekts 101 kann beispielsweise die Prüfsumme des prozessstartenden Objekts 101 oder die Code-Prüfsumme der ausführbaren Datei in dem virtuellen Speicher genommen werden. In der ersten Phase vergleicht das Analysewerkzeug 102 die Parameter des überprüften Objekts 101 mit den Parametern der vertrauenswürdigen Objekte, die in einem lokalen Speicher vertrauenswürdiger Objekte 109 angeordnet sind. Zusätzlich kann das Analysewerkzeug 102 die digitale Signatur des Objekts 101 prüfen. Die digitale Signatur ist eine elektronische Sicherheitskennzeichnung, die von einer Zertifizierungsstelle bereitgestellt und zu der Datei hinzugefügt wird. So stellt beim Starten des Prozesses das Analysewerkzeug 102 unter Verwendung vertrauenswürdiger Objektparameter die Vertrauenswürdigkeit des prozessstartenden Objekts 101 fest, einschließlich der Parameter von digital signierten Objekten, die in dem lokalen Speicher 109 angeordnet sind.
  • Bei einem Ausführungsbeispiel kann der lokale Speicher 109 nur Parameter der gewöhnlichsten Objekte enthalten. Wenn das Analysewerkzeug 102 die Objektparameter nicht in dem Speicher 109 finden kann, kann es in diesem Fall über ein Netzwerk 110 wie das Internet eine Anfrage an einen entfernten Antivirus-Server (nicht gezeigt) senden. Der Antivirus-Server kann einen vollständigen Satz von Parametern bekannter schädlicher und vertrauenswürdiger Objekte vorhalten und kann diese Information dem Analysewerkzeug 102 zur Verfügung stellen.
  • Bei einem Ausführungsbeispiel ist ein vertrauenswürdiges Objekt ein Objekt, das bekanntermaßen harmlos für den Computer ist, weshalb es nicht notwendig ist, zusätzliche Schadsoftware-Erfassungsaktionen an dem vertrauenswürdigen Objekt sowie den von diesem Objekt gestarteten Prozesse und Threads durchzuführen. Wenn das Objekt jedoch nicht vertrauenswürdig ist, d.h. das Analysewerkzeug 102 das überprüfte Objekt 101 nicht in der Liste der vertrauenswürdigen Objekte gefunden hat, besteht die Möglichkeit, dass sowohl das Objekt als auch der Prozess, den es startet, schädlich oder bösartig sind. Daher werden nicht vertrauenswürdige Objekte 101 (hier auch als verdächtige oder potenziell schädliche Objekte bezeichnet) weiterhin durch das System 100 beobachtet, um schädliche Aktionen der von diesen Objekten gestarteten Prozesse zu verhindern.
  • Insbesondere wenn das überprüfte Objekt 101 nicht vertrauenswürdig ist, sendet das Analysewerkzeug 102 die Daten des überprüften Objekts 101 an das Kontext-Kompilationswerkzeug 103, das einen Kontext für dieses Objekt kompiliert. Bei einem Ausführungsbeispiel ist der Kontext ein Protokoll von Ereignissen, die von den Prozessen (oder Threads) initiiert wurden, die von dem überprüften Objekt 101 gestartet wurden. Insbesondere kann das Kontext-Kompilationswerkzeug 103 einen separaten Kontext für jedes beobachtete, nicht vertrauenswürdige Objekt 101 generieren. Das Kontext-Kompilationswerkzeug 103 kann generierten Kontext in einem Kontextspeicher 104 speichern, der in einem Arbeitsspeicher oder Permanentspeicher des Computers implementiert sein kann.
  • Die von dem Kontext-Kompilationswerkzeug 103 den Objektkontexten hinzugefügten Ereignisse können umfassen, ohne darauf beschränkt zu sein: ein Ereignis einer Erzeugung eines neuen Objekts, ein Ereignis einer Modifikation eines bestehenden Objekts, ein Ereignis eines Prozessstarts, ein Ereignis einer Änderung von Systemregisterparametern, ein Ereignis einer Einrichtung einer Netzwerkverbindung sowie andere Arten von Ereignissen.
  • Bei einem Ausführungsbeispiel kann im Fall einer Erfassung von potenziell schädlichen Ereignissen wie Modifikationen an der Systemregistrierung und Versuche, ausführbare Dateien zu erzeugen oder zu modifizieren, wie .exe-Dateien, Skripte, Batch-Dateien usw., das analytische Werkzeug 102 eine Benachrichtigung an das Kontext-Kompilationswerkzeug 103 senden. Diese Benachrichtigung enthält wenigstens die Kennung des prozessstartenden Objekts wie eine Objekt-Prüfsumme. Sie enthält auch die Ereignisart wie eine Objekt-Modifikation und die Kennung des Objekts, auf das sich das Ereignis bezieht, wie die Prüfsumme des modifizierten Objekts. Bei Erhalt der Prozessereignis-Benachrichtigung kann das Kontext-Kompilationswerkzeug 103 diese Information im Kontext des analysierten Objekts 101 in dem Kontextspeicher 104 speichern. Die gesammelte Information wird weiter genutzt, um schädliche Objekte auf dem Computer zu erfassen.
  • Bei einem Ausführungsbeispiel verwendet das Kontext-Kompilationswerkzeug 103 während seiner Operation einen Kontextverschmelzungsmechanismus, der in 2 dargestellt ist. Der Kontextverschmelzungsmechanismus, d.h. der Mechanismus, der einen gemeinsamen Kontext für multiple nicht vertrauenswürdige Objekte erzeugt, deren individuelles Verhalten nicht schädlich erscheint, wird in dem Fall verwendet, wenn das Verhältnis zwischen mehreren Objekten oder ihren Prozessen während ihres Ausführungsprozesses identifiziert wird. Um die gesamte Sicherheitsbedrohung für den Computer in diesem Fall zu analysieren, kann es wünschenswert sein, die kumulativen Aktionen der Prozesse zu analysieren, die von unterschiedlichen, aber verwandten nicht vertrauenswürdigen Objekten gestartet werden. Beispielsweise entsteht das Verhältnis zwischen multiplen Prozessen, die von unterschiedlichen Objekten gestartet werden, in dem Fall, wenn ein Prozess aus einem anderen initiiert wird (d.h. ein Eltern-Kind-Verhältnis) und ein neues Objekt erzeugt, aus dem ein neuer Prozess initiiert wird, oder einen Thread in den initiierten Prozess einbettet. In solchen Situationen sind die Prozesse verwandt, und nicht nur die Aktionen werden analysiert, die sich bei der Ausführung bestimmter Prozesse ergeben, sondern auch die kumulativen Aktionen der verwandten Prozesse, die von unterschiedlichen Objekten gestartet werden. Eine ähnliche Situation entsteht beispielsweise, wenn die Multikomponenten-Schadsoftware oder andere Schadsoftware mit komplexen Infizierungsmustern den Computer infiziert.
  • Beispielsweise kann ein prozessstartendes Objekt 101 ein anderes Objekt erzeugen und starten. In diesem Fall generiert bei Auftreten des ersten Prozesses 201 in dem System, der nicht mit dem vertrauenswürdigen Objekt verwandt ist, das Kontext-Kompilationswerkzeug 103 den Kontext 203 in dem Kontextspeicher 104. Dieser Kontext 203 enthält Daten über die initiierten Ereignisse (Ereignis 1.1 - Ereignis 1.3) während der Ausführung des Prozesses 201. An einem Punkt während der Ausführung des Prozesses 201 kann ein Ereignis generiert werden, das ein neues Objekt erzeugt und startet, und dieses Ereignis initiiert einen neuen Prozess 202.
  • Wenn ein neuer Prozess 202 gestartet wird, generiert das Kontext-Kompilationswerkzeug 103 einen separaten Kontext 204 zum Aufzeichnen von Ereignissen, die von dem Prozess 202 generiert wurden. Bei einem Ausführungsbeispiel kann das Kontext-Kompilationswerkzeug 103 bestimmen, ob der neue Prozess 202 mit einem anderen beobachteten Prozess wie dem Prozess 201 verwandt ist. Falls die Prozesse 201 und 202 miteinander verwandt sind, kann das Kontext-Kompilationswerkzeug 103 einen neuen, separaten, gemeinsamen Kontext 205 generieren, der alle Ereignisse enthält, die während der Ausführung des ersten Prozesses 201 und des zweiten Prozesses 202 auftreten. Bei Auftreten potenziell schädlicher Ereignisse kommen sie daher zu dem gemeinsamen Kontext 205 sowie zu den individuellen Kontexten 203 oder 204 des prozessstartenden Objekts (der prozessstartenden Objekte) 101, der während seiner Ausführung zu potenziell schädlichen Ereignissen geführt hat.
  • Wie oben erwähnt können viele verschiedene Verhältnisse zwischen Objekten/Prozessen bestehen, und bei Erfassung neuer verwandter Objekte aktualisiert das Kontext-Kompilationswerkzeug 103 den Kontext des neuen Objekts und den gemeinsamen Kontext 205 um die Ereignisse, die während der Ausführung des Prozesses generiert wurden, der von dem neuen Objekt gestartet wurde. Insbesondere wenn ein neues Ereignis erfasst wird, wird es in einem (im Fall eines einzelnen Objekts) oder mehreren (im Fall verwandter Objekte) Kontexten in dem Kontextspeicher 104 aufgezeichnet. Auf diese Weise kann das Kontext-Kompilationswerkzeug 103 einer große Anzahl unterschiedlicher Kontexte für verschiedene verwandte Objekte erzeugen und diese Kontexte in dem Kontextspeicher 104 speichern.
  • Bei einem Ausführungsbeispiel ist ein Kontext-Analysewerkzeug 105 dafür konfiguriert, jeden Kontext in dem Kontextspeicher 104 unabhängig auf das Vorhandensein von Schadsoftware zu analysieren. Insbesondere analysiert das Kontext-Analysewerkzeug 105 auf der Grundlage des Verhaltens des Objekts während der Ausführung seines Prozesses (seiner Prozesse), die als Ereignisse in dem Objektkontext (den Objektkontexten) in dem Speicher 104 aufgezeichnet sind, ob ein Objekt schädlich ist oder nicht. Noch spezifischer wird die Analyse auf der Grundlage der Verhaltensregeln durchgeführt, die in dem Regelspeicher 107 gespeichert sind. Die Verhaltensregeln identifizieren Verhaltensweisen verschiedener bekannter Arten von Schadsoftware wie Viren, Würmer, Trojaner, Spam, Bots, Spoofer usw. Das Objektverhalten umfasst einen Satz von Aktionen, die während der Ausführung des Prozesses vorgenommen werden, der von dem überprüften Objekt 101 gestartet wird. Als Ergebnis seiner Operation kommt das Kontext-Analysewerkzeug 105 zu einer Schlussfolgerung bezüglich der Schädlichkeit des überprüften Objekts 101 auf der Grundlage seines Kontexts (seiner Kontexte).
  • Bei einem Ausführungsbeispiel wird die Analyse der Objektkontexte bei jedem Auftreten eines neuen Ereignisses in den Kontexten oder in dem Fall wiederholt, wenn, nachdem ein neues Ereignis aufgetreten ist, das Kontext-Analysewerkzeug 105 eine Schädlichkeit des Objekts erfasst; dann sendet das Kontext-Analysewerkzeug die Information über dieses Objekt an das Antivirus-Werkzeug 106. Das Antivirus-Werkzeug 106 kann geeignete Gegenmaßnahmen ergreifen, wie das Beenden des (der) von dem schädlichen Objekt initiierten Prozesses (Prozesse), und Unter-Quarantäne-Stellen oder Löschen des Objekts, das den schädlichen Prozess (die schädlichen Prozesse) gestartet hat.
  • Es ist möglich, dass die unabhängige Analyse des Kontexts 203 und des Kontexts 204 schädliche Objekte nicht identifiziert, weil Ereignisse jedes Kontexts harmlos oder für sich genommen nicht schädlich oder nicht bösartig erscheinen; eine Analyse des verschmolzenen Kontexts 205, der einen kombinierten Satz von Ereignissen umfasst, die von den verwandten Prozessen 201 und 202 generiert wurden, offenbart jedoch das schädliche Verhalten dieser Prozesse. Das bedeutet, dass die Schadsoftware ein komplexes Infizierungsmuster verwendet, d.h. sie agiert, indem sie mehrere Prozesse verwendet, und jeder Prozess ist für sich genommen nicht bedrohlich oder nicht schädlich, aber ihre kumulative Aktivität kann schädlich für den Computer sein. In diesem Fall kann das Antivirus-Werkzeug 106 die Ausführung der erfassten Prozesse unterbinden und alle damit verwandten Objekte löschen.
  • Bei einem weiteren Beispiel kann ein Prozess 203 die Sequenz von Operationen durchführen, die einen neuen Prozess initiiert oder einen bestehenden aktiviert, beispielsweise das Einbetten eines Threads in den bestehenden Prozess 202; anschließend kann der Prozess 201 beendet werden, aber der Prozess 202 wird weiter ausgeführt. Obgleich der Prozess 201 beendet wurde und sein individueller Kontext 203 aus dem Speicher 104 gelöscht worden sein kann, bleibt der kombinierte Kontext 205, der die Ereignisse des beendeten Prozesses 201 und die Ereignisse des laufenden Prozesses 202 enthält, in dem Speicher 104 und wird der Analyse durch das Kontext-Analysewerkzeug 105 unterzogen. Das bedeutet, dass die gespeicherte Sequenz von Aktionen des beendeten Prozesses 201 bei der Analyse des verwandten Prozesses 202 verwendet werden kann, um seine Schädlichkeit zu bestimmen und alle schädlichen Objekte zu identifizieren, sogar nachdem deren Prozesse beendet wurden.
  • Oft initiiert eine Schadsoftware Threads in einem Systemprozess, um ihre Aktivität zu verbergen; weil die Systemprozesse typischerweise als vertrauenswürdig angesehen werden, werden sie nicht durch die Antivirus-Anwendung geprüft. Der Systemprozess kann ein Prozess sein, der während der Systemoperation aus einer Systemdatei gestartet wird. Beispiele für Systemprozesse sind Svchost.exe (verantwortlich für die DLL-Verwendung), Winlogon.exe (steuert das Ein- und Ausloggen von Benutzern in das und aus dem System), Services.exe (verantwortlich für das Starten und Anhalten von Systemdiensten sowie für ihre Interaktion) usw. Wenn jedoch ein Thread in dem Systemprozess initiiert wird, kann das Kontext-Kompilationswerkzeug 103 dieses Ereignis registrieren; zusätzlich wird ein separater Kontext, der Daten der Systemprozessaktionen und den gemeinsamen Kontext für die verwandten Prozesse enthält, von dem Kontext-Kompilationswerkzeug 103 generiert. Von hier an kann das Kontext-Analysewerkzeug 105 die Aktivität des Systemprozesses beobachten. Im Fall schädlicher Aktivität kann das Kontext-Analysewerkzeug 105 leicht den Weg der Initiierung des schädlichen Threads in dem Systemprozess erfassen und das schädliche Objekt, das diese Aktivität durchführt, löschen.
  • Bei einem Ausführungsbeispiel ist das Kontext-Analysewerkzeug 105 über ein Netzwerk 110 mit einem entfernten Antivirus-Server (nicht gezeigt) verbunden. Das Werkzeug 105 sendet die identifizierten Schadsoftware-Kontexte und die verwandten Kontexte, die während der Analyse der Objekte 101 gefunden wurden, an den Antivirus-Server. Zusätzlich kann der Antivirus-Server seinerseits eine Anfrage an das Kontext-Analysewerkzeug 105 senden, die die Prüfsumme des Objekts enthält, die für die Anfrage nach dem Kontext verwendet wird. In diesem Fall sucht das Kontext-Analysewerkzeug das Objekt mit der empfangenen Prüfsumme und leitet diesen Kontext anschließend zusammen mit allen verwandten Kontexten an den Antivirus-Server weiter. Die Fähigkeit zur Interaktion mit dem Antivirus-Server ist nützlich, da sie dem Antivirus-Server ermöglicht, eine umfassende Analyse verschiedener Kontexte von Objekten durchzuführen, die von verschiedenen Systemen 100 erhalten werden, um das Verhalten neuer Arten von Schadsoftware zu analysieren und neue Schadsoftware-Verhaltensregeln zur Verwendung durch die Analysewerkzeuge 105 zu generieren.
  • Bei einem Ausführungsbeispiel umfasst das System 100 ein Aktualisierungswerkzeug 108, das die Regeln in dem Speicher 107 und die Liste der vertrauenswürdigen Objekte in dem Speicher 109 aktualisiert. Das Aktualisierungswerkzeug 108 verwendet Computernetzwerke 110, um Aktualisierungen von dem Antivirus-Server (nicht gezeigt) zu erhalten.
  • Bei verschiedenen Ausführungen implementiert das System 100 zusätzliche Mechanismen, die seine Effektivität bei der Erfassung von Schadsoftware verbessern. Beispielsweise kann das System 100 in einigen Situationen auf der Grundlage der aktuellen Version der in dem Speicher 107 gespeicherten Schadsoftware-Verhaltensregeln nicht schlüssig bestimmen, ob ein nicht vertrauenswürdiges Objekt 101 schädlich ist oder nicht, so dass in diesem Fall das Objekt 101 durch das Antivirus-Werkzeug 106 eine Zeit lang unter Quarantäne gestellt werden kann, beispielsweise eine Woche oder einen Monat, oder so lange keine neue Regel von dem Antivirus-Server bereitgestellt wird, die eine schlüssige Bestimmung ermöglicht, ob das unter Quarantäne gestellte Objekt schädlich ist oder nicht. Zusätzlich kann das System 100 den Kontext des unter Quarantäne gestellten Objekts in dem Kontextspeicher 104 speichern. Es ist möglich, dass nach einiger Zeit eine neue Regel von dem Antivirus-Server erzeugt wird, die eine schlüssige Identifizierung des unter Quarantäne gestellten Objekts als schädlich oder nicht ermöglicht. Nachdem der Regelspeicher 107 von dem Aktualisierungswerkzeug 108 aktualisiert wurde, kann somit das Werkzeug 108 die aktualisierten Regelinformationen an das Kontext-Analysewerkzeug 105 senden. Das Kontext-Analysewerkzeug 105 kann wiederum die zuvor gespeicherten Kontexte in dem Kontextspeicher 104 analysieren. Eine solche wiederholte Prüfung durch Verwendung neuer Verhaltensregeln ermöglicht die Erfassung neuer schädlicher Objekte, die vorher unter Verwendung alter Verhaltensregeln nicht erfassbar waren. Wenn der Kontext des unter Quarantäne gestellten Objekts 101 auf der Grundlage der neuen Verhaltensregeln als schädlich identifiziert wurde, dann kann das Kontext-Analysewerkzeug 105 das Antivirus-Werkzeug 106 informieren, dass das unter Quarantäne gestellte Objekt schädlich ist, so dass geeignete Gegenmaßnahmen bezüglich dieses Objekts ergriffen werden können.
  • 3A und B stellen einen Beispielalgorithmus zur Schadsoftware-Erfassung dar. In Schritt 301 kann das System 100 eine Liste von Signaturen vertrauenswürdiger Objekte in dem Speicher 109 aktualisieren. In Schritt 302 prüft das Aktualisierungswerkzeug 108, ob es verfügbare Regelaktualisierungen gibt, und aktualisiert den Speicher 107 mit neuen Schadsoftware-Verhaltensregeln in Schritt 303. Sobald die Regeln aktualisiert sind, informiert das Aktualisierungswerkzeug 108 das Kontext-Analysewerkzeug 105 über die Verfügbarkeit neuer Regeln. In Schritt 304 analysiert das Kontextanalyse-Werkzeug 105 die zuvor kompilierten und in dem Speicher 104 gespeicherten Kontexte unter Verwendung aktualisierter Regeln. Wenn der Kontextspeicher 104 keine zuvor gespeicherten Kontexte zu prüfen hat, wird die Analyse nicht durchgeführt. Wenn in Schritt 305 das Kontext-Analysewerkzeug 105 ein schädliches Verhaltensmuster eines gespeicherten Kontexts erfasst, sendet das Werkzeug 105 Informationen über diesen schädlichen Kontext an das Antivirus-Werkzeug 106, das ein verdächtiges Objekt in Quarantäne hält. Das Antivirus-Werkzeug 106 führt in Schritt 306 geeignete Gegenmaßnahmen durch. Zusätzlich kann das Kontext-Analysewerkzeug 105 Parameter des identifizierten schädlichen Objekts wie die Prüfsumme des Objekts in Schritt 307 an den Antivirus-Server senden.
  • Sobald die Liste der vertrauenswürdigen Objekte und die Regel-Datenbank in den Schritten 301-307 aktualisiert wurden, kann das Analysewerkzeug 102 in Schritt 308 das Beobachten der Ausführung verschiedener Prozesse auf dem Computer beginnen. Sobald der neue Prozess startet, prüft das Analysewerkzeug 102 in Schritt 309 die Vertrauenswürdigkeit des prozessstartenden Objekts 101, beispielsweise durch Vergleichen der Signatur des Objekts mit einer Liste von Signaturen vertrauenswürdiger Objekte, die in dem Speicher 109 enthalten sind. Wenn in Schritt 310 bestimmt wird, dass das Objekt vertrauenswürdig ist, dann sammelt das System 100 keine weiteren Informationen über das Objekt und ermöglicht, dass der von dem gegebenen Objekt initiierte Prozess ohne weitere Überprüfung auf dem Computer läuft. In diesem Fall stoppt das System seine Operationen bezüglich dieses Objekts und seiner Prozesse.
  • Wenn jedoch das Objekt 101 nicht in der Liste der vertrauenswürdigen Objekte 109 gefunden wurde, bedeutet dies, dass das überprüfte Objekt 101 schädlich sein kann. Dann sammelt das Analysewerkzeug 102 die Objektparameter in Schritt 311 und sendet sie an das Kontext-Kompilationswerkzeug 103, das in Schritt 313 den Kontext für dieses Objekt kompiliert. Der kompilierte Kontext wird in dem Kontextspeicher 104 gespeichert. Anschließend beobachtet das Kontext-Kompilationswerkzeug 103 das Auftreten verdächtiger Ereignisse in dem Prozess, der von dem überprüften Objekt 101 gestartet wurde, beispielsweise können solche Ereignisse mit der Erzeugung und Löschung von Objekten oder Modifikationen der Systemregistrierung usw. verwandt sein, und kann den Prozess beenden, wenn dessen Schädlichkeit schlüssig bestimmt wird. Wenn der Prozess jedoch nicht als schädlich identifiziert werden kann, bestimmt das System in Schritt 314, ob der beobachtete Prozess verwandte Prozesse oder Threads umfasst, beispielsweise durch Identifizieren von Ereignissen, die eine Verwandtschaft zwischen dem beobachteten Prozess und einem anderen ausgeführten Prozess oder Thread zeigen. Anschließend verschmilzt in Schritt 315 das Kontext-Kompilationswerkzeug 103 die Kontexte verwandter Objekte. Ein neuer gemeinsamer Kontext, der die Ereignisse mehrerer verwandter Prozesse enthält, wird in dem Kontextspeicher 104 gespeichert.
  • Bei Hinzufügung eines neuen Ereignisses zu dem Kontext (den Kontexten) analysiert das Kontext-Analysewerkzeug 105 in Schritt 316 den Kontext unter Verwendung von Schadsoftware-Verhaltensregeln aus dem Speicher 107. Wenn das Kontext-Analysewerkzeug 105 in Schritt 317 keine schädliche Aktivität des Prozesses erfasst, wird erlaubt, dass dieser Prozess weiterhin auf dem Computer läuft, und die Sammlung und Analyse von Ereignissen dieses Prozesses werden ebenfalls in Schritt 314 fortgesetzt. Wenn in Schritt 317 schädliche Aktivität erfasst wird, beendet das Antivirus-System 106 diesen Prozess und alle mit ihm verwandten Prozesse in Schritt 318. In Schritt 319 werden anschließend als Schritt 319 die verwandten Schadsoftware-Objekte gelöscht, repariert oder unter Quarantäne gestellt. Zusätzlich sendet in Schritt 320 das Kontext-Analysewerkzeug 105 die Parameter des schädlichen Objekts an den Antivirus-Server.
  • 4 zeigt ein Ausführungsbeispiel eines Computers 5, auf dem das Schadsoftware-Erfassungssystem 100 implementiert sein kann. Der Computer 5 kann einen oder mehrere Prozessoren 15, Speicher 20, ein oder mehrere Festplattenlaufwerke 30, ein oder mehrere optische Laufwerke 35, eine oder mehrere serielle Schnittstellen 40, eine Grafikkarte 45, eine Audiokarte 50 und Netzwerkkarte(n) 55 umfassen, die von einem Systembus 10 verbunden werden. Der Systembus 10 kann eine beliebige von verschiedenen Busstrukturarten sein, einschließlich eines Speicherbusses oder eines Speicher-Controllers, eines Peripheriebusses und eines lokalen Busses, wobei eine beliebige einer Vielzahl von bekannten Busarchitekturen verwendet wird. Der Prozessor 15 kann einen oder mehrere Intel® Core 2 Quad 2,33 GHz-Prozessoren oder eine andere Art Mikroprozessor umfassen.
  • Der Systemspeicher 20 kann einen permanenten Speicher (ROM) 21 und einen Arbeitsspeicher (RAM) 23 umfassen. Der Speicher 20 kann als DRAM (dynamisches RAM), EPROM, EEPROM, Flash- oder andere Art der Speicherarchitektur ausgeführt sein. Das ROM 21 speichert ein Eingabe-/Ausgabesystem (BIOS) 22, das die Grundroutinen enthält, die helfen, Informationen zwischen den Komponenten des Computersystems 5 zu übertragen, beispielsweise beim Hochfahren. Das RAM 23 speichert das Betriebssystem 24 (OS), wie Windows® XP Professional oder eine andere Art des Betriebssystems, das für das Management und die Koordination von Prozessen und die Zuweisung und das Teilen von Hardware-Ressourcen in dem Computersystem 5 verantwortlich ist. Der Systemspeicher 20 speichert auch Anwendungen und Programme 25 wie Dienste 306. Der Systemspeicher 20 speichert auch verschiedene Laufzeitdaten 26, die von den Programmen 25 verwendet werden.
  • Das Computersystem 5 kann weiterhin ein oder mehrere Festplattenlaufwerke 30, wie ein SATA-Magnetfestplattenlaufwerk (HDD), sowie ein oder mehrere optische Laufwerke 35 zum Lesen aus oder Schreiben auf einer entfernbaren optischen Platte wie einer CD-ROM, DVD-ROM oder anderen optischen Medien aufweisen. Die Laufwerke 30 und 35 und ihre angeschlossenen computerlesbaren Medien bieten eine nichtflüchtige Speicherung computerlesbarer Instruktionen, Datenstrukturen, Anwendungen und Programmmodulen/Subroutinen, die hier offenbarte Algorithmen und Verfahren implementieren. Obgleich das beispielartige Computersystem 5 magnetische und optische Platten verwendet, wird dem Fachmann klar sein, dass andere Arten computerlesbarer Medien, die Daten speichern können, die einem Computersystem 5 zugänglich sind, wie Magnetcassetten, Flash-Speicherkarten, digitale Videodisks, RAMs, ROMs, EPROMs und andere Speicherarten ebenfalls in alternativen Ausführungsformen des Computersystems verwendet werden können.
  • Das Computersystem 5 umfasst weiterhin eine Vielzahl serieller Schnittstellen 40 wie einen universellen seriellen Bus (USB) zur Verbindung einer oder mehrerer Dateneingabeeinrichtungen 75, wie eine Tastatur, eine Maus, ein Touchpad und andere. Serielle Schnittstellen 40 können auch verwendet werden, um eine oder mehrere Datenausgabeeinrichtungen 80 zu verbinden, wie einen Drucker, einen Scanner und andere, sowie ein oder mehrere andere Peripheriegeräte 85 wie externe Datenspeichereinrichtungen und Ähnliches. Das System 5 kann auch eine Grafikkarte 45 wie nVidia® GeForce® GT 240M oder eine andere Videokarte umfassen, um eine Schnittstelle mit einem Monitor 60 oder einer anderen Videowiedergabeeinrichtung zu bilden. Das System 5 kann auch eine Audiokarte 50 umfassen, um Ton über interne oder externe Lautsprecher 65 zu reproduzieren. Zusätzlich kann das System 5 eine oder mehrere Netzwerkkarten 55 umfassen, wie Ethernet, WiFi, GSM, Bluetooth, oder eine andere drahtgebundene, drahtlose oder Mobilfunknetz-Schnittstelle, um das Computersystem 5 mit einem Netzwerk 70 wie dem Internet zu verbinden.
  • In verschiedenen Ausführungsformen können die hier beschriebenen Algorithmen und Verfahren in Hardware, Software, Firmware oder einer beliebigen Kombination daraus implementiert werden. Wenn sie in Software implementiert werden, können die Funktionen als eine oder mehrere Instruktionen oder als Code auf einem nichtflüchtigen computerlesbaren Medium gespeichert werden. Das computerlesbare Medium umfasst sowohl Computerspeicherung als auch ein Kommunikationsmedium, das die Übertragung eines Computerprogramms von einem Ort zu einem anderen ermöglicht. Ein Speichermedium kann jedes verfügbare Medium sein, das einem Computer zugänglich ist. Beispielhalber und nicht im einschränkenden Sinn kann dieses computerlesbare Medium RAM, ROM, EEPROM, CD-ROM oder andere optische Plattenspeichereinrichtungen, Magnetplatten-Speichereinrichtungen oder andere magnetische Speichereinrichtungen oder ein beliebiges anderes Medium umfassen, das verwendet werden kann, um einen gewünschten Programmcode in Form von Instruktionen oder Datenstrukturen zu tragen oder zu speichern, und auf das durch einen Computer zugegriffen werden kann. Außerdem kann jede Verbindung als computerlesbares Medium bezeichnet werden. Wenn beispielsweise Software von einer Website, einem Server oder einer anderen entfernten Quelle unter Verwendung eines Koaxialkabels, faseroptischen Kabels, Twisted-Pair-Kabels, einer Digital Subscriber Line (DSL) oder von Drahtlostechnologien wie Infrarot, Funk und Mikrowellen übertragen werden, ist dies in der Definition des Mediums eingeschlossen.
  • Der Klarheit halber sind hier nicht alle Routinemerkmale der Ausführungsformen gezeigt und beschrieben. Es ist klar, dass bei der Entwicklung jeder tatsächlichen Implementation der Erfindung zahlreiche implementierungsspezifische Entscheidungen getroffen werden müssen, um die spezifischen Ziele des Entwicklers zu erreichen, und dass diese spezifischen Ziele bei verschiedenen Implementierungen und verschiedenen Entwicklern unterschiedlich sind. Es ist klar, dass ein solcher Entwicklungsaufwand komplex und zeitaufwändig sein kann, er ist aber dennoch eine Routineentwicklungsaufgabe für den Durchschnittsfachmann, der von dieser Offenbarung profitiert.
  • Weiterhin ist zu beachten, dass die hier verwendete Phraseologie oder Terminologie der Beschreibung dient und nicht einschränkend zu verstehen ist, so dass die Terminologie oder Phraseologie dieser Beschreibung vom Fachmann vor dem Hintergrund der Lehren und der Anleitung, die hierin ausgeführt sind, im Zusammenhang mit dem Wissen des Fachmanns auf dem einschlägigen Gebiet / den einschlägigen Gebieten auszulegen ist. Weiterhin ist nicht beabsichtigt, dass einem Begriff in der Beschreibung oder den Ansprüchen eine ungewöhnliche oder spezielle Bedeutung zugeschrieben werden soll, sofern dies nicht ausdrücklich vermerkt ist.
  • Die verschiedenen, hier offenbarten Ausführungsformen schließen gegenwärtige und zukünftige bekannte Äquivalente der hier zur Illustration genannten bekannten Komponenten ein.
  • Das erfindungsgemäße System zum Erfassen von Computer-Schadsoftware kann in den folgenden Verfahren angewandt werden:
    1. a) Verfahren zum Erfassen von Computer-Schadsoftware, wobei das Verfahren umfasst:
      • Beobachten der Ausführung von Prozessen oder Threads (201, 202) eines oder mehrerer Software-Obj ekte (101);
      • Bestimmen, ob das eine oder die mehreren Objekte (101) vertrauenswürdige Objekte oder nicht vertrauenswürdige Objekte sind;
      • Erzeugen eines separaten Objektkontexts (203, 204) für jedes nicht vertrauenswürdige Objekt;
      • Speichern von Ausführungsereignissen der beobachteten Prozesse oder Threads (201, 202) jedes nicht vertrauenswürdigen Objekts in einer Vielzahl von separaten Objektkontexten (203,204);
      • Bestimmen, ob die Prozesse oder Threads (201, 202), deren Ausführungsereignisse in separaten Objektkontexten (203, 204) gespeichert sind, miteinander verwandt sind, wobei Prozesse verwandt sind, wenn ein Prozess einen anderen Prozess initiiert, ein Prozess ein neues Objekt erzeugt, aus dem ein neuer Prozess initiiert wird, oder ein Prozess einen Thread in einen anderen Prozess einbettet;
      • Erzeugen eines neuen separaten gemeinsamen Kontexts (205) für zwei oder mehr verwandte Prozesse oder Threads (201, 202);
      • Verschmelzen von Ereignissen, die in den separaten Objektkontexten (203, 204) der zwei oder mehr verwandten Prozesse oder Threads (201, 202) gespeichert sind, zu dem separaten gemeinsamen Kontext (205);
      • unabhängiges Analysieren von Ereignissen der Prozesse oder Threads (201, 202), die in jedem der Vielzahl von separaten Objektkontexten (203, 204) gespeichert sind, unter Verwendung von Schadsoftware-Verhaltensregeln (107) zum Identifizieren eines oder mehrerer schädlicher Software-Objekte, die schädliche Verhaltensmuster aufweisen; und
      • unabhängiges Analysieren von verschmolzenen Ereignissen der verwandten Prozesse oder Threads (201, 202), die in dem separaten gemeinsamen Kontext (205) gespeichert sind, unter Verwendung von Schadsoftware-Verhaltensregeln (107) zum Identifizieren eines oder mehrerer schädlicher Software-Objekte, die komplexe schädliche Verhaltensmuster aufweisen.
    2. b) Verfahren nach Absatz a), weiterhin umfassend:
      • Beenden der Ausführung aller Prozesse und Threads (201, 202), die mit einem schädlichen Objekt in Verbindung stehen; und
      • Löschen, Unter-Quarantäne-Stellen oder Reparieren des schädlichen Objekts.
    3. c) Verfahren nach Absatz a), weiterhin umfassend:
      • Bestimmen, ob das eine oder die mehreren Objekte (101) vertrauenswürdige Objekte sind, durch Berechnen digitaler Signaturen der Objekte, und Prüfen, ob die digitalen Signaturen mit einem vertrauenswürdigen Objekt in Verbindung stehen; und
      • Stoppen des Beobachtens eines oder mehrerer Prozesse oder Threads eines vertrauenswürdigen Objekts.
    4. d) Verfahren nach Absatz a), wobei das Bestimmen, ob ein Objekt (101) vertrauenswürdig ist, umfasst:
      • Vergleichen der digitalen Signatur des Objekts mit einem lokalen Speicher vertrauenswürdiger Objekte (109); und
      • wenn die digitale Signatur des Objekts in dem lokalen Speicher vertrauenswürdiger Objekte (109) nicht gefunden wird, Senden einer Anfrage an einen entfernten Antivirus-Server, der eine umfassende Datenbank von Signaturen bekannter schädlicher und vertrauenswürdiger Objekte enthält.
    5. e) Verfahren nach Absatz a), wobei das Bestimmen, ob das Objekt (101) vertrauenswürdig ist, umfasst:
      • Berechnen einer Prüfsumme des Objekts; und
      • Anfragen bei einem entfernten Antivirus-Server, um zu bestimmen, ob die Prüfsumme mit einem schädlichen oder vertrauenswürdigen Objekt in Verbindung steht.
    6. f) Verfahren nach Absatz a), weiterhin umfassend:
      • Senden eines Kontexts eines Objekts (203, 204) an einen entfernten Antivirus-Server; und
      • Empfangen neuer Schadsoftware-Verhaltensregeln auf der Grundlage des gesendeten Kontexts (203, 204) von dem Server.
    7. g) Verfahren nach Absatz c), weiterhin umfassend:
      • Fortsetzen des Beobachtens eines vertrauenswürdigen Objekts, wenn ein Prozess des vertrauenswürdigen Objekts einen Thread in einen Systemprozess eingebettet hat; und
      • Speichern von Ausführungsereignissen dieses Systemprozesses in einem separaten Objektkontext.
  • 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 Patentliteratur
    • US 2008/0066179 [0003]

Claims (8)

  1. System zum Erfassen von Computer-Schadsoftware, umfassend: einen Speicher, der dafür konfiguriert ist, eine Liste vertrauenswürdiger Software-Objekte (109) und Schadsoftware-Verhaltensregeln (107) zu speichern; einen mit dem Speicher verbundenen Prozessor, wobei der Prozessor für Folgendes konfiguriert ist: Beobachten der Ausführung von Prozessen oder Threads (201, 202) eines oder mehrerer Software-Objekte (101); Bestimmen, ob das eine oder die mehreren Objekte (101) vertrauenswürdige Objekte oder nicht vertrauenswürdige Objekte sind; Erzeugen eines separaten Objektkontexts (203, 204) für jedes nicht vertrauenswürdige Objekt; Speichern von Ausführungsereignissen der beobachteten Prozesse oder Threads (201, 202) jedes nicht vertrauenswürdigen Objekts in einer Vielzahl von separaten Objektkontexten (203, 204); dadurch gekennzeichnet, dass der Prozessor für Folgendes konfiguriert ist: Bestimmen, ob die Prozesse oder Threads (201, 202), deren Ausführungsereignisse in separaten Objektkontexten (203, 204) gespeichert sind, miteinander verwandt sind, wobei Prozesse verwandt sind, wenn ein Prozess einen anderen Prozess initiiert, ein Prozess ein neues Objekt erzeugt, aus dem ein neuer Prozess initiiert wird, oder ein Prozess einen Thread in einen anderen Prozess einbettet; Erzeugen eines neuen separaten gemeinsamen Kontexts (205) für zwei oder mehr verwandte Prozesse oder Threads (201, 202); Verschmelzen von Ereignissen, die in den separaten Objektkontexten (203, 204) der zwei oder mehr verwandten Prozesse oder Threads (201, 202) gespeichert sind, zu dem separaten gemeinsamen Kontext (205); unabhängiges Analysieren von Ereignissen der Prozesse oder Threads (201, 202), die in jedem der Vielzahl von separaten Objektkontexten (203, 204) gespeichert sind, unter Verwendung von Schadsoftware-Verhaltensregeln (107) zum Identifizieren eines oder mehrerer schädlicher Software-Objekte, die schädliche Verhaltensmuster aufweisen; und unabhängiges Analysieren von Ereignissen der verwandten Prozesse oder Threads (201, 202), die in dem separaten gemeinsamen Kontext (205) gespeichert sind, unter Verwendung von Schadsoftware-Verhaltensregeln (107) zum Identifizieren eines oder mehrerer schädlicher Software-Objekte, die komplexe schädliche Verhaltensmuster aufweisen.
  2. System nach Anspruch 1, wobei der Prozessor weiterhin für Folgendes konfiguriert ist: Beenden der Ausführung aller Prozesse und Threads (201, 202), die mit einem schädlichen Objekt in Verbindung stehen; und Löschen, Unter-Quarantäne-Stellen oder Reparieren des schädlichen Objekts.
  3. System nach Anspruch 1, wobei der Prozessor weiterhin für Folgendes konfiguriert ist: Bestimmen, ob das eine oder die mehreren Objekte (101) vertrauenswürdige Objekte sind, durch Berechnen digitaler Signaturen der Objekte, und Vergleichen der digitalen Signaturen mit der Liste vertrauenswürdiger Software-Objekte (109), die in dem Speicher gespeichert ist; und Stoppen des Beobachtens einer oder mehrerer Prozesse oder Threads eines vertrauenswürdigen Objekts.
  4. System nach Anspruch 1, wobei, wenn die digitale Signatur des Objekts in der Liste der vertrauenswürdigen Software-Objekte (109) nicht gefunden wird, der Prozessor weiterhin für Folgendes konfiguriert ist: Senden einer Anfrage an einen entfernten Antivirus-Server, der eine umfassende Datenbank von Signaturen bekannter schädlicher und vertrauenswürdiger Objekte enthält.
  5. System nach Anspruch 1, wobei zum Bestimmen, ob das Objekt (101) vertrauenswürdig ist, der Computer weiterhin für Folgendes konfiguriert ist: Berechnen einer Prüfsumme des Objekts; und Anfragen bei einem entfernten Antivirus-Server, um zu bestimmen, ob die Prüfsumme mit einem schädlichen oder vertrauenswürdigen Objekt in Verbindung steht.
  6. System nach Anspruch 1, wobei der Prozessor weiterhin für Folgendes konfiguriert ist: Übermitteln eines Kontexts eines Objekts (203, 204) an einen entfernten Antivirus-Server; und Empfangen neuer Schadsoftware-Verhaltensregeln auf der Grundlage des übermittelten Kontexts (203, 204) von dem Server.
  7. System nach Anspruch 3, wobei der Prozessor weiterhin für Folgendes konfiguriert ist: Fortsetzen des Beobachtens eines vertrauenswürdigen Objekts, wenn ein Prozess des vertrauenswürdigen Objekts einen Thread in einen Systemprozess eingebettet hat; und Speichern von Ausführungsereignissen dieses Systemprozesses in einem separaten Objektkontext.
  8. Computerprogrammprodukt, umfassend einen Programmcode zum Implementieren des Systems nach wenigstens einem der vorhergehenden Ansprüche, wenn das Computerprogrammprodukt auf einer Computervorrichtung ausgeführt wird.
DE202011111121.4U 2011-04-19 2011-12-15 System zum Erfassen komplexer Schadsoftware Expired - Lifetime DE202011111121U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
RU2011115362/08A RU2454705C1 (ru) 2011-04-19 2011-04-19 Система и способ защиты компьютерного устройства от вредоносных объектов, использующих сложные схемы заражения
RU2011115362 2011-04-19

Publications (1)

Publication Number Publication Date
DE202011111121U1 true DE202011111121U1 (de) 2020-02-24

Family

ID=45421912

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202011111121.4U Expired - Lifetime DE202011111121U1 (de) 2011-04-19 2011-12-15 System zum Erfassen komplexer Schadsoftware

Country Status (4)

Country Link
EP (1) EP2515250A1 (de)
CN (1) CN102651061B (de)
DE (1) DE202011111121U1 (de)
RU (1) RU2454705C1 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202047B2 (en) 2012-05-14 2015-12-01 Qualcomm Incorporated System, apparatus, and method for adaptive observation of mobile device behavior
US9319897B2 (en) 2012-08-15 2016-04-19 Qualcomm Incorporated Secure behavior analysis over trusted execution environment
US9747440B2 (en) 2012-08-15 2017-08-29 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US10089582B2 (en) 2013-01-02 2018-10-02 Qualcomm Incorporated Using normalized confidence values for classifying mobile device behaviors
US9742559B2 (en) 2013-01-22 2017-08-22 Qualcomm Incorporated Inter-module authentication for securing application execution integrity within a computing device
WO2014126779A1 (en) * 2013-02-15 2014-08-21 Qualcomm Incorporated On-line behavioral analysis engine in mobile device with multiple analyzer model providers
US9330259B2 (en) * 2013-03-19 2016-05-03 Trusteer, Ltd. Malware discovery method and system
RU2531861C1 (ru) * 2013-04-26 2014-10-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
WO2015035559A1 (en) 2013-09-10 2015-03-19 Symantec Corporation Systems and methods for using event-correlation graphs to detect attacks on computing systems
US9166997B1 (en) 2013-09-19 2015-10-20 Symantec Corporation Systems and methods for reducing false positives when using event-correlation graphs to detect attacks on computing systems
US9148441B1 (en) 2013-12-23 2015-09-29 Symantec Corporation Systems and methods for adjusting suspiciousness scores in event-correlation graphs
US9256739B1 (en) 2014-03-21 2016-02-09 Symantec Corporation Systems and methods for using event-correlation graphs to generate remediation procedures
US10432720B1 (en) 2014-06-25 2019-10-01 Symantec Corporation Systems and methods for strong information about transmission control protocol connections
CN104156298B (zh) * 2014-08-19 2017-02-15 腾讯科技(深圳)有限公司 一种应用监控方法及装置
US9843594B1 (en) 2014-10-28 2017-12-12 Symantec Corporation Systems and methods for detecting anomalous messages in automobile networks
RU2584507C1 (ru) 2014-12-19 2016-05-20 Закрытое акционерное общество "Лаборатория Касперского" Способ обеспечения безопасного выполнения файла сценария
US10146893B1 (en) 2015-03-27 2018-12-04 Symantec Corporation Systems and methods for evaluating electronic control units within vehicle emulations
US9825986B1 (en) 2015-06-29 2017-11-21 Symantec Corporation Systems and methods for generating contextually meaningful animated visualizations of computer security events
US9852295B2 (en) * 2015-07-14 2017-12-26 Bitdefender IPR Management Ltd. Computer security systems and methods using asynchronous introspection exceptions
JP5933797B1 (ja) * 2015-10-07 2016-06-15 株式会社ソリトンシステムズ ログ情報生成装置及びプログラム並びにログ情報抽出装置及びプログラム
US9967274B2 (en) 2015-11-25 2018-05-08 Symantec Corporation Systems and methods for identifying compromised devices within industrial control systems
CN105389521B (zh) * 2015-12-18 2019-08-23 北京金山安全管理系统技术有限公司 一种对计算机系统中文件进行安全保护的方法
CN106560832A (zh) * 2015-12-31 2017-04-12 哈尔滨安天科技股份有限公司 一种拦截Linux内核恶意进程提权的方法及系统
US10104100B1 (en) 2016-03-03 2018-10-16 Symantec Corporation Systems and methods for detecting anomalies that are potentially indicative of malicious attacks
US10193903B1 (en) 2016-04-29 2019-01-29 Symantec Corporation Systems and methods for detecting suspicious microcontroller messages
US10091077B1 (en) 2016-06-27 2018-10-02 Symantec Corporation Systems and methods for detecting transactional message sequences that are obscured in multicast communications
CN106407807B (zh) * 2016-08-31 2019-01-22 福建省天奕网络科技有限公司 一种恶意线程检测方法及系统
US10200259B1 (en) 2016-09-21 2019-02-05 Symantec Corporation Systems and methods for detecting obscure cyclic application-layer message sequences in transport-layer message sequences
US9906545B1 (en) 2016-11-22 2018-02-27 Symantec Corporation Systems and methods for identifying message payload bit fields in electronic communications
US10326788B1 (en) 2017-05-05 2019-06-18 Symantec Corporation Systems and methods for identifying suspicious controller area network messages
RU2700185C1 (ru) * 2018-07-27 2019-09-13 Закрытое акционерное общество "Перспективный мониторинг" Способ обнаружения скрытого программного обеспечения в вычислительной системе, работающей под управлением POSIX-совместимой операционной системы
RU2702053C1 (ru) * 2018-12-28 2019-10-03 Акционерное общество "Лаборатория Касперского" Способ снижения нагрузки на сканирующую подсистему путем дедупликации сканирования файлов
CN111241546B (zh) * 2020-01-12 2022-06-21 苏州浪潮智能科技有限公司 一种恶意软件行为检测方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6775780B1 (en) * 2000-03-16 2004-08-10 Networks Associates Technology, Inc. Detecting malicious software by analyzing patterns of system calls generated during emulation
US20060265746A1 (en) * 2001-04-27 2006-11-23 Internet Security Systems, Inc. Method and system for managing computer security information
WO2004084063A1 (ja) * 2003-03-17 2004-09-30 Seiko Epson Corporation ウィルスの感染を阻止する方法およびシステム
WO2006101549A2 (en) * 2004-12-03 2006-09-28 Whitecell Software, Inc. Secure system for allowing the execution of authorized computer program code
TWI252976B (en) * 2004-12-27 2006-04-11 Ind Tech Res Inst Detecting method and architecture thereof for malicious codes
US7870612B2 (en) * 2006-09-11 2011-01-11 Fujian Eastern Micropoint Info-Tech Co., Ltd Antivirus protection system and method for computers
CN101350052B (zh) * 2007-10-15 2010-11-03 北京瑞星信息技术有限公司 发现计算机程序的恶意行为的方法和装置
US7472420B1 (en) * 2008-04-23 2008-12-30 Kaspersky Lab, Zao Method and system for detection of previously unknown malware components
GB2469323B (en) * 2009-04-09 2014-01-01 F Secure Oyj Providing information to a security application
RU91202U1 (ru) * 2009-10-01 2010-01-27 ЗАО "Лаборатория Касперского" Система обнаружения неизвестных вредоносных программ

Also Published As

Publication number Publication date
CN102651061A (zh) 2012-08-29
EP2515250A1 (de) 2012-10-24
RU2454705C1 (ru) 2012-06-27
CN102651061B (zh) 2014-12-03

Similar Documents

Publication Publication Date Title
DE202011111121U1 (de) System zum Erfassen komplexer Schadsoftware
US11625485B2 (en) Method of malware detection and system thereof
US11507663B2 (en) Method of remediating operations performed by a program and system thereof
DE112010003454B4 (de) Bedrohungserkennung in einem Datenverarbeitungssystem
DE112019001121B4 (de) Auf einem computer implementiertes verfahren zum identifizieren von malware und system hierfür
DE60303753T2 (de) Selektives Erkennen von böswilligem Rechnercode
DE60102555T2 (de) Verhinderung der map-aktivierten modulmaskeradeangriffe
DE202013102179U1 (de) System zu detektieren von durch eine virtuelle Maschine ausgeführtem Schadcode
DE602004010563T2 (de) Ausführliche Identifizierung von Hardware zur Verbindung der Software mit einem änderungstolerantem Computersystem
DE202014011086U1 (de) System zur Bestimmung einer Vertrauenswürdigkeitskategorie von Anwendungen, die eine Schnittstellenüberlagerung durchführen
DE202013012765U1 (de) System zum Schutz von Cloud-Diensten vor nicht autorisiertem Zugriff und Schadsoftware-Angriff
DE202012013609U1 (de) System zur Verteilung der Verarbeitung von Computer-Sicherheitsaufgaben
DE112020003944T5 (de) Verfahren, System und Speichermedium für die Sicherheit von Softwarekomponenten
CN109271780A (zh) 机器学习恶意软件检测模型的方法、系统和计算机可读介质
DE202010018642U1 (de) System zur Erfassung zuvor unbekannter Schadsoftware
DE112012000526T5 (de) Malware - Erkennung
DE112012000279T5 (de) Ermitteln der Anfälligkeit von Computer-Software-Anwendungen gegenüber Rechteausweitungsangriffen
DE112010004526T5 (de) System, Verfahren und Vorrichtung für eine Gleichzeitige Festlegung und Durchsetzung von Richtlinien zur Zugriffskontrolle und Integrität
DE112013002012B4 (de) Verfahren eines Erkennens von Schadsoftware in einem Betriebssystemkern
WO2017064710A1 (en) Method of remediating a program and system thereof by undoing operations
CN109800571B (zh) 事件处理方法和装置、以及存储介质和电子装置
DE102020112592A1 (de) Anwendungsverhaltensbezogene Fingerabdrücke
DE112021004808T5 (de) Erkennen von malware durch analyse verteilter telemetriedaten
DE102019209349A1 (de) Untersuchung von Web-Bedrohungen mithilfe von fortschrittlichem Web-Crawling
EP3095065B1 (de) Vorrichtung und verfahren zum detektieren einer manipulation an einem programmcode

Legal Events

Date Code Title Description
R082 Change of representative

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

R152 Utility model maintained after payment of third maintenance fee after eight years
R207 Utility model specification
R071 Expiry of right