(57)【要約】【課題】計算機システム内でセキュリティ侵害を識別して防ぐシステムと方法を提供する。【解決手段】計算機システム（１００）はプログラムを実行するプロセッサ・コア（１０６）を有する多重処理ユニット（１０４）を含む。監視システム（２００）はコア・バス上の活動を監視してセキュリティ侵害を識別するプラットフォーム・セキュリティ・コントローラ（２５０）を含む。セキュリティ侵害の識別に応じて、プロセッサ・コア（１０６）内のプログラムの更なる実行を防ぐ。【選択図】図１
2006040282.tif 000002
【特許請求の範囲】
【請求項１】
計算機システム内で動作するプロセッサ・コアに結合するコア・バス上の活動を監視し、
前記コア上の活動をセキュリティ侵害と識別し、
前記セキュリティ侵害に応じて前記プロセッサ・コア内の命令を実行することを防ぐ、
ことを含むセキュリティ侵害を防ぐ方法。
【請求項２】
前記セキュリティ侵害に応じて割込み信号を前記プロセッサ・コアに表明し、
前記表明された割込み信号に応じてセキュリティ応答ソフトウエアを実行する、
ことを更に含む、請求項１記載のセキュリティ侵害を防ぐ方法。
【請求項３】
或る特定の特権レベルを持つ資源に異なる特権レベルを有する資源からアクセスを企てると前記セキュリティ侵害と識別し、
前記異なる特権レベルを持つ前記資源のアクセスを防ぐ、
ことを更に含む、請求項１または２記載のセキュリティ侵害を防ぐ方法。
【請求項４】
前記プロセッサ・コアに与えられる命令放棄シーケンスを前記セキュリティ侵害と識別することを更に含む、請求項１記載のセキュリティ侵害を防ぐ方法。
【請求項５】
計算機システムであって、
１次バスに結合するプロセッサ・コアと、
前記１次バスに結合する監視システムであって、前記１次バス上の活動を追跡して前記プロセッサ・コア上で実行するプログラムに起因する前記１次バス上の活動を含むセキュリティ侵害を識別し、前記セキュリティ侵害の識別に応じて前記プロセッサ・コア上でのプログラムの更なる実行を防ぐ、監視システムと、
を備える計算機システム。
【請求項６】
前記プロセッサ・コアは先取りステージと、予想ステージと、パイプライン・ステージの少なくとも１つを備え、前記監視システムは前記少なくとも１つのステージを消去することにより前記更なる実行を防ぐ、請求項５記載の計算機システム。
【請求項７】
前記監視システムは、前記プログラムの更なる実行を阻止するセキュリティ応答ソフトウエアの実行をトリガする前記プロセッサ・コアへの割込み信号を活動化する、請求項５または６記載の計算機システム。
【請求項８】
前記プロセッサ・コアは安全モードと非安全モードで動作し、
前記プロセッサ・コアは、前記セキュリティ応答ソフトウエアを実行すると前記非安全モードから前記安全モードに切り替える、
請求項５−７のいずれか記載の計算機システム。
【請求項９】
計算機システムであって、
監視装置と、
複数の計算機システム構成要素と、
ファイアウォール・システムであって、複数のシステム構成要素の少なくとも１つへのアクセスの試みを監視し、また前記複数の計算機システム構成要素と前記監視装置との間に結合する、ファイアウォール・システムと、
を備え、
前記ファイアウォール・システムは、複数の記憶されたファイアウォール拘束の少なくとも１つの侵害をセキュリティ侵害と認識し、
前記ファイアウォール・システムは、前記アクセスの企てを前記セキュリティ侵害と認識した場合は前記アクセスの企てを阻止する、
計算機システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件はマイクロプロセッサ・ベースのシステム内で悪質なプログラムが実行されていることを検出することに関する。場合によっては、悪質なプログラムの実行を止めて、攻撃が検出されたことを可視的および／または可聴的通報によりユーザに通報してよい。
【背景技術】
【０００２】
マイクロプロセッサ・ベースの民生用エレクトロニック装置は、オペレーティング・システム（Ｏ／Ｓ）用とユーザ・ソフトウエア・アプリケーション用の２つの特権レベルで設計される。或るマイクロプロセッサ・ベースのシステムでは、２つの特権レベルのセキュリティは十分でない。それは、主としてオペレーティング・システムの特権レベル（保護モードと呼ぶことがある）の効果的な実現がＯ／Ｓソフトウエアの正しい動作に依存するからである。このようにＯ／Ｓソフトウエアの正しい動作に依存するため、システムはコンピュータ・ウイルスなどの悪質なプログラムに弱い。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
或るマイクロプロセッサ・ベースのシステムは第３の「安全」動作レベルをハードウエアで実現することによりこの問題に対処している。このセキュリティ・ハードウエアは少なくともいくつかのハードウエア構成要素（例えば、メモリ、メモリ管理ユニット、キャッシュ・レジスタなど）へのソフトウエア・アクセスを阻止することができる。セキュリティ・ハードウエアはセキュリティ侵害に関してシステムを監視し、何らかの侵害を検出するとシステム全体をリセットしてよい。しかしシステムをリセットすること自体が攻撃になるので、システムをしばしばリセットするとシステムは使用不能になる。かかる攻撃はしばしば「サービスの拒否（ｄｅｎｉａｌ  ｏｆ  ｓｅｒｖｉｃｅ：ＤｏＳ）」攻撃と呼ばれる。
したがって、システムをリセットするという極端な手段に訴えずに攻撃を検出して止めることのできるシステムが望まれる。
【課題を解決するための手段】
【０００４】
上に述べた問題の大部分は、計算機システム内でセキュリティ侵害を識別して防ぐシステムと方法により対処することができる。或る例示の実施の形態は、プロセッサ・コア（計算機システム内で動作するプロセッサ・コア）に結合するコア・バス上の活動を監視し、コア・バス上の活動をセキュリティ侵害と識別し、セキュリティ侵害に応じてプロセッサ・コア内の或る命令の実行を防ぐことから成る方法を含んでよい。
【０００５】
別の例示的な実施の形態は、計算機システムのプロセッサ・コアのコア・バス上の活動を追跡し、コア・バス上の活動をセキュリティ侵害と認識し、セキュリティ侵害に応じてプロセッサ・コアに割込み信号を表明し、表明された割込み信号に応じてセキュリティ応答ソフトウエアを実行することから成る方法を含んでよい。
【０００６】
更に別の例示の実施の形態は、１次バスに結合するプロセッサ・コアと、１次バスに結合する監視システム（この監視システムは１次バス上の活動を追跡する）から成る計算機システムを含んでよい。監視システムはプロセッサ・コア上で実行するプログラムに起因する１次バス上の活動を含むセキュリティ侵害を認識し、プロセッサ・コアのパイプライン・ステージをフラッシュさせることにより活動の完了を阻止する。
【０００７】
更に別の例示の実施の形態は、監視システムと、複数の計算機システム構成要素と、ファイアウォール・システム（複数のシステム構成要素の少なくとも１つへのアクセスの企てを監視するために複数の計算機システム構成要素と監視システムとの間に結合するファイアウォール・システム）から成る計算機システムを含んでよい。ファイアウォール・システムは複数の記憶されたファイアウォール拘束の少なくとも１つの侵害をセキュリティ侵害と認識して、アクセスの企てをセキュリティ侵害と認識した場合はそのアクセスの企てを阻止する。
【実施例】
【０００８】
（表記法と用語）
以下の説明とクレームではいくつかの用語を用いて特定のシステム構成要素を参照する。この文書では、名称は異なるが機能は同じである構成要素は区別しない。
【０００９】
以下の説明とクレームでは、「含む」および「備える」という用語は非制約的に用いられるので、「含むが限定されない」の意味に解釈しなければならない。また「結合する」という用語は間接または直接の電気的接続を意味するものである。したがって、第１の装置が第２の装置に結合する場合は、その接続は直接の電気的接続でもよいし、他の装置や接続を介した間接の電気的接続でもよい。
【００１０】
（好ましい実施の形態の詳細な説明）
図１は本発明の少なくともいくつかの実施の形態に従って構築された計算機システム１００を示す。計算機システム１００は、データおよび命令バスとセキュリティ・ファイアウォール（例えば、Ｌ３バス／ファイアウォール２５４、Ｌ４バス／ファイアウォール２５６、外部メモリ・ファイアウォール２５２）とにより種々の他のシステム構成要素に結合する多重処理ユニット（ＭＰＵ）１０４を備えてよい。ＭＰＵ１０４は、恐らく複数の処理パイプラインを有してプログラムを実行するプロセッサ・コア（コア）１０６を備えてよい。またＭＰＵ１０４は、コア１０６上で安全なプログラムを実行するためにＭＰＵ１０４を安全モードに入れるのを助けるコア・セキュリティ・コントローラ（ＣＳＣ）２５８を備えてよい。またコア・セキュリティ・コントローラ２５８は、安全モード中は安全な動作を保証し、非安全モード中は計算機システム１００の安全な構成要素へのアクセスを防ぐための監視動作を行う。
【００１１】
また計算機システム１００は、Ｌ３バス／ファイアウォール２５４によりＭＰＵ１０４に結合するディジタル信号処理プロセッサ（ＤＳＰ）１０８を備えてよい。ＤＳＰ１０８はＭＰＵ１０４を助けてタスクに特有の計算（グラフィックス処理や音声処理など）を行ってよい。ＤＳＰ１０８は自分のコア１１０と自分のコア・セキュリティ・コントローラ２６０とを有してよい。グラフィックス・アクセラレータ（ＧＦＸ）１１２もＬ３バス／ファイアウォール２５４によりＭＰＵ１０４とＤＳＰ１０８とに結合してよい。グラフィックス・アクセラレータ１１２は情報をディスプレイ装置１４２上などに表示するために必要な計算と情報の変換を行ってよい。ＭＰＵ１０４およびＤＳＰ１０８と同様に、グラフィックス・アクセラレータ１１２は自分のコア１１４と自分のコア・セキュリティ・コントローラ２６２とを有してよい。ＭＰＵ１０４の場合と同様に、ＤＳＰ１０８およびグラフィックス・アクセラレータ１１２はそれぞれ独立に安全モードに入って、コア１１０およびコア１１４上でそれぞれセキュリティ・プログラムを実行してよい。
【００１２】
また計算機システム１００は、Ｌ３バス／ファイアウォール２５４によりオンチップ・メモリ１１８およびスタック化メモリ１２０に結合しまたＬ３バス／ファイアウォール２５４および外部メモリ・ファイアウォール２５２により外部メモリ１１６に結合する、直接メモリ・アクセス・コントローラ（ＤＭＡ  ＣＴＬＲ）１２２を備えてよい。直接メモリ・アクセス・コントローラ１２２は、オンチップ・メモリ１１８と、スタック化メモリ１２０と、外部メモリ１１６との間のアクセスを、例えばＭＰＵ１０４や、ＤＳＰ１０８や、グラフィックス・アクセラレータ１１２などの他の任意のシステム構成要素により制御してよい。オンチップ・メモリ１１８と、スタック化メモリ１２０と、外部メモリ１１６とは任意の適当なメモリでよい。例えば、同期ＲＡＭ、ＲＡＭＢＵＳ（登録商標）型ＲＡＭ、プログラマブルＲＯＭ（ＰＲＯＭ）、消去可能なプログラマブルＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なプログラマブルＲＯＭ（ＥＥＰＲＯＭ）などでよい。スタック化メモリは、システム・オン・ア・チップ（ＳｏＣ）１０２と同じ半導体パッケージ内に組み込まれるが、システム・オン・ア・チップ１０２の半導体ダイ（ｄｉｅ）とは別の半導体ダイ上にある任意の適当なメモリでよい。
【００１３】
また計算機システム１００は、Ｌ４バス／ファイアウォール２５６により種々のシステム構成要素に結合するＵＳＢインターフェース（ＵＳＢ  Ｉ／Ｆ）１２４を備えてよい。ＵＳＢインターフェース１２４により、計算機システム１００は外部装置に結合して通信することができる。
【００１４】
各コア・セキュリティ・コントローラ（例えば、コア・セキュリティ・コントローラ２５８）は、各個別のプロセッサ・コア（例えば、コア１０６）のシステム・パラメータを監視するハードウエア・ベースの状態機械として実現してよい。コア・セキュリティ・コントローラにより、プロセッサは安全動作モードを開始して、安全なメモリから（例えば、オンチップ・メモリ１１８の安全なアドレス範囲から）の安全なプログラムを実行し、安全な資源（例えば、直接メモリ・アクセス・コントローラ１２２の安全なチャンネルの制御レジスタ）にアクセスすることができる。この安全モード（すなわち第３レベルの特権）を有することは、任意の種類のコンピュータ・システム（例えば、ラップトップ・コンピュータ、デスクトップ・コンピュータ、サーバのバンク内のサーバ）にとって貴重である。しかし本発明の少なくともいくつかの実施の形態では、計算機システム１００は移動体計算機システムでよい。例えば、セルラ電話や、パーソナル・ディジタル・アシスト（ＰＤＡ）や、テキスト・メッセージング・システムや、メッセージング・システムとパーソナル・ディジタル・アシストとセルラ電話の機能を組み合わせた計算装置でよい。いくつかの実施の形態は、外部アンテナ１３６に結合するモデム・チップセット１３８、および／または同様に外部アンテナ１３０に結合する全地球測位システム（ＧＰＳ）回路１２８を備えてよい。
【００１５】
少なくともいくつかの実施の形態に係る計算機システム１００は移動体装置なので、計算機システム１００は、恐らく電力管理ユニット１３４により制御されて種々の処理要素に電力を供給する電池１３２も備えてよい。ユーザは、キーボードやキーパッドやタッチ・パネルなどのユーザ・インターフェース（ユーザＩ／Ｆ）１４０によりデータおよび／またはメッセージを計算機システム１００に入力してよい。多くのセルラ電話はディジタル静止画像とビデオ画像を扱う機能も備えるので、或る実施の形態では、計算機システム１００はカメラ・インターフェース（ＣＡＭ  Ｉ／Ｆ）１２６を備えて、ディジタル画像を捕える電荷結合素子（ＣＣＤ）配列（図示しない）に計算機システム１００を結合することによりカメラ機能を与えることができる。
【００１６】
図１に示すシステム１００の種々のファイアウォールはコア・セキュリティ・コントローラが与える保護を超える更なる保護をそれぞれ与える。ファイアウォールは、一組のプログラムされた規則に従って他の構成要素（またはその構成要素上で実行するソフトウエア）が計算機システム１００の構成要素にアクセスするのを阻止または許可してよい。この規則は構成要素と動作モード（例えば、安全または非安全）の対の間の関係を確立する。かかる規則は、ハードウエアで、またはアクセスを企てる構成要素と望ましいアクセス先である構成要素のアドレス範囲とを相互参照する許可テーブルの形のソフトウエアで実現してよい。要求された動作と現在の動作モードとについて得られた許可がアクセスを拒否するものである場合は、ファイアウォールはセキュリティ侵害の信号を送る。
【００１７】
ファイアウォール２５２，２５４，２５６と、コア・セキュリティ・コントローラ２５８，２６０，２６２と、セキュリティ表示器２６４とは、プラットフォーム・セキュリティ・コントローラ２５０にそれぞれ結合する。プラットフォーム・セキュリティ・コントローラ２５０はセキュリティ侵害を検出する中枢として働く。コア・セキュリティ・コントローラおよびファイアウォールは、プラットフォーム・セキュリティ・コントローラ２５０により監視された個別のセキュリティ侵害信号をそれぞれ表明する。個別のセキュリティ侵害信号のどれかの表明を検出すると、プラットフォーム・セキュリティ・コントローラはこれに応えて１つ以上のコア・セキュリティ・コントローラを起動してセキュリティ応答シーケンス（後で説明する）を開始する。またプラットフォーム・セキュリティ・コントローラは、攻撃表示器２６４を活動化するなどして、侵害を検出したことを計算機システム１００のユーザに警報してよい。
【００１８】
上に述べた種々のセキュリティ構成要素は監視システム２００として動作する。監視システム２００は、プラットフォーム・セキュリティ・コントローラ２５０と、ファイアウォール２５２，２５４，２５６と、コア・セキュリティ・コントローラ２５８，２６０，２６２と、攻撃表示器２６４とを備える。図２は監視システム２００の詳細を示すもので、監視システム２００内の構成要素とＭＰＵ１０４内の構成要素とを結合する例示的な構成を示す。本発明の少なくともいくつかの実施の形態では、ＭＰＵ１０４は、コア１０６と、割込みコントローラ１７４と、２次バス１８２と、コア・セキュリティ・コントローラ２５８（コア・セキュリティ・コントローラ２５８も備える監視システム２００と重なる）とを備える。コア１０６は、プロセッサ１７０と、１次バス１８０（プロセッサ１７０の固有のバス）と、バス・ブリッジ１７２とを備える。本発明の少なくともいくつかの実施の形態では、プロセッサ１７０はＡＲＭ１１３６シリーズのプロセッサなどのオンチップのシステム内に組み込むのに適した任意のプロセッサでよい。
【００１９】
プロセッサ１７０は、バス・ブリッジ１７２およびコア・セキュリティ・コントローラ２５８と同様に１次バス１８０に結合する。またプロセッサ１７０は、コア・セキュリティ・コントローラ２５８と割込みコントローラ１７４とに結合する。コア・セキュリティ・コントローラ２５８は、バス・ブリッジ１７２とプラットフォーム・セキュリティ・コントローラ２５０とに結合する。プラットフォーム・セキュリティ・コントローラ２５０は、攻撃表示器２６４と、外部メモリ・ファイアウォール２５２と、Ｌ３バス／ファイアウォール２５４と、Ｌ４バス／ファイアウォール２５６とに結合する。Ｌ４バス／ファイアウォール２５６はＬ３バス／ファイアウォール２５４に結合し、Ｌ３バス／ファイアウォール２５４は２次バス１８２に結合する。
【００２０】
コア・セキュリティ・コントローラは、１次バス１８０上の信号を監視することによりプロセッサ１７０の活動を追跡する。これらの信号は、命令バス信号と、データ・バス信号と、状態信号と、制御信号とを含んでよい。かかる信号は１次バス内の別々のバス（例えば、ハーバード・コンピュータ・アーキテクチャに見られるような命令バスや、データ読取りバスや、データ書込みバス）として編成してよい。１次バス１８０上のかかる信号を監視することにより、コア・セキュリティ・コントローラ２５８は実行するためにプロセッサ１７０に与えられる実際の命令およびデータや、ＭＰＵ１０４のセキュリティ・モードや、現在のセキュリティ・モードにおいて命令および／またはデータが許可されるかどうか、を決定することができる。例えば、プロセッサ１７０が非安全モードで動作中にプロセッサ１７０上で実行するプログラムがメモリの安全なアドレス範囲にアクセスしようとすると、コア・セキュリティ・コントローラ２５８はこれをセキュリティ侵害と識別する。同様に、プロセッサ１７０が安全モードで動作中にプロセッサ１７０上で実行するプログラムがメモリの非安全なアドレス範囲にアクセスしようとすると、コア・セキュリティ・コントローラ２５８はこれもセキュリティ侵害と識別する。
【００２１】
１次バス１８０上の他の活動もセキュリティ侵害と識別される。２つの資源のセキュリティ・レベルが一致しない場合は、コア・セキュリティ・コントローラ２５８は一方の資源から他方の資源へのアクセスをセキュリティ侵害と識別する。したがって、例えば、直接メモリ・アクセス・コントローラ１２２の非安全なチャンネルがオンチップ・メモリ１１８の安全なアドレス範囲にアクセスすると、セキュリティ侵害と識別される。同様に、直接メモリ・アクセス・コントローラ１２２の安全なチャンネルが外部メモリ１１６の非安全なアドレス範囲にアクセスすると、これもセキュリティ侵害と識別される。コア・セキュリティ・コントローラ２５８は、プロセッサ１７０に与えられる命令放棄シーケンスもセキュリティ侵害と識別する。この種の攻撃の例としては、悪性のプログラムが命令放棄シーケンスを用いて安全モード・エントリ・シーケンスに割り込もうとしたり、すでに安全モードで実行中のソフトウエアに割り込もうとしたりすることなどがある。両方ともセキュリティ侵害と識別される。
【００２２】
セキュリティ・コントローラ２５８が監視するシステム上の他の活動は、電子通信システム１００の電圧レベルの悪質な処理や、クロック周波数の悪質な不正処理や、故意のハードウエア故障生成（例えば、レーザを用いた）や、無許可のテストおよびデバッグ活動（例えば、運転中の電子通信システム１００をテスト・モードにしようとすること）を含む。セキュリティ・コントローラ２５８が検出したこれらの活動の企ても全てセキュリティ侵害と識別される。
【００２３】
セキュリティ侵害が検出されると、コア・セキュリティ・コントローラ２５８はセキュリティ応答シーケンスを開始してよい。セキュリティ応答シーケンスは、侵害する動作の実行を阻止または停止することや、有害なプログラムの今後の実行を阻止すること（例えば、計算機システム１００からプログラムを削除することにより）や、恐らく両方の処置を含む。それぞれについて順に説明する。
【００２４】
本発明の少なくともいくつかの実施の形態では、命令または命令に関連するデータがコア・セキュリティ・コントローラ２５８内にプログラムされているセキュリティ拘束を侵害した場合は、コア・セキュリティ・コントローラ２５８は１次バス１８０上でプロセッサ１７０に与えられる命令を放棄してよい。コア・セキュリティ・コントローラ２５８はセキュリティ放棄信号２８２を表明し、バス・ブリッジ１７２はこれを固有のプロセッサ・ハードウエア・ベースの放棄に変換する。ハードウエア・ベースの放棄は有害な命令の実行を防ぎ、また先取りユニットや、内部命令および／またはデータ予測機構や、侵害または攻撃の一部である追加のプログラム命令を含むプロセッサ１７０のパイプライン・ステージをフラッシュしてよい。かかるフラッシュにより悪質なプログラムの文脈を消去して、プログラムの実行を終わらせる。放棄はハードウエア・ベースであってソフトウエアによる制御または干渉を受けないので、悪質なプログラムはこのように実現されたセキュリティ応答シーケンスを妨害したり迂回したりするのが非常に困難である。
【００２５】
本発明の少なくともいくつかの実施の形態では、プロセッサ１７０はＡＲＭ１１３６シリーズのプロセッサでよい。かかるプロセッサは、セキュリティ侵害を起こしたと識別された命令の実行を防ぐのに必要な上述の種類のハードウエア・ベースの命令放棄シーケンスを与え、また放棄シーケンスの一部として全ての予想およびパイプライン・ステージをフラッシュして、攻撃シーケンスの一部である全ての他の先取り命令の実行を防ぐ機能を与える。
【００２６】
また図２のコア・セキュリティ・コントローラ２５８は、セキュリティ侵害に応答してプロセッサ１７０への割込みを生成する。本発明の少なくともいくつかの実施の形態では、コア・セキュリティ・コントローラはセキュリティ放棄割込み信号２８４を表明する。割込みコントローラ１７４はこれを監視する。セキュリティ放棄割込みの表明に応じて割込みコントローラは割込み要求（ＩＲＱ）信号２８１を表明し、これによりプロセッサ１７０への割込み要求を開始してよい。
【００２７】
割込み要求信号２８１によりトリガされてプロセッサ１７０上で実行される割込みサービス・ルーチンは、悪質なプログラムの源を識別してプログラムの今後の実行を防ぐ（例えば、計算機システム１００からその源を除去することにより）ことのできる１つ以上のソフトウエア・プログラム（例えば、アンチウイルス・ソフトウエア）を実行する。プロセッサ１７０は侵害消去信号２８０を表明することにより、割込みサービス・ルーチンが完了したことをコア・セキュリティ・コントローラ２５８に知らせてよい。本発明の少なくともいくつかの実施の形態では、高性能で優先順位の高いプロセッサ割込み（例えば、ＡＲＭ１１３６シリーズのプロセッサのＦＩＱ割込み）を用いてよい。なぜなら、かかる割込みによりトリガされた割込みサービス・ルーチンを、攻撃するソフトウエアが迂回するのは非常に困難だからである。
【００２８】
コア・セキュリティ・コントローラ２５８は監視システム２００の種々のファイアウォールの１つが検出したセキュリティ侵害にも応答してよい。監視システム２００の種々のファイアウォールはそれぞれファイアウォール侵害信号（例えば、Ｌ３ファイアウォール侵害信号２９２）を表明して、セキュリティ侵害が検出されたことをプラットフォーム・コントローラ２５０に示してよい。プラットフォーム・コントローラ２５０はファイアウォールが検出したセキュリティ侵害に応答してファイアウォール侵害信号２８６を表明してよい。或る実施の形態では、コア・セキュリティ・コントローラ２５８はファイアウォール侵害表示に対して、コア・セキュリティ・コントローラ２５８が検出したセキュリティ侵害に応答するのと同じ方法で応答してよい。
【００２９】
別の実施の形態では、コア・セキュリティ・コントローラ２５８はファイアウォールセキュリティ侵害に別の方法で応答してよい。例えば、ＵＳＢポート１２４（図１参照）に結合するＵＳＢ装置がオンチップ・メモリ１１８の安全なアドレス範囲にアクセスしようとした場合は、Ｌ４バス／ファイアウォール２５６はアクセスを拒否して、侵害をプラットフォーム・セキュリティ・コントローラ２５０に通報してよい。プラットフォーム・セキュリティ・コントローラ２５０はファイアウォールが検出した侵害をコア・セキュリティ・コントローラ２５８に通知し、コア・セキュリティ・コントローラ２５８はプロセッサ１７０に割込み要求を送ってよい。割込み要求に応えてプロセッサ１７０上で実行される割込みサービス・ルーチンは必要な処置をとってよい。かかる処置はセキュリティ侵害のロギングでよい。なぜなら、アクセスはすでにファイアウォールにより阻止されているので、それ以上の保護または補償の処置をとる必要はないからである。
【００３０】
本発明の少なくともいくつかの実施の形態に従って構築された監視システム２００のファイアウォールは、異なるセキュリティ・レベルで動作することのできる計算機システム１００の構成要素の間を分離してよい。ファイアウォールは計算機システム１００の種々の構成要素をリンクするバス内に組み込んで、バス内の要求／応答機構を制御してよい。かかる要求／応答機構により、アクセスを要求する構成要素（「イニシエータ」と呼ぶことある）は他の構成要素（「ターゲット」と呼ぶことがある）にアクセスすることができるが、これは構成要素を結合するバスに組み込まれたセキュリティ・ファイアウォールがアクセスを許可した場合に限られる。例えば、直接メモリ・アクセス・コントローラ１２２はスタック化メモリ１２０にアクセスを要求してよいが、アクセスがセキュリティ拘束を侵害しない場合に限り、Ｌ３バス／ファイアウォール２５４内に組み込まれたセキュリティ・ファイアウォールはアクセスを許可する。
【００３１】
また、本発明の少なくともいくつかの実施の形態では、Ｌ３バス／ファイアウォール２５４はディジタル・ハードウエアを用いて実現して、グラフィックス・コントローラ１１２から直接メモリ・アクセス・コントローラ１２２への全てのアクセス要求を常に拒否するようにしてよい。かかるハードウエアは、グラフィックス・コントローラ１１２がＬ３バス／ファイアウォール２５４のバス部上に置いたイニシエータおよびターゲットの識別情報を、Ｌ３バス／ファイアウォール２５４のセキュリティ・ファイアウォール部への入力として用いる。セキュリティ・ファイアウォール内の論理はこの情報を復号して、イニシエータからターゲットへのアクセスが許可されるかどうか判定する（ここに説明した例では、アクセスは常に拒否される）。かかるハードウエア・ベースのファイアウォールは高レベルのセキュリティを与える。なぜなら、再プログラミングや変更が容易でないからである。
【００３２】
Ｌ３バス／ファイアウォール２５４の別の実施の形態はメモリ・ベースのルックアップ・テーブルを用いてよい。かかる実施の形態では、許可テーブルは多次元テーブルとして実現してよい。例えば、イニシエータ識別と、ターゲット識別と、ＭＰＵ１０４のセキュリティ・モードとを用いてテーブルに指標を付け、アクセス要求に対する応答を生成してよい。このテーブルは任意の適当なメモリを用いて実現してよい。用いるメモリの種類に従って、種々の程度の柔軟性とセキュリティが得られる。例えば、ＲＯＭを用いると、計算機システム１００上で実行するプログラムはメモリ内にコード化されたセキュリティ拘束を変えることができないので、計算機システム１００は柔軟性に欠けるが非常に安全である。これに比べて、ＲＡＭを用いると、計算機システム１００上で実行するプログラムはメモリ内でコード化されたセキュリティ拘束を実行時に動的に再構成することができるので（システム内に組み込まれた他のセキュリティ手段により適当に拘束される）、計算機システム１００は一層柔軟になる。
【００３３】
ファイアウォールが検出した侵害を監視するのに加えて、プラットフォーム・セキュリティ・コントローラ２５０はセキュリティ侵害が起こったときにユーザに警報してよい。図２に示すように、また本発明の少なくともいくつかの実施の形態では、プラットフォーム・セキュリティ・コントローラ２５０はＣＳＣ侵害信号２８８が示す侵害に関してコア・セキュリティ・コントローラ２５８も監視してよい。この信号と、監視システム２００が含む他のコア・セキュリティ・コントローラやファイアウォールからの同様の信号とにより、プラットフォーム・セキュリティ・コントローラ２５０は監視システム２００の他の要素により検出されたセキュリティ侵害に対処することができる。プラットフォーム・セキュリティ・コントローラは表明されたセキュリティ侵害信号に応答して攻撃信号２９６を表明し、攻撃表示器１７４を活動化して侵害が（したがって計算機システム１００への攻撃が）起こったことをユーザに警報する。
【００３４】
図３は、監視システム２００が用いるのに適した、セキュリティ侵害への応答と、攻撃の停止と、ユーザへの通知とのための方法を示す。本発明の少なくともいくつかの実施の形態では、かかる方法は、セキュリティ侵害検出ブロック３０２と、ユーザ通知ブロック３０４と、セキュリティ放棄信号表明ブロック３０６と、セキュリティ放棄割込み表明ブロック３０８と、割込みサービス・ルーチン実行ブロック３１０と、セキュリティ侵害消去ブロック３１２とを含んでよい。
【００３５】
引き続き図３を参照して、ブロック３０２に示すようにセキュリティ侵害が検出されると（例えば、コア・セキュリティ・コントローラ２５８により）、ブロック３０４でユーザは侵害の通知を受けてよい（例えば、攻撃表示器１７４を活動化することにより）。攻撃が企てられたことをユーザに通知した後、ブロック３０６に示すようにセキュリティ放棄信号が表明され、監視システム２００内のプロセッサに実行するよう与えられた命令が放棄される。これにより、前記プロセッサに関連する全ての予想またはパイプライン・ステージをフラッシュしてよい。次に、ブロック３０８に示すようにセキュリティ放棄割込みが表明され、ブロック３１０に示すように割込みサービス・ルーチンが優先して実行される。割込みサービス・ルーチンはセキュリティ侵害に直接対処し、または有害な攻撃命令の源の位置を探すことのできる１つ以上のソフトウエア・プログラム（例えば、ウイルス・スキャナ・ソフトウエア）を実行して、その源が今後命令を実行するのを防ぐ（例えば、その源を装置１００から除去することにより）。ブロック３１０の割込みサービス・ルーチンが実行を完了した後、ブロック３１２に示すように侵害に消去の印をつけてよい（例えば、セキュリティ侵害を最初に検出したコア・セキュリティ・コントローラに侵害消去信号を表明することにより）。
【００３６】
上の開示は本発明の原理と種々の実施の形態を示すためのものである。上の開示を完全に理解すれば、種々の変更や修正は当業者に明らかである。この開示は全てのかかる変更や修正を含むものである。
【００３７】
本発明は計算機システム内でセキュリティ侵害を識別して防ぐシステムと方法を提供する。計算機システム１００はプログラムを実行するプロセッサ・コア１０６を有する多重処理ユニット１０４を含む。監視システム２００はコア・バス上の活動を監視してセキュリティ侵害を識別するプラットフォーム・セキュリティ・コントローラ２５０を含む。セキュリティ侵害の識別に応じて、プロセッサ・コア１０６内のプログラムの更なる実行を防ぐ。
【図面の簡単な説明】
【００３８】
【図１】本発明の少なくともいくつかの実施の形態に従って構築された計算機システムを示す。
【図２】本発明の少なくともいくつかの実施の形態に従って構築された監視装置を示す。
【図３】本発明の少なくともいくつかの実施の形態に係る、攻撃を止める方法を示す。
【符号の説明】
【００３９】
１００  計算機システム
１０４  多重処理ユニット
１０６  プロセッサ・コア
２００  監視システム
２５０  プラットフォーム・セキュリティ・コントローラ
【図１】
2006040282.tif 000003
【図２】
2006040282.tif 000004
【図３】
2006040282.tif 000005