DE10297273B4 - Verfahren zur Bereitstellung von Systemintegrität und Legacy-Umgebungsemulation - Google Patents
Verfahren zur Bereitstellung von Systemintegrität und Legacy-Umgebungsemulation Download PDFInfo
- Publication number
- DE10297273B4 DE10297273B4 DE10297273T DE10297273T DE10297273B4 DE 10297273 B4 DE10297273 B4 DE 10297273B4 DE 10297273 T DE10297273 T DE 10297273T DE 10297273 T DE10297273 T DE 10297273T DE 10297273 B4 DE10297273 B4 DE 10297273B4
- Authority
- DE
- Germany
- Prior art keywords
- virtual machine
- machine monitor
- legacy
- code
- environment
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
Verfahren
mit den folgenden Schritten:
Implementieren eines virtuellen Maschinenmonitors (420) auf einem Computersystem (400) mit einer Native-Umgebung, die in einem physikalischen Modus ausgeführt wird, wobei das Computersystem (400) ein Extensible Firmware-Interface (EFI) mit zumindest einem zusätzlichen Codemodul aufweist;
Emulieren von Legacy-Hardwarekomponenten, die nicht in der Native-Umgebung vorhanden sind, durch den virtuellen Maschinenmonitor (420), um das Booten eines Legacy-Betriebssystems zu unterstützen; und
vor dem Booten des Legacy Betriebssystems, Aufrufen der Signatur-Logik (421) des virtuellen Maschinenmonitors (420), um eine im Codemodul enthaltene Hash-Signatur gegen eine in einem sicheren Speicher (422) des Virtuellen Maschinenmonitors (420) gespeicherte Hash-Signatur zu validieren, um dem Legacy-Betriebssystem vor der Übernahme der Kontrolle durch eine Attestprotokollierung zu versichern, daß dem Code des Codemoduls vertraut werden kann.
Implementieren eines virtuellen Maschinenmonitors (420) auf einem Computersystem (400) mit einer Native-Umgebung, die in einem physikalischen Modus ausgeführt wird, wobei das Computersystem (400) ein Extensible Firmware-Interface (EFI) mit zumindest einem zusätzlichen Codemodul aufweist;
Emulieren von Legacy-Hardwarekomponenten, die nicht in der Native-Umgebung vorhanden sind, durch den virtuellen Maschinenmonitor (420), um das Booten eines Legacy-Betriebssystems zu unterstützen; und
vor dem Booten des Legacy Betriebssystems, Aufrufen der Signatur-Logik (421) des virtuellen Maschinenmonitors (420), um eine im Codemodul enthaltene Hash-Signatur gegen eine in einem sicheren Speicher (422) des Virtuellen Maschinenmonitors (420) gespeicherte Hash-Signatur zu validieren, um dem Legacy-Betriebssystem vor der Übernahme der Kontrolle durch eine Attestprotokollierung zu versichern, daß dem Code des Codemoduls vertraut werden kann.
Description
- Technisches Gebiet
- Die vorliegende Erfindung betrifft allgemein Datenverarbeitungssysteme mit erweiterbarer Firmware-Architektur und insbesondere die Verwendung eines virtuellen Maschinenüberwachers (VMM – Virtual Machine Monitor) zur Emulation von Legacy-Hardware und -Umgebung und zur Bereitstellung geschützter Speicherung und Ausführung in einem Datenverarbeitungssystem mit einer erweiterbaren Firmware-Architektur.
- Allgemeiner Stand der Technik
- Eine neuere Entwicklung in Computersystem-Firmware ist der Rahmen der erweiterbaren Firmware-Schnittstelle (EFI – Extensible Firmware Interface), wodurch Software-Vertreiber Betriebssystemprogramme entwickeln können, die mit vielfältigen Zentralverarbeitungseinheiten (CPUs) verwendet werden können. Es ist eine Anwendungs-Binärschnittstelle (ABI – Application Binary Interface) vorgesehen, die spezifiziert, wie Daten auf dem Stapel für einen gegebenen CPU-Typ weitergeleitet werden sollen. Durch Abstrahierung der Plattform liefert der Rahmen gegenüber Systemen, die Legacy-Architektur verwenden, viele Vorteile. Während dieses Konzept der Komponentenarchitektur voranschreitet, entsteht Systemarchitektur, die ABIS und Software-Abstraktion im Verlauf des gesamten Systeminitialisierungsprozesses verwendet. Dazu gehört nicht nur die CPU-Initialisierung, sondern auch die Chipsatz- und E/A-Geräteinitialisierung. Es wird ein Software-Rahmen bereitgestellt, der es mehreren Teilnehmern ermöglicht, kleine Codestücke zu schreiben, die abstrahieren, wie Teile des Chipsatzes oder des E/A-Komplexes arbeiten. In einem solchen Rahmen werden Produkte von verschiedenen Vertreibern miteinander arbeiten. Die Codestücke von jedem Vertreiber sind in Initialisierungsmodulen enthalten. Während einer Systeminitialisierungsphase (nach dem CPU-Rücksetzen, aber vor der Speicherinitialisierung) fertigt Kerninitialisierungscode die Initialisierungsmodule in einer sequenzierten Reihenfolge ab, um grundlegende Dienste bereitzustellen. Diese Initialisierungsphase initialisiert genug von dem System, um nachfolgende Phasen zu ermöglichen, wie zum Beispiel die Treiberausführungsphase, die für Initialisierungsprozesse verantwortlich ist, die algorithmisch komplexer sind, wie zum Beispiel das Skannen von E/A-Bussen, das Aufzählen von Betriebsmitteln und das Installieren von Treibern.
- Dieses Konzept des Ermöglichens von Beiträgen von Treibern und Anwendungen von mehreren Beteiligten führt zu mehreren Besorgnissen. Die von einem einzelnen Vertreiber bereitgestellte Sicherheit der System-Firmware ist implizit von dem Vertreiber. Die Integration von Codemodulen von verschiedenen Quellen gefährdet die Systemintegrität, da keine Vorkehrungen für eine Sandbox oder für eine Validierung des Codes bestehen. Die EFI-Plattform wird im physikalischen Modus ausgeführt. Die Ausführung im physikalischen Modus bedeutet, daß alle Adressen tatsächlichen Speicherstellen entsprechen. Obwohl die Ausführung im physikalischen Modus den OS-Ladevorrichtungen vollen Zugang zu allen Plattformbetriebsmitteln gibt, schließt sie auch die Verwendung von virtuellen Speicherseitentabellen und den von ihnen beim Vorboot bereitgestellten Schutz aus. Da Boot-Firmware vollen Maschinenzugang hat, können durch Zugang durch Treiber und Anwendungen heikle Datenstruktur und Code der Kern-EFI möglicherweise verfälscht werden. Techniken wie zum Beispiel Codesignierung zur Validierung der Quelle von Treibern und Anwendungen können keine Fehlerisolation garantieren, wenn der Systemzu stand durch falschen Code korrumpiert wurde.
- Eine andere Schwierigkeit ist Legacy-Codeunterstützung. Viele Jahre lang wurde Software so geschrieben, daß sie mit der PC/AT-Plattform kompatibel ist. Viele Legacy-Betriebssysteme und Options-ROMs erfordern Hardware/Software mit PC/AT-Speicherabbildung. Dieser Legacy-Code wird im Real Mode ausgeführt, der den Prozessor auf 1 Mb Speicher begrenzt und keine Speicherverwaltungs- oder Speicherschutzmerkmale bereitstellt.
-
US 478 70 31 offenbart ein System, bei dem der Prozessor einer Mehrzahl von Nutzern mehr als zwei Schutzringe zur Verfügung stellt, die eine Hierarchie von Schutzebenen definieren, die jeweils einem Betriebsmodus zugeordnet sind. Das System umfaßt des weiteren einen virtuellen Maschinenmonitor, der virtuelle Maschinen umfassend das tatsächliche Computersystem, bei dem der Prozessor in einem virtuellen Modus arbeitet, bereitstellt. Zwei oder mehr der Betriebsmodi des Prozessors im virtuellen Modus sind komprimiert, so daß sie als ein einzelner Modus in dem realen nicht virtuellen Modus behandelt werden, so daß (1) der am meisten privilegierte Betriebsmodus in dem realen Modus keinen entsprechenden virtuellen Betriebsmodus aufweist und der am meisten privilegierte Betriebsmodus im virtuellen Modus weniger privilegiert ist als der am meisten privilegierte Betriebsmodus im realen Modus, und (2) der am wenigsten privilegierte Betriebsmodus des virtuellen Modus zumindest so privilegiert ist, wie der am wenigsten privilegierte Betriebsmodus des realen Modus. - Der Artikel „Analysis of the Intel Pentium's ability to support a secure virtual machine monitor" von R. Scott et al. in Proceedings of the 9th Usenix Security Symposium, Denver, USA, August 2000, S. 129–144 offenbart einen virtuellen Maschinenmonitor, der verwendet werden kann, um Betriebssystem-Software auf eine andere Version aufzurüsten, ohne die Fähigkeit zu verlieren, das ältere „Legacy"-Betriebssystem und dessen Anwendungen laufen zu lassen. Die Legacy-Software kann auf einer virtuellen Maschine genau in der gleichen Weise laufen wie zuvor auf der realen Maschine, während die neue Version des Betriebssystems auf einer separaten virtuellen Maschine läuft.
- Aus der
WO 00/48061 A1 - Es ist die Aufgabe der vorliegenden Erfindung, ein Verfahren und ein Computersystem bereitzustellen, die einen sicheren Betrieb von Code-Modulen verschiedener Hersteller auf einem Computersystem mit einem virtuellen Maschinenmonitor zulassen.
- Diese Aufgabe wird gelöst durch ein Verfahren gemäß Anspruch 1 sowie ein Computersystem gemäß Anspruch 11.
- Vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen angegeben.
- Kurze Beschreibung der Zeichnungen
- Die vorliegende Erfindung wird beispielhaft veranschaulicht und soll nicht durch die Figuren der beigefügten Zeichnungen beschränkt werden, in denen gleiche Bezugszahlen ähnliche Elemente angeben. Es zeigen:
-
1 ein Diagramm eines beispielhaften Datenverarbeitungssystems100 zur Implementierung des VMM der vorliegenden Erfindung; -
2 Legacy-Emulation gemäß einer Ausführungsform der vorliegenden Erfindung; -
3 ein. Prozeßflußdiagramm des VMM-Betriebs für einen Sandbox-Betrieb eines Programms, dem nicht vertraut wird, gemäß einer Ausführungsform der vorliegenden Erfindung; und -
4 die Implementierung einer Sicherheitsanwendung durch Verwendung eines VMM gemäß einer Ausführungsform. - Ausführliche Beschreibung
- Die vorliegende Erfindung schafft in einer Ausführungsform Verfahren und Vorrichtungen zur Bereitstellung der Virtualisierung des Systemzustands zum Zweck des Ausführens von Legacy-Kompatibilitätscode oder des Schüt zens von Schlüsseldaten und Codebereichen zur Sicherheit.
- Ein VMM ist Simulatorsoftware, die ein effizientes Duplikat der ursprünglichen Machine, einschließlich aller CPU-Anweisungen und Systembetriebsmittel (z. B. Speicher und E/A-Geräte) liefert. Bei einer Ausführungsform wird mit dem VMM eine Vorboot-Sicherheits- und Integritätsrichtlinie für eine komponentenbasierende Architekturplattform durchgesetzt.
- Ein virtueller Maschinenüberwacher (VMM) dient zur Emulation von Legacy-Hardware und -Umgebung, um Legacy-Codeunterstützung bereitzustellen. Der VMM ermöglicht eine Emulation und Ausführung von vorgeblich privilegiertem Code (z. B. BIOS-Code), ohne daß dem Code bewußt ist, daß er emuliert wird.
- In der Treiberausführungsphase kann ein Treiber geladen werden, der einen VMM installiert. Legacy-Anwendungen (z. B. eine Legacy-OS-Ladevorrichtung) können dann in dem VMM ausgeführt werden. Bei einer Ausführungsform wird der VMM nur dann geladen, wenn eine Boot-Variable so gesetzt ist, daß sie angibt, daß ein Legacy-OS gebootet werden kann. Die Verwendung eines VMM kann beim Schutz von Speicher- und Systemstrukturen vor Anwendungsstörungen helfen. Der Anwendung kann Zugang zu einer Teilmenge der Systembetriebsmittel gegeben werden, und ein Zugriff auf Teile der Speicherabbildung, die nicht für Aktualisierungen gekennzeichnet sind, würde auf dem VMM einfangen (Programmunterbrechung). Ein VMM-Vorboot-Richtlinien-Agent kann dann den Zustand schützen und etwaige problematische Software entladen. Der VMM publiziert transparent eine Umgebung, die die Umgebung des physikalischen Modus zu sein scheint, aber vor illegalem Verhalten schützt; er kann sogar Speicher so abbilden, daß Software die Legacy-Speicherabbildung unterhalb einem Megabyte für Systeme sieht, die diesen physikalischen Adressenbereich tatsächlich nicht deko dieren. Diese Transparenz erhält die Kompatibilität mit Legacy-PC/AT-BIOS-Modulen, Options-ROMs, EFI-Treibern und Anwendungen aufrecht.
- Bei einer Ausführungsform virtualisiert die vorliegende Erfindung die gesamte PC/AT-Umgebung, um Unterstützung für Legacy-OSe und Legacy-Hardware, wie zum Beispiel die 82XX-Serie: Timer-Zähler, serieller Port und Master/Slawe-Interrupt-Steuerung, bereitzustellen. Die VM ermöglicht es einem System mit erweiterbarer Firmware-Architektur, Vorboot-Options-ROMS oder Laufzeitumgebungen, die nicht ihre nativen Schnittstellen verwenden, zu ermöglichen. Zum Beispiel emuliert die VM die PC/AT-Umgebung, wodurch Legacy-Options-ROM ausgeführt wird und seine E/A-Dienste bewirken kann. Der VMM übersetzt die Ergebnisse dann in eine native API. Das heißt, der VMM schließt die E/A in dem semantischen Äquivalent in der nativen Umgebung ein.
- Bei einer alternativen Ausführungsform kann ein VMM zum Emulieren einer nativen 32-Bit-/64-Bit-Umgebung verwendet werden, um einer Plattform, die im physikalischen Modus ausgeführt wird, geschützte Speicherung und geschützte Ausführung bereitzustellen. Die EFI-Systemarchitektur ermöglicht keine Seitentabellen und Nur-Lese-Kennzeichnungen für spezifizierte Seiten, da die OS-Ladevorrichtung möglicherweise die Seitentabellen für das Bootstrap des OS-Kerns verwendet. Die Verwendung des VMM gibt eine Möglichkeit, unter die OS-Ladevorrichtung zu kommen, um sicherheitsbezogene Informationen zu erzeugen und zu speichern, zu denen der größte Teil von Treiber- und Anwendungscode keinen Zugang hat.
-
1 ist ein Diagramm eines beispielhaften Datenverarbeitungssystems100 zur Implementierung des VMM der vorliegenden Erfindung. Die Virtualisierung des Systemzustands zum Zweck des Ausführens von Legacykompatiblem Code oder des Schützens von Schlüsseldaten und Codebereichen zur Sicherheit, die hier beschrieben wird, kann in dem Datenverarbeitungssystem100 implementiert und verwendet werden, das einen Vielzweckcomputer, einen tragbaren Computer oder ein anderes ähnliches Gerät darstellen kann. Die Komponenten des Datenverarbeitungssystems100 sind beispielhaft, wobei ein oder mehrere Komponenten weggelassen oder hinzugefügt werden können. Zum Beispiel können ein oder mehrere Speichergeräte für das Datenverarbeitungssystem100 verwendet werden. - Mit Bezug auf
1 enthält das Datenverarbeitungssystem100 eine Zentralverarbeitungseinheit102 und einen Signalprozessor103 , die über einen Bus101 an eine Display-Schaltung105 , Hauptspeicher104 , statischen Speicher106 und ein Massenspeichergerät107 angekoppelt sind. Das Datenverarbeitungssystem100 kann auch über den Bus101 an ein Display121 , ein Tasteneingabefeld122 , Cursor-Steuerung123 , ein Druckausgabegerät124 , Eingangs-/Ausgangs-(E/A-)Geräte125 und ein Audio-/Sprachgerät126 angekoppelt sein. - Der Bus
101 ist ein Standardsystembus zum Übermitteln von Informationen und Signalen. Die CPU102 und der Signalprozessor103 sind Verarbeitungseinheiten für das Datenverarbeitungssystem100 . Die CPU102 oder der Signalprozessor103 oder beides können verwendet werden, um Informationen und/oder Signale für das Datenverarbeitungssystem100 zu verarbeiten. Die CPU102 enthält eine Steuereinheit131 , eine Arithmetik-Logik-Einheit (ALU)132 und mehrere Register133 , mit denen Informationen und Signale verarbeitet werden. Der Signalprozessor103 kann auch ähnliche Komponenten wie die CPU102 enthalten. - Der Hauptspeicher
104 kann z. B. ein Direktzugriffsspeicher (RAM) oder ein anderes dynamisches Speichergerät zum Speichern von Informationen oder Anweisungen (Programmcode), die von der CPU102 oder dem Signalprozessor103 verwendet werden, sein. Der Hauptspeicher104 kann temporäre Variablen oder andere Zwischeninformationen während der Ausführung von Anweisungen durch die CPU102 oder den Signalprozessor103 speichern. Bei dem statischen Speicher106 kann es sich z. B. um einen Nurlesespeicher (ROM) und/oder um andere statische Speichergeräte zum Speichern von Informationen oder Anweisungen, die ebenfalls durch die CPU102 oder den Signalprozessor103 verwendet werden können, handeln. Das Massenspeichergerät107 kann z. B. ein Festplatten- oder Diskettenlaufwerk oder ein optisches Plattenlaufwerk zum Speichern von Informationen oder Anweisungen für das Datenverarbeitungssystem100 sein. - Das Display
121 kann zum Beispiel ein Kathodenstrahlröhren-(CRT-) oder Flüssigkristalldisplay (LCD) sein. Das Displaygerät121 zeigt einem Benutzer Informationen oder Graphiken an. Das Datenverarbeitungssystem100 kann über die Displayschaltung105 eine Schnittstelle mit dem Display121 aufweisen. Das Tasteneingabefeld122 ist ein alphanumerisches Eingabegerät mit einem Analog/Digital-Umsetzer. Bei der Cursor-Steuerung123 kann es sich z. B. um eine Maus, einen Trackball oder Cursorrichtungstasten zur Steuerung der Bewegung eines Objekts auf dem Display121 handeln. Das Druckausgabegerät124 kann zum Beispiel ein Laserdrucker zum Drucken von Informationen auf Papier, Film oder einem anderen ähnlichen Medium sein. An das Datenverarbeitungsystem100 kann eine Anzahl von Eingangs-/Ausgangsgeräten125 angekoppelt werden. Die Emulation einer Legacy-Umgebung zur Unterstützung von Legacy-Betriebssystemen und Legacy-Options-ROMS und die Emulation einer Umgebung des physikalischen Modus zur Bereitstellung geschützter Ausführung und Speicherung gemäß der vorliegenden Erfindung können durch in dem Datenverarbeitungssystem100 enthaltene Hardware und/oder Software implementiert werden. Zum Beispiel kann die CPU102 oder der Signalprozessor103 Code oder Anweisungen ausführen, die in einem maschinenlesbaren Medium, z. B. im Hauptspeicher104 , gespeichert sind. - Das maschinenlesbare Medium kann einen Mechanismus enthalten, der Informationen in einer durch eine Maschine, wie zum Beispiel ein Computer oder ein digitales Verarbeitungsgerät, lesbaren Form bereitstellt (d. h. speichert und/oder überträgt). Zum Beispiel kann ein maschinenlesbares Medium einen Nurlesespeicher (ROM), Direktzugriffsspeicher (RAM), Magnetplattenspeichermedien, optische Speichermedien, Flash-Speichergeräte enthalten. Der Code bzw. die Anweisungen können durch Trägerwellensignale, Infrarotsignale, Digitalsignale oder durch andere ähnliche Signale representiert werden.
-
2 zeigt die Legacy-Emulation gemäß einer Ausführungsform der vorliegenden Erfindung. In der Regel wird ein PC-Motherboard Legacy-8259-Interrupt-Steuerungen unterstützen, obwohl nur die Legacy-Options-ROMs ihre Existenz voraussetzen; moderne Betriebssysteme verwenden APIC(LA32) oder SAPIC(IPF) für ihre Interrupt-Unterstützung, sodaß die Motherboard-Hardware, wie z. B. gepaarte 8259s, während einiger weniger Sekunden des Maschinen-Boot benutzbar bleiben. - Das in
2 gezeigte System200 enthält einen EFI-Kern205 , ein Legacy-Ausführungsbild210 , EFI-Treiber215 und den VMM220 . Das Legacy-Ausführungsbild210 kann ein Vorboot-Options-ROM oder eine Laufzeitumgebung sein, der bzw. die die nativen EFI-Schnittstellen nicht verwendet. Bei einem Schreiben in eine Legacy-8259-Interrupt-Steuerbasis aus dem Legacy-Ausführungsbild210 wird die Anweisung zum Beispiel auf dem VMM220 eingefangen. Der VMM220 kann jede beliebige Anweisung einfangen, die den Systemzustand (z. B. Interrupt-Flag) berührt oder den Schutz ändert. Wenn das System im Legacy-Modus ausgeführt wird, bildet der VMM220 den Zugang auf die Legacy-Interrupt-(PIC-)Maske auf das zugeordnete native Interruptsteuerregister ab. Zum Beispiel kann das System versuchen, auf nicht vorhandene Legacy- Hardware zuzugreifen. Der VMM kann die E/A in das semantische äquivalent in der nativen Umgebung einschließen. An diesem Punkt kann einer der EFI-Treiber215 mit dem relevanten Chipsatzregister kommunizieren und das Ergebnis der virtuellen Maschine zuführen. Dadurch wird ein Migrationsweg von der Legacy-Umgebung bereitgestellt. - Ein VMM kann zur Bereitstellung von Vorboot-Sicherheit durch Sandbox-Betrieb von Programmen in bezug auf Dritte verwendet werden. Das Betreiben eines Programms im Sandbox-Modus verhindert, daß das Programm Zugang zu dem Rest des Systems hat. Dem Code kann vertraut werden, da er dem Rest des Systems nicht schaden kann. Der Anwendung kann Zugang zu einer Teilmenge der Systembetriebsmittel gegeben werden, und Zugriff auf Teile der Speicherabbildung, die nicht für Aktualisierungen gekennzeichnet sind, würden auf dem VMM einschließen. Ein VMM-Vorboot-Richtlinien-Agent kann dann den Zustand schützen und problematische Software entladen.
-
3 ist ein Prozeßflußdiagramm des VMM-Betriebs für einen Sandbox-Betrieb eines Programms, dem nicht vertraut wird, gemaß einer Ausführungsform der vorliegenden Erfindung. Der in3 gezeigte Prozeß300 beginnt mit der Operation305 , in der ein Programm, dem nicht vertraut wird, einen illegalen Schreibzugriff versucht. In der Operation310 wird die Anweisung auf dem VMM eingeschlossen. Wenn das Programm durch EFI-Kerncode gestartet wird und wenn das Programm Zugang zu den EFI-Kerndatenstrukturen hat, dann ist der Zugang legal. Andernfalls wird der Zugang in der Operation320 verwehrt und die Steuerung an den Kern zurückgegeben. - Bei einer Ausführungsform kann der VMM den Zustand, den aus Adapterkarten und über Treiber Dritter eingeführter Code verfälschen könnte, im Sandbox-Verfahren behandeln. Der kleine Codegrundumfang einer solchen Softwaretechnik ist für kostenempfindliche, auf Flash- Speicher basierende Systeme vorteilhaft.
- Der VMM wird im privilegierten Modus ausgeführt und emuliert den privilegierten Modus zur Ausführung der EFI-Umgebung bis zu dem OS-Ladevorgang. Da der VMM diesen weniger privilegierten Code abstrahiert, kann der VMM Teile des Adressenraums verbergen. Die geschützte Speicherung und Ausführung, die das Virtualisieren des geschützten Modus ermöglicht, wird Teil der Sicherheitsinfrastruktur.
-
4 zeigt die Implementierung einer Sicherheitsanwendung durch Verwendung eines VMM gemäß einer Ausführungsform der vorliegenden Erfindung. Das in4 gezeigte System400 enthält einen Vorboot-Authentisierungstreiber405 , der ein Modul410 auswertet. Das Modul410 kann eine digitale Signatur von dem Vertreiber enthalten. Die Signatur kann eine MD5- oder eine SHA-1-Signatur sein. Der Vorboot-Authentisierungstreiber405 kann einen Eintrittspunkt in die Signaturlogik421 des VMM420 aufrufen, um die Signatur zu validieren. Der VMM420 stellt sichere Speicherung422 bereit, die die Signaturen gültiger Treiber und Module in einer Attest-Protokollierung enthalten kann. Die Attest-Protokollierung kann die Signaturen von Code enthalten, den das System geladen hat. In diesem Fall validiert der VMM den Code, d. h. die Plattform attestiert, den Code ablaufengelassen zu haben. Dadurch wird dem OS vor der Übernahme der Kontrolle versichert, daß dem Code vertraut werden kann. - Somit liefert der VMM Vorboot-Sicherheit (d. h. die APIs und den Rahmen) zur Implementierung einer Plattform, der vertraut wird, bis einschließlich zum OS-Laden. An diesem Punkt kann die OS-Ladevorrichtung ihre eigene Sicherheit bereitstellen.
- In der obigen Spezifikation wurde die Erfindung mit Bezug auf spezifische Ausführungsbeispiele beschrieben.
- Es versteht sich jedoch, daß verschiedene Modifikationen und Änderungen daran vorgenommen werden können, ohne von dem allgemeineren Gedanken und Schutzumfang der Erfindung abzuweichen, die in den angefügten Ansprüchen definiert wird. Die Spezifikation und Zeichnungen sollen folglich nicht im einschränkenden, sondern im veranschaulichenden Sinne betrachtet werden.
Claims (14)
- Verfahren mit den folgenden Schritten: Implementieren eines virtuellen Maschinenmonitors (
420 ) auf einem Computersystem (400 ) mit einer Native-Umgebung, die in einem physikalischen Modus ausgeführt wird, wobei das Computersystem (400 ) ein Extensible Firmware-Interface (EFI) mit zumindest einem zusätzlichen Codemodul aufweist; Emulieren von Legacy-Hardwarekomponenten, die nicht in der Native-Umgebung vorhanden sind, durch den virtuellen Maschinenmonitor (420 ), um das Booten eines Legacy-Betriebssystems zu unterstützen; und vor dem Booten des Legacy Betriebssystems, Aufrufen der Signatur-Logik (421 ) des virtuellen Maschinenmonitors (420 ), um eine im Codemodul enthaltene Hash-Signatur gegen eine in einem sicheren Speicher (422 ) des Virtuellen Maschinenmonitors (420 ) gespeicherte Hash-Signatur zu validieren, um dem Legacy-Betriebssystem vor der Übernahme der Kontrolle durch eine Attestprotokollierung zu versichern, daß dem Code des Codemoduls vertraut werden kann. - Verfahren nach Anspruch 1, wobei die Native-Umgebung eine 32-Bit-Umgebung oder eine 64-Bit-Umgebung umfaßt.
- Verfahren nach Anspruch 2, wobei der virtuelle Maschinenmonitor (
420 ) zumindest eine PC-AT-Hardwareemulation oder eine PC/AT-Umgebungsemulation bereitstellt. - Verfahren nach Anspruch 1, wobei das Verfahren des weiteren den folgenden Schritt umfaßt: Publizieren einer Umgebung, die die Umgebung des physikalischen Modus zu sein scheint für Softwareeinheiten, die auf dem virtuellen Maschinenmonitor (
420 ) ablaufen, wobei die Umgebung des physikalischen Modus eine Speicherabbildung umfaßt, die Speicheradressen unter einem Megabyte umfaßt, wobei der virtuelle Maschinenmonitor (420 ) in einem Computersystem (400 ) implementiert ist, das keine physikalischen Adressen unter einem Megabyte dekodiert. - Verfahren nach einem der vorhergehenden Ansprüche, wobei der virtuelle Maschinenmonitor (
420 ) den weiteren Schritt eines Verbergens eines Teils eines Adressenraums für das Computersystem (400 ) umfaßt. - Verfahren nach einem der vorhergehenden, wobei das Verfahren des weiteren die folgenden Schritte umfaßt: Freigeben eines Legacy-Option-ROM, so daß er ausgeführt wird und seine Eingabe/Ausgabe-Dienste bewirken kann; und Übersetzen der Ergebnisse der Eingabe/Ausgabedienste in eine Native-Anwendungsprogrammschnittstelle.
- Verfahren nach einem der vorhergehenden Ansprüche, welches des weiteren umfaßt: Entladen eines Codemoduls, das versucht auf eine zugangsbeschränkte Systemressource oder einen beschränkten Teil der Speicherabbildung zuzugreifen.
- Verfahren nach einem der vorhergehenden Ansprüche, wobei ein Authentisieren über den virtuellen Maschinenmonitor (
420 ) des zumindest einen Codemoduls, das während der Vor-Boot-Phase geladen wurde, des weiteren umfaßt: Führen eines Attest-Protokolls über den virtuellen Maschinenmonitor (420 ), das Codemodule identifiziert, die durch die Signatur-Logik geladen und authentisiert wurden. - Datenträger, auf dem eine maschinenlesbare Firmware gespeichert ist, die ein Verfahren gemäß einem der vorhergehenden Ansprüche ausführt, wenn sie in einem Computer abgearbeitet wird.
- Datenträger nach Anspruch 9, wobei eine Ausführung des Verfahrens die Ausführung weiterer Schritte bewirkt, welche umfassen: Ausführen von nicht vertrauenswürdigem Firmware-Modul-Code auf dem virtuellen Maschinenmonitor (
420 ) in einem Sandbox-Mode, so daß der Code daran gehindert wird, dem Computersystem (400 ) zu schaden. - Computersystem (
400 ) mit einer Native-Ausführungsumgebung, die im physikalischen Modus ausgeführt wird, a) wobei das Computersystem (400 ) ein Extensible Firmware-Interface (EFI) mit zumindest einem zusätzlichen Codemodul aufweist, b) wobei die Native-Ausführungsumgebung weiter einen Virtuellen Maschinenmonitor (420 ) aufweist zur Emulation von Legacy-Hardwarekomponenten, die in der Native-Umgebung nicht vorhanden sind, um das Booten eines Legacy-Betriebssystems zu unterstützen, c) wobei der virtuelle Maschinenmonitor (420 ) eine Signatur-Logik (421 ) und einen sicheren Speicher (422 ) umfaßt, d) wobei der sichere Speicher Hash-Signaturen von Codemodulen enthält; e) wobei vor dem Booten des Legacy Betriebssystems die Signatur-Logik (421 ) aufgerufen wird, um eine im Codemodul enthaltene Hash-Signatur gegen eine im sicheren Speicher (422 ) gespeicherte Hash-Signatur zu validieren, um dem Legacy-Betriebssystem vor der Übernahme der Kontrolle durch eine Attestprotokollierung zu versichern, daß dem Code des Codemoduls vertraut werden kann. - Computersystem (
400 ) nach Anspruch 11, welches des weiteren umfaßt: Einen Vor-Boot-Authentisierungstreiber (405 ), der einen Eintrittspunkt in die Signaturlogik (421 ) aufruft, um das Codemodul zu evaluieren. - Computersystem (
400 ) nach Anspruch 11 oder 12, wobei der virtuelle Maschinenmonitor (420 ) zumindest eine PC-AT-Hardwareemulation oder eine PC/AT-Umgebungsemulation bereitstellt. - Computersystem (
400 ) nach einem der Ansprüche 11 bis 13, wobei der virtuelle Maschinenmonitor (420 ) weitere Schritte ausführt, welche umfassen: Freigeben eines Legacy-Option-ROMs, so daß dieser seine Eingabe/Ausgabe-Dienste ausführt und bewirkt; Einfangen von Aufrufen von Legacy-Interrupts durch den virtuellen Maschinenmonitor (420 ), und Abbilden der Aufrufe von Legacy-Interrupts auf entsprechende Interrupts der Native-Umgebung durch den virtuellen Maschinenmonitor (420 ).
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/966,015 US7103529B2 (en) | 2001-09-27 | 2001-09-27 | Method for providing system integrity and legacy environment emulation |
US09/966015 | 2001-09-27 | ||
PCT/US2002/031156 WO2003027835A2 (en) | 2001-09-27 | 2002-09-27 | A method for providing system integrity and legacy environment emulation |
Publications (2)
Publication Number | Publication Date |
---|---|
DE10297273T5 DE10297273T5 (de) | 2004-09-16 |
DE10297273B4 true DE10297273B4 (de) | 2008-08-21 |
Family
ID=25510821
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE10297273T Expired - Fee Related DE10297273B4 (de) | 2001-09-27 | 2002-09-27 | Verfahren zur Bereitstellung von Systemintegrität und Legacy-Umgebungsemulation |
Country Status (8)
Country | Link |
---|---|
US (1) | US7103529B2 (de) |
JP (1) | JP2005528665A (de) |
KR (1) | KR100692346B1 (de) |
CN (1) | CN100533385C (de) |
AU (1) | AU2002343467A1 (de) |
DE (1) | DE10297273B4 (de) |
GB (1) | GB2397415A (de) |
WO (1) | WO2003027835A2 (de) |
Families Citing this family (108)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174463B2 (en) * | 2001-10-04 | 2007-02-06 | Lenovo (Singapore) Pte. Ltd. | Method and system for preboot user authentication |
US7631196B2 (en) * | 2002-02-25 | 2009-12-08 | Intel Corporation | Method and apparatus for loading a trustable operating system |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7974416B2 (en) | 2002-11-27 | 2011-07-05 | Intel Corporation | Providing a secure execution mode in a pre-boot environment |
US20040128493A1 (en) * | 2002-12-27 | 2004-07-01 | Zimmer Vincent J. | Methods and apparatus for providing a firmware defined radio |
US7181723B2 (en) * | 2003-05-27 | 2007-02-20 | Intel Corporation | Methods and apparatus for stride profiling a software application |
US7380136B2 (en) * | 2003-06-25 | 2008-05-27 | Intel Corp. | Methods and apparatus for secure collection and display of user interface information in a pre-boot environment |
US7434231B2 (en) * | 2003-06-27 | 2008-10-07 | Intel Corporation | Methods and apparatus to protect a protocol interface |
US7328340B2 (en) * | 2003-06-27 | 2008-02-05 | Intel Corporation | Methods and apparatus to provide secure firmware storage and service access |
US7370324B2 (en) * | 2003-09-30 | 2008-05-06 | Intel Corporation | Switching between a service virtual machine and a guest virtual machine in a virtual machine monitor environment |
US7496961B2 (en) * | 2003-10-15 | 2009-02-24 | Intel Corporation | Methods and apparatus to provide network traffic support and physical security support |
US7516331B2 (en) * | 2003-11-26 | 2009-04-07 | International Business Machines Corporation | Tamper-resistant trusted java virtual machine and method of using the same |
US20050132022A1 (en) * | 2003-12-12 | 2005-06-16 | International Business Machines Corporation | Computer system with LAN-based I/O |
US7558723B2 (en) * | 2003-12-12 | 2009-07-07 | Microsoft Corporation | Systems and methods for bimodal device virtualization of actual and idealized hardware-based devices |
US8037314B2 (en) | 2003-12-22 | 2011-10-11 | Intel Corporation | Replacing blinded authentication authority |
US7437613B2 (en) * | 2004-01-30 | 2008-10-14 | Intel Corporation | Protecting an operating system kernel from third party drivers |
JP2005229270A (ja) * | 2004-02-12 | 2005-08-25 | Ricoh Co Ltd | 画像形成装置、インタフェース方法 |
JP2005346182A (ja) * | 2004-05-31 | 2005-12-15 | Fujitsu Ltd | 情報処理装置、耐タンパ方法、耐タンパプログラム |
US7908653B2 (en) * | 2004-06-29 | 2011-03-15 | Intel Corporation | Method of improving computer security through sandboxing |
US20060005190A1 (en) * | 2004-06-30 | 2006-01-05 | Microsoft Corporation | Systems and methods for implementing an operating system in a virtual machine environment |
US7571090B2 (en) * | 2004-09-30 | 2009-08-04 | Intel Corporation | Emulating a host architecture in guest firmware |
US7793350B2 (en) * | 2004-10-28 | 2010-09-07 | International Business Machines Corporation | Apparatus, system, and method for simulated access to restricted computing resources |
JP4664055B2 (ja) * | 2004-12-10 | 2011-04-06 | 株式会社エヌ・ティ・ティ・ドコモ | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 |
US20060143417A1 (en) * | 2004-12-23 | 2006-06-29 | David Poisner | Mechanism for restricting access of critical disk blocks |
US8181020B2 (en) * | 2005-02-02 | 2012-05-15 | Insyde Software Corp. | System and method for securely storing firmware |
US20060195693A1 (en) * | 2005-02-28 | 2006-08-31 | Intel Corporation | Specter rendering |
US20060242351A1 (en) * | 2005-04-20 | 2006-10-26 | Kavian Nasrollah A | Method and apparatus for loading instructions into high memory |
US7496495B2 (en) * | 2005-05-12 | 2009-02-24 | Microsoft Corporation | Virtual operating system device communication relying on memory access violations |
US20070006178A1 (en) * | 2005-05-12 | 2007-01-04 | Microsoft Corporation | Function-level just-in-time translation engine with multiple pass optimization |
US20070130114A1 (en) * | 2005-06-20 | 2007-06-07 | Xiao-Feng Li | Methods and apparatus to optimize processing throughput of data structures in programs |
US8839450B2 (en) | 2007-08-02 | 2014-09-16 | Intel Corporation | Secure vault service for software components within an execution environment |
US8856473B2 (en) * | 2005-07-01 | 2014-10-07 | Red Hat, Inc. | Computer system protection based on virtualization |
US7363457B1 (en) | 2005-07-21 | 2008-04-22 | Sun Microsystems, Inc. | Method and system for providing virtualization data services for legacy storage devices |
CN100419681C (zh) * | 2005-09-22 | 2008-09-17 | 联想(北京)有限公司 | 一种网络复制系统与方法 |
US8656487B2 (en) * | 2005-09-23 | 2014-02-18 | Intel Corporation | System and method for filtering write requests to selected output ports |
EP1967981A4 (de) * | 2005-12-27 | 2009-04-22 | Nec Corp | Programmausführungs-steuerverfahren, einrichtung und ausführungssteuerprogramm |
US8719816B2 (en) * | 2006-03-14 | 2014-05-06 | University Of Utah Research Foundation | Extendable framework for distributed applications and data |
US7725305B2 (en) * | 2006-06-08 | 2010-05-25 | Microsoft Corporation | Partial virtualization on computing device |
US7721080B2 (en) * | 2006-06-30 | 2010-05-18 | Intel Corporation | Management of option ROM |
US8341747B2 (en) * | 2006-08-08 | 2012-12-25 | International Business Machines Corporation | Method to provide a secure virtual machine launcher |
US7673126B2 (en) * | 2006-09-19 | 2010-03-02 | Intel Corporation | Methods and apparatus to self-initialize a processor |
US7689817B2 (en) * | 2006-11-16 | 2010-03-30 | Intel Corporation | Methods and apparatus for defeating malware |
US7533207B2 (en) * | 2006-12-06 | 2009-05-12 | Microsoft Corporation | Optimized interrupt delivery in a virtualized environment |
US8776041B2 (en) * | 2007-02-05 | 2014-07-08 | Microsoft Corporation | Updating a virtual machine monitor from a guest partition |
US7769993B2 (en) * | 2007-03-09 | 2010-08-03 | Microsoft Corporation | Method for ensuring boot source integrity of a computing system |
US8904552B2 (en) * | 2007-04-17 | 2014-12-02 | Samsung Electronics Co., Ltd. | System and method for protecting data information stored in storage |
JP2008287505A (ja) * | 2007-05-17 | 2008-11-27 | Toshiba Corp | 情報処理装置およびレガシーエミュレーション処理停止制御方法 |
AU2008281314A1 (en) * | 2007-07-30 | 2009-02-05 | Michael Kefaloukos | A computer-implemented security method and system |
US7827371B2 (en) * | 2007-08-30 | 2010-11-02 | Intel Corporation | Method for isolating third party pre-boot firmware from trusted pre-boot firmware |
US20090119748A1 (en) * | 2007-08-30 | 2009-05-07 | Jiewen Yao | System management mode isolation in firmware |
US8127296B2 (en) * | 2007-09-06 | 2012-02-28 | Dell Products L.P. | Virtual machine migration between processors having VM migration registers controlled by firmware to modify the reporting of common processor feature sets to support the migration |
US8522236B2 (en) * | 2007-12-28 | 2013-08-27 | Intel Corporation | Method and system for establishing a robust virtualized environment |
US8745337B2 (en) * | 2007-12-31 | 2014-06-03 | Teradyne, Inc. | Apparatus and method for controlling memory overrun |
JP5048526B2 (ja) * | 2008-01-10 | 2012-10-17 | 株式会社日立製作所 | 計算機システム及びその計算機システムへのレガシーブート方法 |
US8769702B2 (en) | 2008-04-16 | 2014-07-01 | Micosoft Corporation | Application reputation service |
US8327415B2 (en) * | 2008-05-30 | 2012-12-04 | Intel Corporation | Enabling byte-code based image isolation |
US8201239B2 (en) * | 2008-06-23 | 2012-06-12 | Intel Corporation | Extensible pre-boot authentication |
US8909940B2 (en) * | 2008-06-23 | 2014-12-09 | Intel Corporation | Extensible pre-boot authentication |
TW201005535A (en) * | 2008-07-17 | 2010-02-01 | Ind Tech Res Inst | Electronic apparatus and method for managing a plugged device |
CN101373441B (zh) * | 2008-09-19 | 2012-04-18 | 苏州壹世通科技有限公司 | 一种基于固件的虚拟化平台系统 |
US8041794B2 (en) * | 2008-09-29 | 2011-10-18 | Intel Corporation | Platform discovery, asset inventory, configuration, and provisioning in a pre-boot environment using web services |
US8086839B2 (en) * | 2008-12-30 | 2011-12-27 | Intel Corporation | Authentication for resume boot path |
US20100211769A1 (en) * | 2009-02-19 | 2010-08-19 | Subramonian Shankar | Concurrent Execution of a Smartphone Operating System and a Desktop Operating System |
CN101777002B (zh) * | 2010-01-18 | 2012-12-19 | 杭州宇酷信息技术有限公司 | 一种基于虚拟化的软件运行方法 |
US8522066B2 (en) | 2010-06-25 | 2013-08-27 | Intel Corporation | Providing silicon integrated code for a system |
US8312258B2 (en) | 2010-07-22 | 2012-11-13 | Intel Corporation | Providing platform independent memory logic |
US8539245B2 (en) | 2010-08-06 | 2013-09-17 | Intel Corporation | Apparatus and method for accessing a secure partition in non-volatile storage by a host system enabled after the system exits a first instance of a secure mode |
US8386618B2 (en) | 2010-09-24 | 2013-02-26 | Intel Corporation | System and method for facilitating wireless communication during a pre-boot phase of a computing device |
US20120166172A1 (en) * | 2010-12-23 | 2012-06-28 | Fleming Bruce L | Providing legacy computing compatibility |
US9087196B2 (en) * | 2010-12-24 | 2015-07-21 | Intel Corporation | Secure application attestation using dynamic measurement kernels |
WO2012102725A1 (en) * | 2011-01-28 | 2012-08-02 | Hewlett-Packard Development Company, L.P. | Authenticate a hypervisor with encoded information |
US8549644B2 (en) * | 2011-03-28 | 2013-10-01 | Mcafee, Inc. | Systems and method for regulating software access to security-sensitive processor resources |
US8863283B2 (en) | 2011-03-31 | 2014-10-14 | Mcafee, Inc. | System and method for securing access to system calls |
US9317690B2 (en) | 2011-03-28 | 2016-04-19 | Mcafee, Inc. | System and method for firmware based anti-malware security |
US8959638B2 (en) | 2011-03-29 | 2015-02-17 | Mcafee, Inc. | System and method for below-operating system trapping and securing of interdriver communication |
US9087199B2 (en) | 2011-03-31 | 2015-07-21 | Mcafee, Inc. | System and method for providing a secured operating system execution environment |
US9262246B2 (en) | 2011-03-31 | 2016-02-16 | Mcafee, Inc. | System and method for securing memory and storage of an electronic device with a below-operating system security agent |
US8966624B2 (en) | 2011-03-31 | 2015-02-24 | Mcafee, Inc. | System and method for securing an input/output path of an application against malware with a below-operating system security agent |
US8925089B2 (en) | 2011-03-29 | 2014-12-30 | Mcafee, Inc. | System and method for below-operating system modification of malicious code on an electronic device |
US8813227B2 (en) | 2011-03-29 | 2014-08-19 | Mcafee, Inc. | System and method for below-operating system regulation and control of self-modifying code |
US9032525B2 (en) | 2011-03-29 | 2015-05-12 | Mcafee, Inc. | System and method for below-operating system trapping of driver filter attachment |
US8966629B2 (en) | 2011-03-31 | 2015-02-24 | Mcafee, Inc. | System and method for below-operating system trapping of driver loading and unloading |
US9038176B2 (en) | 2011-03-31 | 2015-05-19 | Mcafee, Inc. | System and method for below-operating system trapping and securing loading of code into memory |
CN102231116A (zh) * | 2011-07-04 | 2011-11-02 | 成都市华为赛门铁克科技有限公司 | 应用程序虚拟化安装及加载方法及装置 |
US8578378B2 (en) * | 2011-07-28 | 2013-11-05 | Intel Corporation | Facilitating compatible interaction, at least in part |
JP5779281B2 (ja) * | 2011-09-30 | 2015-09-16 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | コンピュータシステムにおける仮想化装置の制御 |
US8782351B2 (en) * | 2011-10-13 | 2014-07-15 | International Business Machines Corporation | Protecting memory of a virtual guest |
US8788763B2 (en) * | 2011-10-13 | 2014-07-22 | International Business Machines Corporation | Protecting memory of a virtual guest |
US20130117006A1 (en) * | 2011-11-07 | 2013-05-09 | Microsoft Corporation | Simulated boot process to detect introduction of unauthorized information |
SG189388A1 (en) * | 2011-11-16 | 2013-05-31 | V Key Inc | Cryptographic system and methodology for securing software cryptography |
RU2472215C1 (ru) * | 2011-12-28 | 2013-01-10 | Закрытое акционерное общество "Лаборатория Касперского" | Способ выявления неизвестных программ с использованием эмуляции процесса загрузки |
WO2013101081A1 (en) | 2011-12-29 | 2013-07-04 | Intel Corporation | Methods and apparatus for trusted boot optimization |
WO2013147825A1 (en) | 2012-03-30 | 2013-10-03 | Intel Corporation | Providing an immutable antivirus payload for internet ready compute nodes |
US8918879B1 (en) * | 2012-05-14 | 2014-12-23 | Trend Micro Inc. | Operating system bootstrap failure detection |
US9900157B2 (en) * | 2012-08-16 | 2018-02-20 | Digicert, Inc. | Object signing within a cloud-based architecture |
US9230081B2 (en) | 2013-03-05 | 2016-01-05 | Intel Corporation | User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system |
US9396011B2 (en) * | 2013-03-12 | 2016-07-19 | Qualcomm Incorporated | Algorithm and apparatus to deploy virtual machine monitor on demand |
CN104133752B (zh) * | 2013-06-25 | 2015-07-29 | 腾讯科技(深圳)有限公司 | 操作平台的监控方法和装置 |
WO2014209322A1 (en) | 2013-06-27 | 2014-12-31 | Intel Corporation | Continuous multi-factor authentication |
US9411975B2 (en) | 2014-03-31 | 2016-08-09 | Intel Corporation | Methods and apparatus to securely share data |
US9652276B2 (en) * | 2014-09-17 | 2017-05-16 | International Business Machines Corporation | Hypervisor and virtual machine protection |
US10073964B2 (en) | 2015-09-25 | 2018-09-11 | Intel Corporation | Secure authentication protocol systems and methods |
US9449189B1 (en) | 2015-11-03 | 2016-09-20 | International Business Machines Corporation | Protection of state data in computer system code |
US10019279B2 (en) * | 2015-12-17 | 2018-07-10 | International Business Machines Corporation | Transparent secure interception handling |
ES2827790T3 (es) | 2017-08-21 | 2021-05-24 | Carrier Corp | Sistema antiincendios y de seguridad que incluye bucle accesible por dirección y mejora automática de firmware |
CN110134443A (zh) * | 2018-02-08 | 2019-08-16 | 联想企业解决方案(新加坡)有限公司 | 在计算设备中执行附件的选项rom的方法和设备 |
US11238160B2 (en) * | 2018-09-28 | 2022-02-01 | Apple Inc. | Boot firmware sandboxing |
KR20210112923A (ko) | 2020-03-06 | 2021-09-15 | 삼성전자주식회사 | 시스템 온 칩 및 이의 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4787031A (en) * | 1985-01-04 | 1988-11-22 | Digital Equipment Corporation | Computer with virtual machine mode and multiple protection rings |
WO2000048061A1 (en) * | 1999-02-15 | 2000-08-17 | Hewlett-Packard Company | Protection of the configuration of modules in computing apparatus |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS55112651A (en) * | 1979-02-21 | 1980-08-30 | Fujitsu Ltd | Virtual computer system |
JPS6095648A (ja) * | 1983-10-28 | 1985-05-29 | Fujitsu Ltd | 仮想fba擬似処理装置 |
JPS6278642A (ja) * | 1985-10-01 | 1987-04-10 | Hitachi Ltd | メモリ管理ユニツト制御方式 |
JP2708608B2 (ja) * | 1990-05-25 | 1998-02-04 | 富士通株式会社 | 仮想計算機のipl処理方式 |
US5437033A (en) * | 1990-11-16 | 1995-07-25 | Hitachi, Ltd. | System for recovery from a virtual machine monitor failure with a continuous guest dispatched to a nonguest mode |
US5522075A (en) * | 1991-06-28 | 1996-05-28 | Digital Equipment Corporation | Protection ring extension for computers having distinct virtual machine monitor and virtual machine address spaces |
US5721922A (en) * | 1994-10-13 | 1998-02-24 | Intel Corporation | Embedding a real-time multi-tasking kernel in a non-real-time operating system |
US5844986A (en) * | 1996-09-30 | 1998-12-01 | Intel Corporation | Secure BIOS |
GB9626241D0 (en) * | 1996-12-18 | 1997-02-05 | Ncr Int Inc | Secure data processing method and system |
EP0948769A1 (de) * | 1996-12-30 | 1999-10-13 | Cirrus Logic, Inc | Echtzeitsdiensten in rüchwärts-kompatibel betriebssystemen |
WO1998036517A1 (en) * | 1997-02-13 | 1998-08-20 | Jpc, Inc. | Security coprocessor for enhancing computer system security |
US6075938A (en) | 1997-06-10 | 2000-06-13 | The Board Of Trustees Of The Leland Stanford Junior University | Virtual machine monitors for scalable multiprocessors |
US6175924B1 (en) * | 1997-06-20 | 2001-01-16 | International Business Machines Corp. | Method and apparatus for protecting application data in secure storage areas |
US6321323B1 (en) * | 1997-06-27 | 2001-11-20 | Sun Microsystems, Inc. | System and method for executing platform-independent code on a co-processor |
US6199181B1 (en) * | 1997-09-09 | 2001-03-06 | Perfecto Technologies Ltd. | Method and system for maintaining restricted operating environments for application programs or operating systems |
JPH11215120A (ja) * | 1998-01-27 | 1999-08-06 | Fujitsu Ltd | 通信装置 |
US6496847B1 (en) * | 1998-05-15 | 2002-12-17 | Vmware, Inc. | System and method for virtualizing computer systems |
US6397242B1 (en) * | 1998-05-15 | 2002-05-28 | Vmware, Inc. | Virtualization system including a virtual machine monitor for a computer with a segmented architecture |
US6609199B1 (en) * | 1998-10-26 | 2003-08-19 | Microsoft Corporation | Method and apparatus for authenticating an open system application to a portable IC device |
US6986137B1 (en) * | 1999-09-28 | 2006-01-10 | International Business Machines Corporation | Method, system and program products for managing logical processors of a computing environment |
US7035963B2 (en) * | 2000-12-27 | 2006-04-25 | Intel Corporation | Method for resolving address space conflicts between a virtual machine monitor and a guest operating system |
US7818808B1 (en) | 2000-12-27 | 2010-10-19 | Intel Corporation | Processor mode for limiting the operation of guest software running on a virtual machine supported by a virtual machine monitor |
US7272831B2 (en) * | 2001-03-30 | 2007-09-18 | Intel Corporation | Method and apparatus for constructing host processor soft devices independent of the host processor operating system |
US7487330B2 (en) * | 2001-05-02 | 2009-02-03 | International Business Machines Corporations | Method and apparatus for transferring control in a computer system with dynamic compilation capability |
US6922774B2 (en) * | 2001-05-14 | 2005-07-26 | The United States Of America As Represented By The National Security Agency | Device for and method of secure computing using virtual machines |
-
2001
- 2001-09-27 US US09/966,015 patent/US7103529B2/en not_active Expired - Fee Related
-
2002
- 2002-09-27 WO PCT/US2002/031156 patent/WO2003027835A2/en active Application Filing
- 2002-09-27 DE DE10297273T patent/DE10297273B4/de not_active Expired - Fee Related
- 2002-09-27 CN CNB02819232XA patent/CN100533385C/zh not_active Expired - Fee Related
- 2002-09-27 KR KR1020047004446A patent/KR100692346B1/ko not_active IP Right Cessation
- 2002-09-27 GB GB0404784A patent/GB2397415A/en not_active Withdrawn
- 2002-09-27 JP JP2003531310A patent/JP2005528665A/ja active Pending
- 2002-09-27 AU AU2002343467A patent/AU2002343467A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4787031A (en) * | 1985-01-04 | 1988-11-22 | Digital Equipment Corporation | Computer with virtual machine mode and multiple protection rings |
WO2000048061A1 (en) * | 1999-02-15 | 2000-08-17 | Hewlett-Packard Company | Protection of the configuration of modules in computing apparatus |
Non-Patent Citations (2)
Title |
---|
Scott,R.J., et.al.: Analysis of the Intel Penti- um's Ability to Support a Secure Virtual Machine Monitor. In: Proceedings of the 9th Usenix Securi- ty Symposium, Denver, USA, August, 2000, pp.129- 144 |
Scott,R.J., et.al.: Analysis of the Intel Pentium's Ability to Support a Secure Virtual Machine Monitor. In: Proceedings of the 9th Usenix Security Symposium, Denver, USA, August, 2000, pp.129144 * |
Also Published As
Publication number | Publication date |
---|---|
DE10297273T5 (de) | 2004-09-16 |
CN100533385C (zh) | 2009-08-26 |
JP2005528665A (ja) | 2005-09-22 |
WO2003027835A3 (en) | 2004-07-15 |
GB2397415A (en) | 2004-07-21 |
US20030061497A1 (en) | 2003-03-27 |
WO2003027835A2 (en) | 2003-04-03 |
US7103529B2 (en) | 2006-09-05 |
GB0404784D0 (en) | 2004-04-07 |
KR20040037148A (ko) | 2004-05-04 |
AU2002343467A1 (en) | 2003-04-07 |
KR100692346B1 (ko) | 2007-03-09 |
CN1585927A (zh) | 2005-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE10297273B4 (de) | Verfahren zur Bereitstellung von Systemintegrität und Legacy-Umgebungsemulation | |
DE10394383B4 (de) | Verfahren und Vorrichtung zum Laden eines vertrauenswürdigen Betriebssystems | |
Yosifovich et al. | Windows Internals: System architecture, processes, threads, memory management, and more, Part 1 | |
DE10296798B4 (de) | SMM-Lader und -Ausführungsmechanismus für Komponentensoftware für mehrere Architekturen | |
DE10393662T5 (de) | Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung | |
CN102099811B (zh) | 用于离线虚拟环境中的或与之相关的改进的方法和系统 | |
EP3047419B1 (de) | Virtueller sicherer modus für virtuelle maschinen | |
DE112004001605B4 (de) | Computersystem, in welchem eine abgesicherte Ausführungsumgebung angewendet wird und in dem eine Speichersteuerung enthalten ist, die zum Löschen des Speichers ausgebildet ist | |
US20110246986A1 (en) | Virtual Machine Crash File Generation Techniques | |
DE112015006934T5 (de) | Verschachtelte Virtualisierung für virtuelle Maschinenexits | |
DE112013002254T5 (de) | Wiederherstellen aus einer Altbetriebssystemumgebung zu einer UEFI-Preboot-Umgebung | |
DE10292364T5 (de) | Sichere Maschinenplattform, die mit Betriebssystemen und awendungsspezifischen Steuerprogrammen eine Schnittstelle bildet | |
DE112020000280B4 (de) | Transparente interpretation von gastbefehlen in einer sicheren virtuellen maschinenumgebung | |
Buerki et al. | Muen-an x86/64 separation kernel for high assurance | |
DE112006001744T5 (de) | Manipulationsschutz, um Installation von Betriebssystemen und anderer Software zu beschränken | |
DE102020124498A1 (de) | Vorrichtung und Verfahren zur Durchsetzung von Kontrollfluss-Integrität | |
DE112016004297T5 (de) | Technologien für mehrstufige virtualisierung | |
US10620985B2 (en) | Transparent code patching using a hypervisor | |
EP3063692B1 (de) | Introspektion einer virtuellen maschine | |
DE202017007430U1 (de) | Erkennen von Bussperrbedingungen und Vermeiden von Bussperren | |
DE112011105687T5 (de) | Verwendung eines Option-ROM-Speichers | |
DE112020003881T5 (de) | System und verfahren zur durchführung von trusted computing mit fernbescheinigung und informationsisolierung auf heterogenen prozessoren über eine offene verbindung | |
DE102022117044A1 (de) | Verfahren, vorrichtung und system zum upgradebarer-microcode- (ucode-) laden und -aktivieren während der laufzeit für bare-metal-einsatz | |
CN112231198B (zh) | 一种恶意进程调试方法、装置、电子设备及介质 | |
DE112017008307T5 (de) | Systeme und verfahren zur effizienten unterbrechung von virtuellen maschinen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law |
Ref document number: 10297273 Country of ref document: DE Date of ref document: 20040916 Kind code of ref document: P |
|
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |