(57)【要約】コンピュータ内の呼び出しタイミング逸脱異常を用いてルートキットを検出するためのシステムおよび方法が提供される。ルートキットは、オペレーティングシステム（ＯＳ）カーネル、アプリケーション、または他のシステム機能に埋め込まれ得る。オブジェクト呼び出し持続時間ベースラインが、コンピュータによって開始されるオブジェクト呼び出し（例えば、システムまたはアプリケーション呼び出し）の持続時間のために確立され、各オブジェクト呼び出しは、関連付けられた呼び出しタイプを有し、タイミングベースラインは、オブジェクト呼び出しタイプベースで確立される。コンピュータによって開始されるオブジェクト呼び出し持続時間は監視される。オブジェクト呼び出し持続時間異常は、オブジェクト呼び出し持続時間が呼び出し持続時間逸脱測定試験に不合格になると検出され、検出されると呼び出し持続時間異常のインジケーションが生成される。
2016535365.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ内のルートキットを検出するための方法であって、
前記コンピュータによって開始されるオブジェクト呼び出しの持続時間の間、オブジェクト呼び出し持続時間タイミングベースラインを確立するステップであって、各オブジェクト呼び出しは、関連付けられたオブジェクト呼び出しタイプを有し、前記タイミングベースラインは、オブジェクト呼び出しタイプベースで確立される、ステップと、
前記コンピュータによって開始されるオブジェクト呼び出し持続時間を監視するステップと、
前記関連付けられたオブジェクト呼び出しタイプおよび所与のオブジェクト呼び出しタイプのための前記タイミングベースラインに基づいて、前記オブジェクト呼び出し持続時間が、オブジェクト呼び出し持続時間逸脱測定試験に不合格になると、オブジェクト呼び出し持続時間異常を検出するステップと、
検出されると、前記オブジェクト呼び出し持続時間異常のインジケーションを生成するステップと
を含む、方法。
【請求項２】
前記オブジェクト呼び出しは、オペレーティングシステム呼び出しおよびアプリケーション呼び出しのうちの１つを備える、請求項１に記載の方法。
【請求項３】
前記オブジェクト呼び出しタイミングベースラインは、１つまたはそれを上回る統計的パラメータを備え、オブジェクト呼び出し持続時間異常を検出するステップは、統計上有意なオブジェクト呼び出し持続時間逸脱を検出するステップを含む、請求項１に記載の方法。
【請求項４】
前記オブジェクト呼び出し持続時間異常を検出するステップは、閾値を超えるオブジェクト呼び出し持続時間を検出するステップを含む、請求項１に記載の方法。
【請求項５】
オブジェクト呼び出し持続時間異常の検出のための時間窓を確立するステップをさらに含み、検出するステップは、オブジェクト呼び出しの持続時間が前記時間窓内の数インスタンスに関する閾値を超えるときを判定するステップを含む、請求項１に記載の方法。
【請求項６】
前記時間窓は、スライド時間窓を備え、検出するステップは、オブジェクト呼び出しの持続時間が前記スライド時間窓内の数インスタンスに関する閾値を超えるときを判定するステップを含む、請求項５に記載の方法。
【請求項７】
前記タイミングベースラインを周期的に調節するステップをさらに含む、請求項１に記載の方法。
【請求項８】
監視および検出するステップは、前記コンピュータまたは対応するオブジェクト呼び出しを行うコンピュータ集合の一部であるコンピュータによって、あるいは中央監視ステーションによって、行われる、請求項１に記載の方法。
【請求項９】
監視するステップは、前記所与のオブジェクト呼び出しの特性に基づいて、所与のオブジェクト呼び出しを監視するかどうかを判定するステップを含む、請求項１に記載の方法。
【請求項１０】
コンピュータ内のルートキットを検出するための装置であって、
ネットワークを経由して通信を促進するように構成される、ネットワークインターフェースと、
プロセッサであって、
オブジェクト呼び出しの持続時間のためのオブジェクト呼び出し持続時間タイミングベースラインを確立することであって、各オブジェクト呼び出しは、関連付けられたオブジェクト呼び出しタイプを有する、ことと、
オブジェクト呼び出し持続時間を監視することと、
オブジェクト呼び出し持続時間が、前記関連付けられた呼び出しタイプおよび所与のオブジェクト呼び出しタイプのための前記タイミングベースラインに基づいて、オブジェクト呼び出し持続時間逸脱測定試験に不合格になると、オブジェクト呼び出し持続時間異常を検出することと、
検出されると、前記オブジェクト呼び出し持続時間異常のインジケーションを生成することと
を行うように構成される、プロセッサ
を備える、装置。
【請求項１１】
前記プロセッサは、オペレーティングシステム呼び出し持続時間およびアプリケーション呼び出し持続時間のうちの１つを備える、オブジェクト呼び出し持続時間を監視するように構成される、請求項１０に記載の装置。
【請求項１２】
前記プロセッサは、１つまたはそれを上回る統計的パラメータを備えるタイミングベースラインを確立し、オブジェクト呼び出し持続時間に統計上有意なタイミング逸脱を備えるオブジェクト呼び出し持続時間異常を検出するように構成される、請求項１０に記載の装置。
【請求項１３】
前記プロセッサは、所与の呼び出し持続時間が閾値を超えると、オブジェクト呼び出し持続時間異常を検出するように構成される、請求項１０に記載の装置。
【請求項１４】
前記プロセッサはさらに、時間窓を確立し、オブジェクト呼び出し持続時間異常を検出するように構成され、前記プロセッサは、オブジェクト呼び出しの持続時間が前記時間窓内の数インスタンスに関する閾値を超えるときを検出するように構成される、請求項１０に記載の装置。
【請求項１５】
前記プロセッサは、スライド時間窓を備える時間窓を確立するように構成され、前記プロセッサは、オブジェクト呼び出しの持続時間が、前記スライド時間窓内の数インスタンスに関する閾値を超えると、オブジェクト呼び出し持続時間異常を検出するように構成される、請求項１４に記載の装置。
【請求項１６】
前記プロセッサはさらに、前記タイミングベースラインを周期的に調節し、前記所与のオブジェクト呼び出しの特性に基づいて、所与のオブジェクト呼び出しを監視するかどうかを判定するように構成される、請求項１０に記載の装置。
【請求項１７】
請求項１０に記載の装置を備えるシステムであって、
前記ネットワークインターフェースは、コンピュータ集合内の１つまたはそれを上回るコンピュータによって開始されるオブジェクト呼び出しのためのオブジェクト呼び出し持続時間を備える情報を受信するように構成され、
前記プロセッサはさらに、
前記コンピュータ集合内のコンピュータによって開始されるオブジェクト呼び出しの持続時間のためのオブジェクト呼び出し持続時間タイミングベースラインを確立することと、
前記コンピュータ集合内のコンピュータのそれぞれによって開始されるオブジェクト呼び出し持続時間を監視することと、
所与のコンピュータからのオブジェクト呼び出し持続時間がオブジェクト呼び出し持続時間逸脱測定試験に不合格になると、前記所与のコンピュータに対するオブジェクト呼び出し持続時間異常を検出することと
を行うように構成される、システム。
【請求項１８】
コンピュータ内のルートキットを検出するための命令を記憶する、１つまたはそれを上回るコンピュータ可読記憶媒体であって、前記命令は、プロセッサによって実行されると、前記プロセッサに、
前記コンピュータによって開始されるオブジェクト呼び出しの持続時間のためのオブジェクト呼び出し持続時間タイミングベースラインを確立することであって、各オブジェクト呼び出しは、関連付けられたオブジェクト呼び出しタイプを有し、前記タイミングベースラインは、オブジェクト呼び出しタイプベースで確立される、ことと、
前記コンピュータによって開始されるオブジェクト呼び出し持続時間を監視することと、
前記オブジェクト呼び出し持続時間が、前記関連付けられたオブジェクト呼び出しタイプおよび所与のオブジェクト呼び出しタイプのための前記タイミングベースラインに基づいて、オブジェクト呼び出し持続時間逸脱測定試験に不合格になると、オブジェクト呼び出し持続時間異常を検出することと、
検出されると、前記オブジェクト呼び出し持続時間異常のインジケーションを生成することと
を行わせる、コンピュータ可読記憶媒体。
【請求項１９】
前記オブジェクト呼び出し持続時間を監視するように動作可能な命令は、オペレーティングシステム呼び出し持続時間およびアプリケーション呼び出し持続時間のうちの１つを監視するように動作可能な命令を備える、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記オブジェクト呼び出し持続時間タイミングベースラインを確立するように動作可能な命令は、１つまたはそれを上回る統計的パラメータを備えるオブジェクト呼び出し持続時間タイミングベースラインを確立するように動作可能な命令を備え、前記検出するように動作可能な命令は、統計上有意なオブジェクト呼び出し持続時間逸脱を検出するように動作可能な命令を備える、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２１】
前記検出するように動作可能な命令は、閾値を超えるオブジェクト呼び出し持続時間を検出するように動作可能な命令を備える、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２２】
オブジェクト呼び出し持続時間異常の検出のための時間窓を確立するように動作可能な命令をさらに備え、前記検出するように動作可能な命令は、オブジェクト呼び出しの持続時間が、前記時間窓内の数インスタンスに関する閾値を超えるときを判定するように動作可能な命令を備える、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２３】
前記時間窓を確立するように動作可能な命令は、スライド時間窓を確立するように動作可能な命令を備え、前記検出するように動作可能な命令は、オブジェクト呼び出しの持続時間が、前記スライド時間窓内の数インスタンスに関する閾値を超えるときを判定するように動作可能な命令を備える、請求項２２に記載のコンピュータ可読記憶媒体。
【請求項２４】
前記タイミングベースラインを周期的に調節するように動作可能な命令をさらに備える、請求項１８に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記監視するように動作可能な命令は、前記所与のオブジェクト呼び出しの特性に基づいて、所与のオブジェクト呼び出しを監視するかどうかを判定するように動作可能な命令を備える、請求項１８に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ルートキット検出および自動化コンピュータサポートのためのシステムおよび方法に関する。
【背景技術】
【０００２】
コンピュータネットワークの管理は、比較的に小さいものでも、面倒なタスクであり得る。ネットワークマネージャまたはアドミニストレータは、多くの場合、生産性を最大限にし、ダウンタイムを最小限にするために、ユーザのコンピュータが適切に動作していることを確実にすることに関与する。コンピュータが、不安定に機能し始める、または全く機能しなくなると、ユーザは、多くの場合、援助を要請するために、システムアドミニストレータと連絡をとるであろう。米国特許第７，５９３，９３６号（「第‘９３６号特許」）に説明されるように、コンピュータネットワーク上の個々のコンピュータと関連付けられた問題を調査、診断、および解決することと関連付けられる、相当な労働コストが存在する。
【０００３】
さらに、米国特許第８，１０４，０８７号（「第‘０８７号特許」）に説明されるように、紛失または破損ファイルもしくはレジストリキー、「マルウェア」（ウイルスおよび同等物を含む）、ならびにユーザエラーを含む、所与のコンピュータが適切に機能しないかなりの数の理由が存在し得る。所与のシステムの中へのさらなる侵入として、ルートキットのインストールが挙げられ得る。ルートキットは、コンピュータのユーザまたはアドミニストレータからあるオブジェクトを「隠す」ために使用される、ソフトウェアのクラスである。とりわけ、典型的に隠されるオブジェクトのタイプは、プロセス、プログラム、ファイル、ディレクトリ、およびＷｉｎｄｏｗｓ（登録商標）コンピュータ上のレジストリキーである。ルートキットは、あるオブジェクトを読み出すために使用されるオペレーティングシステム呼び出しの結果をフィルタ処理し、ルートキットが、ユーザ、ロギングシステムに提示される、または別様に、呼び出しリータンの一部として返される前に、呼び出し結果から隠すことを所望する、オブジェクトのいずれかを除去することによって、機能を果たす。ルートキットの隠密性から、多くの場合、悪意がある。
【０００４】
残念ながら、人員制限のため、典型的組織の情報技術（ＩＴ）部署は、多くの場合、３つの一般的「総当たり」方法論、例えば、バックアップを再インストールし、アプリケーションおよびデータをベースライン構成に再設定し、および／または完全コンピュータ再イメージングすることに頼り、それによって、全ソフトウェアは、問題の根本原因を見つける代わりに、コンピュータ上に新たに再インストールされる。コンピュータ問題修復に対する前述の「総当たり」アプローチは、当業者が理解するように、例えば、所与のコンピュータ上の単独の具体的問題を解決することには対応しない、全面的データ置換方法論に相当し、さらに、多くの場合、多くの望ましくない副次的影響をコンピュータユーザにもたらす。例えば、ユーザは、ユーザカスタマイズされた設定の損失を被り得る、長期にわたるダウンタイム期間に対処する必要があり得る、またはユーザデータを損失する羽目になり得る。
【０００５】
多くの場合、ユーザデータを維持し、不必要なダウンタイムを回避することが非常に重要であることを鑑みて、コンピュータ問題修復に対して、異なるアプローチまたは診断を提供する必要がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許第７，５９３，９３６号明細書
【特許文献２】米国特許第８，１０４，０８７号明細書
【発明の概要】
【課題を解決するための手段】
【０００７】
本発明の実施形態は、オペレーティングシステム（ＯＳ）カーネル、アプリケーション、または他のシステム機能内に埋め込まれ得る、ルートキットを検出するためのシステムおよび方法を提供する。一実施形態では、本方法は、コンピュータ内のルートキットを検出するために実装され、コンピュータによって開始される、オブジェクト呼び出し（例えば、システムまたはアプリケーションプロセスまたは機能呼び出し）の持続時間のためのオブジェクト呼び出し持続時間ベースラインを備え、各オブジェクト呼び出しは、関連付けられた呼び出しタイプを有し、タイミングベースラインは、オブジェクト呼び出しタイプベースで確立される。コンピュータによって開始されるオブジェクト呼び出し持続時間は、監視される。オブジェクト呼び出し持続時間異常は、オブジェクト呼び出し持続時間がオブジェクト呼び出し持続時間逸脱測定試験に不合格になると検出され、検出されると、呼び出し持続時間異常のインジケーションが、生成される。
【０００８】
第‘９３６号特許は、所与のコンピュータ上の異常が、「正常」パターンをコンピュータの所与のネットワーク内の複数のコンピュータ上に記憶されたデータ内に確立するために使用され得る、「適応参照モデル」を使用することによって検出されることができる、システムおよび方法を説明している。第‘０８７号特許は、基準と異なるデータ異常を自動的に補正するためのシステムおよび方法を説明している。特に、修復されるために好適な異常として、限定ではないが、紛失ファイル、紛失データ、またはファイルまたはデータの紛失部分、紛失レジストリキー、破損ファイル、または破損レジストリキーが挙げられる。異常はまた、予想外のファイルまたはデータを含み得る。
【０００９】
本発明実施形態は、第‘９３６号および第‘０８７号特許に説明されるような異常検出のためのそのような非ランタイムまたは静的動作システムを活用し、２０１２年９月６日に出願された米国特許出願第１３／６０５，４４５号（「第‘４４５号出願」）に説明されるように、リアルタイム異常検出のためのランタイム動作システムを含んでもよい。そのようなランタイム分析は、望ましくないプロセスおよびスレッド、ダイナミックリンクライブラリ（ＤＬＬ）、入力／出力（Ｉ／Ｏ）ハンドラ等を検出するために使用されることができる。本明細書に説明される技法は、独立型モードで作用し、コンピュータネットワーク内のコンピュータ上の望ましくないルートキットを識別してもよく、または前述のランタイムおよび非ランタイム技法に加え、採用されてもよい。
【００１０】
本発明の実施形態のこれらおよび他の特徴ならびにその付帯利点は、関連付けられた図面と併せて、以下の発明を実施するための形態の熟読に応じて、より完全に理解されるであろう。
【図面の簡単な説明】
【００１１】
【図１】図１は、本発明の実施形態が動作し得る、例示的環境を図示する。
【００１２】
【図２】図２は、本発明のある実施形態による、ルートキットを検出するための単一コンピューティングデバイスを図示する、ブロック図である。
【００１３】
【図３Ａ】図３Ａは、本発明のある実施形態による、ルートキット検出のための具体的例示的プロセスを図示する、フロー図である。
【００１４】
【図３Ｂ】図３Ｂは、本発明のある実施形態による、ルートキット検出のための一般化された例示的プロセスを図示する、フロー図である。
【発明を実施するための形態】
【００１５】
本発明の実施形態は、自動化ルートキット検出のためのシステムおよび方法を提供する。ここで、同一番号が、いくつかの図全体を通して、同一要素を示す図面を参照すると、図１は、本発明の実施形態が動作し得る、例示的環境を図示する、ブロック図である。本環境および構成は、第‘９５６号出願に詳細に説明されており、付加的詳細は、参照することによってその全体として本明細書に組み込まれる、第‘０８７号特許および第‘４４５号出願に説明される。
【００１６】
図１に示される環境は、自動化サポート設備１０２と、管理コンピュータ集合１１４とを含む。自動化サポート機器１０２は、図１では、単一機器として示されるが、複数の機器を備える、もしくはコンピュータ１１４の管理集合またはコンピュータのネットワークが常駐する場所に組み込まれてもよい。自動化サポート機器１０２は、自動化サポート機器１０２内に記憶されたデータにセキュリティを提供するために、ネットワーク１０６と通信する、ファイアウォール１０４を含んでもよい。自動化サポート機器１０２はまた、コレクタコンポーネント１０８を含んでもよい。コレクタコンポーネント１０８は、他の特徴の中でもとりわけ、例えば、ファイル転送プロトコル（ＦＴＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、または専用プロトコル等の標準的プロトコルを使用して、自動化サポート機器１０２内外でデータを転送するための機構を提供してもよい。コレクタコンポーネント１０８はまた、そのようなデータの「スナップショット」およびルートキットを検出するための呼び出しタイミング監視データを含む、着信データのダウンロード、解凍、解析するために必要な処理論理を提供してもよい。
【００１７】
自動化サポート機器１０２はまた、コレクタコンポーネント１０８と、および／または直接、ネットワーク１０６と、したがって、また、コンピュータ１１４の管理集合とも通信する、分析コンポーネント１１０を含んでもよい。分析コンポーネント１１０は、第‘９５６号出願に詳細に説明されるような「適応参照モデル」ならびにルートキットを検出するための呼び出しタイミング監視プロセスを作成し、それに作用するためのハードウェアおよびソフトウェアを含んでもよく、また、呼び出しタイミングベースラインを生成するためのハードウェアおよびソフトウェアを含んでもよい。
【００１８】
コレクタコンポーネント１０８および分析コンポーネント１１０の両方と通信し得る、データベースコンポーネント１１２は、ルートキットを検出するための適応参照モデルおよび関連付けられた呼び出し持続時間タイミングデータを記憶するために使用されてもよい。分析コンポーネント１１０は、適応参照モデルおよびスナップショットをデータベースコンポーネント１１２から抽出し、参照モデルに照らして、スナップショットを分析し、任意の異常を識別およびフィルタ処理する。分析コンポーネント１１０はまた、呼び出し持続時間を分析し、ルートキットが特定のコンピュータ上にインストールされているかどうかを判定してもよい。分析コンポーネント１１０はまた、システムのためのユーザインターフェースを提供してもよい。
【００１９】
図１は、１つのコレクタコンポーネント１０８、１つの分析コンポーネント１１０、および１つのデータベースコンポーネント１１２のみを示す。しかしながら、当業者は、他の可能性として考えられる実装が、必要に応じて、ともにネットワーク化された多くのそのようなコンポーネントを含んでもよいことを理解するであろう。
【００２０】
本明細書により詳細に説明されるであろうように、本発明の実施形態は、複数のクライアントコンピュータ１１６ａ−ｄを備え得る管理集合１１４のための自動化ルートキット検出を提供する。当業者は、示される４つのクライアントコンピュータ１１６ａ−ｄが、例証にすぎず、本発明の実施形態が、数百、数千、またはさらに多くのクライアントコンピュータを有するコンピュータネットワークの状況下で動作してもよいことを理解するであろう。管理集合１１４は、個別のエージェントコンポーネント２０２を使用して、ネットワーク１０６を介して、データを自動化サポート機器１０２に提供する。
【００２１】
より具体的には、エージェントコンポーネント２０２が、各監視されるコンピュータ１１６ａ−ｄ内に展開され、データをその個別のコンピュータから収集する。エージェントコンポーネント２０２は、第‘４４５号出願に説明されるように、ランタイム依存性分析または静的依存性分析を行なってもよい。さらに、エージェント２０２は、本明細書に説明される技法に従って、システム呼び出し持続時間監視を行う。例えば、ランタイム前または間、あるいはスレッド起動に応じたアクティブスキャンの間、全実行可能モジュールを含有するセットならびにレジストリキーおよびファイルアクセスが、監視され、その対応する呼び出し持続時間が、記録される。測定可能信頼性とタイミングが図られ得る、任意のシステム呼び出しまたはアプリケーション呼び出し、例えば、プロセスリストの読み出し、特定のディレクトリ内のファイルの列挙、ディレクトリの列挙、レジストリキー列挙等が、監視され得る。これらの種々の呼び出しまたはオブジェクトアクセスは、本明細書では、オブジェクト呼び出しと称され、その関連付けられた呼び出し開始および停止時間（持続時間）は、呼び出し持続時間と称され得る。種々の呼び出しタイプのための呼び出し持続時間は、平均化され（すなわち、呼び出しの数によって除算される全呼び出し持続時間の総和）、所与の呼び出しタイプのためのタイミングベースラインを形成し得る。十分な数の呼び出しが行われた後、呼び出しは、タイミング挙動の変化に関して監視され得る。タイミングベースラインは、ベースラインからのタイミングのわずかな逸脱さえ高信頼度で検出するために、各コンピュータ上に独立して確立される。
【００２２】
加えて、エージェントコンポーネント２０２は、好ましくは、例えば、ネットワーク１０６を経由して、したがって、潜在的に、全コンピュータ１１６ａ−ｄに伝送するように構成され、タイミング異常または未加工タイミングデータを、例えば、分析コンポーネント１１０による分析のためにコレクタコンポーネント１０８と、記憶のためにデータベースコンポーネント１１２とに報告するように構成されてもよい。
【００２３】
図１に示されるサーバ、コンピュータ、およびネットワークコンポーネントはそれぞれ、プロセッサおよびコンピュータ可読媒体を備える。当業者に周知であるように、本発明の実施形態は、複数の機能を単一コンピュータに組み合わせることによって、または代替として、複数のコンピュータを利用して、単一タスクを行うことによって、多数の方法で構成されてもよい。図２に示されるように、コンピュータ、例えば、コンピュータ１１６ａは、本明細書に説明される技法に従って、呼び出しタイミング異常検出を行うように構成される。例証を簡単にするために、呼び出しタイミング異常検出プロセス３００は、図２の説明に関連して概略される。プロセス３００はさらに、図３Ａおよび３Ｂに関連して説明される。プロセス３００の監視および異常検出機能は、種々のコンピュータ１１６および／または図１に示される自動化サポート設備１０２のコンポーネント間に分散されてもよいことを理解されたい。
【００２４】
図２は、本明細書に説明される技法に従って、ルートキットを検出するための呼び出しタイミング異常検出プロセス３００とともに構成される、例示的コンピュータアーキテクチャ（例えば、コンピュータ１１６のうちの１つのための）を描写する。コンピュータ１１６は、処理コアまたはプロセッサ２１０と、１つまたはそれを上回るメモリ２２０と、１つまたはそれを上回るネットワークインターフェース２３０とを含む。本発明の実施形態によって利用されるプロセッサは、例えば、本発明によるプロセスのサポートにおける必要に応じて、入力を処理し、アルゴリズムを実行し、出力を生成することが可能なデジタル論理プロセッサを含んでもよい。そのようなプロセッサは、マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡＳ）、状態機械、または任意の他の固定もしくはプログラマブル論理を含んでもよい。そのようなプロセッサは、プロセッサによって実行されると、プロセッサに本明細書に説明されるステップを行なわせる命令を記憶する、媒体、例えば、コンピュータ可読媒体を含む、またはそれと通信してもよい。
【００２５】
コンピュータ可読媒体の実施形態として、限定ではないが、タッチセンサ式入力デバイスと通信するプロセッサ等のプロセッサに、コンピュータ可読命令を提供可能な電子、光学、磁気、または他の記憶もしくは伝送デバイスが挙げられる。好適な媒体の他の実施例として、限定ではないが、フラッシュメモリ、ＣＤ−ＲＯＭ、磁気ディスク、メモリチップ、ＲＯＭ、ＲＡＭ、ＡＳＩＣ、構成されるプロセッサ、あらゆる光学媒体、あらゆる磁気テープもしくは他の磁気媒体、またはコンピュータプロセッサが命令を読み取ることができる任意の他の媒体が挙げられる。また、種々の他の形態のコンピュータ可読媒体は、有線および無線の両方のルータ、プライベートまたは公共ネットワーク、または他の伝送デバイスもしくはチャネルを含む、コンピュータに命令を伝送または搬送してもよい。命令は、例えば、Ｃ、Ｃ＃、Ｃ＋＋、Ｖｉｓｕａｌ  Ｂａｓｉｃ、Ｊａｖａ（登録商標）、およびＪａｖａＳｃｒｉｐｔ（登録商標）を含む、任意のコンピュータプログラミング言語からのコードを備えてもよい。
【００２６】
メモリ２２０は、カーネルまたは保護メモリ空間２４０と、アプリケーションまたはユーザが利用可能なメモリ空間２６０とを含んでもよい。カーネルメモリ空間２４０とユーザメモリ空間２６０との間の分割は、ホストオペレーティングシステム（ＯＳ）または他のメモリ制御機構、例えば、ハードウェア機構によって分割されるメモリによって制御されてもよい。カーネルメモリ空間２４０は、ホストのためのシステム呼び出しおよび呼び出し処理２５０、例えば、インターフェース２３０、ディスクアクセス、ユーザアプリケーション制御等のための制御等の典型的ＯＳ機能のために使用される。アプリケーションメモリ空間２６０は、ユーザプログラムおよびアプリケーション、例えば、ウェブブラウザ、ワード処理、電子メールプログラム等のために使用される。システムオブジェクト呼び出し２５０およびアプリケーションオブジェクト呼び出し２７０は、集合的に、参照番号２８０において示されるように、プロセス３００によって監視され、本明細書では、オブジェクト呼び出しと称される。
【００２７】
処理コア２１０は、レジスタ（例えば、中央処理ユニット（ＣＰＵ）レジスタ）と、典型的には、ほとんどのコンピューティング印刷回路基板（ＰＣＢ）上またはＣＰＵ自体内に見出される、タイマ２９０とを含む。オブジェクト呼び出しが行われると、ＣＰＵによるある形態のアクティビティを要求する。ＣＰＵは、ＣＰＵサイクルまたはクロック単位の数をカウントする、タイミングレジスタを維持する。これは、最終的には、ＣＰＵのクロックレートに依存する、相対的時間であることに留意されたい。ＣＰＵクロックレートは、経時的に変動し得、例えば、ＣＰＵクロックは、通常、電力消費を削減する、またはＣＰＵチップの熱負荷（温度）を低減させるように抑制（減速）される。故に、絶対数のＣＰＵサイクルまたはクロック単位は、実際のクロックレートにかかわらず、ＣＰＵによって行われる処理の量に相当する。したがって、ＣＰＵサイクルの数は、所与のオブジェクト呼び出しのために、ＣＰＵによって行われる仕事を示す。
【００２８】
概略すると、呼び出しタイプ毎のタイミングベースラインは、特定の機能呼び出し、例えば、ネットワークカードバッファを空にするための文書読み出しまたはシステム呼び出しの開始のための標準的または「正常」動作時間を示す。標準からの逸脱は、ルートキットがインストールされており、それによって、例えば、新しくインストールされたルートキットによって行われ得る、付加的フィルタ処理または「隠蔽」に起因して、呼び出しリターンを減速させることを示す潜在性を有する。
【００２９】
いったんタイミングベースラインが確立されると、任意の特定のコンピュータ、例えば、コンピュータ１１６ａ−ｄのうちの１つ上で生じ得る、タイミング逸脱が、プロセス３００を介して、監視されることができる。一般に、任意の所与の呼び出しタイプを処理するためにかかる時間は、何度も繰り返しても、オブジェクト呼び出しが全く同一であるときでも変動する。タイミング変動は、呼び出し開始時間（例えば、不適当な時間）に起因して、プロセッサがビジーであるとき、またはあるリソースが他のプロセスによって一時的にロック（相互排除）されているときに生じる。さらに、ある呼び出しタイプは、それらに割り当てられる優先度を有し得、より低い優先度のプロセスは、後回しにされ得る。呼び出しタイミングにおけるそのような変動を前提として、所与のオブジェクト呼び出しタイプに関する逸脱は、一般的であり得る。しかしながら、タイミング変動がシステム管理機能の注意に値するときを検出する、すなわち、逸脱が「正常」と見なされるものを上回るときを判断することは、若干、複雑となる。言い換えると、ルートキットが所与の呼び出しオブジェクトの呼び出しタイミング挙動を変化させたかどうかを判定することは、呼び出しタイミング逸脱が統計上有意であるかどうかに基づき得る。
【００３０】
図３Ａは、本発明のある実施形態による、ルートキット検出のための具体的例示的プロセスを図示する、フロー図である。図３Ａは、前述のプロセス３００の変形例としての具体的例示的プロセス３００ａを描写する。別の変形例３００ｂは、図３Ｂに関連して説明される。３１０では、タイミングベースラインが、システムプロセス呼び出しルーチン（例えば、オブジェクト呼び出し、呼び出しタイプタイミング等）のために確立される。ベースラインは、潜在的破損が生じ得る前に、オブジェクト呼び出し監視の開始に先立って、または特定のコンピュータの初期動作の間、明確に確立され得る。３２０では、カーネルおよびアプリケーションメモリ空間呼び出しが、典型的コンピュータ動作に従って行われる。３２５では、オブジェクト呼び出しタイミングは、呼び出しタイプ毎ベースで測定される。例えば、ファイルアクセスまたは読み出し、レジストリアクセス、プロセス列挙等のためのオブジェクト呼び出しタイミングは、その呼び出しタイプに基づいて監視される。
【００３１】
３３０では、統計上有意な呼び出しタイミング逸脱が存在するかどうかが判定される。簡単な実施例では、呼び出しタイミング逸脱は、その平均呼び出しタイプ呼び出し持続時間と比較されてもよい。任意の個々の呼び出し持続時間は、Ｔとして示され得、平均ベースライン呼び出し時間は、
【化１】
2016535365.tif 000003
として示され得、ベースラインの標準偏差は、σとして示され得る。本明細書に説明される平均および標準偏差は、ガウス分布または正規分布（釣鐘曲線）に関するが、他の統計分布、例えば、イベントベースモデルに好適なポアソン分布が、使用されてもよい。一実施例では、統計上有意な呼び出しタイミング逸脱は、時間逸脱が２つの標準偏差（すなわち、２σ）だけ変動するとき、有意と見なされ得る。したがって、
【化２】
2016535365.tif 000004
であるとき、有意なタイミング逸脱が、発生したと見なされ得る、すなわち、ルートキットが、インストールされている場合がある。可能性は低いが、ルートキットインストールは、オブジェクト呼び出し時間を短縮させ得る。故に、第２の実施例では、
【化３】
2016535365.tif 000005
である場合、有意な逸脱が生じている場合がある。より一般化された実施例では、
【化４】
2016535365.tif 000006
である場合（ａおよびｂは、正の実数または整数であり得る）、有意な逸脱が生じている場合がある（すなわち、タイミング逸脱測定試験不合格が生じている）。ステップ３３０において判定されるように、統計上有意な逸脱が生じていないとき、プロセス３００ａは、３２０に戻る。
【００３２】
前述の実施例は、単一呼び出し時間測定値のためのタイミング逸脱試験を説明する。任意の所与の呼び出しのためのＣＰＵ呼び出し時間クロックサイクルにおいて生じる統計的ランダム性を前提として、単一測定は、ルートキットの検出を保証し、ルートキット検出通知またはアラームを生成するために十分ではない場合がある。したがって、３４０では、定義された逸脱、例えば、２σを超えるオブジェクト呼び出し時間が、監視される。３５０では、呼び出しタイプタイミング逸脱の連続（または、窓化）数が閾値を超えるかどうか判定される。連続逸脱の数が、３５０において超えると、アラームが、生成される、またはログファイルに追加されてもよく、３５５において、措置、例えば、部分的コンピュータイメージの再適用が講じられる、または他の救済策が、第‘９３６号および第‘０８７号特許ならびに第‘４４５号出願に説明されるように行われてもよい。例えば、欠陥プロセスは、自動化サポート設備１０２によって、自動的に、交換または修復されてもよい。
【００３３】
一実施例では、閾値、例えば、５回の逸脱または試験不合格が、使用されてもよい。定義された逸脱を超える連続システムプロセス呼び出し回数が、５を超えると、プロセス３００ａは、ステップ３５５に進む。定義された逸脱を超える連続システムプロセス呼び出し回数が、定義された逸脱を超えないと、プロセス３００ａは、さらなる監視のために、ステップ３４０に進む。前述の実施例は、図３Ｂに関連して説明される付加的統計技法のための簡略化されたフレームワークを提供する。
【００３４】
図３Ｂは、本発明の実施形態による、ルートキット検出のための一般化された例示的プロセス３００ｂを図示する、フロー図である。３１０および３４０では、タイミングベースラインが、例えば、図３Ａに関連して前述のように、システム呼び出しのために確立され、監視される。呼び出し持続時間監視は、単一コンピュータまたはコンピュータ集合内のコンピュータに対するものであってもよい。３７０では、システム（オブジェクト）呼び出し持続時間が呼び出し持続時間逸脱測定試験パラメータ（持続時間または試験統計）を超える、すなわち、オブジェクト呼び出し持続時間がオブジェクト呼び出し逸脱測定試験に不合格になると、システム呼び出し持続時間異常が、検出される。３８０では、呼び出し持続時間異常のインジケーションが、生成される、例えば、ユーザディスプレイ上にポップアップするアラームが生成され得る、電子メールが送信され得る等である。別の実施例では、異常によって示されるコンポーネントは、（自動的に）自動化サポート設備１０２によって修復されてもよい。
【００３５】
呼び出し持続時間測定試験は、前述のように、単純閾値試験であってもよい。しかしながら、閾値を超えた回数のカウントは、所与の時間周期にわたる試験統計を考慮しない。言い換えると、時間窓またはスライド窓は、所与の異常の頻度を考慮することができる。例えば、閾値／窓は、最後の１０ＣＰＵオブジェクト呼び出しサイクルのうち少なくとも５回が、試験閾値を超える、または試験パラメータから逸脱する、例えば、
【化５】
2016535365.tif 000007
であることを示す、５／１０として選択されてもよく、次いで、アラームが、前述のように、生成されてもよい。言い換えると、試験は、異常が存在しないのにアラームをトリガし得る、すなわち、自然発生する時間持続時間逸脱が偽陽性インジケーションをトリガし得る、絶対カウントのみならず、進んでいる時間周期に限定される。
【００３６】
加えて、スライド窓が、ベースライン
【化６】
2016535365.tif 000008
または標準偏差σを適応させ、ベースラインが経時的に変動することが可能であることを認識するために使用されてもよい。例えば、異常を伴わずに、所与の数のオブジェクト呼び出し後、ベースラインまたは逸脱が、更新されてもよい。さらに、オブジェクト呼び出しに関するあるパラメータが、分析に含まれてもよい。一例として、レジストリキーを列挙するとき、オブジェクト呼び出しが、小数のキー（例えば、１００キー未満）を列挙する場合、オブジェクト呼び出しは、異常検出に関して無視されてもよいが、そうでなければ、オブジェクト呼び出し設定時間および切断時間を判定するために使用されてもよい。故に、１００キーを超える列挙は、異常に関して監視される。オブジェクトは、雑音および偽陽性の異常検出の発生を低減させることになる。この点において、短持続時間のオブジェクト呼び出しは、ルートキットを有する可能性が低いと見なされ得る。
【００３７】
ルートキットインストールによってもたらされるタイミング逸脱は、統計的「ｔ−検定」（すなわち、スチューデントｔ−検定）を使用して識別され、検出される異常が存在する尤度を推定し得る。本質的に、ｔ−検定は、サンプルの相違を考慮して、２つの群からのサンプルの平均を比較することによって、ある信頼度レベルで、２つの群の平均が、相互から統計上異なるかどうかを査定する。この場合、タイミング異常が生じると、ｔ−検定が、使用され、１つまたはそれを上回るベースラインタイミング計量の平均、例えば、
【化７】
2016535365.tif 000009
と、例えば、
【化８】
2016535365.tif 000010
として示される最近の動作周期にわたるそれらのタイミング計量の平均を比較し、ｔ−検定が平均試験タイミング値がベースラインと統計上異なることを示唆する場合、タイミング異常の可能性が高いとして識別する。所与の時間点において、そのような試験は、タイミング異常の検出に失敗する、逆に言えば、実際には存在しないとき、タイミング異常を誤検出し得る。ｔ−検定内の有意または「アルファ」レベルに変換される、信頼度レベルの選択は、タイミング異常の誤検出の尤度を制御する。
【００３８】
前述のプロセスは、周期的に、またはアクティブスキャンプロセスの一部として、行われてもよい。加えて、規則的間隔において、エージェント２０２は、タイミング統計を自動化サポート設備１０２に送信してもよい。自動化サポート設備は、情報を使用して、モデルを更新し、ルートキットが所与のコンピュータ上に存在するかどうか判定し、適切な救済措置を講じてもよい。
【００３９】
前述の開示から当業者が理解するように、コンピュータの管理ネットワーク内の自動化システムおよびネットワーク化されたコンピュータの集合の一部であるコンピュータ内のルートキットを検出するための方法を実装することによって、本明細書に説明されるシステムおよび方法は、その精神または本質的特性から逸脱することなく、他の具体的形態で具現化されてもよい。前述の実施形態は、したがって、あらゆる観点において、例証と見なされるものであって、限定を意味するものではない。
【図１】
2016535365.tif 000011
【図２】
2016535365.tif 000012
【図３Ａ】
2016535365.tif 000013
【図３Ｂ】
2016535365.tif 000014
【国際調査報告】
2016535365.tif 000015