DE112011105687T5 - Verwendung eines Option-ROM-Speichers - Google Patents

Verwendung eines Option-ROM-Speichers Download PDF

Info

Publication number
DE112011105687T5
DE112011105687T5 DE112011105687.7T DE112011105687T DE112011105687T5 DE 112011105687 T5 DE112011105687 T5 DE 112011105687T5 DE 112011105687 T DE112011105687 T DE 112011105687T DE 112011105687 T5 DE112011105687 T5 DE 112011105687T5
Authority
DE
Germany
Prior art keywords
option rom
hash value
data
option
backup
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.)
Pending
Application number
DE112011105687.7T
Other languages
English (en)
Inventor
Kimon Berlin
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.)
Hewlett Packard Development Co LP
Original Assignee
Hewlett Packard Development Co LP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co LP filed Critical Hewlett Packard Development Co LP
Publication of DE112011105687T5 publication Critical patent/DE112011105687T5/de
Pending legal-status Critical Current

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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • G06F9/4415Self describing peripheral devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1433Saving, restoring, recovering or retrying at system level during software upgrading
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/1097Boot, Start, Initialise, Power
    • 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/2105Dual mode as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Die hierin offenbarten beispielhaften Ausführungsformen beziehen sich auf einen geänderten Option-ROM. Eine Kopie eines Option-ROMs wird gespeichert. Die Kopie wird während eines Bootvorgangs basierend auf der Feststellung, dass der Option-ROM geändert worden ist, verwendet.

