JP5767751B2 - Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム - Google Patents

Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム Download PDF

Info

Publication number
JP5767751B2
JP5767751B2 JP2014519289A JP2014519289A JP5767751B2 JP 5767751 B2 JP5767751 B2 JP 5767751B2 JP 2014519289 A JP2014519289 A JP 2014519289A JP 2014519289 A JP2014519289 A JP 2014519289A JP 5767751 B2 JP5767751 B2 JP 5767751B2
Authority
JP
Japan
Prior art keywords
bios
firmware
initialization
processor
verification
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
Application number
JP2014519289A
Other languages
English (en)
Other versions
JP2014518428A (ja
JP2014518428A5 (ja
Inventor
ヘルド、ジェームズ、ピー.
ロビンソン、スコット、エイチ.
ジマー、ヴィンセント、ジェイ.
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of JP2014518428A publication Critical patent/JP2014518428A/ja
Publication of JP2014518428A5 publication Critical patent/JP2014518428A5/ja
Application granted granted Critical
Publication of JP5767751B2 publication Critical patent/JP5767751B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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
    • 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
    • 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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • 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/2153Using hardware token as a secondary aspect
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Stored Programmes (AREA)

Description

本開示は、BIOS保護に関する。特に、BIOSフラッシュ攻撃に対する保護および通知に関する。
コンピューティングデバイス、パーソナルコンピュータ、ワークステーションおよびサーバ(以下では、「コンピュータ」と呼ぶ)は通常、コンピュータハードウェア(例えば、プロセッサ、チップセット、メモリ等)とオペレーティングシステム(OS)との間のインターフェースとして、ベーシックインプットアウトプットシステム(BIOS)を備える。BIOSは、コンピュータの低レベルハードウェアサービス、例えば、コンピュータマザーボードに対応付けられている基本的なキーボード、ビデオ、ディスクドライブ、入出力(I/O)ポートおよびチップセットドライバ(例えば、メモリコントローラ)の初期化およびイネーブル化を行うためのファームウェアコードおよび/またはソフトウェアコードを有する。
ベーシックインプットアウトプットシステム(BIOS)等のファームウェアによるコンピュータシステムの初期化および設定は、プレブートフェーズで実施される。プロセッサは、リセット後、BIOSファームウェアを格納している不揮発性ストレージデバイスに対してマッピングされている所定のアドレスを参照する。プロセッサは順次、BIOS命令をフェッチする。これらのBIOS命令によって、コンピュータは通常、電子ハードウェアを初期化し、周辺デバイスを初期化し、オペレーティングシステムをブートする。UEFI(ユニファイド・エクステンシブル・ファームウェア・インターフェース)は、セキュリティ(SEC)フェーズ、プラットフォーム環境初期化(PEI)フェーズ、ドライバ実行環境(DXE)フェーズおよびブートデバイス選択(BDS)フェーズ等、複数のフェーズを含む最新型のBIOSファームウェアアーキテクチャである。
プラットフォームファームウェアのセキュリティを侵害する方法は常に発展している。プラットフォームファームウェアのセキュリティを侵害することで、ツールはシステムを攻撃することができるようになる。セキュリティが侵害されたファームウェアは、ソフトウェア攻撃とは異なり、検出が困難で修復が難しい。セキュリティが侵害されたファームウェアは概して、大半のウイルス対策ツールおよびスパイウェア対策ツールを含むシステムのソフトウェアレイヤに対して不可視である。ファームウェアは不可視であるが存在し続けるので、悪意あるルートキットにとってファームウェアは理想的な対象となる。ルートキットは、実行中のソフトウェアに対して最高の特権を実現すると同時に可視性は最低限まで抑えられている、プラットフォーム中に含まれているコンパクトでドーマント方式の悪意あるフックである。ルートキットの主な機能は、攻撃を実行することか、または、感染したシステム上の他のウイルスおよびワームに対してAPIを提供することである。
BIOSは通常、プログラミングのやり直しが可能になるように、フラッシュメモリに格納されている。そして、プログラミングは、フォームファクタおよびエンドユーザの利便性を考慮して、ジャンパ変更を行うことなく実行されるとしてよい。このようにプログラミングのやり直しが可能であるので、権限を持たない人物および/またはマルウェアによる攻撃に対して脆弱になる。BIOSにおける脆弱性も同様に悪用される可能性がある。システムBIOSへのアクセスによって、システムリブートの後も存在し続けるルートキットがインストールされ得る。ウイルス対策ソフトウェアは、このような「持続性」のルートキットを高い信頼性で検出することができないとしてよい。
場合によっては、BIOSは真のROMに格納されて、プログラミングのやり直しができないようにすることもある。しかし、BIOS更新およびその他の正当な修正は必要である。これらの修正は、システムおよびBIOSを格納しているROMに対して物理的にアクセスすることによってのみ実現されるものである。
請求の対象となる主題の特徴および利点は、これらの主題に対応するものとして以下に記載する実施形態の詳細な説明から明らかになるであろう。以下に記載する説明は、添付図面を参照しつつ考慮されたい。添付図面は以下の通りである。
本開示のさまざまな実施形態に応じたシステム(コンピューティングプラットフォーム)を示す図である。 本開示の一実施形態に応じたフラッシュメモリに格納されている情報の格納構成の一例を示す図である。 本開示に応じた、BIOSを検証する処理の一例を説明するフローチャートである。 本開示に応じたBIOSを検証する処理の一例を説明する別のフローチャートである。 本開示の一実施形態に応じた、リセットからOSブートまでのブート処理に対応する処理を説明する図である。 以下に記載する「発明を実施するための形態」は実施形態例を参照するが、当業者には多くの変更例、変形例および変化例が明らかである。
本開示は概して、BIOSストレージ攻撃に対する保護および通知を行うシステム(および方法)を提供する。システム(コンピューティングプラットフォーム)の一例によると、プロセッサと、当該プロセッサに結合されているオフダイ不揮発性メモリとを有するプロセッサ部を備える。プロセッサは、プロセッサ初期化モジュールを含み、揮発性および不揮発性のメモリを含むとしてよい。プロセッサ初期化モジュールは初期化ファームウェア検証モジュールを含み、プロセッサ部は初期化ファームウェアを含む。初期化ファームウェアは、プロセッサの命令セットアーキテクチャ(ISA)に書き込まれているとしてよく、オフダイ不揮発性メモリに格納されているとしてよい。
プロセッサ初期化モジュールは、プロセッサの内部初期化を実行するべく、リセットに応じて最初に実行されるように構成されている。リセットは、電源オンによって、および/または、モデル固有レジスタの状態によってトリガされるとしてよい。本明細書で用いる場合、「リセット」という用語は、フロー制御がプロセッサ初期化モジュールに戻る再スタートイベントである。リセットは、システムの電気コンポーネントが再スタートの前に電力供給を停止させる「電源オンリセット」を含む。メモリのコンテンツは、その後の修復のために保存されるとしてもよいし、保存されないとしてもよい。リセットはさらに、システムの電気コンポーネントへの電力供給が維持される「CPU限定リセット」を含む。
初期化ファームウェア検証モジュールは、プロセッサ初期化モジュールの一部として、初期化ファームウェアを検証するように構成されている(つまり、検証または認証しようと試みる)。プロセッサ初期化モジュールおよび/または初期化ファームウェア検証モジュールは、プロセッサの揮発性および/または不揮発性のメモリに格納されているマイクロコード、回路および/または状態情報を含むとしてよい。初期化ファームウェアは、初期化ファームウェア検証モジュールの後に実行されるように構成されており、BIOSを検証するように構成されている(つまり、検証するよう試みる)。初期化ファームウェアは、プロセッサのISAの形式に準拠しているか、または、内部形式に準拠しているとしてよい。初期化ファームウェアおよび/またはBIOSの検証が失敗すると、システムは1以上の応答を開始するように構成されている。応答は、これらに限定されないが、初期化ファームウェアおよび/またはBIOSが実行されないようにすること、(例えば、アウトオブバンド(OOB)通信を利用して)修復を開始すること、検証が失敗したことをモデル固有レジスタ(MSR)を用いて報告すること、停止すること、シャットダウンすること、および/または、BIOSを実行させ、オペレーティングシステム(OS)をブートさせるべく、「検疫モード」で動作するようコンピューティングプラットフォームを設定すること、を含む。検疫モードでは、システムの一部の機能はBIOSおよびOSに対して利用不可能になるとしてよい。
プロセッサ初期化モジュール、初期化ファームウェア検証モジュールおよび初期化ファームウェアは、プロセッサパッケージの一部であり、通常はプロセッサ製造者以外は利用できないという利点がある。初期化ファームウェアの生成元および正当性はプロセッサ部によって保証されるとしてよく、初期化ファームウェアはパーティション化されたメモリを含む分離実行モードで実行され得る。UEFI BIOSとは異なり、内部プロセッサの初期化/リセットおよびファームウェアインターフェースは、一般的に利用可能にはならないとしてよい。検疫モードで動作させることによって、BIOS検証が失敗した際には、動作が全て停止するのではなく、動作が限定されることになる。この後、BIOS検証の失敗はユーザに通知されるとしてよい。例えば、BIOSは、例えば、マザーボード上での物理的なジャンパ設定を利用することで、ローカルに更新されるとしてよい。別の例を挙げると、BIOSは、ネットワークを介してリモートエージェントとのOOB通信を利用して、更新されるとしてよい。
<システムアーキテクチャ>
図1は、本開示のさまざまな実施形態に応じたシステムを示す図である。図1のシステム100は、プロセッサ部102と、システムメモリ(RAM)104(OS150を含む)と、プラットフォームコントローラハブ(PCH)106と、トラステッドプラットフォームモジュール(TPM)108と、1以上のディスクドライブ110と、マイクロプロセッササブシステム112と、EEPROM114と、ネットワークポート116とを備えるとしてよい。システム100は、ネットワーク120およびネットワークポート116を介してリモートエージェント118に結合されているとしてよい。TPM108は、一の別箇のブロックとして図示されているが、一部の実施形態によると、マイクロプロセッササブシステム112に含まれるとしてもよい。
システム100の概略を説明すると、プロセッサ部102は、初期化ファームウェア検証モジュール128を含むプロセッサ初期化モジュール126を実行するように構成されており、システムリセットに応じて、例えば、システムの電力オンおよび/またはモデル固有レジスタ(MSR)の状態に応じて、初期化ファームウェア130を実行するとしてよい。プロセッサ初期化モジュール126および初期化ファームウェア検証モジュール128は、マイクロコードおよび/または回路で実現されるとしてよい。初期化ファームウェア検証モジュール128は、初期化ファームウェア130を検証するように構成されており、初期化ファームウェア130はBIOSを検証するように構成されている。初期化ファームウェア検証モジュール128は、ダイ上(つまり、プロセッサ122のダイ上)および/またはパッケージ上(つまり、プロセッサ部102内)に含まれているとしてよい。例えば、専用のステートマシンおよび/または埋め込み(従属)コントローラが、検証動作を支援および/または実施するとしてよい。このような専用のステートマシンおよび/または埋め込みコントローラは、プロセッサ部102に含まれるとしてよい。例えば、初期化ファームウェア130は、検証済みのブートを実施するべく、暗号署名されたBIOSに対して暗号化インテグリティチェックを実行するとしてよい。BIOS検証が失敗すると、プロセッサ部102は1以上の応答を開始するように構成されている。応答には、これらに限定されないが、BIOS(およびOS)アクセスを制限すること、および/または、一部のシステム技術をディセーブルすること(つまり、検疫モードでブートすること)、(例えば、報告のために)モデル固有レジスタを更新すること、(例えば、アウトオブバンド(OOB)機能を利用して)修復を開始すること、BIOSの動作を中止させること、OSのブートを中止させること、停止させること、シャットダウンすること、および/または、これらの組み合わせが含まれる。本明細書で説明するように、特定の応答を、製造時に選択するとしてよく、および/または、プロセッサ設定および/または初期化ファームウェアを更新することによって選択するとしてよい。
プロセッサ部102は、プロセッサ(CPU)122およびオフダイ不揮発性メモリ124を有するとしてよい。例えば、オフダイ不揮発性メモリ124は、プロセッサ122およびオフダイ不揮発性メモリ124を含むプロセッサ部パッケージに含まれるとしてもよい。別の例を挙げると、不揮発性メモリ124は、プロセッサ122内に、例えば、同じダイに含まれるとしてよい。プロセッサ122は、不揮発性メモリ123、プロセッサ初期化モジュール126、初期化ファームウェア検証モジュール128、pMSR132および/またはeMSR133を含むとしてよい。初期化ファームウェア検証モジュール128は、プロセッサ初期化モジュール126に含まれるとしてもよいし、または、別箇のモジュールとして構成してもよい。プロセッサ初期化モジュール126および/または初期化ファームウェア検証モジュール128は、揮発性および/または不揮発性メモリに格納されているマイクロコード、回路および/または状態情報を含むとしてよい。
オンダイ型および/またはオンパッケージ型の不揮発性メモリは、複数の不揮発性メモリ技術、例えば、これらに限定されないが、コンテンツが製造時に設定されるリードオンリー型(例えば、ROM)、製造時に更新可能なもの(例えば、ヒューズ)、および/または、現場で更新可能なもの(例えば、ヒューズ、フラッシュ)を含むとしてよい。例えば、プロセッサ不揮発性メモリ123は、マイクロコードおよび/または他の持続性のプロセッサ状態情報を格納するように構成されているとしてよい。オフダイ不揮発性メモリ124は、初期化ファームウェア130を格納するように構成されている。初期化ファームウェア検証モジュール128および初期化ファームウェア130は通常、プロセッサ製造者によって生成されるとしてよく、製造プロセス時に格納されるとしてよい。プロセッサ部102は、初期化ファームウェア検証モジュール128および初期化ファームウェア130を含み、比較的セキュアであるとしてよく、概してマルウェアによる攻撃では到達できないとしてよい。初期化ファームウェア検証モジュール128(例えば、ヒューズおよび/または再プログラミング可能なステートマシンを含む)および初期化ファームウェア130は、例えば、暗号鍵を用いて、セキュアに更新されるとしてよい。
プロセッサ不揮発性メモリ123の少なくとも一部は、1以上のモデル固有レジスタ(MSR)132、133を介してアクセス可能であるとしてよい。MSRは、プロセッサ設定にアクセスし、および/または、プロセッサ設定を制御するように構成されているとしてよい。MSRは、持続性MSR(pMSR)132および/または一時性MSR(eMSR)133を含むとしてよい。持続性MSR132は、複数の電力サイクルにわたって持続するように構成されており、つまり、不揮発性と見なされるとしてよい。一時性MSR133は、システム100が電力供給を受けて実行中の間に限り持続するように構成されていて、つまり、揮発性と見なされるとしてよい。pMSR132およびeMSR133の両方は、設定ポリシーを公表すると共にプロセッサ122の状態を第三者に報告する。例えば、MSR132、133は、電力管理機能をオンオフ制御するために、エラーを報告するために、状態を報告するために、および/または、特定の機能(例えば、ハイパーバイザ)をオンオフ制御するために、用いられるとしてよい。一部の実施形態によると、eMSR133は、検証の失敗を報告するために用いられるとしてよい。例えば、BIOS検証が失敗すると、BIOS_VERIFICATION MSRが設定されるとしてよい。BIOS_VERIFICATION MSRを一時性MSR133として設定することによって、BIOSベンダは、コンピューティングプラットフォームの動作寿命の間はBIOSを更新することが出来るという利点がある。
一般的に、MSR132、133は、読出MSR命令(例えば、状態へのアクセス)または書込MSR命令(例えば、MSRのコンテンツの変更)を用いて、第三者の関数によってアクセスされるとしてよい。MSR132、133の一部は「不変」であるとしてよい。これは、不変のMSRのコンテンツは、アウトオブバンド方式またはインバンド方式のプロセッサISAコード実行動作で第三者によって変更できないことを意味する。例えば、BIOS_VERIFICATION MSRは不変MSRであるとしてよい。マルウェアは、不変MSRのコンテンツを変更できないので、不変MSRは、例えば、BIOSの状態を報告するチャネルとして比較的セキュアであるとしてよい。一実施形態によると、MSR132、133は、初期化ファームウェア検証モジュール128および初期化ファームウェア130および対応付けられている検証動作の実行をトリガするPlatform_Update MSRを含むとしてよい。例えば、Platform_Update MSRは、候補BIOSファームウェアの更新が書き込まれると、実行をトリガするとしてよい。
プロセッサ部102は、システム100のリセットに応じて、初期化ファームウェア検証モジュール128を含むプロセッサ初期化モジュール126を実行するように構成されている。プロセッサ部102は、モデル固有レジスタ、例えば、Platform_Update MSRに基づいて、プロセッサ初期化モジュール126および初期化ファームウェア検証モジュール128を実行するとしてよい。初期化ファームウェア検証モジュール128は、本明細書で説明しているように、初期化ファームウェア130を検証する。初期化ファームウェア130の検証が失敗すると、初期化ファームウェア検証モジュール128は、本明細書で説明するように、1以上の応答を開始するとしてよい。例えば、プロセッサ初期化モジュール126および初期化ファームウェア検証モジュール128は、揮発性および/または不揮発性のストレージに格納されているマイクロコード、回路および/または状態情報を含むとしてよい。初期化ファームウェア130の検証が成功すると、プロセッサ部102は初期化ファームウェア130を実行する。このように、初期化ファームウェアは、BIOSを検証する前に、確認(検証)されるとしてよい。本明細書で説明する方法およびシステムは、プロセッサ初期化モジュール126および初期化ファームウェア検証モジュール128に根差したトラストチェーンを構築し、初期化ファームウェア130まで拡張した後、BIOS134へと拡張するように構成されている。
EEPROM114は、BIOS134、ファームウェアインターフェーステーブル(FIT)136およびマネジビリティエンジン(ME)ファームウェア138を格納する。EEPROM114は、プログラミングし直すことが可能であり、BIOS134を更新することが可能になる。BIOS134は、例えば、マイクロプロセッササブシステム112およびマネジビリティエンジンファームウェア138を介してネットワーク120に結合されているので、リモートプログラミングが可能であるとしてよい。例えば、EEPROM114は、ローカルまたはリモートに再プログラミング可能なフラッシュメモリであってよい。例えば、フラッシュメモリは、NOR型フラッシュメモリであってよい。NOR型フラッシュメモリは通常、NAND型フラッシュメモリよりも小型で、バイト単位で書込可能、ブロック単位で消去可能であり(例えば、NOR型の場合は1メガバイトから16メガバイトであるのに対して、NAND型の場合はギガバイト単位)、通常はexecute−in−place型のコードについて利用される。EEPROM114は、別の種類の再プログラミング可能で不揮発性のストレージであってもよく、これらに限定されないが、抵抗型および/または電荷型のメモリ(例えば、フェライトコアメモリ)、相変化メモリ(PCM)、磁気型メモリ(MRAM)、カーボンナノチューブ型不揮発性メモリ技術等であってもよい。このような技術は、再プログラミング可能な場合には「不揮発性RAM」または「NVRAM」と呼ばれるとしてよく、ヒューズ/ヒューズアレイ等の一回のみ書込み可能なストレージを含むとしてよい。NOR型フラッシュおよびフラッシュメモリについて本明細書で説明しているが、本開示に応じて他の不揮発性メモリ技術を利用するとしてもよい。利用する特定のメモリ技術は、システム要件に応じて決まるとしてよく、設計実行である。
図2は、フラッシュメモリ114に格納されている情報について格納構成200の一例を示す図である。フラッシュは、BIOS初期化モジュール202、BIOS204および他のファームウェア206を備えるとしてよい。BIOS初期化モジュール202は、プロセッサリセットベクトル208、FITポインタ210およびFIT構造212を有するとしてよい。FIT構造212は、FIT終端マーカー214、BIOS初期化モジュールポインタ216、検証証明書218および/またはFITヘッダ220を含むとしてよい。図2のFIT構造212は図1のFIT136に対応し、図2のBIOS204は図1のBIOS134に対応する。
FIT136は、フラッシュメモリ114に格納されている、BIOS134を含むファームウェアに対してインターフェース(つまり、ポインタ)を提供する。FIT136が空であるか、または、ヌル化されている場合、プロセッサブートストラップは、デフォルトプロセッサブートストラップまたはリセットベクトルアドレスに戻るとしてよい。FIT136は、空でない場合、実行可能なコードおよび/またはデータを記述するように構成されているさまざまなレコードを含むとしてよい。このようなレコードは、ポインタおよびその他のメタデータ、例えば、デフォルトリセットベクトルアドレスに代えて、または、これに加えて、実行されるべきフラッシュメモリ内のコードブロック/データブロックへのポインタを含むとしてよい。FIT136または同様のメカニズムは、プロセッサのデフォルトリセットベクトル208を用いて実現されるデフォルト動作に代えて、または、これに加えて、別の仕様および/または機能のロードを可能にするように構成されている。この構成は、システムのカスタマイズ化およびパッチングには有用であるとしてよい。初期化ファームウェア130は、FIT構造212内のポインタ(例えば、BIOS初期化モジュールポインタ216)を用いてフラッシュ114におけるBIOS134の位置を特定するとしてよい。一部の実施形態によると、初期化ファームウェア130は、フラッシュ114検索処理および/またはプラットフォームストラップ処理等の他の技術を利用して、BIOS134の位置を決定するとしてよい。
BIOS134は、ハードウェアを初期化および試験して、OS150をロードする。再プログラミング可能であることによって、BIOS134は、(EEPROM114の代わりとなることなく)更新が可能になるが、悪意あるプログラムによる攻撃手段ともなり得る。BIOS134のセキュリティを侵害した悪意あるプログラムは通常、比較的高い特権レベルで実行されるので、従来のマルウェア対策プログラムでは検出するのが困難である。本開示に応じた初期化ファームウェア検証モジュール128および初期化ファームウェア130は、プロセッサ122がBIOS134のコードをフェッチおよび/または実行する前に実行されるように構成されているので、セキュリティが侵害されたBIOSを実行前に検出するという利点がある。BIOS134のセキュリティが侵害されている場合(つまり、検証が失敗すると)、初期化ファームウェア130は、本明細書で説明するように、1以上の応答を開始するように構成されている。例えば、セキュリティが侵害されたシステムを検出することに応じて、別のFITエントリが、EEPROM114内の格納構造200における修復BIOSブロックを指し示すように構成されるとしてよい。別の例によると、EEPROM114は、セキュリティが侵害されたシステムを検出することに応じてアクセス(デコード)されるEEPROM114の別領域(または、別箇のEEPROM)にBIOS134の複製を格納しているとしてよい。言い換えると、システム100は、BIOS134の検証が失敗した場合に実行されるべき「バックアップ」BIOSを含むとしてよい。バックアップBIOSは、EEPROM114に格納されているとしてもよいし、および/または、別のEEPROMに格納されているとしてよい。
図1を再度参照すると、マイクロプロセッササブシステム112は、埋め込みマイクロプロセッサ140、キャッシュメモリ142および不揮発性メモリ(ROM)144を含むとしてよい。マイクロプロセッササブシステム112は、フラッシュメモリ114に格納されているマネジビリティエンジンファームウェア138を実行する。本実施形態では、マイクロプロセッササブシステム112は、プラットフォームコントローラハブ(PCH)106を介してプロセッサ部102に結合されており、ネットワークポート116を介してネットワーク120およびリモートエージェント118に結合されている。マイクロプロセッササブシステム112は、アウトオブバンド通信を可能とする。アウトオブバンド通信は、マイクロプロセッササブシステム112とプロセッサ部102との間で、および/または、システム100とリモートエージェント118との間で行われるとしてよい。例えば、BIOS134の検証が失敗すると、マイクロプロセッササブシステム112(およびマネジビリティエンジンファームウェア138)は、リモートエージェント118との間でOOB通信を行って、更新後の検証済みのBIOSをリモートエージェント118から取得するとしてよい。これは、フラッシュメモリ114に実際に現場で物理的にアクセスすることなく、攻撃されたフラッシュメモリに格納されているBIOSをリモートに更新および/または認証することが可能になるという利点がある。
このため、リセット(例えば、電源オンに対応するリセットおよび/またはモデル固有レジスタの状態に基づくリセット)に応じて、システム100は、プロセッサ初期化モジュール126を実行して初期化シーケンス(つまり、プロセッサ122の初期化フェーズ)、および、プロセッサ部102に含まれている初期化ファームウェア130を検証する初期化ファームウェア検証モジュール128を実行する。システム100はさらに、初期化ファームウェア130を実行してBIOS134を検証する。初期化ファームウェア130および/またはBIOS134の検証が失敗すると、システム100はさらに、これらに限定されないが、システム(コンピューティングプラットフォーム)を設定して機能が限定された検疫モードでブートさせること、(例えば、OOB機能を用いて)修復プロセスを開始すること、1以上のMSRを利用して検証ステータスを報告すること、初期化ファームウェアおよび/またはBIOSが実行されないようにすること、シャットダウンすること、および/または、プロセッサを停止させること等の1以上の応答を開始する。BIOS134とは異なり、プロセッサ部102に含まれているプロセッサ初期化モジュール126、初期化ファームウェア検証モジュール128および初期化ファームウェア130は、比較的アクセスし難く(例えば、オンダイ型か、または、プロセッサパッケージ基板上にある)、公開されているインターフェースプロトコルを概して含んでいないという利点がある。プロセッサ初期化モジュール126、初期化ファームウェア検証モジュール128、初期化ファームウェア130およびプロセッサ部102のこのような構成によって、BIOS134が認証される理由となる「信頼のルート」が得られる。
<方法の一例>
図3は、本開示に応じたBIOSを検証(認証)するための処理の一例を示すフローチャート300を示す図である。本実施形態で図示している処理は、システム100に対応付けられている回路、ファームウェアモジュールおよび/またはソフトウェアモジュール(例えば、CPU122を含むプロセッサ部102)によって実行されるとしてよい。処理フローは、処理305で開始されるとしてよい。処理305は、例えば、電源オンリセットまたはCPU限定リセット等のリセットを含む。処理310は、プロセッサ初期化モジュールを実行することを含む。処理310は、初期化ファームウェア検証モジュールを実行することを含み、電源オンに対応付けられている他のプロセッサ動作を含むとしてよい。初期化ファームウェアが認証されるか否か(つまり、検証が成功するか否か)は、処理315で判断されるとしてよい。
初期化ファームウェアが認証されれば、処理330において初期化ファームウェアが実行されるとしてよい。BIOSが認証されるか否かは、処理335で判断するとしてよい。BIOSが認証されると、処理340において完全システムブートがイネーブルされるとしてよい。例えば、この認証のための検証には、デフォルトリセットベクトル経路または別のFIT仕様の経路またはモジュールに沿った1以上のBIOS要素が含まれるとしてよい。「完全システムブート」は、全てのシステム機能をBIOSおよびOSが利用可能であることを意味している。処理345は、制御をBIOSに移行することを含むとしてよい。例えば、初期化ファームウェア130は、システム100の制御をBIOS134に渡すとしてよい。処理350は、初期化システムハードウェアを含むシステムをブートすることと、OSをロードすることとを含むとしてよい。
初期化ファームウェアが認証されない場合、および/または、BIOSが認証されない場合(つまり、検証に失敗する場合)、1以上の応答が処理355で開始されるとしてよい。初期化ファームウェア検証モジュール128は、初期化ファームウェアの検証が失敗すると、1以上の応答を選択および開始するように構成されているとしてよい。初期化ファームウェア130は、BIOSの検証が失敗すると、1以上の応答を選択および開始するように構成されているとしてよい。これらの応答は、処理360、365、370(および375)、380、385、390および395のうち1以上を含むとしてよい。処理380は停止することを含む。例えば、プロセッサ122は処理380において停止するとしてよい。処理385は、初期化ファームウェアおよび/またはBIOSの実行を停止させることを含む。システム(例えば、システム100)は、処理395においてシャットダウンするとしてよい。
処理360は、システムを検疫モード(つまり、動作が制限または限定されたモード)でブートさせることを含む。検疫モードでは、一部のシステム機能および/または一部のシステムコンポーネントへのアクセスは、ディセーブルされるとしてよい。検疫モードは、初期化ファームウェアおよび/またはBIOSの検証が失敗した場合に、システム機能を限定できるように構成されている。例えば、ハイパーバイザ等の「相対的に高位の」システム機能をディセーブルするとしてよい。処理365は、モデル固有レジスタ(MSR)を更新することを含む。モデル固有レジスタの更新は、初期化ファームウェアおよび/またはBIOSの検証の失敗を通知するように構成されているとしてよい。モデル固有レジスタは、不変レジスタであってよく、第三者による変更が禁止されており、比較的セキュアな報告方法が実現される。例えば、MSRが更新されると、失敗条件の詳細な内容を通知することなく、失敗を通知するとしてよい。このように報告を制限することで、攻撃者が失敗条件の詳細な内容を利用して検出機能のセキュリティを侵害しないようにする。
処理370において修復プロセスが開始されるとしてよい。処理370は、リセットを含む初回再試行を可能とするように構成されているクロスリセット状態を維持すること、初期化ファームウェアおよび/またはBIOSのバックアップコピーへロールオーバーすること、初期化ファームウェアおよび/またはBIOSの以前のイメージにロールバックすること、および/または、初期化ファームウェアおよび/またはBIOSを更新することを含むとしてよい。初期化ファームウェアのバックアップコピーが存在するか否かは、不揮発性メモリに関連する特性に応じて決まるとしてよい。処理370における再試行回数は制限があるとしてよい。例えば、再試行回数が所定値に到達すると修復プロセスを終了させるようトリガするカウンタが実現されているとしてよい。別の例によると、ロールオーバーまたはロールバックによって持続状態が修正され、この後に再試行すると修復プロセスの終了がトリガされるとしてもよい。初期化ファームウェアおよび/またはBIOSは、セキュア技術(つまり、暗号化技術)を用いて更新するとしてよい。
処理370は、アウトオブバンド(OOB)通信を介して初期化ファームウェアおよび/またはBIOSを更新することを含むとしてよい。例えば、図1のマイクロプロセッササブシステム112は、OOB通信を利用してリモートエージェント118との間でネットワーク120を介して通信を行い、更新後のセキュリティ侵害されていないBIOSを取得するとしてよい。例えば、更新後のBIOSは、検証が失敗したBIOSよりもmonotone改定バージョンが上であるとしてよい(例えば、以前の、例えば、エラーを含むBIOSに戻るロールバック攻撃を回避するため)。マイクロプロセッササブシステム112はさらに、取得したBIOSでフラッシュメモリ114をプログラミングし直すとしてよい。この後、処理375においてリセットを開始するとしてよい。
処理390は、時間遅延を実現することを含むとしてよい。例えば、時間遅延は応答同士の間に挿入されるとしてよい。別の例を挙げると、処理370において時間遅延が再試行同士の間に挿入されるとしてよい。時間遅延は、攻撃の頻度、および、攻撃が成功または失敗と評価される頻度を低減するように構成されている。
処理360、365、370、375、380、385、390および395で説明した応答は、個別に実行されるとしてもよいし、または、組み合わせて実行するとしてもよい。特定の応答は、予め定められて、例えば、オフダイ不揮発性メモリ124に格納されているとしてよい。例えば、応答は、さまざまなタイミングで、さまざまな方法を利用して選択されるとしてもよい。例えば、これらに限定されないが、製造時に、最初の動作時に、ジャンパを利用して、特別な保護されているユーザによる最初のセットアップによって、および/または、初期化ファームウェア検証モジュールおよび/または初期化ファームウェアを更新することで、選択するとしてよい。
このため、フローチャート300に図示されているように、プロセッサ初期化モジュールおよび初期化ファームウェア検証モジュールは、初期化ファームウェアおよびBIOSより前に実行されるように構成されており、初期化ファームウェアおよびBIOSを認証するとしてよい。初期化ファームウェアおよび/またはBIOSの検証が失敗すると、1以上の応答が開始されるとしてよい。応答の一部は、システム、例えば、システム100を検疫モードで動作させ、初期化ファームウェアおよび/またはBIOSを更新させ、および/または、初期化ファームウェアおよび/またはBIOSの検証の失敗を通知させるように構成されているという利点がある。したがって、BIOS検証の失敗に対する応答は、システム100を停止させることに限定されない。
図4は、本開示に応じたBIOSを検証するための処理の一例を示す別のフローチャート400を示す図である。本実施形態で図示している処理は、システム100に対応付けられている回路、ファームウェアモジュールおよび/またはソフトウェアモジュール(例えば、CPU122を含むプロセッサ部102)によって実行されるとしてよい。図4において、BIOSを認証するための処理は図1の初期化ROM127に対応する初期化ROM402に含まれており、BIOSに関連付けられる処理はBIOS134に対応するUEFI(BIOS)ファームウェア404に含まれる。
プログラムフローは処理405で開始されるとしてよい。処理405は、システムリセットに応じて実施されるとしてよい。処理405は、初期化ファームウェア検証モジュールを含むプロセッサ初期化モジュールの実行、および、初期化ファームウェアの検証、および、初期化ファームウェアの実行を含むとしてよい。初期化ファームウェア検証モジュールが初期化ファームウェアの検証に成功すると、プロセッサは初期化ファームウェアの実行を開始するとしてよい。処理405は任意で、基本的なメモリ機能を初期化すること(例えば、システムメモリを構築すること)、および/または、インターコネクトファブリック等の他のシステム素子を初期化することを含むとしてよい。クイックパスインターフェースは、プロセッササブシステムと、プラットフォームコントローラハブおよび/またはマイクロプロセッササブシステムとを相互接続するインターコネクトファブリックの一例である。処理410は、署名済みのマニフェストを持つファームウェアインターフェーステーブル(FIT)およびOEM BIOSブロックがフラッシュメモリに存在するか否かを判断することを含む。例えば、TPM108を含むシステムでは、処理410は、マニフェストのハッシュと、TPM108のNVデータレジスタに格納されているハッシュ値とを比較することで、署名済みのマニフェストのインテグリティを確認することを含むとしてよい。
フラッシュメモリに署名済みのマニフェストを持つファームウェアインターフェーステーブル(FIT)が存在しない場合、または、OEM BIOSブロックが存在しない場合、処理415が実行されるとしてよい。処理415は、不変モデル固有レジスタ(NOT_SIGNED_MSR)を設定すること、および/または、プロセッササブシステムを停止させることを含む。フラッシュメモリに署名済みマニフェストを持つFITが存在する場合、および、OEM BIOSブロックが存在する場合、処理420が実行されるとしてよい。処理420は、署名済みマニフェストおよび対応するOEM UEFI BIOSファームウェアボリュームを読み出すことを含む。処理420はさらに、リモート証明機関(CA)との間で署名済みマニフェスト(デジタル署名)を検証することを含むとしてよい。例えば、署名済みのマニフェストの認証は、マイクロプロセッササブシステム112およびマネジビリティエンジンファームウェア138を利用してOOB方式で実行されるとしてよい。
デジタル署名が一致し、対応する公開鍵が無効化されておらず期限が切れておらず、および、IN_UPDATE_MSRモデル固有レジスタが偽を示しているか否かは、処理425において判断されるとしてよい。上記の条件が否定される場合、FITの次のエントリを処理430で読み出すとしてよい。FITエントリが全て完了したか否かは、処理435で判断するとしてよい。FITエントリが全て完了している場合(つまり、FITには試験していないエントリが無い場合)、処理415を実行するとしてよい。デジタル署名が一致し、対応する公開鍵が無効化されておらず期限が切れておらず、IN_UPDATE_MSRモデル固有レジスタが偽である場合、処理440において完全ブートがイネーブルされるとしてよい。完全ブートは、高位の技術および他のハードウェア機能をイネーブルすることを含むとしてよい。
処理445は、セキュリティ(SEC)フェーズ、プラットフォーム環境初期化(PEI)フェーズおよび/またはドライバ実行環境(DXE)を含むUEFI BIOSファームウェアへ制御を渡すことを含むとしてよい。UEFIファームウェア更新が存在するか否かを処理450において判断するとしてよい。UEFIファームウェア更新が存在する場合、処理455において、この更新はUEFIファームウェア確認処理を用いて検証されるとしてよい。処理460は、モデル固有レジスタIN_UPDATE MSRを設定して、フラッシュメモリにおいてUEFIファームウェアを更新して、モデル固有レジスタIN_UPDATE MSRをクリアすることを含む。この後、処理465においてリセットを開始するとしてよい。UEFIファームウェア更新が存在しない場合、UEFI BIOSファームウェアは処理470においてブートを終了するとしてよい。
図5は、リセットからOSブートまでのブートプロセス500に対応付けられている処理を示す図である。図5のブートプロセス500は、本明細書で説明している、BIOSファームウェアの検証が成功する場合に対応する。プロセス500には、2つのフェーズ(フェーズ1およびフェーズ2)が存在し、複数のサブフェーズが存在するとしてよい。プロセス500は、リセット(例えば、電源オンリセットまたはCPU限定リセット)502によって開始されるとしてよい。リセットに応じて、初期化ファームウェア検証モジュールを含むプロセッサ初期化モジュールを、サブフェーズ504において、本明細書で説明するように実行するとしてよい。初期化ファームウェア検証モジュールは、本明細書で説明しているように、FITの位置を特定して、初期化ファームウェアを認証するように構成されているとしてよい。初期化ファームウェアはこの後、本明細書で説明しているように、サブフェーズ506において、OEM BIOSを検証し、および/または、インターコネクトファブリック(例えば、QPI)およびシステムメモリをイネーブルするとしてよい。サブフェーズ504およびサブフェーズ506はフェーズ1に含まれている。フェーズ1の処理は、プロセッサ初期化モジュールおよび初期化ファームウェアによって実行されるとしてよく、このため比較的セキュアであるとしてよい。UEFI BIOSファームウェアはこの後、サブフェーズ508において、プラットフォーム(例えば、システム100)を初期化するとしてよい。これには、SEC、PEIおよびDXEが含まれる。SECは、一時的なメモリストレージを構築する。これらに限定されないが、プロセッサCAR(Cache As RAM)を利用してPEIコアおよびPEIモジュールを実行する。DXEが開始されると、初期化したメモリが利用可能になるはずである。DXEは、PCI、UI、USB、I/O、レガシーBIOS、SMBIOSおよび/またはACPIを含むとしてよい。このプロセスは、オペレーティングシステムのブートを開始することに対応する、ブートデバイス選択のサブフェーズ510で終了するとしてよい。サブフェーズ508およびサブフェーズ510はフェーズ2に含まれている。フェーズ1は、初期化ファームウェア検証およびBIOS検証を含む。フェーズ2は、認証が済んだUEFI BIOSファームウェアおよびブートデバイス選択の開始および実行を含む。
一般的に、本開示ではBIOSストレージ攻撃に対する保護および通知を実行するシステム(および方法)を提供する。システムの一例を挙げると、プロセッサ不揮発性メモリに格納されているプロセッサ制御および/またはデータ状態を含むプロセッサ初期化モジュールと、プロセッサに結合されており、プロセッサパッケージにおいて不揮発性メモリに格納されている初期化ファームウェアとを備える。初期化ファームウェア検証モジュールを含むプロセッサ初期化モジュールはリセットに応じて最初に実行され、初期化ファームウェア検証モジュールは初期化ファームウェアを検証するように構成されている。初期化ファームウェアは、初期化ファームウェア検証モジュールによる検証の後に実行され、BIOSを検証するように構成されている。初期化ファームウェアおよび/またはBIOSの検証が失敗すると、システムは、初期化ファームウェアおよび/またはBIOSが実行されないようにすること、(例えば、アウトオブバンド(OOB)通信を利用して)修復を開始すること、モデル固有レジスタ(MSR)を利用して検証の失敗を報告すること、プロセッサを停止させること、シャットダウンすること、および/または、機能を限定した(「検疫」)モードでBIOSを実行させオペレーティングシステム(OS)をブートさせることのうち少なくとも一つを実行するように構成されている。検疫モードでは、BIOSおよびOSがシステムの一部の機能を利用できないようになっているとしてよい。
「回路」という用語は、本明細書の任意の実施形態で用いる場合、例えば、ハードワイヤード回路、プログラム可能回路、ステートマシン回路、埋込コントローラ、および/または、プログラム可能回路が実行する命令を格納しているファームウェアを、単独または組み合わせて、含むとしてよい。
OS150は、任意の汎用オペレーティングシステムまたはカスタムオペレーティングシステムを含むとしてよい。例えば、OS150は、Microsoft Windows(登録商標)、HP−UX、Linux(登録商標)またはUNIX(登録商標)および/または他の汎用オペレーティングシステムを利用して実現するとしてよい。
図3、図4および図5ではさまざまな実施形態に応じて方法を図示しているが、図示した処理のうち全てが任意の実施形態で必要ではないと理解されたい。本開示の他の実施形態では図3、図4および/または図5に図示している処理を、図面には具体的に示していないが本開示に十分に準拠した方法で組み合わせ得ることを本明細書では十分に考慮している。このため、一の図面で明確に図示していない特徴および/または処理に関する請求項は、本開示の範囲および内容に含まれるものとする。
本明細書で説明している実施形態は、例えば、ハードウェア、ソフトウェアおよび/またはファームウェアを用いて本明細書で説明した方法および/または処理を実行することで実現されるとしてよい。本明細書で説明している特定の実施形態は、機械が実行すると当該機械が本明細書で説明した方法および/または処理を実行するような機械実行可能命令を格納している有形の機械可読媒体として提供されるとしてよい。有形の機械可読媒体は、これらに限定されないが、フロッピー(登録商標)ディスク、光ディスク、コンパクトディスクリードオンリーメモリ(CD−ROM)、コンパクトディスクリライタブル(CD−RW)および光磁気ディスク等の任意の種類のディスク、リードオンリーメモリ(ROM)等の半導体デバイス、ダイナミックランダムアクセスメモリ(RAM)およびスタティックRAM等のRAM、消去可能プログラム可能リードオンリーメモリ(EPROM)、電気的消去可能プログラム可能リードオンリーメモリ(EEPROM)、フラッシュメモリ、磁気カードまたは光カード、または、電子命令を格納するのに適した任意の種類の有形媒体を含むとしてよい。機械は、任意の適切なプロセッシングプラットフォーム、デバイスまたはシステム、コンピューティングプラットフォーム、デバイスまたはシステムを含むとしてよく、ハードウェアおよび/またはソフトウェアの任意の適切な組み合わせを用いて実現されるとしてよい。命令は、任意の適切な種類のコードを含むとしてよく、任意の適切なプログラミング言語を用いて実現されるとしてよい。
このため、本開示の一実施形態によると、コンピューティングプラットフォームのベーシックインプットアウトプットシステム(BIOS)を検証する方法が提供される。当該方法は、コンピューティングプラットフォームのプロセッサにプロセッサ初期化モジュールが含まれていて、プロセッサ初期化モジュールが初期化ファームウェア検証モジュールを含み、リセットに応じてプロセッサ初期化モジュールを実行する段階と、初期化ファームウェア検証モジュールを用いてコンピューティングプラットフォームのプロセッサパッケージ内の不揮発性メモリに格納されている初期化ファームウェアの検証を試みる段階と、再プログラミング可能な不揮発性メモリに含まれているBIOSの検証を初期化ファームウェアを用いて試みる段階と、初期化ファームウェアおよびBIOSのうち少なくとも一方の検証が失敗した場合、少なくとも一の応答を開始する段階とを備える。
別の実施形態によると、本開示はコンピューティングプラットフォームを提供する。当該コンピューティングプラットフォームは、プロセッサ初期化モジュールを含むプロセッサと、初期化ファームウェアを格納しているオフダイ不揮発性メモリとを有するプロセッサパッケージを備える。プロセッサ初期化モジュールは、初期化ファームウェア検証モジュールを含む。当該コンピューティングプラットフォームはさらに、ベーシックインプットアウトプットシステム(BIOS)ファームウェアを格納している再プログラミング可能な不揮発性メモリを備える。当該プロセッサは、コンピューティングプラットフォームのリセットに応じてプロセッサ初期化モジュールを実行し、初期化ファームウェア検証モジュールを用いて初期化ファームウェアの検証を試みて、初期化ファームウェアを用いてBIOSファームウェアの検証を試みて、初期化ファームウェアおよびBIOSファームウェアの少なくとも一方の検証が失敗すると、少なくとも一の応答を開始する。
別の実施形態によると、本開示は、1以上のプロセッサで実行すると1以上のプロセッサが以下の手順を含む処理を実行するような命令を格納している有形のコンピュータ可読媒体を提供する。当該処理は、コンピューティングプラットフォームのプロセッサにプロセッサ初期化モジュールが含まれていて、プロセッサ初期化モジュールが初期化ファームウェア検証モジュールを含み、リセットに応じてプロセッサ初期化モジュールを実行する手順と、初期化ファームウェア検証モジュールを用いてコンピューティングプラットフォームのプロセッサパッケージ内の不揮発性メモリに格納されている初期化ファームウェアの検証を試みる手順と、再プログラミング可能な不揮発性メモリに含まれているBIOSの検証を初期化ファームウェアを用いて試みる手順と、初期化ファームウェアおよびBIOSのうち少なくとも一方の検証が失敗した場合、少なくとも一の応答を開始する手順とを有する。
本明細書で用いた用語および表現は、説明のために用いているのであって限定を目的としたものではなく、特定の用語および表現を利用したとしても、図示および説明した特徴の均等物(またはその一部)を除外する意図はなく、請求項の範囲内においてさまざまな変形例が可能であると認められたい。したがって、請求項はこのような均等例をすべて含むものとする。
さまざまな特徴、側面および実施形態を本明細書で説明してきた。特徴、側面および実施形態は、当業者であれば理解されるように、互いに組み合わせ可能であると同時に、変更および変形も可能である。本開示は、このため、このような組み合わせ例、変更例および変形例を含むものと見なされるべきである。

Claims (25)

  1. コンピューティングプラットフォームのベーシックインプットアウトプットシステム(BIOS)を検証する方法であって、
    前記コンピューティングプラットフォームのプロセッサにプロセッサ初期化モジュールが含まれていて、前記プロセッサ初期化モジュールが初期化ファームウェア検証モジュールを含み、リセットに応じて前記プロセッサ初期化モジュールを実行する段階と、
    前記初期化ファームウェア検証モジュールを用いて、前記コンピューティングプラットフォームのプロセッサパッケージ内のROMに格納されている初期化ファームウェアの検証を試みる段階と、
    再プログラミング可能な不揮発性メモリに含まれている前記BIOSの検証を、前記初期化ファームウェアを用いて試みる段階とを、
    え、
    前記初期化ファームウェア検証モジュールは、前記ROMに格納される、方法。
  2. 前記コンピューティングプラットフォームの制御を前記BIOSに渡す段階と、
    前記初期化ファームウェアおよび前記BIOSのうち少なくとも一方の検証が失敗した場合、プラットフォーム機能が限定された検疫モードで動作するよう前記コンピューティングプラットフォームを設定する段階と、
    をさらに備える、請求項1に記載の方法。
  3. 前記初期化ファームウェアおよび前記BIOSのうち少なくとも一方の検証が失敗した場合、前記初期化ファームウェアが実行されないようにする段階、前記BIOSが実行されないようにする段階、修復を開始する段階、モデル固有レジスタを用いて前記検証の失敗を報告する段階、前記プロセッサを停止させる段階、前記コンピューティングプラットフォームをシャットダウンする段階、および、プラットフォーム機能が限定された検疫モードで動作するよう前記コンピューティングプラットフォームを設定する段階の少なくとも1つ、を更に備える、請求項1または2に記載の方法。
  4. 前記初期化ファームウェアの検証が失敗したことに応じて、前記初期化ファームウェアを更新する段階をさらに備える、請求項1から3のいずれか一項に記載の方法。
  5. 前記初期化ファームウェアおよび前記BIOSのうち少なくとも一方の検証が失敗した場合、前記コンピューティングプラットフォームのマイクロプロセッササブシステムを用いたアウトオブバンド通信を利用して、ネットワークを介して前記BIOSを更新する段階、をさらに備える、請求項1から4のいずれか一項に記載の方法。
  6. モデル固有レジスタに候補BIOSファームウェアの更新が書き込まれることに応じて、前記初期化ファームウェア検証モジュールおよび前記初期化ファームウェアの実行をトリガする段階をさらに備える、請求項1から5のいずれか一項に記載の方法。
  7. 前記初期化ファームウェアの検証が失敗したことに応じて、
    初期化ファームウェアのバックアップコピーへロールオーバーする段階、および前記初期化ファームウェアの以前のイメージにロールバックする段階の少なくとも1つ、をさらに備える、請求項1から6のいずれか一項に記載の方法。
  8. 前記BIOSの複製であるバックアップBIOSを格納する、前記再プログラミング可能な不揮発性メモリとは別の不揮発性メモリをさらに備え、
    前記別の不揮発性メモリは、前記BIOSの検証が失敗することに応じてアクセスされる、請求項1から7のいずれか一項に記載の方法。
  9. 前記初期化ファームウェア検証モジュールは前記プロセッサ内のROM領域に格納され、前記初期化ファームウェアは前記プロセッサパッケージ内の不揮発性メモリのROM領域に格納される、請求項1から8のいずれか一項に記載の方法。
  10. プロセッサパッケージと、
    ベーシックインプットアウトプットシステムファームウェア(BIOSファームウェア)が格納されている再プログラミング可能な不揮発性メモリと
    を備えるコンピューティングプラットフォームであって、
    前記プロセッサパッケージは、
    初期化ファームウェア検証モジュールを含むプロセッサ初期化モジュールを含むプロセッサと、
    初期化ファームウェアが格納されているROM
    を有し、
    前記初期化ファームウェア検証モジュールは、前記ROMに格納され、
    前記プロセッサは、
    前記コンピューティングプラットフォームのリセットに応じて前記プロセッサ初期化モジュールを実行し、
    前記初期化ファームウェア検証モジュールを用いて前記初期化ファームウェアの検証を試みて、
    前記初期化ファームウェアを用いて前記BIOSファームウェアの検証を試みる、
    ンピューティングプラットフォーム。
  11. 前記プロセッサはさらに、前記コンピューティングプラットフォームの制御を前記BIOSファームウェアに渡し、
    前記初期化ファームウェアおよび前記BIOSファームウェアのうち少なくとも一方の検証が失敗すると、プラットフォーム機能が限定された検疫モードで動作するよう前記コンピューティングプラットフォームを設定する、請求項10に記載のコンピューティングプラットフォーム。
  12. 前記プロセッサはさらに、
    前記初期化ファームウェアおよび前記BIOSファームウェアのうち少なくとも一方の検証が失敗すると、前記初期化ファームウェアが実行されないようにすること、前記BIOSファームウェアが実行されないようにすること、修復を開始すること、モデル固有レジスタを用いて前記検証の失敗を報告すること、前記プロセッサを停止させること、前記コンピューティングプラットフォームをシャットダウンすること、および、プラットフォーム機能が限定された検疫モードで動作するよう前記コンピューティングプラットフォームを設定することの少なくとも1つを実行する、請求項10または11に記載のコンピューティングプラットフォーム。
  13. 前記プロセッサはさらに、前記初期化ファームウェアの検証が失敗したことに応じて、前記初期化ファームウェアを更新する、請求項10から12のいずれか一項に記載のコンピューティングプラットフォーム。
  14. アウトオブバンド通信を利用してネットワークを介して前記BIOSファームウェアを更新するマイクロプロセッササブシステムをさらに備える、請求項10から13のいずれか一項に記載のコンピューティングプラットフォーム。
  15. モデル固有レジスタをさらに備え、
    前記プロセッサは、前記モデル固有レジスタに候補BIOSファームウェアの更新が書き込まれることに応じて、前記初期化ファームウェア検証モジュールおよび前記初期化ファームウェアを実行する、請求項10から14のいずれか一項に記載のコンピューティングプラットフォーム。
  16. 前記プロセッサはさらに、
    前記初期化ファームウェアの検証が失敗したことに応じて、
    初期化ファームウェアのバックアップコピーへロールオーバーすることおよび前記初期化ファームウェアの以前のイメージにロールバックすることの少なくとも1つ、を実行する、請求項10から15のいずれか一項に記載のコンピューティングプラットフォーム。
  17. 前記BIOSの複製であるバックアップBIOSを格納する、前記再プログラミング可能な不揮発性メモリとは別の不揮発性メモリをさらに備え、
    前記別の不揮発性メモリは、前記BIOSの検証が失敗することに応じてアクセスされる、請求項10から16のいずれか一項に記載のコンピューティングプラットフォーム。
  18. プロセッサ初期化モジュールはコンピューティングプラットフォームのプロセッサに含まれるように構成されていて、前記プロセッサ初期化モジュールが初期化ファームウェア検証モジュールを含み、リセットに応じて前記プロセッサ初期化モジュールを実行する手順と、
    前記初期化ファームウェア検証モジュールを用いて、前記コンピューティングプラットフォームのプロセッサパッケージ内のROMに格納されるように構成されている初期化ファームウェアの検証を試みる手順と、
    再プログラミング可能な不揮発性メモリに含まれるように構成されているBIOSの検証を、前記初期化ファームウェアを用いて試みる手順と
    をコンピュータに実行させ
    前記初期化ファームウェア検証モジュールは、前記ROMに格納される、
    プログラム。
  19. 前記コンピューティングプラットフォームの制御を前記BIOSに渡す手順と、
    前記初期化ファームウェアおよび前記BIOSのうち少なくとも一方の検証が失敗した場合、プラットフォーム機能が限定された検疫モードで動作するよう前記コンピューティングプラットフォームを設定する手順と、
    を前記コンピュータにさらに実行させる、請求項18に記載のプログラム。
  20. 前記初期化ファームウェアおよび前記BIOSのうち少なくとも一方の検証が失敗した場合、前記初期化ファームウェアが実行されないようにする手順、前記BIOSが実行されないようにする手順、修復を開始する手順、モデル固有レジスタを用いて前記検証の失敗を報告する手順、前記プロセッサを停止させる手順、前記コンピューティングプラットフォームをシャットダウンする手順、および、プラットフォーム機能が限定された検疫モードで動作するよう前記コンピューティングプラットフォームを設定する手順の少なくとも1つ、を前記コンピュータにさらに実行させる、請求項18または19に記載のプログラム。
  21. 前記初期化ファームウェアの検証が失敗したことに応じて、前記初期化ファームウェアを更新する手順を前記コンピュータにさらに実行させる、請求項18から20のいずれか一項に記載のプログラム。
  22. 前記初期化ファームウェアおよび前記BIOSのうち少なくとも一方の検証が失敗した場合、前記コンピューティングプラットフォームのマイクロプロセッササブシステムを用いたアウトオブバンド通信を利用して、ネットワークを介して前記BIOSを更新する手順、前記コンピュータにさらに実行させる、請求項18から21のいずれか一項に記載のプログラム。
  23. モデル固有レジスタに候補BIOSファームウェアの更新が書き込まれることに応じて、前記初期化ファームウェア検証モジュールおよび前記初期化ファームウェアの実行をトリガする手順を前記コンピュータにさらに実行させる、請求項18から22のいずれか一項に記載のプログラム。
  24. 前記初期化ファームウェアの検証が失敗したことに応じて、
    初期化ファームウェアのバックアップコピーへロールオーバーする手順および前記初期化ファームウェアの以前のイメージにロールバックする手順の少なくとも1つ、を前記コンピュータにさらに実行させる、請求項18から23のいずれか一項に記載のプログラム。
  25. 前記BIOSの複製であるバックアップBIOSを格納する、前記再プログラミング可能な不揮発性メモリとは別の不揮発性メモリをさらに備え、
    前記別の不揮発性メモリは、前記BIOSの検証が失敗することに応じてアクセスされる、請求項18から24のいずれか一項に記載のプログラム。
JP2014519289A 2011-07-07 2012-07-05 Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム Expired - Fee Related JP5767751B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/178,338 US9015455B2 (en) 2011-07-07 2011-07-07 Processsor integral technologies for BIOS flash attack protection and notification
US13/178,338 2011-07-07
PCT/US2012/045551 WO2013006698A1 (en) 2011-07-07 2012-07-05 Bios flash attack protection and notification

Publications (3)

Publication Number Publication Date
JP2014518428A JP2014518428A (ja) 2014-07-28
JP2014518428A5 JP2014518428A5 (ja) 2015-04-30
JP5767751B2 true JP5767751B2 (ja) 2015-08-19

Family

ID=47437440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014519289A Expired - Fee Related JP5767751B2 (ja) 2011-07-07 2012-07-05 Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム

Country Status (6)

Country Link
US (1) US9015455B2 (ja)
EP (2) EP2729896B1 (ja)
JP (1) JP5767751B2 (ja)
KR (1) KR101626397B1 (ja)
CN (1) CN103718165B (ja)
WO (1) WO2013006698A1 (ja)

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8971144B2 (en) * 2012-01-19 2015-03-03 Quixant Plc Hardware write-protection
US8909983B2 (en) * 2012-03-08 2014-12-09 Synology Incorporated Method of operating a storage device
US9256744B2 (en) * 2012-04-10 2016-02-09 Asmedia Technology Inc. System-on-chip and booting method thereof
US20130326404A1 (en) * 2012-05-30 2013-12-05 Robert C. Brooks Disable Feature of Computing Device
US8904162B2 (en) * 2012-08-01 2014-12-02 Intel Corporation Methods and apparatus for performing secure BIOS upgrade
US10581763B2 (en) 2012-09-21 2020-03-03 Avago Technologies International Sales Pte. Limited High availability application messaging layer
US9967106B2 (en) 2012-09-24 2018-05-08 Brocade Communications Systems LLC Role based multicast messaging infrastructure
US20140208133A1 (en) * 2013-01-23 2014-07-24 Dell Products L.P. Systems and methods for out-of-band management of an information handling system
JP6050528B2 (ja) * 2013-03-15 2016-12-21 インテル コーポレイション セキュリティ・コプロセッサ・ブート性能
US10733288B2 (en) 2013-04-23 2020-08-04 Hewlett-Packard Development Company, L.P. Verifying controller code and system boot code
US9767288B2 (en) 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based secure BIOS mechanism in a trusted computing system
US9183394B2 (en) 2013-11-13 2015-11-10 Via Technologies, Inc. Secure BIOS tamper protection mechanism
US10095868B2 (en) 2013-11-13 2018-10-09 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9129113B2 (en) 2013-11-13 2015-09-08 Via Technologies, Inc. Partition-based apparatus and method for securing bios in a trusted computing system during execution
US9547767B2 (en) 2013-11-13 2017-01-17 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9779242B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US9779243B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
US9798880B2 (en) 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
US10055588B2 (en) 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US9507942B2 (en) 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
US9367689B2 (en) 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
US10049217B2 (en) 2013-11-13 2018-08-14 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
CN103632086B (zh) * 2013-11-15 2017-04-05 北京奇虎科技有限公司 修复基本输入输出系统bios恶意程序的方法和装置
CN104679685B (zh) * 2013-11-29 2017-10-31 英业达科技有限公司 基板管理控制器存取方法
TW201525858A (zh) 2013-12-31 2015-07-01 Ibm 基板管理控制器與其韌體載入方法
CN104915591A (zh) * 2014-03-10 2015-09-16 联想(北京)有限公司 一种数据处理方法及电子设备
CN103996002B (zh) * 2014-05-29 2016-04-06 广西电网有限责任公司 一种防病毒终端设备启动方法
US9563437B2 (en) * 2014-06-27 2017-02-07 Intel Corporation Technologies for pre-memory phase initialization of a computing device
TWI505078B (zh) * 2014-07-28 2015-10-21 Ibm 系統管理控制器、電腦系統、以及系統管理方法
CN104239760A (zh) * 2014-09-03 2014-12-24 山东超越数控电子有限公司 一种安全等级可配置的计算机的实现方法
JP6482211B2 (ja) * 2014-09-03 2019-03-13 キヤノン株式会社 情報処理装置、その制御方法、及びプログラム
US9619349B2 (en) * 2014-10-14 2017-04-11 Brocade Communications Systems, Inc. Biasing active-standby determination
WO2016093856A1 (en) * 2014-12-12 2016-06-16 Hewlett Packard Enterprise Development Lp Determining resting times for memory blocks
CN106158038B (zh) * 2015-04-14 2021-03-09 恩智浦美国有限公司 从非易失性存储器读取数据的方法
US20160306623A1 (en) * 2015-04-16 2016-10-20 Aic Inc. Control module of node and firmware updating method for the control module
US9742568B2 (en) 2015-09-23 2017-08-22 Dell Products, L.P. Trusted support processor authentication of host BIOS/UEFI
CN105224459B (zh) * 2015-10-21 2018-04-13 浪潮电子信息产业股份有限公司 一种linux平台下测试bmc通过oem命令读写bios配置功能的方法
CN108292342B (zh) * 2016-01-25 2022-09-06 惠普发展公司,有限责任合伙企业 向固件中的侵入的通知
BR112018010437A8 (pt) * 2016-01-25 2019-02-26 Hewlett Packard Development Co proteção do código básico de entrada/saída (bios)
US10445506B2 (en) * 2016-03-30 2019-10-15 Airwatch Llc Detecting vulnerabilities in managed client devices
US10585648B2 (en) * 2016-06-01 2020-03-10 The Mathworks, Inc. Systems and methods for aggregating implicit and explicit event code of executable models
US10635607B2 (en) * 2016-06-30 2020-04-28 Intel Corporation Methods, systems and apparatus to improve boot efficiency
JP6585019B2 (ja) * 2016-09-13 2019-10-02 株式会社東芝 ネットワーク監視装置、ネットワークシステムおよびプログラム
KR101795457B1 (ko) * 2016-09-27 2017-11-10 시큐리티플랫폼 주식회사 보안 기능이 강화된 디바이스의 초기화 방법 및 디바이스의 펌웨어 업데이트 방법
US10382436B2 (en) * 2016-11-22 2019-08-13 Daniel Chien Network security based on device identifiers and network addresses
US10248485B2 (en) * 2016-12-16 2019-04-02 International Business Machines Corporation Dual physical-channel systems firmware initialization and recovery
WO2018124894A1 (en) * 2016-12-29 2018-07-05 Intel Corporation Embedded oem code for fault recovery
US10223531B2 (en) 2016-12-30 2019-03-05 Google Llc Secure device state apparatus and method and lifecycle management
US10623130B2 (en) * 2017-07-27 2020-04-14 Rolls-Royce North American Technologes, Inc. Determining a frequency for propulsor engine communication sessions
US10460111B2 (en) * 2017-08-04 2019-10-29 Dell Products, Lp System and method to isolate host and system management in an information handling system
CN111373398A (zh) * 2017-09-18 2020-07-03 惠普发展公司,有限责任合伙企业 固件安全性
US20200302060A1 (en) * 2017-12-14 2020-09-24 Hewlett-Packard Development Company, L.P. Enabling access to capturing devices by basic input and output systems (bios)
JP6584487B2 (ja) * 2017-12-20 2019-10-02 キヤノン株式会社 情報処理装置、その制御方法およびプログラム
CN111133414A (zh) * 2017-12-25 2020-05-08 英特尔公司 存储器初始化前多线程并行计算平台
US11163887B2 (en) * 2018-02-14 2021-11-02 Microsoft Technology Licensing, Llc Clearance of bare metal resource to trusted state usable in cloud computing
TWI647615B (zh) 2018-03-29 2019-01-11 緯創資通股份有限公司 使用多嵌入式控制器韌體的韌體系統的開機方法
US11074151B2 (en) 2018-03-30 2021-07-27 Intel Corporation Processor having embedded non-volatile random access memory to support processor monitoring software
US10691466B2 (en) 2018-04-02 2020-06-23 Intel Corporation Booting a computing system using embedded non-volatile memory
CN108845834A (zh) * 2018-06-01 2018-11-20 上海兆芯集成电路有限公司 计算机装置
US10936324B2 (en) * 2018-08-02 2021-03-02 Dell Products L.P. Proactive host device access monitoring and reporting system
US10740084B2 (en) * 2018-08-16 2020-08-11 Intel Corporation Soc-assisted resilient boot
US10789061B2 (en) * 2018-09-26 2020-09-29 Intel Corporation Processor based component firmware update method and apparatus
US11188622B2 (en) 2018-09-28 2021-11-30 Daniel Chien Systems and methods for computer security
US10826912B2 (en) 2018-12-14 2020-11-03 Daniel Chien Timestamp-based authentication
US10848489B2 (en) 2018-12-14 2020-11-24 Daniel Chien Timestamp-based authentication with redirection
WO2020159533A1 (en) 2019-02-01 2020-08-06 Hewlett-Packard Development Company, L.P. Security credential derivation
WO2020167287A1 (en) * 2019-02-11 2020-08-20 Hewlett-Packard Development Company, L.P. Recovery via backups of recovery information
US11520662B2 (en) * 2019-02-11 2022-12-06 Hewlett-Packard Development Company, L.P. Recovery from corruption
US11003461B2 (en) * 2019-03-29 2021-05-11 Dell Products L.P. Boot process security self-check system
JP7263101B2 (ja) * 2019-04-26 2023-04-24 キヤノン株式会社 情報処理装置、データ検証方法
US11151256B2 (en) 2019-05-13 2021-10-19 Dell Products, L.P. Detecting security threats by monitoring chains of configuration changes made to basic input/output system (BIOS) or unified extensible firmware interface (UEFI) attributes
JP7425797B2 (ja) * 2019-06-10 2024-01-31 グーグル エルエルシー ファームウェアのセキュアな検証
FR3099607B1 (fr) * 2019-07-30 2021-11-05 Stmicroelectronics Grand Ouest Sas Composant électronique à micrologiciel
US11016755B2 (en) * 2019-07-31 2021-05-25 Dell Products L.P. System and method to secure embedded controller flashing process
US11416607B2 (en) * 2019-11-04 2022-08-16 Dell Products L.P. Security risk indicator and method therefor
US11385902B2 (en) * 2019-11-17 2022-07-12 Nuvoton Technology Corporation Secure firmware management with hierarchical boot sequence using last known good firmware
US11677754B2 (en) 2019-12-09 2023-06-13 Daniel Chien Access control systems and methods
US10809944B1 (en) 2020-01-22 2020-10-20 Cypress Semiconductor Corporation Memory device resilient to cyber-attacks and malfunction
US11347519B2 (en) * 2020-05-27 2022-05-31 Dell Products L.P. Systems and methods for detecting short-term changes to BIOS setup
US11509463B2 (en) 2020-05-31 2022-11-22 Daniel Chien Timestamp-based shared key generation
US11438145B2 (en) 2020-05-31 2022-09-06 Daniel Chien Shared key generation based on dual clocks
US11907386B2 (en) * 2020-09-22 2024-02-20 Dell Products L.P. Platform root-of-trust system
WO2022093254A1 (en) * 2020-10-30 2022-05-05 Hewlett-Packard Development Company, L.P. Hashed function point identifiers for data processing security
US11847227B2 (en) 2020-11-30 2023-12-19 Red Hat, Inc. Firmware version corruption attack prevention
US11822663B2 (en) 2020-11-30 2023-11-21 Red Hat, Inc. Supervisor-based firmware hardening
US12099609B2 (en) * 2020-12-18 2024-09-24 Advanced Micro Devices, Inc. Combination BIOS with A/B recovery
US20210103662A1 (en) * 2020-12-18 2021-04-08 Chinmay Ashok Techniques for restricted deployment of targeted processor firmware updates
US20210224061A1 (en) * 2020-12-23 2021-07-22 Intel Corporation Firmware update technologies
JP2022135443A (ja) * 2021-03-05 2022-09-15 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
US20220358222A1 (en) * 2021-05-10 2022-11-10 Insyde Software Corp. System And Method For Firmware Security Event Mitigation
US20230064398A1 (en) * 2021-08-27 2023-03-02 Dell Products L.P. Uefi extensions for analysis and remediation of bios issues in an information handling system
US20230274001A1 (en) * 2022-02-25 2023-08-31 Dell Products, L.P. OFF-HOST INTEGRITY VERIFICATION OF TRUSTED EXECUTION ENVIRONMENTS (TEEs)
US11928210B2 (en) * 2022-03-02 2024-03-12 Flexxon Pte. Ltd. Module and method for monitoring systems of a host device for security exploitations
US20230297682A1 (en) * 2022-03-21 2023-09-21 Dell Products L.P. Computing device quarantine action system
US20240054223A1 (en) * 2022-08-12 2024-02-15 Micron Technology, Inc. Reducing start up times in device identity composition engine (dice) devices
US20240311243A1 (en) * 2023-03-17 2024-09-19 Dell Products L.P. Device recovery using activation of bios recovery image

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401208B2 (en) * 1998-07-17 2002-06-04 Intel Corporation Method for BIOS authentication prior to BIOS execution
TW452733B (en) * 1999-11-26 2001-09-01 Inventec Corp Method for preventing BIOS from viruses infection
US6711675B1 (en) 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US7237121B2 (en) 2001-09-17 2007-06-26 Texas Instruments Incorporated Secure bootloader for securing digital devices
DE60228027D1 (de) * 2001-07-06 2008-09-18 Texas Instruments Inc Sicherer Bootloader zum Sichern digitaler Geräte
US7350063B2 (en) * 2002-06-11 2008-03-25 Intel Corporation System and method to filter processors by health during early firmware for split recovery architecture
TWI319147B (en) * 2003-04-10 2010-01-01 Lenovo Singapore Pte Ltd Apparatus, motherboard, method and computer-readable storage medium recording instructions capable of determinging physical presence in a trusted platform in a computer system
US7269747B2 (en) 2003-04-10 2007-09-11 Lenovo (Singapore) Pte. Ltd. Physical presence determination in a trusted platform
JP3981066B2 (ja) * 2003-11-07 2007-09-26 株式会社東芝 ホスト機器、メモリカード、メモリ容量変更方法及びメモリ容量変更プログラム
WO2005109184A1 (en) * 2004-05-08 2005-11-17 Intel Corporation Firmware interface runtime environment protection field
JP2006106914A (ja) 2004-10-01 2006-04-20 Fujitsu Ltd ファームウェアで動作する処理装置およびファームウェア更新方法
US20060101310A1 (en) 2004-10-22 2006-05-11 Nimrod Diamant Device, system and method for verifying integrity of software programs
US8464348B2 (en) 2004-11-15 2013-06-11 Microsoft Corporation Isolated computing environment anchored into CPU and motherboard
US7500094B2 (en) 2005-10-18 2009-03-03 American Megatrends, Inc. BIOS identification, initialization and management
US8001267B2 (en) 2005-12-15 2011-08-16 International Business Machines Corporation Apparatus, system, and method for automatically verifying access to a multipathed target at boot time
US8429418B2 (en) * 2006-02-15 2013-04-23 Intel Corporation Technique for providing secure firmware
US9053323B2 (en) * 2007-04-13 2015-06-09 Hewlett-Packard Development Company, L.P. Trusted component update system and method
US7840837B2 (en) 2007-04-27 2010-11-23 Netapp, Inc. System and method for protecting memory during system initialization
US8555049B2 (en) 2007-10-05 2013-10-08 Panasonic Corporation Secure boot terminal, secure boot method, secure boot program, recording medium, and integrated circuit
US7962738B2 (en) 2007-12-20 2011-06-14 Intel Corporation Hypervisor runtime integrity support
US20090172639A1 (en) * 2007-12-27 2009-07-02 Mahesh Natu Firmware integrity verification
JP2009169841A (ja) 2008-01-18 2009-07-30 Panasonic Corp 情報処理装置および携帯電話装置
DE102008021567B4 (de) * 2008-04-30 2018-03-22 Globalfoundries Inc. Computersystem mit sicherem Hochlaufmechanismus auf der Grundlage einer Verschlüsselung mit symmetrischem Schlüssel
US7984286B2 (en) * 2008-06-25 2011-07-19 Intel Corporation Apparatus and method for secure boot environment
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
US8490189B2 (en) * 2009-09-25 2013-07-16 Intel Corporation Using chipset-based protected firmware for host software tamper detection and protection
US8893112B2 (en) * 2009-12-21 2014-11-18 Intel Corporation Providing software distribution and update services regardless of the state or physical location of an end point machine
US8918907B2 (en) * 2011-04-13 2014-12-23 Phoenix Technologies Ltd. Approaches for firmware to trust an application

Also Published As

Publication number Publication date
EP2729896A1 (en) 2014-05-14
US20130013905A1 (en) 2013-01-10
US9015455B2 (en) 2015-04-21
EP3543888A1 (en) 2019-09-25
JP2014518428A (ja) 2014-07-28
EP2729896B1 (en) 2019-05-15
KR20140043126A (ko) 2014-04-08
CN103718165B (zh) 2016-08-17
EP2729896A4 (en) 2015-04-22
KR101626397B1 (ko) 2016-06-01
CN103718165A (zh) 2014-04-09
WO2013006698A1 (en) 2013-01-10

Similar Documents

Publication Publication Date Title
JP5767751B2 (ja) Biosを検証する方法、コンピューティングプラットフォーム、およびプログラム
US11520894B2 (en) Verifying controller code
US9880908B2 (en) Recovering from compromised system boot code
US9785596B2 (en) Redundant system boot code in a secondary non-volatile memory
KR101643072B1 (ko) 인터넷 이용 가능 컴퓨팅 노드에 대한 불변 안티바이러스 페이로드의 제공
JP6054908B2 (ja) 変数セットを修復する方法、コンピュータ・プログラムおよびコンピュータ
KR101306395B1 (ko) 시스템용 실리콘 통합 코드 제공
US10181956B2 (en) Key revocation
WO2014175865A1 (en) Repairing compromised system data in a non-volatile memory
US8838952B2 (en) Information processing apparatus with secure boot capability capable of verification of configuration change
US9928367B2 (en) Runtime verification
TW201602835A (zh) 允許測試金鑰用於bios安裝之技術
WO2017188976A1 (en) Executing protected code
JP7382446B2 (ja) プラットフォームファームウェア回復実行からの起動失敗を回避する方法及びシステム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140121

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141216

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20150313

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150421

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150520

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150619

R150 Certificate of patent or registration of utility model

Ref document number: 5767751

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees