特許第6702983号(P6702983)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ファイヤアイ インクの特許一覧 ▶ ハリド アジールの特許一覧 ▶ パイタン スシャントの特許一覧 ▶ ヴァシスト サイの特許一覧

特許6702983マルウェア検出のためのインテリジェントかつコンテキストアウェアなユーザインタラクション
<>
  • 特許6702983-マルウェア検出のためのインテリジェントかつコンテキストアウェアなユーザインタラクション 図000002
  • 特許6702983-マルウェア検出のためのインテリジェントかつコンテキストアウェアなユーザインタラクション 図000003
  • 特許6702983-マルウェア検出のためのインテリジェントかつコンテキストアウェアなユーザインタラクション 図000004
  • 特許6702983-マルウェア検出のためのインテリジェントかつコンテキストアウェアなユーザインタラクション 図000005
  • 特許6702983-マルウェア検出のためのインテリジェントかつコンテキストアウェアなユーザインタラクション 図000006
  • 特許6702983-マルウェア検出のためのインテリジェントかつコンテキストアウェアなユーザインタラクション 図000007
  • 特許6702983-マルウェア検出のためのインテリジェントかつコンテキストアウェアなユーザインタラクション 図000008
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6702983
(24)【登録日】2020年5月11日
(45)【発行日】2020年6月3日
(54)【発明の名称】マルウェア検出のためのインテリジェントかつコンテキストアウェアなユーザインタラクション
(51)【国際特許分類】
   G06F 21/56 20130101AFI20200525BHJP
【FI】
   G06F21/56
【請求項の数】7
【全頁数】25
(21)【出願番号】特願2017-535823(P2017-535823)
(86)(22)【出願日】2015年12月21日
(65)【公表番号】特表2018-501583(P2018-501583A)
(43)【公表日】2018年1月18日
(86)【国際出願番号】US2015067082
(87)【国際公開番号】WO2016109283
(87)【国際公開日】20160707
【審査請求日】2018年12月12日
(31)【優先権主張番号】14/586,233
(32)【優先日】2014年12月30日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】513180200
【氏名又は名称】ファイヤアイ インク
(73)【特許権者】
【識別番号】517230770
【氏名又は名称】ハリド アジール
(73)【特許権者】
【識別番号】517230781
【氏名又は名称】パイタン スシャント
(73)【特許権者】
【識別番号】517230792
【氏名又は名称】ヴァシスト サイ
(74)【代理人】
【識別番号】110001416
【氏名又は名称】特許業務法人 信栄特許事務所
(72)【発明者】
【氏名】ハリド アジール
(72)【発明者】
【氏名】パイタン スシャント
(72)【発明者】
【氏名】ヴァシスト サイ
【審査官】 和平 悠希
(56)【参考文献】
【文献】 特開2013−218444(JP,A)
【文献】 特表2008−500653(JP,A)
【文献】 米国特許出願公開第2011/0167494(US,A1)
【文献】 米国特許出願公開第2007/0174915(US,A1)
【文献】 中国特許出願公開第104462979(CN,A)
【文献】 中国特許出願公開第103902907(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/56
(57)【特許請求の範囲】
【請求項1】
ロジックが記憶された非一時的かつコンピュータが読み取り可能な記憶媒体であって、 ネットワーク装置内に実装された少なくとも一方のプロセッサにより前記ロジックが実行されると、
アクチュエーションロジックによって、少なくとも一つの仮想マシンを含む仮想ランタイム環境内にオブジェクトをローンチし、
制御ロジックによって、前記オブジェクトによる少なくとも一つのシミュレーテッドユーザインタラクションを、当該オブジェクトに関連付けられたメタデータに基づいて選択し、
前記少なくとも一つのシミュレーテッドユーザインタラクションは、前記少なくとも一つの仮想マシン内で実行され、
前記メタデータは、前記アクチュエーションロジックによってローンチされた前記オブジェクトに対応するオブジェクト種を特定するデータを含む、
非一時的かつコンピュータが読み取り可能な記憶媒体。
【請求項2】
前記オブジェクトにより第一ユーザインタラクションが要求されているとの判断に応じて、前記少なくとも一つのシミュレーテッドユーザインタラクションの一部である第一のシミュレーテッドヒューマンインタラクションを発生させる、
請求項に記載の非一時的かつコンピュータが読み取り可能な記憶媒体。
【請求項3】
前記第一のシミュレーテッドヒューマンインタラクションは、前記アクチュエーションロジックによって前記少なくとも一つの仮想マシン内にローンチされている前記オブジェクトによる挙動に応答するシミュレーテッドアクションを含み、
前記挙動は、前記オブジェクトがユーザ入力をアクティブに待つ動作状態を表す、
請求項に記載の非一時的かつコンピュータが読み取り可能な記憶媒体。
【請求項4】
オブジェクトを伴うマルウェアを検出する装置であって、
各々が所定の規則セットに基づいてユーザインタラクション(UI)アクティビティを実行する指令または命令の集合である、少なくとも一つのアクションプロファイルと、
前記オブジェクトに関連付けられて当該オブジェクトの種別を特定しているメタデータに基づいて、前記少なくとも一つのアクションプロファイルから一つのアクションプロファイルを選択するプロファイルセレクタと、
仮想マシン内にローンチされた前記オブジェクトに応じて、選択された前記一つのアクションプロファイルにおける前記所定の規則セットに基づき、前記オブジェクトを伴うシミュレーテッドUIを実行するUIフレームワークロジックと、
を備えており、
前記UIフレームワークロジックは、(1)前記オブジェクトをローンチするアクチュエーションロジック、および(2)ローンチされた前記オブジェクトについて行なわれる前記シミュレーテッドUIを動的に制御するシミュレーションロジックを含んでいる、
装置。
【請求項5】
データを含むログを備えており、
ローンチされた前記オブジェクトがマルウェアとして分類されると、前記データは、前記少なくとも一つのアクションプロファイルを更新するために使用され、
前記更新は、ローンチされた前記オブジェクトによる悪意ある挙動の起動を成功させるシミュレーテッドUIのセットを示すことにより行なわれる、
請求項に記載の装置。
【請求項6】
クラウドコンピューティングサービスの一部として実現されるネットワーク装置において実施されるコンピュータ制御された方法であって、
前記ネットワーク装置内のアクチュエーションロジックによって、仮想ランタイム環境における少なくとも一つの仮想マシン内にオブジェクトをローンチし、
前記少なくとも一つの仮想マシン内で実行される少なくとも一つのシミュレーテッドユーザインタラクションを規定する少なくとも一つの指令を提供するアクションプロファイルを、プロファイルセレクタにより、前記オブジェクトに関連付けられたメタデータに基づいて選択し、
前記メタデータは、前記オブジェクトに対応するオブジェクト種を特定するデータを含み、
前記アクションプロファイルは、ローンチされた前記オブジェクトを伴う少なくとも一つのユーザインタラクションを動的に制御する規則のセットを含む、
方法。
【請求項7】
クラウドコンピューティングサービスの一部として実現されるネットワーク装置において実施されるコンピュータ制御された方法であって、
ユーザインターフェースフレームワークによって、サンドボックス化された環境内にオブジェクトをローンチし、
前記サンドボックス化された環境内で少なくとも一つのシミュレーテッドユーザインタラクションを実行するための少なくとも一つの指令や命令を提供するアクションプロファイルを、プロファイルセレクタにより、前記オブジェクトに関連付けられたメタデータに基づいて選択し、
前記アクションプロファイルは、ローンチされた前記オブジェクトを伴う少なくとも一つのユーザインタラクションを動的に制御する規則のセットを含む、
方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示における実施形態は、サイバーセキュリティの分野に関連する。より具体的には、本開示における一実施形態は、マルウェアを検出するシステム、装置、および方法に関連する。
【背景技術】
【0002】
過去十年間で、悪意あるソフトウェア(マルウェア)は、インターネットユーザの間で広く知られる問題になっている。マルウェアは、ネットワークリソースにおける脆弱性を頻繁に攻撃している。例えば、過去数年にわたって、ネットワークデバイスに実装されたソフトウェアにおけるより多くの脆弱性(OSにおける脆弱性など)が明らかになっている。幾つかの脆弱性はソフトウェアパッチを通じて対処され続けるが、そのようなソフトウェアパッチのリリースされる前においては、ネットワークリソースがエクスプロイトを通じて標的とされ続ける。マルウェアは、機密情報を取得しようとしたり、ネットワーク装置や企業ネットワーク全体の通常動作に悪影響や攻撃を与えようとしたりする。
【0003】
現在、マルウェア検出システムにおいては、少なくとも一つの仮想マシンがオブジェクトの処理に使用されうる。当該オブジェクトは、例えば、ネットワークトラフィックから得られたコンテンツとストレージロケーションから得られたファイルの少なくとも一方を含む。当該処理は、起動と監視を通じてマルウェアソフトウェアを検出するために行なわれる。しかしながら、この処理は、ユーザインタラクションを必要としうる。当該ユーザインタラクションは、例えば、入力装置により生成される入力の形態である。当該入力装置の例としては、グラフィックインターフェース(GUI)、マウス、キーボード、キーパッドなどが挙げられる。必要なユーザ入力を提供できない場合、現在のマルウェア検出システムは、オブジェクト内の悪意あるコンテンツを起動できないことがある。洗練されたマルウェアは、自己防衛メカニズムを有していることが多いからである。自己防衛メカニズムは、ユーザ制御下にあるクライアント装置における意図された環境ではなく、マルウェア検出システムの仮想環境で実行中であるかを検出しようとする。自己防衛メカニズムの一種は、アプリケーションにおいて予想されるユーザ入力が適時に提供されるかを監視するマルウェアを伴う。提供がなければ、当該マルウェアは、休眠状態となりうる(起動しない)。その場合、当該マルウェアは、マルウェア検出システムによる検出にかからない。
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のマルウェア検出システムの幾つかは、仮想ランタイム環境におけるシミュレーテッド入力装置制御のジェネリックかつスタティックなパターンを適用する。実際のヒューマンインタラクションは不在である。しかしながら、マルウェアの作者たちは、当該パターンの特定と、当該スタティックなシミュレーテッド装置制御を特定するためのマルウェアの実装ができるようになりつつある。マルウェアの作者たちは、マルウェアの検出に際して悪意あるコードの起動を行なわせないようにすることで非検出状態を維持する。これにより、従来のマルウェア検出システムの幾つかは、認容できないレベルの検出漏れを経験しうる。あるいは、従来のマルウェア検出システムの幾つかは、検出漏れ率を高める多数のパターン検出スキームの展開を強いられうる。
【課題を解決するための手段】
【0005】
本開示における様々な実施形態は、少なくとも仮想ランタイム環境内におけるオブジェクトの動的な分析を通じて、当該オブジェクトが悪意ある攻撃に関連付けられているかを判断するシステムと方法に関連する。仮想ランタイム環境は、所定のソフトウェアプロファイルと関連付けられたゲストイメージを備えるように設定された少なくとも一つの仮想マシンインスタンス(VM)を備えている。ゲストイメージは、オペレーティングシステム(OS)に加えて、複数のモニタとともにソフトウェアアプリケーション、すなわち当該仮想マシン内の処理中において解析下にあるオブジェクトの挙動を観測および捕捉するように構成されたソフトウェアコンポーネントを含みうる。このVM構成により、悪意あるオブジェクトを効果的に検出するために、当該オブジェクトは「ローンチ」され、次いで仮想ランタイム内で「デトネート」されることを要する。「ローンチ」という語は、分析下にあるオブジェクトの起動を開始する少なくとも一つのイベントの動作を表している。「デトネート」という語は、起動されたオブジェクトによる悪意ある攻撃をトリガする少なくとも一つのイベントの動作を表している。なお、関連出願である2013年3月13日に出願された米国特許出願第13/801,532の内容が援用される。
【0006】
しかしながら、何らかのユーザインタラクション(オブジェクトによってアクチュエートされたイベントに応じた少なくとも一つのユーザ入力や、オブジェクトの通常使用中におけるユーザ起点の入力など)に応じてのみオブジェクトがデトネートされる場合がある。本開示の一実施形態によれば、ユーザインタラクション(UI)制御ロジックが、仮想ランタイム環境の一部として展開されうる。これにより、VM内における特定種の悪意あるオブジェクトをデトネートするために必要とされるシミュレーテッドUIが提供される。本発明の実施形態は、仮想ランタイム環境内で処理されているオブジェクトの種別(実施形態によってはオブジェクトに係る他の特徴)に応じて調整されたシミュレーテッドUIを提供する。UI制御ロジックは、複数のコンポーネントを備える。後述するように、当該コンポーネントは、(1)プロファイルセレクタ、および(2)UIフレームワークを含む。
【0007】
UI制御ロジックは、複数の実施形態をとりうる。例えば、UI制御ロジックは、VMのコンポーネントとして設定されうる。別実施形態として、UIフレームワークが、VMのコンポーネントとして設定されうる。しかしながら、プロファイルセレクタは、仮想マシンモニタ(VMM)の一部として展開されうる。本開示の一実施形態によれば、VMMは、「ホストハイパバイザ」(ホストOSのトップで実行されるソフトウェアなど)あるいはハードウェアとVMの間の中間動作層の一部として割り当てられうる。VMMの一部として割り当てられる場合、プロファイルセレクタは、VM内部でUIフレームワークコンポーネント(VMとUIフレームワークコンポーネントは複数でもよい)を設定するように構成されうる。
【0008】
本開示の一実施形態によれば、プロファイルセレクタは、VMまたは仮想ランタイム環境内におけるVMの外部にホストされうる複数のアクションプロファイルから一つを選択する。この選択は、分析下にあるオブジェクトに関連付けられたメタデータに少なくとも部分的に基づきうる。メタデータは、シミュレーテッドUIを支配するアクションプロファイルを決定するコンテキストを、少なくとも部分的に定義する。メタデータは、ランタイム環境においてオブジェクトをローンチするのに適したソフトウェアも決定する。勿論、アクションプロファイルの選択は、VMを展開(ホスト)するネットワークデバイス(ネットワークトラフィックを解析するセキュリティアプライアンス、ファイルストレージシステム内のファイルなど)の種別などのオブジェクトの静的分析より得られた情報にも基づきうる。このアクションプロファイル選択スキームによれば、オブジェクトの動的解析が「コンテキストアウェア」になる。
【0009】
メタデータは、分析下にあるオブジェクトの種別を特定するデータを含みうる。オブジェクトの種別に加え、特定のアクションプロファイルを選択するためにプロファイルセレクタによって他のメタデータが使用されうることは明らかである。特定のアクションプロファイルを選択するためにプロファイルセレクタによって使用されうる他のメタデータの例としては、VMにおいてローンチされたオブジェクトを伴うUIのシミュレーションを制御するものであって、少なくとも以下に列挙されるものの少なくとも一つを含みうる。
(1)オブジェクトが暗号化されているかと暗号化スキームの種別の少なくとも一方
(2)オブジェクトが埋め込みオブジェクトであるか
(3)オブジェクトを処理するために必要なアプリケーション
(4)オブジェクトを含むネットワークコンテンツの提供に使用される送信プロトコル
【0010】
各「アクションプロファイル」は、アクションプロファイルについて予め定められた規則のセットに基づいてUI機能を実行する指令や命令の集合である。結果として、各アクションプロファイルは、パターンそのものを使用するのではなく、特定種のオブジェクトと関連付けられたUIアクションを動的に制御する際に使用されるように構成されている。例えば、マイクロソフトエクセル(登録商標)のスプレッドシートに関連付けられたアクションプロファイルは、PDF文書のUIアクション(文書のページスクロールなど)とは異なるUIアクション(タブ選択、特定のセルにテキスト追加、特定数のセル行だけスクロールダウンなど)を行ないうる。そのようなアクションは、分析下のオブジェクトの挙動に応じて異なるタイミングで行なわれうる。
【0011】
UIフレームワークは、(1)アクチュエーションロジック、(2)アクティブUIシミュレーションロジック、(3)パッシブUIシミュレーションロジック、および(4)デバイス制御シミュレーションロジックを備える。本開示の一実施形態によれば、アクチュエーションロジックは、VMを設定し、かつソフトウェアプロファイルの一部として実装されたソフトウェアコンポーネントであり、分析下にあるオブジェクトのローンチを担う。アクチュエーションロジックの実装のされ方は、オブジェクトの種別に応じて変化しうる。アクチュエーションロジックがオブジェクトをローンチすると、アクティブUIシミュレーションロジック、パッシブUIシミュレーションロジック、およびデバイス制御シミュレーションロジックのインスタンスが、選択されたアクションプロファイルとともに、あるいは選択されたアクションプロファイル内のコンテンツにアクセスするために作成される。選択されたアクションプロファイルとともに動作することにより、UIフレームワーク内のシミュレーションロジックは、当該オブジェクトが目標エンドポイントで動作した場合、特定のアクション(期待されるユーザインターフェースインタラクションや起動方法など)を、当該アクションが期待される特定の動作状態中において実行する。これらの特定のアクションは、所定のシーケンス(順序)と所定の期間の少なくとも一方に基づいて行なわれうる。さらに、複数のアクションが同時に(少なくとも一時的に重複して)行なわれてもよいし、順次行なわれてもよい。
【0012】
UIフレームワークの一部として動作することにより、アクティブUIシミュレーションロジックは、入力要求(パスワード要求、継続前に中止を求めるダイアログボックスの表示、テキスト入力を求めるテキストボックスの表示など)を検出する。入力要求は、それに直接応答するヒューマンインタラクションを求める。本明細書では、この種のヒューマンインタラクションを「アクティブ」なシミュレーテッドヒューマンインタラクションと称する。これに応答して、アクティブUIシミュレーションロジックは、選択されたアクションプロファイルに基づいて動作し、応答が提供されたか、および当該応答の種別を必要に応じて判断する。
【0013】
パッシブUIシミュレーションロジックは、選択されたアクションプロファイルに応じて動作し、場合により、所定レベルのオブジェクトの不活動性と疑わしいオブジェクトのローンチからの所定時間経過の少なくとも一方に応じて、シミュレーテッドヒューマンインタラクションを提供する。パッシブUIシミュレーションロジックは、タイミング回路(リアルタイムクロック、カウンタなど)と通信状態にあり、モニタされた時間は、所定レベルのオブジェクトの不活動性と疑わしいオブジェクトのローンチからの所定時間経過の少なくとも一方によりトリガされた所定のシミュレーテッドヒューマンインタラクションをいつ行なうかを判断する要因となる。
【0014】
例えば所定期間の不活動性が検出されると、パッシブUIシミュレーションロジックは、オブジェクトに対するユーザ起点のインタラクションのシミュレーションを行なう。シミュレーションの例としては、マイクロソフト(登録商標)オフィスワード文書(オブジェクト)における特定ページへの移動、マイクロソフト(登録商標)オフィスエクセル文書(オブジェクト)における特定タブへの切り替え、オブジェクトに固有のアクションプロファイルに応じた別のパワーポイント(商標)スライドへの切り替えなどが挙げられる。一例として、オブジェクトがマイクロソフト(登録商標)オフィスエクセル文書である場合、以下のことが(機械学習技術などを通じて)経験的に知られている。エクスプロイトコードや悪意あるコードがマイクロソフト(登録商標)オフィスエクセル文書内に配置されると、選択されたアクションプロファイルによってパッシブUIシミュレーションロジックにヒューマンインタラクションをシミュレートさせる命令に繋がりうる。シミュレーションは、アクチュエーションロジックが当該オブジェクトをローンチした後の所定のタイミングでマイクロソフト(登録商標)オフィスエクセル文書内の第二シートに切り替えることによって行なわれる。
【0015】
デバイス制御シミュレーションロジックは、選択されたアクションプロファイルに基づいて動作し、シミュレーテッドデバイス制御を提供する。当該デバイス制御は、オブジェクトの種別に依存しない。デバイス制御シミュレーションロジックは、さらに別のレベルの所定の不活動性に応じて動作しうる。例えば、デバイス制御シミュレーションロジックは、選択されたアクションプロファイルから特定のデバイス制御インタラクション(オブジェクトによる悪意ある攻撃をトリガする特定のキーストロークやマウス動作など)をシミュレートする指令を受け取りうる。
【0016】
本開示の実施形態は、ネットワーク装置によって利用されてもよいし、ネットワーク装置の形態をとってもよい。当該ネットワーク装置は、マルウェア検知システム(MDS)を備えたサイバーセキュリティアプライアンスを含む。当該MDSは、静的分析エンジンと動的分析エンジンを備える(動的分析エンジンのみを備える実施形態もある)。実施形態によっては、当該MDSは、サーバやクライアントデバイスなどのネットワークに接続可能なシステム(いずれにしても「エンドポイント」と称されるもの)として実現されうる。当該動的分析エンジンは、仮想ランタイム環境を含みうる。当該仮想ランタイム環境は、受け付けたネットワークトラフィックから得たオブジェクトをユーザの支援なしに自動的に分析し、仮想処理中に悪意あるオブジェクトを検出およびデトネートするためにヒューマンインタラクションをシミュレートする。分析結果は、さらなる分析や対応のためにネットワーク管理者などの職員に報告されうる。
【図面の簡単な説明】
【0017】
発明の実施形態例は、限定を伴うことなく添付の図面に例示される。同じ参照符号は、同様の要素を示す。
【0018】
図1】マルウェア検出システム(MDS)の第一実施形態を示すブロック図の例であり、悪意あるオブジェクトのデモを行なうシミュレーテッドユーザインタラクション(UI)を提供するために仮想ランタイム環境の一部として展開されたUI制御ロジックを示す。
図2】MDSの第二実施形態を示すブロック図の例であり、上記仮想ランタイム環境の一部として実装されるUI制御ロジックの第二アーキテクチャスキームを示す。
図3A】上記仮想ランタイム環境内で動作する上記UI制御ロジックの第一動作フローを示すブロック図の例である。
図3B】上記仮想ランタイム環境内で動作する上記UI制御ロジックの第二動作フローを示すブロック図の例である。
図4A】選択されたアクションプロファイルに基づいて動作し、悪意あるオブジェクトを正確に検出する可能性を高めるためにシミュレーテッドUIを行なうパッシブUIシミュレーションロジックと装置制御シミュレーションロジックにより行なわれる処理例を示すフローチャートである。
図4B】選択されたアクションプロファイルに基づいて動作し、悪意あるオブジェクトを正確に検出する可能性を高めるためにシミュレーテッドUIを行なうアクティブUIシミュレーションロジックと装置制御シミュレーションロジックにより行なわれる処理例を示すフローチャートである。
図5図1のMDSに関連付けられた論理アーキテクチャを示すブロック図の例である。
【発明を実施するための形態】
【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)1101〜110N(Nは1より大きく、本実施形態においては3である)が配備されている。MDS1101〜110Nは、ネットワーク125を介して管理システム120と通信可能に結合されている。一般に、管理システム120は、各1101〜1103を管理するように構成されている。例えば、管理システム120は、ロジック内のコンテンツの更新(新しい規則や変更された規則の更新、規則の削除、当該規則によって利用されるパラメータの修正、およびメタデータの修正の少なくとも一つ)を行うように構成されうる。当該ロジックは、通信インターフェース140、静的分析エンジン145、動的分析エンジン160、分類エンジン190、および報告エンジン195の少なくとも一つの一部として動作する。当該ロジックは、初期システム設定および構成などを目的として選択型ユーザインターフェース機能を備えている。具体的には、管理システム120は、アクションプロファイル更新ロジック174を介して少なくとも一つのアクションプロファイルへ更新を伝達するように構成されている。少なくとも一つのアクションプロファイル188は、後述するように、ヒューマンインタラクションのシミュレーションと分析中のオブジェクトのためのデバイス制御の少なくとも一方を制御するために使用される。
【0034】
図1に示されるように、第一マルウェア検出システム(MDS)1101は、到来するデータ(ネットワークトラフィック、通信ネットワーク105を通じて入力されるデータ、別種の伝送媒体から入力されるデータなど)に関連付けられた情報を分析するように構成された電子装置である。当該情報は、少なくとも一つのエンドポイント132との間で行き来する。本実施形態例においては、通信ネットワーク105は、プライベートネットワークを含みうる。プライベートネットワークの例としては、無線データ通信ネットワーク、広域ネットワーク、ローカルエリアネットワーク(LAN)の類、複数のネットワークの組合せなどが挙げられる。別実施形態は、マルウェア検出のためにファイルの保存場所(ハードディスクドライブ;HDDやフラッシュドライブストレージなど)から検索されて到来するデータ(ファイル保管庫からのファイル)を含みうる。第一MDS1101は、インターフェース136と動作ファイヤウォール134の少なくとも一方を介して通信ネットワーク105と通信可能に結合されている。
【0035】
一般に、インターフェース136は、少なくとも一つのエンドポイント132との間で行き来するネットワークトラフィックの少なくとも一部を受け取り、受け取ったネットワークトラフィックの一部と関連付けられた情報を第一MDS1101に提供するように構成されたデータ取得装置として動作しうる。当該情報は、オブジェクトを含みうる。当該オブジェクトは、全体として実行可能あるいは実行不可能な複数のパケット(eメールメッセージやウェブページに埋め込まれた文書など)である。あるいは、図示されていないものの、インターフェース136は、ネットワークを通じては提供されないファイルなどのオブジェクトを受け付けるように構成されうる。例えば、インターフェース136は、記憶システムに保存されたデータへ自動的に(あるいは命令に基づいて)アクセスするデータ取得装置、あるいは、適当な専用通信リンクを介して手動で提供されたりポータブルフラッシュドライブのような記憶媒体から提供されたりするオブジェクトを受け付ける別種のインターフェース(ポートなど)でありうる。
【0036】
一般に、インターフェース136は、通常はエンドポイント132へ向けられたデータを取得するように構成されうる。取得されるデータは、分析に供される少なくとも一つのオブジェクト147とこれに対応するメタデータ148を含む。メタデータ148の少なくとも一部は、次いでロジック(スケジューラ150など)により使用されるプロトコル、アプリケーション種別などの情報を判断し、選択されたソフトウェアプロファイルを備えた少なくとも一つのVM1701〜170(Mは1以上)を構成するために使用されうる。例えば、メタデータ148は、疑わしいオブジェクト147を所望のタイミング、所望の期間、および所望の順序の少なくとも一つで処理するVM1701〜170の操作性を構成するために、ソフトウェアイメージ(アプリケーション)が存在する場合にどのソフトウェアイメージが記憶装置151からフェッチされてOSに加えられるかを判断するために使用される。加えて、本発明の一特徴として、疑わしいオブジェクト147に関連付けられたメタデータ148が、プロファイルセレクタ184によって使用されうる。プロファイルセレクタ148は、VM自体(VM1701など)か後述する仮想マシンモニタ(VMM)172に実装されている。プロファイルセレクタ148は、少なくとも一つのVM1701〜170内における疑わしいオブジェクト147のデトネートを支援するために、疑わしいオブジェクト147に対するシミュレーテッドユーザインタラクションを制御するアクションプロファイル188(少なくとも一つ)を選択する。
【0037】
図示されてはいないものの、実施形態によっては、インターフェース136が第一MDS1101に含まれうる。別の実施形態においては、インターフェース136は、通信経路における中間装置(ファイヤウォール、ルータ、スイッチなどのネットワーク電子装置など)に内蔵されうる。あるいは、インターフェース136は、スタンドアロンなコンポーネント(適当な市販のネットワークタップなど)でありうる。
【0038】
図1に示されるように、第一MDS1101は、通信インターフェース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における少なくとも一つのVM1701〜170内においてオブジェクト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へ通されたオブジェクトとその対応メタデータのバッファリングと、当該オブジェクトおよび対応メタデータのVM1701〜170Mへの直接的ローディングあるいはVM1701〜170Mへの供給のための仮想マシンモニタ(VMM)172へのローディングとを制御しうる。
【0048】
仮想ランタイム環境164は、VMM172により管理される少なくとも一つのVM1701〜170Mを通じたオブジェクト147の仮想処理を提供する。VMM172は、少なくとも一つのVM1701〜170Mの再構成を管理する。当該再構成は、外部から提供される構成更新(OSやソフトウェアインスタンスなどのソフトウェアプロファイル、アクションプロファイルなど)に基づく仮想分析に先立って行なわれる。図示されるように、VMM172は、アクションプロファイル更新ロジック174を備えている。アクションプロファイル更新ロジック174は、規則、パラメータ、命令、および他データ(VM1701でホストされる少なくとも一つのアクションプロファイル188によって維持されるもの)の少なくとも一つの更新を担う。勿論、アクションプロファイル更新ロジック174は、他のVM(例えばVM170M)やVMの外(例えば記憶装置151、データストア166内、仮想ランタイム環境における不図示のストレージ内)でホストされる少なくとも一つのアクションプロファイル188を更新しうる。便宜上VM1701の動作が説明されるが、他のVM1702〜170Mの少なくとも一部も同様に動作しうる。
【0049】
図示されるように、VM1701は、オペレーティングシステム(OS)と、オブジェクト種に応じて、少なくとも一つのアプリケーション180ならびに監視ロジック181およびユーザインタラクション(UI)制御ロジック182により割り当てられうる(プロビジョンされうる)。監視ロジック181は、VM1701でローンチされた際のオブジェクト147のランタイム挙動を監視する。UI制御ロジック182は、VM1701にロードされて悪意ある攻撃を開始するために何らかのUIを要求する悪意あるオブジェクトをデトネートするために、シミュレーテッドUIを提供する。本開示の一実施形態においては、UI制御ロジック182は、複数のコンポーネントを備えている。当該コンポーネントは、(1)プロファイルセレクタ184と(2)フレームワーク186を含む。
【0050】
本開示の一実施形態においては、プロファイルセレクタ184は、図示のVM1701でホストされる少なくとも一つのアクションプロファイル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は、VM1701を割り当てる(プロビジョニングを行なう)ソフトウェアプロファイルの一部として実装されるソフトウェアコンポーネントであり、疑わしいオブジェクト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がVM1701でローンチされている間に当該オブジェクト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は専用のネットワーク装置としてMDS1101を例示しており、図1に係る記載は、ネットワークインターフェース136を通じて受け付けられたオブジェクトに基づく例を説明しているが、MDS1101は、クライアント装置132などのエンドポイントに実装されうる。そのような実施形態においては、オブジェクトの実際の実行に先立ち、MDS1101は、サンドボックス化された環境に当該オブジェクトをローンチし、シミュレーテッドUIを行ないうる。当該シミュレーテッドUIは、シミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御を含みうる。オブジェクト147が悪意のない挙動を示せば、エンドポイント132は、当該オブジェクトの利用を許可される。また、MDS1101は、クラウドコンピューティングサービス138内で実現されうる。その場合、上述のシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御の少なくとも一部は、当該サービス内で行なわれうる。
【0057】
図2を参照する。ネットワーク200内で用いられるMDS1101の第二実施形態のブロック図が示されている。本実施形態においては、動的分析エンジン160は、処理ロジック162、仮想ランタイム環境164、データストア166、スコア判断ロジック168の少なくとも一つを含む。しかしながら、少なくとも一つのVM1701〜170Mは、図1のように少なくとも一つのアクションプロファイル188が割り当てられていない。むしろ、少なくとも一つのアクションプロファイル188は、少なくとも一つのVM1701〜170Mの外にホストされている。さらに、プロファイルセレクタ184は、VMM172の一部として装備されている。この実施態様により、プロファイルセレクタ184は、VM1701内にUIフレームワークコンポーネント186を割り当てできる。場合により、プロファイルセレクタ184は、他の複数のVM(例えばVM170M)に複数のUIフレームコンポーネントを割り当てできる。
【0058】
3.UI制御ロジックの動作フロー
図3A図3Bを参照する。仮想ランタイム環境164内におけるUI制御ロジック182の動作フローのブロック図の例が示されている。具体的には、VM1701内で動作する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は、VM1701に提供される。メタデータ148に基づき、プロファイルセレクタ184は、少なくとも一つのアクションプロファイル188からアクションプロファイルを選択する(これを「選択されたアクションプロファイル3001」とする)。すなわち、複数のアクションプロファイル3001〜300R(Rは2以上)から、仮想ランタイム環境内のVM1701の内部あるいは外部にホストされうるアクションプロファイルが選択される。この選択は、オブジェクトの種別を特定しているメタデータの少なくとも一部に基づきうる。オブジェクトの種別に加えて、オブジェクト147をよりよく特定し、分析下にある特定のオブジェクトに最も適したアクションプロファイル3001が選択されるように、他のメタデータがプロファイルセレクタ184によって用いられうることは勿論である。使用されうる他のメタデータの例としては、以下に列挙されるものの少なくとも一つが含まれるが、これらに限られない。
(1)オブジェクト147が暗号化されているかと暗号化スキームの種別の少なくとも一方を特定するデータ
(2)オブジェクト147が埋め込みオブジェクトであるかと埋め込みオブジェクトを含むものであるかの少なくとも一方を特定するデータ
(3)オブジェクト147がパスワード保護されたフィールドと当該パスワードに関連付けられた情報を含んでいるか特定するデータ
(4)オブジェクト147を処理するために必要なアプリケーションを特定するデータ
(5)オブジェクト147を含むネットワークコンテンツの提供に使用される送信プロトコルを特定するデータ
【0060】
本開示の一実施形態においては、各「アクションプロファイル」は、当該アクションプロファイルについて予め定められた規則セットに基づいてUI機能を実行する命令や指令の集合である。結果として、選択されたアクションプロファイル3001は、オブジェクト147の分析中におけるUI機能の制御に使用されるように構成される。例えば、オブジェクト147がマイクロソフト(登録商標)エクセル(登録商標)のスプレッドシートである場合、選択されたアクションプロファイル3001は、PDF文書の分析中におけるUI機能(文書ページのスクロールなど)を制御する他のアクションプロファイル300Rとは異なるUI機能(タブの選択、特定のセルへのテキストの追加、特定行数のセルのスクロールダウンなど)を実行しうる。
【0061】
第一実施形態においては、図3Aに示されるように、アクションプロファイルの選択に際して、選択されたアクションプロファイル3001を特定するために、プロファイルセレクタ184がシグナリング310を提供する。選択されたアクションプロファイル3001は、予め記憶された少なくとも一つのアクションプロファイル188の一部である。これに応じて、本開示の一実施形態においては、選択されたアクションプロファイル3001のコンテンツ320が、アクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380によって使用されるために、シミュレーションロジック350へ送られうる。第二実施形態においては、図3Bに示されるように、アクションプロファイル3001の選択に際して、プロファイルセレクタ184は、選択されたアクションプロファイル3001の識別子330を、シミュレーションロジック350(アクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380)へ送る。これにより、シミュレーションロジック350は、選択されたアクションプロファイル3001における情報335(命令、指令、規則、パラメータの少なくとも一つ)のポーリングと検索が可能とされる。
【0062】
図示されていないが、特定のオブジェクト種と関連付けられたアドレス情報(ポインタ、メモリ格納先など)がアクチュエーションロジック340に提供されてもよい。当該アドレス情報は、特定のオブジェクト種をローンチするのに適した動作を行なうための一連の命令や指令にアクセスするために使用されうる。
【0063】
図3A図3Bの双方を参照する。VM1701をプロビジョニングするソフトウェアプロファイルの一部として実装されたアクチュエーションロジック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の識別子の少なくとも一方が、正しいアクションプロファイル3001が使用のためにオブジェクト147の処理中における正しいタイミングでシミュレーションロジック350へ送られたかを確認するために使用されうる。ローンチのタイミングは、アクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380同士の同期をとるために使用されうる。また、ローンチのタイミングは、選択されたアクションプロファイル3001に基づいて、パッシブUIシミュレーションロジック370がタイミングベースのシミュレーテッドヒューマンインタラクションを行なう際とデバイス制御シミュレーションロジック380がタイミングベースのシミュレーテッドデバイス制御インタラクションを行なう際の少なくとも一方に使用される基準タイミングを設定する。同期は、図4Aに示されるように、選択されたアクションプロファイル3001に基づいてパッシブUIシミュレーションロジック370とデバイス制御ロジック380により行なわれるアクションに特に関連し、インテリジェンスと予期可能性をUIに加える。したがって、アクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380の大半または全ては、同じ(あるいは同期された)タイミング回路(リアルタイムクロック、カウンタなど)と通信している。
【0066】
図3A図3Bにさらに示されるように、アクティブUIシミュレーションロジック360、パッシブUIシミュレーションロジック370、およびデバイス制御シミュレーションロジック380は、選択されたアクションプロファイル3001内のコンテンツにアクセスするためにインスタンス化されており、オブジェクト147の分析中にUIフレームワーク186によって行なわれるシミュレーテッドヒューマンインタラクションとデバイス制御インタラクションを制御する。選択されたアクションプロファイル3001によって設定された規則に基づき、シミュレーションロジック350は、特定のアクション(予期されるユーザインターフェースインタラクションや起動方法など)を当該アクションが予期される特定の動作状態(所定のシーケンスや順序、所定のタイミング、所定の期間内など)の間に行なう。なお、順次行なわれると説明したが、複数のアクションが同時に(少なくとも一部が時間的に重複して)行なわれてもよい。
【0067】
UIフレームワーク186の一部として動作しているとき、アクティブUIシミュレーションロジック360は、「アクティブ」なUIを要求するオブジェクト147によって開始される入力要求(パスワード要求、ラジオボタンやテキスト入力を選択するためのダイアログやテキストボックスを表示させようとすることなど)を検出するように構成された第一種のシミュレーテッドUIである。これに応じて、選択されたアクションプロファイル3001のコンテンツに基づき、アクティブUIシミュレーションロジック360は、応答(場合によっては要求されたUIをシミュレートする応答の種別も)を提供するかを判断する。例えば、選択されたアクションプロファイル3001は、ローンチされたオブジェクト147によって開始された入力要求に応じたヒューマンインタラクションをシミュレートするシグナリングを、アクティブUIシミュレーションロジック360に提供させうる。例えば、当該シグナリングは、継続前の中止を要求するためにダイアログボックスを閉じるユーザ、あるいはダイアログボックスを閉じる特定のラジオボタンを選択し、別操作用のダイアログボックスを開くユーザをシミュレートしうる。そのようなシグナリングは、ヒューマンインタラクションをさらにシミュレートするために、所定の期間、あるいはランダムな期間だけ意図的に遅延されうる。後続の入力要求に対する少なくとも一つのこのような応答は、そのようなシミュレーテッドUIによってのみ起動されうる悪意ある攻撃をオブジェクト147が開始するトリガとなりうる。
【0068】
パッシブUIシミュレーションロジック370は、「パッシブ」なシミュレーテッドヒューマンインタラクションを提供する第二種のシミュレーテッドUIである。「パッシブ」なヒューマンインタラクションは、選択されたアクションプロファイルに基づくものであるが、ローンチされたオブジェクト147による入力要求(ユーザのアクションを要求するローンチされたオブジェクトの挙動など)に応じるものではない。場合によっては、当該シミュレーテッドヒューマンインタラクションは、オブジェクトによる所定レベルの不活動性に応じる。
【0069】
当該「パッシブ」なシミュレーテッドヒューマンインタラクションは、プロンプトなしにユーザによってオブジェクトに対して行なわれうるあらゆるシミュレーテッド動作を含みうる。当該動作の例としては、マイクロソフト(登録商標)オフィスワード文書(オブジェクト)の特定ページへの移動、マイクロソフト(登録商標)オフィスエクセル文書(オブジェクト)の特定タブへの切り替えなどが挙げられる。一例として、オブジェクト型マイクロソフト(登録商標)オフィスエクセル文書を有する場合、以下のことが(機械学習技術などを通じて)経験的に知られている。エクスプロイトコードや悪意あるコードがマイクロソフト(登録商標)オフィスエクセル文書内に配置されると、選択されたアクションプロファイルによってパッシブUIシミュレーションロジック370にヒューマンインタラクションをシミュレートさせる命令に繋がりうる。シミュレーションは、アクチュエーションロジックが当該オブジェクトをローンチした後の所定のタイミングでマイクロソフト(登録商標)オフィスエクセル文書内の第二シートに切り替えることによって行なわれる。
【0070】
デバイス制御シミュレーションロジック380は、疑わしいオブジェクト147の仮想分析中に行なわれうる第三種のシミュレーテッドUIである。デバイス制御シミュレーションロジック380は、オブジェクトの種別に依存しないデバイス制御インタラクションをシミュレートする。例えば、デバイス制御シミュレーションロジック380は、悪意ある攻撃を行なう前にユーザインタラクションを待つ悪意あるオブジェクトをデトネートするために、選択されたアクションプロファイル3001から特定のデバイス制御インタラクション(特定のキーストロークや特定のマウスの動きなど)をシミュレートする命令群を受け取りうる。
【0071】
加えて、UIフレームワークログ176は、シミュレーションロジック350によって行なわれた活動を記録する。上述のように、UIフレームワークログ176は、あらゆる疑わしい活動や悪意ある活動だけでなく、あらゆる行なわれたアクションあるいは行なわれなかったアクション、あらゆる要求された入力、および全てのアクションと要求された入力のタイムスタンプを記録しうる。動的分析の完了に際し、UIフレームワークログ176に記録された情報は、スコア判断ロジック168と分類エンジン190の少なくとも一方に対してアクセス可能でありうる。
【0072】
少なくとも一つのアクションプロファイル188は、図2のネットワーク125を介してMDS1101へ送られうる構成ファイルを通じて更新されうる。例えば、アクションプロファイルの更新は、管理システム220により、ネットワーク125を介し、機械学習エンジン122を経由して提供されうる。機械学習エンジン122は、UIフレームワークログ176内のコンテンツに基づいて報告エンジン195によって報告された悪意あるオブジェクトに関連付けられた情報を受け取る。加えて、機械学習エンジン122は、他のMDS(MDS1102やMDS1103など)によって報告されたUI依存型の悪意あるオブジェクトに関連付けられた情報を受け取る。機械学習エンジン122は、アクションプロファイルの更新を進展させるために、この情報および第三者ソースからの情報を利用する。アクションプロファイルの更新は、改善されたマルウェア検出を提供するための規則の変更、新たな指令や命令、およびパラメータの変化の少なくとも一つを含みうる。マルウェア検出の改善は、オブジェクト型マルウェアと新たに特定されたマルウェアの少なくとも一方を標的とすることにより行なわれる。当該マルウェアは、エクスプロイト、疑わしいコード、および悪意あるコードの少なくとも一つや、ネットワークやネットワーク装置に対する悪意ある攻撃の遂行を支援する他のデータを含む。
【0073】
あるいは、アクションプロファイルの更新は、ネットワーク105を通じて(例えばクラウド演算サービス228を使用するダウンロードと、フラッシュストレージなどの記憶装置の使用を通じた手動インストールの少なくとも一方を通じて)提供されうる。
【0074】
4.シミュレーションロジックにより行なわれるユーザインタラクション
図4Aを参照する。マルウェアを検出するためにパッシブUIシミュレーションロジックとデバイス制御シミュレーションロジックにより行なわれる方法例のフローチャートが示されている。図4Aにおける各ブロックは、選択されたアクションプロファイルに基づいて実行される動作を表している。当該動作は、標的とされたユーザインタラクションがシミュレーテッドものを提供するために、仮想ランタイム環境内のオブジェクト147の分析中に実行される。これらの動作は、MDS1001によって、自動的に(ヒューマンインタラクションなしに)悪意あるオブジェクトを検出するために実行される。当該オブジェクトは、ヒューマンインタラクションに応じて悪意ある攻撃を開始するものである。本実施形態においては、選択されたアクションプロファイルにより、当該オブジェクトからの入力要求に応じる「アクティブ」なシミュレーテッドヒューマンインタラクションに高い優先度が付与される一方、「パッシブ」なシミュレーテッドヒューマンインタラクションとシミュレーテッドデバイス制御インタラクションには低い優先度が付与される。
【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を参照する。MDS1101に関連付けられたロジックのブロック図の一例が示されている。MDS1101は、少なくとも一つのプロセッサ500を備えている。少なくとも一つのプロセッサ500は、第一伝送媒体520を介して第一通信インターフェースロジック510と接続されている。第一通信インターフェースロジック510は、図1のネットワークインターフェース136との通信接続を提供しうる。加えて、少なくとも一つのプロセッサ500は、第二伝送媒体540を介して第二通信インターフェースロジック530と通信可能に接続されうる。第二通信インターフェースロジック530は、図1における他のMDS1102〜1103および管理システム120との通信を提供しうる。
【0085】
本開示の一実施形態においては、第一通信インターフェースロジック510と第二通信インターフェースロジック530の少なくとも一方は、有線コネクタ用の少なくとも一つのポートを含む物理的インターフェースとして実現されうる。これに加えてあるいは代えて、第一通信インターフェースロジック510と第二通信インターフェースロジック530の少なくとも一方は、他のネットワーク装置との無線通信をサポートするための少なくとも一つの無線ユニットとして実現されうる。
【0086】
少なくとも一つのプロセッサ500は、さらに不揮発性ストレージ550と伝送媒体560を介して接続されている。本開示の一実施形態においては、不揮発性ストレージ550は、静的分析エンジン145、動的分析エンジン160、分類エンジン190、および報告エンジン195と関連付けられたソフトウェアコンポーネントを保存するように構成されうる。図示されているように、静的分析エンジン145と関連付けられたソフトウェアコンポーネントは、静的分析ロジック152、メタデータ抽出ロジック154、およびオブジェクト種判断ロジック156の少なくとも一つを含みうる。不揮発性ストレージ550は、VM1701〜170MとともにVMM172を含む動的分析エンジン160と関連付けられたソフトウェアコンポーネントをさらに保存するように構成されうる。VM1701〜170Mの少なくとも一部は、UI制御ロジック182でプロビジョンされうる。UI制御ロジック182は、プロファイルセレクタ184、UIフレームワーク186、およびアクションプロファイル188(少なくとも一つ)の少なくとも一つを含みうる。
【0087】
加えて、不揮発性ストレージ550は、マジックナンバーデータベース158を含みうる。マジックナンバーデータベース158は、上述したオブジェクト種判断ロジック156とデータストア159、164によってアクセスされる。データストア159、164の少なくとも一部は、データバッファとして動作しうる。
【0088】
上記の記載においては、特定の実施形態例を参照して本発明を説明した。しかしながら、添付の特許請求の範囲に記載されたより広い発明の趣旨から逸脱しなければ、様々な修正および変更がなされうることは明らかである。
図1
図2
図3A
図3B
図4A
図4B
図5