Description

  • HINTERGRUND
  • Wird ein Computer hochgefahren, wird der Computer im Allgemeinen über einen Bootvorgang gestartet. Der Bootvorgang kann mithilfe einer Firmware-Schnittstelle, z. B. einem BIOS (Basic Input/Output System) oder einer EFI (Extensible Firmware Interface – erweiterbare Firmware-Schnittstelle), implementiert werden. Ein Teil des Bootvorgangs beinhaltet das Initialisieren und/oder Identifizieren von Systemgeräten wie einer Tastatur, einer Maus, einer Grafikkarte usw.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Die folgende ausführliche Beschreibung bezieht sich auf die Zeichnungen, wobei:
  • 1A und 1B Blockdiagramme von Geräten sind, die eine Sicherungskopie eines Option-ROM-Speichers laden können, gemäß verschiedenen Beispielen;
  • 2 ein Flussdiagramm eines Verfahrens zum Laden einer Sicherungskopie eines Option-ROM-Speichers gemäß einem Beispiel ist;
  • 3 ein Flussdiagramm eines Verfahrens zum Laden einer Sicherungskopie eines Option-ROM-Speichers basierend auf einem Hash-Wert-Vergleich gemäß einem Beispiel ist;
  • 4 ein Flussdiagramm eines Verfahrens ist, um einen Option-ROM-Speicher auf eine schwarze Liste zu setzen, gemäß einem Beispiel; und
  • 5 ein Blockdiagramm eines Computergerätes ist, das eine Kopie eines Option-ROM-Speichers basierend auf einem Vergleich starten kann, gemäß einem Beispiel.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Computergeräte können mithilfe eines Bootvorgangs initialisiert werden. Der Bootvorgang kann mithilfe einer Firmware-Schnittstelle, z. B. einem BIOS (Basic Input/Output System) oder einer EFI (Extensible Firmware Interface – erweiterbare Firmware-Schnittstelle) implementiert werden. Während des Bootvorgangs kann die Firmware-Schnittstelle die Hardware des Computergerätes einrichten. Ferner kann die Firmware-Schnittstelle für das Laden oder Initialisieren eines Bootladeprogramms verantwortlich sein, um den Betrieb des Computergerätes an ein Betriebssystem zu übertragen.
  • Beim Booten eines Computergerätes initialisiert und identifiziert die Firmware-Schnittstelle Systemgeräte oder Adapterkarten wie eine Grafikkarte, eine Tastatur, eine Maus, Speicher (z. B. Festplatten, Speichersticks, Diskettenlaufwerke usw.), Netzwerkadapter, weitere Hardware usw. Beim Initialisieren einiger dieser Geräte kann das Computergerät einen Option-ROM-Speicher (Festwertspeicher) ausführen. Ein Option-ROM-Speicher kann als Komponenten-ROM oder Firmware betrachtet werden, der bzw. die sich auf einer Adapterkarte befindet. In bestimmten Beispielen ist ein ROM eine Klasse eines in dem Computergerät verwendeten Speichermediums, das nicht modifiziert oder nur langsam bzw. mühsam modifiziert werden kann. Das BIOS oder eine andere Firmware-Schnittstelle der Hauptplatine des Computergerätes kann den Option-ROM-Speicher in der Adapterkarte (z. B. Grafikkarte, Soundkarte, Speicherkarte usw.) aufrufen.
  • Ein ROM-Speicher, wie hierin verwendet, kann einen Masken-ROM, einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM), elektrisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM) und Flash-Speicher und dergleichen beinhalten. Ein ROM kann zum Verteilen von Firmware des Computergerätes verwendet werden. Die Firmware kann Anweisungen und andere Informationen beinhalten, die von mindestens einem Prozessor ausgeführt werden können.
  • Ferner kann die Firmware des Option-ROM-Speichers verwendet werden, um entsprechende Systemgeräte und/oder Adapterkarten einzurichten und/oder zu verwenden. Zum Beispiel kann ein Video-BIOS initiiert werden, um einen Videoadapter zu initialisieren, um einem Anwender zu ermöglichen, sich Meldungen von der Firmware-Schnittstelle, von Betriebssystemen usw. anzusehen. Während des Bootvorgangs kann die primäre Firmware-Schnittstelle bewirken, dass ein Prozessor des Computergerätes Informationen aus dem Option-ROM abruft, um sie auf einem Prozessor auszuführen.
  • Auf Firmware basierende Angriffe auf Computergeräte nehmen immer mehr zu, da veränderte Firmware von einem Antivirusprogramm schwer zu erkennen ist und Firmware die potenzielle Kontrolle über das gesamte Computersystem hat. Schadprogramme können eine mit dem Computersystem verbundene Adapterkarte derart infizieren, dass die Infektion wie ein Upgrade der auf der Adapterkarte befindlichen Firmware aussieht. Zur einfachen Verwendung ermöglichen viele Adapterkarten heutzutage, die Firmware mithilfe von Software zu upgraden, die auf einem Betriebssystem des Computersystems läuft. Schadprogramme sind möglicherweise in der Lage, den Option-ROM der Adapterkarte zu infizieren, indem sie die Firmware auf der Adapterkarte modifizieren. In einigen Beispielen sind Video-Option-ROMs eines der ersten Code-Elemente, die ausgeführt werden, sobald ein Computergerät eingeschaltet oder neu gestartet wird. Das kann so ablaufen, dass ein Anwender von der Firmware bzw. zu Kommunikationszwecken Meldungen empfängt. Enthält der Option-ROM Schadprogramme, kann es schwierig sein, diese zu erkennen und zu reparieren, weil die Schadprogramme eventuell Maßnahmen ergreifen, um die Schadprogramme zu verbergen. Herstellereigene Schutzprogramme für Computersysteme können von Schadprogrammen verdrängt werden, die Erweiterungskarten angreifen, die eventuell weniger geschützt sind.
  • Dementsprechend beziehen sich verschiedene, hierin offenbarte Ausführungsformen auf das Speichern einer bekannten guten Sicherungskopie eines Option-ROMs einer Adapterkarte in den Speicher. Dann können bei nachfolgenden Bootvorgängen des Computergerätes, bevor der Code aus dem Option-ROM-Speicher ausgeführt wird, die in dem Option-ROM enthaltenen Informationen mit der Sicherungskopie verglichen werden, um festzustellen, ob der Option-ROM seit Erstellung der Sicherungskopie verändert worden ist. Diese Feststellung kann auf einem Vergleich eines Hash-Wertes der Sicherungskopie und eines Hash-Wertes des aktuellen Option-ROMs basieren oder über einen direkten Vergleich der Sicherungskopie und den Informationen im aktuellen Option-ROM erfolgen. In bestimmten Ausführungsformen kann, wenn der Option-ROM geändert worden ist, die Firmware-Schnittstelle während des Bootvorgangs die Sicherungskopie laden. Ein automatisches Zurückgreifen auf die Verwendung der Sicherungskopie kann vorteilhaft sein, da die Funktionen eines zu dem betreffenden Option-ROM gehörenden Geräts bzw. mehrerer Geräte verwendet werden können. Zum Beispiel kann bei einem Grafik-Option-ROM eine Anzeige angetrieben oder bei einem Option-ROM eines Speicher-Controllers der Speicher erkannt und verwendet werden.
  • Ferner kann das Computergerät einen Benutzer auffordern, zu bestätigen, dass die Änderung des Option-ROMs beabsichtigt war. War die Änderung nicht beabsichtigt, kann ein zum Option-ROM gehörender Hash-Wert auf die schwarze Liste gesetzt werden, sodass der Option-ROM, wenn er Informationen enthält, die zu dem Hash-Wert gehören, nicht ausgeführt wird. Stattdessen wird der Sicherungs-ROM ausgeführt, bis der Option-ROM erneut geändert wurde und der Anwender bestätigt, dass die Änderung beabsichtigt war. Da keine unbefugte Änderung in einem Option-ROM ausgeführt werden darf, wird auch kein Schadprogramm, das sich möglicherweise in dem Option-ROM befindet, ausgeführt.
  • Mit Bezug auf die Figuren sind 1A und 1B Blockdiagramme von Geräten, die eine Sicherungskopie eines Option-ROM-Speichers laden können, gemäß verschiedenen Beispielen. Die Geräte 100a, 100b beinhalten Komponenten, die verwendet werden können, um Option-ROMs sicher zu verwenden und zu aktualisieren. Die entsprechenden Geräte 100a, 100b können ein Notebook, ein PC, ein Tablet, eine drahtlose Vorrichtung, ein Server, ein Arbeitsplatzrechner oder jedes andere Computergerät sein. In einer Ausführungsform kann das Gerät 100 einen nicht-flüchtigen Speicher 110, ein Sicherungsmodul 112 und ein Bootmodul 114 beinhalten. In anderen Ausführungsformen kann ein Gerät 100b auch ein Hashing-Modul 116, ein Vergleichsmodul 118, ein Darstellungsmodul 120, ein Managementmodul 122, eine Adapterkarte 124 oder mehrere Adapterkarten 124, mindestens einen Prozessor 130, einen Speicher 132 und Eingabe-/Ausgabeschnittstellen 134 beinhalten.
  • Der nicht-flüchtige Speicher 110 ist ein Computerspeicher, der gespeicherte Informationen selbst dann bewahren kann, wenn er nicht mit Strom versorgt wird. Zu den nicht-flüchtigen Speichern zählen ROM-Speicher, Flash-Speicher, Festplatten, Disketten, Magnetbänder, optische Platten, ferroelektrische Direktzugriffsspeicher (RAM) usw. In bestimmten Beispielen kann der nicht-flüchtige Speicher 110 Teil des BIOS, der EFI oder einer anderen Firmware-Schnittstelle sein oder verwendet werden, um diese zu speichern. In anderen Beispielen kann der nicht-flüchtige Speicher 110 Teil eines anderen Speichers, z. B. Festplatten usw., sein. Zum Beispiel kann der nicht-flüchtige Speicher 110 Teil einer über eine Adapterkarte 124 verbundene Festplatte sein. In bestimmten Beispielen kann die Adapterkarte 124 eine Speichercontrollerkarte sein, die einen Option-ROM 136 beinhalten kann, der Code zum Initialisieren der Adapterkarte 124 bereitstellen kann, um Zugriff auf die Festplatte und/oder einen anderen Speicher zu gewähren. Der nicht-flüchtige Speicher 110 kann als mehrere verschiedene Speicherchips oder Speichergeräte dargestellt werden.
  • In bestimmten Beispielen ist die Adapterkarte 124 eine Leiterplatte, die mit einem Bus verbunden werden kann, der mit einem Prozessor des Gerätes 100 verbunden ist. Der Adapter kann nativ zum Gerät 100 gehören (z. B. Teil einer Systemplatine des Gerätes 100) oder eine Erweiterungskarte, die in einen Erweiterungsschlitz oder Steckverbinder (z. B. über einen Universal Serial Bus (USB), über einen Peripheral Component Interconnect(PCI)-Bus etc.) der Systemplatine eingefügt werden kann. Zum Beispiel kann sich ein Grafikadapter auf der Hauptplatine befinden oder mit einem Erweiterungsbus verbunden sein. Zu den Adapterkarten 124 gehören Grafikkarten, Speicheradapterkarten wie Small Computer System Interface(SCSI)-Karten oder Serial Advanced Technology Attachment(SATA)-Erweiterungskarten, Netzwerkadapter, Soundkarten, andere Schnittstellenkarten usw.
  • Die Adapterkarten 124 können einen Option-ROM 136 beinhalten. In bestimmten Beispielen ist ein Option-ROM 136 zu den Adapterkarten 124 gehörende Firmware, die von der Firmware-Schnittstelle des Systems (z. B. BIOS) aufgerufen wird. Die Firmware kann auf einem zentralen Prozessor 130 des Gerätes 100 ausgeführt werden, wenn sie einmal aufgerufen wurde. Wie vorstehend erwähnt, kann Firmware auf einem Option-ROM das Ziel von Schadprogrammen sein. In bestimmten Beispielen handelt es sich bei Schadprogrammen um bösartige Software, die entwickelt wurde, um Vorgänge zu unterbrechen oder zu verweigern, Informationen zu erfassen, was zum Verlust vertraulicher Daten bzw. zur unrechtmäßigen Verwendung derselben führt, unbefugten Zugriff auf Systemressourcen zu erreichen, oder anderes missbräuchliches Verhalten. Zu Schadprogrammen zählen Computerviren, Würmer, Trojaner, Spionage-Software, betrügerische Adware und weitere bösartige oder unerwünschte Software bzw. Programme.
  • Das Sicherungsmodul 112 kann die Speicherung von Sicherungsdaten des Option-ROMs 136 der Adapterkarte 124 an einem Speicherort des nicht-flüchtigen Speichers 110 veranlassen. Dies kann als Teil eines manuellen Sicherungsprozesses erfolgen, als Prozess, der automatisch erfolgt, wenn eine neue Adapterkarte 124 erkannt wird, als Prozess, der routinemäßig erfolgt oder dergleichen. Das Sicherungsmodul 112 kann bewirken, dass der Prozessor 130 einen Option-ROM 136 liest und dann die Sicherungsdaten des Option-ROMs 136 in den nicht-flüchtigen Speicher 110 speichert. In bestimmten Szenarien sind die Sicherungsdaten eine exakte Kopie des Option-ROMs 136. Ferner kann während der Sicherung ein Hashing-Modul 116 einen Hash-Wert für die Sicherungsdaten und/oder den Option-ROM 136 erzeugen. Der Hash-Wert kann auf einer kryptografischen Hash-Funktion basieren. Diese Informationen können an einem anderen Ort des nicht-flüchtigen Speichers 110 gespeichert werden. Wenn die Sicherung des Option-ROMs 136 gespeichert ist, können weitere die Adapterkarte identifizierende Informationen (z. B. mithilfe eines Hardware-Identifikators) gespeichert werden. So können Sicherungen mit den jeweiligen Adapterkarten 124 und/oder entsprechenden Option-ROMs 136 verknüpft werden.
  • Bei künftigen Starts des Gerätes 100 kann das Bootmodul 114 prüfen, ob der Option-ROM 136 verändert worden ist. So stellt das Bootmodul 114 fest, ob die Daten, die nachfolgend/aktuell im Option-ROM 136 gespeichert sind, mit den am Speicherort gespeicherten Sicherungsdaten übereinstimmen. Für die Feststellung kann der Bootvorgang das Vergleichsmodul 118 verwenden. Das Vergleichsmodul 118 kann die Sicherungsdaten mit den aktuellen Inhalten des Option-ROMs 136 oder einen Hash-Wert der Sicherungsdaten und einen zu den Inhalten des aktuellen Option-ROMs gehörenden Hash-Wert vergleichen. In einigen Beispielen können die aktuellen Inhalte des Option-ROMs 136 während der für den Bootvorgang benötigten Zeit als Inhalte des Option-ROMs 136 betrachtet werden. Im Falle des Hash-Wert-Vergleichs kann das Hashing-Modul 116 einen weiteren Hash-Wert für die aktuellen Option-ROM-Daten erzeugen, die zum Zeitpunkt der Überprüfung des Option-ROMs 136 darin gespeichert sind. Wenn der Vergleich der Hash-Werte oder ein direkter Vergleich der Inhalte der Sicherungsdaten und der aktuellen Inhalte des Option-ROMs 136 keine Übereinstimmung ergeben, können die Daten im Option-ROM 136 als geändert angesehen werden. Wenn der Option-ROM 136 geändert ist, kann das Bootmodul 114 die Adapterkarte 124 mithilfe der Sicherungsdaten initialisieren. In diesem Szenario werden die Informationen im Option-ROM 136 nicht zur Ausführung aufgerufen. So werden vom Prozessor 130 keine möglichen Schadprogramme ausgeführt.
  • In bestimmten Szenarien ist eine Änderung im Option-ROM 136 beabsichtigt (z. B. basierend auf einem Firmware-Upgrade). So kann das Darstellungsmodul 120 verwendet werden, um eine Meldung darzustellen, dass die aktuellen Inhalte des Option-ROMs 136 nicht mit den Sicherungsdaten übereinstimmen. Ferner kann das Darstellungsmodul 120 eine Aufforderung darstellen, die abfragt, ob die Änderung der Inhalte des Option-ROMs 136 beabsichtigt war. Die Darstellung kann während eines Bootvorgangs, während der Ausführung von Firmware oder mithilfe eines Tools erfolgen, das Zugriff auf die Firmware hat. In diesem Szenario werden die Sicherungsinhalte verwendet, wenn das Gerät 100 nach einer Modifizierung das erste Mal gestartet wird, und können anstelle der Inhalte des Option-ROMs 136 verwendet werden, es sei denn die Änderung wurde als gültig bestätigt. Bei diesem Ansatz kann das Gerät 100 wie üblich laufen, ohne die Funktion der zum Option-ROM 136 gehörenden Adapterkarte 124 zu verlieren, während die Bestätigung abgefragt wird.
  • Das Managementmodul 122 kann verwendet werden, um einem Anwender zu erlauben, sicher festzustellen, ob die Änderung im Option-ROM 136 beabsichtigt war. So kann das Managementmodul 122 in Reaktion auf die Aufforderung eine Angabe dazu empfangen, ob die Änderung an den Informationen beabsichtigt oder nicht beabsichtigt war. Wurde festgestellt, dass die Änderung beabsichtigt war, kann eine Sicherung der aktuellen Inhalte des Option-ROMs 136 erfolgen und künftige Bootvorgänge können den Option-ROM 136 verwenden, weil die Sicherung und der Option-ROM 136 übereinstimmen. Wurde die Änderung als nicht beabsichtigt angegeben, kann das Managementmodul 122 eine Speicherung veranlassen und einen Hash-Wert der aktuellen Inhalte des Option-ROMs 136 speichern. Dieser Hash-Wert kann verwendet werden, um darzustellen, dass die Inhalte des Option-ROMs 136 auf der schwarzen Liste stehen. So verwendet das Bootmodul 114 bei nachfolgenden Bootvorgängen des Gerätes 100 die unveränderten Sicherungsdaten zum Initialisieren der Adapterkarte 124, bis ein Hash-Wert des Option-ROMs 136 nicht mehr mit dem auf die schwarze Liste gesetzten Hash-Wert übereinstimmt.
  • Ein Prozessor 130, z. B. eine Zentraleinheit (CPU) oder ein zur Wiederabfrage und Ausführung von Anweisungen geeigneter Mikroprozessor und/oder elektronische Schaltungen können dazu konfiguriert sein, die Funktionalität eines jeden der hierin beschriebenen Module 112122 auszuführen. In bestimmten Szenarien können Anweisungen und/oder andere Informationen wie Hash-Wert-Informationen in den nicht-flüchtigen Speicher, den Speicher 132 oder einen anderen Speicher aufgenommen werden. Ferner kann in bestimmten Beispielen der Speicher 132 flüchtige Speicher wie einen Direktzugriffsspeicher (RAM) beinhalten. Eingabe-/Ausgabeschnittstellen 134 können zusätzlich vom Gerät 100b bereitgestellt werden. Zum Beispiel können Eingabegeräte 140 wie eine Tastatur, ein Sensor, eine Berührungsoberfläche, eine Maus, ein Mikrofon usw. verwendet werden, um Eingaben von einer das Gerät 100b umgebenden Umwelt zu empfangen. Ferner kann ein Ausgabegerät 142 wie eine Anzeige verwendet werden, um Anwendern Informationen darzustellen. Zu Ausgabegeräten gehören Lautsprecher, Anzeigegeräte, Verstärker usw. Außerdem können in bestimmten Ausführungsformen einige Komponenten verwendet werden, um die Funktionalität anderer hierin beschriebener Komponenten zu implementieren.
  • Jedes der Module 112122 kann zum Beispiel Hardware-Geräte mit elektronischen Schaltungen zum Implementieren der hierin beschriebenen Funktionalität beinhalten. Zusätzlich bzw. als Alternative dazu kann jedes Modul 112122 als Reihe von Anweisungen implementiert werden, die auf einem maschinenlesbaren Speichermedium des Gerätes 100 kodiert sind und vom Prozessor 130 ausgeführt werden können. Es ist zu beachten, dass in einigen Ausführungsformen einige Module als Hardware-Geräte implementiert sind, während andere Module als ausführbare Anweisungen implementiert sind.
  • In bestimmten Beispielen können die Hash-Werte in einem System-Flash gespeichert werden (z. B. dort, wo das BIOS oder andere Firmware gespeichert ist) sowie Sicherungen anderer Option-ROMs. In anderen Beispielen können Option-ROM-Sicherungen, die verwendet wurden, bevor die Interaktion zwischen einem Anwender und dem System möglich ist (z. B. Sicherungen für Grafik-Option-ROMs) in dem Systemflash gespeichert werden, während andere Sicherungskopien in einem anderen nicht-flüchtigen Speicher 110 wie einem Massenspeichergerät gespeichert werden. In einigen Beispielen kann der Option-ROM des Speichercontrollers, der zu dem Massenspeichergerät führt, als verwendet betrachtet werden, bevor die Interaktion zwischen einem Anwender und dem System möglich ist. Auch Managementdienste können verwendet werden, um zu verhindern, dass sich der Systemflash füllt Zum Beispiel kann ein Priorisierungsplan zum Verwalten von Sicherungen verwendet werden. So können Sicherungen der Option-ROMs von Adapterkarten 124, die für die Verwendung des Option-ROM-Sicherheitssystems notwendig sind (z. B. Grafik, eventuell der Speichercontroller usw.) Priorität für die Speicherung im Systemflash erhalten. Ferner kann der Systemflash derart verwaltet werden, dass, wenn eine Adapterkarte entfernt wird, der mit der Sicherungskopie der Adapterkarte verknüpfte Raum mithilfe eines Plans der zuletzt verwendeten Ressourcen wiedergewonnen und neu verwendet werden kann.
  • 2 ist ein Flussdiagramm eines Verfahrens zum Laden einer Sicherungskopie eines Option-ROM-Speichers gemäß einem Beispiel. Auch wenn die Ausführung des Verfahrens 200 nachstehend mit Bezug auf Gerät 100 beschrieben ist, können andere geeignete Komponenten zur Ausführung des Verfahrens 200 verwendet werden (z. B. Computergerät 500). Das Verfahren 200 kann in Form von auf einem maschinenlesbaren Speichermedium, z. B. Speichermedium 520, gespeicherten ausführbaren Anweisungen und/oder in Form elektronischer Schaltungen implementiert werden. In bestimmten Beispielen können Prozesse, die von einigen Modulen oder Geräten ausgeführt werden, von anderen Modulen oder Geräten oder in Kombination mit anderen Modulen oder Geräten ausgeführt werden.
  • Das Verfahren 200 kann in 202 starten, wo sich das Gerät in einem Status befinden kann, in dem ein Sicherungsdienstprogramm ausgeführt wird. Das Sicherungsdienstprogramm kann Teil eines Betriebssystems, Teil einer Firmware-Schnittstelle, Teil eines Bootvorgangs oder dergleichen sein. Das Verfahren 200 kann bis 204 fortschreiten, wo ein Sicherungsmodul 112 des Gerätes 100 eine Sicherungskopie eines Option-ROMs einer Adapterkarte in den Speicher speichert. Beispiele für Option-ROMs der Adapterkarte 124 sind ein Grafik-Option-ROM, ein Speicher-Option-ROM (z. B. ein SCSI-Adapter), ein Netzwerk-Option-ROM usw. Der Speicher kann der nicht-flüchtige Speicher 110 sein. Die Sicherungskopie kann eine exakte Kopie des Option-ROMs sein. So können ein kryptografischer Hash-Wert der Sicherungskopie und der Option-ROM gleich sein.
  • Zu einem späteren Zeitpunkt (in 206) kann das Gerät 100 über einen nachfolgenden Bootvorgang gestartet und gebootet werden. Beim Booten initiiert eine Firmware-Schnittstelle des Gerätes 100 (z. B. BIOS, EFI usw.) den Bootvorgang. Während des Bootvorgangs kann die Firmware-Schnittstelle die zum Option-ROM gehörende Adapterkarte zu initialisieren suchen.
  • In 208 lädt das Bootmodul 114 die Sicherungskopie während des Bootvorgangs basierend auf einer Feststellung, dass der Option-ROM geändert worden ist. Die Feststellung kann auf einem Vergleich des Option-ROMs in seinem aktuellen Status und der Sicherungskopie basieren. Zusätzlich oder alternativ kann die Feststellung auf einem Vergleich des jeweiligen Hash-Wertes des Option-ROMs und der Sicherungskopie basieren, wie in 3 ausführlicher beschrieben. In 210 endet das Verfahren 200. Andere Bootvorgänge und Prozesse des Gerätes 100 können weiterlaufen. Außerdem kann der Bootvorgang die Steuerung des Gerätes 100 an ein Betriebssystem übergeben. Ferner kann in bestimmten Szenarien das Darstellungsmodul 120 eine Anzeige antreiben, um eine Meldung darzustellen, dass der Option-ROM geändert und/oder die Sicherungskopie verwendet worden ist.
  • 3 ist ein Flussdiagramm eines Verfahrens zum Laden einer Sicherungskopie eines Option-ROM-Speichers basierend auf einem Hash-Wert-Vergleich gemäß einem Beispiel. Auch wenn die Ausführung des Verfahrens 300 nachstehend mit Bezug auf Gerät 100 beschrieben ist, können andere geeignete Komponenten zur Ausführung des Verfahrens 300 verwendet werden (z. B. Computergerät 500). Das Verfahren 300 kann in Form von auf einem maschinenlesbaren Speichermedium gespeicherten ausführbaren Anweisungen, z. B. Speichermedium 520, und/oder in Form elektronischer Schaltungen implementiert werden. In bestimmten Beispielen können Prozesse, die von einigen Modulen oder Geräten ausgeführt werden, von anderen Modulen oder Geräten oder in Kombination mit anderen Modulen oder Geräten ausgeführt werden.
  • Das Verfahren 300 kann in 302 starten, wo sich das Gerät 100 in einem Status befindet, in dem ein Sicherungsdienstprogramm ausgeführt wird. Wie vorstehend erwähnt, kann das Sicherungsmodul 112 eine Sicherungskopie eines Option-ROMs speichern. In 304 kann das Hashing-Modul 116 einen Hash-Wert für die Sicherungskopie erzeugen. In einigen Beispielen kann der Hash-Wert ein Hash-Wert der Inhalte des Option-ROMs sein, weil die Inhalte des Option-ROMs den als Sicherungskopie gespeicherten Informationen entsprechen sollten. In bestimmten Beispielen kann der Hash-Wert ein auf einer kryptografischen Hash-Funktion basierender kryptografischer Hash-Wert sein. Eine kryptografische Hash-Funktion ist ein deterministisches Verfahren, das einen Block von Daten (z. B. die Inhalte des Option-ROMs oder der Sicherungskopie) nimmt und eine Bitfolge fester Größe, d. h. den Hash-Wert, derart ausgibt, dass eine beabsichtigte oder versehentliche Änderung der Daten den Hash-Wert ändern wird. Dann kann in 306 das Sicherungsmodul 112 die Speicherung des Hash-Wertes der Sicherungskopie in den Speicher (z. B. den nicht-flüchtigen Speicher 110) veranlassen.
  • Das Gerät 100 kann weiterhin ausgeführt werden. Bei einem nachfolgenden Bootzyklus kann der Hash-Wert der Sicherungskopie des Option-ROMs mit dem Hash-Wert der aktuellen Inhalte des Option-ROMs (308) verglichen werden. In bestimmten Szenarien kann ein nachfolgender Bootzyklus gestartet werden, wenn das System neu gestartet oder aus dem Aus-Zustand komplett neu hochgefahren wird. So können die aktuellen Inhalte des Option-ROMs von der kryptografischen Hash-Funktion verarbeitet werden, um einen Hash-Wert des aktuellen Option-ROMs zu ergeben. Der Hash-Wert des aktuellen Option-ROMs kann während des Bootzyklus mit dem Hash-Wert der Sicherungskopie verglichen werden. Dies kann erfolgen, um sicherzustellen, dass seit der Erstellung der Sicherungskopie keine Änderungen an dem Option-ROM vorgenommen wurden. Wie vorstehend erwähnt, können Änderungen ein Indiz für Schadprogramme sein. Sind die Hash-Werte gleich, wird der Option-ROM geladen. Unterscheiden sich die Hash-Werte, wird in 310 statt dem Option-ROM die Sicherungskopie des Option-ROMs geladen. Wie erwähnt, kann der Option-ROM verwendet werden, um die Verwendung der Adapterkarte 124 zu initialisieren und/oder eine Schnittstelle zur Adapterkarte 124 zu bilden. In 312 endet dann das Verfahren 300. Das Laden kann automatisch, ohne Eingabe durch den Anwender, ausgeführt werden. In einigen Szenarien kann das Laden des Option-ROMs auch auf einer Anwendereingabe basieren, zum Beispiel einer Anwendereingabe, die angibt, ob die Änderung im Option-ROM beabsichtigt ist oder nicht. Diese Option ist möglicherweise bei bestimmten Arten von Option-ROMs nicht verfügbar. Zum Beispiel kann im Falle eines Grafik-Option-ROMs, weil ein Anwender nicht in der Lage wäre, eine Informationsabfrage zu sehen, die Sicherungskopie des Grafik-Option-ROMs automatisch geladen werden. So können die Abfragen an den Anwender geschickt werden, nachdem die Sicherungskopie des Option-ROMs verwendet worden ist.
  • 4 ist ein Flussdiagramm eines Verfahrens, um einen Option-ROM-Speicher auf eine schwarze Liste zu setzen, gemäß einem Beispiel. Auch wenn die Ausführung des Verfahrens 400 nachstehend mit Bezug auf Gerät 100 beschrieben ist, können andere geeignete Komponenten zur Ausführung des Verfahrens 400 verwendet werden (z. B. Computergerät 500). Das Verfahren 400 kann in Form von auf einem maschinenlesbaren Speichermedium, z. B. Speichermedium 520, gespeicherten ausführbaren Anweisungen und/oder in Form elektronischer Schaltungen implementiert werden. In bestimmten Beispielen können Prozesse, die von einigen Modulen oder Geräten ausgeführt werden, von anderen Modulen oder Geräten oder in Kombination mit anderen Modulen oder Geräten ausgeführt werden.
  • Das Verfahren 400 beginnt in 402, wo das Gerät 100 gestartet wird und in einem Bootvorgang fortgeschritten ist. Der Bootvorgang kann sich in einem Status befinden, in dem das Vergleichsmodul 118 festgestellt hat, dass der vorherige Status des Option-ROM geändert worden ist. Wie vorstehend erwähnt, kann die Feststellung auf einem Vergleich der jeweiligen Hash-Werte oder des aktuellen Wertes des Option-ROMs und einer Sicherungskopie des Option-ROMs basieren. Das Darstellungsmodul 120 kann die Darstellung einer Meldung, dass der Option-ROM geändert worden ist, veranlassen.
  • Das Verfahren 400 kann bis 404 fortschreiten, wo das Darstellungsmodul 120 für einen Anwender des Gerätes 100 die Darstellung einer Aufforderung zur Angabe, ob die Änderung des Option-ROMs beabsichtigt war oder nicht, veranlassen kann. Der Anwender kann auf die Aufforderung reagieren. In 406 empfängt das Managementmodul 122 eine Angabe dazu, ob die Änderung des Option-ROMs beabsichtigt war. Lässt die Angabe erkennen, dass die Änderung beabsichtigt war, kann der Option-ROM weiterhin verwendet werden. Ferner kann eine neue Sicherungskopie des Option-ROMs erzeugt und für spätere Vergleiche gespeichert werden. In bestimmten Beispielen kann der Anwender zur Angabe aufgefordert werden, bevor die Sicherungskopie geladen wird. In anderen Beispielen kann die Sicherungskopie geladen werden, bevor die Aufforderung dargestellt wird. Ergibt die Angabe, dass die Änderung nicht beabsichtigt war, schreitet das Verfahren 400 bis 408 fort, wo das Gerät 100 einen Hash-Wert für die aktuellen Inhalte des Option-ROMs ermittelt. Der Hash-Wert kann zu einem früheren Zeitpunkt erzeugt werden, zum Beispiel wenn der Hash-Wert für den Vergleich verwendet wird.
  • In 410 wird der Hash-Wert der aktuellen Inhalte des Option-ROMs an einer Adresse des zu einer schwarzen Liste gehörenden nicht-flüchtigen Speichers 110 gespeichert. Die schwarze Liste kann Hash-Werte bekannter schlechter Option-ROMs beinhalten. So werden während nachfolgender Bootvorgänge des Gerätes 100 die Hash-Werte auf der schwarzen Liste mit dem Hash-Wert des dann aktuellen Option-ROMs verglichen. In 412 wird die Sicherungskopie des Option-ROMs verwendet, solange der Hash-Wert des aktuellen Option-ROMs einem der Hash-Werte auf der schwarzen Liste gleicht. In bestimmten Beispielen kann die schwarze Liste weiterhin mehrere Hash-Werte basierend auf der Anwenderreaktion auf geänderte Option-ROMs beinhalten. So wird die Sicherungskopie verwendet, bis der Hash-Wert der aktuellen Inhalte des Option-ROMs nicht mehr mit dem Hash-Wert des Option-ROMs auf der schwarzen Liste übereinstimmt. In 414 endet das Verfahren 400. Das Gerät 100 kann weiterhin andere Funktionen ausführen.
  • 5 ist ein Blockdiagramm eines Computergerätes, das eine Kopie eines Option-ROM-Speichers basierend auf einem Vergleich starten kann, gemäß einem Beispiel. Das Computersystem 500 kann zum Beispiel ein Prozessor 510 und ein maschinenlesbares Speichermedium 520 mit Anweisungen 522, 524, 526 zum Starten einer Kopie eines Option-ROMs basierend darauf, ob der aktuelle Option-ROM geändert worden ist, beinhalten. Das Computergerät 500 kann zum Beispiel ein Notebook, ein Slate-Computergerät, eine tragbare Lesevorrichtung, eine drahtlose E-Mail-Vorrichtung, ein Mobiltelefon, ein Server, ein Arbeitsplatzrechner oder jedes andere Computergerät sein.
  • Der Prozessor 510 kann mindestens eine Zentraleinheit (CPU), mindestens ein Halbleiter-basierter Mikroprozessor, mindestens ein Grafikprozessor (GPU), andere Hardware-Geräte, die zur Abfrage und Ausführung der im maschinenlesbaren Speichermedium 520 gespeicherten Anweisungen geeignet sind, oder Kombinationen davon sein. Zum Beispiel kann der Prozessor 510 mehrere Kerne auf einem Chip, mehrere Kerne auf mehreren Chips oder Kombinationen davon enthalten. Der Prozessor 510 kann Anweisungen 522, 525, 526 abrufen, dekodieren und ausführen, um die Verfahren der 2, 3 und 4 zu implementieren. Als Alternative oder zusätzlich zum Abrufen und Ausführen von Anweisungen kann der Prozessor 510 mindestens eine integrierte Schaltung (IC), eine andere Steuerlogik, andere elektronische Schaltungen oder Kombinationen davon beinhalten, die eine Reihe elektronischer Komponenten zum Durchführen der Funktionalität der Anweisungen 522, 524, 526 beinhalten.
  • Das maschinenlesbare Speichermedium 520 kann jede elektronische, magnetische, optische oder andere physikalische Speichervorrichtung sein, die ausführbare Anweisungen enthält oder speichert. Daher kann das maschinenlesbare Speichermedium zum Beispiel ein Direktzugriffsspeicher (RAM), ein elektrisch löschbarer programmierbarer Nur-Lese-Speicher (EEPROM), ein Speicherlaufwerk, ein Compact Disc-Nur-Lese-Speicher (CD-ROM) und dergleichen sein. Das maschinenlesbare Speichermedium kann als solches nicht-flüchtig sein. Wie ausführlich hierin beschrieben, kann das maschinenlesbare Speichermedium 520 mit einer Reihe von ausführbaren Anweisungen zum Speichern einer Kopie von Daten eines Option-ROMs kodiert sein, die später anstelle des Option-ROMs verwendet werden können, wenn die Inhalte des Option-ROMs geändert sind. In einem Beispiel kann das maschinenlesbare Speichermedium 520 ein BIOS oder eine andere Firmware-Schnittstelle beinhalten. Ferner kann in bestimmten Beispielen das maschinenlesbare Speichermedium 520 Speicher für einen oder mehrere Hash-Werte und/oder Sicherungskopien von Option-ROM-Daten beinhalten. Außerdem können in bestimmen Szenarien mehrere maschinenlesbare Speichermedien in dem Computergerät 500 enthalten sein. Jedes der maschinenlesbaren Speichermedien 520 kann zum Speichern von Informationen verwendet werden.
  • Die Sicherungsanweisungen 522 können als Teil eines Sicherungsdienstprogramms ausgeführt werden, um die Inhalte eines Option-ROMs zu speichern. Mehrere Option-ROMs können derart gespeichert und verwendet werden. Die Sicherungsanweisungen 522 können bewirken, dass der Prozessor 510 eine Kopie der Daten des Option-ROMs einer Adapterkarte in einen nicht-flüchtigen Speicherort speichert. Außerdem können ein Hash-Wert des Option-ROMs und/oder die kopierten Daten gespeichert werden. Der Hash-Wert des Option-ROMs kann den kopierten Daten gleichen.
  • Wenn das Computergerät 500 später gebootet wird, können Bootanweisungen 524 vom Prozessor 510 ausgeführt werden, um die Komponenten des Computergerätes 500 zu initialisieren. Der Bootvorgang kann eine oder mehrere Adapterkarten mit den entsprechenden Option-ROMs initialisieren. In bestimmten Szenarien kann der Option-ROM, der kopiert wurde, geprüft werden, um festzustellen, ob der Option-ROM geändert worden ist. So kann der Prozessor 510 während des Bootvorgangs den Option-ROM abrufen und lesen, um die nachfolgenden oder aktuellen Daten, die zum Zeitpunkt des Bootvorgangs im Option-ROM gespeichert sind, wiederherzustellen. In dieser Ausführungsform beziehen sich die nachfolgenden Daten auf Daten, die sich während des Bootvorgangs im Option-ROM befinden.
  • Die Vergleichsanweisungen 526 können auf dem Prozessor 510 ausgeführt werden, um festzustellen, ob sich die zum Zeitpunkt des Bootvorgangs gespeicherten nachfolgenden Daten von den Kopiedaten unterscheiden. Wie zuvor erwähnt, kann dies auf Hash-Werten oder einem direkten Vergleich der Kopiedaten und den Inhalten des Option-ROMs basieren. Wenn der die Vergleichsanweisungen 526 ausführende Prozessor 510 feststellt, dass sich die nachfolgenden Daten von den Kopiedaten unterscheiden, werden die kopierten Daten zum Initialisieren der Adapterkarte verwendet. Diese Verwendung kann basierend auf der Veränderung oder basierend, zumindest teilweise, auf einer Anwenderabfrage bezüglich der Änderung automatisch erfolgen.
  • In einem Beispiel kann das Computergerät 500 während des Bootvorgangs eine Darstellung veranlassen, die angibt, dass der Option-ROM modifiziert worden ist. Das Computergerät 500 kann ebenfalls auf einer Anzeige eine Aufforderung an einen Anwender darstellen, um den Anwender aufzufordern, anzugeben, ob die Modifizierung des Option-ROMs beabsichtigt war. Ergibt die Antwort, dass die Änderung beabsichtigt war, dann kann der Option-ROM weiterhin verwendet werden. Ferner können in bestimmten Beispielen die Sicherungsdaten durch die aktuell im Option-ROM befindlichen Inhalte ersetzt werden.
  • In einem Beispiel empfängt das Computergerät 500 eine Antwort, die angibt, dass die Modifizierung nicht beabsichtigt war. In diesem Beispiel kann die Verwendung der kopierten Daten anstelle des Option-ROMs ferner auf der empfangenen Antwort basieren. Wie vorstehend erläutert, kann der Option-ROM mithilfe eines mit dem Option-ROM verknüpften Hash-Wertes auf eine schwarze Liste gesetzt werden.
  • Ferner können in einigen Beispielen die Adapterkarten auf Statusänderungen überwacht werden. Zum Beispiel kann der zu einer Adapterkarte gehörende Option-ROM basierend auf der Feststellung, dass die Adapterkarte aus dem Computergerät 500 entfernt worden ist, gelöscht werden.
  • Durch die vorstehenden Ansätze kann Sicherheit für ein Computersystem, das Adapter verwendet, die Option-ROMs beinhalten können bereitgestellt werden. So kann das Computersystem verwendet werden, ohne dass möglicherweise schädlicher Code in Option-ROMs ausgeführt wird, die modifiziert worden sind. Ferner können durch diesen Ansatz überprüfte Option-ROM-Änderungen bestätigt und verwendet werden und erlauben somit sichere Aktualisierungen des Option-ROMs. Außerdem können aktuelle Option-ROMs verwendet werden und müssen nicht geändert werden, um diese Ansätze zu implementieren.

Claims (15)

  1. Verfahren, das umfasst: Speichern einer Sicherungskopie eines Option-ROMs einer Adapterkarte in den Speicher für ein Gerät; Booten des Gerätes über einen nachfolgenden Bootvorgang; und Laden der Sicherungskopie während des nachfolgenden Bootvorgangs basierend auf der Feststellung, dass der Option-ROM geändert worden ist.
  2. Verfahren nach Anspruch 1, wobei das Verfahren ferner umfasst: Erzeugen eines Hash-Wertes der Sicherungskopie; und Speichern des Hash-Wertes.
  3. Verfahren nach Anspruch 2, wobei das Verfahren ferner umfasst: Erzeugen eines weiteren Hash-Wertes des Option-ROMs während des nachfolgenden Bootvorgangs; und Vergleichen des weiteren Hash-Wertes während des nachfolgenden Bootvorgangs mit dem Hash-Wert, wobei die Feststellung auf dem Vergleich basiert.
  4. Verfahren nach Anspruch 1, wobei das Verfahren ferner umfasst: Vergleichen des Option-ROMs und der Sicherungskopie während des nachfolgenden Bootvorgangs, wobei die Feststellung auf dem Vergleich basiert.
  5. Verfahren nach Anspruch 1, wobei der Option-ROM mindestens einer von einem Grafik-Option-ROM und einem Speicher-Option-ROM ist.
  6. Verfahren nach Anspruch 1, wobei das Verfahren ferner umfasst: Veranlassen der Darstellung einer Meldung, dass der Option-ROM geändert worden ist.
  7. Verfahren nach Anspruch 6, wobei das Verfahren ferner umfasst: Auffordern eines Anwenders des Gerätes, anzugeben, ob die Änderung des Option-ROMs beabsichtigt ist; und Empfangen einer Angabe, ob die Änderung beabsichtigt war.
  8. Verfahren nach Anspruch 7, wobei das Laden der Sicherungskopie ferner auf der Angabe basiert.
  9. Verfahren nach Anspruch 7, wobei, wenn die Änderung nicht beabsichtigt ist, das Verfahren ferner umfasst: Ermitteln eines weiteren Hash-Wertes des geänderten Option-ROMs; Speichern des weiteren Hash-Wertes; während des nachfolgenden Bootens des Gerätes Vergleichen des weiteren Hash-Wertes mit dem letzten Hash-Wert des Option-ROMs; und Verwenden der Sicherungskopie bei nachfolgenden Bootvorgängen des Gerätes, bis der weitere Hash-Wert nicht mehr mit dem Hash-Wert des Option-ROMs übereinstimmt.
  10. Computergerät, das umfasst: einen nicht-flüchtigen Speicher; ein Sicherungsmodul, um die Speicherung von Sicherungsdaten eines Option-ROMs einer Adapterkarte an einen Speicherort des nicht-flüchtigen Speichers zu veranlassen; und ein Bootmodul, um: festzustellen, dass andere nachfolgend im Option-ROM gespeicherten Daten nicht mit den am Speicherort gespeicherten Sicherungsdaten übereinstimmen; und die Adapterkarte mithilfe der Sicherungsdaten basierend, zumindest teilweise, auf der Feststellung zu initialisieren.
  11. Computergerät nach Anspruch 10, das ferner umfasst: ein Hashing-Modul zum Erzeugen eines ersten Hash-Wertes für die Sicherungsdaten und zum Erzeugen eines zweiten Hash-Wertes der nachfolgend gespeicherten Daten; ein Vergleichsmodul zum Vergleichen des erstes Hash-Wertes mit dem zweiten Hash-Wert, wobei die Feststellung auf dem Vergleich basiert.
  12. Computergerät nach Anspruch 11, das ferner umfasst: ein Darstellungsmodul zum Darstellen einer Meldung, dass die nachfolgend gespeicherten Daten nicht mit den Sicherungsdaten übereinstimmen; ein Managementmodul, um: eine Angabe zu empfangen, dass die Änderung in den nachfolgend gespeicherten Daten nicht beabsichtigt ist; und den zweiten Hash-Wert in den nicht-flüchtigen Speicher zu speichern, wobei während nachfolgender Bootvorgänge des Computergerätes das Bootmodul die Sicherungsdaten zum Initialisieren der Adapterkarte verwendet, bis der zweite Hash-Wert nicht mehr mit einem nachfolgenden Hash-Wert des Option-ROMs übereinstimmt.
  13. Nicht-flüchtiges computerlesbares Speichermedium, das Anweisungen speichert, die, wenn durch einen Prozessor einer Vorrichtung ausgeführt, bewirken, dass der Prozessor: eine Kopie von Daten eines Option-ROMs einer Adapterkarte speichert; das Gerät über einen Bootvorgang startet; während des Bootvorgangs den Option-ROM liest, um nachfolgende Daten abzufragen; feststellt, dass sich die nachfolgenden Daten von den kopierten Daten unterscheiden; und die kopierten Daten verwendet, um die Adapterkarte basierend auf der Feststellung zu initialisieren.
  14. Nicht-flüchtiges computerlesbares Speichermedium nach Anspruch 13, das ferner Anweisungen umfasst, die, wenn durch einen Prozessor ausgeführt, bewirken, dass der Prozessor: eine Darstellung veranlasst, die angibt, dass der Option-ROM während des Bootvorgangs modifiziert worden ist; einen Anwender auffordert, anzugeben, ob die Modifizierung beabsichtigt war; und eine Antwort empfängt, die angibt, dass die Modifizierung nicht beabsichtigt war, wobei die Verwendung der kopierten Daten zum Initialisieren der Adapterkarte ferner auf der Antwort basiert.
  15. Nicht-flüchtiges computerlesbares Speichermedium nach Anspruch 13, das ferner Anweisungen umfasst, die, wenn durch einen Prozessor ausgeführt, bewirken, dass der Prozessor: die kopierten Daten basierend auf einer Feststellung, dass die Adapterkarte entfernt worden ist, löscht.
