JP2010157230A - ランタイムインテグリティ検証のための装置及び方法 - Google Patents

ランタイムインテグリティ検証のための装置及び方法 Download PDF

Info

Publication number
JP2010157230A
JP2010157230A JP2009292870A JP2009292870A JP2010157230A JP 2010157230 A JP2010157230 A JP 2010157230A JP 2009292870 A JP2009292870 A JP 2009292870A JP 2009292870 A JP2009292870 A JP 2009292870A JP 2010157230 A JP2010157230 A JP 2010157230A
Authority
JP
Japan
Prior art keywords
processor
code
integrity
based system
integrity information
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.)
Granted
Application number
JP2009292870A
Other languages
English (en)
Other versions
JP5198422B2 (ja
Inventor
Hormuzd M Khosravi
エム. コスラヴィ ホームズド
Vincent J Zimmer
ジェイ. ジンマー ヴィンセント
Sunder Divya Naidu Kolar
ナイドゥ コーラー サンダー ディヴヤ
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 JP2010157230A publication Critical patent/JP2010157230A/ja
Application granted granted Critical
Publication of JP5198422B2 publication Critical patent/JP5198422B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/148Wavelet transforms
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/2101Auditing as a secondary aspect

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Computational Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】ランタイムファームウェアインテグリティ検証を効果的に実行するシステム及び方法を提供すること。
【解決手段】本発明の一特徴は、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサに接続される少なくとも1つのメモリと、コードブロックと、プロセッサベースシステムにより実行可能なコードとを有するプロセッサベースシステムであって、前記コードは、当該プロセッサベースシステムに、当該プロセッサベースシステムの再スタートに応答して、前記コードブロックのインテグリティ情報を生成させ、前記インテグリティ情報をセキュアに格納させ、前記セキュアに格納されているインテグリティ情報を用いて、当該プロセッサベースシステムの実行中に前記コードブロックのインテグリティを検証させるシステムに関する。
【選択図】図1

Description

本発明は、インテグリティ検証に関する。より詳細には、本発明の実施例は、ランタイムファームウェアインテグリティ検証に関する。
コンピュータなどのプロセッサベースシステムは、ハードウェア及びソフトウェアセキュリティの各種レベルを要求又は利用する。
本発明の課題は、ランタイムファームウェアインテグリティ検証を効果的に実行するシステム及び方法を提供することである。
上記課題を解決するため、本発明の一特徴は、少なくとも1つのプロセッサと、前記少なくとも1つのプロセッサに接続される少なくとも1つのメモリと、コードブロックと、プロセッサベースシステムにより実行可能なコードとを有するプロセッサベースシステムであって、前記コードは、当該プロセッサベースシステムに、当該プロセッサベースシステムの再スタートに応答して、前記コードブロックのインテグリティ情報を生成させ、前記インテグリティ情報をセキュアに格納させ、前記セキュアに格納されているインテグリティ情報を用いて、当該プロセッサベースシステムの実行中に前記コードブロックのインテグリティを検証させるシステムに関する。
本発明によると、ランタイムファームウェアインテグリティ検証を効果的に実行するシステム及び方法を提供することができる。
図1は、本発明の実施例による電子システムのブロック図である。 図2は、本発明の実施例による他の電子システムのブロック図である。 図3は、本発明の実施例によるフロー図である。 図4は、本発明の実施例による他のフロー図である。 図5は、本発明の実施例による他のフロー図である。 図6は、本発明の実施例による他のフロー図である。 図7は、本発明の実施例による他の電子システムのブロック図である。 図8は、一例となるファイル構造の図である。
以下の説明では、限定することなく説明のため、特定の構造、アーキテクチャ、インタフェース、技術などの具体的詳細が、本発明の各種態様の完全な理解を提供するために与えられる。しかしながら、本発明の各種態様はこれらの具体的詳細から逸脱した他の実施例により実現可能であることは、本開示の利益を有する当業者に明らかであろう。ある実施例では、周知の装置、回路及び方法の説明は、不要な詳細により本発明の説明を不明りょうにしないように省略される。
図1を参照するに、本発明の実施例によると、プロセッサベースシステム10は、少なくとも1つのプロセッサ11と、少なくとも1つのプロセッサ11に接続される少なくとも1つのメモリ12と、コードブロック13(メモリ12などに格納される)とを有する。システム10はさらに、プロセッサベースシステム10にそれの再スタートに応答してコードブロック13のインテグリティ情報を生成させ、インテグリティ情報をセキュアに格納させ、格納されているインテグリティ情報を用いてプロセッサベースシステム10の実行中にコードブロック13のインテグリティを検証させるため、プロセッサベースシステム10により実行可能なコードを有する。例えば、コードブロック13は、ファームウェアエレメント、BIOS(Basic Input Output System)エレメント、及びシステムマネージメントモード(SMM)エレメントの1つに対応するものであってもよい。
本発明の実施例では、システム10はさらに、プロセッサベースシステム10にセキュアに格納されているインテグリティ情報を用いて実行中にコードブロック13のインテグリティを定期的に再検証させるためのコードを有してもよい。本発明の実施例では、システム10はさらに、プロセッサベースシステム10に複数のコードブロック13に対応するインテグリティ情報のリストをセキュアに格納させるためのコードを有してもよい。例えば、本発明の実施例では、システム10はさらに、プロセッサベースシステム10に複数のコードブロック13について少なくとも1つのプロセッサ11に接続される少なくとも1つのメモリ12をスキャンさせ、セキュアに格納されているインテグリティ情報のリストを用いて実行中にスキャンされたコードブロック13のインテグリティを検証させるためのコードを有してもよい。システム10はさらに、ネットワークコンポーネント14と、プロセッサベースシステム10に検証が失敗した場合にリモートアラートを送信させるためのコードとを有してもよい。例えば、ネットワークコンポーネントは、イーサネット(登録商標)接続などの有線ネットワーク接続及び/又はWiFi接続などの無線ネットワーク接続を含むものであってもよい。
図2を参照するに、本発明の実施例によると、プロセッサベースシステム20は、少なくとも1つのプロセッサ21と、少なくとも1つのプロセッサ21に接続されるシステム管理メモリ22と、少なくとも1つのプロセッサ21及びシステム管理メモリ22に接続される管理可能性エンジン24を含むチップセット23とを有する。システム20はさらに、チップセット23の管理可能性エンジン24にプロセッサベースシステム20の実行中にシステム管理メモリ22のコンテンツを検証させるため、プロセッサベースシステム20により実行可能なコードを有する。例えば、システム20はさらに、プロセッサベースシステム20にそれの再スタートに応答してシステム管理メモリ22のコンテンツについてインテグリティ情報を生成させ、インテグリティ情報をチップセット23の管理可能性エンジン24に転送させ、管理可能性エンジン24によりアクセス可能な位置にインテグリティ情報を安全に格納させるためのコードを有してもよい。
本発明の実施例では、システム20はさらに、管理可能性エンジン24にセキュアに格納されているインテグリティ情報を用いてプロセッサベースシステム20の実行中にシステム管理メモリ22のコンテンツを定期的に再検証させるためのコードを有してもよい。例えば、システム20はさらに、管理可能性エンジン24にシステム管理メモリ22をスキャンさせ、セキュアに格納されているインテグリティ情報を用いてスキャンされたメモリ22のインテグリティを検証させるためのコードを有してもよい。例えば、システム20はさらに、ネットワークコンポーネント25と、管理可能性エンジン24に検証が失敗した場合にリモートアラートを送信させるためのコードとを有してもよい。本発明の実施例では、管理可能性エンジン24によりアクセス可能な位置は、管理可能性エンジン24のメモリサブシステム26を含むものであってもよい。本発明の実施例では、管理可能性エンジン24は、別のプロセッサ27を有してもよく、コードの少なくとも一部は、管理可能性エンジン24のプロセッサ27により実行可能であってもよい。
図3を参照するに、本発明の実施例によると、プロセッサベースシステムのランタイムインテグリティ検証を実行する方法は、プロセッサベースシステムの再スタートに応答してコードブロックのインテグリティ情報を生成し(ブロック30などにおいて)、インテグリティ情報をセキュアに格納し(ブロック31などにおいて)、セキュアに格納されているインテグリティ情報を用いて実行中にコードブロックのインテグリティを検証する(ブロック32などにおいて)ことを含む。例えば、コードブロックは、ファームウェアエレメント、BIOS(Basic Input Output System)エレメント及びシステムマネージメントモード(SMM)エレメント(ブロック33などにおいて)の1つの対応するものであってもよい。
例えば、本発明の実施例はさらに、セキュアに格納されているインテグリティ情報を用いて実行中にコードブロックのインテグリティを定期的に再検証する(ブロック34などにおいて)ことを含むものであってもよい。例えば、本発明の実施例はさらに、複数のコードブロックに対応するインテグリティ情報のリストをセキュアに格納する(ブロック35などにおいて)ことを含むものであってもよい。例えば、本発明の実施例はさらに、複数のコードブロックについて少なくとも1つのプロセッサに接続される少なくとも1つのメモリをスキャンし、セキュアに格納されているインテグリティ情報のリストを用いて実行中にスキャンされたコードブロックのインテグリティを検証する(ブロック36などにおいて)ことを含むものであってもよい。本発明の実施例はさらに、検証が失敗した場合にリモートアラートを送信する(ブロック37などにおいて)ことを含むものであってもよい。
図4を参照するに、本発明の実施例によると、プロセッサベースシステムのランタイムインテグリティ検証を実行する方法は、プロセッサベースシステムの再スタートに応答してシステム管理メモリのコンテンツのインテグリティ情報を生成し(ブロック40などにおいて)、インテグリティ情報をプロセッサベースシステムの管理可能性エンジンに送信し(ブロック41などにおいて)、管理可能性エンジンによりアクセス可能な位置にインテグリティ情報をセキュアに格納し(ブロック42などにおいて)、セキュアに格納されているインテグリティ情報を用いてプロセッサベースシステムの実行中に管理可能性エンジンによるシステム管理メモリのコンテンツを検証する(ブロック43などにおいて)ことを含む。
例えば、本発明の実施例はさらに、セキュアに格納されているインテグリティ情報を用いてプロセッサベースシステムの実行中に管理可能性エンジンによりシステム管理メモリのコンテンツを定期的に再検証する(ブロック44などにおいて)を含むようにしてもよい。例えば、本発明の実施例はさらに、システム管理メモリをスキャンし、セキュアに格納されているインテグリティ情報を用いてスキャンされたメモリのインテグリティを検証する(ブロック45などにおいて)ことを含むようにしてもよい。例えば、本発明の実施例はさらに、検証が失敗した場合に管理可能性エンジンからリモートアラートを送信する(ブロック46などにおいて)ことを含むようにしてもよい。
効果的には、本発明の実施例は、管理可能性エンジン(ME)/チップセットを用いたシステム管理モード(SMM)ランタイムインテグリティ検証のための方法及び/又は装置を提供する。各種のセキュリティの労力は、SMM/BIOS及びオペレーティングシステム(OS)のための信頼されるブート又はブートタイムインテグリティに注力されてきた。例えば、プレOS UEFI(Unified Extensible Firmware Interface)/BIOSプラットフォームインテグリティ検証は、インストール時(署名されたアップデートなど)及び/又はブート時(検証されたロード)に実行されてもよい。効果的には、本発明の実施例は、Time Of Check(プレOSへのコードのロード中)/Time Of Use(例えば、SMIイベントに応答した実行中のコードの呼び出し時など)(TOCTOU)アタック及び/又はコード投入アタックなどのランタイムアタックに対するセキュリティを向上させる。Authenticode又は埋め込まれたシグネチャブロックによる他の公開鍵ベース機構を用いたUEFI SMM実行可能PE COFFイメージによる署名されたアップデートに対して、MEはまた、イメージに係る公開検証鍵が無効にされているか確認するため、Certificate Authorityによりリモート検証することが可能である。
例えば、本発明の実施例は、チップセット管理可能性エンジンを用いて、SMMハンドラ(BIOSコード)のランタイムインテグリティ検証を提供するようにしてもよい。効果的には、本発明の実施例は、SMMに対するランタイムアタックを無効にし、OSに独立し、異なるSMMコードの改訂に対してスケーラビリティを提供するものであってもよい。効果的には、本発明の実施例はまた、実行中のオペレーティングシステムのカーネルと同じ位置にあるOEMのUEFI(Unified Extensible Firmware Interface)におけるランタイムアタックに対してガードするものであってもよい。効果的には、本発明の実施例によるランタイムインテグリティ検証を提供するため、ハードウェアベースのチップセットの管理可能性エンジンを利用することは、ソフトウェアベースのセキュリティと比較して、プラットフォームにおいてよりセキュアで隔離された位置を提供する。
SMMルートキットは、アンチウイルスソフトウェアによる検出が困難なコンピュータメモリのプロテクト部分において実行される悪意的なルートキットソフトウェアである。例えば、SMMルートキットは、秘密情報を隠すのに利用可能なキーロギング及び/又は通信ソフトウェアなどの悪質な機能を有するかもしれない。効果的には、本発明の実施例は、SMMルートキットアタックに対してガードするようにしてもよい。
本発明の実施例によると、SMIハンドラは以下のように実現されてもよい。すなわち、SMMに入ると、プロセッサは物理アドレスSMBASE+0x8000(これは、SMIハンドラがSMRAMの内部のオフセット0x8000にある必要があることを意味する)にジャンプする。D_OPENビットが設定されているとき、コードはSMRAMにあるかもしれないため、SMIトリガーは当該コードを実行させるよう強制される。
Figure 2010157230

図5を参照するに、本発明の実施例では、管理可能性エンジン(ME)は、システムブート中にHECI(Host Embedded Control Interface)を介しBIOSからSMMホワイトリストを受信する(ブロック51などにおいて)。例えば、ホワイトリストは、認証されたコードモジュールのリストに対応するものであってもよい。例えば、管理可能性エンジンは、PECOFF(Portable Execution and Common Object File Format)ファイルを使用して、マニフェストを生成し、それらをフラッシュにセキュアに格納する(ブロック52などにおいて)。管理可能性エンジンは、ランタイムインテグリティ検証チェックを定期的に実行する。例えば、管理可能性エンジンは、ランタイムインテグリティチェックタイマーを設定し、タイマーが経過したとき(ブロック52などにおいて)、管理可能性エンジンは、SMMハンドラとUEFIランタイムテーブルについて、ホストメモリ及び/又はシステム管理ランダムアクセスメモリ(SMRAM)をスキャンしてもよい(ブロック53などにおいて)。管理可能性エンジンは、格納されているマニフェストを用いてSMM/BIOSコードを検証する(ブロック54などにおいて)。管理可能性エンジンは、SMMハンドラのポインタがテーブルポイントを有効なコード領域にディスパッチすることを検証する(ブロック55などにおいて)。効果的には、本発明の実施例は、管理可能性エンジンがそのコンテンツをスキャンするため、SMRAMへのアクセスをチップセットに開放する。チップセットは、SMRAMに部分的にあるSMMについてインテグリティ検証を提供する。
インテグリティチェックが失敗した場合(ブロック57などにおいて)、管理可能性エンジンは、アラートをリモートIT/AVサーバ及び/又は他のリモートサービスに送信する。例えば、管理可能性エンジンはまた、システムが破壊する可能性があることをユーザに警告するようにしてもよい。例えば、管理可能性エンジンはまた、実行を停止してもよい。例えば、管理可能性エンジンはまた、システムを既知の信頼される状態に再格納し、及び/又はシステムを再スタートしてもよい。インテグリティチェックが成功した場合、管理可能性エンジンは、タイマーをリセットし、次のタイマーの中断を待機する(ブロック58などにおいて)。
例えば、www.uefi.orgのUEFI Platform Initialization(PI)仕様書のVolume 4又はwww.intel.com/technology/frameworkのSMM−CISに記載されるようなUEFIベースのSMMインフラストラクチャについて、ポリシーベースのディスパッチャがある。このポリシーベースのディスパッチャは、UEFI PE/COFF(http://microsoft.com/whdc/system/platform/firmware/PECOFF.mspx) executableの系列を検出し、SMRAMにロードする。本発明の実施例は、以下の擬似コードを実現してもよい。
Figure 2010157230

例えば、本発明の実施例は、以下の擬似コードを実現してもよい。
Figure 2010157230

上記フローとは対照的に、SMMルートキットは、上記ロードシーケンスの後の何れかの時点において、コードをSMRAMに追加しようとする。ルートキットは、SMRAMをアクセス不可にするD_LCKビットのチップセットにおける非設定(オプションのROMの実行前又はOSのブート前にBIOSが通常設定する)などのBIOSバグを介し(http://www.cs.ucf.edu/〜czou/research/SMM−Rootkits−Securecom08.pdf)、又はT−SEGがメモリアタックコードにエイリアスされるキャッシュアタックなどのハードウェアアタックを介し(http://risesecurity.org/papers/smm_hack.txt)、自らをインストールすることが可能である。あるいは、SMMルートキットは、終了されていないBIOSフレームワークAPIを使用することによりSMRAMに入ることが可能である(https://www.blackhat.com/presentations/bh−usa−07/Heasman/Presentation/bh−usa−07−heasman.pdf)。
図6を参照するに、本発明の実施例による一例となるUEFIブートフロー全体は、電源オン(又は再スタート)と、preEFIステージ及びDXE(Driver Execution Environment)ステージを含むプラットフォーム初期化とを含む。DXEステージにおけるこのブートフローのサブセットは、SMMドライバのロードである。本発明の実施例によると、SMMドライバに関するインテグリティ情報は、システムブート中に生成され、管理可能性エンジンに転送される。例えば、ルートキーにより認証された署名付きのUEFI DXE SMM executableに関する情報が、管理可能性エンジンに格納されてもよい。例えば、リロケートされたUEFI DXE SMMイメージのベース及びハッシュが、管理可能性エンジンに記録されてもよい。
図7を参照するに、本発明の実施例による電子システム70は、メモリコントロールハブ(MCH)72とI/Oコントロールハブ(ICH)73とに接続されるCPU71を有する。例えば、メインメモリDRAM74は、MCH72に接続されてもよい。例えば、ICH73は、SATA及びUSBを含む各種I/Oインタフェースをサポートするようにしてもよい。例えば、BIOSコード、管理可能性エンジン(ME)コード及び他のシステムコードを格納するフラッシュメモリ75が、ICH73に接続されてもよい。例えば、管理可能性エンジン(ME)を含むチップセット76が、ICH73に接続されてもよい。DRAM74のセグメントは、SMRAMとして指定される。例えば、SMRAMの先頭セグメントは、T−SEGと呼ばれるかもしれない。本発明の実施例では、T−SEG SMRAMは、チップセット76の管理可能性エンジン(ME)により実行時にモニタされる。
図8を参照するに、一例となるPECOFF実行可能ファイルは、図示されるようなファイル構造を有する。例えば、PECOFF executableは、MEによる観察中のオブジェクトを構成してもよい。例えば、T−SEGは、UEFI PI SMMインフラストラクチャのPECOFF実行可能イメージの系列により占有されてもよい。上記実行可能コンテンツ又はSMRAMにおける認証されたリストを超えた実行可能コンテンツをハイジャック又は変更しようとする試みは、アタックを構成する。
効果的には、実行時のホワイトリスティングSMMに加えて、本発明の実施例は、実行時に他のエンティティをモニタする。例えば、本発明の実施例は、UEFI_SYSTEM_TABLE_RUNTIME_SERVICESデータオブジェクトと関連するファンクションポインタ及びルーチンとをモニタするようにしてもよい。例えば、これらのエンティティは、GetTime()、UEFI変数のGetSet()、CapsuleUpdate()などのOSカーネルランタイムファームウェアインタラクション/コールを実現するため、プラットフォームファームウェアからOSカーネルランタイムにわたされてもよい。例えば、これらのエンティティの一部は、実行時にOSカーネルと一緒に配置され、OSカーネルプロテクションがこれらのオブジェクトに対して利用されてもよい。効果的には、これらのコード及びデータオブジェクトをプロテクトするため、MEによるランタイムインテグリティ検証の実行は、よりロウバストなUEFIの実現を可能にする。
ここに記載される実施例の多くは特定の実行環境に関する用語を使用するが、当業者は、本発明がこれらの特定の実施例に限定されず、均等なルーチン及び/又は構造が、セキュリティ機能が所望される他のプロセッサベース環境により実現可能であることを理解するであろう。同様に、ここで言及された各種コンポーネント、コントローラ、バーチャルモジュール、プロトコル及びレジスタは、等価な構成を提供し、等価な機能を実行しながら、他のプラットフォームにおける他の用語により記載されてもよい。
当業者は、本開示の利益が与えられると、他の多数の回路とハードウェア及び/又はソフトウェアの組み合わせが、ここに記載される実施例及び本発明の他の実施例に従って各種方法、回路及びシステムを実現するよう構成されてもよいことを理解するであろう。図1〜8の実施例は、適切な実施例の非限定的な例である。
本発明の上記及び他の特徴は、個別に及び組み合わせて実現される。本発明は、特定の請求項により明示的に要求されない場合、このような特徴の2以上を要求するものとして解釈されるべきでない。さらに、本発明は好適な実施例であると現在考えられているものに関して説明されたが、本発明は開示された実施例に限定されず、本発明の趣旨及び範囲内に含まれる各種変更及び均等な構成をカバーするものであると理解されるべきである。
10,20 システム
11,21 プロセッサ
12,22 メモリ
13 コードブロック
23 チップセット
24 管理可能性エンジン

Claims (23)

  1. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに接続される少なくとも1つのメモリと、
    コードブロックと、
    プロセッサベースシステムにより実行可能なコードと、
    を有するプロセッサベースシステムであって、
    前記コードは、当該プロセッサベースシステムに、
    当該プロセッサベースシステムの再スタートに応答して、前記コードブロックのインテグリティ情報を生成させ、
    前記インテグリティ情報をセキュアに格納させ、
    前記セキュアに格納されているインテグリティ情報を用いて、当該プロセッサベースシステムの実行中に前記コードブロックのインテグリティを検証させるシステム。
  2. 前記コードブロックは、ファームウェアエレメント、BIOS(Basic Input Output System)エレメント及びSMM(System Management Mode)エレメントの1つに対応する、請求項1記載のシステム。
  3. 前記コードはさらに、当該プロセッサベースシステムに、前記セキュアに格納されているインテグリティ情報を用いて、実行中に前記コードブロックのインテグリティを定期的に再検証させる、請求項1記載のシステム。
  4. 前記コードはさらに、当該プロセッサベースシステムに、複数のコードブロックに対応するインテグリティ情報のリストをセキュアに格納させる、請求項1記載のシステム。
  5. 前記コードはさらに、当該プロセッサベースシステムに、前記複数のコードブロックについて前記少なくとも1つのプロセッサに接続される少なくとも1つのメモリをスキャンさせ、前記セキュアに格納されているインテグリティ情報のリストを用いて、実行中に前記スキャンされたコードブロックのインテグリティを検証させる、請求項4記載のシステム。
  6. ネットワークコンポーネントをさらに有し、
    前記コードはさらに、当該プロセッサベースシステムに、前記検証が失敗した場合にリモートアラートを送信させる、請求項5記載のシステム。
  7. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに接続されるシステム管理メモリと、
    前記少なくとも1つのプロセッサと前記システム管理メモリとに接続される管理可能性エンジンを含むチップセットと、
    プロセッサベースシステムにより実行可能なコードと、
    を有するプロセッサベースシステムであって、
    前記コードは、前記チップセットの管理可能性エンジンに当該プロセッサベースシステムの実行中に前記システム管理メモリのコンテンツを検証させるシステム。
  8. 前記コードはさらに、当該プロセッサベースシステムに、
    当該プロセッサベースシステムの再スタートに応答して、前記システム管理メモリのコンテンツのインテグリティ情報を生成させ、
    前記インテグリティ情報を前記チップセットの管理可能性エンジンに転送させ、
    前記管理可能性エンジンによりアクセス可能な位置に前記インテグリティ情報をセキュアに格納させる、請求項7記載のシステム。
  9. 前記コードはさらに、前記管理可能性エンジンに、前記セキュアに格納されているインテグリティ情報を用いて、当該プロセッサベースシステムの実行中に前記システム管理メモリのコンテンツを定期的に再検証させる、請求項8記載のシステム。
  10. 前記コードはさらに、前記管理可能性エンジンに、前記システム管理メモリをスキャンさせ、前記セキュアに格納されているインテグリティ情報を用いて、前記スキャンされたメモリのインテグリティを検証させる、請求項9記載のシステム。
  11. ネットワークコンポーネントをさらに有し、
    前記コードはさらに、前記管理可能性エンジンに、前記検証が失敗した場合にリモートアラートを送信させる、請求項10記載のシステム。
  12. 前記管理可能性エンジンによりアクセス可能な位置は、前記管理可能性エンジンのメモリサブシステムを含む、請求項10記載のシステム。
  13. 前記管理可能性エンジンは、別のプロセッサを有し、
    前記コードの少なくとも一部は、前記管理可能性エンジンの別のプロセッサにより実行可能である、請求項10記載のシステム。
  14. プロセッサベースシステムのためのランタイムインテグリティ検証を実行する方法であって、
    前記プロセッサベースシステムの再スタートに応答して、コードブロックのインテグリティ情報を生成するステップと、
    前記インテグリティ情報をセキュアに格納するステップと、
    前記セキュアに格納されているインテグリティ情報を用いて、実行中に前記コードブロックのインテグリティを検証するステップと、
    を有する方法。
  15. 前記コードブロックは、ファームウェアエレメント、BIOS(Basic Input Output System)エレメント及びSMM(System Management Mode)エレメントの1つに対応する、請求項14記載の方法。
  16. 前記セキュアに格納されているインテグリティ情報を用いて、実行中に前記コードブロックのインテグリティを定期的に再検証するステップをさらに有する、請求項14記載の方法。
  17. 複数のコードブロックに対応するインテグリティ情報のリストをセキュアに格納するステップをさらに有する、請求項14記載の方法。
  18. 前記複数のコードブロックについて少なくとも1つのプロセッサに接続される少なくとも1つのメモリをスキャンし、前記セキュアに格納されているインテグリティ情報のリストを用いて、実行中に前記スキャンされたコードブロックのインテグリティを検証するステップをさらに有する、請求項17記載の方法。
  19. 前記検証が失敗した場合にリモートアラートを送信するステップをさらに有する、請求項18記載の方法。
  20. プロセッサベースシステムのためのランタイムインテグリティ検証を実行する方法であって、
    前記プロセッサベースシステムの再スタートに応答して、システム管理メモリのコンテンツのインテグリティ情報を生成するステップと、
    前記インテグリティ情報を前記プロセッサベースシステムのチップセットの管理可能性エンジンに転送するステップと、
    前記管理可能性エンジンによりアクセス可能な位置に前記インテグリティ情報をセキュアに格納するステップと、
    を有する方法。
  21. 前記セキュアに格納されているインテグリティ情報を用いて、前記プロセッサベースシステムの実行中に前記管理可能性エンジンにより前記システム管理メモリのコンテンツを定期的に再検証するステップをさらに有する、請求項20記載の方法。
  22. 前記システム管理メモリをスキャンし、前記セキュアに格納されているインテグリティ情報を用いて、前記スキャンされたメモリのインテグリティを検証するステップをさらに有する、請求項21記載の方法。
  23. 前記検証が失敗した場合に前記管理可能性エンジンからリモートアラートを送信するステップをさらに有する、請求項22記載の方法。
JP2009292870A 2008-12-30 2009-12-24 ランタイムインテグリティ検証のための装置及び方法 Expired - Fee Related JP5198422B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/317,852 2008-12-30
US12/317,852 US8832454B2 (en) 2008-12-30 2008-12-30 Apparatus and method for runtime integrity verification

Publications (2)

Publication Number Publication Date
JP2010157230A true JP2010157230A (ja) 2010-07-15
JP5198422B2 JP5198422B2 (ja) 2013-05-15

Family

ID=42029876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009292870A Expired - Fee Related JP5198422B2 (ja) 2008-12-30 2009-12-24 ランタイムインテグリティ検証のための装置及び方法

Country Status (5)

Country Link
US (1) US8832454B2 (ja)
EP (2) EP2461264B1 (ja)
JP (1) JP5198422B2 (ja)
KR (2) KR101410078B1 (ja)
CN (1) CN101770406B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011076134A (ja) * 2009-09-29 2011-04-14 Lenovo Singapore Pte Ltd システム管理モードの特権レベルを保護するコンピュータ

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010102222A2 (en) * 2009-03-05 2010-09-10 Interdigital Patent Holdings, Inc. METHOD AND APPARATUS FOR H(e)NB INTEGRITY VERIFICATION AND VALIDATION
US8839458B2 (en) * 2009-05-12 2014-09-16 Nokia Corporation Method, apparatus, and computer program for providing application security
US8635705B2 (en) * 2009-09-25 2014-01-21 Intel Corporation Computer system and method with anti-malware
US8516551B2 (en) * 2010-07-28 2013-08-20 Intel Corporation Providing a multi-phase lockstep integrity reporting mechanism
US8918907B2 (en) * 2011-04-13 2014-12-23 Phoenix Technologies Ltd. Approaches for firmware to trust an application
EP2951677A4 (en) 2013-01-31 2016-08-03 Hewlett Packard Entpr Dev Lp UPDATING A VALIDATION LIST FOR INDICATING DATA TO WRITE TO A REFERENTIAL OF VARIABLES OF A MICROLOGICAL INTERFACE
CN103116269B (zh) * 2013-02-01 2015-05-13 郑州威科姆科技股份有限公司 一种北斗卫星接收终端时间完整性验证方法
US10073966B2 (en) * 2013-04-29 2018-09-11 Sri International Operating system-independent integrity verification
US8910283B1 (en) 2013-11-21 2014-12-09 Kaspersky Lab Zao Firmware-level security agent supporting operating system-level security in computer system
KR102186609B1 (ko) 2014-03-07 2020-12-03 삼성전자주식회사 무결성 검증 장치를 포함하는 전자 시스템
CN103996001A (zh) * 2014-05-21 2014-08-20 浪潮电子信息产业股份有限公司 一种主板启动权限控制的授权加密方法
US9390258B2 (en) 2014-07-16 2016-07-12 General Electric Company Systems and methods for verifying the authenticity of an application during execution
CN106662994B (zh) * 2014-09-23 2020-01-03 惠普发展公司有限责任合伙企业 检测系统管理模式bios代码的改变
US10248791B2 (en) * 2015-07-20 2019-04-02 Intel Corporation Technologies for secure hardware and software attestation for trusted I/O
KR101624606B1 (ko) * 2015-08-19 2016-05-27 숭실대학교 산학협력단 원격 코드 실행을 이용한 실행 무결성 검증 시스템 및 그 방법
CN108139901B (zh) * 2015-09-30 2022-04-26 惠普发展公司,有限责任合伙企业 使用外部设备的运行时间验证
US9996279B2 (en) * 2015-12-18 2018-06-12 Intel Corporation Integrity protection for system management mode
US10129032B2 (en) 2016-02-16 2018-11-13 Xerox Corporation Secure revisioning auditing system for electronic document files
US10164952B2 (en) * 2016-02-16 2018-12-25 Xerox Corporation Method and system for server based secure auditing for revisioning of electronic document files
US10073975B2 (en) 2016-08-11 2018-09-11 International Business Machines Corporation Application integrity verification in multi-tier architectures
US10262140B2 (en) 2016-09-29 2019-04-16 Intel Corporation Methods and apparatus to facilitate blockchain-based boot tracking
US11256589B2 (en) 2017-01-27 2022-02-22 Hewlett-Packard Development Company, L.P. Detecting a change to system management mode bios code
CN106845238A (zh) * 2017-02-13 2017-06-13 郑州云海信息技术有限公司 一种云主机操作系统加固方法
EP3413532A1 (en) * 2017-06-07 2018-12-12 Hewlett-Packard Development Company, L.P. Monitoring control-flow integrity
IT201900017534A1 (it) * 2019-09-30 2021-03-30 Magneti Marelli Spa "Sistema di elaborazione comprendente apparato di calcolo di tipo "trust anchor" e corrispondente procedimento"
EP3940565A1 (en) * 2020-07-15 2022-01-19 Hewlett-Packard Development Company, L.P. System management states
WO2022254520A1 (ja) 2021-05-31 2022-12-08 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ インテグリティ検証装置およびインテグリティ検証方法
US11902453B2 (en) * 2021-06-25 2024-02-13 Intel Corporation Method, system and apparatus for delayed production code signing for heterogeneous artifacts
CN114546501B (zh) * 2022-01-28 2023-10-24 郑州信大捷安信息技术股份有限公司 一种物理只读磁盘中启动Linux操作系统的方法
TWI826048B (zh) 2022-10-18 2023-12-11 信驊科技股份有限公司 資料安全性校驗方法及電子裝置
US12505256B2 (en) * 2024-04-24 2025-12-23 Dell Products L.P. Method and system for detecting a change in memory

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060047955A1 (en) * 2004-08-30 2006-03-02 Axalto Inc. Application code integrity check during virtual machine runtime
JP2007257197A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd 起動検証機能を有する情報処理装置
JP2007528083A (ja) * 2004-03-24 2007-10-04 インテル・コーポレーション 協調型組込みエージェント
JP2008226160A (ja) * 2007-03-15 2008-09-25 Ricoh Co Ltd 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム
JP2008234079A (ja) * 2007-03-16 2008-10-02 Ricoh Co Ltd 情報処理装置、ソフトウェア正当性通知方法及び画像処理装置
US20080244746A1 (en) * 2007-03-28 2008-10-02 Rozas Carlos V Run-time remeasurement on a trusted platform

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6094731A (en) 1997-11-24 2000-07-25 Symantec Corporation Antivirus accelerator for computer networks
US6023586A (en) * 1998-02-10 2000-02-08 Novell, Inc. Integrity verifying and correcting software
US7409546B2 (en) * 1999-10-20 2008-08-05 Tivo Inc. Cryptographically signed filesystem
US6587947B1 (en) * 1999-04-01 2003-07-01 Intel Corporation System and method for verification of off-chip processor code
US6571335B1 (en) * 1999-04-01 2003-05-27 Intel Corporation System and method for authentication of off-chip processor firmware code
US7757097B2 (en) * 1999-09-03 2010-07-13 Purdue Research Foundation Method and system for tamperproofing software
US6711675B1 (en) * 2000-02-11 2004-03-23 Intel Corporation Protected boot flow
US7398389B2 (en) * 2001-12-20 2008-07-08 Coretrace Corporation Kernel-based network security infrastructure
US6880149B2 (en) * 2002-04-01 2005-04-12 Pace Anti-Piracy Method for runtime code integrity validation using code block checksums
US6907522B2 (en) 2002-06-07 2005-06-14 Microsoft Corporation Use of hashing in a secure boot loader
US7831838B2 (en) * 2004-03-05 2010-11-09 Microsoft Corporation Portion-level in-memory module authentication
US7558966B2 (en) * 2004-06-09 2009-07-07 Intel Corporation Notifying remote administrator of platform integrity determination
US20060005015A1 (en) * 2004-06-30 2006-01-05 David Durham System and method for secure inter-platform and intra-platform communications
US7644287B2 (en) * 2004-07-29 2010-01-05 Microsoft Corporation Portion-level in-memory module authentication
US7953980B2 (en) * 2005-06-30 2011-05-31 Intel Corporation Signed manifest for run-time verification of software program identity and integrity
US9002744B2 (en) * 2006-07-28 2015-04-07 Sony Corporation Methods, systems and computer program products for determining usage rights for digital content based on characterizing information thereof and related devices
DE102006037810A1 (de) * 2006-08-11 2008-02-14 Giesecke & Devrient Gmbh Sichere Programmcodeausführung
US7558527B2 (en) 2006-08-25 2009-07-07 Delphi Technologies, Inc. Radio receiver system and method of injecting audio content
US7529867B2 (en) * 2006-11-01 2009-05-05 Inovawave, Inc. Adaptive, scalable I/O request handling architecture in virtualized computer systems and networks
US20080134321A1 (en) * 2006-12-05 2008-06-05 Priya Rajagopal Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates
US20080163212A1 (en) * 2006-12-29 2008-07-03 Zimmer Vincent J Paralleled management mode integrity checks
GB0707150D0 (en) * 2007-04-13 2007-05-23 Hewlett Packard Development Co Dynamic trust management
US7676501B2 (en) * 2008-03-22 2010-03-09 Wilson Kelce S Document integrity verification

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007528083A (ja) * 2004-03-24 2007-10-04 インテル・コーポレーション 協調型組込みエージェント
US20060047955A1 (en) * 2004-08-30 2006-03-02 Axalto Inc. Application code integrity check during virtual machine runtime
JP2007257197A (ja) * 2006-03-22 2007-10-04 Fujitsu Ltd 起動検証機能を有する情報処理装置
JP2008226160A (ja) * 2007-03-15 2008-09-25 Ricoh Co Ltd 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム
JP2008234079A (ja) * 2007-03-16 2008-10-02 Ricoh Co Ltd 情報処理装置、ソフトウェア正当性通知方法及び画像処理装置
US20080244746A1 (en) * 2007-03-28 2008-10-02 Rozas Carlos V Run-time remeasurement on a trusted platform

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011076134A (ja) * 2009-09-29 2011-04-14 Lenovo Singapore Pte Ltd システム管理モードの特権レベルを保護するコンピュータ

Also Published As

Publication number Publication date
KR20100080398A (ko) 2010-07-08
EP2461264A1 (en) 2012-06-06
EP2204755B1 (en) 2017-11-29
US20100169967A1 (en) 2010-07-01
KR101410078B1 (ko) 2014-07-17
KR20120056809A (ko) 2012-06-04
EP2204755A3 (en) 2011-08-10
CN101770406B (zh) 2016-06-29
KR101556818B1 (ko) 2015-10-01
CN101770406A (zh) 2010-07-07
JP5198422B2 (ja) 2013-05-15
US8832454B2 (en) 2014-09-09
EP2461264B1 (en) 2018-03-07
EP2204755A2 (en) 2010-07-07

Similar Documents

Publication Publication Date Title
JP5198422B2 (ja) ランタイムインテグリティ検証のための装置及び方法
KR101359841B1 (ko) 신뢰성 있는 부트 최적화를 위한 방법 및 장치
KR100855803B1 (ko) 협동적 임베디드 에이전트
CN107533608B (zh) 可信更新
US9087188B2 (en) Providing authenticated anti-virus agents a direct access to scan memory
EP3314861B1 (en) Detection of malicious thread suspension
JP6282305B2 (ja) ハイパーバイザモードにおけるコードの安全な実行システムおよび方法
JP5346608B2 (ja) 情報処理装置およびファイル検証システム
Heasman Implementing and detecting a pci rootkit
EP3005216B1 (en) Protecting anti-malware processes
JP2009543186A (ja) ブート環境におけるマルウェアの識別
US20080163212A1 (en) Paralleled management mode integrity checks
US9245122B1 (en) Anti-malware support for firmware
US20170090821A1 (en) User mode heap swapping
CN103329095A (zh) 用编码的信息验证管理程序
KR101588542B1 (ko) 멀웨어 위험 스캐너
KR102579861B1 (ko) 차량용 소프트웨어 업데이트 장치 및 그 제어 방법
CN108139901A (zh) 使用外部设备的运行时间验证
Zimmer Platform Trust Beyond BIOS Using the Unified Extensible Firmware Interface.
CN120150978A (zh) 使用基于完整性测量认证的心跳消息来监控用户空间进程
RU2533303C2 (ru) Антивирусная вычислительная система
KR20110048014A (ko) 컴퓨터 플랫폼에서의 방법 및 장치

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111206

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120306

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

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: 20130108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130206

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160215

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees