DE112012003988B4 - Schützen des Arbeitsspeichers eines virtuellen Gasts - Google Patents

Schützen des Arbeitsspeichers eines virtuellen Gasts Download PDF

Info

Publication number
DE112012003988B4
DE112012003988B4 DE112012003988.2T DE112012003988T DE112012003988B4 DE 112012003988 B4 DE112012003988 B4 DE 112012003988B4 DE 112012003988 T DE112012003988 T DE 112012003988T DE 112012003988 B4 DE112012003988 B4 DE 112012003988B4
Authority
DE
Germany
Prior art keywords
virtual guest
manager
virtual
memory
runtime memory
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
DE112012003988.2T
Other languages
English (en)
Other versions
DE112012003988T5 (de
Inventor
Christopher J. Arges
Nathan D. Fontenot
Ryan P. Grimm
Joel H. Schopp
Michael T. Strosaker
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.)
Finjan Blue Wilmington Us LLC
Original Assignee
Finjan Blue LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/272,780 external-priority patent/US8782351B2/en
Application filed by Finjan Blue LLC filed Critical Finjan Blue LLC
Publication of DE112012003988T5 publication Critical patent/DE112012003988T5/de
Application granted granted Critical
Publication of DE112012003988B4 publication Critical patent/DE112012003988B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1433Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a module or a part of a module
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • 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/45583Memory management, e.g. access or allocation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Verfahren, aufweisend:Initialisieren eines virtuellen Gasts (120a, 120b) auf einem Host-Datenverarbeitungssystem (105), wobei das Host-Datenverarbeitungssystem einen VM-Manager (110) aufweist, wobei der VM-Manager (110) den Betrieb des virtuellen Gasts (120a, 120b) verwaltet, wobei der virtuelle Gast (120a, 120b) eine bestimmte Betriebsumgebung aufweist, die in einer von dem VM-Manager (110) bereitgestellten virtuellen Betriebsplattform ausgeführt wird;Empfangen einer Zuordnung von Laufzeitarbeitsspeicher (210) für den virtuellen Gast (120a, 120b), wobei die Zuordnung von Laufzeitarbeitsspeicher einen Teil des Laufzeitarbeitsspeichers des Host-Datenverarbeitungssystems aufweist; undSetzen, durch den virtuellen Gast (120a, 120b), von mindestens einem Teil (210) der Zuordnung von Laufzeitarbeitsspeicher als für den VM-Manager (110) nicht zugänglich.