DE112011105687.7T 2011-09-30 2011-09-30 Verwendung eines Option-ROM-Speichers Pending DE112011105687T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/054337 WO2013048458A1 (en) 2011-09-30 2011-09-30 Option read-only memory use

Publications (1)

Publication Number Publication Date
DE112011105687T5 true DE112011105687T5 (de) 2014-07-17

Family

ID=47996190

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112011105687.7T Pending DE112011105687T5 (de) 2011-09-30 2011-09-30 Verwendung eines Option-ROM-Speichers

Country Status (5)

Country Link
US (2) US9286468B2 (de)
CN (1) CN103827812B (de)
DE (1) DE112011105687T5 (de)
GB (1) GB2509001B (de)
WO (1) WO2013048458A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9286468B2 (en) * 2011-09-30 2016-03-15 Hewlett-Packard Development Company, L.P. Option read-only memory use
US9348604B2 (en) * 2013-04-24 2016-05-24 Dell Products L.P. System and method for inventory collection optimization by selective binding of the pre-boot drivers
US10372463B1 (en) * 2013-11-27 2019-08-06 EMC IP Holding Company LLC Provisioning a computerized device with an operating system
US9672361B2 (en) * 2014-04-30 2017-06-06 Ncr Corporation Self-service terminal (SST) secure boot
US10558468B2 (en) * 2015-10-22 2020-02-11 American Megatrends International, Llc Memory channel storage device initialization
US10203893B2 (en) 2015-10-22 2019-02-12 American Megatrends, Inc. Memory channel storage device detection
CN110134443A (zh) * 2018-02-08 2019-08-16 联想企业解决方案(新加坡)有限公司 在计算设备中执行附件的选项rom的方法和设备
JP2019200660A (ja) * 2018-05-17 2019-11-21 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、及びプログラム
US11068351B2 (en) * 2018-11-19 2021-07-20 International Business Machines Corporation Data consistency when switching from primary to backup data storage
US20230111120A1 (en) * 2020-03-27 2023-04-13 Hewlett-Packard Development Company, L.P. Alternate operating systems

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5327531A (en) * 1992-09-21 1994-07-05 International Business Machines Corp. Data processing system including corrupt flash ROM recovery
US6711675B1 (en) * 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US6907522B2 (en) 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
US7475427B2 (en) * 2003-12-12 2009-01-06 International Business Machines Corporation Apparatus, methods and computer programs for identifying or managing vulnerabilities within a data processing network
CN100375049C (zh) * 2005-03-28 2008-03-12 联想(北京)有限公司 一种基本输入输出系统芯片的恢复方法
CN100437502C (zh) * 2005-12-30 2008-11-26 联想(北京)有限公司 基于安全芯片的防病毒方法
US7870394B2 (en) 2006-05-26 2011-01-11 Symantec Corporation Method and system to scan firmware for malware
US7949874B2 (en) * 2006-09-28 2011-05-24 Phoenix Technologies Ltd. Secure firmware execution environment for systems employing option read-only memories
JP2008102618A (ja) 2006-10-17 2008-05-01 Toshiba Corp 電子機器およびファームウェア保護方法
KR101427646B1 (ko) 2007-05-14 2014-09-23 삼성전자주식회사 펌웨어의 무결성 검사 방법 및 장치
US8856776B2 (en) 2009-02-05 2014-10-07 International Business Machines Corporation Updating firmware without disrupting service
US10441710B2 (en) * 2009-02-09 2019-10-15 Baxter International Inc. Infusion pump and method to prevent titration errors in infusion therapies
TWI474260B (zh) * 2009-02-16 2015-02-21 Asustek Comp Inc 電腦系統與其主機板上之記憶體電路和開機方法
US9286468B2 (en) * 2011-09-30 2016-03-15 Hewlett-Packard Development Company, L.P. Option read-only memory use

