(57)【特許請求の範囲】
【請求項１】
ロジックが記憶された非一時的かつコンピュータが読み取り可能な記憶媒体であって、  ネットワーク装置内に実装された少なくとも一方のプロセッサにより前記ロジックが実行されると、
アクチュエーションロジックによって、少なくとも一つの仮想マシンを含む仮想ランタイム環境内にオブジェクトをローンチし、
制御ロジックによって、前記オブジェクトによる少なくとも一つのシミュレーテッドユーザインタラクションを、当該オブジェクトに関連付けられたメタデータに基づいて選択し、
前記少なくとも一つのシミュレーテッドユーザインタラクションは、前記少なくとも一つの仮想マシン内で実行され、
前記メタデータは、前記アクチュエーションロジックによってローンチされた前記オブジェクトに対応するオブジェクト種を特定するデータを含む、
非一時的かつコンピュータが読み取り可能な記憶媒体。
【請求項２】
前記オブジェクトにより第一ユーザインタラクションが要求されているとの判断に応じて、前記少なくとも一つのシミュレーテッドユーザインタラクションの一部である第一のシミュレーテッドヒューマンインタラクションを発生させる、
請求項１に記載の非一時的かつコンピュータが読み取り可能な記憶媒体。
【請求項３】
前記第一のシミュレーテッドヒューマンインタラクションは、前記アクチュエーションロジックによって前記少なくとも一つの仮想マシン内にローンチされている前記オブジェクトによる挙動に応答するシミュレーテッドアクションを含み、
前記挙動は、前記オブジェクトがユーザ入力をアクティブに待つ動作状態を表す、
請求項２に記載の非一時的かつコンピュータが読み取り可能な記憶媒体。
【請求項４】
オブジェクトを伴うマルウェアを検出する装置であって、
各々が所定の規則セットに基づいてユーザインタラクション（ＵＩ）アクティビティを実行する指令または命令の集合である、少なくとも一つのアクションプロファイルと、
前記オブジェクトに関連付けられて当該オブジェクトの種別を特定しているメタデータに基づいて、前記少なくとも一つのアクションプロファイルから一つのアクションプロファイルを選択するプロファイルセレクタと、
仮想マシン内にローンチされた前記オブジェクトに応じて、選択された前記一つのアクションプロファイルにおける前記所定の規則セットに基づき、前記オブジェクトを伴うシミュレーテッドＵＩを実行するＵＩフレームワークロジックと、
を備えており、
前記ＵＩフレームワークロジックは、（１）前記オブジェクトをローンチするアクチュエーションロジック、および（２）ローンチされた前記オブジェクトについて行なわれる前記シミュレーテッドＵＩを動的に制御するシミュレーションロジックを含んでいる、
装置。
【請求項５】
データを含むログを備えており、
ローンチされた前記オブジェクトがマルウェアとして分類されると、前記データは、前記少なくとも一つのアクションプロファイルを更新するために使用され、
前記更新は、ローンチされた前記オブジェクトによる悪意ある挙動の起動を成功させるシミュレーテッドＵＩのセットを示すことにより行なわれる、
請求項４に記載の装置。
【請求項６】
クラウドコンピューティングサービスの一部として実現されるネットワーク装置において実施されるコンピュータ制御された方法であって、
前記ネットワーク装置内のアクチュエーションロジックによって、仮想ランタイム環境における少なくとも一つの仮想マシン内にオブジェクトをローンチし、
前記少なくとも一つの仮想マシン内で実行される少なくとも一つのシミュレーテッドユーザインタラクションを規定する少なくとも一つの指令を提供するアクションプロファイルを、プロファイルセレクタにより、前記オブジェクトに関連付けられたメタデータに基づいて選択し、
前記メタデータは、前記オブジェクトに対応するオブジェクト種を特定するデータを含み、
前記アクションプロファイルは、ローンチされた前記オブジェクトを伴う少なくとも一つのユーザインタラクションを動的に制御する規則のセットを含む、
方法。
【請求項７】
クラウドコンピューティングサービスの一部として実現されるネットワーク装置において実施されるコンピュータ制御された方法であって、
ユーザインターフェースフレームワークによって、サンドボックス化された環境内にオブジェクトをローンチし、
前記サンドボックス化された環境内で少なくとも一つのシミュレーテッドユーザインタラクションを実行するための少なくとも一つの指令や命令を提供するアクションプロファイルを、プロファイルセレクタにより、前記オブジェクトに関連付けられたメタデータに基づいて選択し、
前記アクションプロファイルは、ローンチされた前記オブジェクトを伴う少なくとも一つのユーザインタラクションを動的に制御する規則のセットを含む、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示における実施形態は、サイバーセキュリティの分野に関連する。より具体的には、本開示における一実施形態は、マルウェアを検出するシステム、装置、および方法に関連する。
【背景技術】
【０００２】
過去十年間で、悪意あるソフトウェア（マルウェア）は、インターネットユーザの間で広く知られる問題になっている。マルウェアは、ネットワークリソースにおける脆弱性を頻繁に攻撃している。例えば、過去数年にわたって、ネットワークデバイスに実装されたソフトウェアにおけるより多くの脆弱性（ＯＳにおける脆弱性など）が明らかになっている。幾つかの脆弱性はソフトウェアパッチを通じて対処され続けるが、そのようなソフトウェアパッチのリリースされる前においては、ネットワークリソースがエクスプロイトを通じて標的とされ続ける。マルウェアは、機密情報を取得しようとしたり、ネットワーク装置や企業ネットワーク全体の通常動作に悪影響や攻撃を与えようとしたりする。
【０００３】
現在、マルウェア検出システムにおいては、少なくとも一つの仮想マシンがオブジェクトの処理に使用されうる。当該オブジェクトは、例えば、ネットワークトラフィックから得られたコンテンツとストレージロケーションから得られたファイルの少なくとも一方を含む。当該処理は、起動と監視を通じてマルウェアソフトウェアを検出するために行なわれる。しかしながら、この処理は、ユーザインタラクションを必要としうる。当該ユーザインタラクションは、例えば、入力装置により生成される入力の形態である。当該入力装置の例としては、グラフィックインターフェース（ＧＵＩ）、マウス、キーボード、キーパッドなどが挙げられる。必要なユーザ入力を提供できない場合、現在のマルウェア検出システムは、オブジェクト内の悪意あるコンテンツを起動できないことがある。洗練されたマルウェアは、自己防衛メカニズムを有していることが多いからである。自己防衛メカニズムは、ユーザ制御下にあるクライアント装置における意図された環境ではなく、マルウェア検出システムの仮想環境で実行中であるかを検出しようとする。自己防衛メカニズムの一種は、アプリケーションにおいて予想されるユーザ入力が適時に提供されるかを監視するマルウェアを伴う。提供がなければ、当該マルウェアは、休眠状態となりうる（起動しない）。その場合、当該マルウェアは、マルウェア検出システムによる検出にかからない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来のマルウェア検出システムの幾つかは、仮想ランタイム環境におけるシミュレーテッド入力装置制御のジェネリックかつスタティックなパターンを適用する。実際のヒューマンインタラクションは不在である。しかしながら、マルウェアの作者たちは、当該パターンの特定と、当該スタティックなシミュレーテッド装置制御を特定するためのマルウェアの実装ができるようになりつつある。マルウェアの作者たちは、マルウェアの検出に際して悪意あるコードの起動を行なわせないようにすることで非検出状態を維持する。これにより、従来のマルウェア検出システムの幾つかは、認容できないレベルの検出漏れを経験しうる。あるいは、従来のマルウェア検出システムの幾つかは、検出漏れ率を高める多数のパターン検出スキームの展開を強いられうる。
【課題を解決するための手段】
【０００５】
本開示における様々な実施形態は、少なくとも仮想ランタイム環境内におけるオブジェクトの動的な分析を通じて、当該オブジェクトが悪意ある攻撃に関連付けられているかを判断するシステムと方法に関連する。仮想ランタイム環境は、所定のソフトウェアプロファイルと関連付けられたゲストイメージを備えるように設定された少なくとも一つの仮想マシンインスタンス（ＶＭ）を備えている。ゲストイメージは、オペレーティングシステム（ＯＳ）に加えて、複数のモニタとともにソフトウェアアプリケーション、すなわち当該仮想マシン内の処理中において解析下にあるオブジェクトの挙動を観測および捕捉するように構成されたソフトウェアコンポーネントを含みうる。このＶＭ構成により、悪意あるオブジェクトを効果的に検出するために、当該オブジェクトは「ローンチ」され、次いで仮想ランタイム内で「デトネート」されることを要する。「ローンチ」という語は、分析下にあるオブジェクトの起動を開始する少なくとも一つのイベントの動作を表している。「デトネート」という語は、起動されたオブジェクトによる悪意ある攻撃をトリガする少なくとも一つのイベントの動作を表している。なお、関連出願である２０１３年３月１３日に出願された米国特許出願第１３／８０１，５３２の内容が援用される。
【０００６】
しかしながら、何らかのユーザインタラクション（オブジェクトによってアクチュエートされたイベントに応じた少なくとも一つのユーザ入力や、オブジェクトの通常使用中におけるユーザ起点の入力など）に応じてのみオブジェクトがデトネートされる場合がある。本開示の一実施形態によれば、ユーザインタラクション（ＵＩ）制御ロジックが、仮想ランタイム環境の一部として展開されうる。これにより、ＶＭ内における特定種の悪意あるオブジェクトをデトネートするために必要とされるシミュレーテッドＵＩが提供される。本発明の実施形態は、仮想ランタイム環境内で処理されているオブジェクトの種別（実施形態によってはオブジェクトに係る他の特徴）に応じて調整されたシミュレーテッドＵＩを提供する。ＵＩ制御ロジックは、複数のコンポーネントを備える。後述するように、当該コンポーネントは、（１）プロファイルセレクタ、および（２）ＵＩフレームワークを含む。
【０００７】
ＵＩ制御ロジックは、複数の実施形態をとりうる。例えば、ＵＩ制御ロジックは、ＶＭのコンポーネントとして設定されうる。別実施形態として、ＵＩフレームワークが、ＶＭのコンポーネントとして設定されうる。しかしながら、プロファイルセレクタは、仮想マシンモニタ（ＶＭＭ）の一部として展開されうる。本開示の一実施形態によれば、ＶＭＭは、「ホストハイパバイザ」（ホストＯＳのトップで実行されるソフトウェアなど）あるいはハードウェアとＶＭの間の中間動作層の一部として割り当てられうる。ＶＭＭの一部として割り当てられる場合、プロファイルセレクタは、ＶＭ内部でＵＩフレームワークコンポーネント（ＶＭとＵＩフレームワークコンポーネントは複数でもよい）を設定するように構成されうる。
【０００８】
本開示の一実施形態によれば、プロファイルセレクタは、ＶＭまたは仮想ランタイム環境内におけるＶＭの外部にホストされうる複数のアクションプロファイルから一つを選択する。この選択は、分析下にあるオブジェクトに関連付けられたメタデータに少なくとも部分的に基づきうる。メタデータは、シミュレーテッドＵＩを支配するアクションプロファイルを決定するコンテキストを、少なくとも部分的に定義する。メタデータは、ランタイム環境においてオブジェクトをローンチするのに適したソフトウェアも決定する。勿論、アクションプロファイルの選択は、ＶＭを展開（ホスト）するネットワークデバイス（ネットワークトラフィックを解析するセキュリティアプライアンス、ファイルストレージシステム内のファイルなど）の種別などのオブジェクトの静的分析より得られた情報にも基づきうる。このアクションプロファイル選択スキームによれば、オブジェクトの動的解析が「コンテキストアウェア」になる。
【０００９】
メタデータは、分析下にあるオブジェクトの種別を特定するデータを含みうる。オブジェクトの種別に加え、特定のアクションプロファイルを選択するためにプロファイルセレクタによって他のメタデータが使用されうることは明らかである。特定のアクションプロファイルを選択するためにプロファイルセレクタによって使用されうる他のメタデータの例としては、ＶＭにおいてローンチされたオブジェクトを伴うＵＩのシミュレーションを制御するものであって、少なくとも以下に列挙されるものの少なくとも一つを含みうる。
（１）オブジェクトが暗号化されているかと暗号化スキームの種別の少なくとも一方
（２）オブジェクトが埋め込みオブジェクトであるか
（３）オブジェクトを処理するために必要なアプリケーション
（４）オブジェクトを含むネットワークコンテンツの提供に使用される送信プロトコル
【００１０】
各「アクションプロファイル」は、アクションプロファイルについて予め定められた規則のセットに基づいてＵＩ機能を実行する指令や命令の集合である。結果として、各アクションプロファイルは、パターンそのものを使用するのではなく、特定種のオブジェクトと関連付けられたＵＩアクションを動的に制御する際に使用されるように構成されている。例えば、マイクロソフトエクセル（登録商標）のスプレッドシートに関連付けられたアクションプロファイルは、ＰＤＦ文書のＵＩアクション（文書のページスクロールなど）とは異なるＵＩアクション（タブ選択、特定のセルにテキスト追加、特定数のセル行だけスクロールダウンなど）を行ないうる。そのようなアクションは、分析下のオブジェクトの挙動に応じて異なるタイミングで行なわれうる。
【００１１】
ＵＩフレームワークは、（１）アクチュエーションロジック、（２）アクティブＵＩシミュレーションロジック、（３）パッシブＵＩシミュレーションロジック、および（４）デバイス制御シミュレーションロジックを備える。本開示の一実施形態によれば、アクチュエーションロジックは、ＶＭを設定し、かつソフトウェアプロファイルの一部として実装されたソフトウェアコンポーネントであり、分析下にあるオブジェクトのローンチを担う。アクチュエーションロジックの実装のされ方は、オブジェクトの種別に応じて変化しうる。アクチュエーションロジックがオブジェクトをローンチすると、アクティブＵＩシミュレーションロジック、パッシブＵＩシミュレーションロジック、およびデバイス制御シミュレーションロジックのインスタンスが、選択されたアクションプロファイルとともに、あるいは選択されたアクションプロファイル内のコンテンツにアクセスするために作成される。選択されたアクションプロファイルとともに動作することにより、ＵＩフレームワーク内のシミュレーションロジックは、当該オブジェクトが目標エンドポイントで動作した場合、特定のアクション（期待されるユーザインターフェースインタラクションや起動方法など）を、当該アクションが期待される特定の動作状態中において実行する。これらの特定のアクションは、所定のシーケンス（順序）と所定の期間の少なくとも一方に基づいて行なわれうる。さらに、複数のアクションが同時に（少なくとも一時的に重複して）行なわれてもよいし、順次行なわれてもよい。
【００１２】
ＵＩフレームワークの一部として動作することにより、アクティブＵＩシミュレーションロジックは、入力要求（パスワード要求、継続前に中止を求めるダイアログボックスの表示、テキスト入力を求めるテキストボックスの表示など）を検出する。入力要求は、それに直接応答するヒューマンインタラクションを求める。本明細書では、この種のヒューマンインタラクションを「アクティブ」なシミュレーテッドヒューマンインタラクションと称する。これに応答して、アクティブＵＩシミュレーションロジックは、選択されたアクションプロファイルに基づいて動作し、応答が提供されたか、および当該応答の種別を必要に応じて判断する。
【００１３】
パッシブＵＩシミュレーションロジックは、選択されたアクションプロファイルに応じて動作し、場合により、所定レベルのオブジェクトの不活動性と疑わしいオブジェクトのローンチからの所定時間経過の少なくとも一方に応じて、シミュレーテッドヒューマンインタラクションを提供する。パッシブＵＩシミュレーションロジックは、タイミング回路（リアルタイムクロック、カウンタなど）と通信状態にあり、モニタされた時間は、所定レベルのオブジェクトの不活動性と疑わしいオブジェクトのローンチからの所定時間経過の少なくとも一方によりトリガされた所定のシミュレーテッドヒューマンインタラクションをいつ行なうかを判断する要因となる。
【００１４】
例えば所定期間の不活動性が検出されると、パッシブＵＩシミュレーションロジックは、オブジェクトに対するユーザ起点のインタラクションのシミュレーションを行なう。シミュレーションの例としては、マイクロソフト（登録商標）オフィスワード文書（オブジェクト）における特定ページへの移動、マイクロソフト（登録商標）オフィスエクセル文書（オブジェクト）における特定タブへの切り替え、オブジェクトに固有のアクションプロファイルに応じた別のパワーポイント（商標）スライドへの切り替えなどが挙げられる。一例として、オブジェクトがマイクロソフト（登録商標）オフィスエクセル文書である場合、以下のことが（機械学習技術などを通じて）経験的に知られている。エクスプロイトコードや悪意あるコードがマイクロソフト（登録商標）オフィスエクセル文書内に配置されると、選択されたアクションプロファイルによってパッシブＵＩシミュレーションロジックにヒューマンインタラクションをシミュレートさせる命令に繋がりうる。シミュレーションは、アクチュエーションロジックが当該オブジェクトをローンチした後の所定のタイミングでマイクロソフト（登録商標）オフィスエクセル文書内の第二シートに切り替えることによって行なわれる。
【００１５】
デバイス制御シミュレーションロジックは、選択されたアクションプロファイルに基づいて動作し、シミュレーテッドデバイス制御を提供する。当該デバイス制御は、オブジェクトの種別に依存しない。デバイス制御シミュレーションロジックは、さらに別のレベルの所定の不活動性に応じて動作しうる。例えば、デバイス制御シミュレーションロジックは、選択されたアクションプロファイルから特定のデバイス制御インタラクション（オブジェクトによる悪意ある攻撃をトリガする特定のキーストロークやマウス動作など）をシミュレートする指令を受け取りうる。
【００１６】
本開示の実施形態は、ネットワーク装置によって利用されてもよいし、ネットワーク装置の形態をとってもよい。当該ネットワーク装置は、マルウェア検知システム（ＭＤＳ）を備えたサイバーセキュリティアプライアンスを含む。当該ＭＤＳは、静的分析エンジンと動的分析エンジンを備える（動的分析エンジンのみを備える実施形態もある）。実施形態によっては、当該ＭＤＳは、サーバやクライアントデバイスなどのネットワークに接続可能なシステム（いずれにしても「エンドポイント」と称されるもの）として実現されうる。当該動的分析エンジンは、仮想ランタイム環境を含みうる。当該仮想ランタイム環境は、受け付けたネットワークトラフィックから得たオブジェクトをユーザの支援なしに自動的に分析し、仮想処理中に悪意あるオブジェクトを検出およびデトネートするためにヒューマンインタラクションをシミュレートする。分析結果は、さらなる分析や対応のためにネットワーク管理者などの職員に報告されうる。
【図面の簡単な説明】
【００１７】
発明の実施形態例は、限定を伴うことなく添付の図面に例示される。同じ参照符号は、同様の要素を示す。
【００１８】
【図１】マルウェア検出システム（ＭＤＳ）の第一実施形態を示すブロック図の例であり、悪意あるオブジェクトのデモを行なうシミュレーテッドユーザインタラクション（ＵＩ）を提供するために仮想ランタイム環境の一部として展開されたＵＩ制御ロジックを示す。
【図２】ＭＤＳの第二実施形態を示すブロック図の例であり、上記仮想ランタイム環境の一部として実装されるＵＩ制御ロジックの第二アーキテクチャスキームを示す。
【図３Ａ】上記仮想ランタイム環境内で動作する上記ＵＩ制御ロジックの第一動作フローを示すブロック図の例である。
【図３Ｂ】上記仮想ランタイム環境内で動作する上記ＵＩ制御ロジックの第二動作フローを示すブロック図の例である。
【図４Ａ】選択されたアクションプロファイルに基づいて動作し、悪意あるオブジェクトを正確に検出する可能性を高めるためにシミュレーテッドＵＩを行なうパッシブＵＩシミュレーションロジックと装置制御シミュレーションロジックにより行なわれる処理例を示すフローチャートである。
【図４Ｂ】選択されたアクションプロファイルに基づいて動作し、悪意あるオブジェクトを正確に検出する可能性を高めるためにシミュレーテッドＵＩを行なうアクティブＵＩシミュレーションロジックと装置制御シミュレーションロジックにより行なわれる処理例を示すフローチャートである。
【図５】図１のＭＤＳに関連付けられた論理アーキテクチャを示すブロック図の例である。
【発明を実施するための形態】
【００１９】
１．用語
以降の説明においては、発明の特徴を記述するために特定の用語が使用される。例えば、特定の状況下において、「ロジック」、「コンポーネント」、および「エンジン」という語は、少なくとも一つの機能を実行するように構成されたハードウェア、ファームウェア、ソフトウェアの少なくとも一つを表す。ハードウェアの場合、ロジック（あるいはコンポーネントやエンジン）は、データを処理あるいは記憶する機能を有する回路を含みうる。そのような回路の例としては、マイクロプロセッサ、少なくとも一つのプロセッサコア、プログラマブルゲートアレイ、マイクロコントローラ、特定用途向け集積回路、半導体メモリ、組合せロジックが挙げられるが、これらに限定あるいは制限されない。
【００２０】
ロジック（あるいはコンポーネントやエンジン）は、少なくとも一つのソフトウェアモジュールの形態でありうる。そのような例としては、実行可能なアプリケーションの形態である実行可能なコード、アプリケーションプログラミングインターフェース（ＡＰＩ）、サブルーチン、関数、プロシージャ、アプレット、サーブレット、ルーチン、ソースコード、オブジェクトコード、共有ライブラリまたはダイナミックロードライブラリ、少なくとも一つの指令が挙げられる。これらのソフトウェアモジュールは、あらゆる適当な非一時的な記憶媒体または一時的な記憶媒体に記憶されうる。一時的な記憶媒体の例としては、電気的、光学的、音響的などの形態をとる伝達信号（搬送波、赤外信号、デジタル信号など）が挙げられる。非一時的な記憶媒体の例としては、プログラマブル回路、半導体メモリ、揮発性メモリ（例えば、あらゆるランダムアクセスメモリ；ＲＡＭ）のような揮発性ストレージ、不揮発性メモリ（読出し専用メモリ；ＲＯＭ、電源バックアップ型ＲＡＭ、フラッシュメモリ、フェーズチェンジメモリなど）のような不揮発性ストレージ、半導体ドライブ、ハードディスクドライブ、光ディスクドライブ、携帯メモリ装置などが挙げられる。ファームウェアの例としては、不揮発性ストレージに記憶された実行可能なコードが挙げられる。
【００２１】
「オブジェクト」という語は、一般にデータの集合を指す。データは、（例えばネットワーク上で）移動中であるか静止しているか（例えば保存されている）を問わない。オブジェクトは、分析を目的として分類されることを可能にする論理的構造あるいは構成を有している。例えば、分析中においては、オブジェクトは、期待された特性のセットを示し、処理中においては、期待された挙動のセットを示しうる。また、オブジェクトは、マルウェアの存在を証拠付け、当該オブジェクトを悪意ある攻撃の一部に分類可能にする予期せぬ特性のセットと挙動のセットを示しうる。
【００２２】
オブジェクトの例としては、少なくとも一つのフロー、あるいはフロー自体に含まれる自己完結型エレメントが挙げられる。「フロー」は、通信セッション内において受信、送信、あるいは交換される関連パケットを主に意味する。便宜上、パケットは、所定のフォーマットを有する一連のビットあるいはバイトを広く意味し、実施形態によってはパケット、フレーム、あるいはセルを含みうる。さらに、「オブジェクト」は、多数の関連するパケットのペイロード全体（ネットワークを通じて受信された単一のウェブページなど）を指しうる。また、オブジェクトは、伝送媒体を通じて保存場所から受信されたファイルや文書でありうる。
【００２３】
オブジェクトは、自己完結型エレメントとして実行可能であってもよいし（アプリケーション、プログラム、コードセグメント、ダイナミックリンクライブラリ：ＤＬＬなど）、実行不可能であってもよい。実行不可能なファイルの例としては、ポータブルドキュメントフォーマット（ＰＤＦ）文書、マイクロソフトオフィス（登録商標）文書、マイクロソフトエクセル（登録商標）のスプレッドシートなどの文書、電子メール（ｅメール）、ダウンロードされたウェブページなどが挙げられる。
【００２４】
「伝送媒体」という語は、複数のネットワーク装置間、あるいはネットワーク装置内のコンポーネント間の物理的あるいは論理的通信経路を意味する。ネットワーク装置の例としては、データ処理とネットワーク接続を伴う装置であり、セキュリティアプライアンス、サーバ、メインフレーム、コンピュータ（デスクトップあるいはラップトップ）、ネットブック、タブレット、スマートフォン、ルータ、スイッチ、ブリッジなどが挙げられる。物理的通信経路の例としては、電気配線、光ファイバ、ケーブル、バストレースの形態における有線接続と無線接続の少なくとも一方が挙げられる。あるいは、赤外線やラジオ周波数（ＲＦ）を用いた無線チャネルが使用されうる。
【００２５】
「ネットワーク装置」という語は、ネットワークへの接続が可能なあらゆる電子装置と解釈される。当該ネットワークは、インターネットのようなパブリックネットワーク、無線データ通信ネットワーク、広域ネットワーク、ローカルエリアネットワーク（ＬＡＮ）のようなプライベートネットワーク、あるいは複数のネットワークの組合せでありうる。ネットワーク装置の例としては、ラップトップ、携帯電話、タブレット、コンピュータ、セキュリティアプライアンスなどが挙げられるが、これらに限られるものではない。
【００２６】
「コンピュータ制御された」という語は、一般にソフトウェアとファームウェアの少なくとも一方と協働するハードウェアにより行なわれる動作を表す。また、「比較する」あるいは「比較」という語は、二つの事物の間に一致（特定レベルの相関など）が成立するかを判断することを主に表す。当該二つの事物の一方は、特定のシグネチャパターンを含みうる。
【００２７】
「アクションプロファイル」という語は、特定のアクションプロファイルについて予め定められた規則セットに基づいて複数種のシミュレーテッドユーザインタラクションを行なうためのロジックをセットアップする複数の指令や命令と解釈される。当該シミュレーテッドユーザインタラクションは、「アクティブ」なシミュレーテッドヒューマンインタラクション、「パッシブ」なシミュレーテッドヒューマンインタラクション、およびシミュレーテッドデバイス制御インタラクションを含みうる。
【００２８】
アクティブなシミュレーテッドヒューマンインタラクションは、分析下にある疑わしいオブジェクトによって開始されたイベントに応じてユーザによって行なわれうるシミュレーテッドアクションを含みうる。状況によっては、当該シミュレーテッドアクションは、当該オブジェクトによって更なる活動が行なわれる前に必要とされうる。アクティブなシミュレーテッドヒューマンインタラクションの例としては、ウインドウやダイアログボックスのクローズ、特定のラジオボタンの選択、テキストボックスへの文字入力の少なくとも一つが挙げられる。
【００２９】
パッシブなシミュレーテッドヒューマンインタラクションは、オブジェクトの起動中にユーザによって普通に行なわれるが当該オブジェクトの特定の挙動に応答するものではないシミュレーテッドアクションを含みうる。パッシブなシミュレーテッドヒューマンインタラクションの例としては、ＰＤＦやワード（登録商標）などの文書ページ、ブラウザ、その他の表示画像などのスクロール、エクセル（登録商標）スプレッドシートにおける特定タブの選択、特定のメニューオプションへのアクセスなどが挙げられる。
【００３０】
シミュレーテッドデバイス制御インタラクションは、エンドポイント用入力装置からのシミュレーテッド入力を含みうる。シミュレーテッドデバイス制御インタラクションの例としては、キーストローク、マウスの移動やクリック、タッチスクリーンにおける少なくとも一つの領域において検出された操作などが挙げられる。
【００３１】
最後に、本明細書で用いられる「または」と「〜の少なくとも一つ」という語は、両立的（inclusive）であることを意味する。すなわち、「Ａ、Ｂ、またはＣ」あるいは「Ａ、Ｂ、Ｃの少なくとも一つ」は、Ａ、Ｂ、Ｃ、ＡとＢ、ＡとＣ、ＢとＣ、ＡとＢとＣのいずれをも意味する。この定義における例外は、要素、機能、ステップ、動作などの組合せが排他的（exclusive）であることが明らかな場合のみである。
【００３２】
本発明は、マルウェアの検出、確認、優先付けの少なくとも一つに利用されうる。マルウェアは、悪意あるコンテンツを含みうる。具体的には、本発明は、特定のオブジェクト型シミュレーテッドヒューマンインタラクションを、仮想ランタイム環境において起動されたオブジェクトに対して提供する。多くの異なる形態の実施形態に対して本発明が適用可能となるように、本開示は、当該発明の原理の一例とみなされることを意図しており、本発明が図示や記載された特定の実施形態に限定されることを意図するものではない。
【００３３】
２．マルウェア検出システムの一般的なアーキテクチャ
ネットワーク１００のブロック図の一例が示されている図１を参照する。ネットワーク１００には、複数のマルウェア検出システム（ＭＤＳ）１１０1〜１１０N（Ｎは１より大きく、本実施形態においては３である）が配備されている。ＭＤＳ１１０1〜１１０Nは、ネットワーク１２５を介して管理システム１２０と通信可能に結合されている。一般に、管理システム１２０は、各１１０1〜１１０3を管理するように構成されている。例えば、管理システム１２０は、ロジック内のコンテンツの更新（新しい規則や変更された規則の更新、規則の削除、当該規則によって利用されるパラメータの修正、およびメタデータの修正の少なくとも一つ）を行うように構成されうる。当該ロジックは、通信インターフェース１４０、静的分析エンジン１４５、動的分析エンジン１６０、分類エンジン１９０、および報告エンジン１９５の少なくとも一つの一部として動作する。当該ロジックは、初期システム設定および構成などを目的として選択型ユーザインターフェース機能を備えている。具体的には、管理システム１２０は、アクションプロファイル更新ロジック１７４を介して少なくとも一つのアクションプロファイルへ更新を伝達するように構成されている。少なくとも一つのアクションプロファイル１８８は、後述するように、ヒューマンインタラクションのシミュレーションと分析中のオブジェクトのためのデバイス制御の少なくとも一方を制御するために使用される。
【００３４】
図１に示されるように、第一マルウェア検出システム（ＭＤＳ）１１０1は、到来するデータ（ネットワークトラフィック、通信ネットワーク１０５を通じて入力されるデータ、別種の伝送媒体から入力されるデータなど）に関連付けられた情報を分析するように構成された電子装置である。当該情報は、少なくとも一つのエンドポイント１３２との間で行き来する。本実施形態例においては、通信ネットワーク１０５は、プライベートネットワークを含みうる。プライベートネットワークの例としては、無線データ通信ネットワーク、広域ネットワーク、ローカルエリアネットワーク（ＬＡＮ）の類、複数のネットワークの組合せなどが挙げられる。別実施形態は、マルウェア検出のためにファイルの保存場所（ハードディスクドライブ；ＨＤＤやフラッシュドライブストレージなど）から検索されて到来するデータ（ファイル保管庫からのファイル）を含みうる。第一ＭＤＳ１１０1は、インターフェース１３６と動作ファイヤウォール１３４の少なくとも一方を介して通信ネットワーク１０５と通信可能に結合されている。
【００３５】
一般に、インターフェース１３６は、少なくとも一つのエンドポイント１３２との間で行き来するネットワークトラフィックの少なくとも一部を受け取り、受け取ったネットワークトラフィックの一部と関連付けられた情報を第一ＭＤＳ１１０1に提供するように構成されたデータ取得装置として動作しうる。当該情報は、オブジェクトを含みうる。当該オブジェクトは、全体として実行可能あるいは実行不可能な複数のパケット（ｅメールメッセージやウェブページに埋め込まれた文書など）である。あるいは、図示されていないものの、インターフェース１３６は、ネットワークを通じては提供されないファイルなどのオブジェクトを受け付けるように構成されうる。例えば、インターフェース１３６は、記憶システムに保存されたデータへ自動的に（あるいは命令に基づいて）アクセスするデータ取得装置、あるいは、適当な専用通信リンクを介して手動で提供されたりポータブルフラッシュドライブのような記憶媒体から提供されたりするオブジェクトを受け付ける別種のインターフェース（ポートなど）でありうる。
【００３６】
一般に、インターフェース１３６は、通常はエンドポイント１３２へ向けられたデータを取得するように構成されうる。取得されるデータは、分析に供される少なくとも一つのオブジェクト１４７とこれに対応するメタデータ１４８を含む。メタデータ１４８の少なくとも一部は、次いでロジック（スケジューラ１５０など）により使用されるプロトコル、アプリケーション種別などの情報を判断し、選択されたソフトウェアプロファイルを備えた少なくとも一つのＶＭ１７０1〜１７０Ｍ（Ｍは１以上）を構成するために使用されうる。例えば、メタデータ１４８は、疑わしいオブジェクト１４７を所望のタイミング、所望の期間、および所望の順序の少なくとも一つで処理するＶＭ１７０1〜１７０Ｍの操作性を構成するために、ソフトウェアイメージ（アプリケーション）が存在する場合にどのソフトウェアイメージが記憶装置１５１からフェッチされてＯＳに加えられるかを判断するために使用される。加えて、本発明の一特徴として、疑わしいオブジェクト１４７に関連付けられたメタデータ１４８が、プロファイルセレクタ１８４によって使用されうる。プロファイルセレクタ１４８は、ＶＭ自体（ＶＭ１７０1など）か後述する仮想マシンモニタ（ＶＭＭ）１７２に実装されている。プロファイルセレクタ１４８は、少なくとも一つのＶＭ１７０1〜１７０Ｍ内における疑わしいオブジェクト１４７のデトネートを支援するために、疑わしいオブジェクト１４７に対するシミュレーテッドユーザインタラクションを制御するアクションプロファイル１８８（少なくとも一つ）を選択する。
【００３７】
図示されてはいないものの、実施形態によっては、インターフェース１３６が第一ＭＤＳ１１０1に含まれうる。別の実施形態においては、インターフェース１３６は、通信経路における中間装置（ファイヤウォール、ルータ、スイッチなどのネットワーク電子装置など）に内蔵されうる。あるいは、インターフェース１３６は、スタンドアロンなコンポーネント（適当な市販のネットワークタップなど）でありうる。
【００３８】
図１に示されるように、第一ＭＤＳ１１０1は、通信インターフェース１４０、静的分析エンジン１４５、動的分析エンジン１６０、分類エンジン１９０、および報告エンジン１９５を備えている。通信インターフェース１４０は、インターフェース１３６からオブジェクトを受け付け、当該オブジェクトを、必要に応じて静的分析エンジン１４５が分析を行ないうるフォーマットに変換する。当該変換は、当該オブジェクトの圧縮、当該オブジェクトの逆コンパイル、当該オブジェクトに関連付けられた特定データの抽出、および当該抽出されたデータのエミュレーション（Javascript（商標）のように）の少なくとも一つを伴いうる。実施形態によっては、通信インターフェース１４０は、インターフェース１３６に内蔵されうる。
【００３９】
引き続き図１を参照する。静的分析エンジン１４５は、少なくとも一つのコントローラを（少なくとも一つのプロセッサのような処理回路など）を含みうる。当該コントローラは、静的分析ロジック１５２、メタデータ抽出１５４、およびオブジェクト種判断ロジック１５６を、マジックナンバーデータベース１５８とデータストア１５９の少なくとも一方にアクセスするために備えている。データストア１５９は、分析済みオブジェクト１４７と抽出済みメタデータ１４８の少なくとも一方を保存するために使用されうる。保存は、データ分析エンジン１６０への送信前に、オブジェクト１４７が「疑わしい」か、および更なる分析が必要かを判断する際に行なわれる。当該更なる分析は、当該オブジェクト１４７が悪意ある攻撃に関連付けられているかを判断するためのものである。
【００４０】
引き続き図１を参照する。静的分析ロジック１５２は、少なくとも一つのソフトウェアモジュールを含んでいる。当該ソフトウェアモジュールは、上記少なくとも一つのコントローラによって実行されると、疑わしいオブジェクト１４７に関連付けられた特性を分析する。本実施形態においては、当該疑わしいオブジェクト１４７は、ネットワークトラフィック（あるいはダウンロード済みデータ）の一部でありうる。静的分析は、オブジェクトを実行することなく当該オブジェクトに対して行なわれる少なくとも一つのチェックを含みうる。例えば、当該チェックは（１）ヒューリスティックか（２）決定論的ルールベース判断を含みうる。（１）は、オブジェクト１４７に適用された規則や方針に基づき、当該オブジェクト１４７における少なくとも一つの部分が既知のエクスプロイトに関連付けられた異常な特性あるいは疑わしい特性（既知のエクスプロイトに関連付けられた特定のＵＲＬ、特定のソースアドレスや宛先アドレスなど）と関連付けられているかを判断しうる。（２）は、ブラックリストかホワイトリストのチェックを含みうる。
【００４１】
メタデータ抽出ロジック１５４は、疑わしいオブジェクト１４７に含まれているか関連付けられているメタデータ１４８の抽出と生成の少なくとも一方を担う。メタデータ１４８の抽出と生成の少なくとも一方は、当該オブジェクト１４７が異常な特性あるいは疑わしい特性を備えていると静的分析ロジック１５２によって判断された後に行なわれうる。あるいは、メタデータ抽出ロジック１５４は、メタデータ１４８の抽出と生成の少なくとも一方を、静的分析ロジック１５２により行なわれる動作に先立って、あるいは同時に行ないうる。
【００４２】
メタデータ１４８は、疑わしいオブジェクト１４７に関連付けられたものとして特定および保存されうる。メタデータ１４８の例としては、オブジェクト１４７の種別を特定する情報が挙げられるが、これらに限られるものではない。例えば、マイクロソフト（登録商標）エクセルのスプレッドシートなどの特定の文書は、実行可能でない形態でありうるオブジェクトの種別の一例である。このメタデータ１４８は、シミュレーテッドユーザインタラクションを制御するための少なくとも一つの特定のアクションプロファイルを選択するために、その後プロファイルセレクタ１４８によって使用されうる。当該ユーザインタラクションは、後述するように、仮想ランタイム環境１６４における少なくとも一つのＶＭ１７０1〜１７０Ｍ内においてオブジェクト１４７の分析中に行なわれるものである。
【００４３】
オブジェクト１４７のソースに関連付けられたメタデータに加えてあるいは代えて、他のメタデータがメタデータ抽出ロジック１５４によって取得されうる。例えば、他のメタデータは、特定のアクションプロファイルを選択するためにプロファイルセレクタ１８４によって使用されうるものでありうる。当該メタデータは、以下に列挙されるものの少なくとも一つを含みうるが、これらに限られない。
（１）オブジェクトが暗号化されているかと暗号化スキームの種別の少なくとも一方を特定するデータ
（２）オブジェクトが埋め込みオブジェクトであるかを特定するデータ
（３）オブジェクトを処理するために必要なアプリケーションを特定するデータ
（４）オブジェクトを含むネットワークコンテンツの提供に使用される送信プロトコルを特定するデータ
これらに加えて当該オブジェクトに関連する可能性のある特徴が後の使用のために保存される。
【００４４】
オブジェクト種判断ロジック１５６は、抽出済みメタデータからオブジェクトの種別を判断しうる。例えば、オブジェクト種判断ロジック１５６は、オブジェクトの種別を特定しうるオブジェクト１４７内のコンテンツを分析しうる。例えば、オブジェクト種判断ロジック１５６は、オブジェクト１４７の先頭にある所定数のバイト（当該オブジェクトのマジックナンバーと称されることがある）を特定し、当該バイトと関連付けられた値をマジックナンバーデータベース１５８内に記憶された値と比較しうる。比較が成功すると、オブジェクト種判断ロジック１５６によってオブジェクトの種別が判断される。
【００４５】
例えば、一実施形態として、オブジェクト１４７における第一の数バイトは、場合により、オブジェクトの種別を判断するか、少なくとも使用中の通信プロトコルに基づいて推測するために使用されうる。一例として、オブジェクト種判断ロジック１５６は、オブジェクト１４７が１６進文字列値「４Ｄ５Ａ」（当該オブジェクト１４７が実行可能であることを特定）で始まっているかを、マジックナンバーデータベース１５８内のエントリと比較して判断しうる。同様に、オブジェクト種判断ロジック１５６は、オブジェクト１４７が１６進文字列値「２５  ５０  ４４  ４６」（当該オブジェクト１４７がＰＤＦ文書であることを特定）で始まっているかを、マジックナンバーデータベース１５８内のエントリと比較して判断しうる。
【００４６】
上述のように、静的分析エンジン１４５は、疑わしいオブジェクト１４７をメタデータ１４８（オブジェクト種判断ロジック１５６によって生成されたオブジェクトの種別情報を含む）とともに動的分析エンジン１６０内の仮想ランタイム環境１６４へ転送する。静的分析の結果は、オブジェクトの「疑わしさ」のレベル（相対的な疑わしさスコアなどにより定められる）に基づく仮想ランタイム環境１６４内における当該オブジェクトの処理順序を定めるために使用されうる。静的分析エンジン１４５は、安全なオブジェクトをさらなる分析へ通過させうる。一実施形態においては、静的分析に基づいて疑いと悪意の少なくとも一方がオブジェクト１４７に見られない場合、静的分析エンジン１４５は、単に当該オブジェクト１４７を悪意なきものとみなし、当該オブジェクト１４７をさらなる分析に供しないようにしうる。しかしながら、オブジェクト１４７が疑わしい特性を含むとの判断、疑わしいオブジェクト１４７に関連付けられたメタデータ１４８の抽出、およびオブジェクトの種別の判断がなされるにあたり、静的分析エンジン１４５は、ＶＭベースの動作環境におけるより徹底した分析のために、当該疑わしいオブジェクト１４７をメタデータ１４８とともに動的分析エンジン１６０へ通過させうる。静的分析エンジン１４５の少なくとも一部は、進入するコンテンツに含まれたオブジェクトを取得および検査するように、インターフェース１３６に内蔵されてもよいし、他の装置に内蔵されてもよい。他の装置の例としては、ファイヤウォールやネットワーク装置が挙げられる。ネットワーク装置の例としては、保護されるネットワークの周辺に配置されたネットワーク装置が挙げられる。
【００４７】
動的分析エンジン１６０は、処理ロジック１６２、仮想ランタイム環境１６４、データストア１６６、およびスコア判断ロジック１６８の少なくとも一つを含みうる。一実施形態においては、処理ロジック１６２は、動的分析エンジン１６０内のコンポーネント間における相互動作性を制御するように構成されうる。例えば、処理ロジック１６２は、データストア１６６へ通されたオブジェクトとその対応メタデータのバッファリングと、当該オブジェクトおよび対応メタデータのＶＭ１７０1〜１７０Mへの直接的ローディングあるいはＶＭ１７０1〜１７０Mへの供給のための仮想マシンモニタ（ＶＭＭ）１７２へのローディングとを制御しうる。
【００４８】
仮想ランタイム環境１６４は、ＶＭＭ１７２により管理される少なくとも一つのＶＭ１７０1〜１７０Mを通じたオブジェクト１４７の仮想処理を提供する。ＶＭＭ１７２は、少なくとも一つのＶＭ１７０1〜１７０Mの再構成を管理する。当該再構成は、外部から提供される構成更新（ＯＳやソフトウェアインスタンスなどのソフトウェアプロファイル、アクションプロファイルなど）に基づく仮想分析に先立って行なわれる。図示されるように、ＶＭＭ１７２は、アクションプロファイル更新ロジック１７４を備えている。アクションプロファイル更新ロジック１７４は、規則、パラメータ、命令、および他データ（ＶＭ１７０1でホストされる少なくとも一つのアクションプロファイル１８８によって維持されるもの）の少なくとも一つの更新を担う。勿論、アクションプロファイル更新ロジック１７４は、他のＶＭ（例えばＶＭ１７０M）やＶＭの外（例えば記憶装置１５１、データストア１６６内、仮想ランタイム環境における不図示のストレージ内）でホストされる少なくとも一つのアクションプロファイル１８８を更新しうる。便宜上ＶＭ１７０1の動作が説明されるが、他のＶＭ１７０2〜１７０Mの少なくとも一部も同様に動作しうる。
【００４９】
図示されるように、ＶＭ１７０1は、オペレーティングシステム（ＯＳ）と、オブジェクト種に応じて、少なくとも一つのアプリケーション１８０ならびに監視ロジック１８１およびユーザインタラクション（ＵＩ）制御ロジック１８２により割り当てられうる（プロビジョンされうる）。監視ロジック１８１は、ＶＭ１７０1でローンチされた際のオブジェクト１４７のランタイム挙動を監視する。ＵＩ制御ロジック１８２は、ＶＭ１７０1にロードされて悪意ある攻撃を開始するために何らかのＵＩを要求する悪意あるオブジェクトをデトネートするために、シミュレーテッドＵＩを提供する。本開示の一実施形態においては、ＵＩ制御ロジック１８２は、複数のコンポーネントを備えている。当該コンポーネントは、（１）プロファイルセレクタ１８４と（２）フレームワーク１８６を含む。
【００５０】
本開示の一実施形態においては、プロファイルセレクタ１８４は、図示のＶＭ１７０1でホストされる少なくとも一つのアクションプロファイル１８８からアクションプロファイルを選択する。この選択の少なくとも一部は、疑わしいオブジェクト１４７に関連付けられたメタデータ１４８に基づきうる。例えば、メタデータ１４８は、オブジェクト１４７のオブジェクトの種別を特定するオブジェクト種判断ロジック１５６によって作成されたデータを含みうる。上述のように、メタデータ１４８は、オブジェクト１４７の処理中に静的分析エンジン１４５によって発見された他のデータ（パスワード保護されたフィールド、オブジェクト１４７に含まれるｅメールメッセージ中のパスワードなど）を含みうる。当該他のデータは、少なくとも一つのアクションプロファイル１８８内の特定のアクションプロファイルを選択するために利用されうる。
【００５１】
図３Ａと図３Ｂに示されるように、ＵＩフレームワーク１８６は、（１）アクチュエーションロジック３４０と（２）複数種のＵＩシミュレーションロジック３５０を備えている。ＵＩフレームワーク１８６内に実装される別のＵＩシミュレーションロジックについては後述する。アクチュエーションロジック３４０は、ＶＭ１７０1を割り当てる（プロビジョニングを行なう）ソフトウェアプロファイルの一部として実装されるソフトウェアコンポーネントであり、疑わしいオブジェクト１４７の「ローンチ」を担う。オブジェクト１４７（実行可能あるいはスクリプトである場合）を起動する処理を開始することによって、あるいはオブジェクト１４７を操作する処理を開始することによって、当該オブジェクトが「ローンチ」されうる。オブジェクト１４７を操作する処理の例としては、アドビ（登録商標）アクロバット（登録商標）リーダアプリケーションを用いてＰＤＦ文書であるオブジェクト１４７を開くこと、マイクロソフト（登録商標）オフィス（登録商標）アプリケーションを用いてエクセル（登録商標）ファイル（.xls）であるオブジェクト１４７を開くこと、などが挙げられる。
【００５２】
オブジェクト１４７をローンチする際、アクチュエーションロジック３４０は、ＵＩシミュレーションロジック３５０にローンチされたオブジェクトを通知する。これに応じて、ＵＩシミュレーションロジック３５０内のロジックは、選択されたアクションプロファイルとともにインスタンス化されるか、選択されたアクションプロファイルにアクセスするためにインスタンス化される。当該選択されたアクションプロファイルは、オブジェクト１４７の分析中にＵＩフレームワーク１８６によって行なわれるシミュレーテッドＵＩを制御する。シミュレーテッドＵＩは、オブジェクト１４７の特定の動作状態中における特定のアクションをシミュレートするシグナリングを含みうる。当該特定のアクションは、標的にされたエンドポイント（クライアント装置）においてオブジェクト１４７が実行された場合に予期されるものである。当該特定のアクションは、順序依存型（シーケンス化されたもの）でもよいし、時間依存型（特定のタイミングで発生、先のアクション後の特定のタイミングで発生など）でもよい。
【００５３】
図１に戻る。監視ロジック１８１とＵＩフレームワークログ１７６は、オブジェクト１４７がＶＭ１７０1でローンチされている間に当該オブジェクト１４７による入力要求を記録するために協働する。監視ロジック１８１とＵＩフレームワークログ１７６は、当該入力要求に応じて疑わしいオブジェクト１４７に対して提供される「アクティブ」なシミュレーテッドＵＩ、疑わしいオブジェクト１４７による挙動に応ずるものではない「パッシブ」なシミュレーテッドＵＩ、およびシミュレーテッドデバイス制御インタラクションの少なくとも一つの監視と記録も行なう。ＵＩフレームワークログ１７６によって記録されたデータは、スコア判断ロジック１６８によって参照されうる。スコア判断ロジック１６８は、確率（スコア）を判断する。当該スコアのの少なくとも一部は、（１）疑わしいオブジェクト１４７が悪意ある攻撃に関連付けられているか、および（２）当該悪意ある攻撃の深刻度を判断するために、分類エンジン１９０によって使用される。ＵＩフレームワークログ１７６の内容は、記録を目的として、少なくとも一つの特定種別のＵＩに応じてデトネートされた複数の悪意あるオブジェクトを相互に関連付ける能力も提供しうる。
【００５４】
例えば、差し出されたオブジェクト１４７が悪意ありと分類された場合、ＵＩフレームワークログ１７６は、どのシミュレーションロジックがデトネーションを成功させたのかを理解するための情報を提供できる。換言すると、ＵＩフレームワーク１７６内のデータに基づいて、アクションプロファイルとＵＩフレームワークの有効性に係る判断がなされうる。加えて、ＵＩフレームワークロジック内のデータを使用することにより、デトネーションに必要な少なくとも一つのＵＩに基づいて、マルウェアが分類されうる。この分類と少なくとも一つのＵＩの詳細は、脅威情報（マルウェアのフォレンジック分析、インシデントレスポンスなど）を増補しうる。同様に、オブジェクト１４７が疑わしいと分類され分類された場合、ＵＩフレームワークロジック１７６は、ＵＩフレームワーク１８６が提供するＵＩセットの不足を理解するための情報（例えば、ＵＩフレームワーク１８６に求められるであろう新機能や、選択されたアクションプロファイルに必要とされうる新たな規則やパラメータ）を提供する。他方、ＵＩフレームワークによって実行されるＵＩがオブジェクトのデトネーションを妨げる場合、以降のアクションプロファイルの更新が是正されうる。
【００５５】
図１に示されるように、報告エンジン１９５は、分類エンジン１９０から伝送媒体１８９を介して情報を受け取り、疑わしいオブジェクト１４７が悪意ある攻撃に関連付けられてＵＩ依存であるネットワークアドミニストレータを特定するアラートを生成するように構成されうる。アラートの例としては、様々な種類のメッセージ（テキストメッセージとｅメールメッセージを含む）、表示画像、有線伝送媒体または無線伝送媒体を介するその他の情報などが挙げられる。
【００５６】
図１は専用のネットワーク装置としてＭＤＳ１１０1を例示しており、図１に係る記載は、ネットワークインターフェース１３６を通じて受け付けられたオブジェクトに基づく例を説明しているが、ＭＤＳ１１０1は、クライアント装置１３２などのエンドポイントに実装されうる。そのような実施形態においては、オブジェクトの実際の実行に先立ち、ＭＤＳ１１０1は、サンドボックス化された環境に当該オブジェクトをローンチし、シミュレーテッドＵＩを行ないうる。当該シミュレーテッドＵＩは、シミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御を含みうる。オブジェクト１４７が悪意のない挙動を示せば、エンドポイント１３２は、当該オブジェクトの利用を許可される。また、ＭＤＳ１１０1は、クラウドコンピューティングサービス１３８内で実現されうる。その場合、上述のシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御の少なくとも一部は、当該サービス内で行なわれうる。
【００５７】
図２を参照する。ネットワーク２００内で用いられるＭＤＳ１１０1の第二実施形態のブロック図が示されている。本実施形態においては、動的分析エンジン１６０は、処理ロジック１６２、仮想ランタイム環境１６４、データストア１６６、スコア判断ロジック１６８の少なくとも一つを含む。しかしながら、少なくとも一つのＶＭ１７０1〜１７０Mは、図１のように少なくとも一つのアクションプロファイル１８８が割り当てられていない。むしろ、少なくとも一つのアクションプロファイル１８８は、少なくとも一つのＶＭ１７０1〜１７０Mの外にホストされている。さらに、プロファイルセレクタ１８４は、ＶＭＭ１７２の一部として装備されている。この実施態様により、プロファイルセレクタ１８４は、ＶＭ１７０1内にＵＩフレームワークコンポーネント１８６を割り当てできる。場合により、プロファイルセレクタ１８４は、他の複数のＶＭ（例えばＶＭ１７０M）に複数のＵＩフレームコンポーネントを割り当てできる。
【００５８】
３．ＵＩ制御ロジックの動作フロー
図３Ａと図３Ｂを参照する。仮想ランタイム環境１６４内におけるＵＩ制御ロジック１８２の動作フローのブロック図の例が示されている。具体的には、ＶＭ１７０1内で動作するＵＩ制御ロジック１８２の一実施形態が例示されている。ＵＩ制御ロジック１８２は、（１）プロファイルセレクタ１８４と、（２）ＵＩフレームワーク１８６を備えている。図示されているように、ＵＩフレームワーク１８６は、（ａ）アクチュエーションロジック３４０と、（ｂ）シミュレーションロジック３５０を備えている。シミュレーションロジック３５０は、（１）アクティブＵＩシミュレーションロジック３６０、（２）パッシブＵＩシミュレーションロジック３７０、および（３）デバイス制御シミュレーションロジック３８０を含んでいる。
【００５９】
本開示の一実施形態においては、オブジェクト１４７とメタデータ１４８は、ＶＭ１７０1に提供される。メタデータ１４８に基づき、プロファイルセレクタ１８４は、少なくとも一つのアクションプロファイル１８８からアクションプロファイルを選択する（これを「選択されたアクションプロファイル３００1」とする）。すなわち、複数のアクションプロファイル３００1〜３００R（Ｒは２以上）から、仮想ランタイム環境内のＶＭ１７０1の内部あるいは外部にホストされうるアクションプロファイルが選択される。この選択は、オブジェクトの種別を特定しているメタデータの少なくとも一部に基づきうる。オブジェクトの種別に加えて、オブジェクト１４７をよりよく特定し、分析下にある特定のオブジェクトに最も適したアクションプロファイル３００1が選択されるように、他のメタデータがプロファイルセレクタ１８４によって用いられうることは勿論である。使用されうる他のメタデータの例としては、以下に列挙されるものの少なくとも一つが含まれるが、これらに限られない。
（１）オブジェクト１４７が暗号化されているかと暗号化スキームの種別の少なくとも一方を特定するデータ
（２）オブジェクト１４７が埋め込みオブジェクトであるかと埋め込みオブジェクトを含むものであるかの少なくとも一方を特定するデータ
（３）オブジェクト１４７がパスワード保護されたフィールドと当該パスワードに関連付けられた情報を含んでいるか特定するデータ
（４）オブジェクト１４７を処理するために必要なアプリケーションを特定するデータ
（５）オブジェクト１４７を含むネットワークコンテンツの提供に使用される送信プロトコルを特定するデータ
【００６０】
本開示の一実施形態においては、各「アクションプロファイル」は、当該アクションプロファイルについて予め定められた規則セットに基づいてＵＩ機能を実行する命令や指令の集合である。結果として、選択されたアクションプロファイル３００1は、オブジェクト１４７の分析中におけるＵＩ機能の制御に使用されるように構成される。例えば、オブジェクト１４７がマイクロソフト（登録商標）エクセル（登録商標）のスプレッドシートである場合、選択されたアクションプロファイル３００1は、ＰＤＦ文書の分析中におけるＵＩ機能（文書ページのスクロールなど）を制御する他のアクションプロファイル３００Rとは異なるＵＩ機能（タブの選択、特定のセルへのテキストの追加、特定行数のセルのスクロールダウンなど）を実行しうる。
【００６１】
第一実施形態においては、図３Ａに示されるように、アクションプロファイルの選択に際して、選択されたアクションプロファイル３００1を特定するために、プロファイルセレクタ１８４がシグナリング３１０を提供する。選択されたアクションプロファイル３００1は、予め記憶された少なくとも一つのアクションプロファイル１８８の一部である。これに応じて、本開示の一実施形態においては、選択されたアクションプロファイル３００1のコンテンツ３２０が、アクティブＵＩシミュレーションロジック３６０、パッシブＵＩシミュレーションロジック３７０、およびデバイス制御シミュレーションロジック３８０によって使用されるために、シミュレーションロジック３５０へ送られうる。第二実施形態においては、図３Ｂに示されるように、アクションプロファイル３００1の選択に際して、プロファイルセレクタ１８４は、選択されたアクションプロファイル３００1の識別子３３０を、シミュレーションロジック３５０（アクティブＵＩシミュレーションロジック３６０、パッシブＵＩシミュレーションロジック３７０、およびデバイス制御シミュレーションロジック３８０）へ送る。これにより、シミュレーションロジック３５０は、選択されたアクションプロファイル３００1における情報３３５（命令、指令、規則、パラメータの少なくとも一つ）のポーリングと検索が可能とされる。
【００６２】
図示されていないが、特定のオブジェクト種と関連付けられたアドレス情報（ポインタ、メモリ格納先など）がアクチュエーションロジック３４０に提供されてもよい。当該アドレス情報は、特定のオブジェクト種をローンチするのに適した動作を行なうための一連の命令や指令にアクセスするために使用されうる。
【００６３】
図３Ａと図３Ｂの双方を参照する。ＶＭ１７０1をプロビジョニングするソフトウェアプロファイルの一部として実装されたアクチュエーションロジック３４０は、オブジェクト１４７のローンチを担う。アクチュエーションロジック３４０の具体的な実装態様は、オブジェクトの種別に応じて変化しうる。例えば、オブジェクト１４７がマイクロソフト（登録商標）ワード（登録商標）の文書やＰＤＦ文書などの文書型である場合、アクチュエーションロジック３４０は、オブジェクト１４７のローンチ（この場合はファイルを開くこと）、あるいはウインドウズ７（登録商標）のオフィス（登録商標）２０１３とオフィス（登録商標）２０１０などのようにバージョンが異なるアプリケーションやＯＳによるオブジェクト１４７の同時ローンチを支援するようにカスタマイズされたロジックでありうる。あるいは、オブジェクト１４７が実行可能である場合、アクチュエーションロジック３４０は、ファイルシステム格納先へオブジェクト１４７をコピーしてからオブジェクト１４７を処理するＯＳ機能（CreateProcess()など）を呼び出すソフトウェアモジュール（スクリプトなど）でありうる。
【００６４】
オブジェクト１４７のローンチに際し、アクチュエーションロジック３４０は、ローンチ通知３４５をシミュレーションロジック３５０（すなわちアクティブＵＩシミュレーションロジック３６０、パッシブＵＩシミュレーションロジック３７０、およびデバイス制御シミュレーションロジック３８０）へ提供する。一実施形態においては、ローンチ通知３４５は、シミュレーションロジック３５０にデータ３４７のポーリングを行なわせうる。一実施形態においては、データ３４７は、（１）オブジェクト１４７の識別子、（２）オブジェクト１４７のローンチに使用されるアクチュエーションロジック（特定のソフトウェアモジュールなど）の種別に係る識別子、および（３）オブジェクト１４７がローンチされたタイミングの少なくとも一つを含みうる。「プッシュ」型の通信スキームにおいては、データ３４７がローンチ通知３４５の一部として提供されうることは勿論である。
【００６５】
本実施形態においては、オブジェクト１４７の識別子とアクチュエーションロジック３４０の識別子の少なくとも一方が、正しいアクションプロファイル３００1が使用のためにオブジェクト１４７の処理中における正しいタイミングでシミュレーションロジック３５０へ送られたかを確認するために使用されうる。ローンチのタイミングは、アクティブＵＩシミュレーションロジック３６０、パッシブＵＩシミュレーションロジック３７０、およびデバイス制御シミュレーションロジック３８０同士の同期をとるために使用されうる。また、ローンチのタイミングは、選択されたアクションプロファイル３００1に基づいて、パッシブＵＩシミュレーションロジック３７０がタイミングベースのシミュレーテッドヒューマンインタラクションを行なう際とデバイス制御シミュレーションロジック３８０がタイミングベースのシミュレーテッドデバイス制御インタラクションを行なう際の少なくとも一方に使用される基準タイミングを設定する。同期は、図４Ａに示されるように、選択されたアクションプロファイル３００1に基づいてパッシブＵＩシミュレーションロジック３７０とデバイス制御ロジック３８０により行なわれるアクションに特に関連し、インテリジェンスと予期可能性をＵＩに加える。したがって、アクティブＵＩシミュレーションロジック３６０、パッシブＵＩシミュレーションロジック３７０、およびデバイス制御シミュレーションロジック３８０の大半または全ては、同じ（あるいは同期された）タイミング回路（リアルタイムクロック、カウンタなど）と通信している。
【００６６】
図３Ａと図３Ｂにさらに示されるように、アクティブＵＩシミュレーションロジック３６０、パッシブＵＩシミュレーションロジック３７０、およびデバイス制御シミュレーションロジック３８０は、選択されたアクションプロファイル３００1内のコンテンツにアクセスするためにインスタンス化されており、オブジェクト１４７の分析中にＵＩフレームワーク１８６によって行なわれるシミュレーテッドヒューマンインタラクションとデバイス制御インタラクションを制御する。選択されたアクションプロファイル３００1によって設定された規則に基づき、シミュレーションロジック３５０は、特定のアクション（予期されるユーザインターフェースインタラクションや起動方法など）を当該アクションが予期される特定の動作状態（所定のシーケンスや順序、所定のタイミング、所定の期間内など）の間に行なう。なお、順次行なわれると説明したが、複数のアクションが同時に（少なくとも一部が時間的に重複して）行なわれてもよい。
【００６７】
ＵＩフレームワーク１８６の一部として動作しているとき、アクティブＵＩシミュレーションロジック３６０は、「アクティブ」なＵＩを要求するオブジェクト１４７によって開始される入力要求（パスワード要求、ラジオボタンやテキスト入力を選択するためのダイアログやテキストボックスを表示させようとすることなど）を検出するように構成された第一種のシミュレーテッドＵＩである。これに応じて、選択されたアクションプロファイル３００1のコンテンツに基づき、アクティブＵＩシミュレーションロジック３６０は、応答（場合によっては要求されたＵＩをシミュレートする応答の種別も）を提供するかを判断する。例えば、選択されたアクションプロファイル３００1は、ローンチされたオブジェクト１４７によって開始された入力要求に応じたヒューマンインタラクションをシミュレートするシグナリングを、アクティブＵＩシミュレーションロジック３６０に提供させうる。例えば、当該シグナリングは、継続前の中止を要求するためにダイアログボックスを閉じるユーザ、あるいはダイアログボックスを閉じる特定のラジオボタンを選択し、別操作用のダイアログボックスを開くユーザをシミュレートしうる。そのようなシグナリングは、ヒューマンインタラクションをさらにシミュレートするために、所定の期間、あるいはランダムな期間だけ意図的に遅延されうる。後続の入力要求に対する少なくとも一つのこのような応答は、そのようなシミュレーテッドＵＩによってのみ起動されうる悪意ある攻撃をオブジェクト１４７が開始するトリガとなりうる。
【００６８】
パッシブＵＩシミュレーションロジック３７０は、「パッシブ」なシミュレーテッドヒューマンインタラクションを提供する第二種のシミュレーテッドＵＩである。「パッシブ」なヒューマンインタラクションは、選択されたアクションプロファイルに基づくものであるが、ローンチされたオブジェクト１４７による入力要求（ユーザのアクションを要求するローンチされたオブジェクトの挙動など）に応じるものではない。場合によっては、当該シミュレーテッドヒューマンインタラクションは、オブジェクトによる所定レベルの不活動性に応じる。
【００６９】
当該「パッシブ」なシミュレーテッドヒューマンインタラクションは、プロンプトなしにユーザによってオブジェクトに対して行なわれうるあらゆるシミュレーテッド動作を含みうる。当該動作の例としては、マイクロソフト（登録商標）オフィスワード文書（オブジェクト）の特定ページへの移動、マイクロソフト（登録商標）オフィスエクセル文書（オブジェクト）の特定タブへの切り替えなどが挙げられる。一例として、オブジェクト型マイクロソフト（登録商標）オフィスエクセル文書を有する場合、以下のことが（機械学習技術などを通じて）経験的に知られている。エクスプロイトコードや悪意あるコードがマイクロソフト（登録商標）オフィスエクセル文書内に配置されると、選択されたアクションプロファイルによってパッシブＵＩシミュレーションロジック３７０にヒューマンインタラクションをシミュレートさせる命令に繋がりうる。シミュレーションは、アクチュエーションロジックが当該オブジェクトをローンチした後の所定のタイミングでマイクロソフト（登録商標）オフィスエクセル文書内の第二シートに切り替えることによって行なわれる。
【００７０】
デバイス制御シミュレーションロジック３８０は、疑わしいオブジェクト１４７の仮想分析中に行なわれうる第三種のシミュレーテッドＵＩである。デバイス制御シミュレーションロジック３８０は、オブジェクトの種別に依存しないデバイス制御インタラクションをシミュレートする。例えば、デバイス制御シミュレーションロジック３８０は、悪意ある攻撃を行なう前にユーザインタラクションを待つ悪意あるオブジェクトをデトネートするために、選択されたアクションプロファイル３００1から特定のデバイス制御インタラクション（特定のキーストロークや特定のマウスの動きなど）をシミュレートする命令群を受け取りうる。
【００７１】
加えて、ＵＩフレームワークログ１７６は、シミュレーションロジック３５０によって行なわれた活動を記録する。上述のように、ＵＩフレームワークログ１７６は、あらゆる疑わしい活動や悪意ある活動だけでなく、あらゆる行なわれたアクションあるいは行なわれなかったアクション、あらゆる要求された入力、および全てのアクションと要求された入力のタイムスタンプを記録しうる。動的分析の完了に際し、ＵＩフレームワークログ１７６に記録された情報は、スコア判断ロジック１６８と分類エンジン１９０の少なくとも一方に対してアクセス可能でありうる。
【００７２】
少なくとも一つのアクションプロファイル１８８は、図２のネットワーク１２５を介してＭＤＳ１１０1へ送られうる構成ファイルを通じて更新されうる。例えば、アクションプロファイルの更新は、管理システム２２０により、ネットワーク１２５を介し、機械学習エンジン１２２を経由して提供されうる。機械学習エンジン１２２は、ＵＩフレームワークログ１７６内のコンテンツに基づいて報告エンジン１９５によって報告された悪意あるオブジェクトに関連付けられた情報を受け取る。加えて、機械学習エンジン１２２は、他のＭＤＳ（ＭＤＳ１１０2やＭＤＳ１１０3など）によって報告されたＵＩ依存型の悪意あるオブジェクトに関連付けられた情報を受け取る。機械学習エンジン１２２は、アクションプロファイルの更新を進展させるために、この情報および第三者ソースからの情報を利用する。アクションプロファイルの更新は、改善されたマルウェア検出を提供するための規則の変更、新たな指令や命令、およびパラメータの変化の少なくとも一つを含みうる。マルウェア検出の改善は、オブジェクト型マルウェアと新たに特定されたマルウェアの少なくとも一方を標的とすることにより行なわれる。当該マルウェアは、エクスプロイト、疑わしいコード、および悪意あるコードの少なくとも一つや、ネットワークやネットワーク装置に対する悪意ある攻撃の遂行を支援する他のデータを含む。
【００７３】
あるいは、アクションプロファイルの更新は、ネットワーク１０５を通じて（例えばクラウド演算サービス２２８を使用するダウンロードと、フラッシュストレージなどの記憶装置の使用を通じた手動インストールの少なくとも一方を通じて）提供されうる。
【００７４】
４．シミュレーションロジックにより行なわれるユーザインタラクション
図４Ａを参照する。マルウェアを検出するためにパッシブＵＩシミュレーションロジックとデバイス制御シミュレーションロジックにより行なわれる方法例のフローチャートが示されている。図４Ａにおける各ブロックは、選択されたアクションプロファイルに基づいて実行される動作を表している。当該動作は、標的とされたユーザインタラクションがシミュレーテッドものを提供するために、仮想ランタイム環境内のオブジェクト１４７の分析中に実行される。これらの動作は、ＭＤＳ１００1によって、自動的に（ヒューマンインタラクションなしに）悪意あるオブジェクトを検出するために実行される。当該オブジェクトは、ヒューマンインタラクションに応じて悪意ある攻撃を開始するものである。本実施形態においては、選択されたアクションプロファイルにより、当該オブジェクトからの入力要求に応じる「アクティブ」なシミュレーテッドヒューマンインタラクションに高い優先度が付与される一方、「パッシブ」なシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションには低い優先度が付与される。
【００７５】
アクチュエーションロジックによってオブジェクトがローンチされたかについて第一の判断がなされる（ブロック４００）。ローンチされていないと判断された場合、ＵＩフレームワークは、アクチュエーションロジックからローンチ通知を受け取らない。よって、シミュレーションロジックは、待機状態のままである。しかしながら、オブジェクトがローンチされると、シミュレーションロジックは、アクチュエーションロジックからローンチ通知を受け取る。これにより、シミュレーションロジックに選択されたアクションプロファイルを参照させる。分析中に得られたオブジェクトの挙動に基づき、ＵＩが現在要求されているかについて第一の判断がなされる（ブロック４０５）。換言すると、タイムリーかつ「アクティブ」なシミュレーテッドヒューマンインタラクションが必要である入力要求をオブジェクト処理が開始したかについて判断がなされる。この判断は、監視システムコールと他のシグナリングによって行なわれうる。当該シグナリングは、ＵＩが求められうるダイアログボックス、テキストボックス、ウインドウなどの知覚可能な要素の生成に関連する。
【００７６】
選択されたアクションプロファイルによって規定された規則に基づいて、パッシブＵＩシミュレーションロジックが「パッシブ」なシミュレーテッドヒューマンインタラクションを実行中である場合と、デバイス制御シミュレーションロジックがシミュレーテッドデバイス制御インタラクションを実行中である場合の少なくとも一方において、シミュレーテッド動作は、所定期間一時停止される。当該所定期間は、選択されたアクションプロファイルにおいて有効とされている規則により設定されうる。当該規則は、特定種の「アクティブ」なシミュレーテッドヒューマンインタラクションを完了するのに必要な時間の長さを特定している。さらに、「一時停止」中のシミュレーテッド動作は、タイムスタンプされ、アクティブＵＩシミュレーションロジックがそのシミュレーテッドヒューマンインタラクションを完了した後に行なわれる処理のための待ち行列に配置される。選択されたアクションプロファイルは、アクティブＵＩシミュレーションロジックに特定の「アクティブ」なシミュレーテッドヒューマンインタラクションの実行、およびＵＩフレームワークログへのアクティビティの記憶を実行させる。その後、シミュレーションロジックは、オブジェクトの分析が完了したかを判断する。完了していないと判断された場合、当該オブジェクトがアクティブにＵＩを要求しているかの判断に戻る（ブロック４１０〜４２５）。
【００７７】
アクティブなＵＩが今回必要でない場合、「一時停止」中のパッシブなシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションが存在するかの判断がなされる（ブロック４０５と４３０）。この判断は、待ち行列の分析と所定の待ち時間が経過したか（例えば、現在時刻とタイムスタンプの差が所定時間以上であるか）の判断の少なくとも一方によって遂行されうる。当該待ち時間が経過したと判断された場合、一時停止中のシミュレーテッド動作が再開される（ブロック４３５）。しかしながら、一時停止中のパッシブなシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションの少なくとも一方が存在しない場合、選択されたアクションプロファイルに基づいて開始されるべき「パッシブ」なシミュレーテッドヒューマンインタラクションが存在するかの判断がなされる（ブロック４４０）。当該ヒューマンインタラクションが存在すると判断された場合、当該選択されたアクションプロファイルは、特定の「パッシブ」なシミュレーテッドヒューマンインタラクションの実行とＵＩフレームワークログへのアクティビティの保存を、パッシブＵＩシミュレーションロジックに行なわせる（ブロック４４５）。
【００７８】
それ迄に所定レベルのシミュレーテッド活動が存在する場合、シミュレーションロジックは、オブジェクトの分析が完了したかの判断へ戻りうる。完了していないと判断された場合、当該オブジェクトがアクティブにＵＩを要求しているかの判断に戻る（ブロック４５０、４２０、および４０５）。所定レベルのシミュレーテッドＵＩアクティビティは、様々な手法により測定されうる。例えば、所定レベルのシミュレーテッドＵＩアクティビティは、オブジェクトがローンチしてからのランタイムにおける特定割合だけシミュレーテッドＵＩが生じたかに基づいて判断されうる。あるいは、「アクティブ」なシミュレーテッドヒューマンインタラクションの数、またはオブジェクトがローンチされてから完了されたアクティブまたはパッシブなシミュレーテッドヒューマンインタラクションの数を判断する処理が行なわれうる。
【００７９】
所定レベルのシミュレーテッドＵＩアクティビティが該当しない場合、デバイス制御シミュレーションロジックは、どのシミュレーテッドデバイス制御インタラクションが選択されたアクションプロファイルによって要求されたかを判断するために、当該選択されたアクションプロファイルにアクセスする。その後、当該選択されたアクションプロファイルは、そのようなデバイス制御のシミュレーションとＵＩフレームワークログへのアクティビティの保存を、デバイス制御シミュレーションロジックに行なわせる。その後、シミュレーションロジックは、オブジェクトの分析が完了したかの判断へ戻りうる。完了していないと判断された場合、当該オブジェクトがアクティブにＵＩを要求しているかの判断に戻る（ブロック４５０、４２０、および４０５）。
【００８０】
これらの動作により、ＵＩ制御ロジックは、「アクティブ」なシミュレーテッドヒューマンインタラクションの優先度を、「パッシブ」なシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションよりも高くするように構成される。よって、場合によっては、シミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションは、オブジェクトによって開始されたアクティビティへの応答にリソースを割くために、一時的に停止されうる。「パッシブ」なシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションの種別によっては、オブジェクトによる入力要求が検出されても継続しうることは勿論である。これは、シミュレーテッド動作において認識される整合性を維持し、動作におけるプロンプト変更を異常検出する洗練されたマルウェアを避けるために行なわれうる。
【００８１】
図４Ｂを参照する。マルウェアを検出するためにアクティブＵＩシミュレーションロジックにより行なわれる方法例のフローチャートが示されている。前述のように、アクチュエーションロジックによってオブジェクトがローンチされたかについて第一の判断がなされる（ブロック４７０）。ローンチされていないと判断された場合、アクティブＵＩシミュレーションロジックは、待機状態のままである。しかしながら、オブジェクトがローンチされると、アクティブＵＩシミュレーションロジックは、アクチュエーションロジックからローンチ通知を受け取る。これにより、シミュレーションロジックは、疑わしいオブジェクトがある種のアクティブＵＩを現在要求しているかを判断する。当該アクティブＵＩの例としては、オブジェクトがその動作を継続する前に中止を要求するダイアログボックスを開くことが挙げられる（ブロック４７５）。
【００８２】
要求中であると判断されると、アクティブＵＩシミュレーションロジックは、パッシブＵＩシミュレーションロジックとデバイス制御シミュレーションロジックに緊急アクティブＵＩを通知する（ブロック４８０）。図４Ａに示されるように、この通知は、パッシブＵＩシミュレーションロジックとデバイス制御シミュレーションロジックに、現在のあらゆる動作を一時停止するように促す。その後、アクティブＵＩシミュレーションロジックは、選択されたアクションプロファイルに設定された規則に基づいてヒューマンシミュレーション動作を実行し、そのアクティビティをＵＩフレームワークロジックに記憶する（ブロック４８５）。
【００８３】
分析下にある疑わしいオブジェクトが現在アクティブＵＩを要求していないか、応答としてのシミュレーテッドヒューマンインタラクションが提供されているとアクティブＵＩシミュレーションロジックが判断すると、アクティブＵＩシミュレーションロジックは、当該疑わしいオブジェクトの分析が完了したかを判断する。完了していないと判断されると、アクティブＵＩシミュレーションロジックは、要求されたＵＩを待つ次の繰り返しサイクルを開始する（ブロック４９０）。
【００８４】
５．ＭＤＳのソフトウェア展開
図５を参照する。ＭＤＳ１１０1に関連付けられたロジックのブロック図の一例が示されている。ＭＤＳ１１０1は、少なくとも一つのプロセッサ５００を備えている。少なくとも一つのプロセッサ５００は、第一伝送媒体５２０を介して第一通信インターフェースロジック５１０と接続されている。第一通信インターフェースロジック５１０は、図１のネットワークインターフェース１３６との通信接続を提供しうる。加えて、少なくとも一つのプロセッサ５００は、第二伝送媒体５４０を介して第二通信インターフェースロジック５３０と通信可能に接続されうる。第二通信インターフェースロジック５３０は、図１における他のＭＤＳ１１０2〜１１０3および管理システム１２０との通信を提供しうる。
【００８５】
本開示の一実施形態においては、第一通信インターフェースロジック５１０と第二通信インターフェースロジック５３０の少なくとも一方は、有線コネクタ用の少なくとも一つのポートを含む物理的インターフェースとして実現されうる。これに加えてあるいは代えて、第一通信インターフェースロジック５１０と第二通信インターフェースロジック５３０の少なくとも一方は、他のネットワーク装置との無線通信をサポートするための少なくとも一つの無線ユニットとして実現されうる。
【００８６】
少なくとも一つのプロセッサ５００は、さらに不揮発性ストレージ５５０と伝送媒体５６０を介して接続されている。本開示の一実施形態においては、不揮発性ストレージ５５０は、静的分析エンジン１４５、動的分析エンジン１６０、分類エンジン１９０、および報告エンジン１９５と関連付けられたソフトウェアコンポーネントを保存するように構成されうる。図示されているように、静的分析エンジン１４５と関連付けられたソフトウェアコンポーネントは、静的分析ロジック１５２、メタデータ抽出ロジック１５４、およびオブジェクト種判断ロジック１５６の少なくとも一つを含みうる。不揮発性ストレージ５５０は、ＶＭ１７０1〜１７０MとともにＶＭＭ１７２を含む動的分析エンジン１６０と関連付けられたソフトウェアコンポーネントをさらに保存するように構成されうる。ＶＭ１７０1〜１７０Mの少なくとも一部は、ＵＩ制御ロジック１８２でプロビジョンされうる。ＵＩ制御ロジック１８２は、プロファイルセレクタ１８４、ＵＩフレームワーク１８６、およびアクションプロファイル１８８（少なくとも一つ）の少なくとも一つを含みうる。
【００８７】
加えて、不揮発性ストレージ５５０は、マジックナンバーデータベース１５８を含みうる。マジックナンバーデータベース１５８は、上述したオブジェクト種判断ロジック１５６とデータストア１５９、１６４によってアクセスされる。データストア１５９、１６４の少なくとも一部は、データバッファとして動作しうる。
【００８８】
上記の記載においては、特定の実施形態例を参照して本発明を説明した。しかしながら、添付の特許請求の範囲に記載されたより広い発明の趣旨から逸脱しなければ、様々な修正および変更がなされうることは明らかである。
【図１】
0006702983.tif 000002
【図２】
0006702983.tif 000003
【図３Ａ】
0006702983.tif 000004
【図３Ｂ】
0006702983.tif 000005
【図４Ａ】
0006702983.tif 000006
【図４Ｂ】
0006702983.tif 000007
【図５】
0006702983.tif 000008