DE202014011092U1 - Sicherheitsarchitektur für virtuelle Maschinen - Google Patents

Sicherheitsarchitektur für virtuelle Maschinen Download PDF

Info

Publication number
DE202014011092U1
DE202014011092U1 DE202014011092.1U DE202014011092U DE202014011092U1 DE 202014011092 U1 DE202014011092 U1 DE 202014011092U1 DE 202014011092 U DE202014011092 U DE 202014011092U DE 202014011092 U1 DE202014011092 U1 DE 202014011092U1
Authority
DE
Germany
Prior art keywords
module
virtual machine
malicious program
virtual machines
operating system
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.)
Active
Application number
DE202014011092.1U
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 DE202014011092U1 publication Critical patent/DE202014011092U1/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances

Landscapes

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

Abstract

Host-Maschine oder Computersystem zur Ausführung einer Vielzahl virtueller Maschinen (120), wobei die Host-Maschine umfasst: Rechen-Hardware, umfassend wenigstens einen Prozessor, nichtflüchtige Datenspeichermedien, die mit dem wenigstens einen Prozessor eine Schnittstelle haben und Instruktionen umfassen, die, wenn sie von dem wenigstens einen Prozessor ausgeführt werden, bewirken, dass die Rechenhardware Folgendes implementiert: die Vielzahl virtueller Maschinen (120), von denen jede eine isolierte Ausführungsumgebung bereitstellt, wobei ein Betriebssystem, ein Lightweight-Agent-Modul (130) und Benutzeranwendungen ausgeführt werden; eine spezialisierte virtuelle Maschine (110), die eine isolierte Ausführungsumgebung bereitstellt, in der ein zentrales Sicherheitsmodul (160) ausgeführt wird; ein Hypervisor-Modul (170), das die Ausführung der Vielzahl virtueller Maschinen (120) und der spezialisierten virtuellen Maschine (110) koordiniert, wobei Informationen zwischen jedem Lightweight-Agent-Modul (130) und dem zentralen Sicherheitsmodul (160) durch das Hypervisor-Modul (170) über ein inter-virtuelles Maschinenprotokoll kommuniziert werden, das Verschlüsselung oder Authentifizierung verwendet; wobei das zentrale Sicherheitsmodul (160) sicherheitsbezogene Aufgaben im Auftrag individueller virtueller Maschinen aus der Vielzahl virtueller Maschinen (120) durchführt, einschließlich einer Schadprogramm-Beurteilung, und ein Schadprogramm-Behebungsmodul (164) umfasst, das dafür konfiguriert ist, spezifische Schadprogramm-Beseitigungs-Instruktionen zu generieren, die Aktionen definieren, die durch individuelle Lightweight-Agent-Module (130) als Reaktion auf eine Beurteilung der Schadprogramme, die in einer der virtuellen Maschinen (120) vorhanden sind, die diesen Lightweight-Agent-Modulen (130) entspricht, ausgeführt werden; wobei das Lightweight-Agent-Modul (130) jeder der virtuellen Maschinen (120) ein Instruktionssequenz-Ausführungsmodul (145) umfasst, das dafür konfiguriert ist, die Schadprogramm-Behebungs-Instruktionen zu empfangen und auszuführen; dadurch gekennzeichnet, dass jedes Lightweight-Agent-Modul (130) dafür konfiguriert ist, betriebssystembezogene Informationen der virtuellen Maschine (120) bereitzustellen, entweder als Teil einer Dienstanforderung oder als Reaktion auf eine Anfrage von einem Fähigkeits-Beurteilungsmodul (168), das in dem zentralen Sicherheitsmodul (160) vorgesehen ist, wobei die betriebssystembezogenen Informationen eine Versionsnummer des Betriebssystems und/oder eine Identifikation der installierten Komponenten in dem Betriebssystem umfassen; wobei das Fähigkeits-Beurteilungs-Modul (168) dafür konfiguriert ist, eine Fähigkeit eines ersten Instruktionssequenz-Ausführungsmoduls (145) eines ersten Lightweight-Agent-Moduls (130) zu beurteilen, um die Schadprogramm-Behebungs-Instruktionen wirksam auszuführen, indem funktionale Komponenten identifiziert werden, die mit den betriebssystembezogenen Informationen in Verbindung stehen, die von dem Lightweight-Agent-Modul (130) bereitgestellt werden, und mit funktionalen Komponenten verglichen werden, von denen bekannt ist, dass sie für eine wirksame Ausführung der Schadprogramm-Behebungs-Instruktionen benötigt werden; und wobei ein Sicherheits-Funktionalitäts-Aktualisierungsmodul (166) in der spezialisierten virtuellen Maschine (110) dafür konfiguriert ist, eine fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente bereitzustellen, die in einer ersten virtuellen Maschine (120) zu installieren ist, die ...

Description

  • Gebiet der Erfindung
  • Die Erfindung betrifft allgemein Informationsverarbeitungssysteme, die multiple virtuelle Maschinen verwenden, und insbesondere eine verbesserte Sicherheitsanordnung, die eine spezialisierte virtuelle Maschine verwendet, deren Aufgabe darin besteht, Sicherheits-Dienste für andere virtuelle Maschinen in einem Computersystem zu erbringen.
  • Hintergrund der Erfindung
  • Systeme, die virtuelle Maschinen verwenden, bieten eine besondere Reihe von Herausforderungen bezüglich Sicherheitsangelegenheiten wie Anti-Malware, Netzwerkschutz und dergleichen. Eine solche Herausforderung betrifft die Last, die Sicherheitsoperationen dem physischen Computersystem auferlegen, wenn jede virtuelle Maschine ihre eigene Sicherheitsanwendung ausführt. Insbesondere belastet die Doppelung der Rechenlast bei der Ausführung multipler Instanzen einer Sicherheitsanwendung die Host-Maschine und wirkt sich negativ auf die Leistung des Systems für alle Anwendungen auf allen virtuellen Maschinen aus. In typischen Umgebungen können viele Dateien über multiple virtuelle Maschinen dupliziert werden.
  • Eine zentralisierte Sicherheitsanwendung auf einer spezialisierten virtuellen Maschine wurde zur Verwendung mit multiplen virtuellen Maschinensystemen vorgeschlagen. Dieser agentenlose Ansatz, d. h. ohne individuelle Sicherheitsanwendungs-Agenten, die auf jeder individuellen virtuellen Maschine ausgeführt werden, bietet eine erheblich effizientere Sicherheitslösung. Es entstehen jedoch Situationen, in denen die zentralisierte agentenlose Sicherheitsanwendung nicht in der Lage ist, bestimmte sicherheitskritische Operationen innerhalb der virtuellen Maschinen durchzuführen. Ein Beispiel ist das Entfernen entdeckter Schadprogramme und das Wiedereinsetzen der infizierten virtuellen Maschine in einen Zustand ohne jede schädliche Auswirkung der Operation dieser Schadprogramme. Die Betriebssystemkomponenten, die erforderlich sind, um bestimmte Schutz- oder Wiederherstellungsaktionen auszuführen, können unzureichend sein. Eine praktische und wirksame Lösung wird benötigt.
  • In der US 2012/0144489 A1 wird vorgeschlagen, Lightweight-Agent-Module in jeder der virtuellen Maschinen zu verwenden, um Instruktionen zur Behebung von Schadprogrammen von einer zentralen Sicherheitseinheit zu empfangen und auszuführen. Dies ist in dem Oberbegriff von Anspruch 1 reflektiert. Dieses Dokument enthält jedoch das Problem, dass die Ressourcenanforderungen der virtuellen Maschinen insgesamt hoch sein müssen, um die Wahrscheinlichkeit gering zu halten, dass eine unerwartete Inkompatibilität oder Betriebsunfähigkeit der Komponenten auftritt, die als Teil notwendiger Aktualisierungen auf dem Lightweight-Security-Agent eingesetzt werden. Außerdem sollte der Lightweight-Security-Agent einen kleineren Fußabdruck in der virtuellen Maschine in Anspruch nehmen, während er einen angemessenen Schutz aufrechterhält.
  • Die US 2013/0061325 A1 ist auf cloudbasierte Anti-Malware-Systeme zur Erkennung von Schadprogrammen auf einem mit einem Netzwerk verbundenen Gerät gerichtet, auf dem eine Antivirus-Anwendung läuft. Bei ausgewählten Ausführungsformen kann die Antivirus-Anwendung bestimmen, dass „Reinigungsvorgänge für eine bestimmte erkannte Schadprogramm-Bedrohung nicht verfügbar oder veraltet sind oder wahrscheinlich nicht zu zufriedenstellenden Ergebnissen führen werden”, und fordern, dass das Scannen durch einen Server durchgeführt wird, der in der Cloud angeordnet ist, s. Absatz [0037]. Die Antwort des Servers kann Reinigungs-Routinen umfassen, von denen bestimmt wird, dass sie nicht in der Definitionsdatei der Antivirus-Anwendung des Klienten enthalten sind.
  • Die US 2013/0061325 A1 enthält jedoch weder die Lehre noch den Vorschlag eines Anti-Malware-Systems, das auf einer virtuellen Maschine beruht und das Lightweight-Agent-Module verwendet, wie in dem Oberbegriff von Anspruch 1 und in dem unabhängigen Anspruch 11 vorgesehen. Gemäß Absatz [0028] der US 2013/0061325 A1 kann eine Workstation in dem Netzwerk eine virtuelle Maschine sein, in der die Antivirus-Anwendung ausgeführt wird, entsprechend der vorhandenen spezialisierten virtuellen Maschine. Das schließt jedoch nicht eine Vielzahl virtueller Maschinen in einer gemeinsamen Host-Maschine oder einem Computersystem ein, wie dort in den unabhängigen Ansprüchen vorgesehen. Keinerlei Lightweight-Security-Agent wird erwähnt. Erst recht nicht in einer anderen virtuellen Maschine, die sich von der unterscheidet, in der die Antivirus-Anwendung ausgeführt wird.
  • Kurze Beschreibung der Erfindung
  • Ein Aspekt der Erfindung ist auf eine Host-Maschine oder ein Computersystem zur Ausführung einer Vielzahl virtueller Maschinen nach Anspruch 1 gerichtet.
  • Weder die US 2012/0144489 A1 noch die US 2013/0061325 A1 lehren, dass Agenten in einem solchen Verhältnis operative systembezogene Informationen ihrer virtuellen Maschinen sammeln und zur Verfügung stellen, die verwendet werden, um funktionale Komponenten zu bestimmen, die notwendig sein können, um eine bestimmte Schadprogramm-Infektion zu bekämpfen, oder die spätere Installation solcher Komponenten in den Klienten.
  • Das Lightweight-Security-Agent-Modul und das Fähigkeitsbeurteilungsmodul können synergistisch arbeiten, um die Mindestzahl funktionaler Komponenten zu identifizieren und zu installieren, die notwendig sind, um die aktuelle Schadprogramm-Infektion in einer gegebenen virtuellen Maschine zu beheben.
  • Weitere Ausführungsformen sind in den abhängigen Ansprüchen reflektiert.
  • Vorteilhafterweise ermöglichen bestimmte Aspekte der Erfindung dem Host-System, von der Verwendung einer zentralisierten, spezialisierten virtuellen Maschine zu profitieren, deren Aufgabe darin besteht, Sicherheitsoperationen im Auftrag multipler anderer virtueller Maschinen auszuführen, während sie gleichzeitig von der Fähigkeit profitiert, dass die spezialisierte virtuelle Maschine eine Schadprogramm-Behandlung und Behebungs-Instruktionen zur Verfügung stellt, die von jeder unterstützten virtuellen Maschine ausgeführt werden, sogar wenn eine dieser virtuellen Maschinen zu Beginn nicht die funktionalen Komponenten aufweist, die notwendig sind, um solche Operationen auszuführen. Zahlreiche andere Vorteile werden aus der folgenden ausführlichen Beschreibung der bevorzugten Ausführungsformen ersichtlich.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung ist umfassender unter Einbeziehung der folgenden detaillierten Beschreibung verschiedener Ausführungsformen der Erfindung in Verbindung mit den beigefügten Zeichnungen zu verstehen, in denen:
  • 1 ein Blockdiagramm ist, das ein beispielartiges Computersystem wie einen Sever darstellt, gemäß einer Ausführungsform, in der bestimmte Module ausgeführt werden, um Aspekte der Erfindung durchzuführen;
  • 2 ein Blockdiagramm ist, das eine spezialisierte virtuelle Maschine darstellt, die einen zentralen Sicherheitsdienst ausführt, der zum Nutzen anderer virtueller Maschinen arbeitet, die Anwendungen ausführen, gemäß einer Ausführungsform;
  • 3 ein Blockdiagramm ist, das eine virtuelle Maschine darstellt, die von der spezialisierten virtuellen Maschine gemäß einer Ausführungsform bedient wird;
  • 4A4B Flussdiagramme sind, die einen beispielartigen Prozess gemäß einer Ausführungsform zur Durchführung von Anti-Malware-Operationen in einem Computersystem darstellen, auf dem multiple virtuelle Maschinen laufen;
  • 5 ein Blockdiagramm eines Mehrzweck-Computersystems ist, in dem Aspekte der Erfindung gemäß einiger Ausführungsformen der Erfindung ausgeführt werden können.
  • Während die Erfindung für verschiedene Modifikationen und alternative Formen geeignet ist, wurden ihre spezifischen Merkmale beispielartig in den Zeichnungen gezeigt und werden im Einzelnen beschrieben. Es ist jedoch zu beachten, dass die Erfindung nicht auf die bestimmten beschriebenen Ausführungsformen beschränkt sein soll. Im Gegenteil ist beabsichtigt, dass alle Modifikationen, Äquivalente und Alternativen eingeschlossen sind, die in den Schutzbereich der Erfindung fallen, wie in den beigefügten Ansprüchen definiert.
  • Ausführliche Beschreibung
  • I Glossar
  • Das folgende Glossar definiert die hier verwendeten Begriffe. Dieses Glossar gilt nur für diese Anmeldung.
  • ”Fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente”: Eine funktionale Komponente, die die Durchführung einer oder mehrerer fortgeschrittener Sicherheitsaufgaben ermöglicht, beispielsweise die Behebung von Schadprogrammen an Objekten, die schwer zugänglich oder modifizierbar sind, beispielsweise Systemobjekte, verschlüsselte Objekte usw.
  • Objekt auf „Anwendungsebene”: Ein Objekt, das daran gehindert wird, auf Kernfunktionen des Betriebssystems zuzugreifen, und andere Gerätetreiber und Objekte auf niedriger Ebene, ohne besondere Einrichtung, die diesen Zugriff steuert, beispielsweise eine Anwendungs-Programmierschnittstelle, ein Betriebssystemtreiber usw.
  • ”Zentrales Sicherheitsmodul”: Ein Modul, das auf einer spezialisierten virtuellen Maschine ausgeführt werden kann und sicherheitsbezogene Dienste für andere virtuelle Maschinen bereitstellt, die in derselben Host-Maschine ausgeführt werden, in der die spezialisierte virtuelle Maschine ausgeführt wird.
  • ”Datenspeichermedien”: Eine oder mehrere elektronische Hardware-Einrichtungen, die Daten in einem physischen Speichermedium speichern. Beispiele umfassen eine flüchtige Speicherung (z. B. einen Arbeitsspeicher (RAM), entweder statisch oder dynamisch), eine nichtflüchtige Speicherung (z. B. einen elektrisch löschbaren, programmierbaren permanenten Speicher, eine Magnetplatte usw.).
  • ”Funktionale Komponenten”: Ein Programmcode, der ausführbar ist, um die Auswirkungen von Schadprogrammen zu beheben. Beispiele umfassen Bibliotheken, Treiber, Dienstprogramme und andere Werkzeuge. Beispielsweise können solche Werkzeuge einen Dateisystemtreiber umfassen, der notwendig ist, um Rootkit-Schadprogramme zu erkennen, einen Treiber für den Zugriff auf das Register des Betriebssystems, ein Dienstprogramm zum Entschlüsseln einer Verschlüsselung, die durch die Auswirkung eines Schadprogramms auf eine Datei angewandt wird, die nun gereinigt werden muss, oder einen Treiber zum Unterbrechen einer Eingabe durch den Benutzer, die als Gegenmaßnahme für Ransomware verwendbar ist. Weiterhin können funktionale Komponenten Sicherungskopien bestimmter Objekte auf Systemebene des Betriebssystems umfassen. Oft sind einige oder alle funktionalen Komponenten auf Systemebene innerhalb des Betriebssystems einer virtuellen Maschine angeordnet.
  • ”Gastbetriebssystem”: Ein Betriebssystem, das innerhalb einer virtuellen Maschine ausgeführt wird.
  • ”Host-Maschine”: Ein Computersystem (d. h. ein elektronisches Gerät oder System miteinander betreibbarer elektronischer Geräte, die Hardware enthalten, die einen oder mehrere Prozessoren, Datenspeicherung und Eingabe-Ausgabe-Einrichtungen aufweist und fähig ist, Informationen gemäß von der Hardware ausgeführten Instruktionen zu speichern und zu manipulieren), in dem eine oder mehrere virtuelle Maschinen ausgeführt werden. Es kann eine physische Maschine sein, oder es kann auf multiple physische Maschinen aufgeteilt sein, beispielsweise nach Rolle oder Funktion, oder nach Prozess-Thread im Fall eines aufgeteilten Cloud-Computing-Modells. Beispiele umfassen Desktop- oder mobile Personal Computer (PCs), Smartphones und Tablets sowie Netzwerkeinrichtungen wie Router, Schalter und Ähnliches. Host-Maschinen können Stand-Alone-Geräte oder eingebettete Geräte sein, die Teil eines größeren Geräts oder Systems sind.
  • ”Hypervisor-Modul”: Eine Software-Schicht, die Gast-Betriebssystemen eine virtuelle Betriebsplattform gibt und die Ausführung der Gast-Betriebssysteme organisiert. Multiple Instanzen verschiedener Betriebssysteme können die virtualisierten Hardware-Ressourcen teilen. Hypervisoren vom Typ 1, auch als native oder Blankmetall-Hypervisoren bekannt, laufen direkt auf der Hardware des Hosts, um die Hardware zu steuern und Gastbetriebssysteme zu organisieren. Ein Gastbetriebssystem jeder virtuellen Maschine läuft somit auf einer anderen Ebene über dem Hypervisor. Hypervisoren vom Typ 2, auch als gehostete Hypervisoren bezeichnet, laufen innerhalb einer herkömmlichen Betriebssystemumgebung. Mit der Hypervisorschicht als getrennte zweite Software-Ebene laufen Gastbetriebssysteme auf der dritten Ebene über der Hardware.
  • ”Isolierte Ausführungsumgebung”: Ein Satz von einem oder mehreren Prozessen und zugehöriger Datenspeicherung, auf die andere Prozesse, die in derselben Host-Maschine durchgeführt werden, keinen Zugriff haben, mit Ausnahme eines Hypervisors.
  • ”Lightweight-Agent-Modul”: Ein Modul, das in einer zugehörigen virtuellen Maschine ausführbar ist, wobei das Lightweight-Agent-Modul ein Thin-Client-Modul aufweist, das Sicherheitsfunktionalität für die zugehörige virtuelle Maschine bereitstellt, wobei Sicherheitsdienste genutzt werden, die von einem zentralen Sicherheitsmodul bereitgestellt werden, das von einer anderen virtuellen Maschine ausgeführt wird. Das Lightweight-Agent-Modul kann auch eine bestimmte eigenständige Sicherheitsfunktionalität umfassen, aber diese umfasste Sicherheitsfunktionalität ist insgesamt rudimentärer als die umfassendere Sicherheitsfunktionalität des zentralen Sicherheitsmoduls. Das Lightweight-Agent-Modul umfasst auch ein Instruktionssequenz-Ausführungsmodul, das Instruktionen in der zugehörigen virtuellen Maschine erhält und ausführt (einschließlich sicherheitsbezogener Instruktionen, die von dem zentralen Sicherheitsmodul erhalten werden).
  • ”Schadprogramme”: Bösartige Software; eine beliebige Software, die verwendet wird, um den Betrieb des Computers zu stören, sensitive Informationen zu sammeln oder auf unberechtigte Weise Zugriff auf ein Computersystem zu erhalten. Schadprogramme können in Form von Code, Script, aktiven Inhalten und anderer Software auftreten. Beispiele umfassen Viren, Würmer, Trojaner, Ransomware, Scareware, Rootkits, Bootkits, Spyware usw.
  • ”Schadprogramm-Behebungsmodul”: Ein Modul, das Teil eines zentralen Sicherheitsmoduls ist und Instruktionen generiert, die in einer virtuellen Maschine ausgeführt werden und das Entfernen entdeckter Schadprogramme sowie das Beheben der Auswirkungen des Betriebs dieser Schadprogramme umfassen.
  • ”Modul”: Ein reale Einrichtung, Komponente oder Anordnung von Komponenten, die unter Verwendung von Hardware oder als Kombination von Hardware und Software ausgeführt werden, beispielsweise durch ein Mikroprozessorsystem und einen Satz von Programminstruktionen, die das Modul dafür adaptieren, die bestimmte Funktionalität auszuführen, und die (während sie ausgeführt werden) das Mikroprozessorsystem in ein spezialisiertes Gerät umwandeln. Ein Modul kann auch als Kombination der beiden implementiert werden, wobei bestimmte Funktionen allein durch Hardware ermöglicht werden und andere Funktionen durch eine Kombination aus softwaregesteuerter Hardware ermöglicht werden. Bei bestimmten Implementierungen kann wenigstens ein Abschnitt und in einigen Fällen das gesamte Modul auf dem Prozessor/den Prozessoren eines oder mehrerer Computer ausgeführt werden, die ein Betriebssystem, Systemprogramme und Anwendungsprogramme ausführen, während sie auch das Modul implementieren, wobei sie Multitasking, Multithreading, verteiltes Bearbeiten (z. B. Cluster, Peer-Peer, Cloud) verwenden, wo es geeignet ist, oder andere Techniken. Zusätzlich kann ein Modul selbst aus mehr als einem Untermodul zusammengesetzt sein, von denen jedes als eigenständiges Modul betrachtet werden kann.
  • ”Objekt”: Ein Prozess, ein Stück Software-Code oder eine Datenstruktur, die in Computer-Hardware gespeichert ist. Beispiele umfassen Dateien, Programme, Datenpakete usw.
  • ”Betriebssystem” (”OS”): Software, die auf Computerhardware ausführbar ist, die Funktionen für eine Interaktion mit Netzwerkschnittstellen und -verbindungen, Peripheriegeräten, das Zuweisen von Aufgaben und die Zuordnung der Datenspeicherung durchführt und dem Benutzer eine Standard-Schnittstelle präsentiert, wenn kein Anwendungsprogramm läuft. Beispiele umfassen die WindowsTM-Familie von Betriebssystemen der Microsoft Corporation, Mac OS von Apple Inc., Unix, Linux, iOS, Android usw.
  • ”Prozessor”: Elektronischer Hardware-Teil eines Computersystems, der die Instruktionen eines Computerprogramms ausführt, indem er grundlegende Operationen des Systems im Bereich der Arithmetik, Logik, der temporären Speicherung und der Eingabe/Ausgabe durchführt. Typischerweise ist ein Prozessor als Mikroprozessor implementiert (d. h. auf einem einzelnen Chip integriert), obgleich diese Definition Prozessorschaltkreise umfasst, die auf multiplen, miteinander verbundenen integrierten Schaltkreisen implementiert sind. Moderne Prozessoren umfassen typischerweise multiple Verarbeitungskerne und können die Arbeitslast unter den multiplen Verarbeitungskernen verteilen.
  • ”Prozessbasierte virtuelle Maschine”: Eine virtuelle Maschine, die dafür ausgelegt ist, ein einziges Programm auszuführen, was bedeutet, dass sie einen einzigen Prozess unterstützt. Solche virtuellen Maschinen sind üblicherweise genau an eine oder mehrere Programmiersprachen angepasst und zu dem Zweck gebaut, Programmportabilität und Flexibilität zu bieten. Beispiele umfassen Java Virtual Machine, .Net Framework und Parrot Virtual Machine.
  • ”Quarantäne”: Eine Aktion oder ein Zustand, bei dem ein Schadprogrammobjekt oder ein nur verdächtiges Objekt inoperativ gemacht wird oder dessen Inoperativmachung bewirkt wird, ohne dass das Objekt direkt gelöscht wird. Ein unter Quarantäne gestelltes Objekt kann katalogisiert, weiter beurteilt oder sogar wiederhergestellt werden, wenn festgestellt wird, dass es gutartig ist.
  • ”Spezialisierte virtuelle Maschine”: Eine virtuelle Maschine, die auf einer Host-Maschine ausgeführt wird, die auch wenigstens eine weitere virtuelle Maschine ausführt, auf der Benutzeranwendungen ausgeführt werden. Die spezialisierte virtuelle Maschine unterscheidet sich von der anderen virtuellen Maschine (den anderen virtuellen Maschinen) der Host-Maschine dadurch, dass die spezialisierte virtuelle Maschine ein zentrales Sicherheitsmodul ausführt, das sicherheitsbezogene Dienste für die wenigstens eine andere virtuelle Maschine bereitstellt.
  • ”Objekt auf Systemebene”: Ein Objekt, auf das von einem Betriebssystemkern oder einem anderen Programm auf Systemebene zugegriffen werden kann, auf das jedoch ein Anwendungsprogramm ohne besonderes Hilfsmittel, wie beispielsweise eine Anwendungsprogrammschnittstelle, ein Betriebssystemtreiber usw., keinen Zugriff hat.
  • ”Systembasierte virtuelle Maschine”: Eine virtuelle Maschine, die eine vollständige Systemplattform bereitstellt, die die Ausführung eines vollständigen Betriebssystems unterstützt. Diese emulieren üblicherweise eine bestehende Architektur und sind dafür gebaut, multiple Instanzen virtueller Maschinen bereitzustellen, von denen jede eine isolierte Rechenumgebung bereitstellt. Diese Art der Architektur ist allgegenwärtig auf Servern, die einen Cloud-Rechendienst, Webhosting und viele andere Dienste unterstützen. Systembasierte virtuelle Maschinen können direkt auf der Hardware des physischen Computersystems laufen, die als Host-Maschine bekannt ist, oder über ein Betriebssystem, das direkt auf der Host-Maschine läuft (bekannt als Virtualisierung auf Betriebssystemebene). Beispiele umfassen Windows Virtual PC, VMware, Oracle VM usw.
  • ”Werkzeug”: Ein Programm, das von anderen Programmen aufgerufen werden kann, um bei der Durchführung einer oder mehrerer spezialisierter Operationen zu helfen.
  • ”Benutzeranwendungen”: Anwendungsprogramme und zugehörige Prozesse, die Dienste hauptsächlich für den Benutzer und nicht für die Computer-Hardware bereitstellen. Beispiele umfassen Webbrowser, Textverarbeitungsprogramme, Spiele, Media-Player usw.
  • Eine ”virtuelle Maschine” ist eine softwarebasierte Implementierung eines Computersystems, das Programme wie eine physische Maschine ausführt, wobei sie die Hardware einer Host-Maschine verwendet. Virtuelle Maschinen werden in zwei große Klassifikationen eingeteilt, je nach ihrer Verwendung und des Grads der Entsprechung zu einer echten Maschine: systembasierte virtuelle Maschinen und prozessbasierte virtuelle Maschinen.
  • ”Mittel zur Ausführung einer Vielzahl virtueller Maschinen”: Computerhardware, einschließlich eines Prozessors, Eingabe/Ausgabe-Einrichtungen und Datenspeicherung, wobei der Prozessor durch Instruktionen programmiert ist, die in dem Datenspeicher gespeichert sind und, wenn sie ausgeführt werden, bewirken, dass die Computer-Hardware eine Vielzahl von spezialisierten virtuellen Maschinen ausführt.
  • ”Mittel zur Ausführung einer spezialisierten virtuellen Maschine”: Computerhardware einschließlich eines Prozessors, Eingabe/Ausgabe-Einrichtungen und Datenspeicherung, wobei der Prozessor durch Instruktionen programmiert ist, die in dem Datenspeicher gespeichert sind und, wenn sie ausgeführt werden, bewirken, dass die Computer-Hardware eine spezialisierte virtuelle Maschine ausführt.
  • ”Mittel zur Koordination der Ausführung der Vielzahl virtueller Maschinen und einer spezialisierten virtuellen Maschine und zur Koordination der Kommunikation zwischen Lightweight-Agent-Modulen und einem zentralen Sicherheitsmodul”: Computerhardware einschließlich eines Prozessors, Eingabe/Ausgabe-Einrichtungen und Datenspeicherung, wobei der Prozessor durch Instruktionen programmiert ist, die in dem Datenspeicher gespeichert sind und, wenn sie ausgeführt werden, bewirken, dass die Computer-Hardware ein Hypervisor-Modul ausführt.
  • II Beschreibung bevorzugter Ausführungsformen
  • Aspekte der Erfindung können als Teil eines Computersystems implementiert sein. Das Computersystem kann eine physische Maschine sein oder kann auf multiple physische Maschinen aufgeteilt sein, beispielsweise nach Rolle oder Funktion, oder nach Prozess-Thread im Fall eines aufgeteilten Cloud-Computing-Modells. In verschiedenen Ausführungsformen können Aspekte der Erfindung so konfiguriert sein, dass sie in virtuellen Maschinen laufen, die ihrerseits in einer oder mehreren physischen Maschinen ausgeführt werden. Dem Fachmann wird klar sein, dass Merkmale der Erfindung durch eine Vielzahl verschiedener geeigneter Maschinen-Implementierungen verwirklicht werden können.
  • 1 ist ein Blockdiagramm, das ein beispielartiges Computersystem wie einen Server 100 gemäß einer Ausführungsform zeigt. Der Server 100 umfasst Rechenhardware, beispielsweise einen oder mehrere Prozessoren, ein RAM, nichtflüchtige Speicherung, Eingabe/Ausgabe-Möglichkeiten, Netzwerkschnittstellenschaltungen usw., wovon ein Beispiel im Einzelnen unten beschrieben ist. Der Server 100 umfasst verschiedene Module, von denen jedes konstruiert, programmiert, konfiguriert oder anderweitig dafür ausgelegt ist, eine Funktion oder einen Satz von Funktionen auszuführen. Der Begriff „Modul”, wie er hier verwendet wird, bedeutet ein reales Gerät, eine reale Komponente oder eine Anordnung von Komponenten, die unter Verwendung von Hardware implementiert werden, beispielsweise durch einen anwendungsspezifischen integrierten Schaltkreis (ASIC) oder ein Field Programmable Gate Array (FPGA), oder als eine Kombination aus Hardware und Software wie beispielsweise durch ein Mikroprozessorsystem und einen Satz von Programminstruktionen, die das Modul dafür anpassen, die spezielle Funktionalität zu implementieren und die (während sie ausgeführt werden) das Mikroprozessorsystem in ein Spezialgerät umwandeln. Ein Modul kann auch als Kombination der beiden implementiert werden, wobei bestimmte Funktionen allein durch Hardware ermöglicht werden und andere Funktionen durch eine Kombination aus Hardware und Software ermöglicht werden.
  • Jedes Modul kann in verschiedenen geeigneten Konfigurationen verwirklicht werden und sollte allgemein nicht auf eine beliebige, hier beispielartig dargestellte Ausführungsform beschränkt werden, soweit solche Beschränkungen nicht explizit genannt werden. Außerdem kann ein Modul selbst aus mehr als einem Untermodul zusammengesetzt sein, von denen jedes als eigenständiges Modul betrachtet werden kann. Weiterhin entspricht bei den hier beschriebenen Ausführungsformen jedes der verschiedenen Module einer bestimmten Funktionalität; es ist jedoch zu beachten, dass bei anderen in Betracht gezogenen Ausführungsformen jede Funktionalität auf mehr als ein Modul verteilt sein kann. Genauso können bei anderen in Betracht gezogenen Ausführungsformen multiple bestimmte Funktionalitäten durch ein einzelnes Modul implementiert sein, das diese multiplen Funktionen durchführt, möglicherweise neben anderen Funktionen, oder sie können in einem Satz von Modulen anders verteilt sein, als in den Beispielen hier spezifisch dargestellt.
  • Wie in 1 dargestellt, führt der Server 100 eine Vielzahl virtueller Maschinen aus. Zwei Arten virtueller Maschinen werden ausgeführt: Eine spezialisierte virtuelle Maschine 110, die wiederum das zentrale Sicherheitsmodul 160 ausführt; und reguläre virtuelle Maschinen 120, die jeweils Anwendungen ausführen, sowie ein Lightweight-Agent-Modul 130. Der Server 100 führt auch ein Hypervisormodul 170 aus, das die Ausführung der Vielzahl der regulären virtuellen Maschinen 120 und der spezialisierten virtuellen Maschine 110 koordiniert und den Informationsaustausch von Befehlen und Daten zwischen diesen beiden Modularten koordiniert.
  • Die Koordination der Ausführung dieser virtuellen Maschinen umfasst die Ermöglichung der Kommunikation zwischen der spezialisierten Maschine 110 und jeder der regulären virtuellen Maschinen 120, die durch das Inter-VM-Kommunikationsmodul 175 vorgesehen ist. Das Modul 175 kann beispielsweise Prinzipien nutzen wie die in Gebhardt, Carl et al., "Challenges for Inter Virtual Machine Communication," Technical Report RHUL-MA-2010-12, Department of Mathematics, Royal Holloway, University of London (2010); und Burtsev, Anton, et al., "Fido: Fast inter-virtual-machine communication for enterprise appliances," Proceedings of the 2009 conference on USENIX Annual technical conference, USENIX Association, (2009), beschriebenen, deren Inhalt hier jeweils angegeben ist. Andere Ansätze für Kommunikation zwischen virtuellen Maschinen werden ebenfalls in Betracht gezogen, darunter Ansätze, die ein höheres Niveau des gegenseitigen Vertrauens zwischen den kommunizierenden virtuellen Maschinen gewährleisten. Beispielsweise können inter-virtuelle Maschinenprotokolle, die Authentifizierungs-Techniken, Verschlüsselung, beispielsweise öffentliche Schlüssel verwenden, usw. verwendet werden.
  • 2 ist ein Blockdiagramm, das die spezialisierte virtuelle Maschine 110 detaillierter darstellt. Insbesondere umfasst eine zentrale Sicherheitsanwendung 160 mehrere Module, wie gemäß einer Ausführungsform dargestellt. Ein Schadprogramm-Beurteilungsmodul 162 liefert einen Schadprogramm-Analysedienst, der auf Objekte angewendet wird, die von jedem der Lightweight-Agent-Module 130 empfangen werden. Zu diesem Zweck verwendet das Schadprogramm-Beurteilungsmodul 162 verschiedene bekannte Anti-Virus-Technologien wie eine signaturbasierte Erkennung sowie heuristische Techniken zum Erkennen des Vorhandenseins von Schadprogrammen. Jede andere geeignete Anti-Malware-Technologie kann innerhalb des Schutzbereichs verschiedener Aspekte der Erfindung verwendet werden.
  • In einem Beispiel initiiert das Schadprogramm-Beurteilungsmodul 162 einen Schadprogramm-Beurteilungs-Vorgang als Reaktion auf eine Dienst-Anforderung, die von einem gegebenen Lightweight-Agent-Modul 130 ausgeht. Die Dienst-Anforderung wird durch das Modul 175 zur Kommunikation zwischen den virtuellen Maschinen des Hypervisor-Moduls 170 kommuniziert. In einem anderen Beispiel umfasst die Anforderung eine Kopie des in Frage stehenden Objekts, das neu von der entsprechenden virtuellen Maschine 120 erlangt wurde. In einem weiteren Beispiel umfasst die Anforderung keine Kopie des Objekts selbst, sondern einen Hash des Objekts in dem Dateisystem oder -speicher der virtuellen Maschine, der wiederum von dem Schadprogramm-Beurteilungsmodul 162 verwendet wird, um Nachschlagevorgänge in einer weißen Liste oder schwarzen Liste durchzuführen. Wenn der Hash in keiner solcher Liste vorhanden ist, kann die vollständige Kopie des Objekts von dem Schadprogramm-Beurteilungsmodul 162 durch den Hypervisor 170 angefordert werden, damit das Schadprogramm-Beurteilungsmodul 162 eine heuristische Analyse durchführt.
  • Das Schadprogramm-Beurteilungsmodul 162 liefert nach Vollendung seiner Analyse des in Frage stehenden Objekts eine Zwei-Wege-Kommunikation zu dem anfordernden Lightweight-Agent-Modul 130 über ein Hypervisor-Modul 170. Diese Zwei-Wege-Kommunikation kann einen Befehl umfassen, das Schadprogramm zu behandeln (z. B. das Objekt zu löschen oder unter Quarantäne zu stellen), falls ein Schadprogramm im Zusammenhang mit dem in Frage stehenden Objekt entdeckt wird oder der Verdacht besteht. Zusätzlich kann die Zwei-Wege-Kommunikation eine Reihe von Instruktionen zur Behebung der Auswirkungen des Betriebs des bösartigen Objekts umfassen. Die Behebungsinstruktionen werden von einem Schadprogramm-Behebungsmodul 164 generiert.
  • In einem Beispiel umfasst das Schadprogramm-Behebungsmodul 164 eine Datenbank von Behebungs-Instruktionen, die speziell als Reaktion auf analysierte Schadprogramm-Gegenstände generiert werden. Beispielsweise wird der Programmcode jedes Schadprogramm-Gegenstands dekonstruiert, um die Operationen zu zeigen, die Veränderungen an der infizierten virtuellen Maschine bewirken. Die Behebungs-Instruktionen werden ihrerseits generiert, um die von dem Schadprogramm bewirkten Veränderungen rückgängig zu machen. Beispielsweise können die Behebungs-Instruktionen unter Programmsteuerung automatisch durch das Schadprogramm-Behebungsmodul 164 generiert werden. In einem anderen Beispiel können die Behebungs-Instruktionen von einem Expertensystem generiert werden, das von dem physischen Rechensystem entfernt sein kann, z. B. kann es als webbasierter Dienst zur Verfügung gestellt werden. In einem weiteren Beispiel können die Behebungsinstruktionen von einem menschlichen Analysten generiert werden und von dem Schadprogramm-Behebungsmodul 164 als Reaktion auf die Art des entdeckten Schadprogramms nachgeschlagen werden.
  • Oft werden für eine wirksame Behebung der Schadprogramm-Auswirkungen bestimmte fortgeschrittene Operationen benötigt. Aufgrund seines minimalistischen Designs weist das Lightweight-Agent-Modul 130 der infizierten virtuellen Maschine 120 möglicherweise nicht die funktionalen Komponenten auf, die zur Durchführung der fortgeschrittenen Operationen benötigt werden. Ein ausgeführtes Stück Schadprogramm kann beispielsweise eine Datei nach ihrer Infizierung verschlüsselt haben, was es erforderlich macht, die Datei zu entschlüsseln, um die Infizierung zu beseitigen. Dem Lightweight-Agent-Modul 130 können die Mittel (d. h. die funktionalen Komponenten) fehlen, um diese Operation durchzuführen. In ähnlicher Weise kann die infizierte Datei ein Treiber auf Systemebene oder ein anderes Objekt sein, z. B. ein Teil der Bibliothek oder des Registers des Betriebssystems, der in der virtuellen Maschine 120 angeordnet ist.
  • Direkter Zugriff auf die Objekte des Betriebssystems der virtuellen Maschine 120 wird benötigt, um bestimmte Schadprogramm-Behebungswerkzeuge zu installieren, oder einfach, um Zugriff auf die infizierten Objekte auf Systemebene zu erhalten, die von der Operation des entdeckten Schadprogramms betroffen waren. Die gegenseitige Isolierung, die von der Systemvirtualisierung bereitgestellt wird, die bei den virtuellen Maschinen 110 und 120 ausgeführt wird, verhindert den Zugriff durch das Schadprogramm-Behebungsmodul 164 auf die Objekte auf Systemebene in den virtuellen Maschinen 120.
  • Entsprechend kann in einem Beispiel das zentrale Sicherheitsmodul 160 weiterhin ein Funktionalitäts-Aktualisierungs-Modul 166 umfassen, das die Aufgabe hat, funktionale Komponenten-Aktualisierungen für die virtuellen Maschinen 120 zu sammeln, (in einigen Fällen) zu generieren und bereitzustellen. Diese Vorgänge werden als Reaktion auf eine Beurteilung der Fähigkeiten der virtuellen Maschine 120 und ihres Betriebssystems und anderer Komponenten gemäß einer Ausführungsform durchgeführt.
  • Zu diesem Zweck kann in einem Beispiel das Fähigkeits-Beurteilungsmodul 168 Programminstruktionen und eine Wissensbasis zur Bestimmung der Fähigkeit jeder virtuellen Maschine 120 umfassen (d. h. die Art und Version des Betriebssystems, die Version und den bekannten Merkmalssatz des Lightweight Agent 130 usw.). Die Fähigkeit kann als verfügbare Komponenten zur Durchführung der Schadprogramm-Behebung dargestellt werden. Das Fähigkeits-Beurteilungsmodul 168 vergleicht die verfügbaren Komponenten mit den bekannten Komponenten (z. B. den in einer Wissensbasis dargestellten), die nötig sind, um die Schadprogramm-Behebungs-Instruktionen auszuführen, die von dem Modul 164 generiert werden. Einem Defizit der funktionalen Komponenten wird durch das Funktionalitäts-Aktualisierungsmodul 166 begegnet. Die Funktionalitäts-Aktualisierung wird über spezialisierte und sichere Kommunikation zwischen den virtuellen Maschinen durchgeführt, die von dem Hypervisor 170 ermöglicht wird.
  • Um den Betrieb des Fähigkeits-Beurteilungs-Moduls 168 zu ermöglichen, liefern die Lightweight-Agent-Module 130 jeweils die betriebssystembezogenen Informationen, z. B. die Versionsnummer, die Identifikation installierter zusätzlicher Komponenten usw. sowie andere verfügbare Werkzeuge, die auf der virtuellen Maschine 120 vorhanden sind, an das Fähigkeits-Beurteilungs-Modul 168, entweder als Teil der Dienstanforderung oder als Reaktion auf eine Anfrage von dem Fähigkeits-Beurteilungs-Modul 168. Als Reaktion schlägt das Fähigkeits-Beurteilungs-Modul 168 die funktionalen Komponenten nach, die mit den betriebssystembezogenen Informationen in Verbindung stehen, und vergleicht sie mit den funktionalen Komponenten, von denen bekannt ist, dass sie zum Ausführen der spezifischen Behebungs-Instruktionen benötigt werden. Jedem Defizit wird mit einer funktionalen Komponenten-Aktualisierung begegnet, die dem Lightweight-Agent-Modul 130 zur Verfügung gestellt wird.
  • 3 ist ein Blockdiagramm, das die virtuelle Maschine 120 detaillierter darstellt. Das Lightweight-Agent-Modul 130 umfasst ein Thin-Client-Modul 135, das mit der spezialisierten virtuellen Maschine 120 über einen Hypervisor 170 zusammenwirkt, um sicherheitsbezogene Dienste als Reaktion auf verschiedene Ereignisse anzufordern, die ein Schadprogramm-Screening erforderlich machen, beispielsweise das Herunterladen einer Datei. Das Thin-Client-Modul 135 kann das Objekt des Interesses an das zentrale Sicherheitsmodul 160 liefern und Behandlungs-Instruktionen erhalten, z. B. das Löschen oder Unter-Quarantäne-Stellen des Objekts, wenn das Schadprogramm-Screening, das von dem zentralen Sicherheitsmodul 160 durchgeführt wird, das Vorhandensein oder den Verdacht auf ein Schadprogramm anzeigt. Das Thin-Client-Modul 135 kann zum Beispiel die Löschungs-/Quarantänefunktionen durchführen. Daher kann bei dieser Ausführungsform das Thin-Client-Modul 135 die Übertragung des Großteils der Verarbeitungsoperationen von Sicherheitsinformationen an das zentrale Sicherheitsmodul 160 ermöglichen.
  • Die funktionalen Komponenten 140 umfassen verschiedene Bibliotheken, Treiber, Hilfsprogramme und andere Werkzeuge, die wesentlich für die Behebung der Auswirkungen der Schadprogramme sind. Beispielsweise können solche Werkzeuge einen Dateisystemtreiber, der nötig ist, um Rootkit-Schadprogramme zu entdecken, einen Treiber für den Zugriff auf das Register des Betriebssystems, ein Hilfsprogramm zum Brechen einer Verschlüsselung, mit der eine Datei durch eine Schadprogramm-Operation belegt ist, die jetzt gereinigt werden muss, oder einen Treiber zum Unterbrechen der Benutzer-Eingabe, der zum Bekämpfen von Ransomware verwendbar ist, umfassen. Außerdem können die funktionalen Komponenten 140 Sicherungskopien bestimmter Objekte auf der Systemebene des Betriebssystems umfassen. In einigen Fällen umfasst eine sorgfältige Behebung das Ersetzen einer beschädigten oder unzugänglichen Datei oder eines anderen Objekts durch die Sicherungskopie. In verschiedenen Beispielen sind einige oder alle funktionalen Komponenten auf der Systemebene in dem Betriebssystem jeder virtuellen Maschine 120 angeordnet.
  • Das Instruktionssequenz-Ausführungsmodul 145 erhält Behebungsinstruktionen von dem Schadprogramm-Behebungsmodul 164 und führt diese Instruktionen lokal auf der virtuellen Maschine 120 aus. In einem Beispiel fordert das Instruktionssequenz-Ausführungsmodul 145 die funktionalen Komponenten 140 auf, die Schadprogram-Behebung wirksam durchzuführen. Die funktionalen Komponenten 140, die auf der Systemebene angeordnet sind, erlauben dem Instruktionssequenz-Ausführungsmodul 145, die geschützten Betriebssystemdaten 152 zu verwenden und zu modifizieren, auf die Prozesse auf Anwendungsebene normalerweise keinen Zugriff haben. Wie in 3 beispielartig dargestellt, umfassen die Betriebssystemdaten 152 Registerobjekte, Treiber und andere Daten, die alle einer Beschädigungsgefahr unterliegen, die von dem Betrieb von Schadprogrammen verursacht wird.
  • Ebenfalls in 3 gezeigt ist eine Aktualisierung 142, die an den funktionalen Komponenten 140 durch das Funktionalitäts-Aktualisierungsmodul 166 vorgenommen wird. In einem Beispiel umfasst das Instruktionssequenz-Ausführungsmodul 145 ein Installer-Modul, das dafür konfiguriert ist, die funktionalen Komponenten 140 in dem Betriebssystem der virtuellen Maschine 120 zu installieren.
  • Die Aktualisierung 142 wird durch das Modul 175 für eine Kommunikation zwischen den virtuellen Maschinen des Hypervisors 170 ermöglicht. Ebenso sind Informationen 150 dargestellt, die jeweils durch das Instruktionssequenz-Ausführungsmodul 145 und das Thin-Client-Modul 135 mit dem Schadprogramm-Behebungsmodul 164 und den Schadprogramm- und Fähigkeits-Beurteilungs-Modulen 162 und 168 ausgetauscht werden.
  • 4A bis 4B sind Flussdiagramme, die einen beispielartigen Prozess gemäß einer Ausführungsform zur Durchführung von Anti-Malware-Operationen in einem Computersystem darstellen, beispielsweise einem Server 100, in dem multiple virtuelle Maschinen implementiert sind. Wie in diesen Flussdiagrammen dargestellt, sind die Operationen, die jeweils von der virtuellen Maschine 120, dem Hypervisor 170 und der spezialisierten virtuellen Maschine 110 vorgenommen werden, in entsprechenden Spalten organisiert. Beginnend mit 4A erkennt die virtuelle Maschine 120 an dem Block 202 ein Ereignis, das eine Schadprogrammanalyse erforderlich macht. Wie dargestellt kann dieses Ereignis der Empfang eines neuen Objekts aus einer externen Quelle sein. Bei 204 generiert das Lightweight-Agent-Modul der virtuellen Maschine 120 als Reaktion auf das Ereignis eine Dienstanforderung für die spezialisierte virtuelle Maschine 110. Die Kommunikation der Anforderung wird von dem Hypervisor 170 durchgeführt. Entsprechend leitet der Hypervisor 170 bei 206 die Dienstanforderung zusammen mit Begleitdaten (beispielsweise einer Kopie des neu empfangenen Objekts) an die spezialisierte virtuelle Maschine 110 weiter. Bei 208 erhält die spezialisierte virtuelle Maschine 110 die Dienstanforderung.
  • Als Reaktion auf den Empfang der Dienstanforderung führt die spezialisierte virtuelle Maschine 110 bei 210 die Schadprogrammanalyse durch. Dies kann mehrere unterschiedliche Operationen umfassen, von denen einige oben diskutiert wurden. Beispielsweise kann das in Frage stehende Objekt in einer weißen Liste/schwarzen Liste überprüft werden, es kann eine Schadprogramm-Signatur-Analyse durchgeführt werden, es kann eine heuristische Analyse (z. B. eine Emulation) durchgeführt werden, um verdächtiges Verhalten des Objekts während seiner Ausführung zu beobachten, usw. Dieser Vorgang führt zu einem Schadprogramm-Analyse-Ergebnis. Bei der Entscheidung 220 generiert die spezialisierte virtuelle Maschine 110, wenn das Ergebnis der Schadprogramm-Analyse ein Nichtvorhandensein von Schadprogrammen anzeigt, bei 214 eine Bestätigung, dass das Objekt sauber ist, und bei 216 wird diese Bestätigung durch den Hypervisor 170 an die virtuelle Maschine 120 weitergegeben, wo sie bei 218 empfangen wird. In diesem Szenario werden keine weiteren Aktionen mit Bezug auf eine Schadprogrammanalyse benötigt.
  • Wenn andererseits die Entscheidung 212 anzeigt, dass ein Schadprogramm vorhanden ist, zweigt der Prozess zu Block 220 ab, in dem die spezialisierte virtuelle Maschine 110 Schadprogramm-Behandlungs-Instruktionen generiert und an die virtuelle Maschine 120 sendet, die lokal an der virtuellen Maschine 120 auf der Anwendungsebene auszuführen sind. Der Hypervisor 170 koordiniert die Kommunikation der Behandlungs-Instruktionen bei 222, so dass die Behandlungs-Instruktionen von der virtuellen Maschine 120 an dem Block 224 empfangen werden. An dem Block 226 werden die Behandlungs-Instruktionen durch das Lightweight-Agent-Modul der virtuellen Maschine 120 ausgeführt.
  • Währenddessen bestimmt die spezialisierte virtuelle Maschine 110 bei 228, ob die Behebung der Auswirkungen der entdeckten Schadprogramme bei der virtuellen Maschine 120 notwendig ist. Diese Bestimmung kann auf der Grundlage zuvor analysierter Aktivität des Schadprogramms erfolgen, deren Auswirkungen in einer Wissensdatenbank gespeichert werden können, auf die die spezialisierte virtuelle Maschine 110 Zugriff hat. Die Wissensdatenbank kann lokal auf der virtuellen Maschine 110 oder an einem entfernten Ort gespeichert werden, beispielsweise bei einem Sicherheitsdienst, auf den die virtuelle Maschine 110 Zugriff hat. Wenn keine Behebung erforderlich ist, wird der Prozess abgeschlossen. Wenn bestimmt wird, dass eine Behebung erforderlich ist, schreitet der Prozess weiter zu den Operationen fort, die in 4B dargestellt sind.
  • Entsprechend werden bei 230 als Reaktion auf die als notwendig erachtete Behebung Behebungsinstruktionen durch die spezialisierte virtuelle Maschine 110 generiert. Die Generierung der Behebungsinstruktionen kann den Erhalt der Behebungsinstruktionen aus einer entfernten Quelle, wie einem Sicherheitsdienst, auf den die spezialisierte virtuelle Maschine 110 Zugriff hat, oder das lokale Generieren der Behebungsinstruktionen entsprechend einer Wissensdatenbank, die die Auswirkungen des Betriebs des entdeckten Schadprogramm-Gegenstands repräsentiert, umfassen.
  • Bei 232 beurteilt die spezialisierte virtuelle Maschine 110 weiterhin die Fähigkeit der virtuellen Maschine 120, die Behebungsinstruktionen tatsächlich auszuführen. Wie oben diskutiert werden verschiedene Ansätze in Betracht gezogen, um diese Fähigkeit zu bestimmen, die allgemein das Vergleichen der funktionalen Konfiguration der virtuellen Maschine 120 mit der zur Durchführung der Schadprogramm-Behebung der erforderlichen Funktionalität umfasst. Die Bestimmung der Fähigkeit kann wenigstens teilweise durch entfernt durchgeführte Operationen erzielt werden, beispielsweise durch einen Sicherheitsdienst, auf den die spezialisierte virtuelle Maschine 110 Zugriff hat. Wenn bei 234 die virtuelle Maschine 120 als fähig erachtet wird, die Behebungsaktionen durchzuführen, zweigt der Prozess zu Block 244 ab, bei dem die Behebungsinstruktionen gesendet werden. Das Senden der Behebungsinstruktionen wird, wie die gesamte Kommunikation zwischen virtuellen Maschinen gemäß dieser Ausführungsform, durch den Hypervisor 170 koordiniert, der bei Block 246 die Behebungsinstruktionen an die virtuelle Maschine 120 weiterleitet, die wiederum die Instruktionen bei 248 vor der Ausführung der Behebungsinstruktionen bei 250 empfängt.
  • Wenn bei 234 bestimmt wird, dass die virtuelle Maschine 120 nicht fähig ist, die Schadprogramm-Behebungsinstruktionen durchzuführen, schreitet der Prozess zu Block 236 fort, bei dem die spezialisierte virtuelle Maschine 110 die notwendigen funktionalen Komponenten sammelt, die der virtuellen Maschine 120 fehlen, und diese an die virtuelle Maschine 120 sendet. Die bereitgestellten funktionalen Komponenten können zum Beispiel von einem externen Dienst erhalten werden, auf den die spezialisierte virtuelle Maschine 110 Zugriff hat. Bei 238 ermöglicht der Hypervisor 170 die Kommunikation der Aktualisierung der funktionalen Komponente mit der virtuellen Maschine 120, die die funktionalen Komponenten bei 240 empfängt. Bei 242 installiert die virtuelle Maschine 120 die funktionalen Komponenten in geeigneter Weise in dem Betriebssystem. Bei der Installation der funktionalen Komponenten können die Behebungsinstruktionen durch die virtuelle Maschine 120 durchgeführt werden.
  • Es ist zu beachten, dass bei dem beispielartigen Prozess von 4A bis 4B bestimmte Sequenzen von Operationen in unterschiedlicher Reihenfolge erfolgen können. Beispielsweise können die Behebungsinstruktionen vor dem Senden der notwendigen funktionalen Komponenten an die virtuelle Maschine 120 gesendet werden. Der Durchschnittsfachmann auf dem einschlägigen Gebiet wird diese und andere Variationen beim Lesen der hier beschriebenen Prinzipien erfassen.
  • Aufgrund dieser Aspekte der Erfindung kann, neben anderen Vorteilen, das System 100 von der Verwendung einer zentralisierten, spezialisierten virtuellen Maschine profitieren, die damit beauftragt ist, Sicherheitsoperationen im Auftrag multipler anderer virtueller Maschinen durchzuführen, während es auch von der Fähigkeit profitiert, dass die spezialisierte virtuelle Maschine eine Schadprogramm-Behandlung und Behebungsinstruktionen bereitstellt, die von jeder unterstützten virtuellen Maschine durchgeführt werden, sogar wenn einer dieser virtuellen Maschinen anfangs die funktionalen Komponenten fehlen, die zur Durchführung solcher Operationen benötigt werden.
  • In 5 ist ein Computersystem 500 dargestellt, in dem Aspekte der Erfindung, wie hier beschrieben, gemäß verschiedener Ausführungsformen ausgeführt sein können. Das Computersystem 500 kann eine Recheneinrichtung wie einen Personal Computer 502 umfassen. Der Personal Computer 502 umfasst eine oder mehrere Verarbeitungseinheiten 504, einen Systemspeicher 506, eine Videoschnittstelle 508, ein Ausgabe-Peripherieschnittstelle 510, eine Netzwerkschnittstelle 512, eine Benutzereingabeschnittstelle 514, entfernbare 516 und nicht entfernbare 518 Speicherschnittstellen und einen Systembus oder einen Hochgeschwindigkeits-Kommunikationskanal 520, der die verschiedenen Komponenten verbindet. Bei verschiedenen Ausführungsformen können die Verarbeitungseinheiten 504 multiple logische Kerne aufweisen, die Informationen verarbeiten können, die auf computerlesbaren Medien gespeichert sind, wie dem Systemspeicher 506 oder dem Speicher, der an die entfernbare 516 und die nicht entfernbare Speicherschnittstelle 518 angeschlossen ist. Der Systemspeicher 506 des Computers 502 kann einen nichtflüchtigen Speicher wie einen Festwertspeicher (ROM) 522 oder einen flüchtigen Speicher wie einen Arbeitsspeicher (RAM) 524 umfassen. Das ROM 522 kann ein Eingabe-/Ausgabe-System (BIOS) 526 umfassen, um bei der Kommunikation mit dem anderen Abschnitt des Computers 502 zu helfen. Das RAM 524 kann Abschnitte verschiedener Softwareanwendungen wie das Betriebssystem 528, Anwendungsprogramme 530 und andere Programmmodule 532 speichern. Weiterhin kann das RAM 524 andere Informationen wie Programm- oder Anwendungsdaten 534 speichern. Bei verschiedenen Ausführungsformen speichert das RAM 524 Informationen, die niedrige Latenzen und effizienten Zugriff erfordern, wie Programme und Daten, die manipuliert werden oder in die eingegriffen wird. Bei verschiedenen Ausführungsformen umfasst das RAM 524 einen Double-Data-Rate(DDR)-Speicher, einen Fehlerkorrektur-Speicher (ECC) oder andere Speichertechniken mit variierenden Latenzen und Konfigurationen wie RAMBUS oder DDR2 und DDR3. Auf diese Art kann bei verschiedenen Ausführungsformen der Systemspeicher 506 den Eingabedatenspeicher, den Zugriffsberechtigungs-Speicher, den Betriebsspeicher-Datenspeicher, den Instruktionssatz-Datenspeicher, den Analyseergebnis-Datenspeicher und den Betriebsspeicher-Datenspeicher speichern. Weiterhin können bei verschiedenen Ausführungsformen die Verarbeitungseinheiten 504 dafür konfiguriert sein, Instruktionen auszuführen, die den Zugriff auf die oben genannten Datenspeicher begrenzen, indem sie eine Zugriffsberechtigung anfordern, bevor der Zugriff auf die Informationen gewährt wird.
  • Die entfernbare 516 und die nicht entfernbare Speicherschnittstelle 518 können die Computer-Festplatte 502 mit Plattenlaufwerken 536 wie einem SSD oder Rotationsplattenlaufwerken verbinden. Diese Plattenlaufwerke 536 können weiteren Speicher für verschiedene Software-Anwendungen wie das Betriebssystem 538, Anwendungsprogramme 540 und andere Programmmodule 542 bereitstellen. Weiterhin können die Plattenlaufwerke 536 andere Informationen wie Programm- oder Anwendungsdaten 544 speichern. Bei verschiedenen Ausführungsformen speichern die Plattenlaufwerke 536 Informationen, die nicht die gleichen niedrigen Latenzen erfordern wie bei anderen Speichermedien. Weiterhin können das Betriebssystem 538, die Daten des Anwendungsprogramms 540, die Programmmodule 542 und die Programm- oder Anwendungsdaten 544 aus den gleichen Informationen bestehen wie die in dem RAM 524 in verschiedenen, oben genannten Ausführungsformen gespeicherten, oder sie können aus unterschiedlichen Daten bestehen, die potenziell aus den in dem RAM 524 gespeicherten Daten abgeleitet wurden.
  • Weiterhin kann die entfernbare, nichtflüchtige Speicherschnittstelle 516 den Computer 502 mit magnetischen, tragbaren Plattenlaufwerken 546 verbinden, die magnetische Medien wie die Diskette 548, Iomega®Zip oder Jazz, oder optische Plattenlaufwerke 550, die optische Medien 552 zur Speicherung computerlesbarer Medien wie Blu-Ray®, DVD-R/RW, CD-R/RW und andere ähnliche Formate verwenden. Weitere Ausführungsformen verwenden SSD oder Rotationsplatten, die in tragbaren Gehäusen untergebracht sind, um die Kapazität des entfernbaren Speichers zu erhöhen.
  • Der Computer 502 kann die Netzwerkschnittstelle 512 verwenden, um mit einem oder mehreren entfernten Computern 556 über ein lokales Netzwerk (LAN) 558 oder ein Weitverkehrs-Netzwerk (WAN) 560 zu kommunizieren. Die Netzwerkschnittstelle 512 kann eine Netzwerkschnittstellenkarte (NIC) oder eine andere Schnittstelle wie ein Modem 562 verwenden, um die Kommunikation zu ermöglichen. Das Modem 562 kann die Kommunikation über Telefonleitungen, koaxiale Leitungen, faseroptische Leitungen, Stromleitungen oder drahtlos ermöglichen. Der entfernte Computer 556 kann eine ähnliche Hardware- und Softwarekonfiguration aufweisen oder kann einen Speicher 564 haben, der entfernte Anwendungsprogramme 566 umfasst, die zusätzliche computerlesbare Instruktionen für den Computer 502 bereitstellen. Bei verschiedenen Ausführungsformen kann der entfernte Computerspeicher 564 verwendet werden, um Informationen zu speichern, beispielsweise identifizierte Datei-Informationen, die später auf einen lokalen Systemspeicher 506 heruntergeladen werden können. Weiterhin kann in verschiedenen Ausführungsformen der entfernte Computer 556 ein Anwendungsserver, ein administrativer Server, Clientcomputer oder eine Netzwerkanwendung sein.
  • Ein Benutzer kann Informationen in den Computer 502 eingeben, wobei er Eingabeeinrichtungen verwendet, die mit der Benutzer-Eingabeschnittstelle 514 verbunden sind, wie eine Maus 568 und eine Tastatur 570. Zusätzlich kann die Eingabeeinrichtung ein Trackpad, ein Fingerabdruck-Scanner, ein Joystick, ein Barcode-Scanner, ein Medien-Scanner oder Ähnliches sein. Die Video-Schnittstelle 508 kann visuelle Informationen an ein Display wie einen Monitor 572 liefern. Die Video-Schnittstelle 508 kann eine eingebettete Schnittstelle oder eine getrennte Schnittstelle sein. Weiterhin kann der Computer eine Vielzahl von Video-Schnittstellen 508, Netzwerkschnittstellen 512 sowie entfernbare 516 und nicht entfernbare Schnittstellen 518 verwenden, um die Flexibilität des Computers 502 im Betrieb zu erhöhen. Weiterhin verwenden verschiedene Ausführungsformen mehrere Monitore 572 und mehrere Video-Schnittstellen 508, um die Leistung und Fähigkeiten des Computers 502 zu variieren. Andere Computer-Schnittstellen können an dem Computer 502 vorhanden sein, wie eine Ausgabe-Peripherieschnittstelle 510. Diese Schnittstelle kann mit einem Drucker 574 oder Lautsprechern 576 oder anderen Peripheriegeräten verbunden sein, um dem Computer 502 zusätzliche Funktionalität zu verleihen.
  • Verschiedene alternative Konfigurationen und Ausführungen des Computers 502 liegen innerhalb des Schutzbereichs der Erfindung. Diese Variationen können ohne Einschränkung zusätzliche Schnittstellen umfassen, die mit dem Systembus 520 verbunden sind, wie ein universeller serieller Bus (USB), ein Druckeranschluss, ein Gameport, ein PCI-Bus, ein PCI-Express oder Integrationen der verschiedenen oben beschriebenen Komponenten zu Chipsatz-Komponenten wie Northbridge oder Southbridge. Beispielsweise kann bei verschiedenen Ausführungsformen die Verarbeitungseinheit 504 einen eingebetteten Speicher-Controller (nicht gezeigt) umfassen, um eine effizientere Datenübertragung von dem Systemspeicher 506 zu ermöglichen, als sie möglicherweise der Systembus 520 liefert.
  • Die oben genannten Ausführungsformen sind illustrativ und nicht einschränkend zu verstehen. Zusätzliche Ausführungsformen liegen im Schutzbereich der Ansprüche. Obgleich Aspekte der Erfindung unter Bezugnahme auf bestimmte Ausführungsformen beschrieben wurden, wird dem Fachmann außerdem klar sein, dass Änderungen an Form und Einzelheiten vorgenommen werden können, ohne von dem Schutzbereich der Erfindung abzuweichen, wie er in den Ansprüchen definiert ist.
  • Der Durchschnittsfachmann auf dem einschlägigen Gebiet wird erkennen, dass die Erfindung möglicherweise weniger Merkmale aufweist, als in den einzelnen, oben beschriebenen Ausführungsformen dargestellt. Die hier beschriebenen Ausführungsformen sind nicht als umfassende Darstellung der Arten, wie die verschiedenen Merkmale der Erfindung kombiniert werden können, zu verstehen. Dementsprechend sind die Ausführungsformen keine sich gegenseitig ausschließenden Kombinationen von Merkmalen, sondern die Erfindung kann eine Kombination unterschiedlicher einzelner Merkmale umfassen, die aus unterschiedlichen einzelnen Ausführungsformen ausgewählt sind, wie dem Durchschnittsfachmann verständlich sein wird.
  • Jede Bezugnahme auf die oben genannten Dokumente ist insofern eingeschränkt, als sie keine Gegenstände betrifft, die im Widerspruch zu der expliziten Offenbarung hierin stehen. Jede Bezugnahme auf die oben genannten Dokumente ist weiterhin insofern eingeschränkt, als keine in den Dokumenten enthaltenen Ansprüche als Teil der Ansprüche dieser Anmeldung aufzufassen sind. Die Ansprüche jedes der Dokumente sind jedoch als Teil ihrer Offenbarung aufzufassen, soweit dies nicht ausdrücklich ausgeschlossen ist. Jede Bezugnahme auf die oben genannten Dokumente ist weiterhin insofern eingeschränkt, als dass Definitionen, die in den Dokumenten enthalten sind, nicht Teil dieser Offenbarung sind, soweit sie hier nicht explizit eingeschlossen sind.
  • Die Host-Maschine oder das Computersystem zur Ausführung einer Vielzahl virtueller Maschinen gemäß dieser Erfindung kann durch die folgenden Verfahren angewendet werden:
    • a) Ein computerimplementiertes Verfahren zur Durchführung von Anti-Malware-Operationen in einer Host-Maschine oder einem Computersystem, in dem multiple virtuelle Maschinen (120) ausgeführt werden, wobei das Verfahren umfasst: Ausführen einer ersten Vielzahl virtueller Maschinen (120) der multiplen virtuellen Maschinen durch die Host-Maschine oder das Computersystem, wobei jede der ersten Vielzahl virtueller Maschinen (120) eine isolierte Ausführungsumgebung bietet, wobei ein Betriebssystem, ein Lightweight-Agent-Modul (130) und Benutzeranwendungen ausgeführt werden; Ausführen einer spezialisierten virtuellen Maschine (110) der multiplen virtuellen Maschinen (120) durch die Host-Maschine oder das Computersystem, die eine isolierte Ausführungsumgebung bietet, in der ein zentrales Sicherheitsmodul (160) ausgeführt wird; Ausführen eines Hypervisor-Moduls (170) durch die Host-Maschine oder das Computersystem, das die Ausführung der ersten Vielzahl virtueller Maschinen (120) und der spezialisierten virtuellen Maschine (110) koordiniert und das die Kommunikation zwischen jedem Lightweight-Agent-Modul (130) und dem zentralen Sicherheitsmodul (160) über ein inter-virtuelles Maschinenprotokoll koordiniert, das Verschlüsselung oder Authentifizierung verwendet; und wobei bei der Ausführung der spezialisierten virtuellen Maschine (110) das zentrale Sicherheitsmodul (160) sicherheitsbezogene Aufgaben im Auftrag einzelner der ersten Vielzahl virtueller Maschinen (120) durchführt, einschließlich der Beurteilung von Schadprogrammen, und weiterhin spezifizierte Schadprogramm-Behebungs-Instruktionen generiert, die Aktionen definieren, die von einzelnen der Lightweight-Agent-Module (130) als Reaktion auf ein Schadprogramm auszuführen sind, das in einer aus der ersten Vielzahl virtueller Maschinen (120) vorhanden ist, die diesen Lightweight-Agent-Modulen (130) entspricht; wobei das zentrale Sicherheitsmodul (160) weiterhin ein Fähigkeits-Beurteilungsmodul (168) umfasst, das dafür konfiguriert ist, eine Fähigkeit zur wirksamen Ausführung der Schadprogramm-Behebungs-Instruktionen des Instruktionssequenz-Ausführungsmoduls (145) eines ersten Lightweight-Agent-Moduls (130) zu beurteilen, indem funktionale Komponenten identifiziert werden, die mit den betriebssystembezogenen Informationen in Verbindung stehen, die von dem Lightweight-Agent-Modul (130) geliefert werden, sowie deren Vergleich mit funktionalen Komponenten, von denen bekannt ist, dass die benötigt werden, um die Schadprogramm-Behebungs-Instruktionen wirksam auszuführen; und wobei das Lightweight-Agent-Modul (130) jeder der virtuellen Maschinen (120) ein Instruktionssequenz-Ausführungsmodul (145) umfasst, das dafür konfiguriert ist, die Schadprogramm-Behebungs-Instruktionen zu empfangen und auszuführen, und jedes Lightweight-Agent-Modul (130) dafür konfiguriert ist, betriebssystembezogene Informationen der virtuellen Maschine (120) an ein Fähigkeits-Beurteilungs-Modul (168) zu liefern, entweder als Teil einer Dienstanforderung oder als Reaktion auf eine Anfrage von dem Fähigkeits-Beurteilungs-Modul (168), wobei die betriebssystembezogenen Informationen eine Versionsnummer des Betriebssystems und/oder eine Identifikation an dem Betriebssystem installierter Komponenten umfassen; und als Reaktion auf eine Beurteilung der Fähigkeit des ersten Lightweight-Agent-Moduls (130) als unzureichend für eine Ausführung der Schadprogramm-Behebungs-Instruktionen das zentrale Sicherheitsmodul (160) weiterhin eine fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente bereitstellt, die in einer ersten virtuellen Maschine installiert wird; und wobei bei der Ausführung des ersten Lightweight-Agent-Moduls (130) die Schadprogramm-Behebungs-Instruktionen empfangen werden, und als Reaktion auf den Empfang der fortgeschrittenen Sicherheitsaufgaben-Ausführungskomponente das erste Lightweight-Agent-Modul (130) die fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente in dem Betriebssystem der virtuellen Maschine (120) installiert, bevor die Schadprogramm-Behebungs-Instruktionen ausgeführt werden; wobei die funktionalen Komponenten, von denen bekannt ist, dass sie für eine wirksame Ausführung der Schadprogramm-Behebungs-Instruktionen benötigt werden, der ersten virtuellen Maschine (120) zur Verfügung stehen, nachdem die fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente installiert wurde.
    • b) Verfahren nach Absatz a), wobei beim Ausführen des ersten Lightweight-Agent-Moduls (130) Schadprogramm-Behandlungs-Instruktionen von dem zentralen Sicherheitsmodul (160) empfangen und von dem Lightweight-Agent-Modul (130) ausgeführt werden, um ein entdecktes Schadprogramm-Objekt zu entfernen.
    • c) Verfahren nach Absatz a), wobei beim Ausführen des ersten Lightweight-Agent-Moduls (130) Schadprogramm-Behandlungs-Instruktionen von dem zentralen Sicherheitsmodul (160) empfangen und von dem Lightweight-Agent-Modul (130) ausgeführt werden, um ein entdecktes Schadprogramm-Objekt unter Quarantäne zu stellen.
    • d) Verfahren nach Absatz a), wobei beim Ausführen des ersten Lightweight-Agent-Moduls (130) das erste Lightweight-Agent-Modul (130) eine Sicherheitsdienst-Anfrage liefert, die von dem zentralen Sicherheitsmodul (160) empfangen wird, und als Reaktion auf den Empfang der Sicherheitsdienst-Anfrage das zentrale Sicherheitsmodul (160) eine erste der sicherheitsbezogenen Aufgaben initiiert.
  • 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 2012/0144489 A1 [0004, 0008]
    • US 2013/0061325 A1 [0005, 0006, 0006, 0008]
  • Zitierte Nicht-Patentliteratur
    • Gebhardt, Carl et al., ”Challenges for Inter Virtual Machine Communication,” Technical Report RHUL-MA-2010-12, Department of Mathematics, Royal Holloway, University of London (2010) [0051]
    • Burtsev, Anton, et al., ”Fido: Fast inter-virtual-machine communication for enterprise appliances,” Proceedings of the 2009 conference on USENIX Annual technical conference, USENIX Association, (2009) [0051]