Also Published As

Publication number Publication date
GB2509001B (en) 2020-08-05
US20140237226A1 (en) 2014-08-21
US9684518B2 (en) 2017-06-20
CN103827812B (zh) 2017-12-15
US9286468B2 (en) 2016-03-15
CN103827812A (zh) 2014-05-28
US20160188347A1 (en) 2016-06-30
WO2013048458A1 (en) 2013-04-04
GB201400351D0 (en) 2014-02-26
GB2509001A (en) 2014-06-18

Similar Documents

Publication Publication Date Title
DE112011105687T5 (de) Verwendung eines Option-ROM-Speichers
DE112018002031B4 (de) Sichern einer betriebssystemkonfiguration unter verwendung von hardware
DE112005002985B4 (de) Verfahren zum Einrichten einer vertrauenswürdigen Ablaufumgebung in einem Computer
DE102008011925B4 (de) Sicheres Initialisieren von Computersystemen
DE10297273B4 (de) Verfahren zur Bereitstellung von Systemintegrität und Legacy-Umgebungsemulation
DE102007057901B4 (de) Anordnung, Computerprogrammprodukt und Verfahren zur sicheren Aktualisierung von Firmware einer Hardwarevorrichtung unter Verwendung eines Hypervisor
DE10393662T5 (de) Bereitstellen eines sicheren Ausführungsmodus in einer Preboot-Umgebung
DE112007000363T5 (de) Verfahren zum Bereitstellen sicherer Firmware
DE112005002949T5 (de) System, Verfahren und Vorrichtung zur Sicherung eines Betriebssystems
DE112011102876T5 (de) Ressourcenverwaltungs- und Sicherheitssystem
DE202010017644U1 (de) Hybridspeichervorrichtung
DE102022105069A1 (de) Systeme, verfahren und vorrichtungen für gesicherte nichtflüchtige speicher
US9195832B1 (en) System and method for providing access to original routines of boot drivers
US9384353B2 (en) System and method for encryption of disk based on pre-boot compatibility testing
EP3304403B1 (de) Verfahren zum sicheren booten eines computersystems und computersystem
DE102021127242A1 (de) System und Verfahren zum Signieren und Verriegeln einer Boot-Informationsdatei für ein Host-Computersystem
CN111428240B (zh) 一种用于检测软件的内存违规访问的方法及装置
Votipka et al. Passe-partout: A general collection methodology for Android devices
CN109784041B (zh) 事件处理方法和装置、以及存储介质和电子装置
EP3286872B1 (de) Bereitstellen eines gerätespezifischen kryptographischen schlüssels aus einem systemübergreifenden schlüssel für ein gerät
KR20230082388A (ko) 차량 제어기의 부트로더 검증 장치 및 그 방법
CN114861160A (zh) 提升非管理员账户权限的方法及装置、设备、存储介质
CN109474453B (zh) 基于封闭式壁垒模型的业务应用自动更新方法及系统
CN105550567A (zh) 一种Windows虚拟机USB设备读写权限管控方法
WO2020013810A1 (en) Storing new settings for write-protected systems on non-write-protected storage

Legal Events

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

Owner name: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., SPR, US

Free format text: FORMER OWNER: HEWLETT-PACKARD DEVELOPMENT COMPANY, L.P., HOUSTON, TEX., US

R082 Change of representative

Representative=s name: HL KEMPNER PATENTANWAELTE, SOLICITORS (ENGLAND, DE