(58)【調査した分野】(Int.Cl.,DB名)
ロジックが記憶された非一時的かつコンピュータが読み取り可能な記憶媒体であって、 ネットワーク装置内に実装された少なくとも一方のプロセッサにより前記ロジックが実行されると、
アクチュエーションロジックによって、少なくとも一つの仮想マシンを含む仮想ランタイム環境内にオブジェクトをローンチし、
制御ロジックによって、前記オブジェクトによる少なくとも一つのシミュレーテッドユーザインタラクションを、当該オブジェクトに関連付けられたメタデータに基づいて選択し、
前記少なくとも一つのシミュレーテッドユーザインタラクションは、前記少なくとも一つの仮想マシン内で実行され、
前記メタデータは、前記アクチュエーションロジックによってローンチされた前記オブジェクトに対応するオブジェクト種を特定するデータを含む、
非一時的かつコンピュータが読み取り可能な記憶媒体。
前記オブジェクトにより第一ユーザインタラクションが要求されているとの判断に応じて、前記少なくとも一つのシミュレーテッドユーザインタラクションの一部である第一のシミュレーテッドヒューマンインタラクションを発生させる、
請求項1に記載の非一時的かつコンピュータが読み取り可能な記憶媒体。
前記第一のシミュレーテッドヒューマンインタラクションは、前記アクチュエーションロジックによって前記少なくとも一つの仮想マシン内にローンチされている前記オブジェクトによる挙動に応答するシミュレーテッドアクションを含み、
前記挙動は、前記オブジェクトがユーザ入力をアクティブに待つ動作状態を表す、
請求項2に記載の非一時的かつコンピュータが読み取り可能な記憶媒体。
【発明を実施するための形態】
【0019】
1.用語
以降の説明においては、発明の特徴を記述するために特定の用語が使用される。例えば、特定の状況下において、「ロジック」、「コンポーネント」、および「エンジン」という語は、少なくとも一つの機能を実行するように構成されたハードウェア、ファームウェア、ソフトウェアの少なくとも一つを表す。ハードウェアの場合、ロジック(あるいはコンポーネントやエンジン)は、データを処理あるいは記憶する機能を有する回路を含みうる。そのような回路の例としては、マイクロプロセッサ、少なくとも一つのプロセッサコア、プログラマブルゲートアレイ、マイクロコントローラ、特定用途向け集積回路、半導体メモリ、組合せロジックが挙げられるが、これらに限定あるいは制限されない。
【0020】
ロジック(あるいはコンポーネントやエンジン)は、少なくとも一つのソフトウェアモジュールの形態でありうる。そのような例としては、実行可能なアプリケーションの形態である実行可能なコード、アプリケーションプログラミングインターフェース(API)、サブルーチン、関数、プロシージャ、アプレット、サーブレット、ルーチン、ソースコード、オブジェクトコード、共有ライブラリまたはダイナミックロードライブラリ、少なくとも一つの指令が挙げられる。これらのソフトウェアモジュールは、あらゆる適当な非一時的な記憶媒体または一時的な記憶媒体に記憶されうる。一時的な記憶媒体の例としては、電気的、光学的、音響的などの形態をとる伝達信号(搬送波、赤外信号、デジタル信号など)が挙げられる。非一時的な記憶媒体の例としては、プログラマブル回路、半導体メモリ、揮発性メモリ(例えば、あらゆるランダムアクセスメモリ;RAM)のような揮発性ストレージ、不揮発性メモリ(読出し専用メモリ;ROM、電源バックアップ型RAM、フラッシュメモリ、フェーズチェンジメモリなど)のような不揮発性ストレージ、半導体ドライブ、ハードディスクドライブ、光ディスクドライブ、携帯メモリ装置などが挙げられる。ファームウェアの例としては、不揮発性ストレージに記憶された実行可能なコードが挙げられる。
【0021】
「オブジェクト」という語は、一般にデータの集合を指す。データは、(例えばネットワーク上で)移動中であるか静止しているか(例えば保存されている)を問わない。オブジェクトは、分析を目的として分類されることを可能にする論理的構造あるいは構成を有している。例えば、分析中においては、オブジェクトは、期待された特性のセットを示し、処理中においては、期待された挙動のセットを示しうる。また、オブジェクトは、マルウェアの存在を証拠付け、当該オブジェクトを悪意ある攻撃の一部に分類可能にする予期せぬ特性のセットと挙動のセットを示しうる。
【0022】
オブジェクトの例としては、少なくとも一つのフロー、あるいはフロー自体に含まれる自己完結型エレメントが挙げられる。「フロー」は、通信セッション内において受信、送信、あるいは交換される関連パケットを主に意味する。便宜上、パケットは、所定のフォーマットを有する一連のビットあるいはバイトを広く意味し、実施形態によってはパケット、フレーム、あるいはセルを含みうる。さらに、「オブジェクト」は、多数の関連するパケットのペイロード全体(ネットワークを通じて受信された単一のウェブページなど)を指しうる。また、オブジェクトは、伝送媒体を通じて保存場所から受信されたファイルや文書でありうる。
【0023】
オブジェクトは、自己完結型エレメントとして実行可能であってもよいし(アプリケーション、プログラム、コードセグメント、ダイナミックリンクライブラリ:DLLなど)、実行不可能であってもよい。実行不可能なファイルの例としては、ポータブルドキュメントフォーマット(PDF)文書、マイクロソフトオフィス(登録商標)文書、マイクロソフトエクセル(登録商標)のスプレッドシートなどの文書、電子メール(eメール)、ダウンロードされたウェブページなどが挙げられる。
【0024】
「伝送媒体」という語は、複数のネットワーク装置間、あるいはネットワーク装置内のコンポーネント間の物理的あるいは論理的通信経路を意味する。ネットワーク装置の例としては、データ処理とネットワーク接続を伴う装置であり、セキュリティアプライアンス、サーバ、メインフレーム、コンピュータ(デスクトップあるいはラップトップ)、ネットブック、タブレット、スマートフォン、ルータ、スイッチ、ブリッジなどが挙げられる。物理的通信経路の例としては、電気配線、光ファイバ、ケーブル、バストレースの形態における有線接続と無線接続の少なくとも一方が挙げられる。あるいは、赤外線やラジオ周波数(RF)を用いた無線チャネルが使用されうる。
【0025】
「ネットワーク装置」という語は、ネットワークへの接続が可能なあらゆる電子装置と解釈される。当該ネットワークは、インターネットのようなパブリックネットワーク、無線データ通信ネットワーク、広域ネットワーク、ローカルエリアネットワーク(LAN)のようなプライベートネットワーク、あるいは複数のネットワークの組合せでありうる。ネットワーク装置の例としては、ラップトップ、携帯電話、タブレット、コンピュータ、セキュリティアプライアンスなどが挙げられるが、これらに限られるものではない。
【0026】
「コンピュータ制御された」という語は、一般にソフトウェアとファームウェアの少なくとも一方と協働するハードウェアにより行なわれる動作を表す。また、「比較する」あるいは「比較」という語は、二つの事物の間に一致(特定レベルの相関など)が成立するかを判断することを主に表す。当該二つの事物の一方は、特定のシグネチャパターンを含みうる。
【0027】
「アクションプロファイル」という語は、特定のアクションプロファイルについて予め定められた規則セットに基づいて複数種のシミュレーテッドユーザインタラクションを行なうためのロジックをセットアップする複数の指令や命令と解釈される。当該シミュレーテッドユーザインタラクションは、「アクティブ」なシミュレーテッドヒューマンインタラクション、「パッシブ」なシミュレーテッドヒューマンインタラクション、およびシミュレーテッドデバイス制御インタラクションを含みうる。
【0028】
アクティブなシミュレーテッドヒューマンインタラクションは、分析下にある疑わしいオブジェクトによって開始されたイベントに応じてユーザによって行なわれうるシミュレーテッドアクションを含みうる。状況によっては、当該シミュレーテッドアクションは、当該オブジェクトによって更なる活動が行なわれる前に必要とされうる。アクティブなシミュレーテッドヒューマンインタラクションの例としては、ウインドウやダイアログボックスのクローズ、特定のラジオボタンの選択、テキストボックスへの文字入力の少なくとも一つが挙げられる。
【0029】
パッシブなシミュレーテッドヒューマンインタラクションは、オブジェクトの起動中にユーザによって普通に行なわれるが当該オブジェクトの特定の挙動に応答するものではないシミュレーテッドアクションを含みうる。パッシブなシミュレーテッドヒューマンインタラクションの例としては、PDFやワード(登録商標)などの文書ページ、ブラウザ、その他の表示画像などのスクロール、エクセル(登録商標)スプレッドシートにおける特定タブの選択、特定のメニューオプションへのアクセスなどが挙げられる。
【0030】
シミュレーテッドデバイス制御インタラクションは、エンドポイント用入力装置からのシミュレーテッド入力を含みうる。シミュレーテッドデバイス制御インタラクションの例としては、キーストローク、マウスの移動やクリック、タッチスクリーンにおける少なくとも一つの領域において検出された操作などが挙げられる。
【0031】
最後に、本明細書で用いられる「または」と「〜の少なくとも一つ」という語は、両立的(inclusive)であることを意味する。すなわち、「A、B、またはC」あるいは「A、B、Cの少なくとも一つ」は、A、B、C、AとB、AとC、BとC、AとBとCのいずれをも意味する。この定義における例外は、要素、機能、ステップ、動作などの組合せが排他的(exclusive)であることが明らかな場合のみである。
【0032】
本発明は、マルウェアの検出、確認、優先付けの少なくとも一つに利用されうる。マルウェアは、悪意あるコンテンツを含みうる。具体的には、本発明は、特定のオブジェクト型シミュレーテッドヒューマンインタラクションを、仮想ランタイム環境において起動されたオブジェクトに対して提供する。多くの異なる形態の実施形態に対して本発明が適用可能となるように、本開示は、当該発明の原理の一例とみなされることを意図しており、本発明が図示や記載された特定の実施形態に限定されることを意図するものではない。
【0033】
2.マルウェア検出システムの一般的なアーキテクチャ
ネットワーク100のブロック図の一例が示されている
図1を参照する。ネットワーク100には、複数のマルウェア検出システム(MDS)110
1〜110
N(Nは1より大きく、本実施形態においては3である)が配備されている。MDS110
1〜110
Nは、ネットワーク125を介して管理システム120と通信可能に結合されている。一般に、管理システム120は、各110
1〜110
3を管理するように構成されている。例えば、管理システム120は、ロジック内のコンテンツの更新(新しい規則や変更された規則の更新、規則の削除、当該規則によって利用されるパラメータの修正、およびメタデータの修正の少なくとも一つ)を行うように構成されうる。当該ロジックは、通信インターフェース140、静的分析エンジン145、動的分析エンジン160、分類エンジン190、および報告エンジン195の少なくとも一つの一部として動作する。当該ロジックは、初期システム設定および構成などを目的として選択型ユーザインターフェース機能を備えている。具体的には、管理システム120は、アクションプロファイル更新ロジック174を介して少なくとも一つのアクションプロファイルへ更新を伝達するように構成されている。少なくとも一つのアクションプロファイル188は、後述するように、ヒューマンインタラクションのシミュレーションと分析中のオブジェクトのためのデバイス制御の少なくとも一方を制御するために使用される。
【0034】
図1に示されるように、第一マルウェア検出システム(MDS)110
1は、到来するデータ(ネットワークトラフィック、通信ネットワーク105を通じて入力されるデータ、別種の伝送媒体から入力されるデータなど)に関連付けられた情報を分析するように構成された電子装置である。当該情報は、少なくとも一つのエンドポイント132との間で行き来する。本実施形態例においては、通信ネットワーク105は、プライベートネットワークを含みうる。プライベートネットワークの例としては、無線データ通信ネットワーク、広域ネットワーク、ローカルエリアネットワーク(LAN)の類、複数のネットワークの組合せなどが挙げられる。別実施形態は、マルウェア検出のためにファイルの保存場所(ハードディスクドライブ;HDDやフラッシュドライブストレージなど)から検索されて到来するデータ(ファイル保管庫からのファイル)を含みうる。第一MDS110
1は、インターフェース136と動作ファイヤウォール134の少なくとも一方を介して通信ネットワーク105と通信可能に結合されている。
【0035】
一般に、インターフェース136は、少なくとも一つのエンドポイント132との間で行き来するネットワークトラフィックの少なくとも一部を受け取り、受け取ったネットワークトラフィックの一部と関連付けられた情報を第一MDS110
1に提供するように構成されたデータ取得装置として動作しうる。当該情報は、オブジェクトを含みうる。当該オブジェクトは、全体として実行可能あるいは実行不可能な複数のパケット(eメールメッセージやウェブページに埋め込まれた文書など)である。あるいは、図示されていないものの、インターフェース136は、ネットワークを通じては提供されないファイルなどのオブジェクトを受け付けるように構成されうる。例えば、インターフェース136は、記憶システムに保存されたデータへ自動的に(あるいは命令に基づいて)アクセスするデータ取得装置、あるいは、適当な専用通信リンクを介して手動で提供されたりポータブルフラッシュドライブのような記憶媒体から提供されたりするオブジェクトを受け付ける別種のインターフェース(ポートなど)でありうる。
【0036】
一般に、インターフェース136は、通常はエンドポイント132へ向けられたデータを取得するように構成されうる。取得されるデータは、分析に供される少なくとも一つのオブジェクト147とこれに対応するメタデータ148を含む。メタデータ148の少なくとも一部は、次いでロジック(スケジューラ150など)により使用されるプロトコル、アプリケーション種別などの情報を判断し、選択されたソフトウェアプロファイルを備えた少なくとも一つのVM170
1〜170
M(Mは1以上)を構成するために使用されうる。例えば、メタデータ148は、疑わしいオブジェクト147を所望のタイミング、所望の期間、および所望の順序の少なくとも一つで処理するVM170
1〜170
Mの操作性を構成するために、ソフトウェアイメージ(アプリケーション)が存在する場合にどのソフトウェアイメージが記憶装置151からフェッチされてOSに加えられるかを判断するために使用される。加えて、本発明の一特徴として、疑わしいオブジェクト147に関連付けられたメタデータ148が、プロファイルセレクタ184によって使用されうる。プロファイルセレクタ148は、VM自体(VM170
1など)か後述する仮想マシンモニタ(VMM)172に実装されている。プロファイルセレクタ148は、少なくとも一つのVM170
1〜170
M内における疑わしいオブジェクト147のデトネートを支援するために、疑わしいオブジェクト147に対するシミュレーテッドユーザインタラクションを制御するアクションプロファイル188(少なくとも一つ)を選択する。
【0037】
図示されてはいないものの、実施形態によっては、インターフェース136が第一MDS110
1に含まれうる。別の実施形態においては、インターフェース136は、通信経路における中間装置(ファイヤウォール、ルータ、スイッチなどのネットワーク電子装置など)に内蔵されうる。あるいは、インターフェース136は、スタンドアロンなコンポーネント(適当な市販のネットワークタップなど)でありうる。
【0038】
図1に示されるように、第一MDS110
1は、通信インターフェース140、静的分析エンジン145、動的分析エンジン160、分類エンジン190、および報告エンジン195を備えている。通信インターフェース140は、インターフェース136からオブジェクトを受け付け、当該オブジェクトを、必要に応じて静的分析エンジン145が分析を行ないうるフォーマットに変換する。当該変換は、当該オブジェクトの圧縮、当該オブジェクトの逆コンパイル、当該オブジェクトに関連付けられた特定データの抽出、および当該抽出されたデータのエミュレーション(Javascript(商標)のように)の少なくとも一つを伴いうる。実施形態によっては、通信インターフェース140は、インターフェース136に内蔵されうる。
【0039】
引き続き
図1を参照する。静的分析エンジン145は、少なくとも一つのコントローラを(少なくとも一つのプロセッサのような処理回路など)を含みうる。当該コントローラは、静的分析ロジック152、メタデータ抽出154、およびオブジェクト種判断ロジック156を、マジックナンバーデータベース158とデータストア159の少なくとも一方にアクセスするために備えている。データストア159は、分析済みオブジェクト147と抽出済みメタデータ148の少なくとも一方を保存するために使用されうる。保存は、データ分析エンジン160への送信前に、オブジェクト147が「疑わしい」か、および更なる分析が必要かを判断する際に行なわれる。当該更なる分析は、当該オブジェクト147が悪意ある攻撃に関連付けられているかを判断するためのものである。
【0040】
引き続き
図1を参照する。静的分析ロジック152は、少なくとも一つのソフトウェアモジュールを含んでいる。当該ソフトウェアモジュールは、上記少なくとも一つのコントローラによって実行されると、疑わしいオブジェクト147に関連付けられた特性を分析する。本実施形態においては、当該疑わしいオブジェクト147は、ネットワークトラフィック(あるいはダウンロード済みデータ)の一部でありうる。静的分析は、オブジェクトを実行することなく当該オブジェクトに対して行なわれる少なくとも一つのチェックを含みうる。例えば、当該チェックは(1)ヒューリスティックか(2)決定論的ルールベース判断を含みうる。(1)は、オブジェクト147に適用された規則や方針に基づき、当該オブジェクト147における少なくとも一つの部分が既知のエクスプロイトに関連付けられた異常な特性あるいは疑わしい特性(既知のエクスプロイトに関連付けられた特定のURL、特定のソースアドレスや宛先アドレスなど)と関連付けられているかを判断しうる。(2)は、ブラックリストかホワイトリストのチェックを含みうる。
【0041】
メタデータ抽出ロジック154は、疑わしいオブジェクト147に含まれているか関連付けられているメタデータ148の抽出と生成の少なくとも一方を担う。メタデータ148の抽出と生成の少なくとも一方は、当該オブジェクト147が異常な特性あるいは疑わしい特性を備えていると静的分析ロジック152によって判断された後に行なわれうる。あるいは、メタデータ抽出ロジック154は、メタデータ148の抽出と生成の少なくとも一方を、静的分析ロジック152により行なわれる動作に先立って、あるいは同時に行ないうる。
【0042】
メタデータ148は、疑わしいオブジェクト147に関連付けられたものとして特定および保存されうる。メタデータ148の例としては、オブジェクト147の種別を特定する情報が挙げられるが、これらに限られるものではない。例えば、マイクロソフト(登録商標)エクセルのスプレッドシートなどの特定の文書は、実行可能でない形態でありうるオブジェクトの種別の一例である。このメタデータ148は、シミュレーテッドユーザインタラクションを制御するための少なくとも一つの特定のアクションプロファイルを選択するために、その後プロファイルセレクタ148によって使用されうる。当該ユーザインタラクションは、後述するように、仮想ランタイム環境164における少なくとも一つのVM170
1〜170
M内においてオブジェクト147の分析中に行なわれるものである。
【0043】
オブジェクト147のソースに関連付けられたメタデータに加えてあるいは代えて、他のメタデータがメタデータ抽出ロジック154によって取得されうる。例えば、他のメタデータは、特定のアクションプロファイルを選択するためにプロファイルセレクタ184によって使用されうるものでありうる。当該メタデータは、以下に列挙されるものの少なくとも一つを含みうるが、これらに限られない。
(1)オブジェクトが暗号化されているかと暗号化スキームの種別の少なくとも一方を特定するデータ
(2)オブジェクトが埋め込みオブジェクトであるかを特定するデータ
(3)オブジェクトを処理するために必要なアプリケーションを特定するデータ
(4)オブジェクトを含むネットワークコンテンツの提供に使用される送信プロトコルを特定するデータ
これらに加えて当該オブジェクトに関連する可能性のある特徴が後の使用のために保存される。
【0044】
オブジェクト種判断ロジック156は、抽出済みメタデータからオブジェクトの種別を判断しうる。例えば、オブジェクト種判断ロジック156は、オブジェクトの種別を特定しうるオブジェクト147内のコンテンツを分析しうる。例えば、オブジェクト種判断ロジック156は、オブジェクト147の先頭にある所定数のバイト(当該オブジェクトのマジックナンバーと称されることがある)を特定し、当該バイトと関連付けられた値をマジックナンバーデータベース158内に記憶された値と比較しうる。比較が成功すると、オブジェクト種判断ロジック156によってオブジェクトの種別が判断される。
【0045】
例えば、一実施形態として、オブジェクト147における第一の数バイトは、場合により、オブジェクトの種別を判断するか、少なくとも使用中の通信プロトコルに基づいて推測するために使用されうる。一例として、オブジェクト種判断ロジック156は、オブジェクト147が16進文字列値「4D5A」(当該オブジェクト147が実行可能であることを特定)で始まっているかを、マジックナンバーデータベース158内のエントリと比較して判断しうる。同様に、オブジェクト種判断ロジック156は、オブジェクト147が16進文字列値「25 50 44 46」(当該オブジェクト147がPDF文書であることを特定)で始まっているかを、マジックナンバーデータベース158内のエントリと比較して判断しうる。
【0046】
上述のように、静的分析エンジン145は、疑わしいオブジェクト147をメタデータ148(オブジェクト種判断ロジック156によって生成されたオブジェクトの種別情報を含む)とともに動的分析エンジン160内の仮想ランタイム環境164へ転送する。静的分析の結果は、オブジェクトの「疑わしさ」のレベル(相対的な疑わしさスコアなどにより定められる)に基づく仮想ランタイム環境164内における当該オブジェクトの処理順序を定めるために使用されうる。静的分析エンジン145は、安全なオブジェクトをさらなる分析へ通過させうる。一実施形態においては、静的分析に基づいて疑いと悪意の少なくとも一方がオブジェクト147に見られない場合、静的分析エンジン145は、単に当該オブジェクト147を悪意なきものとみなし、当該オブジェクト147をさらなる分析に供しないようにしうる。しかしながら、オブジェクト147が疑わしい特性を含むとの判断、疑わしいオブジェクト147に関連付けられたメタデータ148の抽出、およびオブジェクトの種別の判断がなされるにあたり、静的分析エンジン145は、VMベースの動作環境におけるより徹底した分析のために、当該疑わしいオブジェクト147をメタデータ148とともに動的分析エンジン160へ通過させうる。静的分析エンジン145の少なくとも一部は、進入するコンテンツに含まれたオブジェクトを取得および検査するように、インターフェース136に内蔵されてもよいし、他の装置に内蔵されてもよい。他の装置の例としては、ファイヤウォールやネットワーク装置が挙げられる。ネットワーク装置の例としては、保護されるネットワークの周辺に配置されたネットワーク装置が挙げられる。
【0047】
動的分析エンジン160は、処理ロジック162、仮想ランタイム環境164、データストア166、およびスコア判断ロジック168の少なくとも一つを含みうる。一実施形態においては、処理ロジック162は、動的分析エンジン160内のコンポーネント間における相互動作性を制御するように構成されうる。例えば、処理ロジック162は、データストア166へ通されたオブジェクトとその対応メタデータのバッファリングと、当該オブジェクトおよび対応メタデータのVM170
1〜170
Mへの直接的ローディングあるいはVM170
1〜170
Mへの供給のための仮想マシンモニタ(VMM)172へのローディングとを制御しうる。
【0048】
仮想ランタイム環境164は、VMM172により管理される少なくとも一つのVM170
1〜170
Mを通じたオブジェクト147の仮想処理を提供する。VMM172は、少なくとも一つのVM170
1〜170
Mの再構成を管理する。当該再構成は、外部から提供される構成更新(OSやソフトウェアインスタンスなどのソフトウェアプロファイル、アクションプロファイルなど)に基づく仮想分析に先立って行なわれる。図示されるように、VMM172は、アクションプロファイル更新ロジック174を備えている。アクションプロファイル更新ロジック174は、規則、パラメータ、命令、および他データ(VM170
1でホストされる少なくとも一つのアクションプロファイル188によって維持されるもの)の少なくとも一つの更新を担う。勿論、アクションプロファイル更新ロジック174は、他のVM(例えばVM170
M)やVMの外(例えば記憶装置151、データストア166内、仮想ランタイム環境における不図示のストレージ内)でホストされる少なくとも一つのアクションプロファイル188を更新しうる。便宜上VM170
1の動作が説明されるが、他のVM170
2〜170
Mの少なくとも一部も同様に動作しうる。
【0049】
図示されるように、VM170
1は、オペレーティングシステム(OS)と、オブジェクト種に応じて、少なくとも一つのアプリケーション180ならびに監視ロジック181およびユーザインタラクション(UI)制御ロジック182により割り当てられうる(プロビジョンされうる)。監視ロジック181は、VM170
1でローンチされた際のオブジェクト147のランタイム挙動を監視する。UI制御ロジック182は、VM170
1にロードされて悪意ある攻撃を開始するために何らかのUIを要求する悪意あるオブジェクトをデトネートするために、シミュレーテッドUIを提供する。本開示の一実施形態においては、UI制御ロジック182は、複数のコンポーネントを備えている。当該コンポーネントは、(1)プロファイルセレクタ184と(2)フレームワーク186を含む。
【0050】
本開示の一実施形態においては、プロファイルセレクタ184は、図示のVM170
1でホストされる少なくとも一つのアクションプロファイル188からアクションプロファイルを選択する。この選択の少なくとも一部は、疑わしいオブジェクト147に関連付けられたメタデータ148に基づきうる。例えば、メタデータ148は、オブジェクト147のオブジェクトの種別を特定するオブジェクト種判断ロジック156によって作成されたデータを含みうる。上述のように、メタデータ148は、オブジェクト147の処理中に静的分析エンジン145によって発見された他のデータ(パスワード保護されたフィールド、オブジェクト147に含まれるeメールメッセージ中のパスワードなど)を含みうる。当該他のデータは、少なくとも一つのアクションプロファイル188内の特定のアクションプロファイルを選択するために利用されうる。
【0051】
図3Aと
図3Bに示されるように、UIフレームワーク186は、(1)アクチュエーションロジック340と(2)複数種のUIシミュレーションロジック350を備えている。UIフレームワーク186内に実装される別のUIシミュレーションロジックについては後述する。アクチュエーションロジック340は、VM170
1を割り当てる(プロビジョニングを行なう)ソフトウェアプロファイルの一部として実装されるソフトウェアコンポーネントであり、疑わしいオブジェクト147の「ローンチ」を担う。オブジェクト147(実行可能あるいはスクリプトである場合)を起動する処理を開始することによって、あるいはオブジェクト147を操作する処理を開始することによって、当該オブジェクトが「ローンチ」されうる。オブジェクト147を操作する処理の例としては、アドビ(登録商標)アクロバット(登録商標)リーダアプリケーションを用いてPDF文書であるオブジェクト147を開くこと、マイクロソフト(登録商標)オフィス(登録商標)アプリケーションを用いてエクセル(登録商標)ファイル(.xls)であるオブジェクト147を開くこと、などが挙げられる。
【0052】
オブジェクト147をローンチする際、アクチュエーションロジック340は、UIシミュレーションロジック350にローンチされたオブジェクトを通知する。これに応じて、UIシミュレーションロジック350内のロジックは、選択されたアクションプロファイルとともにインスタンス化されるか、選択されたアクションプロファイルにアクセスするためにインスタンス化される。当該選択されたアクションプロファイルは、オブジェクト147の分析中にUIフレームワーク186によって行なわれるシミュレーテッドUIを制御する。シミュレーテッドUIは、オブジェクト147の特定の動作状態中における特定のアクションをシミュレートするシグナリングを含みうる。当該特定のアクションは、標的にされたエンドポイント(クライアント装置)においてオブジェクト147が実行された場合に予期されるものである。当該特定のアクションは、順序依存型(シーケンス化されたもの)でもよいし、時間依存型(特定のタイミングで発生、先のアクション後の特定のタイミングで発生など)でもよい。
【0053】
図1に戻る。監視ロジック181とUIフレームワークログ176は、オブジェクト147がVM170
1でローンチされている間に当該オブジェクト147による入力要求を記録するために協働する。監視ロジック181とUIフレームワークログ176は、当該入力要求に応じて疑わしいオブジェクト147に対して提供される「アクティブ」なシミュレーテッドUI、疑わしいオブジェクト147による挙動に応ずるものではない「パッシブ」なシミュレーテッドUI、およびシミュレーテッドデバイス制御インタラクションの少なくとも一つの監視と記録も行なう。UIフレームワークログ176によって記録されたデータは、スコア判断ロジック168によって参照されうる。スコア判断ロジック168は、確率(スコア)を判断する。当該スコアのの少なくとも一部は、(1)疑わしいオブジェクト147が悪意ある攻撃に関連付けられているか、および(2)当該悪意ある攻撃の深刻度を判断するために、分類エンジン190によって使用される。UIフレームワークログ176の内容は、記録を目的として、少なくとも一つの特定種別のUIに応じてデトネートされた複数の悪意あるオブジェクトを相互に関連付ける能力も提供しうる。
【0054】
例えば、差し出されたオブジェクト147が悪意ありと分類された場合、UIフレームワークログ176は、どのシミュレーションロジックがデトネーションを成功させたのかを理解するための情報を提供できる。換言すると、UIフレームワーク176内のデータに基づいて、アクションプロファイルとUIフレームワークの有効性に係る判断がなされうる。加えて、UIフレームワークロジック内のデータを使用することにより、デトネーションに必要な少なくとも一つのUIに基づいて、マルウェアが分類されうる。この分類と少なくとも一つのUIの詳細は、脅威情報(マルウェアのフォレンジック分析、インシデントレスポンスなど)を増補しうる。同様に、オブジェクト147が疑わしいと分類され分類された場合、UIフレームワークロジック176は、UIフレームワーク186が提供するUIセットの不足を理解するための情報(例えば、UIフレームワーク186に求められるであろう新機能や、選択されたアクションプロファイルに必要とされうる新たな規則やパラメータ)を提供する。他方、UIフレームワークによって実行されるUIがオブジェクトのデトネーションを妨げる場合、以降のアクションプロファイルの更新が是正されうる。
【0055】
図1に示されるように、報告エンジン195は、分類エンジン190から伝送媒体189を介して情報を受け取り、疑わしいオブジェクト147が悪意ある攻撃に関連付けられてUI依存であるネットワークアドミニストレータを特定するアラートを生成するように構成されうる。アラートの例としては、様々な種類のメッセージ(テキストメッセージとeメールメッセージを含む)、表示画像、有線伝送媒体または無線伝送媒体を介するその他の情報などが挙げられる。
【0056】
図1は専用のネットワーク装置としてMDS110
1を例示しており、
図1に係る記載は、ネットワークインターフェース136を通じて受け付けられたオブジェクトに基づく例を説明しているが、MDS110
1は、クライアント装置132などのエンドポイントに実装されうる。そのような実施形態においては、オブジェクトの実際の実行に先立ち、MDS110
1は、サンドボックス化された環境に当該オブジェクトをローンチし、シミュレーテッドUIを行ないうる。当該シミュレーテッドUIは、シミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御を含みうる。オブジェクト147が悪意のない挙動を示せば、エンドポイント132は、当該オブジェクトの利用を許可される。また、MDS110
1は、クラウドコンピューティングサービス138内で実現されうる。その場合、上述のシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御の少なくとも一部は、当該サービス内で行なわれうる。
【0057】
図2を参照する。ネットワーク200内で用いられるMDS110
1の第二実施形態のブロック図が示されている。本実施形態においては、動的分析エンジン160は、処理ロジック162、仮想ランタイム環境164、データストア166、スコア判断ロジック168の少なくとも一つを含む。しかしながら、少なくとも一つのVM170
1〜170
Mは、
図1のように少なくとも一つのアクションプロファイル188が割り当てられていない。むしろ、少なくとも一つのアクションプロファイル188は、少なくとも一つのVM170
1〜170
Mの外にホストされている。さらに、プロファイルセレクタ184は、VMM172の一部として装備されている。この実施態様により、プロファイルセレクタ184は、VM170
1内にUIフレームワークコンポーネント186を割り当てできる。場合により、プロファイルセレクタ184は、他の複数のVM(例えばVM170
M)に複数のUIフレームコンポーネントを割り当てできる。
【0058】
3.UI制御ロジックの動作フロー
図3Aと
図3Bを参照する。仮想ランタイム環境164内におけるUI制御ロジック182の動作フローのブロック図の例が示されている。具体的には、VM170
1内で動作するUI制御ロジック182の一実施形態が例示されている。UI制御ロジック182は、(1)プロファイルセレクタ184と、(2)UIフレームワーク186を備えている。図示されているように、UIフレームワーク186は、(a)アクチュエーションロジック340と、(b)シミュレーションロジック350を備えている。シミュレーションロジック350は、(1)アクティブUIシミュレーションロジック360、(2)パッシブUIシミュレーションロジック370、および(3)デバイス制御シミュレーションロジック380を含んでいる。
【0059】
本開示の一実施形態においては、オブジェクト147とメタデータ148は、VM170
1に提供される。メタデータ148に基づき、プロファイルセレクタ184は、少なくとも一つのアクションプロファイル188からアクションプロファイルを選択する(これを「選択されたアクションプロファイル300
1」とする)。すなわち、複数のアクションプロファイル300
1〜300
R(Rは2以上)から、仮想ランタイム環境内のVM170
1の内部あるいは外部にホストされうるアクションプロファイルが選択される。この選択は、オブジェクトの種別を特定しているメタデータの少なくとも一部に基づきうる。オブジェクトの種別に加えて、オブジェクト147をよりよく特定し、分析下にある特定のオブジェクトに最も適したアクションプロファイル300
1が選択されるように、他のメタデータがプロファイルセレクタ184によって用いられうることは勿論である。使用されうる他のメタデータの例としては、以下に列挙されるものの少なくとも一つが含まれるが、これらに限られない。
(1)オブジェクト147が暗号化されているかと暗号化スキームの種別の少なくとも一方を特定するデータ
(2)オブジェクト147が埋め込みオブジェクトであるかと埋め込みオブジェクトを含むものであるかの少なくとも一方を特定するデータ
(3)オブジェクト147がパスワード保護されたフィールドと当該パスワードに関連付けられた情報を含んでいるか特定するデータ
(4)オブジェクト147を処理するために必要なアプリケーションを特定するデータ
(5)オブジェクト147を含むネットワークコンテンツの提供に使用される送信プロトコルを特定するデータ
【0060】
本開示の一実施形態においては、各「アクションプロファイル」は、当該アクションプロファイルについて予め定められた規則セットに基づいてUI機能を実行する命令や指令の集合である。結果として、選択されたアクションプロファイル300
1は、オブジェクト147の分析中におけるUI機能の制御に使用されるように構成される。例えば、オブジェクト147がマイクロソフト(登録商標)エクセル(登録商標)のスプレッドシートである場合、選択されたアクションプロファイル300
1は、PDF文書の分析中におけるUI機能(文書ページのスクロールなど)を制御する他のアクションプロファイル300
Rとは異なるUI機能(タブの選択、特定のセルへのテキストの追加、特定行数のセルのスクロールダウンなど)を実行しうる。
【0061】
第一実施形態においては、
図3Aに示されるように、アクションプロファイルの選択に際して、選択されたアクションプロファイル300
1を特定するために、プロファイルセレクタ184がシグナリング310を提供する。選択されたアクションプロファイル300
1は、予め記憶された少なくとも一つのアクションプロファイル188の一部である。これに応じて、本開示の一実施形態においては、選択されたアクションプロファイル300
1のコンテンツ320が、アクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380によって使用されるために、シミュレーションロジック350へ送られうる。第二実施形態においては、
図3Bに示されるように、アクションプロファイル300
1の選択に際して、プロファイルセレクタ184は、選択されたアクションプロファイル300
1の識別子330を、シミュレーションロジック350(アクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380)へ送る。これにより、シミュレーションロジック350は、選択されたアクションプロファイル300
1における情報335(命令、指令、規則、パラメータの少なくとも一つ)のポーリングと検索が可能とされる。
【0062】
図示されていないが、特定のオブジェクト種と関連付けられたアドレス情報(ポインタ、メモリ格納先など)がアクチュエーションロジック340に提供されてもよい。当該アドレス情報は、特定のオブジェクト種をローンチするのに適した動作を行なうための一連の命令や指令にアクセスするために使用されうる。
【0063】
図3Aと
図3Bの双方を参照する。VM170
1をプロビジョニングするソフトウェアプロファイルの一部として実装されたアクチュエーションロジック340は、オブジェクト147のローンチを担う。アクチュエーションロジック340の具体的な実装態様は、オブジェクトの種別に応じて変化しうる。例えば、オブジェクト147がマイクロソフト(登録商標)ワード(登録商標)の文書やPDF文書などの文書型である場合、アクチュエーションロジック340は、オブジェクト147のローンチ(この場合はファイルを開くこと)、あるいはウインドウズ7(登録商標)のオフィス(登録商標)2013とオフィス(登録商標)2010などのようにバージョンが異なるアプリケーションやOSによるオブジェクト147の同時ローンチを支援するようにカスタマイズされたロジックでありうる。あるいは、オブジェクト147が実行可能である場合、アクチュエーションロジック340は、ファイルシステム格納先へオブジェクト147をコピーしてからオブジェクト147を処理するOS機能(CreateProcess()など)を呼び出すソフトウェアモジュール(スクリプトなど)でありうる。
【0064】
オブジェクト147のローンチに際し、アクチュエーションロジック340は、ローンチ通知345をシミュレーションロジック350(すなわちアクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380)へ提供する。一実施形態においては、ローンチ通知345は、シミュレーションロジック350にデータ347のポーリングを行なわせうる。一実施形態においては、データ347は、(1)オブジェクト147の識別子、(2)オブジェクト147のローンチに使用されるアクチュエーションロジック(特定のソフトウェアモジュールなど)の種別に係る識別子、および(3)オブジェクト147がローンチされたタイミングの少なくとも一つを含みうる。「プッシュ」型の通信スキームにおいては、データ347がローンチ通知345の一部として提供されうることは勿論である。
【0065】
本実施形態においては、オブジェクト147の識別子とアクチュエーションロジック340の識別子の少なくとも一方が、正しいアクションプロファイル300
1が使用のためにオブジェクト147の処理中における正しいタイミングでシミュレーションロジック350へ送られたかを確認するために使用されうる。ローンチのタイミングは、アクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380同士の同期をとるために使用されうる。また、ローンチのタイミングは、選択されたアクションプロファイル300
1に基づいて、パッシブUIシミュレーションロジック370がタイミングベースのシミュレーテッドヒューマンインタラクションを行なう際とデバイス制御シミュレーションロジック380がタイミングベースのシミュレーテッドデバイス制御インタラクションを行なう際の少なくとも一方に使用される基準タイミングを設定する。同期は、
図4Aに示されるように、選択されたアクションプロファイル300
1に基づいてパッシブUIシミュレーションロジック370とデバイス制御ロジック380により行なわれるアクションに特に関連し、インテリジェンスと予期可能性をUIに加える。したがって、アクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380の大半または全ては、同じ(あるいは同期された)タイミング回路(リアルタイムクロック、カウンタなど)と通信している。
【0066】
図3Aと
図3Bにさらに示されるように、アクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380は、選択されたアクションプロファイル300
1内のコンテンツにアクセスするためにインスタンス化されており、オブジェクト147の分析中にUIフレームワーク186によって行なわれるシミュレーテッドヒューマンインタラクションとデバイス制御インタラクションを制御する。選択されたアクションプロファイル300
1によって設定された規則に基づき、シミュレーションロジック350は、特定のアクション(予期されるユーザインターフェースインタラクションや起動方法など)を当該アクションが予期される特定の動作状態(所定のシーケンスや順序、所定のタイミング、所定の期間内など)の間に行なう。なお、順次行なわれると説明したが、複数のアクションが同時に(少なくとも一部が時間的に重複して)行なわれてもよい。
【0067】
UIフレームワーク186の一部として動作しているとき、アクティブUIシミュレーションロジック360は、「アクティブ」なUIを要求するオブジェクト147によって開始される入力要求(パスワード要求、ラジオボタンやテキスト入力を選択するためのダイアログやテキストボックスを表示させようとすることなど)を検出するように構成された第一種のシミュレーテッドUIである。これに応じて、選択されたアクションプロファイル300
1のコンテンツに基づき、アクティブUIシミュレーションロジック360は、応答(場合によっては要求されたUIをシミュレートする応答の種別も)を提供するかを判断する。例えば、選択されたアクションプロファイル300
1は、ローンチされたオブジェクト147によって開始された入力要求に応じたヒューマンインタラクションをシミュレートするシグナリングを、アクティブUIシミュレーションロジック360に提供させうる。例えば、当該シグナリングは、継続前の中止を要求するためにダイアログボックスを閉じるユーザ、あるいはダイアログボックスを閉じる特定のラジオボタンを選択し、別操作用のダイアログボックスを開くユーザをシミュレートしうる。そのようなシグナリングは、ヒューマンインタラクションをさらにシミュレートするために、所定の期間、あるいはランダムな期間だけ意図的に遅延されうる。後続の入力要求に対する少なくとも一つのこのような応答は、そのようなシミュレーテッドUIによってのみ起動されうる悪意ある攻撃をオブジェクト147が開始するトリガとなりうる。
【0068】
パッシブUIシミュレーションロジック370は、「パッシブ」なシミュレーテッドヒューマンインタラクションを提供する第二種のシミュレーテッドUIである。「パッシブ」なヒューマンインタラクションは、選択されたアクションプロファイルに基づくものであるが、ローンチされたオブジェクト147による入力要求(ユーザのアクションを要求するローンチされたオブジェクトの挙動など)に応じるものではない。場合によっては、当該シミュレーテッドヒューマンインタラクションは、オブジェクトによる所定レベルの不活動性に応じる。
【0069】
当該「パッシブ」なシミュレーテッドヒューマンインタラクションは、プロンプトなしにユーザによってオブジェクトに対して行なわれうるあらゆるシミュレーテッド動作を含みうる。当該動作の例としては、マイクロソフト(登録商標)オフィスワード文書(オブジェクト)の特定ページへの移動、マイクロソフト(登録商標)オフィスエクセル文書(オブジェクト)の特定タブへの切り替えなどが挙げられる。一例として、オブジェクト型マイクロソフト(登録商標)オフィスエクセル文書を有する場合、以下のことが(機械学習技術などを通じて)経験的に知られている。エクスプロイトコードや悪意あるコードがマイクロソフト(登録商標)オフィスエクセル文書内に配置されると、選択されたアクションプロファイルによってパッシブUIシミュレーションロジック370にヒューマンインタラクションをシミュレートさせる命令に繋がりうる。シミュレーションは、アクチュエーションロジックが当該オブジェクトをローンチした後の所定のタイミングでマイクロソフト(登録商標)オフィスエクセル文書内の第二シートに切り替えることによって行なわれる。
【0070】
デバイス制御シミュレーションロジック380は、疑わしいオブジェクト147の仮想分析中に行なわれうる第三種のシミュレーテッドUIである。デバイス制御シミュレーションロジック380は、オブジェクトの種別に依存しないデバイス制御インタラクションをシミュレートする。例えば、デバイス制御シミュレーションロジック380は、悪意ある攻撃を行なう前にユーザインタラクションを待つ悪意あるオブジェクトをデトネートするために、選択されたアクションプロファイル300
1から特定のデバイス制御インタラクション(特定のキーストロークや特定のマウスの動きなど)をシミュレートする命令群を受け取りうる。
【0071】
加えて、UIフレームワークログ176は、シミュレーションロジック350によって行なわれた活動を記録する。上述のように、UIフレームワークログ176は、あらゆる疑わしい活動や悪意ある活動だけでなく、あらゆる行なわれたアクションあるいは行なわれなかったアクション、あらゆる要求された入力、および全てのアクションと要求された入力のタイムスタンプを記録しうる。動的分析の完了に際し、UIフレームワークログ176に記録された情報は、スコア判断ロジック168と分類エンジン190の少なくとも一方に対してアクセス可能でありうる。
【0072】
少なくとも一つのアクションプロファイル188は、
図2のネットワーク125を介してMDS110
1へ送られうる構成ファイルを通じて更新されうる。例えば、アクションプロファイルの更新は、管理システム220により、ネットワーク125を介し、機械学習エンジン122を経由して提供されうる。機械学習エンジン122は、UIフレームワークログ176内のコンテンツに基づいて報告エンジン195によって報告された悪意あるオブジェクトに関連付けられた情報を受け取る。加えて、機械学習エンジン122は、他のMDS(MDS110
2やMDS110
3など)によって報告されたUI依存型の悪意あるオブジェクトに関連付けられた情報を受け取る。機械学習エンジン122は、アクションプロファイルの更新を進展させるために、この情報および第三者ソースからの情報を利用する。アクションプロファイルの更新は、改善されたマルウェア検出を提供するための規則の変更、新たな指令や命令、およびパラメータの変化の少なくとも一つを含みうる。マルウェア検出の改善は、オブジェクト型マルウェアと新たに特定されたマルウェアの少なくとも一方を標的とすることにより行なわれる。当該マルウェアは、エクスプロイト、疑わしいコード、および悪意あるコードの少なくとも一つや、ネットワークやネットワーク装置に対する悪意ある攻撃の遂行を支援する他のデータを含む。
【0073】
あるいは、アクションプロファイルの更新は、ネットワーク105を通じて(例えばクラウド演算サービス228を使用するダウンロードと、フラッシュストレージなどの記憶装置の使用を通じた手動インストールの少なくとも一方を通じて)提供されうる。
【0074】
4.シミュレーションロジックにより行なわれるユーザインタラクション
図4Aを参照する。マルウェアを検出するためにパッシブUIシミュレーションロジックとデバイス制御シミュレーションロジックにより行なわれる方法例のフローチャートが示されている。
図4Aにおける各ブロックは、選択されたアクションプロファイルに基づいて実行される動作を表している。当該動作は、標的とされたユーザインタラクションがシミュレーテッドものを提供するために、仮想ランタイム環境内のオブジェクト147の分析中に実行される。これらの動作は、MDS100
1によって、自動的に(ヒューマンインタラクションなしに)悪意あるオブジェクトを検出するために実行される。当該オブジェクトは、ヒューマンインタラクションに応じて悪意ある攻撃を開始するものである。本実施形態においては、選択されたアクションプロファイルにより、当該オブジェクトからの入力要求に応じる「アクティブ」なシミュレーテッドヒューマンインタラクションに高い優先度が付与される一方、「パッシブ」なシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションには低い優先度が付与される。
【0075】
アクチュエーションロジックによってオブジェクトがローンチされたかについて第一の判断がなされる(ブロック400)。ローンチされていないと判断された場合、UIフレームワークは、アクチュエーションロジックからローンチ通知を受け取らない。よって、シミュレーションロジックは、待機状態のままである。しかしながら、オブジェクトがローンチされると、シミュレーションロジックは、アクチュエーションロジックからローンチ通知を受け取る。これにより、シミュレーションロジックに選択されたアクションプロファイルを参照させる。分析中に得られたオブジェクトの挙動に基づき、UIが現在要求されているかについて第一の判断がなされる(ブロック405)。換言すると、タイムリーかつ「アクティブ」なシミュレーテッドヒューマンインタラクションが必要である入力要求をオブジェクト処理が開始したかについて判断がなされる。この判断は、監視システムコールと他のシグナリングによって行なわれうる。当該シグナリングは、UIが求められうるダイアログボックス、テキストボックス、ウインドウなどの知覚可能な要素の生成に関連する。
【0076】
選択されたアクションプロファイルによって規定された規則に基づいて、パッシブUIシミュレーションロジックが「パッシブ」なシミュレーテッドヒューマンインタラクションを実行中である場合と、デバイス制御シミュレーションロジックがシミュレーテッドデバイス制御インタラクションを実行中である場合の少なくとも一方において、シミュレーテッド動作は、所定期間一時停止される。当該所定期間は、選択されたアクションプロファイルにおいて有効とされている規則により設定されうる。当該規則は、特定種の「アクティブ」なシミュレーテッドヒューマンインタラクションを完了するのに必要な時間の長さを特定している。さらに、「一時停止」中のシミュレーテッド動作は、タイムスタンプされ、アクティブUIシミュレーションロジックがそのシミュレーテッドヒューマンインタラクションを完了した後に行なわれる処理のための待ち行列に配置される。選択されたアクションプロファイルは、アクティブUIシミュレーションロジックに特定の「アクティブ」なシミュレーテッドヒューマンインタラクションの実行、およびUIフレームワークログへのアクティビティの記憶を実行させる。その後、シミュレーションロジックは、オブジェクトの分析が完了したかを判断する。完了していないと判断された場合、当該オブジェクトがアクティブにUIを要求しているかの判断に戻る(ブロック410〜425)。
【0077】
アクティブなUIが今回必要でない場合、「一時停止」中のパッシブなシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションが存在するかの判断がなされる(ブロック405と430)。この判断は、待ち行列の分析と所定の待ち時間が経過したか(例えば、現在時刻とタイムスタンプの差が所定時間以上であるか)の判断の少なくとも一方によって遂行されうる。当該待ち時間が経過したと判断された場合、一時停止中のシミュレーテッド動作が再開される(ブロック435)。しかしながら、一時停止中のパッシブなシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションの少なくとも一方が存在しない場合、選択されたアクションプロファイルに基づいて開始されるべき「パッシブ」なシミュレーテッドヒューマンインタラクションが存在するかの判断がなされる(ブロック440)。当該ヒューマンインタラクションが存在すると判断された場合、当該選択されたアクションプロファイルは、特定の「パッシブ」なシミュレーテッドヒューマンインタラクションの実行とUIフレームワークログへのアクティビティの保存を、パッシブUIシミュレーションロジックに行なわせる(ブロック445)。
【0078】
それ迄に所定レベルのシミュレーテッド活動が存在する場合、シミュレーションロジックは、オブジェクトの分析が完了したかの判断へ戻りうる。完了していないと判断された場合、当該オブジェクトがアクティブにUIを要求しているかの判断に戻る(ブロック450、420、および405)。所定レベルのシミュレーテッドUIアクティビティは、様々な手法により測定されうる。例えば、所定レベルのシミュレーテッドUIアクティビティは、オブジェクトがローンチしてからのランタイムにおける特定割合だけシミュレーテッドUIが生じたかに基づいて判断されうる。あるいは、「アクティブ」なシミュレーテッドヒューマンインタラクションの数、またはオブジェクトがローンチされてから完了されたアクティブまたはパッシブなシミュレーテッドヒューマンインタラクションの数を判断する処理が行なわれうる。
【0079】
所定レベルのシミュレーテッドUIアクティビティが該当しない場合、デバイス制御シミュレーションロジックは、どのシミュレーテッドデバイス制御インタラクションが選択されたアクションプロファイルによって要求されたかを判断するために、当該選択されたアクションプロファイルにアクセスする。その後、当該選択されたアクションプロファイルは、そのようなデバイス制御のシミュレーションとUIフレームワークログへのアクティビティの保存を、デバイス制御シミュレーションロジックに行なわせる。その後、シミュレーションロジックは、オブジェクトの分析が完了したかの判断へ戻りうる。完了していないと判断された場合、当該オブジェクトがアクティブにUIを要求しているかの判断に戻る(ブロック450、420、および405)。
【0080】
これらの動作により、UI制御ロジックは、「アクティブ」なシミュレーテッドヒューマンインタラクションの優先度を、「パッシブ」なシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションよりも高くするように構成される。よって、場合によっては、シミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションは、オブジェクトによって開始されたアクティビティへの応答にリソースを割くために、一時的に停止されうる。「パッシブ」なシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションの種別によっては、オブジェクトによる入力要求が検出されても継続しうることは勿論である。これは、シミュレーテッド動作において認識される整合性を維持し、動作におけるプロンプト変更を異常検出する洗練されたマルウェアを避けるために行なわれうる。
【0081】
図4Bを参照する。マルウェアを検出するためにアクティブUIシミュレーションロジックにより行なわれる方法例のフローチャートが示されている。前述のように、アクチュエーションロジックによってオブジェクトがローンチされたかについて第一の判断がなされる(ブロック470)。ローンチされていないと判断された場合、アクティブUIシミュレーションロジックは、待機状態のままである。しかしながら、オブジェクトがローンチされると、アクティブUIシミュレーションロジックは、アクチュエーションロジックからローンチ通知を受け取る。これにより、シミュレーションロジックは、疑わしいオブジェクトがある種のアクティブUIを現在要求しているかを判断する。当該アクティブUIの例としては、オブジェクトがその動作を継続する前に中止を要求するダイアログボックスを開くことが挙げられる(ブロック475)。
【0082】
要求中であると判断されると、アクティブUIシミュレーションロジックは、パッシブUIシミュレーションロジックとデバイス制御シミュレーションロジックに緊急アクティブUIを通知する(ブロック480)。
図4Aに示されるように、この通知は、パッシブUIシミュレーションロジックとデバイス制御シミュレーションロジックに、現在のあらゆる動作を一時停止するように促す。その後、アクティブUIシミュレーションロジックは、選択されたアクションプロファイルに設定された規則に基づいてヒューマンシミュレーション動作を実行し、そのアクティビティをUIフレームワークロジックに記憶する(ブロック485)。
【0083】
分析下にある疑わしいオブジェクトが現在アクティブUIを要求していないか、応答としてのシミュレーテッドヒューマンインタラクションが提供されているとアクティブUIシミュレーションロジックが判断すると、アクティブUIシミュレーションロジックは、当該疑わしいオブジェクトの分析が完了したかを判断する。完了していないと判断されると、アクティブUIシミュレーションロジックは、要求されたUIを待つ次の繰り返しサイクルを開始する(ブロック490)。
【0084】
5.MDSのソフトウェア展開
図5を参照する。MDS110
1に関連付けられたロジックのブロック図の一例が示されている。MDS110
1は、少なくとも一つのプロセッサ500を備えている。少なくとも一つのプロセッサ500は、第一伝送媒体520を介して第一通信インターフェースロジック510と接続されている。第一通信インターフェースロジック510は、
図1のネットワークインターフェース136との通信接続を提供しうる。加えて、少なくとも一つのプロセッサ500は、第二伝送媒体540を介して第二通信インターフェースロジック530と通信可能に接続されうる。第二通信インターフェースロジック530は、
図1における他のMDS110
2〜110
3および管理システム120との通信を提供しうる。
【0085】
本開示の一実施形態においては、第一通信インターフェースロジック510と第二通信インターフェースロジック530の少なくとも一方は、有線コネクタ用の少なくとも一つのポートを含む物理的インターフェースとして実現されうる。これに加えてあるいは代えて、第一通信インターフェースロジック510と第二通信インターフェースロジック530の少なくとも一方は、他のネットワーク装置との無線通信をサポートするための少なくとも一つの無線ユニットとして実現されうる。
【0086】
少なくとも一つのプロセッサ500は、さらに不揮発性ストレージ550と伝送媒体560を介して接続されている。本開示の一実施形態においては、不揮発性ストレージ550は、静的分析エンジン145、動的分析エンジン160、分類エンジン190、および報告エンジン195と関連付けられたソフトウェアコンポーネントを保存するように構成されうる。図示されているように、静的分析エンジン145と関連付けられたソフトウェアコンポーネントは、静的分析ロジック152、メタデータ抽出ロジック154、およびオブジェクト種判断ロジック156の少なくとも一つを含みうる。不揮発性ストレージ550は、VM170
1〜170
MとともにVMM172を含む動的分析エンジン160と関連付けられたソフトウェアコンポーネントをさらに保存するように構成されうる。VM170
1〜170
Mの少なくとも一部は、UI制御ロジック182でプロビジョンされうる。UI制御ロジック182は、プロファイルセレクタ184、UIフレームワーク186、およびアクションプロファイル188(少なくとも一つ)の少なくとも一つを含みうる。
【0087】
加えて、不揮発性ストレージ550は、マジックナンバーデータベース158を含みうる。マジックナンバーデータベース158は、上述したオブジェクト種判断ロジック156とデータストア159、164によってアクセスされる。データストア159、164の少なくとも一部は、データバッファとして動作しうる。
【0088】
上記の記載においては、特定の実施形態例を参照して本発明を説明した。しかしながら、添付の特許請求の範囲に記載されたより広い発明の趣旨から逸脱しなければ、様々な修正および変更がなされうることは明らかである。