Claims (10)

  1. Host-Maschine oder Computersystem zur Ausführung einer Vielzahl virtueller Maschinen (120), wobei die Host-Maschine umfasst: Rechen-Hardware, umfassend wenigstens einen Prozessor, nichtflüchtige Datenspeichermedien, die mit dem wenigstens einen Prozessor eine Schnittstelle haben und Instruktionen umfassen, die, wenn sie von dem wenigstens einen Prozessor ausgeführt werden, bewirken, dass die Rechenhardware Folgendes implementiert: die Vielzahl virtueller Maschinen (120), von denen jede eine isolierte Ausführungsumgebung bereitstellt, wobei ein Betriebssystem, ein Lightweight-Agent-Modul (130) und Benutzeranwendungen ausgeführt werden; eine spezialisierte virtuelle Maschine (110), die eine isolierte Ausführungsumgebung bereitstellt, in der ein zentrales Sicherheitsmodul (160) ausgeführt wird; ein Hypervisor-Modul (170), das die Ausführung der Vielzahl virtueller Maschinen (120) und der spezialisierten virtuellen Maschine (110) koordiniert, wobei Informationen zwischen jedem Lightweight-Agent-Modul (130) und dem zentralen Sicherheitsmodul (160) durch das Hypervisor-Modul (170) über ein inter-virtuelles Maschinenprotokoll kommuniziert werden, das Verschlüsselung oder Authentifizierung verwendet; wobei das zentrale Sicherheitsmodul (160) sicherheitsbezogene Aufgaben im Auftrag individueller virtueller Maschinen aus der Vielzahl virtueller Maschinen (120) durchführt, einschließlich einer Schadprogramm-Beurteilung, und ein Schadprogramm-Behebungsmodul (164) umfasst, das dafür konfiguriert ist, spezifische Schadprogramm-Beseitigungs-Instruktionen zu generieren, die Aktionen definieren, die durch individuelle Lightweight-Agent-Module (130) als Reaktion auf eine Beurteilung der Schadprogramme, die in einer der virtuellen Maschinen (120) vorhanden sind, die diesen Lightweight-Agent-Modulen (130) entspricht, ausgeführt werden; wobei das Lightweight-Agent-Modul (130) jeder der virtuellen Maschinen (120) ein Instruktionssequenz-Ausführungsmodul (145) umfasst, das dafür konfiguriert ist, die Schadprogramm-Behebungs-Instruktionen zu empfangen und auszuführen; dadurch gekennzeichnet, dass jedes Lightweight-Agent-Modul (130) dafür konfiguriert ist, betriebssystembezogene Informationen der virtuellen Maschine (120) bereitzustellen, entweder als Teil einer Dienstanforderung oder als Reaktion auf eine Anfrage von einem Fähigkeits-Beurteilungsmodul (168), das in dem zentralen Sicherheitsmodul (160) vorgesehen ist, wobei die betriebssystembezogenen Informationen eine Versionsnummer des Betriebssystems und/oder eine Identifikation der installierten Komponenten in dem Betriebssystem umfassen; wobei das Fähigkeits-Beurteilungs-Modul (168) dafür konfiguriert ist, eine Fähigkeit eines ersten Instruktionssequenz-Ausführungsmoduls (145) eines ersten Lightweight-Agent-Moduls (130) zu beurteilen, um die Schadprogramm-Behebungs-Instruktionen wirksam auszuführen, indem funktionale Komponenten identifiziert werden, die mit den betriebssystembezogenen Informationen in Verbindung stehen, die von dem Lightweight-Agent-Modul (130) bereitgestellt werden, und mit funktionalen Komponenten verglichen werden, von denen bekannt ist, dass sie für eine wirksame Ausführung der Schadprogramm-Behebungs-Instruktionen benötigt werden; und wobei ein Sicherheits-Funktionalitäts-Aktualisierungsmodul (166) in der spezialisierten virtuellen Maschine (110) dafür konfiguriert ist, eine fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente bereitzustellen, die in einer ersten virtuellen Maschine (120) zu installieren ist, die dem ersten Lightweight-Agent-Modul (130) entspricht, als Reaktion auf eine Beurteilung der Fähigkeit des ersten Lightweight-Agent-Moduls (130), die als unzureichend erachtet wird, um die Schadprogramm-Behebungs-Instruktionen auszuführen; wobei die funktionalen Komponenten, von denen bekannt ist, dass sie für eine wirksame Ausführung der Schadprogramm-Behebungs-Instruktionen benötigt werden, nach der Installation der fortgeschrittenen Sicherheitsaufgaben-Ausführungskomponente der ersten virtuellen Maschine (120) zur Verfügung stehen.
  2. Host-Maschine nach Anspruch 1, wobei das zentrale Sicherheitsmodul (160) dafür konfiguriert ist, Schadprogramm-Behandlungs-Instruktionen zu generieren, die, wenn sie von einem ersten Lightweight-Agent-Modul (130) ausgeführt werden, bewirken, dass das erste Lightweight-Agent-Modul (130) ein entdecktes Schadprogramm-Objekt entfernt.
  3. Host-Maschine nach Anspruch 1, wobei das zentrale Sicherheitsmodul (160) dafür konfiguriert ist, Schadprogramm-Behandlungs-Instruktionen zu generieren, die, wenn sie von einem ersten Lightweight-Agent-Modul (130) ausgeführt werden, bewirken, dass das erste Lightweight-Agent-Modul (130) ein entdecktes Schadprogramm-Objekt unter Quarantäne stellt.
  4. Host-Maschine nach einem der vorhergehenden Ansprüche, wobei das zentrale Sicherheitsmodul (160) die sicherheitsbezogenen Aufgaben als Reaktion auf eine Sicherheitsdienst-Anforderung durch das erste Lightweight-Agent-Modul (130) einer oder mehrerer aus der Vielzahl virtueller Maschinen (120) durchführt.
  5. Host-Maschine nach einem der vorhergehenden Ansprüche, wobei die fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente eine funktionale Komponente auf Systemebene umfasst, und wobei die Schadprogramm-Behebungs-Instruktionen aus Instruktionen auf Anwendungsebene bestehen.
  6. Host-Maschine nach einem der vorhergehenden Ansprüche, wobei die fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente eine Betriebssystemtreiber-Aktualisierung umfasst.
  7. Host-Maschine nach einem der vorhergehenden Ansprüche, wobei die fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente eine Betriebssystemregister-Aktualisierung umfasst.
  8. Host-Maschine nach einem der vorhergehenden Ansprüche, wobei die fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente ein Element aus gesicherten Daten umfasst.
  9. Host-Maschine nach einem der vorhergehenden Ansprüche, wobei die fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente ein Datenverarbeitungswerkzeug umfasst.
  10. Host-Maschine nach einem der vorhergehenden Ansprüche, wobei das Instruktionssequenz-Ausführungsmodul (145) ein Installer-Modul umfasst, das dafür konfiguriert ist, die fortgeschrittene Sicherheitsaufgaben-Ausführungskomponente in das Betriebssystem zu integrieren.
DE202014011092.1U 2014-07-17 2014-09-24 Sicherheitsarchitektur für virtuelle Maschinen Active DE202014011092U1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/334,393 US9009836B1 (en) 2014-07-17 2014-07-17 Security architecture for virtual machines
US14/334,393 2014-07-17

Publications (1)

Publication Number Publication Date
DE202014011092U1 true DE202014011092U1 (de) 2017-10-19

Family

ID=51625833

Family Applications (1)

Application Number Title Priority Date Filing Date
DE202014011092.1U Active DE202014011092U1 (de) 2014-07-17 2014-09-24 Sicherheitsarchitektur für virtuelle Maschinen

Country Status (3)

Country Link
US (1) US9009836B1 (de)
EP (1) EP2975548A1 (de)
DE (1) DE202014011092U1 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10033693B2 (en) 2013-10-01 2018-07-24 Nicira, Inc. Distributed identity-based firewalls
RU2580030C2 (ru) * 2014-04-18 2016-04-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ распределения задач антивирусной проверки между виртуальными машинами в виртуальной сети
US10795707B2 (en) * 2014-05-14 2020-10-06 Peter McClelland Hay Systems and methods for ensuring computer system security via a virtualized layer of application abstraction
US9742796B1 (en) 2015-09-18 2017-08-22 Palo Alto Networks, Inc. Automatic repair of corrupt files for a detonation engine
US10324746B2 (en) 2015-11-03 2019-06-18 Nicira, Inc. Extended context delivery for context-based authorization
CN108369625B (zh) * 2015-12-19 2022-03-04 比特梵德知识产权管理有限公司 用于保护多个网络端点的双重存储器内省
US10181034B2 (en) * 2016-02-12 2019-01-15 Sophos Limited Virtual machine security
US10938837B2 (en) * 2016-08-30 2021-03-02 Nicira, Inc. Isolated network stack to manage security for virtual machines
US11032246B2 (en) 2016-12-22 2021-06-08 Nicira, Inc. Context based firewall services for data message flows for multiple concurrent users on one machine
US10503536B2 (en) 2016-12-22 2019-12-10 Nicira, Inc. Collecting and storing threat level indicators for service rule processing
US10812451B2 (en) 2016-12-22 2020-10-20 Nicira, Inc. Performing appID based firewall services on a host
US10803173B2 (en) 2016-12-22 2020-10-13 Nicira, Inc. Performing context-rich attribute-based process control services on a host
US10805332B2 (en) 2017-07-25 2020-10-13 Nicira, Inc. Context engine model
US10778651B2 (en) 2017-11-15 2020-09-15 Nicira, Inc. Performing context-rich attribute-based encryption on a host
US10802893B2 (en) 2018-01-26 2020-10-13 Nicira, Inc. Performing process control services on endpoint machines
US10862773B2 (en) 2018-01-26 2020-12-08 Nicira, Inc. Performing services on data messages associated with endpoint machines
US11157300B2 (en) 2018-02-13 2021-10-26 Sophos Limited Managing virtual machine security resources
US10824728B2 (en) * 2018-05-30 2020-11-03 Nec Corporation Reliable detection of co-located virtual machines in the cloud using a trusted execution environment
US11539718B2 (en) 2020-01-10 2022-12-27 Vmware, Inc. Efficiently performing intrusion detection
US11108728B1 (en) 2020-07-24 2021-08-31 Vmware, Inc. Fast distribution of port identifiers for rule processing
CN114691304B (zh) * 2022-03-28 2023-01-06 同方威视技术股份有限公司 实现集群虚拟机高可用的方法和装置、设备和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120144489A1 (en) 2010-12-07 2012-06-07 Microsoft Corporation Antimalware Protection of Virtual Machines
US20130061325A1 (en) 2011-09-07 2013-03-07 Mcafee, Inc. Dynamic Cleaning for Malware Using Cloud Technology

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6067410A (en) 1996-02-09 2000-05-23 Symantec Corporation Emulation repair system
US20090038011A1 (en) 2004-10-26 2009-02-05 Rudra Technologies Pte Ltd. System and method of identifying and removing malware on a computer system
US7673341B2 (en) 2004-12-15 2010-03-02 Microsoft Corporation System and method of efficiently identifying and removing active malware from a computer
US7934229B1 (en) 2005-12-29 2011-04-26 Symantec Corporation Generating options for repairing a computer infected with malicious software
US8234710B2 (en) 2006-07-05 2012-07-31 BB4 Solutions, Inc. Malware automated removal system and method using a diagnostic operating system
US8307443B2 (en) 2007-09-28 2012-11-06 Microsoft Corporation Securing anti-virus software with virtualization
US8667583B2 (en) 2008-09-22 2014-03-04 Microsoft Corporation Collecting and analyzing malware data
US8387046B1 (en) * 2009-03-26 2013-02-26 Symantec Corporation Security driver for hypervisors and operating systems of virtualized datacenters
CN102754077B (zh) * 2009-12-14 2015-11-25 思杰系统有限公司 可从外部媒体装置引导的安全虚拟化环境
WO2011081935A2 (en) * 2009-12-14 2011-07-07 Citrix Systems, Inc. Methods and systems for communicating between trusted and non-trusted virtual machines
US8863279B2 (en) * 2010-03-08 2014-10-14 Raytheon Company System and method for malware detection
EP2569698B1 (de) 2010-05-10 2019-07-10 Citrix Systems, Inc. Umleitung von informationen aus sicheren virtuellen maschinen auf unsichere virtuelle maschinen
US8667489B2 (en) 2010-06-29 2014-03-04 Symantec Corporation Systems and methods for sharing the results of analyses among virtual machines
US8776233B2 (en) 2010-10-01 2014-07-08 Mcafee, Inc. System, method, and computer program product for removing malware from a system while the system is offline
US8424093B2 (en) 2010-11-01 2013-04-16 Kaspersky Lab Zao System and method for updating antivirus cache
US8479294B1 (en) 2011-02-15 2013-07-02 Trend Micro Incorporated Anti-malware scan management in high-availability virtualization environments
US8584211B1 (en) 2011-05-18 2013-11-12 Bluespace Software Corporation Server-based architecture for securely providing multi-domain applications
US8583920B1 (en) 2012-04-25 2013-11-12 Citrix Systems, Inc. Secure administration of virtual machines

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120144489A1 (en) 2010-12-07 2012-06-07 Microsoft Corporation Antimalware Protection of Virtual Machines
US20130061325A1 (en) 2011-09-07 2013-03-07 Mcafee, Inc. Dynamic Cleaning for Malware Using Cloud Technology

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Burtsev, Anton, et al., "Fido: Fast inter-virtual-machine communication for enterprise appliances," Proceedings of the 2009 conference on USENIX Annual technical conference, USENIX Association, (2009)
Gebhardt, Carl et al., "Challenges for Inter Virtual Machine Communication," Technical Report RHUL-MA-2010-12, Department of Mathematics, Royal Holloway, University of London (2010)

Also Published As

Publication number Publication date
US9009836B1 (en) 2015-04-14
EP2975548A1 (de) 2016-01-20

Similar Documents

Publication Publication Date Title
DE202014011092U1 (de) Sicherheitsarchitektur für virtuelle Maschinen
US11562071B2 (en) Detecting malware via scanning for dynamically generated function pointers in memory
US11244047B2 (en) Intelligent backup and versioning
DE112012003988B4 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
US10503895B2 (en) Runtime non-intrusive container security introspection and remediation
DE112005001739B4 (de) Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen
Pearce et al. Virtualization: Issues, security threats, and solutions
US9740857B2 (en) Threat-aware microvisor
DE102011103218B4 (de) Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen
US8127412B2 (en) Network context triggers for activating virtualized computer applications
US8938782B2 (en) Systems and methods for providing network access control in virtual environments
US10678918B1 (en) Evaluating malware in a virtual machine using copy-on-write
US11290492B2 (en) Malicious data manipulation detection using markers and the data protection layer
CN108399332B (zh) 在虚拟机中针对恶意性对文件进行分析的系统和方法
US9613210B1 (en) Evaluating malware in a virtual machine using dynamic patching
DE102018115670A1 (de) Technologien für die Ausführung von nicht vertrauenswürdigem Code mit Prozessor-Sandbox-Unterstützung
DE112011105577T5 (de) Virtueller hochprivilegierter Modus für eine Systemverwaltungsanforderung
DE102007060324A1 (de) Computerbetrieb im Mehrfachmodus
DE112020003881T5 (de) System und verfahren zur durchführung von trusted computing mit fernbescheinigung und informationsisolierung auf heterogenen prozessoren über eine offene verbindung
DE102023202297A1 (de) Wahrung der vertraulichkeit von mandanten in einer cloud-umgebung beim einsatz von sicherheitsdiensten
RU2702053C1 (ru) Способ снижения нагрузки на сканирующую подсистему путем дедупликации сканирования файлов
US10949559B1 (en) Repository-based privilege escalation for workflows
DE202013103358U1 (de) Selektive Einschätzung der Schädlichkeit von im Adressraum eines vertrauenswürdigen Prozesses ausgeführtem Software-Code
Abdullah et al. File integrity monitor scheduling based on file security level classification
Latzo All your System Memory are belong to us: From Low-Level Memory Acquisition to High-Level Forensic Event Reconstruction

Legal Events

Date Code Title Description
R082 Change of representative

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

R150 Utility model maintained after payment of first maintenance fee after three years
R207 Utility model specification
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