JP4901179B2 - 時限式実行可能エージェントを使用したソフトウェア保全性保護のための方法および装置 - Google Patents

時限式実行可能エージェントを使用したソフトウェア保全性保護のための方法および装置 Download PDF

Info

Publication number
JP4901179B2
JP4901179B2 JP2005312096A JP2005312096A JP4901179B2 JP 4901179 B2 JP4901179 B2 JP 4901179B2 JP 2005312096 A JP2005312096 A JP 2005312096A JP 2005312096 A JP2005312096 A JP 2005312096A JP 4901179 B2 JP4901179 B2 JP 4901179B2
Authority
JP
Japan
Prior art keywords
program
agent
client
executable program
memory
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
JP2005312096A
Other languages
English (en)
Other versions
JP2006127521A (ja
Inventor
エー.ガレイ ジュアン
フランシス ヒュエルスバーゲン ロレンツ
Original Assignee
アルカテル−ルーセント ユーエスエー インコーポレーテッド
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 アルカテル−ルーセント ユーエスエー インコーポレーテッド filed Critical アルカテル−ルーセント ユーエスエー インコーポレーテッド
Publication of JP2006127521A publication Critical patent/JP2006127521A/ja
Application granted granted Critical
Publication of JP4901179B2 publication Critical patent/JP4901179B2/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
    • 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/577Assessing vulnerabilities and evaluating computer system security
    • 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/2103Challenge-response
    • 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/2151Time stamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Description

本発明はコンピュータ・セキュリティ技法に関し、より詳細には、分散環境でコンピュータ・システムの保全性を監視するチャレンジ・レスポンス方式に関する。
コンピュータ・システム(例えばソフトウェア、ハードウェア、およびこれらの相互接続)が、クリティカルでデリケートなコンピュータ操作において使用されるためには、コンピュータ・システムは高度に信用されなければならない。しかし、ほとんどのコンピューティング・プラットフォームは、悪意ある攻撃、特に、常駐ソフトウェアが修正または再構成される攻撃に対して、相対的に保護がない。ソフトウェア・クライアントは、特別なセキュリティ・ハードウェア(例えば暗号チップ付きのもの)で保護することができるが、また保護すべきだと言ってよいが、通常は、それらが課す材料コストおよび追加の技術的な複雑性のせいで保護されない。さらに、すでに現場に配置済みのシステムの場合、ソフトウェアに基づく保全性方式が唯一の選択肢である。
分散ハードウェア/ソフトウェア環境でソフトウェア・サブシステムの保全性を決定および監視するために、いくつかのチャレンジ・レスポンス方式が提案されてきた。例えば、無線電話ネットワーク中でホストと通信する移動電話機クライアントを保護するためのいくつかのチャレンジ・レスポンス方式が提案されてきた。移動電話機のユーザは、移動電話機のソフトウェアを修正することができる。そのため、電話機が無線ネットワーク内部で対話するとき、電話機クライアントと通信するホスト・コンポーネントは、知らずに悪意のコードと対話することがある。このようなコードは、クライアント情報を取り込むのに使用されるか、あるいは、無効なまたは詐欺的な情報をホストに提示するのに使用される可能性がある。提案されてきたほとんどのチャレンジ・レスポンス方式は、移動コードから発行された要求が、コードを実行している(リモート)ホストによって許可されるべきか拒否されるべきかを判定するためのセキュリティ機構およびポリシーに焦点を合わせたものであった。
別の一連の取組みは、悪意のホストの場合を考慮するものである。例えば、Esparza他、「Limiting the Execution Time in a Host: A Way of Protecting Mobile Agents」、IEEE Sarnoff Symposium on Advances in Wired and Wireless Communications (2003)は、エージェントを悪意のホストからの悪用から保護するために、エージェントの実行時間を用いて、ホストによる起こり得る悪意の挙動を検出することを提案している。具体的には、各ホストは、エージェントの到着時間および出発時間を保存する必要がある。エージェントが元のホストに戻ると、1組のチェックが、予想よりも長い時間をエージェント実行に費やしたホストがないことを検証する。何らかのホストが時間限界を超過した場合は、悪意の挙動の疑いがあると考えられる。
KennelおよびJamieson、「Establishing the Genuinity of Remote Computer Systems」、12th USNIX Security Symposium、295〜310頁 (2003)は、破損していないソフトウェア(具体的にはカーネル)の正しいバージョンをマシンが実行していることを検証するために、チャレンジ問題をマシンに送信することを提案している。「Genuity」と呼ばれるこのシステムでは、チャレンジ問題は本質的に、擬似ランダム・メモリ・アドレスの内容のチェックサム(すなわち1バイト合計)である。チャレンジはまた、その他のハードウェア特有の値をチェックサムに組み込むこともできる。チャレンジ問題を用意した信用されるホストもまたチェックサムを計算し、テスト対象のホストが、信用されるホストと同じチェックサムを計算してそれを「十分に早く」返した場合、ホストは本物であると考えられる。というのは、高速シミュレーションはないと仮定されるからである。
Esparza他、「Limiting the Execution Time in a Host: A Way of Protecting Mobile Agents」、IEEE Sarnoff Symposium on Advances in Wired and Wireless Communications (2003) KennelおよびJamieson、「Establishing the Genuinity of Remote Computer Systems」、12th Security Symposium、295〜310頁 (2003) HopcroftおよびUllman、Introduction to Automata Theory, Languages and Computation (Addison-Wesley, 1979) MuchnickおよびJones、Program Flow Analysis: Theory and Applications (Prentice Hall, 1981)
既知の関数の実行時間を評価することに基づくこのようなチャレンジ・レスポンス方式は、悪意の挙動を検出するための効果的な基盤を提供するが、いくつかの制限を被る。これらの制限が克服されれば、分散ハードウェア/ソフトウェア環境におけるソフトウェア・サブシステムのセキュリティおよび保全性は、大きく改善されるであろう。例えば、Genuityシステムは、クライアントの保全性を検証するために、1つのタイプの関数だけに依拠する。したがって、敵は、予想すべきこのタイプの関数をより容易に予測することができる。したがって、いくつかの異なる関数を利用し、それにより、エージェントの機能を予測するのをより困難にし、このような保全性保護をより強力にする、チャレンジ・レスポンス方式が必要とされている。
概して、少なくとも1つのクライアントのセキュリティを評価するための方法および装置が提供される。評価対象であるクライアントによって、実行可能プログラムが実行される。実行可能プログラムからの結果が受け取られるが、この結果の評価は、クライアントが破損されているかどうかを示す。本発明の一態様によれば、実行可能プログラムは、複数の可能なプログラムのうちの1つである。例えば、実行可能プログラムは、プログラムのライブラリなど複数の可能なプログラムから選択されてもよく、あるいはランダムに生成されてもよい。
本発明の別の態様によれば、結果の評価は、実行可能プログラムがクライアントに提供された時と、結果が受け取られた時との間の経過時間を評価することを含む。概して、実行可能プログラムは、結果の受領に対する時間制約に違反する潜在的な敵によって分析されるための時間複雑性を有する少なくとも1つの関数を含むべきである。
本発明の別の態様は、クライアントのメモリに書き込む少なくとも1つの関数を含む実行可能プログラムを利用する。このようにして複数のプログラムが、クライアントのメモリ位置に書き込む関数を使用して、ある時間にわたって通信することができる。一実施形態では、実行可能プログラムは複数のプログラムを含み、これらのプログラムは、クライアントのメモリの擬似ランダム置換を行い、メモリの1つまたは複数の位置を評価し、メモリを所望の状態に復元する。
実行可能プログラムは、開示されるプログラム・ブラインディング(program blinding)技法を使用して生成することができる。第1のプログラムを得て、第1のプログラムをランダム・プログラムと組み合わせてターゲット・プログラムを生成することによって、ターゲット・プログラムを生成することができる。ターゲット・プログラムは、第1のプログラムの1つまたは複数のプロパティを継承する。例えば、第1のプログラムとランダム・プログラムは、第1のプログラムとランダム・プログラムとからの1つまたは複数の命令をインタリーブすることによって組み合わせることができる。
本発明のより完全な理解、ならびに本発明の他の特徴および利点は、以下の詳細な記述および図面を参照することによって得られるであろう。
図1に、本発明が動作することのできる例示的なネットワーク環境100を示す。図1に示すように、ネットワーク環境100は、ネットワーク150(場合によってはこの目的だけのためのネットワーク)中で相互接続されたコンピュータ・ノードの集まりからなる。コンピュータ・ノードのセットは、2つのタイプのエンティティを含む。すなわち、1つまたは複数の安全なホスト110−1〜110−n(以下、ホスト110と総称する)と、1つまたは複数の物理的に安全でないかもしれないクライアント120−1〜120−n(以下、クライアント120と総称する)である。安全でないクライアント120は、悪意の攻撃を受けやすいという意味で、安全でない。
後で図2に関してさらに論じる本発明の一態様によれば、少なくとも1つのホスト110は、信用されるチャレンジャとして動作し、時限式実行可能エージェント・システム(TEAS、Timed Executable Agent System)を利用して、1つまたは複数のクライアント120(本明細書ではレスポンダとも呼ばれる)のセキュリティを評価する。したがって、信用されるチャレンジャは、破損しているかもしれないレスポンダに、認証されたチャレンジを発行する。本発明の一態様によれば、発行されるチャレンジは、レスポンダ上でどんな関数をも潜在的に計算することのできる実行可能プログラムである。レスポンダは、エージェントによって含意された正しい値を計算しなければならないだけでなく、チャレンジャによって規定された時間限界内にこの計算を完了しなければならない。
本明細書では、時限式実行可能エージェント・システムは、保全性確認の対象であるクライアント120上で実行されるように設計されたコンピュータ・コード(すなわちエージェント)である。クライアント120は未知のコードを実行するよう求められることになるので、信用されるエンティティからコードが生じたことを示すために、エージェントは送信側ホスト110によって署名されなければならない。クライアント120は、TEASエージェントを受信すると、すぐにコードを実行して、エージェントが生み出すどんな結果も発行元ホストに返さなければならない。エージェントは、クライアント上でおそらく完全な許可を得て実行される任意のコンピュータ・プログラムなので、すべてのメモリ位置に対して読み書きすることができ、クライアント状態に関する計算を(例えばチェックサムの形で)実施することができる。より複雑なエージェント方式ではおそらく、多くの可能性の中でもとりわけ、前のエージェントの訪問によってなされた状態修正を調停することもできる。
TEASの重要な一面は、クライアント上でのエージェントの実行期間、ならびに伝送時間が計時されることである。エージェントの出力が有効になるためには、出力は固定期間内にホストによって受信されなければならない。本明細書で論じるように、このことは、クライアント上で稼動している敵がエージェントの分析に計算を費やすのを防止するのに役立ち、また、エージェントを動的解釈する際に課されるオーバーヘッドなど、その他のオーバーヘッドを敵が招くのを防止するのに役立つ。ターゲット・システムが密に結合されているほど、エージェントに対するアプリオリな時間限度は精密とすることができる。例えば、通信が密結合バックプレーンを介する無線基地局ボックスでは、通信ならびに実行時間を精密にモデル化することができる。一方、リモート通信、さらにはインターネットを介した通信を含むシステムでは、移動中時間に対する厳しい限界を確認するのはより難しい場合がある。
概して、TEASは、保全性を検証するための確率的な手法と考えることができる。単一のエージェントが、単一のメモリ位置だけをチェックすることができ、あるいは小さいメモリ領域のハッシュを計算することができる。また、時間内に返信が受信されない場合、これはネットワーク遅延だけを意味するのであって必ずしもクリティカルな保全性違反を意味しない場合がある点でも、確率的である。長い期間にわたって動作する多くのTEASエージェントの集まりが、クライアント上で実行されているソフトウェアを、意図され予想されたものであると高確率で確定することができる。
本発明の別の態様によれば、計算的エージェントをランダムに(または擬似ランダムに)生成して、有用なエージェントの大きなライブラリを効率的にポピュレートする方法が開示される。手書きのエージェントにランダムな機械生成エージェントが散在し、さらに両方とも不明瞭化されて、セマンティクス的に等価な追加の変形が作成された場合、これは、敵がTEAS保護と効果的に戦うために「学習」する必要のある、大きな障害をもたらす。
モデル、定義、システム要件
前に示したように、本発明により、ホスト・ノード110は、1つまたは複数のクライアント・システム120の保全性を確定することができる。クライアント120は、RAM計算モデルで指定されるコンピュータ・プログラムを実行するものと仮定する。RAMモデルは、現代のマイクロプロセッサおよびディジタル信号プロセッサのアーキテクチャとよく対応する。ロードストアおよびメモリベースの命令セット、ならびにスタック・アーキテクチャは、RAMモデルによって容易に取り込まれる。説明をわかりやすくするために、例示的な実施形態では、ホスト110およびクライアント120をユニプロセッサとして具体化する。変数C({C}=周期/秒)は、このようなプロセッサのCPUレートを示す。クライアント120はまた、どんな改ざん防止ハードウェア(例えば、暗号演算を実施するための安全プロセッサを備えるもの)も保持しないものと仮定する。クライアント120のメモリは、基本的に3つの領域、すなわちコード、データ、未使用メモリからなる。当然、データ領域の各部分が、異なる時点で未使用である場合がある。|M|に等しい変数mは、ワード数で測定された、クライアントのメモリのサイズを示す。
通信に関してさらに、システム100中のノード110および120、特にホスト110は、ネットワーク150における伝送遅延のかなり正確な推定値を有するものと仮定する。これは例えば、ホスト・ノード110をクライアント・ノード120に接続するリンクまたはチャネル上の利用可能な帯域幅に関するホストの知識を使用してモデル化することができる。変数B({B}=ビット/秒)は、所与のリンク上の利用可能な帯域幅を示す。計算レートや帯域幅などの測定値の推定は経験的に実施することができることに留意されたい。
敵モデル
本発明のTEASは、クライアント・ノード120が敵(例えばコンピュータ・ウイルス、敵対者、悪意の部内者)によって破損および/または乗っ取りされることに対する防御を提供する。本発明は、システムを攻撃するどんな敵Aも強制的に多項式時間計算を実施させられるものとする。言い換えれば、またより正式には、それらの計算力は、確率的な多項式時間チューリング・マシンの計算力である。
攻撃は、敵Aが単純にクライアントの構成または状態に修正を加えることから、アクティブにクライアントを制御することまでの範囲にわたる可能性がある。これらの攻撃に対する防御戦略は、様々なタスクをクライアントにおいて実施するためのプログラム(「エージェント」)を送信することを含むことになる。敵は、気付かれずに進むためには、正しい出力を適時に提供する必要がある。したがって、敵がこのような入来プログラムに対して実施する分析のタイプに従って、敵のタイプは2クラスに分けられる。
オフラインの敵
クライアントを制御するオフラインの敵は、入来した照会プログラムを、実行することなく分析しようとする。プログラムの静的分析では、プログラムは、入力なしで、およびそれらが実行されることになるマシンの状態なしで、隔離されて分析されることを想起されたい。オフラインの敵も、クライアントの入力および状態へのアクセスを有する場合もあることを除いては、同様のタイプの分析を実施することになる。Aoffは、オフラインの敵のクラスを示す。
オンラインの敵
クライアントを制御するオンラインの敵もまた、入来プログラムを実行できることになる。Aonは、このオンラインの敵のクラスを指す。敵に攻撃されたノード(クライアント)は、破損ノードと呼ばれる。敵は、計算力がわかっているクライアントにおいて実行されると仮定する。したがって、計算ステップは容易に絶対時間に変換することができる。
時限式実行可能エージェント・システム(TEAS)
図2は、本発明の特徴を組み込んだ例示的なホスト110を示す概略ブロック図である。図2に示すように、ホスト110は媒体250と対話する。ホスト110は、プロセッサ220、ネットワーク・インタフェース225、メモリ230を備え、任意選択で媒体インタフェース235および表示装置240を備える。ネットワーク・インタフェース225は、ホスト110がネットワーク150に接続できるようにし、媒体インタフェース235は、ホスト110がディジタル多用途ディスク(DVD)やハード・ドライブなどの媒体250と対話できるようにする。任意選択のビデオ表示装置240は、装置200の人間ユーザと対話するのに適した任意のタイプのビデオ表示装置である。一般に、ビデオ表示装置240は、コンピュータ・モニタまたはその他の類似のビデオ表示装置である。
図2に示すように、例示的なホスト110は、TEAS260を備える。TEAS260は、図2に示すようにホスト110自体によって実装されてもよく、あるいはいくつかのホスト110によって共有される何らかの中央サーバによって実装されてもよいことに留意されたい。前に示したように、時限式実行可能エージェント・システムは、ネットワーク150中の様々なノード110、120間で、チャレンジ(すなわちエージェント)を発行する。やはり、チャレンジを発行するノード(通常は安全なホスト110)はチャレンジャと呼ばれ、照会を受けるノード(通常はクライアント120)はレスポンダと呼ばれる。ターゲット・ノードにおけるエージェント実行からの、チャレンジャによって予想されるアプリオリに予測不可能な結果の他に、重要な定量化可能な副作用は、レスポンダにおいて実行されるエージェントが(正しい)結果を提供するのにかかる時間である。このようなエージェントが実施する場合のあるタスクの例には、レスポンダ状態の任意の点で実行を開始すること、メモリ位置の内容またはレスポンダのスタックの状態を含む何らかの(ランダムな)計算を実施すること、そのメモリ内容のランダムな置換を実施することが含まれる。
図2に示すように、また後で図3および4に関してさらに論じるように、例示的なTEAS260は、本発明の特徴を組み込んだエージェント生成プロセス300およびエージェント検証プロセス400を含む。したがって、チャレンジャとして働くノード110上で実行されるエージェント生成プロセス300およびエージェント検証プロセス400によって、(ε,A)時限式実行可能エージェント・システム(TEAS)が定義される。
図3は、エージェント生成プロセス(Tgen)300の例示的な実装形態を述べたフローチャートである。概して、Tgenは、ステップ310の間に、環境パラメータ(リンクの帯域幅BおよびレスポンダのCPUレートC)とセキュリティ・パラメータkとを、入力として受け取る。その後、ステップ320の間に、TEASインスタンスTを生成する。Tは、レスポンダにおいて実行されることになる1つまたは複数のプログラム(エージェント)Pからなり、これは{(P,o,t,π),(P,o,t,π),...(P,o,t,π)}に等しい。P,1≦i≦kであり、oはその予想される出力であり、tはその予想される伝送および実行時間であり、πはその耐久しきい値である。プログラム(エージェント)Pが保持すべきプロパティについては、後で「オフラインの敵からの保全性保護」および「オンラインの敵からの保全性保護」と題した章で論じる。例示的なエージェント生成技法の考察については、「自動エージェント生成」と題した章を参照されたい。ステップ330の間に、生成したTEASインスタンスTを実行に向けてレスポンダに送信し、その後、プログラム制御は終了する。
図4は、エージェント検証プロセス(Tver)400の例示的な実装形態を述べたフローチャートである。図4に示すように、エージェント検証プロセス(Tver)400はまず、ステップ410の間に、TEASインスタンスTと、k個の対のリスト
Figure 0004901179
とを、入力として得る。o’は、レスポンダでの実行後にエージェントPから提供された結果である。t’は、エージェントがレスポンダに送信されてから結果が受信されるまでの経過時間であり、それぞれチャレンジャのクロック上で測定される。ステップ420の間に、レスポンダが敵によって破損されているかどうかを判定するためのテストを行う。ステップ420の間にレスポンダが敵によって破損されていると判定された場合は、ステップ430の間に「−OK」の出力を生成し、そうでない場合はステップ440の間に「OK」の出力を生成し、その後、プログラム制御は終了する。
レスポンダが敵クラスAの敵によって破損されている場合は、Tverがステップ440の間に「OK」を出力する確率はε未満である。一方、レスポンダが破損されていない場合は、Tverは曖昧にせず常に「OK」を出力すべきである。実際は、環境パラメータ(具体的にはリンクの帯域幅)の変動を考慮に入れて、両面的なエラー定義を提供すべきである。単純にするために、これらのパラメータに対して、決して違反されない何らかのハード限度が想定される。確率は、アルゴリズムによってなされる複数のランダムな選択にわたって取られる。
より具体的には、|P|がi番目のプログラムのサイズを示し、D(P)が、Pの実行中に実行される動的命令の数を示すものとする。この場合、tは通常、Tgenによって以下のように計算される。
Figure 0004901179
verに関して、Tverがその入力に対して実施することになるテストのタイプは、以下の形になる。
Figure 0004901179
の場合、
プログラム分析の背景および要件
停止性のプログラムは、入力値のセットから出力値のセットまで、有限数の計算ステップで関数を計算する。2つのプログラムは、それらのテキストが同じであれば、すなわちプログラムを表すビット・ストリングが同一であれば、シンタックス的に等価であると考えられる。表現txt(P)を使用して、プログラムPのテキストを示す。2つのプログラムは、同じ入出力関係を有していればセマンティクス的に等価である。
オフラインの敵は、プログラム分析のアルゴリズム複雑性、またはほとんどの非自明なプログラム・プロパティの決定不能性を用いる本発明により、挫折させられる。これについては後で「オフラインの敵からの保全性保護」と題した章でさらに論じる。プログラムのテキストを一般に最適化の目的で自動分析することは、よく理解されている。一般に、プログラムの出力値、ならびにプログラムが実施するかもしれないいずれかの副作用の点からみた、プログラムPの挙動は、プログラムに対する何らかの大域データ・フロー分析を介して部分的には決定することができる。Pの命令シーケンスtxt(P)が与えられた場合、その動作を静的に演繹するには、以下のタスクのいくらかを実施しなければならない。
1.Pの制御フロー・グラフ(CFG)GPを抽出する。
2.GPを可約フロー・グラフG’P(以下参照)に変換する。
3.GP(またはG’P)に対して大域データ・フロー分析を実施する。
最良の場合、CFGの抽出は時間複雑性Ω(n)を有し、nは通常、プログラムが含む命令の数や、プログラムが有する割当ての数など、プログラムPのサイズに関する何らかの静的測定値である。しかし、いくつかのタイプの分岐の場合、この複雑性は、超一次Ω(n)さらにはそれ以上に増大する。また、得られるCFGは、この場合もやはりループ中への分岐がないこと(あること)に応じて、可約である場合とそうでない場合がある。
エージェント生成の目標は、分析を困難にすることである。これは例えば、既約フロー構造を導入することによって行うことができる。図5に、既約フロー・グラフにつながる構造化されていない制御フローを含むプログラム部分500を示すが、既約フロー・グラフは、潜在的な敵による高価な分析時間を生じさせる。図5は、ループ本体への構造化されていないgotoステートメント510のせいで既約フロー・グラフを生じさせるプログラム部分500を含む。既約グラフを可約グラフに変換することは、いわゆるノード分割によって可能だが、ノード分割はプログラム・サイズを(したがってそのCFGサイズを)指数関数的に増大させる。反復アルゴリズムによって既約CFGに対する大域データ・フロー分析を行うことは、複雑性Ω(n)を有するが、可約CFGに対しては代替アルゴリズムを使用して線形時間に近づくことができる。
システム要件
図2に示したように、チャレンジャ・ホスト110は、TEASシステムと対話するように本明細書で修正された市販のコンピューティング・プラットフォーム(PCやサーバなど)を使用して具体化することができる。チャレンジャは、定期的にチャレンジを発行して、そのクライアント・レスポンダのブックキーピングを実施するだけでよい。一方レスポンダは、TEASシステム中で使用されるためには、そのリソースのアクセスおよび使用に関して特別なシステム要件を満たさなければならない。具体的には、信用されるチャレンジャ110によって任意のコードが承認されていようとも、レスポンダ・クライアント120はそのコードの実行を許可しなければならない。さらに、レスポンダのオペレーティング・システムは、エージェントの実行の継続時間にわたって、エージェントがマシンに完全にかつ中断されずにアクセスできるようにしなければならない(エージェントは通常は小さく時間複雑性が低いので、これは通常は問題ではない)。これは実際には、レスポンダが割込みをディセーブルにして、IOやオペレーティング・システムのプロセス・スケジューラからのタイムスライシングなどの外部または内部イベントを防止しなければならないことを意味する。レスポンダはまた、エージェントがすべてのメモリにアクセスできるようにもしなければならない。
レスポンダはまた、エージェントを受信して実行するように装備されていなければならない。したがってレスポンダは、エージェントを配置するための(小さい)空きメモリ部分、ならびにこの配置を行ってエージェントの実行を開始するための些細なソフトウェア機械を必要とする。より複雑な方式では、このために使用されるメモリ位置を変動させることもできる。すなわち、エージェントは汎用プログラムなので、エージェントは、所与のレスポンダ上での後続のエージェント呼出しに使用されるソフトウェア、メモリ位置、パラメータを修正することができる。
PC上でよくみられるものなど既成のオペレーティング・システムは、前述の要件のため、TEASにとって十分である可能性は低いが、移動電話機や、無線基地局のような独自仕様のコンピューティング・アプライアンスなど、多くのデバイスで使用されるカスタマイズ可能なリアルタイム・オペレーティング・システムは、TEASセキュリティ手法を受け入れられるほど十分にカスタマイズ可能であり低レベルである。
プログラム分析によるオフラインの敵からの保全性保護
前に示したように、オフラインの敵は、受信またはインターセプトしたエージェントを精査および分析することができる敵であり、エージェントの実行環境が利用可能な場合とそうでない場合があるが、エージェントを実行することはできない。本発明は、プログラム分析のアルゴリズム複雑性、またはほとんどの非自明なプログラム・プロパティの決定不能性の原理に基づいて生成されたエージェントを使用して、このようなオフラインの敵と戦う。
決定不能性ベースの保護
ライスの定理によってもたらされるような、非自明なプログラム・プロパティの決定不能性は、エージェントのオフライン分析を実行不可能にする。例えば、HopcroftおよびUllman、Introduction to Automata Theory, Languages and Computation (Addison-Wesley, 1979)を参照されたい。すなわち、一般にプログラムが停止するかどうかや、いくつのステップがそれに必要かなどのプロパティは、計算不可能であり、したがってこれらは、(すべてのプログラムについて)オフラインの敵によって決定できない。
TEASエージェントが実行する命令の数を計算することの非自明なプログラム・プロパティを考えてみる。エージェントは、この動的な値を、チャレンジャに返す結果に組み込むことができる。実行される命令の数は、エージェントが実行されているときにエージェントによって自明に計算することはできるが、アプリオリに計算不可能である。どんな量のオフライン分析も、このような決定不能なプロパティを正確に決定することはできない。
複雑性ベースの保護
実際上、オフラインの敵はプログラム分析に基づく敵である。すなわち、エージェントのフローを分析しようとし、この分析を用いてエージェントの結果を演繹しようとする敵である。こうすることにより、敵は、例えばエージェントがどのメモリ位置にアクセスするかを認識したいと望む。敵がいくつかの位置を悪意の目的で使用しているために、敵がこれらの位置を「保護」または「隠蔽」する必要がある場合、このような分析は、エージェントが実行される前にどの位置を一時的にそれらの正しい値に「復元」しなければならないかを正確に特定するのに役立つことができる。アドレス値はエージェント中で動的に計算される場合があり、したがって、すべてのクリティカルな位置を決定するには、非自明な分析が必要であることに留意されたい。さらに、分析はまた、エージェントがその入力について計算する関数も推論しなければならない。前に示したように、プログラム分析は固有の時間複雑性および空間複雑性を有し、これらを用いて、敵に計算を、したがって時間を分析タスクに費やさせることができる。これにより、敵が望ましい値を適時にチャレンジャに返すことはより困難になる。
このようにしてプログラム分析を用いるオフラインの敵と戦うために、エージェントを構成して、分析を実施することの時間複雑性によって敵が応答受信のTEAS時間枠に違反するようにすることができる。具体的には、反復データ・フロー分析の場合、プログラム分析を実施することの超一次時間複雑性(例えばΩ(n))を利用する。
例えば、帯域幅パラメータおよび計算パラメータが、B=10バイト/秒およびC=10周期/秒であり、平均してプロセッサが1周期あたり1つの命令を完了するシステムを考えてみる。何らかのTEASエージェントのサイズが10命令であり、各命令のサイズが4バイトであるものとする。さらに、このエージェントが線形動的ランタイムを有し、したがって、クライアント上で完了するのに少なくとも10/10=0.000001秒を要するものとする。エージェントの結果が4バイトにちょうど収まる場合、エージェントをホストからクライアントに通信してクライアントの結果をホストに返すための総時間は、通信および計算の総時間t≧0.004005に対して、4×10/10+4/10=0.004004秒が下限となる。この場合、敵が、含意される定数≧1でΩ(n)分析の最低値で実施しなければならない場合、敵は、追加の(少なくとも)0.01秒の完了時間を費やして、時間t’>0.014005を与えなければならず、それによりTをほぼ(およそ)3.5倍(容易に検出可能なはずの多くの量)で支配しなければならない。エージェントのサイズをさらに大きくすることにより、この隔たりは任意に大きくすることができる。
第1に、クライアントに送信されるエージェントの混合が、高速な(線形または一定の実行時間の)エージェント、ならびに、より複雑な(おそらくは2次または3次の実行時間の)エージェントを含むことが重要である。これにより、いくつかのエージェントについては、分析はこれらのエージェントのTEAS時間耐久しきい値(π)を支配することが保証されることになり、この点は、エージェントを賢明に構築することによって自明に扱うことができる。第2に、多くの非自明なエージェントについては、敵の分析時間がエージェントの実行時間よりも漸近的に大きくなるよう保証することが可能でなければならない。
一般的な分析は、超一次(エージェントのサイズで)Ω(n)時間を必要とするようにすることができる(これもやはりエージェントを慎重に構築することによって可能である)。TEASに対するオフラインの敵は、エージェントによって精査されるクリティカルな位置と、エージェントが計算する関数とを決定しなければならず、また、エージェントが実施するかもしれない副作用があればそれも決定しなければならない。副作用は、結果の値に直接影響することはないがクライアントまたは将来のエージェントによる後続の計算に影響を及ぼす可能性のある、プログラムの(エージェントの)状態に対する修正である。したがって敵Aは、これを決定するために、当該のエージェントに対して何らかの大域データ・フロー分析を実施しなければならない。前述のように、エージェント記述者は、少なくともエージェントのいくらかのサブセットについては、分析を実行よりも漸近的に高価にすべきである。例えば以下のようにして、分析を実行よりも漸近的に高価にすることができる。
1.CFG抽出を高価にする。
2.抽出されたCFGが既約であること、およびこれを可約の形に変換すると結果的なCFGのサイズが爆発することを保証する。
(1)または(2)あるいは両方を行うことは、CFG抽出が2次であること、データ・フロー分析が2次であること、または、何らかのδ>1で、可約の形P’に変換された後のエージェントPのサイズがnδの形であることを含意する(したがって、P’に対する線形分析でさえ、もはや|P|において線形ではない)。
敵が実施しなければならない分析の例は、def−use(定義−使用)分析および利用可能式分析(available expressions analysis)である。前者は、変数xについての定義ステートメントを、後続の式内におけるxの使用に束縛するものである。利用可能式分析は、式の最初の計算と現在プログラム・ポイントとの間のすべての変数定義が与えられた場合に、依然として正確な前に計算された式のセットを、あらゆるプログラム・ポイントにつき計算するものである。既約フロー・グラフに対しては、このような分析は、標準的な反復アルゴリズムを使用するとΩ(n)時間が必要である。しかし、フロー・グラフが可約の場合は、平衡パス圧縮(balanced path compression)などの代替アルゴリズムを使用して、より高速に、例えば時間Ω(n log n)で実施することができる(MuchnickおよびJones、Program Flow Analysis: Theory and Applications (Prentice Hall, 1981)参照)。しかし、この場合もやはり、必要とされる既約化ステップがCFGのサイズを激増させる可能性がある。
図6に、短いサンプル・プログラム600と、これに対するdef−use分析の結果とを提供する(定義は列610、使用は列620)。敵Aが一般にエージェントを十分に分析するには、少なくともdef−use分析(または等価なもの)が必要である。サンプル・プログラム600中で、敵は、最後のステートメントによって返される値cの値を決定しなければならない。そうするためには、敵は、変数の定義と、結果的な式の形成におけるそれらの後続の使用とを調べなければならない(他にも多くのことがあるがとりわけ)。サンプル・プログラム600では、敵Aがwhileループ605で変数cの定義を暴かなければならないことは明白であり、whileループ605は、変数aおよびbの値に依存し、変数aおよびbは、最初にループの前に初期化され、次いでループ中で繰り返し再割当てされる。さらに、この例がやはり示すように、def−use情報を使用しても不十分であることは多い。すなわち、配列は動的な値を使用して索引付けされる(例えば、M{a}およびループは複数回実行される)。このようなプログラム構造は、TEASエージェントによって計算される値および副作用を精密に決定するのに必要な分析はもちろん、緩く境界付けるのに必要な分析さえも複雑にする。上に示したように、また要約すると、知られているプログラム分析技法を使用しても、この情報を線形時間およびオフライン方式で得ることはできない。
自動エージェント生成
魅力的なエージェント生成手法の1つは、エージェント・ライブラリを事前計算するかまたはエージェントを必要に応じて進行中に生成することによって、チャレンジ・サーバ上で自動的に生成を行うことである。残念ながら、プログラムの機械生成は現在、人間が生成できるような複雑で特殊なものにいくらかでも近いプログラムを作成するほど十分には進歩していない。しかし、この章で述べるように、単純なプロパティを有する小さい(手書き)プログラムを、意識されることなく生成されたランダムなプログラムと組み合わせることが可能であり、これをプログラム・ブラインディングと呼ぶ。
擬似ランダム・エージェントによるプログラム・ブラインディング
本発明の別の態様によれば、エージェントはプログラム・ブラインディング技法を使用して生成される。シンタックスおよびセマンティクスを有する機械言語Lがある場合に、またはより正しくは、その(固定)命令セットおよびそれらに対応するアクションと、オペコードおよびオペランドのセットと、命令をその言語で形成するための規則のセットとを有する機械言語Lがある場合に、サイズnの(擬似)ランダム・プログラムが呼び出され、その結果、n個の有効な命令がLで(擬似)ランダムに生成される。このようにして生成されたプログラムには、有限でないものもあることに留意されたい。
ブラインディング操作の重要な一面は、遺伝学から取り入れられた乗換え(cross−over)の概念である。それぞれの入出力関係とプロパティ・セットとを有する2つのプログラムPおよびPがある場合に、PとPとの間の乗換えはプログラムPであり、Pは何らかの効率的な変換によって得られ、また、入力プログラムのプロパティのいくつかを含むプロパティ・セットを有する。言い換えれば、Pは、Pおよび/またはPが保持するプロパティのいくつかを「継承」する。
例示的な一実装形態では、暗号法における「ブラインディング」の概念と対比させてプログラム・ブラインディングと呼ばれる特定の種類の乗換え操作(「
Figure 0004901179
」として示す)が利用される。一般に、プログラムPがある場合に、この考えは、Pをランダム・プログラムと組み合わせて、それにより、得られるプログラムがPのプロパティのいくつかを維持するがその挙動(例えばその出力)は予測困難であるようにするものである。2つのプログラムの並置を生み出す方法にはいくつかあるであろう。我々の場合では、通常はターゲット・プログラムがランダム・プログラムよりもずっと小さいことになるので、
Figure 0004901179
は、ランダム・プログラム・テキスト中でPの各命令を一様かつランダムにインタリーブすることとして定義される。Pをランダム・プログラムとすると、
Figure 0004901179
がブラインディング済みプログラムである。
上に示したように、プログラムPがランダム・プログラムと組み合わされ、それにより、得られたプログラムはPのプロパティのいくつかを維持するが、その挙動(例えばその出力)は予測困難である。プログラムPは、敵A∈Aoffでない場合は(ε,N)−セマンティクス的に不確定であり、txt(P)および入力インスタンスIがある場合に、すべてのIについて、N個の分析ステップの後に、εよりも高い確率でO←P(I)を決定することができる。前述のように、ブラインディング済みプログラムは、(εb,n)−セマンティクス的に不確定でなければならず、n=|P|である。
最後に、ブラインディング済みプログラムの出力は、元のプログラムの入力に依存する場合とそうでない場合がある。依存性が保存されるブラインディング済みプログラムを、入力センシティブなブラインディング済みプログラムと呼ぶ。
例示的な構造およびセキュリティに関する議論
前述の自動エージェント生成技法に基づいて、オフラインの敵に対する複雑性ベースのTEASを考えてみる。説明しやすくするために、前に「複雑性ベースの保護」と題した章で論じた、分析を困難にするプロパティの1つ、すなわち既約CFGを含むエージェントを生成することのプロパティを利用する。
サイズnのランダム生成されたエージェントが既約CFGを含む(したがってΩ(n)分析時間を含意する)分数確率を、
Figure 0004901179
で示すものとする。一般に、TgenすなわちTEAS生成アルゴリズムは、適したnに対して、
Figure 0004901179
の不確かなプログラムを含むインスタンスを生成することになる。特定の生成プロセスに応じて、
Figure 0004901179
を様々な精度に推定することができる。原則として、この確率は、例えば一様命令サンプリング・プロセスでループ中への逆方向ジャンプが行われるループの発生確率を推定することによって(図5参照)、分析的に推定することができる。別法として(または追加で)、エージェント・ライブラリがオフラインで事前計算される場合、多くの逆方向ジャンプを保持するランダム・エージェントを最初に選択し、次いでさらにプログラム分析(最もよく知られた方法を用いる分析)をそれらに適用することができる。このオフライン「知識ベース」によってまた、進行中生成プロセスを補助することもできる。
genすなわちTEAS生成アルゴリズムは、(ε,Aoff)TEASインスタンスを生成する。最初に、レスポンダにおいて何らかのチェックを実施することになるターゲット・プログラムを、Tgenに提供する。この章の最初で触れたように、ターゲット・プログラムは、少量の演算からなる単純なプログラムであると仮定する。次いで、レスポンダにおける入力CPUレートCと、リンク帯域幅B(およびその分散統計)とがある場合に、Tgenは、2次分析によって消費される時間が、高速実行の(例えばせいぜい線形の)エージェントによって課される時間を大きい因数で支配することになるように、nを選択する。この因数がどれくらい大きいかは、帯域幅の分散統計に依存することになる。例えば、半分の帯域幅の確率を0と仮定した場合、3以上の因数である。これにより、Tgenは、すべてのエージェントについて事前の耐久しきい値を固定することができる(例えばπ=2)。ただし、Tgenは、次のステップの後で何らかの追加の微調整を実施する場合もある。
genは次に、ターゲット・プログラムを、サイズnであるk個の有限ランダム・プログラムでブラインディングすることに進む。これにより以下のとおりである。
1.あらゆるプログラムは入力センシティブである。
2.(少なくとも)k’<k個のエージェントの実行時間は長くてもnであり、k’は、
Figure 0004901179
を満たす最小整数である。
genは、ランダム・プログラムの入力センシティブ性を、それらを実行することによって決定する。このとき、Tgenは、各ブラインド・プログラムP (1≦i≦k)につきその出力oを記録することの他に、tすなわちプログラムの実行時間(または動的命令の数でも等価である)の合計、ならびに予想伝送時間も、式(1)に従って計算して記録する。計算集約的なエージェントの場合、Tgenはまた、それらの耐久しきい値も調整して(低くして)、これらのエージェントの計算時間が支配項となることを反映させることもできる。最後に、Tgenは、このように構築されたTEASインスタンス{P ,o,t,π を出力する。
次にチャレンジャは、TEASインスタンス中のエージェントを1つずつレスポンダにサブミットする。Tverは、TEASインスタンスと、k個の対のリスト{(o’,t’ とを取る。o’は、エージェントP から提供された結果である。t’は、エージェントがレスポンダに送信されてから結果が受信されるまでの経過時間であり、それぞれチャレンジャのクロック上で測定される。Tverは、本明細書で概説するテストを適用して、レスポンダが破損しているか否かを判定する。
オンラインの敵からの保全性保護
説明のために、次の例を考えてみる。敵がメモリ位置lを保護しようとしている。具体的な例として、lは、セットトップ・ボックスの特性を修正するように変更された構成データを含むものとすることができる。この場合にレスポンダがTEASエージェントPを受信すると、敵は、プログラムPに分析を適用した後で、このプログラムを実行して、Pによってアクセスされたメモリ位置がlを含むかどうか判定する。Pがlにアクセスすると判定できた場合、敵はlを適切な値に復元し、Pによってアクセスされないと敵が判定した位置l’に、不適切な悪意の値をキャッシュすることができる。Pが完了すると、Pは正しい値をチャレンジャに返すが(lは適切な値を含んでいたので)、次いで敵は、その不適切な構成をlに再インストールすることができる。
この章では、レスポンダを制御するオンラインの敵は、入来エージェントを実行することができる(言い換えれば、それらに対して「ランタイム分析」を実施することができる)と考える。この場合、前の章からの静的分析の問題の難しさは去り、攻撃を検出するために新しい方法が必要である。
レスポンダの通常の(正当な)メモリ構成は、コード領域およびデータ領域で構成されることになる。前者は、不変であり、通常はフィンガプリンティング可能だが、後者は、レスポンダの実行の状態に応じて、変動し、未使用域を含む。データ域の使用/未使用部分に関する正確な知識がチャレンジャに知られていないと仮定する。そうでない場合は、オンラインの敵に対していくぶんより単純な防御が可能であろう。レスポンダを制御するオンラインの敵は、この領域で、入来エージェントに対するインタープリタ攻撃を仕掛けることができる。本質的に、敵は、保護領域への/保護領域からのロードおよび記憶と、このような領域での各コード部分の実行とが常に回避されるような方式で、このようなコードを使用してエージェント(例として3つの命令を提供する)の実行を制御することができる。
図7に、例示的なエージェントについてのコード部分710と、インタープリタ攻撃の間にコード710を解釈するためのバーチャル・マシンの内部ループ720とを示す。図7に示すように、例としてエージェントのコード710の3つの命令を提供する。インタープリタ・コア720を使用してエージェントを解釈するためのオーバーヘッドは一定(例えば、シミュレートされる1命令につき5〜10命令)になることに留意されたい。この場合もやはり、これは常に、敵によって何らかの未使用メモリ域で実施可能となる。
オンライン防御構造およびセキュリティに関する議論
高レベルでは、このタイプのインタープリタ敵を破るための戦略は、完全に実行された場合に敵にレスポンダの制御を放棄させるようなTEASインスタンス、あるいはやはり照会/エージェントに適時に応答できないことによって、敵に検出のリスクを冒させるTEASインスタンスを生成することであろう。レスポンダのアーキテクチャおよびシステム要件に関する仮定については上述した。
バイト数で測定したレスポンダのメモリのサイズを、m=|M|で示すものとする。この章では、mは規定であってチャレンジャに知られており、敵によって増加されることはないと仮定する。上述の仮定に従って動作するオンラインの敵と戦うために、Tgenは、以下のようなエージェント{P,P,P}の基本構造を有するTEASインスタンスを生成する。
1.Pは、レスポンダのメモリの擬似ランダム置換のためのコードを搬送するエージェントである。Pは、完了時に「準備完了」メッセージを返す。図8に、レスポンダのすべてのメモリのランダム置換を実施するための例示的なコード800を示す。
2.Pは、(今やランダムな)メモリ位置とプログラム制御位置(例えばプログラム・スタック)とに関する照会を搬送する。Pは、それ自体がいくつかのエージェントからなるものとすることができる。
3.Pは、Pが搬送した逆の擬似ランダム置換のためのコードを搬送するエージェントである。言い換えれば、Pは、レスポンダの状態を復元する(すなわちすべてがうまくいった場合に)。
最初に、置換コードを搬送するエージェントであるPがレスポンダにおいて実行されるようになると仮定する。次いで、必然的にレスポンダはこのエージェントの制御下になる。照会を搬送するエージェントであるPは、今や、レスポンダの構成を精査することができる。これが可能なのは、チャレンジャが擬似ランダム置換のシードを知っており、そのためメモリ位置がどのようにマッピングされるかを知っているからである。同じトークンにより、照会の実行は非常に高速なはずである。さらに(そして重要なことに)、照会エージェントはプログラム・コール・スタックを精査することもでき、プログラム・コード・スタックは有効コードの領域をポイントすべきであり、有効コードの領域の内容もまた検証することができる。TverがPまたはPの実行における時間違反を検出した場合、あるいはPから正しくない結果を受信した場合は、Tverは「−OK」を出力する。
一方、Pがレスポンダにおいて実行されない場合は、P照会に正しく応答する確率はおよそ1/mである。敵はまた、ある位置からその置換位置へのマッピングを含むテーブルを構築することにより、実際のメモリ位置置換を実施せずにメモリ・マッピングを計算することによってレスポンダの制御を維持することもできる。これにより、インタープリタ攻撃が位置照会を解読できるようになり、そのためチャレンジャからのメモリ・ルックアップに応答して正しい値を提供できるようになる。これが可能なのは、敵はPが搬送するシードを知っていることになるからである。レスポンダは有界のメモリ・リソースを有するものと仮定され、この限界はチャレンジャにわかっていることを想起されたい。このようなテーブルに対するメモリ要件はO(m)になり、敵はこの場合もまた、ディセーブルにされるリスクに直面することになる。例えば、チャレンジャは限界ですべての位置を置換することができ、これは、レスポンダにその利用可能なメモリよりも大きいテーブルを作成および維持させることになる。この場合もやはり、このようなテーブルを部分的に構築しても、Pからの照会にうまく答えられる確率は低い。
TEASの応用例
本明細書で開示するTEASは汎用であり、システム保全性をテストすべき多くの応用例に適合させることができる。例えば、TEASは以下の例示的な応用例で使用することができる。
1.移動電話機やセットトップ・ボックスなどの端末デバイス
2.無線基地局などのコンピューティング「アプライアンス」
3.センサ・ネットワーク
端末デバイス
第1のTEAS応用例として、プロバイダがネットワークと端末デバイスとの両方(例えばケーブル・ネットワークとケーブル・モデムや、衛星テレビジョン・システム)を所有する、セットトップ・ボックス(または移動電話機)のネットワークを考えてみる。端末デバイスが悪用されないようにすること、または悪質なデバイスがサービスを受けないようにすることは、プロバイダにとって非常に関心のあることである。悪意のユーザは、例えば自分に送達される帯域幅を増大させるために、ケーブル・モデムを日常的に「ハッキング」する。同様に、追加の未許可サービスを得るために自分の衛星受信機を再プログラムする人々もいる。TEASを使用すれば、アクティブなケーブル・モデム(または衛星受信機)の状態を精査するためのエージェントを定期的に送信することによって、このような悪用から保護するのに役立てることができる。通常、すべてのインフラストラクチャはプロバイダが保有しているので、デバイス・パラメータおよびタイミング・パラメータは完全にわかっている。さらに、ネットワークのエッジ・ルータからケーブル・モデムまでの伝送時間も非常に決定性とすることができる。端末ハードウェアを修正することは、そのソフトウェアを再プログラミングするよりもずっと困難(プロバイダと悪意のハッカーとの両方にとって)であり、したがってこのようなシステムは、TEASによる保全性保護の理想的な候補になる。
コンピューティング・アプライアンス
コンピューティング・アプライアンスは、共に配置された複数のコンピューティング・デバイスの密結合の集まりとして定義される。この一例は、コントローラ・ボード(コンピュータ)といくつかのチャネル・カード(これらもやはりマイクロコントローラを備える)とを備える無線基地局である。これらのコンポーネントを接続するネットワークは、通常、非常に決定性な移動時間を有する高速バックプレーンである。しばしば基地局チャネル・カードは、カードと共に購入されたライセンスに応じて様々な機能レベルで動作することができる。この動作能力は、単にソフトウェア構成であれば、悪質な操作で変更可能である。TEASは、コントローラ・カードがチャレンジャとして働き、すべてのチャネル・カードがレスポンダとして働くようにすることによって、このようなシステムの保護に役立つことができる。前述の例のように、エージェントが、クリティカルな構成情報を照会することになる。
センサ・ネットワーク
センサ・ネットワークは、第1の例に類似する。というのは、センサ・ネットワークもまた、関連するネットワーク・レイテンシを伴って地理的に広い領域に及ぶ場合があるからである。しかし、異なるのは脅威レベルである。軍事またはクリティカル・ミッションの応用例では、センサによって収集されたデータが本物であることが最高に重要である。この場合、TEASは、チャレンジ(本格的なプログラム)のフレキシビリティにより貢献することができる。例えば、センサが勝手に使用されて悪意のエンティティによって操作されていることが推測された場合、ソフトウェアの未許可修正を探るためのカスタム・チャレンジを設計することができる。さらに、場合によりエージェントは、ハードウェア修正が何らかのソフトウェアの動作を改変する場合に、ハードウェアが改ざんされていないかどうかチェックするのに使用することさえできる。
実際問題
関連する実際問題は、TEASの2つの面に関わる。第1に、エージェントの選択および生成に必要なパラメータを設定することを考えなければならず、次に、クライアント・レスポンダの実装の詳細を考えなければならない。
エージェント・モデルのパラメータは、レスポンダ上の計算レート、ならびにチャレンジャとそのレスポンダとの間の通信レートに関して、かなり精密な指定を必要とする。チャレンジャもレスポンダも両方とも同じエンティティによって操作されると仮定しているので、デバイス特性を試験室で経験的に確立するのは非常に簡単である。例えば、レスポンダ・プロセッサ上の1つのの命令につき必要な時間を精密に測定することができる。同様に、大きなランダム・ストリームを送信して実際のスループットおよびレイテンシを測定することによって、帯域幅およびネットワーク・レイテンシを測定することができる。次いで、経験的な測定値から分散統計を計算して、許容できる動作範囲を出すことができる。
エージェントのTEAS実装は、それが実行されることになるクライアント・レスポンダのオペレーティング・システムおよび環境に適合しなければならない。具体的には、プロセス・スケジューリングや割込みなどのシステム問題が、TEASシステムの設計に影響する。しかし、TEASエージェントは、近年のソフトウェア(大きいエージェントは何万バイトにもなる)に対して相対的に小さく、その実行は敏速なので、レスポンダ上の最も時間クリティカルなアプリケーションを除いたすべてのアプリケーションを邪魔しない。例えば、多くの応用例では、エージェントを受信したらすぐに現在のアプリケーションのプロセスをサスペンドして割込みをディセーブルにすれば十分である。エージェントは、受信されると、認証されてその指定するメモリにロードされ、実行されてその結果がチャレンジャに返される。次いで、レスポンダのアプリケーションは再開される。
システムおよび製造品の詳細
当技術分野で知られているように、本明細書で述べる方法および装置は、コンピュータ可読コード手段が組み入れられたコンピュータ可読媒体をそれ自体が備える製造品として配布することができる。コンピュータ可読プログラム・コード手段は、図2に示したコンピュータ・システム110などのコンピュータ・システムと共に動作可能であり、本明細書で論じた、1つまたは複数の方法を実施するためまたは装置を作成するためのステップのすべてまたはいくつかを実施する。例えば、コンピュータ可読コードは、エージェント生成プロセス300およびエージェント検証プロセス400を実施するように構成される。
コンピュータ可読媒体は、記録可能媒体(例えばフロッピー(登録商標)・ディスク、ハード・ドライブ、DVDなどの光ディスク、またはメモリ・カード)であってもよく、あるいは伝送媒体(例えば光ファイバを含むネットワーク、ワールドワイド・ウェブ、ケーブル、または、時分割多重アクセスや符号分割多重アクセスやその他の無線周波数チャネルを用いる無線チャネル)であってもよい。コンピュータ・システムと共に使用するのに適した情報を記憶することのできる既知のまたは開発された任意の媒体を使用することができる。コンピュータ可読コード手段は、磁気媒体上の磁気変動や、コンパクト・ディスク表面の高さ変動など、コンピュータが命令およびデータを読み取ることを可能にする任意の機構である。
メモリ230は、本明細書で開示した方法、ステップ、機能を実施するようにプロセッサ220を構成する。メモリ230は、分散型またはローカルとすることができ、プロセッサ220は、分散型または単一とすることができる。メモリ230は、電気、磁気、または光学のメモリとして実現することができ、あるいは、これらまたは他のタイプの記憶デバイスの任意の組合せとして実現することができる。さらに、用語「メモリ」は、プロセッサ220からアクセスされるアドレス指定可能な空間中のアドレスに対して読み書きすることのできるどんな情報も含むように、十分に広く解釈されるべきである。この定義によれば、ネットワーク・インタフェース225を介してアクセス可能なネットワーク上の情報は、プロセッサ220がネットワークから取り出すことができるので、この情報もなおメモリ230内である。プロセッサ220を構成する各分散プロセッサは一般に、それ自体のアドレス指定可能メモリ空間を含むことに留意されたい。また、コンピュータ・システム110のいくらかまたはすべてを、特定用途向けまたは汎用の集積回路に組み込むこともできることに留意されたい。
本明細書で図示および記述した実施形態および変形は、本発明の原理の例示にすぎず、当業者なら本発明の範囲および趣旨を逸脱することなく様々な修正を実施することができることを理解されたい。
本発明が動作することのできる例示的なネットワーク環境を示す図である。 本発明の特徴を組み込んだ図1の例示的なホストを示す概略ブロック図である。 図2のエージェント生成プロセス(Tgen)の例示的な実装形態を述べたフローチャートである。 図2のエージェント検証プロセス(Tver)の例示的な実装形態を述べたフローチャートである。 潜在的な敵による高価な分析時間につながり、したがってエージェントにとって望ましいプロパティである、構造化されていない制御フローを含むプログラム部分を示す図である。 短いサンプル・プログラムと、コードに対する定義−使用分析の結果とを提供する図である。 例示的なエージェントについてのコード部分と、インタープリタ攻撃の間にコードを解釈するためのバーチャル・マシンの内部ループとを示す図である。 本発明によって利用されるあるタイプのエージェントに従ってレスポンダのすべてのメモリのランダム置換を実施するための例示的なコードを示す図である。

Claims (7)

  1. 少なくとも1つのクライアントのセキュリティを評価する方法であって、
    前記クライアントによって実行される少なくとも1つの実行可能プログラムを提供することを含み、前記少なくとも1つの実行可能プログラムは複数の可能なプログラムのうちの1つであり、そして、前記少なくとも1つの実行可能プログラムは予想不可能な結果を提供し、さらに
    前記少なくとも1つの実行可能プログラムからの結果を受け取ること、および、
    前記結果の評価に基づいて、前記クライアントが破損されているかどうか判定することを含み、前記少なくとも1つの実行可能プログラムはランダムに生成され、前記結果の前記評価は、前記少なくとも1つの実行可能プログラムが前記クライアントに提供された時と、前記結果が受け取られた時との間の経過時間を評価することを含む方法。
  2. 前記少なくとも1つの実行可能プログラムは前記複数の可能なプログラムから選択される、請求項1に記載の方法。
  3. 前記少なくとも1つの実行可能プログラムは、前記結果の受領に対する時間制約に違反する潜在的な敵によって分析されるための時間複雑性を有する少なくとも1つの関数を含む、請求項1に記載の方法。
  4. 前記少なくとも1つの実行可能プログラムはプログラム・ブラインディング技法を使用して生成される、請求項1に記載の方法。
  5. 前記少なくとも1つの実行可能プログラムは、前記クライアントのメモリに書き込む1つまたは複数の動作を含む、請求項1に記載の方法。
  6. 前記少なくとも1つの実行可能プログラムは、前記クライアントのメモリ位置に書き込む少なくとも1つの関数を使用して、ある時間にわたって通信する複数のプログラムを含む、請求項1に記載の方法。
  7. 少なくとも1つのクライアントのセキュリティを評価するための装置であって、
    メモリと、
    前記メモリに結合された少なくとも1つのプロセッサとを備え、前記プロセッサは、
    前記クライアントによって実行される少なくとも1つの実行可能プログラムを提供するように動作可能であり、前記少なくとも1つの実行可能プログラムは複数の可能なプログラムのうちの1つであり、そして、前記少なくとも1つの実行可能プログラムは予想不可能な結果を提供し、前記プロセッサはさらに、
    前記少なくとも1つの実行可能プログラムからの結果を受け取り、
    前記結果の評価に基づいて、前記クライアントが破損されているかどうか判定するように動作可能であり、前記少なくとも1つの実行可能プログラムはランダムに生成され、前記結果の前記評価は、前記少なくとも1つの実行可能プログラムが前記クライアントに提供された時と、前記結果が受け取られた時との間の経過時間を評価することを含む、装置。
JP2005312096A 2004-10-27 2005-10-27 時限式実行可能エージェントを使用したソフトウェア保全性保護のための方法および装置 Expired - Fee Related JP4901179B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/976,353 US8887287B2 (en) 2004-10-27 2004-10-27 Method and apparatus for software integrity protection using timed executable agents
US10/976,353 2004-10-27

Publications (2)

Publication Number Publication Date
JP2006127521A JP2006127521A (ja) 2006-05-18
JP4901179B2 true JP4901179B2 (ja) 2012-03-21

Family

ID=35674473

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005312096A Expired - Fee Related JP4901179B2 (ja) 2004-10-27 2005-10-27 時限式実行可能エージェントを使用したソフトウェア保全性保護のための方法および装置

Country Status (3)

Country Link
US (1) US8887287B2 (ja)
EP (1) EP1653321A1 (ja)
JP (1) JP4901179B2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0514492D0 (en) * 2005-07-14 2005-08-17 Ntnu Technology Transfer As Secure media streaming
CN101278517B (zh) * 2005-10-06 2012-03-21 Nds有限公司 安全设备和建立分组功能
US9177153B1 (en) * 2005-10-07 2015-11-03 Carnegie Mellon University Verifying integrity and guaranteeing execution of code on untrusted computer platform
WO2007099224A2 (fr) * 2006-03-01 2007-09-07 Ingenico Procede de verification de la conformite du contenu logique d'un appareil informatique a un contenu de reference
EP1830295A1 (fr) * 2006-03-01 2007-09-05 Ingenico SA Procédé de vérification de la conformité du contenu logique d'un appareil informatique à un contenu de référence
EP1868126B1 (en) * 2006-06-16 2011-08-10 Thomson Licensing Device and method for discovering emulated clients
WO2007148258A2 (en) * 2006-06-21 2007-12-27 Ashish Anand Integrity checking and reporting model for hardware rooted trust enabled e-voting platform
FR2910657B1 (fr) * 2006-12-22 2012-11-16 Ingenico Sa Procede de verification de conformite d'une plateforme electronique et/ou d'un programme informatique present sur cette plateforme, dispositif et programme d'ordinateur correspondants.
US8166544B2 (en) * 2007-11-09 2012-04-24 Polytechnic Institute Of New York University Network-based infection detection using host slowdown
US8578510B2 (en) * 2008-06-26 2013-11-05 Valve Corporation Anti-piracy measures for a video game using hidden secrets
EP2141883A1 (en) * 2008-07-04 2010-01-06 Alcatel, Lucent A method in a peer for authenticating the peer to an authenticator, corresponding device, and computer program product therefore
US8713705B2 (en) * 2009-08-03 2014-04-29 Eisst Ltd. Application authentication system and method
US8544089B2 (en) * 2009-08-17 2013-09-24 Fatskunk, Inc. Auditing a device
US8949989B2 (en) 2009-08-17 2015-02-03 Qualcomm Incorporated Auditing a device
US9158605B2 (en) 2010-12-01 2015-10-13 Microsoft Technology Licensing, Llc Method, system and device for validating repair files and repairing corrupt software
CN102567656A (zh) * 2010-12-14 2012-07-11 上海三旗通信科技股份有限公司 基于Ad Hoc的移动终端病毒查杀方式
US8543868B2 (en) 2010-12-21 2013-09-24 Guest Tek Interactive Entertainment Ltd. Distributed computing system that monitors client device request time and server servicing time in order to detect performance problems and automatically issue alerts
CN104134021B (zh) * 2013-06-20 2016-03-02 腾讯科技(深圳)有限公司 软件的防篡改验证方法及装置
GB201413836D0 (en) 2014-08-05 2014-09-17 Arm Ip Ltd Device security apparatus and methods
US9824214B2 (en) 2014-08-15 2017-11-21 Securisea, Inc. High performance software vulnerabilities detection system and methods
US9454659B1 (en) 2014-08-15 2016-09-27 Securisea, Inc. Software vulnerabilities detection system and methods
US10599852B2 (en) 2014-08-15 2020-03-24 Securisea, Inc. High performance software vulnerabilities detection system and methods
GB2540961B (en) 2015-07-31 2019-09-18 Arm Ip Ltd Controlling configuration data storage
GB2540965B (en) 2015-07-31 2019-01-30 Arm Ip Ltd Secure configuration data storage
US10642981B2 (en) * 2017-02-20 2020-05-05 Wuxi Research Institute Of Applied Technologies Tsinghua University Checking method, checking device and checking system for processor
US10684896B2 (en) 2017-02-20 2020-06-16 Tsinghua University Method for processing asynchronous event by checking device and checking device
US10572671B2 (en) 2017-02-20 2020-02-25 Tsinghua University Checking method, checking system and checking device for processor security
US10657022B2 (en) 2017-02-20 2020-05-19 Tsinghua University Input and output recording device and method, CPU and data read and write operation method thereof
KR102392642B1 (ko) * 2017-11-08 2022-04-29 한국전력공사 Cfg를 이용한 패턴 기반의 소프트웨어 절차변경 동작 감시 장치 및 그 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2944321B2 (ja) * 1992-08-20 1999-09-06 北陸日本電気ソフトウェア株式会社 論理評価システム
JPH09288577A (ja) * 1996-04-24 1997-11-04 Nec Shizuoka Ltd コンピュータウイルス感染監視方法および装置
GB9905056D0 (en) 1999-03-05 1999-04-28 Hewlett Packard Co Computing apparatus & methods of operating computer apparatus
DE19944991B4 (de) * 1999-09-20 2004-04-29 Giesecke & Devrient Gmbh Verfahren zur Sicherung eines Programmablaufs
US6833787B1 (en) 1999-10-07 2004-12-21 Asap Software Express, Inc. Method and system for device tracking
CA2327911A1 (en) * 2000-12-08 2002-06-08 Cloakware Corporation Obscuring functions in computer software
CA2350029A1 (en) * 2001-06-08 2002-12-08 Cloakware Corporation Sustainable digital watermarking via tamper-resistant software
EP1282023A1 (en) * 2001-07-30 2003-02-05 Hewlett-Packard Company Trusted platform evaluation
US6938015B2 (en) * 2001-09-17 2005-08-30 Intel Corporation Method for providing database security
US7062650B2 (en) * 2001-09-28 2006-06-13 Intel Corporation System and method for verifying integrity of system with multiple components
US7032007B2 (en) * 2001-12-05 2006-04-18 International Business Machines Corporation Apparatus and method for monitoring instant messaging accounts
GB2384066A (en) * 2002-01-09 2003-07-16 Hewlett Packard Co Installation of software components having multiple implementations
US20040049698A1 (en) 2002-09-06 2004-03-11 Ott Allen Eugene Computer network security system utilizing dynamic mobile sensor agents
US7587763B2 (en) * 2002-12-12 2009-09-08 Finite State Machine Labs, Inc. Systems and methods for detecting a security breach in a computer system
JP2004234045A (ja) * 2003-01-28 2004-08-19 Nec Infrontia Corp ワクチンプログラム送信方法、コンピュータネットワークシステム及びコンピュータプログラム

Also Published As

Publication number Publication date
EP1653321A1 (en) 2006-05-03
US8887287B2 (en) 2014-11-11
JP2006127521A (ja) 2006-05-18
US20060090209A1 (en) 2006-04-27

Similar Documents

Publication Publication Date Title
JP4901179B2 (ja) 時限式実行可能エージェントを使用したソフトウェア保全性保護のための方法および装置
Steiner et al. Attestation in wireless sensor networks: A survey
US9690498B2 (en) Protected mode for securing computing devices
Wu et al. Collaborative intrusion detection system (CIDS): a framework for accurate and efficient IDS
US9411955B2 (en) Server-side malware detection and classification
KR101547165B1 (ko) 디바이스 검사를 위한 장치, 방법 및 저장매체
Fan et al. An improved network security situation assessment approach in software defined networks
US9177153B1 (en) Verifying integrity and guaranteeing execution of code on untrusted computer platform
Wang et al. Malicious firmware detection with hardware performance counters
Garay et al. Software integrity protection using timed executable agents
Kim et al. Analyzing user awareness of privacy data leak in mobile applications
Ammar et al. Speed: Secure provable erasure for class-1 iot devices
CN113260993A (zh) 虚拟平台系统的安全部署和操作
Mahboubi et al. A study on formal methods to generalize heterogeneous mobile malware propagation and their impacts
JP2015527624A (ja) 電子実体アーキテクチャの動的生成及び修正のための方法
Liu et al. Log-based control flow attestation for embedded devices
Meng Security and Performance Tradeoff Analysis of Offloading Policies in Mobile Cloud Computing
Shang et al. ICS software trust measurement method based on dynamic length trust chain
Neto et al. ISC-FLAT: On the Conflict Between Control Flow Attestation and Real-Time Operations
Zhang Quantitative risk assessment under multi-context environments
Liang et al. Tail time defense against website fingerprinting attacks
US11240268B1 (en) Dynamic honeypots for computer program execution environments
Ahmed et al. SAPEM: Secure Attestation of Program Execution and Program Memory for IoT Applications.
Araujo Engineering cyber-deceptive software
Tokmak et al. Deep Learning Based Malware Detection Tool Development for Android Operating System

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081010

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110530

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110830

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110902

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111115

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111227

R150 Certificate of patent or registration of utility model

Ref document number: 4901179

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20150113

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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