Description

  • Technisches Gebiet
  • Der hier offenbarte Erfindungsgegenstand betrifft die Virtualisierung und virtuelle Gäste und insbesondere das Schützen des Arbeitsspeichers eines virtuellen Gasts.
  • Stand der Technik
  • Die Virtualisierung von Hardware ermöglicht die Abstraktion einer Datenverarbeitungsplattform, welche die Simulation von einer oder mehreren Datenverarbeitungsumgebungen beinhaltet, in der Anwendungen, Programme und sogar ganze Betriebssysteme als „virtuelle Gäste“ der Host-Datenverarbeitungsplattform ausgeführt werden können. Normalerweise verwaltet eine Anwendung auf dem Hostrechner, wie zum Beispiel ein Hypervisor oder ein VM-Manager, diese virtuellen Datenverarbeitungsumgebungen und/oder stellt sie bereit.
  • Kurzdarstellung der Erfindung
  • Technisches Problem
  • Derzeit sind virtuelle Gäste bei einer Virtualisierung üblicherweise verwundbar gegenüber einem gefährdeten Host (z.B. dem Hypervisor oder dem VM-Manager). Wenn ein virtueller Gast in einer Cloud-Datenverarbeitungsumgebung arbeitet, muss der virtuelle Gast überdies dem Cloud-Anbieter dahingehend vertrauen, dass dieser seine Hostrechner sichert und seinen Zugriff nicht missbraucht. Folglich könnten viele virtuelle Gäste, wie zum Beispiel diejenigen, die vertrauliche Forschungs- oder andere sensible Daten per Hosting zur Verfügung stellen, nicht in einer öffentlichen Cloud-Datenverarbeitungsumgebung ausgeführt werden, da der Hostrechner möglicherweise auf die vertraulichen Daten des virtuellen Gasts zugreifen könnte.
  • Aus der WO 2011/081935 A2 ist es bekannt, zum Bereitstellen eines sicheren Kommunikationskanals einen Hypervisor vorzusehen, der sowohl eine vertrauenswürdige virtuelle Maschine hostet als auch eine nicht vertrauenswürdige virtuelle Maschine hostet und beiden dieser virtuellen Maschinen Zugriff auf einen Speicherplatz gewährt, der für eine dritte virtuelle Maschine gesperrt wird.
  • Lösung für das Problem
  • Ein Verfahren zum Schützen des Arbeitsspeichers eines virtuellen Gasts wird bereitgestellt. Das Verfahren beinhaltet die Initialisierung eines virtuellen Gasts auf einem Host-Datenverarbeitungssystem. Das Host-Datenverarbeitungssystem enthält einen VM-Manager, der den Betrieb des virtuellen Gasts verwaltet. Der virtuelle Gast enthält eine bestimmte Betriebsumgebung, die in einer von dem VM-Manager bereitgestellten virtuellen Betriebsplattform ausgeführt wird. Das Verfahren beinhaltet den Empfang einer Zuordnung von Laufzeitarbeitsspeicher für den virtuellen Gast. Die Zuordnung von Laufzeitarbeitsspeicher beinhaltet einen Teil des Laufzeitarbeitsspeichers des Host-Datenverarbeitungssystems. Das Verfahren beinhaltet das Setzen, durch den virtuellen Gast, von mindestens einem Teil der Zuordnung von Laufzeitarbeitsspeicher als für den VM-Manager nicht zugänglich.
  • Eine Vorrichtung zum Schützen des Arbeitsspeichers eines virtuellen Gasts ist mit einer Vielzahl von Modulen ausgestattet, die so konfiguriert sind, dass sie die vorstehend mit Bezug auf das vorgestellte Verfahren beschriebenen Schritte funktional durchführen. Diese Module enthalten in den beschriebenen Ausführungsformen ein Initialisierungsmodul, ein Empfangsmodul und ein Schutzmodul. Das Initialisierungsmodul initialisiert einen virtuellen Gast auf einem Host-Datenverarbeitungssystem. Das Host-Datenverarbeitungssystem enthält einen VM-Manager, der den Betrieb des virtuellen Gasts verwaltet. Der virtuelle Gast enthält eine bestimmte Betriebsumgebung, die in einer von dem VM-Manager bereitgestellten virtuellen Betriebsplattform ausgeführt wird. Das Empfangsmodul empfängt eine Zuordnung von Laufzeitarbeitsspeicher für den virtuellen Gast. Die Zuordnung von Laufzeitarbeitsspeicher beinhaltet einen Teil des Laufzeitarbeitsspeichers des Host-Datenverarbeitungssystems. Das Schutzmodul setzt mindestens einen Teil der Zuordnung von Laufzeitarbeitsspeicher durch den virtuellen Gast als für den VM-Manager nicht zugänglich.
  • Ein System wird vorgestellt, das dazu dient, den Arbeitsspeicher des virtuellen Gasts zu schützen. Das System enthält einen VM-Manager, der eine virtuelle Betriebsplattform für ein Host-Datenverarbeitungssystem bereitstellt, einen Prozessor und einen Arbeitsspeicher, welcher Module zur Ausführung durch den Prozessor speichert. Der Arbeitsspeicher enthält ein Initialisierungsmodul, das einen virtuellen Gast auf einem Host-Datenverarbeitungssystem initialisiert. Das Host-Datenverarbeitungssystem enthält einen VM-Manager, der den Betrieb des virtuellen Gasts verwaltet. Der virtuelle Gast enthält eine bestimmte Betriebsumgebung, die in einer von dem VM-Manager bereitgestellten virtuellen Betriebsplattform ausgeführt wird. Das Empfangsmodul empfängt eine Zuordnung von Laufzeitarbeitsspeicher für den virtuellen Gast. Die Zuordnung von Laufzeitarbeitsspeicher beinhaltet einen Teil des Laufzeitarbeitsspeichers des Host-Datenverarbeitungssystems. Das Schutzmodul setzt mindestens einen Teil der Zuordnung von Laufzeitarbeitsspeicher durch den virtuellen Gast als für den VM-Manager nicht zugänglich.
  • Ein Computer-Programmprodukt wird vorgestellt, das dazu dient, den Arbeitsspeicher des virtuellen Gasts zu schützen. Das Computer-Programmprodukt enthält ein von einem Computer lesbares Speichermedium, das über damit realisierten, von einem Computer lesbaren Programmcode verfügt. Der von einem Computer lesbare Programmcode dient zur Initialisierung eines virtuellen Gasts auf einem Host-Datenverarbeitungssystem. Das Host-Datenverarbeitungssystem enthält einen VM-Manager, der den Betrieb des virtuellen Gasts verwaltet. Der virtuelle Gast enthält eine bestimmte Betriebsumgebung, die in einer von dem VM-Manager bereitgestellten virtuellen Betriebsplattform ausgeführt wird. Der von einem Computer lesbare Programmcode dient zum Empfangen einer Zuordnung von Laufzeitarbeitsspeicher für den virtuellen Gast. Die Zuordnung von Laufzeitarbeitsspeicher beinhaltet einen Teil des Laufzeitarbeitsspeichers des Host-Datenverarbeitungssystems. Der von einem Computer lesbare Programmcode dient dazu, durch den virtuellen Gast mindestens einen Teil der Zuordnung von Laufzeitarbeitsspeicher als für den VM-Manager nicht zugänglich zu setzen.
  • Ein weiteres Verfahren wird vorgestellt. Das Verfahren beinhaltet das Einsetzen einer Sicherheitsvorrichtung für einen virtuellen Gast auf einem Host-Datenverarbeitungssystem. Die Sicherheitsvorrichtung für einen virtuellen Gast ist in der Lage, einen virtuellen Gast auf einem Host-Datenverarbeitungssystem zu initialisieren. Das Host-Datenverarbeitungssystem enthält einen VM-Manager, der den Betrieb des virtuellen Gasts verwaltet. Der virtuelle Gast enthält eine bestimmte Betriebsumgebung, die in einer von dem VM-Manager bereitgestellten virtuellen Betriebsplattform ausgeführt wird. Die Sicherheitsvorrichtung für einen virtuellen Gast ist in der Lage, eine Zuordnung von Laufzeitarbeitsspeicher für den virtuellen Gast zu empfangen. Die Zuordnung von Laufzeitarbeitsspeicher beinhaltet einen Teil des Laufzeitarbeitsspeichers des Host-Datenverarbeitungssystems. Die Sicherheitsvorrichtung für einen virtuellen Gast ist in der Lage, durch den virtuellen Gast mindestens einen Teil der Zuordnung von Laufzeitarbeitsspeicher als für den VM-Manager nicht zugänglich zu setzen.
  • Vorteilhafte Wirkungen der Erfindung
  • Viele virtuelle Gäste, wie zum Beispiel diejenigen, die vertrauliche Forschungs- oder andere sensible Daten per Hosting zur Verfügung stellen, könnten in einer öffentlichen Cloud-Datenverarbeitungsumgebung ausgeführt werden, da der Hostrechner nicht auf die vertraulichen Daten des virtuellen Gasts zugreifen könnte.
  • Figurenliste
  • Damit die Vorteile der Ausführungsformen der Erfindung ohne Weiteres verstanden werden, folgt eine detailliertere Beschreibung der vorstehend kurz beschriebenen Ausführungsformen, indem auf bestimmte Ausführungsformen Bezug genommen wird, die in den beigefügten Zeichnungen veranschaulicht sind. In dem Verständnis, dass diese Zeichnungen lediglich einige Ausführungsformen zeigen und deshalb nicht als Einschränkung des Umfangs zu betrachten sind, werden die Ausführungsformen durch die Verwendung der beigefügten Zeichnungen mit zusätzlicher Spezifität und Detailliertheit beschrieben und erklärt, bei denen:
    • 1 ein schematisches Blockschaubild ist, das eine einzelne Ausführungsform eines Systems zum Schützen des Arbeitsspeichers eines virtuellen Gasts gemäß der vorliegenden Erfindung zeigt;
    • 2 ein schematisches Blockschaubild ist, das eine zweite Ausführungsform eines Systems zum Schützen des Arbeitsspeichers eines virtuellen Gasts gemäß der vorliegenden Erfindung zeigt;
    • 3 ein schematisches Blockschaubild ist, das eine dritte Ausführungsform eines Systems zum Schützen des Arbeitsspeichers eines virtuellen Gasts gemäß der vorliegenden Erfindung zeigt;
    • 4 ein schematisches Blockschaubild ist, das eine einzelne Ausführungsform einer Vorrichtung zum Schützen des Arbeitsspeichers eines virtuellen Gasts gemäß der vorliegenden Erfindung zeigt;
    • 5 ein ausführliches schematisches Blockschaubild ist, das eine weitere Ausführungsform einer Vorrichtung zum Schützen des Arbeitsspeichers eines virtuellen Gasts gemäß der vorliegenden Erfindung zeigt;
    • 6 ein schematischer Ablaufplan ist, der eine einzelne Ausführungsform eines Verfahrens zum Schützen des Arbeitsspeichers eines virtuellen Gasts gemäß der vorliegenden Erfindung zeigt;
    • 7 ein schematischer Ablaufplan ist, der eine weitere Ausführungsform eines Verfahrens zum Schützen des Arbeitsspeichers eines virtuellen Gasts gemäß der vorliegenden Erfindung zeigt;
    • 8-A ein schematischer Ablaufplan ist, der eine einzelne Ausführungsform eines Verfahrens zum Einsetzen einer Sicherheitsvorrichtung für einen virtuellen Gast gemäß der vorliegenden Erfindung zeigt; und
    • 8-B eine Fortsetzung von 8-A ist, welche eine einzelne Ausführungsform eines Verfahrens zum Einsetzen einer Sicherheitsvorrichtung für einen virtuellen Gast gemäß der vorliegenden Erfindung zeigt.
  • Beschreibung von Ausführungsformen
  • Verweise in dieser gesamten Beschreibung auf Merkmale, Vorteile oder einen ähnlichen Sprachgebrauch bedeuten nicht, dass alle Merkmale und Vorteile in irgendeiner einzelnen Ausführungsform realisiert werden können. Vielmehr versteht man unter dem Sprachgebrauch, der sich auf die Merkmale und Vorteile bezieht, dass ein bestimmtes Merkmal, ein bestimmter Vorteil oder eine bestimmte Eigenschaft in mindestens einer einzigen Ausführungsform enthalten ist. Folglich kann sich die Erörterung der Merkmale und Vorteile sowie ein ähnlicher Sprachgebrauch in dieser gesamten Beschreibung auf dieselbe Ausführungsform beziehen, doch muss dies nicht zwingend der Fall sein.
  • Überdies können die beschriebenen Merkmale, Vorteile und Eigenschaften der Ausführungsformen auf jede geeignete Art und Weise kombiniert werden. Der Fachmann erkennt, dass die Ausführungsformen ohne eines oder mehrere der bestimmten Merkmale oder Vorteile einer bestimmten Ausführungsform in die Praxis umgesetzt werden können. In anderen Fällen können zusätzliche Merkmale und Vorteile in bestimmten Ausführungsformen erkannt werden, die möglicherweise nicht in allen Ausführungsformen vorhanden sind.
  • Diese Merkmale und Vorteile der Ausführungsformen gehen aus der folgenden Beschreibung und den beigefügten Ansprüchen deutlicher hervor oder sie werden durch die Umsetzung von Ausführungsformen in die Praxis, wie nachstehend aufgezeigt wird, in Erfahrung gebracht. Wie der Fachmann verstehen wird, können Aspekte der vorliegenden Erfindung als ein System, ein Verfahren und/oder als ein Computer-Programmprodukt realisiert werden. Folglich können Aspekte der vorliegenden Erfindung die Form einer ganz in Hardware realisierten Ausführungsform, einer ganz in Software realisierten Ausführungsform (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardware-Aspekte kombiniert, die hier alle allgemein als eine „Schaltung“, ein „Modul“ oder ein „System“ bezeichnet werden können. Überdies können Aspekte der vorliegenden Erfindung die Form eines Computer-Programmprodukts annehmen, das sich auf einem oder mehreren von einem Computer lesbaren Datenträger(n) befindet, auf dem beziehungsweise denen sich von einem Computer lesbarer Programmcode befindet.
  • Viele der in dieser Beschreibung dargelegten Funktionseinheiten wurden als Module bezeichnet, um ihre Unabhängigkeit hinsichtlich der Implementierung stärker hervorzuheben. Beispielsweise kann ein Modul als eine Hardwareschaltung realisiert werden, die kundenspezifische VLSI-Schaltkreise oder Gatterschaltkreise, serienmäßig produzierte Halbleiter wie zum Beispiel Logikchips, Transistoren oder andere diskrete Bauelemente aufweist. Ein Modul kann auch in programmierbaren Hardware-Einheiten wie zum Beispiel kundenprogrammierbaren Universalschaltkreisen, PALs (Programmable Array Logic), programmierbaren Logikbausteinen oder dergleichen realisiert werden.
  • Module können auch in Software zur Ausführung durch verschiedene Arten von Prozessoren realisiert werden. Ein angegebenes Modul mit Programmcode, der von einem Computer gelesen werden kann, kann zum Beispiel einen oder mehrere physische oder logische Blöcke mit Computeranweisungen aufweisen, die zum Beispiel als ein Objekt, eine Prozedur oder eine Funktion aufgebaut sein können. Trotzdem brauchen sich die ausführbaren Dateien eines angegebenen Moduls nicht physisch gemeinsam an demselben Ort zu befinden, sondern können unterschiedliche, an verschiedenen Speicherplätzen gespeicherte Anweisungen aufweisen, die, wenn sie logisch verknüpft werden, das Modul bilden und den angegebenen Zweck für das Modul erreichen.
  • Tatsächlich kann es sich bei einem Modul mit von einem Computer lesbaren Programmcode um eine einzelne Anweisung oder um viele Anweisungen handeln und es kann sogar über mehrere unterschiedliche Codesegmente, zwischen verschiedenen Programmen und über mehrere Speichereinheiten hinweg verteilt sein. Ebenso können Betriebsdaten hier in Modulen angegeben und dargestellt und in jeder beliebigen geeigneten Form realisiert und in jeder beliebigen geeigneten Art von Datenstruktur aufgebaut sein. Die Betriebsdaten können als ein einzelner Datensatz erfasst oder über verschiedene Speicherplätze, auch über verschiedene Speichereinheiten, verteilt sein und sie können, zumindest teilweise, lediglich als elektronische Signale auf einem System oder Netzwerk vorhanden sein. Wenn ein Modul oder Teile eines Moduls in Software ausgeführt sind, kann der von einem Computer lesbare Programmcode auf einem oder auf mehreren von einem Computer lesbaren Datenträger(n) gespeichert und/oder weitergeleitet werden.
  • Der von einem Computer lesbare Datenträger kann ein physisch greifbares, von einem Computer lesbares Speichermedium sein, das den von dem Computer lesbaren Programmcode speichert. Das von einem Computer lesbare Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein(e) elektronische(s), magnetische(s), optische(s), elektromagnetische(s), Infrarot-, Halografie- mikromechanische(s) oder Halbleitersystem, -vorrichtung, -einheit oder eine beliebige geeignete Kombination des Vorstehenden sein.
  • Zu genaueren Beispielen des von einem Computer lesbaren Speichermediums können, ohne darauf beschränkt zu sein, eine Diskette eines tragbaren Computers, eine Festplatte, ein Direktzugriffspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), ein tragbarer Compact-Disc-Nur-Lese-Speicher (CD-ROM), eine digitale, vielseitig verwendbare Disc (DVD), eine optische Speichereinheit, eine magnetische Speichereinheit, ein holografisches Speichermedium, eine mikromechanische Speichereinheit oder eine beliebige geeignete Kombination des Vorstehenden sein. Im Kontext dieses Schriftstücks kann ein von einem Computer lesbares Speichermedium jedes physisch greifbare Medium sein, das von einem Computer lesbaren Programmcode zur Verwendung durch und/oder in Verbindung mit ein(em) Anweisungsausführungssystem, eine(r) Anweisungsausführungsvorrichtung oder -einheit enthalten oder/oder speichern kann.
  • Bei dem von einem Computer lesbaren Datenträger kann es sich um einen von einem Computer lesbaren Signaldatenträger handeln. Ein von einem Computer lesbarer Signaldatenträger kann ein weitergeleitetes Datensignal mit darin enthaltenem, von einem Computer lesbarem Programmcode, beispielsweise im Basisband oder als Teil einer Trägerwelle, enthalten. Solch ein weitergeleitetes Signal kann eine beliebige einer Vielzahl von Formen einschließlich elektrischer, elektromagnetischer, magnetischer, optischer Formen oder eine beliebige geeignete Kombination dieser Formen, ohne auf diese beschränkt zu sein, annehmen. Bei einem von einem Computer lesbaren Signaldatenträger kann es sich um jeden beliebigen von einem Computer lesbaren Datenträger handeln, der kein von einem Computer lesbares Speichermedium ist und der von einem Computer lesbaren Programmcode zur Verwendung durch oder zur Verwendung in Verbindung mit eine(m) Anweisungsausführungssystem, eine(r) Anweisungsausführungsvorrichtung oder -einheit übertragen, weiterleiten oder transportieren kann. Auf einem von einem Computer lesbaren Signaldatenträger enthaltener, von einem Computer lesbarer Programmcode kann mittels eines geeigneten Mediums einschließlich eines drahtgebundenen Mediums, eines Lichtwellenleiterkabels, mittels Hochfrequenz (HF) oder dergleichen, ohne darauf beschränkt zu sein, oder mittels einer beliebigen geeigneten Kombination des Vorstehenden übertragen werden.
  • In einer einzelnen Ausführungsform kann der von einem Computer lesbare Datenträger eine Kombination aus einem oder mehreren von einem Computer lesbaren Speichermedien und einem oder mehreren von einem Computer lesbaren Signaldatenträgern aufweisen. Von einem Computer lesbarer Programmcode kann zum Beispiel sowohl als ein elektromagnetisches Signal über ein Lichtwellenleiterkabel zur Ausführung durch einen Prozessor weitergeleitet als auch auf einer RAM-Speichereinheit zur Ausführung durch den Prozessor gespeichert werden.
  • Von einem Computer lesbarer Programmcode zur Durchführung von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen einschließlich einer objektorientierten Programmiersprache, wie beispielsweise Java, Smalltalk, C++, PHP oder dergleichen, sowie in herkömmlichen prozeduralen Programmiersprachen wie beispielsweise der Programmiersprache „C“ oder in ähnlichen Programmiersprachen geschrieben sein. Die Ausführung des von einem Computer lesbaren Programmcodes kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem fernen Computer oder vollständig auf dem fernen Computer oder Server erfolgen. Im letzteren Szenario kann der ferne Computer mit dem Computer des Benutzers über jede beliebige Art eines Netzwerks einschließlich eines lokalen Netzwerks (LAN) oder eines Weitverkehrsnetzes (WAN) verbunden werden oder die Verbindung kann zu einem externen Computer (zum Beispiel über das Internet mittels eines Internet-Diensteanbieters) hergestellt werden.
  • Der Verweis in dieser gesamten Beschreibung auf „eine einzelne Ausführungsform“, „eine einzige Ausführungsform“, „eine Ausführungsform“ oder einen ähnlichen Sprachgebrauch bedeutet, dass ein bestimmtes Merkmal, eine bestimmte Struktur oder eine bestimmte Eigenschaft, die in Verbindung mit der Ausführungsform beschrieben wird, in mindestens einer einzigen Ausführungsform enthalten ist. Folglich kann sich das jeweilige Auftreten der Formulierungen „in einer einzelnen Ausführungsform“, „in einer einzigen Ausführungsform“, „in einer Ausführungsform“ und ähnlicher Sprachgebrauch in dieser gesamten Beschreibung auf dieselbe Ausführungsform beziehen, jedoch, sofern nicht ausdrücklich anders angegeben, „eine einzige oder mehrere, aber nicht alle Ausführungsformen“ bedeuten, doch muss dies nicht zwingend der Fall sein. Die Begriffe „einschließlich“, „aufweisen(d)“, „verfügen(d) über“, „haben“ und Variationen hiervon bedeuten „einschließlich, ohne darauf beschränkt zu sein“, sofern nicht ausdrücklich anders angegeben. Eine Aufzählungsliste von Positionen bedeutet nicht, dass sich beliebige oder alle der Positionen gegenseitig ausschließen und/oder gegenseitig einschließen, sofern nicht ausdrücklich anders angegeben. Die Begriffe „ein“, „eine“, „einer“ und „der“, „die“, „das“ beziehen sich auch auf „eine(n) einzelne(n) oder mehrere“, sofern nicht ausdrücklich anders angegeben.
  • Überdies können die beschriebenen Merkmale, Strukturen oder Eigenschaften der Ausführungsformen auf jede geeignete Art und Weise kombiniert werden. In der folgenden Beschreibung werden zahlreiche bestimmte Einzelheiten wie Programmierbeispiele, Softwaremodule, Benutzerauswahlen, Netzwerktransaktionen, Datenbankabfragen, Datenbankstrukturen, Hardwaremodule, Hardwareschaltungen, Hardwarechips usw. aufgezeigt, um ein eingehendes Verständnis von Ausführungsformen zu ermöglichen. Der Fachmann erkennt jedoch, dass Ausführungsformen ohne eine oder mehrere der bestimmten Einzelheiten oder aber mit anderen Verfahren, Komponenten, Materialien und so weiter in die Praxis umgesetzt werden können. In anderen Fällen werden bekannte Strukturen, Materialien oder Operationen nicht ausführlich gezeigt oder beschrieben, um bei Aspekten einer Ausführungsform keine Unklarheit aufkommen zu lassen.
  • Aspekte der Ausführungsformen werden nachstehend mit Bezug auf schematische Ablaufpläne und/oder schematische Blockschaubilder von Verfahren, Vorrichtungen, Systemen und Computer-Programmprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der schematischen Ablaufpläne und/oder der schematischen Blockschaubilder sowie Kombinationen aus Blöcken in den schematischen Ablaufplänen und/oder den schematischen Blockschaubildern mittels Programmcode, der von einem Computer gelesen werden kann, realisiert werden kann. Der von einem Computer lesbare Programmcode kann einem Prozessor eines Mehrzweckcomputers, eines Computers für spezielle Anwendungen, einer Folgesteuerungseinheit oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine so zu erzeugen, dass die Anweisungen, die über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ein Mittel zur Ausführung der Funktionen/Vorgänge erzeugen, die in dem Block oder den Blöcken der schematischen Ablaufpläne und/oder der schematischen Blockschaubilder angegeben sind.
  • Der von einem Computer lesbare Programmcode kann auch auf einem von einem Computer lesbaren Datenträger gespeichert werden, der einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Einheiten anweisen kann, auf eine bestimmte Art und Weise zu funktionieren, so dass die auf dem von einem Computer lesbaren Datenträger gespeicherten Anweisungen einen Herstellungsgegenstand erzeugen, der Anweisungen enthält, die die Funktion/den Vorgang ausführen, welche beziehungsweise welcher in dem Block oder den Blöcken der schematischen Ablaufpläne und/oder der schematischen Blockschaubilder angegeben ist.
  • Der von einem Computer lesbare Programmcode kann auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder auf andere Einheiten geladen werden, um die Durchführung einer Reihe von Betriebsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder auf anderen Einheiten zu bewirken, um einen von einem Computer ausgeführten Prozess so zu erzeugen, dass der Programmcode, der auf dem Computer oder einer anderen programmierbaren Vorrichtung ausgeführt wurde, Prozesse zur Ausführung der Funktionen/Vorgänge ermöglicht, die in dem Block oder den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegeben sind.
  • Die schematischen Ablaufpläne und/oder die schematischen Blockschaubilder in den Figuren zeigen die Architektur, die Funktionalität und die Betriebsweise von möglichen Ausführungsarten von Vorrichtungen, Systemen, Verfahren und Computer-Programmprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In dieser Hinsicht kann jeder Block in den schematischen Ablaufplänen und/oder den schematischen Blockschaubildern ein Modul, ein Segment oder einen Teil von Code darstellen, das beziehungsweise der einen oder mehrere ausführbare Anweisungen des Programmcodes zur Ausführung der angegebenen logischen Funktion(en) aufweist.
  • Es sei auch angemerkt, dass die in dem Block angegebenen Funktionen in manchen alternativen Ausführungsarten mitunter in einer anderen als in der in den Figuren angegebenen Reihenfolge auftreten können. In Abhängigkeit von der mit ihnen verbundenen Funktionalität können beispielsweise zwei Blöcke, die als aufeinanderfolgende Blöcke dargestellt sind, tatsächlich weitgehend gleichzeitig ausgeführt werden oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden. Andere Schritte und Verfahren können erdacht werden, die im Hinblick auf ihre Funktion, ihre Logik oder ihre Wirkung auf einen oder mehrere Blöcke oder Teile der Blöcke der dargestellten Figuren gleichwertig sind.
  • Obgleich möglicherweise verschiedene Arten von Pfeilen und verschiedene Arten von Linien in den Ablaufplänen und/oder Blockschaubildern verwendet werden, versteht es sich, dass sie keine Einschränkung des Umfangs der entsprechenden Ausführungsformen darstellen. Tatsächlich können manche Pfeile oder andere Verbindungselemente verwendet werden, um lediglich den logischen Ablauf der gezeigten Ausführungsform anzugeben. Zum Beispiel kann ein Pfeil eine Warteperiode oder einen Überwachungszeitraum von nicht angegebener Dauer zwischen aufgezählten Schritten der gezeigten Ausführungsform angeben. Man wird auch feststellen, dass jeder Block der Blockschaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaubildern und/oder den Ablaufplänen von Systemen, die auf Hardware für spezielle Anwendungen beruhen und die angegebenen Funktionen oder Vorgänge durchführen, oder von Kombinationen aus Hardware für spezielle Anwendungen und Programmcode, der von einem Computer gelesen werden kann, ausgeführt werden können.
  • 1 ist ein schematisches Blockschaubild, das eine einzelne Ausführungsform eines Systems 100 zum Schützen des Arbeitsspeichers eines virtuellen Gasts zeigt. In der gezeigten Ausführungsform enthält das System 100 ein Host-Datenverarbeitungssystem 105, wobei ein VM-Manager 110 eine Vielzahl von virtuellen Maschinen 115a, 115b für eine Vielzahl von virtuellen Gästen 120a, 120b bereitstellt. Das Host-Datenverarbeitungssystem 105 tauscht mit einem oder mehreren Clients 130a, 130b, 130c über ein Netzwerk 125 Daten aus.
  • Das Host-Datenverarbeitungssystem 105 kann von einem Server-Computer, einem Tischrechner, einem Laptop-Computer, einem Tablet-Computer, einer mobilen Einheit, einer Set-Top-Box oder einer anderen Einheit realisiert werden. In einer einzelnen Ausführungsform stellt das Host-Datenverarbeitungssystem 105 eine Cloud-Computing-Plattform bereit oder arbeitet mit zusätzlichen Datenverarbeitungssystemen zusammen, um eine Cloud-Computing-Plattform bereitzustellen, um Anwendungen, Dokumente und Daten für den bedarfsweisen Zugriff über das Netzwerk 125 durch die Clients 130a, 130b, 130c zu hosten, zu speichern und/oder bereitzustellen. Ein Client 130a kann mit einem virtuellen Gast 120a über das Netzwerk 125 Daten austauschen und interaktiv kommunizieren. Beispielsweise kann sich das Betriebssystem 120a eines virtuellen Gasts auf einem Cloud-Computing-Server befinden. Das Betriebssystem 120a des virtuellen Gasts kann eine Textverarbeitungsanwendung ausführen, in der ein Benutzer über einen Client auf ein Textverarbeitungsdokument zugreifen kann.
  • Das Host-Datenverarbeitungssystem 105 kann einen Prozessor und einen Arbeitsspeicher, der von einem Computer lesbare Programme speichert, enthalten. Der Arbeitsspeicher kann mittels eines volatilen Arbeitsspeichers wie zum Beispiel eines dynamischen Direktzugriffspeichers (dynamic random access memory („DRAM“)), eines statischen Direktzugriffspeichers (static random access memory („SRAM“)) oder eines anderen geeigneten volatilen Arbeitsspeichers realisiert werden. Der Prozessor führt die von dem Computer lesbaren Programme aus, wie dem Fachmann bekannt ist. Die von dem Computer lesbaren Programme können physisch greifbar im Speicher in dem Host-Datenverarbeitungssystem 105 gespeichert sein. Zu dem Speicher kann ein Halbleiterlaufwerk (Solid State Drive („SSD“)), ein Festplattenlaufwerk (hard disk drive „HDD“)), eine optische Speichereinheit, eine holografische Speichereinheit, eine mikromechanische Speichereinheit oder eine andere nichtflüchtige Datenspeichereinheit gehören.
  • Das Netzwerk 125 kann ein Datenübertragungsnetzwerk wie zum Beispiel das Internet, ein lokales Netz (Local Area Network („LAN“)), ein Weitverkehrsnetz (Wireless LAN („WLAN“)), mehrere LANs, die über das Internet Daten austauschen, oder ein beliebiges anderes ähnliches Datenübertragungsnetzwerk aufweisen. Jeder Client 130a, 130b, 130c tauscht mit dem Host-Datenverarbeitungssystem 105 über das Netzwerk 125 Daten aus. In einer einzelnen Ausführungsform kann ein Client 130a als ein Tischrechner, ein tragbarer Computer, ein Server, ein Großrechner, eine Handheld-Datenverarbeitungseinheit, ein Tastbildschirm, ein persönlicher digitaler Assistent (PDA), ein Tablet-Computer, ein Lesegerät für elektronische Bücher, ein Mobiltelefon, ein Smartphone und dergleichen realisiert sein.
  • Der VM-Manager 110, der auch als Hypervisor oder Virtual Machine Monitor bezeichnet wird, stellt eine virtuelle Maschine 115a oder eine virtuelle Betriebsplattform dar, damit ein virtueller Gast 120a darin arbeiten kann. Wie in der Technik bekannt ist, fasst eine virtuelle Maschine 115a tatsächliche Hardware-Eigenschaften des Host-Datenverarbeitungssystems 105 zusammen und ermöglicht so eine virtuelle Darstellung von Datenverarbeitungsressourcen zur Verwendung durch einen virtuellen Gast 120. Der virtuelle Gast 120a wird in der virtuellen Maschine 115a so ausgeführt, als würde er direkt auf dem Host-Datenverarbeitungssystem 105 laufen, mit der Ausnahme, dass der VM-Manager 110 die Ausführung des virtuellen Gasts 120a verwaltet und den Zugriff auf verschiedene Systemressourcen einschränken kann. Der VM-Manager 110 kann jedem virtuellen Gast 120a, 120b einen Teil der Ressourcen des zugrunde liegenden Host-Datenverarbeitungssystems 105 bereitstellen, wie zum Beispiel eine Teilmenge des Instruktionssatzes des Host-Datenverarbeitungssystems 105 der zugrunde liegenden Maschine, Kernel-Aufrufe, Hardwareregister und dergleichen.
  • In der veranschaulichten Ausführungsform enthält der VM-Manager 110 zwei virtuelle Maschinen 115a, 115b mit jeweils einem virtuellen Gast 120a, 120b. Es kann jedoch jede geeignete Anzahl von virtuellen Maschinen 115a, 115b und virtuellen Gästen 120a, 120b verwendet werden. Jeder virtuelle Gast 120a, 120b kann eine Anwendung oder ein Programm sein. In einer einzelnen Ausführungsform ist ein virtueller Gast 120a ein Betriebssystem. Ein Betriebssystem 120a in Form eines virtuellen Gasts geht gegebenenfalls davon aus, dass es direkt mit Hardware des Host-Datenverarbeitungssystems 105 Daten austauscht. Zum Beispiel kann ein Betriebssystem 120a in Form eines virtuellen Gasts eine Seitentabelle verwalten, die eine Zuordnung zwischen physischen Adressen auf dem Arbeitsspeicher und logischen Adressen speichert, die durch einen Prozessor von einem Client wie zum Beispiel einer Anwendung empfangen wurden. Das Betriebssystem 120a in Form eines virtuellen Gasts geht gegebenenfalls davon aus, dass die physischen Adressen in seiner Seitentabelle tatsächliche physische Adressen auf dem Arbeitsspeicher sind und dass das Betriebssystem 120a in Form des virtuellen Gasts tatsächlich mit dem Prozessor und anderen Hardware-Datenstrukturen des Host-Datenverarbeitungssystems 105 Daten austauscht. Statt mit dem Prozessor tauscht das Betriebssystem 120a in Form des virtuellen Gasts gegebenenfalls tatsächlich jedoch Daten mit dem VM-Manager 110 aus und die angenommenen physischen Adressen werden von dem VM-Manager 110 als virtuelle Adressen behandelt, der eine weitere Zuordnungsebene ausführt, um jede angenommene physische Adresse einer tatsächlichen physischen Adresse des Arbeitsspeichers des Host-Datenverarbeitungssystems zuzuordnen.
  • 2 ist ein schematisches Blockschaubild, das eine weitere Ausführungsform eines Systems 200 zum Schützen des Arbeitsspeichers eines virtuellen Gasts zeigt. Genauer gesagt, 2 zeigt eine einzelne Ausführungsform des Host-Datenverarbeitungssystems 105, den VM-Manager 110, eine virtuelle Maschine 115 und einen virtuellen Gast 120 von 1. Der virtuelle Gast 120 enthält eine Arbeitsspeichervorrichtung 205 für den virtuellen Gast und das Host-Datenverarbeitungssystem 105 enthält den Laufzeitarbeitsspeicher 210 und einen Prozessor 215.
  • Herkömmliche VM-Manager 110 verwalten Prozessor-Ressourcen, E/A-Ressourcen und den Laufzeitarbeitsspeicher 210 für virtuelle Gäste 120, die auf dem Host-Datenverarbeitungssystem 105 ausgeführt werden, wobei die Verwaltung die Arbeitsspeicher-Zuordnung zu jedem virtuellen Gast 120 von einem Teil des Laufzeitarbeitsspeichers 210 des Host-Datenverarbeitungssystems 105 einschließt. Ein herkömmlicher VM-Manager 110 kann auf den Laufzeitarbeitsspeicher 210 von herkömmlichen virtuellen Gästen zugreifen. Folglich hat ein herkömmlicher virtueller Gast, der auf einem herkömmlichen VM-Manager 110 ausgeführt wird, keine Kontrolle über den Zugriff des VM-Managers 110 auf den Laufzeitarbeitsspeicher 210 für den virtuellen Gast. Überdies hat ein Benutzer keine Gewissheit, dass der herkömmliche VM-Manager 110 nicht versuchen wird, auf den Laufzeitarbeitsspeicher 210 zuzugreifen, oder nicht von einem Angreifer gefährdet wird, der versucht, auf den Laufzeitarbeitsspeicher 210 zuzugreifen. Folglich werden Anwendungen mit sensiblen Daten oftmals nicht auf nicht verifizierbaren Host-Datenverarbeitungssystemen 105, wie zum Beispiel öffentlichen Cloud-Computing-Systemen, gehostet. Die Hosting-Gelegenheiten für diese sensiblen Anwendungen werden kleiner.
  • Daher schützt die Arbeitsspeichervorrichtung 205 für den virtuellen Gast den Laufzeitarbeitsspeicher 210 eines virtuellen Gasts 120 vor dem Host-Datenverarbeitungssystem 105 / dem VM-Manager 110. Genauer gesagt, die Arbeitsspeichervorrichtung 205 für den virtuellen Gast ermöglicht einem virtuellen Gast 120, seinen Laufzeitarbeitsspeicher 210 zu schützen, indem er seinen Laufzeitarbeitsspeicher 210 als für den VM-Manager 110 nicht zugänglich setzt. In einer einzelnen Ausführungsform ermöglicht die Arbeitsspeichervorrichtung 205 für den virtuellen Gast dem virtuellen Gast 120, einen Teil seines Laufzeitarbeitsspeichers 210 mit dem VM-Manager 110 gemeinsam zu nutzen. Beispielsweise kann der VM-Manager 110 Teile seines Laufzeitarbeitsspeichers 210 so setzen, dass sie für Lese- und/oder Schreiboperationen des Hostrechners oder anderer Gäste zugänglich sind. Dadurch wäre es möglich, einen Teil des Laufzeitarbeitsspeichers 210 für Netzwerk- und andere E/A zu nutzen, aber dennoch den größten Teil des Arbeitsspeichers des virtuellen Gasts vollständig privat zu lassen. Folglich kann ein Benutzer versichert sein, dass Anwendungen und Daten, die auf einem bestimmten Host-Datenverarbeitungssystem 105 per Hosting zur Verfügung gestellt werden, sicher sind, was die Anzahl der verfügbaren Hostrechner enorm erhöht, wenn die Sicherheit der Daten von Belang ist.
  • Überdies kann die Arbeitsspeichervorrichtung 205 für den virtuellen Gast den virtuellen Gast 120 vor verschiedenen Situationen schützen, in denen ein Host-Datenverarbeitungssystem 105 oder ein VM-Manager 110 gefährdet sind. Wenn der VM-Manager 110 während der Ausführung des virtuellen Gasts 120 beispielsweise durch Schadsoftware oder einen Hacker gefährdet ist, kann der VM-Manager 110 nicht auf den Arbeitsspeicher des virtuellen Gasts zugreifen und folglich auch keine Daten gefährden.
  • In einer einzelnen Ausführungsform arbeitet die Arbeitsspeichervorrichtung 205 für den virtuellen Gast mit herkömmlichen VM-Managern 110. In anderen Ausführungsformen kann der VM-Manager 110 so konfiguriert werden, dass er zusätzlichen Zugriff auf den Laufzeitarbeitsspeicher 210 des virtuellen Gasts für bestimmte Situationen anfordert, wie zum Beispiel für Arbeitsspeicherauszugsdaten oder eine Migration des virtuellen Gasts (z.B. das Kopieren eines virtuellen Gasts 120 auf ein anderes Datenverarbeitungssystem). Wenn beispielsweise eine Anwendung auf dem virtuellen Gast 120 abstürzt, kann der VM-Manager 110 zusätzlichen Zugriff anfordern, um die Arbeitsspeicherauszugsdaten in Verbindung mit dem Absturz der Anwendung abzurufen. Die Arbeitsspeichervorrichtung 205 für den virtuellen Gast kann zusätzliche Anforderungen bewilligen, die vorher festgelegte Kriterien erfüllen, und in bestimmten Ausführungsformen kann sie Maßnahmen ergreifen, um sensible Daten zu schützen, bevor der Zugriff bewilligt wird.
  • In einer einzelnen Ausführungsform prüft die Arbeitsspeichervorrichtung 205 für den virtuellen Gast, ob sie direkt mit dem Prozessor 215 (z.B. dem Prozessor 215 und anderen prozessorbezogenen Strukturen wie zum Beispiel dem Adressenumsetzungs-Pufferspeicher (translation lookaside buffer, „TLB“) des Host-Datenverarbeitungssystems 105 Daten austauscht. Bezug nehmend auf 3 ermöglicht die Arbeitsspeichervorrichtung 205 für den virtuellen Gast dem virtuellen Gast 120 in einer einzelnen Ausführungsform, Zugriffsberechtigungen für seinen Laufzeitarbeitsspeicher 210 direkt 305 durch den Prozessor 215 und unabhängig vom VM-Manager 110 zu setzen. Ebenso ermöglicht die Arbeitsspeichervorrichtung 205 für den virtuellen Gast in einer einzelnen Ausführungsform dem virtuellen Gast 120 durch direkten Datenaustausch mit dem Prozessor 215, einen gemeinsam genutzten Arbeitsspeicherteil 315 des Laufzeitarbeitsspeichers 210 festzulegen, damit der VM-Manager 110 darauf zugreifen 310 kann.
  • Nochmals Bezug nehmend auf 2 wird die Arbeitsspeichervorrichtung 205 für den virtuellen Gast in der gezeigten Ausführungsform in dem virtuellen Gast 120 ausgeführt, tauscht mit dem virtuellen Gast 120 Daten aus und/oder ist Teil des virtuellen Gasts 120. Beispielsweise kann die Arbeitsspeichervorrichtung 205 für den virtuellen Gast ausführbaren Code enthalten, der während der Ausführung des virtuellen Gasts 120 ausgeführt wird. In manchen Ausführungsformen kann ein Teil der Arbeitsspeichervorrichtung 205 für den virtuellen Gast Teil des VM-Managers 110 sein. Zum Beispiel können sowohl der virtuelle Gast 120 als auch der VM-Manager 110 jeweils Teile der Arbeitsspeichervorrichtung 205 für den virtuellen Gast enthalten. In einer einzelnen Ausführungsform ist ein Teil der Arbeitsspeichervorrichtung 205 für den virtuellen Gast Teil des Prozessors 215 und/oder zugehöriger Hardware-Komponenten des Host-Datenverarbeitungssystems 105 und/oder tauscht mit dem Prozessor 215 und/oder zugehörigen Hardware-Komponenten des Host-Datenverarbeitungssystems 105 Daten aus. Beispielsweise kann der Prozessor 215, wie nachstehend beschrieben ist, einen Teil der Arbeitsspeichervorrichtung 205 für den virtuellen Gast (wie z.B. auf Firmware, die mit dem Prozessor 215 Daten austauscht) enthalten, um den Laufzeitarbeitsspeicher 210 bestimmten virtuellen Gästen 120 zuzuweisen und um zu verhindern, dass Anforderungen von anderen Entitäten auf den Laufzeitarbeitsspeicher 210 zugreifen.
  • 4 ist ein schematisches Blockschaubild, das eine einzelne Ausführungsform einer Vorrichtung 205 zum Schützen des Arbeitsspeichers eines virtuellen Gasts zeigt. Die Vorrichtung 205 ist eine einzelne Ausführungsform der Arbeitsspeichervorrichtung 205 für den virtuellen Gast der 2 bis 3 und enthält eines oder mehrere eines Initialisierungsmoduls 405, eines Empfangsmoduls 410 und eines Schutzmoduls 415.
  • Das Initialisierungsmodul 405 initialisiert in einer einzelnen Ausführungsform einen virtuellen Gast 120 auf einem Host-Datenverarbeitungssystem 105. Das Host-Datenverarbeitungssystem 105 weist einen VM-Manager 110 auf, wie vorstehend in Bezug auf die 1 bis 3 beschrieben wurde. Das Initialisierungsmodul 405 kann den virtuellen Gast 120 initialisieren, indem es Code in dem virtuellen Gast 120 ausführt, um den virtuellen Gast 120 hochzufahren. Beispielsweise kann das Host-Datenverarbeitungssystem 105 den VM-Manager 110 hochfahren, der dem Initialisierungsmodul 405 signalisiert, den virtuellen Gast 120 zu initialisieren.
  • Das Empfangsmodul 410 empfängt in einer einzelnen Ausführungsform eine Zuordnung von Laufzeitarbeitsspeicher 210 für den virtuellen Gast 120. Die Zuordnung von Laufzeitarbeitsspeicher 210 beinhaltet einen Teil des Laufzeitarbeitsspeichers 210 des Host-Datenverarbeitungssystems 105. Sobald der VM-Manager 110 hochgefahren wird und das Initialisierungsmodul 405 den virtuellen Gast 120 initialisiert hat, kann das Empfangsmodul 410 beispielsweise einen Teil des Laufzeitarbeitsspeichers 210 empfangen, den der virtuelle Gast 120 während der Ausführung verwenden kann. In einer einzelnen Ausführungsform ordnet der VM-Manager 110 die Zuordnung von Laufzeitarbeitsspeicher 210 für den virtuellen Gast 120 zu. Der VM-Manager 110 kann beispielsweise bestimmen, dass dem virtuellen Gast 120 ein bestimmter Teil des Laufzeitarbeitsspeichers 210 zugeordnet wird, und der virtuelle VM-Manager 110 kann die Zuordnung dem virtuellen Gast 120 bereitstellen. Das Empfangsmodul 410 kann die Zuordnung von Laufzeitarbeitsspeicher 210 als zur Verwendung verfügbar erkennen.
  • Das Schutzmodul 415 setzt mindestens einen Teil der Zuordnung von Laufzeitarbeitsspeicher 210 durch den virtuellen Gast 120 als für den VM-Manager 110 nicht zugänglich. In einer einzelnen Ausführungsform ist das Schutzmodul 415 zum Beispiel Teil des virtuellen Gasts 120 und/oder tauscht mit dem virtuellen Gast 120 Daten aus und erlaubt dem virtuellen Gast 120, Zugriffsberechtigungen für die Zuordnung seines Laufzeitarbeitsspeichers 210 zu setzen. In einer einzelnen Ausführungsform wird der Zugriff auf die Zuordnung von Laufzeitarbeitsspeicher 210 daher von dem virtuellen Gast 120 bestimmt. In einer einzelnen Ausführungsform weist das durch den virtuellen Gast 120 erfolgende Setzen des Schutzmoduls 415 von mindestens dem Teil der Zuordnung von Laufzeitarbeitsspeicher 210 als für den VM-Manager 110 nicht zugänglich des Weiteren einen direkten Datenaustausch des virtuellen Gasts 120 mit dem Prozessor 215 unabhängig von dem VM-Manager 110 auf, um Zugriffsberechtigungen für die Zuordnung von Laufzeitarbeitsspeicher 210 des virtuellen Gasts 120 zu setzen. In einer einzelnen Ausführungsform kann das Schutzmodul 415 verschiedene Zugriffsberechtigungsstufen für seine Zuordnung von Laufzeitarbeitsspeicher 210 setzen. Beispielsweise kann das Schutzmodul 415 Nur-Lese-Zugriff, Schreib-/Lesezugriff und dergleichen für bestimmte virtuelle Gäste 120 und/oder den VM-Manager 110 setzen.
  • In einer einzelnen Ausführungsform tauscht das Schutzmodul 415 direkt mit dem Prozessor 215 Daten aus, um Zugriffsberechtigungen für seine Zuordnung von Arbeitsspeicher zu setzen. In der hier verwendeten Weise kann sich das Austauschen von Daten mit dem Prozessor 215 auf das Austauschen von Daten mit Software oder Firmware beziehen, die mit dem Prozessor 215 und/oder anderen Hardware-Komponenten des Host-Datenverarbeitungssystems 105 Daten in Bezug auf die Verwaltung des Laufzeitarbeitsspeichers 210 austauschen. In einer einzelnen Ausführungsform gibt das Schutzmodul 415 vorher festgelegte Befehle an den Prozessor 215 aus, um die Zugriffsberechtigung für einen bestimmten Teil des Laufzeitarbeitsspeichers 210 zu setzen. Der bestimmte Teil kann von einem Adressbereich von Datenseiten im Arbeitsspeicher angegeben werden, obgleich jede beliebige geeignete Arbeitsspeichereinheit verwendet werden kann. Wie in der Technik bekannt ist, ist eine Datenseite eine Einheit eines Hauptspeichers, die für die Adressierung des virtuellen Speichers verwendet wird. Eine Datenseite kann die kleinste Dateneinheit für die Zuordnung von Arbeitsspeicher aufweisen, die von dem Betriebssystem durchgeführt wird, um Anwendungsdaten zwischen dem Hauptspeicher und dem Sekundärspeicher aus- und wieder einzulagern. Das Schutzmodul 415 kann einen Befehl aufrufen, um einen bestimmten Bereich von Datenseiten als geschützt anzugeben.
  • In einer einzelnen Ausführungsform legt das Schutzmodul 415 des Weiteren einen gemeinsam genutzten Arbeitsspeicherteil der Zuordnung von Laufzeitarbeitsspeicher 210 des virtuellen Gasts 120 für den Zugriff durch den VM-Manager 110 fest. Das Schutzmodul 415 kann in einer einzelnen Ausführungsform auch direkt mit dem Prozessor 215 Daten austauschen, um den gemeinsam genutzten Arbeitsspeicherteil festzulegen. Zum Beispiel kann das Schutzmodul 415 einen vorher festgelegten Befehl aufrufen, um einen bestimmten Bereich der Datenseiten mit einer bestimmten Entität wie zum Beispiel dem VM-Manager 110 und/oder anderen virtuellen Gästen 120 gemeinsam zu nutzen. Das Schutzmodul 415 kann den gemeinsam genutzten Arbeitsspeicherteil für nicht sensible Daten wie zum Beispiel für Netzwerkdaten und andere E/A-Daten vorsehen, die gegebenenfalls für eine interaktive Kommunikation mit dem VM-Manager 110 benötigt werden.
  • In einer einzelnen Ausführungsform, die nachstehend beschrieben ist, kann der Prozessor 215 Berechtigungen, die von dem virtuellen Gast 120 gesetzt wurden, mittels einer Kennung für einen virtuellen Prozess (Virtual Process Identifier („VPID“)), im Fall von bestimmten Intel-Prozessoren („Intel“ ist ein Warenzeichen), oder einer ähnlichen Kennung, die eindeutig eine Datenseite des Laufzeitarbeitsspeichers 210 als zu einem bestimmten virtuellen Gast 120 gehörend kennzeichnet, durchsetzen. Zu Einträgen in Seitentabellen und erweiterten Seitentabellen (zusätzlichen Seitentabellen, die von bestimmten Prozessorausführungen unterstützt werden, um die Virtualisierung zu optimieren) gehören eine VPID, um den virtuellen Gast 120 zu kennzeichnen, zu dem der Eintrag gehört. Darüber hinaus hat der VM-Manager 110 üblicherweise auch seine eigene eindeutige VPID.
  • 5 ist ein ausführliches schematisches Blockschaubild, das eine weitere Ausführungsform einer Vorrichtung 205 zum Schützen des Arbeitsspeichers eines virtuellen Gasts zeigt. In der gezeigten Ausführungsform enthält die Arbeitsspeichervorrichtung 205 für den virtuellen Gast das Initialisierungsmodul 405, das Empfangsmodul 410 und das Schutzmodul 415, die denjenigen, die in Bezug auf 4 beschrieben wurden, weitgehend ähnlich sind. In der Ausführungsform enthält die Arbeitsspeichervorrichtung 205 für den virtuellen Gast des Weiteren eines oder mehrere eines Verifizierungsmoduls 505, eines Anforderungssendemoduls 510, eines Anforderungsempfangsmoduls 515, eines Feststellungsmoduls 520, eines Zugriffsmoduls 525, eines Verschlüsselungsmoduls 530, eines Erkennungsmoduls 535, eines Löschbefehl-Moduls 540, eines Löschmoduls 545, eines Zuweisungsmoduls 550 und eines Zugriffsanforderungsmoduls 555, die nachstehend beschrieben sind.
  • In einer einzelnen Ausführungsform prüft das Verifizierungsmodul 505, ob der virtuelle Gast 120 direkt mit einem Prozessor 215 des Host-Datenverarbeitungssystems 105 unabhängig von dem VM-Manager 110 Daten austauscht. In einer weiteren Ausführungsform bedeutet dies, dass das Verifizierungsmodul 505 Messwerte von einem Trusted Platform Module („TPM“) verwendet, welches mit dem Host-Datenverarbeitungssystem 105 Daten austauscht und/oder sich auf dem Host-Datenverarbeitungssystem 105 befindet. Wie in der Technik bekannt ist, realisiert ein TPM Systemsicherheit für ein Datenverarbeitungssystem gemäß den Spezifikationen der Trusted Computing Group („TCG“). Das TCG verwaltet Trusted-Computing-Spezifikationen, die eine clientseitige Systemsicherheit einschließen. Wie in der Technik bekannt ist, ermöglicht Trusted Computing Datenschutz, Plattformerkennung, Autorisierung und dergleichen. Das Host-Datenverarbeitungssystem 105 kann das TPM verwenden, um Signatur- und Verschlüsselungsschlüssel zu speichern und um die Genauigkeit und die Zuverlässigkeit des Datenverarbeitungssystems zu messen. Genauer gesagt, das TPM kann die Genauigkeit und die Zuverlässigkeit von Software und Hardware in dem Host-Datenverarbeitungssystem 105 messen, wodurch eine bestimmte Datenverarbeitungsumgebung in der Datenverarbeitungseinheit von dem Verifizierungsmodul 505 erkannt werden kann.
  • Das TPM kann die Genauigkeit und die Zuverlässigkeit in einem Datenverarbeitungssystem messen, wobei es einer bestimmten Betriebsumgebung 102 in einem Datenverarbeitungssystem eine eindeutige Signatur gibt und es ermöglicht, dass die bestimmte Betriebsumgebung 102 erkannt werden kann. Um die Genauigkeit und die Zuverlässigkeit eines Systems zu messen, ruft das TPM üblicherweise Messwerte von Eigenschaften einer Datenverarbeitungseinheit zum Zeitpunkt des Hochfahrens und/oder vor dem Hochfahren ab. Diese Messwerte können Messungen von ausführbarem Code wie zum Beispiel dem BIOS, der Firmware von Datenverarbeitungseinheiten, dem Kernel und dergleichen einschließen. Diese Messwerte können auch Messungen von Hardware-Komponenten einschließen. Das TPM kann eine Angabe dieser Messwerte, die als PCR-Zusammenfassungswert bezeichnet wird, in speziellen Registern speichern, die als PCRs bezeichnet werden.
  • Wenn eine Datenverarbeitungsumgebung nicht erkannt wird, weil die von dem TPM durchgeführten Messungen der Genauigkeit und der Zuverlässigkeit nicht einer erkannten Umgebung entsprechen (z.B. kann das Verifizierungsmodul 505 nicht prüfen, ob es direkt mit dem Prozessor 215 des Host-Datenverarbeitungssystems Daten austauscht), kann bestimmte Software nur eingeschränkt in der nicht erkannten Umgebung betrieben werden oder der Zugriff auf bestimme Daten kann gesperrt werden.
  • In einer einzelnen Ausführungsform ist das TPM ein Hardware-Chip, eine integrierte Schaltung oder eine andere physische Komponente, die Hardware oder Hardware und Software aufweist. In einer weiteren Ausführungsform weist das TPM ausführbaren Software-Code auf, der auf einem von einem Computer lesbaren Speichermedium gespeichert ist. In einer weiteren Ausführungsform kann ein einzelnes Hardware-TPM virtualisiert werden, um jeder virtuellen Maschine den Zugriff auf ein gemeinsames TPM zu gewähren. Wie in der Technik bekannt ist, ermöglicht dieses virtualisierte TPM („vTPM“) mehreren virtuellen Gästen 120, die Messwerte von einem einzigen TPM-Hardwarechip zu verwenden.
  • In einer einzelnen Ausführungsform misst das Verifizierungsmodul 505 Messwerte eines vTPM im Vergleich zu einer vorher festgelegten Signatur (was anzeigen würde, dass das Verifizierungsmodul 505 im Gegensatz zu einem VM-Manager 110, der einen direkten Hardware-Datenaustausch fälschen würde, direkt mit dem Prozessor 215 Daten austauscht). Wenn das Verifizierungsmodul 505 feststellt, dass die Messwerte mit der vorher festgelegten Signatur übereinstimmen, prüft das Verifizierungsmodul 505, ob der virtuelle Gast 120 direkt mit dem Prozessor 215 Daten austauscht. Andernfalls unterlässt das Verifizierungsmodul 505 die Prüfung des direkten Datenaustauschs. In einer anderen Ausführungsform löst das Verifizierungsmodul 505 eine Warnmeldung aus und/oder stellt die weitere Initialisierung des virtuellen Gasts 120 ein.
  • Das Anforderungssendemodul 510 sendet in einer einzelnen Ausführungsform eine Anforderung von dem VM-Manager 110 an den virtuellen Gast 120 (z.B. das nachstehende Anforderungsempfangsmodul 515) für den Zugriff auf mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers 210. In einer weiteren Ausführungsform ist das Anforderungssendemodul 510 Teil des VM-Managers 110 und/oder tauscht mit dem VM-Manager 110 Daten aus. Das Anforderungssendemodul 510 kann als Reaktion auf ein oder mehrere vorher festgelegte Ereignisse, wie zum Beispiel das Erkennen des Absturzes einer Anwendung auf einem bestimmten virtuellen Gast 120, als Reaktion auf eine anstehende Migration eines virtuellen Gasts von einem Speicherplatz und/oder einem Host-Datenverarbeitungssystem 105 an einen anderen Speicherplatz und/oder auf ein anderes Host-Datenverarbeitungssystem 105 und/oder dergleichen einen Bedarf für zusätzlichen Zugriff feststellen.
  • Das Anforderungsempfangsmodul 515 empfängt in einer einzelnen Ausführungsform eine Anforderung von dem VM-Manager 110 für den Zugriff auf mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers 210. Wie vorstehend beschrieben wurde, fordert der VM-Manager 110 in bestimmten Ausführungsformen gegebenenfalls zusätzlichen Zugriff auf den Arbeitsspeicher des virtuellen Gasts für Arbeitsspeicherauszugsdaten (z.B. als Reaktion auf den Absturz einer Anwendung) und/oder eine Anforderung für die Migration eines virtuellen Gasts an. Das Anforderungsempfangsmodul 515 kann eine Schnittstelle bereitstellen, über die der VM-Manager 110 zusätzlichen Zugriff anfordern kann. In einer weiteren Ausführungsform nimmt das Anforderungsempfangsmodul 515 auch eine Angabe der gewünschten Daten, eine Angabe des Grunds für die Anforderung und/oder dergleichen an. In einer weiteren Ausführungsform tauscht das Anforderungsempfangsmodul 515 mit dem VM-Manager 110 Daten aus und/oder ist Teil des VM-Managers 110 und empfängt einen Befehl von dem Anforderungssendemodul 510.
  • Das Feststellungsmodul 520 stellt in einer einzelnen Ausführungsform fest, ob die Anforderung für zusätzlichen Zugriff von dem VM-Manager 110 ein oder mehrere vorher festgelegte Kriterien erfüllt. In einer weiteren Ausführungsform schließen das eine vorher festgelegte Kriterium oder die mehreren vorher festgelegten Kriterien eine Anforderung für Arbeitsspeicherauszugsdaten und/oder eine Anforderung für die Migration eines virtuellen Gasts ein. In einer weiteren Ausführungsform stellt das Feststellungsmodul 520 auf der Grundlage einer von dem Anforderungsempfangsmodul 515 empfangenen Kennung, welche die für den Zugriff gewünschten Daten und/oder den Grund für die Anforderung angibt, fest, ob die Anforderung die vorher festgelegten Kriterien erfüllt.
  • In einer einzelnen Ausführungsform gewährt oder verweigert das Zugriffsmodul 525 dem VM-Manager 110 den Zugriff auf den mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers 210. Insbesondere kann das Zugriffsmodul 525 den Zugriff als Reaktion darauf gewähren, dass das Feststellungsmodul 520 feststellt, dass die Anforderung das eine vorher festgelegte Kriterium oder die mehreren vorher festgelegten Kriterien erfüllt, und es kann den Zugriff als Reaktion darauf verweigern, dass das Feststellungsmodul 520 feststellt, dass die Anforderung die vorher festgelegten Kriterien nicht erfüllt.
  • Das Verschlüsselungsmodul 530 verschlüsselt in einer einzelnen Ausführungsform bestimmte Daten des nicht zugänglichen Laufzeitarbeitsspeichers 210, bevor das Zugriffsmodul 525 dem VM-Manager 110 den Zugriff auf den mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers 210 gewährt. Das Verschlüsselungsmodul 530 kann sensible Daten verschlüsseln, bevor das Zugriffsmodul 525 den Zugriff gewährt, um die Unversehrtheit der sensiblen Daten zu erhalten. In einer weiteren Ausführungsform werden die Adressbereiche und/oder die Identität von Daten, in denen das Verschlüsselungsmodul 530 eine Verschlüsselung durchführen soll, von dem virtuellen Gast 120 und/oder dem Benutzer vorher festgelegt. Beispielsweise kann der VM-Manager 110 angeben, dass Daten, die zu einer bestimmten Anwendung gehören, verschlüsselt werden sollen. Der VM-Manager 110 kann zusätzlichen Zugriff anfordern, um als Reaktion darauf, dass der Speicher auf dem ersten Host-Datenverarbeitungssystem 105 einen vorher festgelegten Schwellwert erreicht, die Migration eines virtuellen Gasts auf ein zweites Host-Datenverarbeitungssystem 105 durchzuführen. Das Verschlüsselungsmodul 530 kann die Daten, die zu der bestimmten Anwendung gehören, verschlüsseln und das Zugriffsmodul 525 kann dem VM-Manager 110 den Zugriff gewähren. Nachdem die Migration des virtuellen Gasts abgeschlossen ist, kann das Verschlüsselungsmodul 530 die betreffenden Daten entschlüsseln. Das Verschlüsselungsmodul 530 kann jeden geeigneten Verschlüsselungsalgorithmus verwenden, um Daten des zugeordneten Teils des Arbeitsspeichers zu verschlüsseln.
  • Das Erkennungsmodul 535 erkennt in einer einzelnen Ausführungsform, dass der virtuelle Gast 120 nicht antwortet (der virtuelle Gast 120 ist z.B. abgestürzt oder funktioniert in anderer Weise nicht). In einer weiteren Ausführungsform tauscht das Erkennungsmodul 535 mit dem VM-Manager 110 Daten aus und/oder ist Teil des VM-Managers 110. Als Reaktion darauf, dass der virtuelle Gast 120 für eine vorher festgelegte Zeitspanne nicht reagiert, kann das Erkennungsmodul 535 erkennen, dass der virtuelle Gast 120 nicht antwortet. Da der VM-Manager 110 keinen Zugriff auf die Zuordnung von Laufzeitarbeitsspeicher 210 hat, kann der VM-Manager 110 nicht direkt die Zuordnung von Laufzeitarbeitsspeicher 210 für den virtuellen Gast 120 aufheben.
  • Das Löschbefehl-Modul 540 ruft daher in einer einzelnen Ausführungsform einen vorher festgelegten Befehl, die Zuordnung von Laufzeitarbeitsspeicher 210 für den virtuellen Gast 120 zu löschen, auf, ohne dass der VM-Manager 110 auf die Zuordnung von Laufzeitarbeitsspeicher 210 zugreift. Wie das Erkennungsmodul 535 kann das Löschbefehl-Modul 540 mit dem VM-Manager 110 Daten austauschen und/oder Teil des VM-Managers 110 sein. Das Löschbefehl-Modul 540 kann einen vorher festgelegten Befehl des Host-Datenverarbeitungssystems 105 aufrufen, um Laufzeitarbeitsspeicher 210, der zu einem bestimmten virtuellen Gast 120 gehört, zu löschen. Das Host-Datenverarbeitungssystem 105 löscht die Zuordnung von Laufzeitarbeitsspeicher 210 als Reaktion darauf, dass das Löschbefehl-Modul 540 den vorher festgelegten Befehl aufruft. In einer weiteren Ausführungsform gibt das Löschbefehl-Modul 540 einen Befehl zum Löschen zusammen mit einer Kennung des virtuellen Gasts 120 aus, für den der Laufzeitarbeitsspeicher 210 gelöscht werden soll. In einer weiteren Ausführungsform ist die Kennung eine VPID für den virtuellen Gast 120, wie vorstehend beschrieben wurde. Beispielsweise kann eine einzelne, nicht als Einschränkung zu verstehende Ausführungsform des Löschbefehls „VPID_DESTROY(vpid)“ lauten, die das Host-Datenverarbeitungssystem 105 anweist, Laufzeitarbeitsspeicher 210, der zu einem virtuellen Gast 120 gehört, welcher die VPID des übergebenen Parameters hat, zu löschen (d.h. freizugeben).
  • Das Löschmodul 545 empfängt in einer einzelnen Ausführungsform von dem VM-Manager 110 einen Aufruf eines vorher festgelegten Befehls, die Zuordnung von Laufzeitarbeitsspeicher 210 für den virtuellen Gast 120 zu löschen. Das Löschmodul 545 löscht in einer weiteren Ausführungsform die Zuordnung von Laufzeitarbeitsspeicher 210 als Reaktion auf den Empfang des Aufrufs des vorher festgelegten Befehls. In einer weiteren Ausführungsform tauscht das Löschmodul 545 mit der Hardware des Host-Datenverarbeitungssystems 105 wie zum Beispiel dem Prozessor 215 Daten aus und löscht gegebenenfalls den Laufzeitarbeitsspeicher 210 (z.B. gibt den Laufzeitarbeitsspeicher 210 frei), der zu dem virtuellen Gast 120 gehört. Wie vorstehend beschrieben wurde, kann der vorher festgelegte Befehl einen Parameter beinhalten, um die VPID des virtuellen Gasts 120 anzugeben, für den der Laufzeitarbeitsspeicher 210 gelöscht werden soll. Das Löschmodul 545 kann Datenseiten mit der VPID löschen, die mit dem vorher festgelegten Befehl übergeben wurde, den VPID-Ausführungskontext löschen und die Seitentabelle sowie Einträge in der erweiterten Seitentabelle für die jeweilige VPID löschen.
  • Das Zuweisungsmodul 550 weist in einer einzelnen Ausführungsform eine oder mehrere Kennungen von virtuellen Gästen einer bestimmten Seite des Laufzeitarbeitsspeichers 210 der Zuordnung von Laufzeitarbeitsspeicher 210 zu. In einer weiteren Ausführungsform kennzeichnet mindestens eine der Kennungen von virtuellen Gästen den virtuellen Gast 120. In einer weiteren Ausführungsform tauscht das Zuweisungsmodul 550 mit dem Prozessor 215 des Host-Datenverarbeitungssystems 105 Daten aus (z.B. in Firmware, die zu dem Prozessor 215 gehört).
  • Die Kennung des virtuellen Gasts kann eine VPID aufweisen, wie vorstehend beschrieben wurde, die eine Datenseite des Laufzeitarbeitsspeichers 210 als zu einem bestimmten virtuellen Gast 120 gehörend eindeutig kennzeichnet. Das Zuweisungsmodul 550 kann einen vorher festgelegten Befehl von dem Schutzmodul 415 empfangen, wie vorstehend beschrieben wurde, und kann eine oder mehrere Kennungen von virtuellen Gästen einer bestimmten Seite des Laufzeitarbeitsspeichers 210 der Zuordnung von Laufzeitarbeitsspeicher 210 zuweisen. Das Zuweisungsmodul 550 kann die Kennung eines virtuellen Gasts beispielsweise einer oder mehreren Datenseiten der Zuordnung von Arbeitsspeicher für den virtuellen Gast 120 zuweisen, indem es die VPID des virtuellen Gasts für die von dem Schutzmodul 415 angeforderten Datenseiten setzt. In einer einzelnen Ausführungsform weist das Zuweisungsmodul 550 auch Datenseiten, deren gemeinsame Nutzung mit dem VM-Manager 110 von dem Schutzmodul 415 angefordert wurde, eine VPID des VM-Managers 110 zu. Daher können bestimmte Datenseiten eine VPID enthalten, die den virtuellen Gast 120 kennzeichnet und die auch den VM-Manager 110 als Zugriff habend kennzeichnet.
  • Das Zugriffsanforderungsmodul 555 sieht in einer Ausführungsform Zugriffsschutz auf Prozessorebene für Laufzeitdatenseiten des virtuellen Gasts 120 vor. In einer weiteren Ausführungsform bewilligt das Zugriffsanforderungsmodul 555 eine Anforderung für den Zugriff auf eine bestimmte Datenseite des Laufzeitarbeitsspeichers 210 von einem Anforderer als Reaktion darauf, dass der Anforderer eine entsprechende Kennung eines virtuellen Gasts für die bestimmte Seite des Laufzeitarbeitsspeichers 210 hat. Ebenso weist das Zugriffsanforderungsmodul 555 eine Anforderung für den Zugriff auf die bestimmte Seite des Laufzeitarbeitsspeichers 210 von einem Anforderer als Reaktion darauf ab, dass der Anforderer über keine entsprechende Kennung eines virtuellen Gasts für die bestimmte Seite des Laufzeitarbeitsspeichers 210 verfügt. In einer weiteren Ausführungsform vergleicht die Zugriffsanforderung die VPID eines Anforderers mit der einen VPID oder mit mehreren VPIDs für eine bestimmte Datenseite und gewährt dem Anforderer den Zugriff, wenn die VPID des Anforderers der bestimmten Datenseite zugewiesen ist. In noch einer weiteren Ausführungsform verwendet das Zugriffsanforderungsmodul 555 eine Bitmap, gegen die das Zugriffsanforderungsmodul 555 einen Vergleich durchführt, um eine Zugriffsebene festzustellen, die einer bestimmten VPID (z.B. eines Anforderers) gewährt werden soll.
  • 6 ist ein schematisches Blockschaubild, das eine einzelne Ausführungsform eines Verfahrens 600 zum Schützen des Arbeitsspeichers eines virtuellen Gasts zeigt. Das Verfahren 600 beginnt und das Initialisierungsmodul 405 initialisiert 605 einen virtuellen Gast 120 auf einem Host-Datenverarbeitungssystem 105, das einen VM-Manager 110 wie zum Beispiel einen Hypervisor enthält. Der VM-Manager 110 verwaltet den Betrieb des virtuellen Gasts 120 und der virtuelle Gast 120 enthält eine bestimmte Betriebsumgebung, die in einer von dem VM-Manager 110 bereitgestellten virtuellen Betriebsplattform ausgeführt wird.
  • Das Empfangsmodul 410 empfängt 610 eine Zuordnung von Laufzeitarbeitsspeicher 210 für den virtuellen Gast 120. Die Zuordnung von Laufzeitarbeitsspeicher 210 beinhaltet einen Teil des Laufzeitarbeitsspeichers 210 des Host-Datenverarbeitungssystems 105. Das Schutzmodul 415 setzt 615 dann mindestens einen Teil der Zuordnung von Laufzeitarbeitsspeicher 210 durch den virtuellen Gast 120 als für den VM-Manager 110 nicht zugänglich. Dann endet das Verfahren 600.
  • 7 ist ein schematisches Blockschaubild, das eine weitere Ausführungsform eines Verfahrens 700 zum Schützen des Arbeitsspeichers eines virtuellen Gasts zeigt. Das Verfahren 700 beginnt und das Initialisierungsmodul 405 initialisiert 705 einen virtuellen Gast 120 auf einem Host-Datenverarbeitungssystem 105, das einen VM-Manager 110 wie zum Beispiel einen Hypervisor enthält. Das Verifizierungsmodul 505 prüft 710, ob der virtuelle Gast 120 direkt mit einem Prozessor 215 des Host-Datenverarbeitungssystems 105 unabhängig von dem VM-Manager 110 Daten austauscht. Beispielsweise kann das Verifizierungsmodul 505 eine erkannte Datenverarbeitungsumgebung mittels eines TPM prüfen. Wenn das Verifizierungsmodul 505 feststellt 710, dass der virtuelle Gast 120 nicht direkt Daten mit dem Prozessor 215 austauscht, endet das Verfahren 700. Wenn das Verifizierungsmodul 505 feststellt 710, dass der virtuelle Gast 120 direkt mit dem Prozessor 215 Daten austauscht, empfängt 715 das Empfangsmodul 410 eine Zuordnung von Laufzeitarbeitsspeicher 210 für den virtuellen Gast 120.
  • Das Schutzmodul 415 setzt 720 dann mindestens einen Teil der Zuordnung von Laufzeitarbeitsspeicher 210 durch den virtuellen Gast 120 als für den VM-Manager 110 nicht zugänglich. In einer einzelnen Ausführungsform setzt der virtuelle Gast 120 den Teil der Zuordnung von Laufzeitarbeitsspeicher 210 als nicht zugänglich, indem er direkt mit einem Prozessor 215 des Host-Datenverarbeitungssystems 105 Daten austauscht und vorher festgelegte Befehle aufruft. Als Reaktion darauf, dass der virtuelle Gast 120 die vorher festgelegten Befehle aufruft, weist das Zuweisungsmodul 550 gegebenenfalls Datenseiten des Laufzeitarbeitsspeichers 210 einer VPID des virtuellen Gasts 120 zu. Als Nächstes legt 725 das Schutzmodul 415 einen gemeinsam genutzten Arbeitsspeicherteil 315 für den Zugriff durch den VM-Manager 110 fest. Der gemeinsam genutzte Arbeitsspeicherteil 315 enthält einen Teil der Zuordnung von Laufzeitarbeitsspeicher 210 des virtuellen Gasts 120 und das Schutzmodul 415 kann den gemeinsam genutzten Arbeitsspeicherteil 315 durch ähnliche direkt an den Prozessor 215 gerichtete Aufrufbefehle festlegen.
  • Wenn das Empfangsmodul 410 von dem VM-Manager 110 keine Anforderung für den Zugriff auf den nicht zugänglichen Laufzeitarbeitsspeicher 210 empfängt 730, endet das Verfahren 700. Wenn das Empfangsmodul 410 von dem VM-Manager 110 eine Anforderung für den Zugriff auf mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers 210 empfängt 730, stellt das Feststellungsmodul 520 fest 730, ob die Anforderung ein oder mehrere vorher festgelegte Kriterien erfüllt. Wenn das Feststellungsmodul 520 feststellt 735, dass die Anforderung das eine vorher festgelegte Kriterium oder die mehreren vorher festgelegten Kriterien erfüllt, gewährt 740 das Zugriffsmodul 525 dem virtuellen VM-Manager 110 Zugriff auf den Teil des nicht zugänglichen Laufzeitarbeitsspeichers 210. Andernfalls verweigert 745 das Zugriffsmodul 525 den Zugriff auf den Teil des nicht zugänglichen Laufzeitarbeitsspeichers 210. Dann endet das Verfahren 700.
  • 8 ist ein schematisches Blockschaubild, das eine einzelne Ausführungsform eines Verfahrens 800 zum Einsetzen einer Arbeitsspeichervorrichtung 205 für einen virtuellen Gast zeigt. Zwar versteht es sich, dass die Prozesssoftware, die die Arbeitsspeichervorrichtung 205 für einen virtuellen Gast realisiert, eingesetzt werden kann, indem man sie durch Laden eines Speichermediums wie zum Beispiel einer CD, DVD usw. manuell direkt in die Client-, Server- und Proxy-Computer lädt, doch kann die Prozesssoftware auch automatisch oder halbautomatisch in einem Datenverarbeitungssystem eingesetzt werden, indem man die Prozesssoftware an einen zentralen Server oder an eine Gruppe von zentralen Servern sendet. Die Prozesssoftware wird dann auf die Client-Computer heruntergeladen, die die Prozesssoftware ausführen. Alternativ wird die Prozesssoftware per e-Mail direkt an das Client-System gesendet. Die Prozesssoftware wird dann entweder in ein Verzeichnis freigegeben oder über eine in der e-Mail befindliche Schaltfläche, die ein Programm ausführt, das die Prozesssoftware in ein Verzeichnis freigibt, in ein Verzeichnis geladen. Eine weitere Alternative besteht darin, die Prozesssoftware direkt an ein Verzeichnis auf dem Festplattenlaufwerk eines Client-Computers zu senden. Wenn es Proxyserver gibt, wählt der Prozess den Code der Proxyserver aus, legt fest, auf welchen Computern der Code der Proxyserver abgelegt wird, überträgt den Code der Proxyserver und installiert dann den Code der Proxyserver auf dem Proxy-Computer. Die Prozesssoftware kann an den Proxyserver übertragen und dann auf dem Proxyserver gespeichert werden.
  • Das Verfahren 800 zum Einsetzen der Prozesssoftware beginnt und es wird festgestellt 802, ob Programme vorhanden sind, die sich auf einem Server oder auf Servern befinden, wenn die Prozesssoftware ausgeführt wird. Bezug nehmend auf 8-B werden, wenn dies der Fall ist, die Server, die die ausführbaren Dateien enthalten, gekennzeichnet 836. Die Prozesssoftware für den Server oder die Server wird mittels FTP oder eines anderen Protokolls oder mittels eines Kopiervorgangs durch die Verwendung eines gemeinsam genutzten Dateisystems direkt an den Speicher der Server übertragen 838. Die Prozesssoftware wird dann auf den Servern installiert 840.
  • Nochmals Bezug nehmend auf 8-A wird festgestellt 804, ob die Prozesssoftware eingesetzt werden soll, indem man Benutzer veranlasst, auf die Prozesssoftware auf einem Server oder auf Servern zuzugreifen. Wenn die Benutzer auf Servern auf die Prozesssoftware zugreifen sollen, werden die Adressen der Server, die die Prozesssoftware speichern, gekennzeichnet 806. Es wird festgestellt 808, ob ein Proxyserver aufgebaut werden soll, um die Prozesssoftware zu speichern. Ein Proxyserver ist ein Server, der zwischen einer Client-Anwendung, wie zum Beispiel einem Webbrowser, und einem echten Server sitzt. Er fängt alle Anforderungen an den echten Server ab, um festzustellen, ob er die Anforderungen selbst erfüllen kann. Wenn nicht, leitet er die Anforderungen an den echten Server weiter. Die beiden Hauptvorteile eines Proxyservers bestehen in der Verbesserung der Leistungsfähigkeit und in der Filterung von Anforderungen. Wenn ein Proxyserver erforderlich ist, wird der Proxyserver installiert 810. Die Prozesssoftware wird entweder über ein Protokoll wie zum Beispiel FTP an die Server gesendet 812 oder sie wird direkt mittels Dateifreigabe aus den Quelldateien in die Serverdateien kopiert. Eine weitere Ausführungsform wäre, eine Transaktion an diejenigen Server zu senden, die die Prozesssoftware enthielten, und den Server die Transaktion verarbeiten zu lassen, dann die Prozesssoftware zu empfangen und sie in das Dateisystem des Servers zu kopieren. Sobald die Prozesssoftware auf den Servern gespeichert wurde, greifen 814 die Benutzer daraufhin über ihre Client-Computer auf die Prozesssoftware auf den Servern zu und kopieren sie in die Dateisysteme ihrer Client-Computer. Eine weitere Ausführungsform besteht darin, die Server die Prozesssoftware automatisch auf jeden Client kopieren zu lassen und dann das Installationsprogramm für die Prozesssoftware auf jedem Client-Computer auszuführen. Der Benutzer führt das Programm aus, das die Prozesssoftware auf seinem Client-Computer installiert 816, dann endet das Verfahren 800.
  • Im Schritt 818 wird festgestellt, ob die Prozesssoftware eingesetzt werden soll, indem sie per eMail an Benutzer gesendet wird. Die Gruppe von Benutzern, bei denen die Prozesssoftware eingesetzt wird, werden zusammen mit den Adressen der Client-Computer der Benutzer gekennzeichnet 820. Die Prozesssoftware wird per eMail an jeden Client-Computer der Benutzer gesendet. Die Benutzer empfangen dann die eMail 824 und geben 826 die Prozesssoftware aus der e-Mail anschließend in ein Verzeichnis auf ihren Client-Computern frei. Der Benutzer führt das Programm aus, das die Prozesssoftware auf seinem Client-Computer installiert 816, dann endet das Verfahren 800.
  • Schließlich wird entschieden 828, ob die Prozesssoftware direkt an Benutzerverzeichnisse auf ihren Client-Computern gesendet wird. Wenn ja, werden die Benutzerverzeichnisse gekennzeichnet 830. Die Prozesssoftware wird direkt in das Verzeichnis des Client-Computers des Benutzers übertragen 832. Dies kann auf mehrere Arten geschehen, wie zum Beispiel, ohne darauf beschränkt zu sein, durch Freigabe der Dateisystem-Verzeichnisse und anschließendes Kopieren aus dem Dateisystem des Senders in das Dateisystem des empfangenden Benutzers oder alternativ durch Verwendung eines Übertragungsprotokolls wie beispielsweise des File Transfer Protocol (FTP). Bei der Vorbereitung der Installation der Prozesssoftware greifen 834 die Benutzer auf die Verzeichnisse auf ihren Client-Dateisystemen zu. Der Benutzer führt das Programm aus, das die Prozesssoftware auf seinem Client-Computer 816 installiert, dann endet das Verfahren 800.
  • Die beschriebenen Ausführungsformen sind in jeder Hinsicht lediglich als der Veranschaulichung dienend und nicht als einschränkend zu betrachten.
  • Industrielle Anwendbarkeit
  • Diese Erfindung kann auf die Virtualisierung und auf virtuelle Gäste und insbesondere auf das Schützen des Arbeitsspeichers eines virtuellen Gasts angewendet werden.
  • Bezugszeichenliste
  • 100
    System
    105
    Host-Datenverarbeitungssystem
    110
    VM-Manager
    115a, 115b
    Virtuelle Maschinen
    120a, 120b
    Virtuelle Gäste
    130a, 130b, 130c
    Clients
    125
    Netzwerk

Claims (25)

  1. Verfahren, aufweisend: Initialisieren eines virtuellen Gasts (120a, 120b) auf einem Host-Datenverarbeitungssystem (105), wobei das Host-Datenverarbeitungssystem einen VM-Manager (110) aufweist, wobei der VM-Manager (110) den Betrieb des virtuellen Gasts (120a, 120b) verwaltet, wobei der virtuelle Gast (120a, 120b) eine bestimmte Betriebsumgebung aufweist, die in einer von dem VM-Manager (110) bereitgestellten virtuellen Betriebsplattform ausgeführt wird; Empfangen einer Zuordnung von Laufzeitarbeitsspeicher (210) für den virtuellen Gast (120a, 120b), wobei die Zuordnung von Laufzeitarbeitsspeicher einen Teil des Laufzeitarbeitsspeichers des Host-Datenverarbeitungssystems aufweist; und Setzen, durch den virtuellen Gast (120a, 120b), von mindestens einem Teil (210) der Zuordnung von Laufzeitarbeitsspeicher als für den VM-Manager (110) nicht zugänglich.
  2. Verfahren nach Anspruch 1, das des Weiteren das Festlegen eines gemeinsam genutzten Arbeitsspeicherteils (315) für den Zugriff durch den VM-Manager (110) aufweist, wobei der gemeinsam genutzte Arbeitsspeicherteil (315) einen Teil der Zuordnung von Laufzeitarbeitsspeicher des virtuellen Gasts aufweist.
  3. Verfahren nach Anspruch 2, wobei der Zugriff auf die Zuordnung von Laufzeitarbeitsspeicher von dem virtuellen Gast (120a, 120b) bestimmt wird.
  4. Verfahren nach Anspruch 1, das des Weiteren die Prüfung, ob der virtuelle Gast (120a, 120b) direkt mit einem Prozessor (215) des Host-Datenverarbeitungssystems unabhängig von dem VM-Manager (110) Daten austauscht, aufweist.
  5. Verfahren nach Anspruch 4, wobei die Prüfung, ob der virtuelle Gast direkt mit dem Prozessor Daten (215) austauscht, des Weiteren die auf der Grundlage von Messwerten von einem Trusted Platform Module („TPM“), das mit dem Host-Datenverarbeitungssystem Daten austauscht, erfolgende Prüfung aufweist, ob der virtuelle Gast (120a, 120b) direkt mit dem Prozessor (215) Daten austauscht.
  6. Verfahren nach Anspruch 1, wobei das Setzen durch den virtuellen Gast (120a, 120b) von mindestens dem Teil der Zuordnung von Laufzeitarbeitsspeicher als für den VM-Manager (110) nicht zugänglich des Weiteren einen direkten Datenaustausch des virtuellen Gasts (102a, 120b) mit dem Prozessor unabhängig von dem VM-Manager (110) aufweist, um Zugriffsberechtigungen für die Zuordnung von Laufzeitarbeitsspeicher des virtuellen Gasts zu setzen.
  7. Verfahren nach Anspruch 1, wobei das Setzen durch den virtuellen Gast (102a, 120b) von mindestens dem Teil der Zuordnung von Laufzeitarbeitsspeicher als für den VM-Manager (110) nicht zugänglich des Weiteren das Zuweisen von einer oder mehreren Kennungen von virtuellen Gästen zu einer bestimmten Seite des Laufzeitarbeitsspeichers der Zuordnung von Laufzeitarbeitsspeicher aufweist, wobei mindestens eine der Kennungen der virtuellen Gäste den virtuellen Gast (120a, 120b) kennzeichnet, wobei der Prozessor (215) eine Anforderung für den Zugriff auf die bestimmte Seite des Laufzeitarbeitsspeichers von einem Anforderer als Reaktion darauf abweist, dass der Anforderer über keine entsprechende Kennung des virtuellen Gasts für die bestimmte Seite des Laufzeitarbeitsspeichers verfügt.
  8. Verfahren nach Anspruch 1, das des Weiteren das Senden einer Anforderung von dem VM-Manager (110) an den virtuellen Gast (120a, 120b) für den Zugriff auf mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers aufweist.
  9. Verfahren nach Anspruch 1, des Weiteren aufweisend: Empfangen einer Anforderung von dem VM-Manager (110) für den Zugriff auf mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers (210); Feststellen, dass die Anforderung ein oder mehrere vorher festgelegte Kriterien erfüllt; und Gewähren des Zugriffs auf den mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers (210) für den VM-Manager (110) als Reaktion auf die Feststellung, dass die Anforderung das eine vorher festgelegte Kriterium oder die mehreren vorher festgelegten Kriterien erfüllt.
  10. Verfahren nach Anspruch 9, wobei das eine vorher festgelegte Kriterium oder die mehreren vorher festgelegten Kriterien eine oder mehrere einer Anforderung für Arbeitsspeicherauszugsdaten und eine Anforderung für die Migration eines virtuellen Gasts (120a, 120b) aufweisen.
  11. Verfahren nach Anspruch 9, das des Weiteren das Verschlüsseln von bestimmten Daten des nicht zugänglichen Laufzeitarbeitsspeichers (210) aufweist, bevor dem VM-Manager der Zugriff auf den mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers (210) gewährt wird.
  12. Verfahren nach Anspruch 1, das des Weiteren das Aufrufen eines vorher festgelegten Befehls, die Zuordnung von Laufzeitarbeitsspeicher (210) für den virtuellen Gast (120a, 120b) zu löschen, aufweist, ohne dass der VM-Manager (110) auf die Zuordnung von Laufzeitarbeitsspeicher zugreift, wobei das Host-Datenverarbeitungssystem (105) die Zuordnung von Laufzeitarbeitsspeicher als Reaktion auf das Aufrufen des vorher festgelegten Befehls löscht.
  13. Verfahren nach Anspruch 12, das des Weiteren das Erkennen, dass der virtuelle Gast (120a, 120b) nicht antwortet, aufweist, wobei das Aufrufen des vorher festgelegten Befehls des Weiteren das Aufrufen des vorher festgelegten Befehls als Reaktion auf das Erkennen, dass der virtuelle Gast (120a, 120b) nicht antwortet, aufweist.
  14. Vorrichtung, aufweisend: ein Initialisierungsmodul (405), das einen virtuellen Gast (120a, 120b) auf einem Host-Datenverarbeitungssystem (105) initialisiert, wobei das Host-Datenverarbeitungssystem (105) einen VM-Manager (110) aufweist, wobei der VM-Manager (110) den Betrieb des virtuellen Gasts verwaltet (120a, 120b), wobei der virtuelle Gast (120a, 120b) eine bestimmte Betriebsumgebung aufweist, die in einer von dem VM-Manager (110) bereitgestellten virtuellen Betriebsplattform ausgeführt wird; ein Empfangsmodul (410), das eine Zuordnung von Laufzeitarbeitsspeicher (210) für den virtuellen Gast (120a, 120b) empfängt, wobei die Zuordnung von Laufzeitarbeitsspeicher (210) einen Teil des Laufzeitarbeitsspeichers des Host-Datenverarbeitungssystems (105) aufweist; und ein Schutzmodul (415), das mindestens einen Teil der Zuordnung von Laufzeitarbeitsspeicher (210) durch den virtuellen Gast als für den VM-Manager (110) nicht zugänglich setzt.
  15. Vorrichtung nach Anspruch 14, wobei das Schutzmodul (415) des Weiteren einen gemeinsam genutzten Arbeitsspeicherteil (315) für den Zugriff durch den VM-Manager (110) festlegt, wobei der gemeinsam genutzte Arbeitsspeicherteil (315) einen Teil der Zuordnung von Laufzeitarbeitsspeicherdes virtuellen Gasts (120a, 120b) aufweist.
  16. Vorrichtung nach Anspruch 14, die des Weiteren ein Verifizierungsmodul (505) aufweist, das prüft, ob der virtuelle Gast (102a, 120b) direkt mit einem Prozessor (215) des Host-Datenverarbeitungssystems (105) unabhängig von dem VM-Manager (110) Daten austauscht.
  17. Vorrichtung nach Anspruch 14, des Weiteren aufweisend: ein Anforderungsempfangsmodul (515), das eine Anforderung von dem VM-Manager (110) für den Zugriff auf mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers empfängt; ein Feststellungsmodul (520), das feststellt, dass die Anforderung ein oder mehrere vorher festgelegte Kriterien erfüllt; und ein Zugriffsmodul (525), das dem VM-Manager (110) den Zugriff auf den mindestens einen Teil des nicht zugänglichen Laufzeitarbeitsspeichers (210) als Reaktion auf die Feststellung gewährt, dass die Anforderung das eine vorher festgelegte Kriterium oder die mehreren vorher festgelegten Kriterien erfüllt.
  18. Vorrichtung nach Anspruch 17, die des Weiteren ein Löschbefehl-Modul (540) aufweist, das einen vorher festgelegten Befehl, die Zuordnung von Laufzeitarbeitsspeicher für den virtuellen Gast (120a, 120b) zu löschen, aufruft, ohne dass der VM-Manager (110) auf die Zuordnung von Laufzeitarbeitsspeicher zugreift, wobei das Host-Datenverarbeitungssystem (105) die Zuordnung von Laufzeitarbeitsspeicher als Reaktion darauf löscht, dass das Löschmodul den vorher festgelegten Befehl aufruft.
  19. System, aufweisend: einen VM-Manager (110), der eine virtuelle Betriebsplattform für ein Host-Datenverarbeitungssystem (105) bereitstellt; einen Prozessor (215); einen Arbeitsspeicher (205), der Module zur Ausführung durch den Prozessor (215) speichert, wobei der Arbeitsspeicher (205) aufweist: ein Initialisierungsmodul (405), das einen virtuellen Gast auf dem Host-Datenverarbeitungssystem (105) initialisiert, wobei das Host-Datenverarbeitungssystem (105) den VM-Manager (110) aufweist, wobei der VM-Manager (110) den Betrieb des virtuellen Gasts (120a, 120b) verwaltet, wobei der virtuelle Gast (120a, 120b) eine bestimmte Betriebsumgebung aufweist, die in der von dem VM-Manager (110) bereitgestellten virtuellen Betriebsplattform ausgeführt wird; ein Empfangsmodul (410), das eine Zuordnung von Laufzeitarbeitsspeicher (210) für den virtuellen Gast empfängt, wobei die Zuordnung von Laufzeitarbeitsspeicher (210) einen Teil des Laufzeitarbeitsspeichers des Host-Datenverarbeitungssystems (105) aufweist; und ein Schutzmodul (415), das mindestens einen Teil der Zuordnung von Laufzeitarbeitsspeicher durch den virtuellen Gast als für den VM-Manager nicht zugänglich setzt.
  20. System nach Anspruch 19, des Weiteren aufweisend: ein Erkennungsmodul (535), das erkennt, dass der virtuelle Gast (120a, 120b) nicht antwortet; und ein Löschbefehl-Modul (540), das einen vorher festgelegten Befehl, die Zuordnung von Laufzeitarbeitsspeicher (210) für den virtuellen Gast (120a, 120b) zu löschen, aufruft, ohne dass der VM-Manager (110) auf die Zuordnung von Laufzeitarbeitsspeicher (210) zugreift, wobei das Host-Datenverarbeitungssystem (105) als Reaktion darauf, dass das Erkennungsmodul (535) erkennt, dass der virtuelle Gast (120a, 120b) nicht antwortet, die Zuordnung von Laufzeitarbeitsspeicher (210) als Reaktion darauf, dass das Löschmodul (545) den vorher festgelegten Befehl aufruft, löscht.
  21. System nach Anspruch 19, des Weiteren aufweisend: ein Zuweisungsmodul (550), das eine oder mehrere Kennungen von virtuellen Gästen (120a, 120b) einer bestimmten Seite des Laufzeitarbeitsspeichers (210) der Zuordnung von Laufzeitarbeitsspeicher zuweist, wobei mindestens eine der Kennungen der virtuellen Gäste den virtuellen Gast (120a, 120b) kennzeichnet; und ein Zugriffsanforderungsmodul (555), das eine Anforderung für den Zugriff auf die bestimmte Seite des Laufzeitarbeitsspeichers (210) von einem Anforderer als Reaktion darauf gewährt, dass der Anforderer über eine entsprechende Kennung eines virtuellen Gasts (120a, 120b) für die bestimmte Seite des Laufzeitarbeitsspeichers (210) verfügt.
  22. System nach Anspruch 19, des Weiteren aufweisend: ein Löschmodul (545), das einen Aufruf eines vorher festgelegten Befehls, die Zuordnung von Laufzeitarbeitsspeicher (210) für den virtuellen Gast (120a, 120b) zu löschen, von dem VM-Manager (110) empfängt und die Zuordnung von Laufzeitarbeitsspeicher (210) als Reaktion auf den Empfang des Aufrufs des vorher festgelegten Befehls löscht.
  23. Computer-Programmprodukt, das ein von einem Computer lesbares Speichermedium aufweist, das über damit realisierten, von einem Computer lesbaren Programmcode verfügt, wobei der von einem Computer lesbare Programmcode dient zum: Initialisieren eines virtuellen Gasts (120a, 120b) auf einem Host-Datenverarbeitungssystem (105), wobei das Host-Datenverarbeitungssystem (105) einen VM-Manager(110) aufweist, wobei der VM-Manager (110) den Betrieb des virtuellen Gasts (120a, 120b) verwaltet, wobei der virtuelle Gast (120a, 120b) eine bestimmte Betriebsumgebung aufweist, die in einer von dem VM-Manager (110) bereitgestellten virtuellen Betriebsplattform ausgeführt wird; Empfangen einer Zuordnung von Laufzeitarbeitsspeicher (210) für den virtuellen Gast (120a, 120b), wobei die Zuordnung von Laufzeitarbeitsspeicher einen Teil des Laufzeitarbeitsspeichers (210) des Host-Datenverarbeitungssystems (105) aufweist; und Setzen, durch den virtuellen Gast, von mindestens einem Teil der Zuordnung von Laufzeitarbeitsspeicher (210) als für den VM-Manager nicht zugänglich.
  24. Computer-Programmprodukt nach Anspruch 23, das des Weiteren das Festlegen eines gemeinsam genutzten Arbeitsspeicherteils (315) für den Zugriff durch den VM-Manager (110) aufweist, wobei der gemeinsam genutzte Arbeitsspeicherteil (315) einen Teil der Zuordnung von Laufzeitarbeitsspeicher des virtuellen Gasts (120a, 120b) aufweist.
  25. Verfahren, aufweisend: Einsetzen einer Sicherheitsvorrichtung für einen virtuellen Gast (120a, 120b) auf einem Host-Datenverarbeitungssystem (105), wobei die Sicherheitsvorrichtung für einen virtuellen Gast (120a, 120b) in der Lage ist: einen virtuellen Gast (120a, 120b) auf dem Host-Datenverarbeitungssystem (105) zu initialisieren, wobei das Host-Datenverarbeitungssystem einen VM-Manager (110) aufweist, wobei der VM-Manager (110) den Betrieb des virtuellen Gasts (120a, 120b) verwaltet, wobei der virtuelle Gast (120a, 120b) eine bestimmte Betriebsumgebung aufweist, die in einer von dem VM-Manager (110) bereitgestellten virtuellen Betriebsplattform ausgeführt wird; eine Zuordnung von Laufzeitarbeitsspeicher (210) für den virtuellen Gast zu empfangen, wobei die Zuordnung von Laufzeitarbeitsspeicher (210) einen Teil des Laufzeitarbeitsspeichers (210) des Host-Datenverarbeitungssystems aufweist; und durch den virtuellen Gast (120a, 120b) mindestens einen Teil der Zuordnung von Laufzeitarbeitsspeicher (210) als für den VM-Manager nicht zugänglich zu setzen.
DE112012003988.2T 2011-10-13 2012-10-11 Schützen des Arbeitsspeichers eines virtuellen Gasts Active DE112012003988B4 (de)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US13/272,780 2011-10-13
US13/272,780 US8782351B2 (en) 2011-10-13 2011-10-13 Protecting memory of a virtual guest
USUS-13/272,780 2011-10-13
USUS-13/482,782 2012-05-29
US13/482,782 2012-05-29
US13/482,782 US8788763B2 (en) 2011-10-13 2012-05-29 Protecting memory of a virtual guest
PCT/JP2012/006528 WO2013054528A1 (en) 2011-10-13 2012-10-11 Protecting memory of a virtual guest

Publications (2)

Publication Number Publication Date
DE112012003988T5 DE112012003988T5 (de) 2014-06-18
DE112012003988B4 true DE112012003988B4 (de) 2021-09-02

Family

ID=48081595

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112012003988.2T Active DE112012003988B4 (de) 2011-10-13 2012-10-11 Schützen des Arbeitsspeichers eines virtuellen Gasts

Country Status (6)

Country Link
US (1) US8788763B2 (de)
JP (1) JP5736090B2 (de)
CN (1) CN103858113B (de)
DE (1) DE112012003988B4 (de)
GB (1) GB2508553B (de)
WO (1) WO2013054528A1 (de)

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304945B2 (en) * 2013-01-24 2016-04-05 Raytheon Company Synchronizing parallel applications in an asymmetric multi-processing system
US8793628B1 (en) * 2013-03-11 2014-07-29 Cadence Design Systems, Inc. Method and apparatus of maintaining coherency in the memory subsystem of an electronic system modeled in dual abstractions
US9785378B2 (en) 2014-01-28 2017-10-10 Red Hat Israel, Ltd. Tracking transformed memory pages in virtual machine chain migration
US9563569B2 (en) 2014-01-28 2017-02-07 Red Hat Israel, Ltd. Memory transformation in virtual machine live migration
US9792448B2 (en) 2014-02-28 2017-10-17 Advanced Micro Devices, Inc. Cryptographic protection of information in a processing system
WO2016209915A1 (en) * 2015-06-24 2016-12-29 Advanced Micro Devices, Inc. Protecting state information for virtual machines
CN103995732B (zh) 2014-05-26 2017-02-22 华为技术有限公司 一种虚拟可信平台模块功能实现方法和管理设备
GB2539436B (en) 2015-06-16 2019-02-06 Advanced Risc Mach Ltd Secure initialisation
GB2539429B (en) 2015-06-16 2017-09-06 Advanced Risc Mach Ltd Address translation
GB2539433B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Protected exception handling
GB2539428B (en) 2015-06-16 2020-09-09 Advanced Risc Mach Ltd Data processing apparatus and method with ownership table
GB2539435B8 (en) * 2015-06-16 2018-02-21 Advanced Risc Mach Ltd Data processing memory access control, in which an owning process for a region of memory is specified independently of privilege level
US20160371106A1 (en) * 2015-06-18 2016-12-22 Microsoft Technology Licensing, Llc Virtual machine data protected from host
US10075296B2 (en) * 2015-07-02 2018-09-11 Intel Corporation Loading and virtualizing cryptographic keys
JP6257844B2 (ja) * 2015-09-07 2018-01-10 三菱電機株式会社 実行制御装置及び実行制御方法及び実行制御プログラム
US10102151B2 (en) 2015-11-06 2018-10-16 International Business Machines Corporation Protecting a memory from unauthorized access
US9841987B2 (en) 2015-12-17 2017-12-12 International Business Machines Corporation Transparent secure interception handling
US10019279B2 (en) 2015-12-17 2018-07-10 International Business Machines Corporation Transparent secure interception handling
CN106997315B (zh) * 2016-01-25 2021-01-26 阿里巴巴集团控股有限公司 一种用于虚拟机的内存转储的方法和装置
US10963280B2 (en) * 2016-02-03 2021-03-30 Advanced Micro Devices, Inc. Hypervisor post-write notification of control and debug register updates
GB2547912B (en) * 2016-03-02 2019-01-30 Advanced Risc Mach Ltd Register access control
CN107203411B (zh) * 2017-04-18 2020-02-28 中国科学院计算技术研究所 一种基于远程ssd的虚拟机内存扩展方法及系统
CN109144403B (zh) * 2017-06-19 2021-10-01 阿里巴巴集团控股有限公司 一种用于云盘模式切换的方法与设备
CN107392043A (zh) * 2017-06-30 2017-11-24 天脉聚源(北京)传媒科技有限公司 一种保护系统中用户的私人对象的方法及装置
CN109815001A (zh) * 2017-11-20 2019-05-28 阿里巴巴集团控股有限公司 应用处理方法、装置及托管系统
CN109739613B (zh) * 2018-11-22 2021-08-13 海光信息技术股份有限公司 嵌套页表的维护方法、访问控制方法及相关装置
US11283800B2 (en) * 2019-03-08 2022-03-22 International Business Machines Corporation Secure interface control secure storage hardware tagging
US11455398B2 (en) 2019-03-08 2022-09-27 International Business Machines Corporation Testing storage protection hardware in a secure virtual machine environment
US11182192B2 (en) 2019-03-08 2021-11-23 International Business Machines Corporation Controlling access to secure storage of a virtual machine
US10956188B2 (en) * 2019-03-08 2021-03-23 International Business Machines Corporation Transparent interpretation of guest instructions in secure virtual machine environment
US11176054B2 (en) 2019-03-08 2021-11-16 International Business Machines Corporation Host virtual address space for secure interface control storage
US11068310B2 (en) 2019-03-08 2021-07-20 International Business Machines Corporation Secure storage query and donation
US12093414B1 (en) * 2019-12-09 2024-09-17 Amazon Technologies, Inc. Efficient detection of in-memory data accesses and context information
CN112965789B (zh) * 2021-03-25 2024-05-03 绿盟科技集团股份有限公司 一种虚拟机内存空间处理方法、装置、设备和介质
US11900142B2 (en) 2021-06-16 2024-02-13 Red Hat, Inc. Improving memory access handling for nested virtual machines
US20230044731A1 (en) * 2021-08-05 2023-02-09 International Business Machines Corporation Attestation of a secure guest
KR20240093723A (ko) * 2022-03-31 2024-06-24 엘지전자 주식회사 신호 처리 장치, 및 이를 구비하는 차량용 디스플레이 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011081935A2 (en) 2009-12-14 2011-07-07 Citrix Systems, Inc. Methods and systems for communicating between trusted and non-trusted virtual machines

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6496847B1 (en) * 1998-05-15 2002-12-17 Vmware, Inc. System and method for virtualizing computer systems
US7103529B2 (en) * 2001-09-27 2006-09-05 Intel Corporation Method for providing system integrity and legacy environment emulation
US7069442B2 (en) * 2002-03-29 2006-06-27 Intel Corporation System and method for execution of a secured environment initialization instruction
US7278030B1 (en) 2003-03-03 2007-10-02 Vmware, Inc. Virtualization system for computers having multiple protection mechanisms
US7975117B2 (en) 2003-03-24 2011-07-05 Microsoft Corporation Enforcing isolation among plural operating systems
US8079034B2 (en) * 2003-09-15 2011-12-13 Intel Corporation Optimizing processor-managed resources based on the behavior of a virtual machine monitor
EP1678617A4 (de) 2003-10-08 2008-03-26 Unisys Corp Computersystem-paravirtualisierung durch verwendung eines hypervisors, der in einer partition des hostsystems implementiert wird
US7424601B2 (en) 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
US7281102B1 (en) 2004-08-12 2007-10-09 Vmware, Inc. Restricting memory access to protect data when sharing a common address space
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
JP2007004661A (ja) 2005-06-27 2007-01-11 Hitachi Ltd 仮想計算機の制御方法及びプログラム
US20070067590A1 (en) * 2005-09-22 2007-03-22 Uday Savagaonkar Providing protected access to critical memory regions
US7748037B2 (en) * 2005-09-22 2010-06-29 Intel Corporation Validating a memory type modification attempt
US8380987B2 (en) * 2007-01-25 2013-02-19 Microsoft Corporation Protection agents and privilege modes
JP2008250387A (ja) * 2007-03-29 2008-10-16 Toshiba Corp 情報処理装置
US8769207B2 (en) * 2008-01-16 2014-07-01 Via Technologies, Inc. Caching method and apparatus for a vertex shader and geometry shader
US8307360B2 (en) 2008-01-22 2012-11-06 Advanced Micro Devices, Inc. Caching binary translations for virtual machine guest
US8886838B2 (en) 2008-02-29 2014-11-11 Oracle America, Inc. Method and system for transferring packets to a guest operating system
CN101593258B (zh) * 2008-05-28 2010-09-08 北京飞天诚信科技有限公司 一种在软件保护装置中实现.Net虚拟机的系统和方法
US8954897B2 (en) 2008-08-28 2015-02-10 Microsoft Corporation Protecting a virtual guest machine from attacks by an infected host
US9213566B2 (en) 2008-11-26 2015-12-15 Red Hat, Inc. Implementing security in process-based virtualization
US8799879B2 (en) 2009-06-30 2014-08-05 Oracle America, Inc. Method and apparatus for protecting translated code in a virtual machine
JP2011076504A (ja) 2009-09-30 2011-04-14 Brother Industries Ltd 仮想マシン、仮想マシンのプログラム、アプリケーションサービス提供システム及びアプリケーションサービス提供方法
JP2011076505A (ja) 2009-09-30 2011-04-14 Brother Industries Ltd 情報処理システム及び情報処理方法
US8873866B2 (en) * 2009-12-14 2014-10-28 New Bis Safe Luxco S.A R.L Method and system for calculating breakpoints in a data visualization system
US20110225459A1 (en) 2010-03-09 2011-09-15 Microsoft Corporation Generating a debuggable dump file for a virtual machine

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011081935A2 (en) 2009-12-14 2011-07-07 Citrix Systems, Inc. Methods and systems for communicating between trusted and non-trusted virtual machines

Also Published As

Publication number Publication date
US8788763B2 (en) 2014-07-22
DE112012003988T5 (de) 2014-06-18
GB2508553B (en) 2014-09-10
GB201404280D0 (en) 2014-04-23
CN103858113A (zh) 2014-06-11
JP5736090B2 (ja) 2015-06-17
CN103858113B (zh) 2016-02-24
US20130097392A1 (en) 2013-04-18
WO2013054528A1 (en) 2013-04-18
GB2508553A (en) 2014-06-04
JP2014532201A (ja) 2014-12-04

Similar Documents

Publication Publication Date Title
DE112012003988B4 (de) Schützen des Arbeitsspeichers eines virtuellen Gasts
DE112005001739B4 (de) Nachverfolgung geschützter Speicherbereiche zur Beschleunigung von Antivirusprogrammen
DE102011103218B4 (de) Systeme, Verfahren und Vorrichtung zum Virtualisieren von TPM- Zugriffen
DE102018123710A1 (de) Kryptografische Speicherinhaberschaftstabelle für eine sichere öffentliche Cloud
DE112015004555B4 (de) Verarbeiten eines Gast-Ereignisses in einem von einem Hypervisor gesteuerten System
US8782351B2 (en) Protecting memory of a virtual guest
EP2748753B1 (de) Verfahren und vorrichtung zur steuerung des zugriffs auf eine ressource in einer computervorrichtung
DE202014011092U1 (de) Sicherheitsarchitektur für virtuelle Maschinen
DE112007001321T5 (de) Ausführung eines Sichere-Umgebungs-Initialisierungsbefehls in einem Punkt-zu-Punkt-Verbindungssystem
DE112014000965T5 (de) Verarbeiten eines Gastereignisses in einem hypervisorgesteuerten System
DE102020125599A1 (de) Vertrauenswürdige lokale speicherverwaltung in einer virtualisierten gpu
US20120185661A1 (en) Domain based access control of physical memory space
DE102019126125A1 (de) System, vorrichtung und verfahren zum integritätsschutz von kunden-arbeitslasten in einer mehrkunden-datenverarbeitungsumgebung
DE102018115670A1 (de) Technologien für die Ausführung von nicht vertrauenswürdigem Code mit Prozessor-Sandbox-Unterstützung
DE112011104496T5 (de) Validieren von virtuellen Maschinen
DE112020000223B4 (de) Gemeinsame speichernutzung zwischen einer sicheren domäne und einer nicht sicheren entität
DE112020000280B4 (de) Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung
DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
DE112020000303T5 (de) Testen von speicherschutz-hardware in einer umgebung einer sicheren virtuellen maschine
US20120151552A1 (en) Domain-based isolation and access control on dynamic objects
DE112020000289T5 (de) Abfrage und überlassung von sicherem speicher
DE102022108625A1 (de) Mehrere physische anforderungsschnittstellen für sicherheitsprozessoren
DE112023000299T5 (de) Verwalten eindeutiger geheimnisse in verteilten systemen
US8819231B2 (en) Domain based management of partitions and resource groups
DE102023107060A1 (de) Vertrauliches computing unter verwendung von multi-instanziieren von parallelprozessoren

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: FINJAN BLUE, INC., EAST PALO ALTO, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, N.Y., US

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE PART GMBB, DE

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

R081 Change of applicant/patentee

Owner name: FINJAN BLUE LLC, WILMINGTON, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, N.Y., US

Owner name: FINJAN BLUE, INC., EAST PALO ALTO, US

Free format text: FORMER OWNER: INTERNATIONAL BUSINESS MACHINES CORPORATION, ARMONK, N.Y., US

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R081 Change of applicant/patentee

Owner name: FINJAN BLUE LLC, WILMINGTON, US

Free format text: FORMER OWNER: FINJAN BLUE, INC., EAST PALO ALTO, CALIF., US

R082 Change of representative

Representative=s name: RICHARDT PATENTANWAELTE PARTG MBB, DE

R020 Patent grant now final