IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ アクロニス・インターナショナル・ゲーエムベーハーの特許一覧

特開2023-51738マルウェア検出のための有限状態機械に基づく挙動解析
<>
  • 特開-マルウェア検出のための有限状態機械に基づく挙動解析 図1
  • 特開-マルウェア検出のための有限状態機械に基づく挙動解析 図2
  • 特開-マルウェア検出のための有限状態機械に基づく挙動解析 図3
  • 特開-マルウェア検出のための有限状態機械に基づく挙動解析 図4
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023051738
(43)【公開日】2023-04-11
(54)【発明の名称】マルウェア検出のための有限状態機械に基づく挙動解析
(51)【国際特許分類】
   G06F 21/56 20130101AFI20230404BHJP
【FI】
G06F21/56 360
【審査請求】未請求
【請求項の数】10
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022114736
(22)【出願日】2022-07-19
(31)【優先権主張番号】17/449,616
(32)【優先日】2021-09-30
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】313015247
【氏名又は名称】アクロニス・インターナショナル・ゲーエムベーハー
(74)【代理人】
【識別番号】100105957
【弁理士】
【氏名又は名称】恩田 誠
(74)【代理人】
【識別番号】100068755
【弁理士】
【氏名又は名称】恩田 博宣
(74)【代理人】
【識別番号】100142907
【弁理士】
【氏名又は名称】本田 淳
(72)【発明者】
【氏名】アレクセイ マラノフ
(72)【発明者】
【氏名】セルグ ベル
(72)【発明者】
【氏名】スタニスラフ プロタソフ
(57)【要約】      (修正有)
【課題】標的デバイスの挙動解析に基づいて標的デバイスへの悪意のある活動を識別するシステム及び方法を提供する。
【解決手段】システムは、標的デバイスに接続された仮想マシンで実行される挙動解析器を含む。仮想マシンは、システムイベント及びパラメータを標的デバイスから収集し、標的デバイスから独立してスクリプトを実行して、脅威を検出する。スクリプトは、イベントの処理及び相関付けによってオブジェクトの挙動を解析するように実行される命令セットである。スクリプトは、既知のマルウェアのシグネチャ及び表現を記憶するルール構造を含む。選択されたイベントパラメータを既知のマルウェアパラメータと関連付けることにより、イベントが脅威を課すか否かが判断される。有限状態機械が状態遷移テーブルに使用される。
【選択図】図2
【特許請求の範囲】
【請求項1】
標的デバイスの挙動解析に基づいて前記標的デバイスへの悪意のある活動を識別するための方法であって、前記方法は、一組のスクリプト命令を実行するために、標的デバイスで実行中の仮想マシンを使用して標的デバイスのプロセッサで実行され、前記方法は、
a)イベント処理ユニットにおいて、前記標的デバイスの1つ又は複数のシステムイベントを検索することであって、システムイベントはシステム挙動を特徴付ける、前記検索することと、
b)対象となる少なくとも1つのイベントを識別するために、イベント処理ユニットにおいて、複数のシステムイベントパラメータにより前記システムイベントをフィルタリングすることであって、対象となるイベントは、状態遷移テーブルに関連付けられている、前記フィルタリングすることと、
c)イベント相関器において、有限状態機械の状態を前記状態遷移テーブルに従って前記対象となる少なくとも1つのイベントに対応する予期される状態に変更することと、
d)脅威ハンドラーにおいて、前記予期される状態について定義された命令を実行することと、
e)前記予期される状態が標的デバイスでの悪意のある活動を特徴付けるまで、ステップa~dを繰り返すことと、を備える、方法。
【請求項2】
前記イベント処理ユニットは、システムイベントをシステムイベントログ、ユーザ活動ジャーナル、システムフック、ドライバーインタセプター、外部ログの少なくとも1つのソースから検索する、請求項1に記載の方法。
【請求項3】
挙動解析器ルールリポジトリからの挙動解析器ルールを用いて前記イベント処理ユニット、前記イベント相関器、及び前記脅威ハンドラーを初期化する初期ステップを備える請求項1に記載の方法。
【請求項4】
挙動解析器ルールリポジトリを更新することを更に備える請求項1に記載の方法。
【請求項5】
前記挙動解析器は、前記更新することに先立ち、前記状態からの前記システム挙動を解析することを継続する、請求項4に記載の方法。
【請求項6】
前記対象となる少なくとも1つのイベントは、悪意のある攻撃又は悪意のある活動の機会に前記標的デバイスをさらすイベントである、請求項1に記載の方法。
【請求項7】
標的デバイスの挙動解析に基づいて前記標的デバイスへの悪意のある活動を識別するシステムであって、少なくとも1つの仮想マシンは、前記標的デバイスで実行されており、一組のスクリプト命令を実行し、前記システムは、
挙動解析更新リポジトリと、
挙動解析器と、
を備え、前記挙動解析器は、
a)前記標的デバイスの複数のシステムイベントを検索し、対象となる少なくとも1つのイベントを識別するために、一組のフィルタを複数のシステムパラメータに適用することにより、前記複数のシステムイベントをフィルタリングするイベント処理モジュールであって、対象となるイベントは、状態遷移テーブルに関連付けられている、前記イベント処理モジュールと、
c)有限状態機械の状態を前記状態遷移テーブルに従って前記対象となる少なくとも1つのイベントに対応する予期される状態に遷移させるように構成されたイベント相関器モジュールであって、前記イベント相関器は、対象となる一連のイベントを処理し、脅威として予め定義される状態に遷移するときに前記悪意のある活動を検出する、前記イベント相関器モジュールと、
d)前記予期される状態について定義された命令を実行するように構成された脅威ハンドラーと、
を含む、システム。
【請求項8】
前記仮想マシンに通信可能に結合された挙動解析器リポジトリを更に備え、
前記挙動解析器リポジトリは、複数のイベントに対応する複数の予期される有限状態と関連付けられた情報を含む、請求項7に記載のシステム。
【請求項9】
前記対象となる少なくとも1つのイベントは、悪意のある攻撃又は悪意のある活動の機会に前記標的デバイスをさらすイベントである、請求項7に記載のシステム。
【請求項10】
一組の挙動解析器ルールを準備するためのプロセッサで実行される方法であって、
a.既知のクラスのマルウェアの1つ又は複数のサンプルを実行することと、
b.前記1つ又は複数のサンプルの実行と関連付けられた複数のシステムイベントを検索することと、
c.少なくとも1つのホワイトリスト記載のアプリケーションの1つ又は複数のサンプルを実行することと、
d.前記少なくとも1つのホワイトリスト記載のアプリケーションの前記実行と関連付けられた1つ又は複数のシステムイベントを検索することと、
e.既知のマルウェアサンプルの前記クラスを特徴付けるイベント及び条件のセットを識別することと、
f.予期される誤検出率でイベントの状態遷移テーブル及び挙動マルウェア解析の条件状態を生成することと、
g.疑いのある悪意のある活動に応答するための遷移テーブルの状態への命令を定義することと、
h.標的計算システムにおいて、イベントリスト、イベントフィルタリングのイベント属性、状態遷移テーブル、及びスクリプトの形態の命令を含む挙動解析器ルールを更新することと、
を備える方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概してデータセキュリティ管理に関し、特に、限定ではなく、標的デバイスへの悪意のある活動をその挙動解析を介して識別するシステム及び方法に関する。
【背景技術】
【0002】
デジタル技術の途方もない進歩に伴い、データセキュリティは大きな関心事となった。常に更新しているマルウェア形態は、マルウェア攻撃の成功に繋がり、脅威定義を変え、極めて重要なデータを損なう等々の蔓延している問題である。データセキュリティは通常、種々のマルウェア検出ユニット(通常、マルウェア検出プログラマブル構成要素及びセキュリティ構成要素として分類される)を使用して守られる。データ解析は、ユーザ空間、カーネル空間、及びエミュレータ等の計算システムの種々のレベルでマルウェア検出プログラマブル構成要素によって実行することができる。解析は、個々のプロセス、特定のアプリケーション、システム機能、及びオペレーティングシステム全体で実行することができる。ファイル、スレッド、及びレジストリ動作は、解析のタイプとしてサポートされる。マルウェア攻撃が検出された場合、セキュリティ構成要素は是正行為を実行して、マルウェアとのいかなる通信もブロックすることができる。
【0003】
従来、挙動解析の一般的な手法は、システムイベントをフックして(hooking)収集するステップを含み、その後、システムイベントパラメータが解析されて、悪意のある活動に特徴的な任意のパターンを検出する。従来の解析器の不利な態様は、計算リソース消費が大きく、且つ解析の実行速度が低いことである。そのような不利の態様な1つの理由は、解析を実行するために、従来の解析器はユーザごと、プロセスごと、アプリケーションごとに動作スタックを実行し、次いでそれらを既知の挙動シグネチャ(behavior signature)と照合する必要がある。従来の解析器の別の不利な態様は、システム監視の過程で、従来の挙動解析自体が、脅威を予測し、又は脅威のリスクを追跡する特徴を持たないことである。従来の解析器の更に別の不利な態様は、シグネチャ、検出ルール、及びイベント処理ルールを更新する挙動解析器の非柔軟性であり、更新の受信は、ライブラリ又はコンパイルされたコードの形態であり、適用可能性、エラーハンドリング、差分更新等に関して制限がある。
【発明の概要】
【発明が解決しようとする課題】
【0004】
したがって、従来技術の上記不利な態様を解消する、標的デバイスへの悪意のある活動を識別するシステム及び方法が必要とされる。
【課題を解決するための手段】
【0005】
本明細書に開示される実施形態及び技術的態様は、挙動解析を介して標的デバイスでの悪意のある活動を識別するシステム及び方法に関する。
本開示は、標的デバイスの挙動解析に基づいて標的デバイスでの悪意のある活動を識別するための方法を考案する。標的デバイスは、挙動解析器が実施される仮想マシンに接続される。挙動解析器は、対象物又は標的データイベントの挙動を解析するために実行される一組のスクリプト命令である。仮想マシンは、挙動解析器スクリプト命令を解釈し、挙動解析器の複数のオブジェクトと協働する。本方法は、仮想マシンにおいて標的デバイスの複数のシステムイベントを検索することと、対象となる少なくとも1つのイベントを識別するために、複数のフィルタを標的デバイスの複数のイベントと関連付けられた複数のイベントパラメータに適用することによって複数のシステムイベントをフィルタリングすることと、有限状態遷移テーブルに従って有限状態機械の状態を予期される状態に変更することと、脅威ハンドラーにおいて、予期される状態について定義される命令を実行して、標的デバイスでの悪意のある活動のインスタンスを特定することと、を含む。
【0006】
非限定的な代替の実施形態では、挙動解析器リポジトリは、複数のイベントに対応する複数の予期される有限状態と関連付けられた情報を含む挙動解析器に接続される。
非限定的な代替の実施形態では、対象となる少なくとも1つのイベントは、悪意のある攻撃又は悪意のある活動の機会に標的デバイスをさらすイベントである。
【0007】
非限定的な代替の実施形態では、1つ又は複数のイベントパラメータは、レジストリキー、アクセス許可、及びネットワークセッションパラメータを含む。
本開示は、標的デバイスの挙動解析に基づいて標的デバイスへの悪意のある活動を識別するシステムも考案する。本システムは、標的デバイスに接続されて、標的デバイスの複数のシステムイベントを検索する仮想マシンを備え、仮想マシンは挙動解析モジュールを実行する。挙動解析モジュールは、対象となる少なくとも1つのイベントを識別するために、標的デバイスの複数のイベントと関連付けられた複数のイベントパラメータをフィルタリングするように構成されたイベント処理モジュールと、有限状態機械に従って有限状態機械を予期される状態に変更するように構成されたイベント相関器モジュールと、標的デバイスへの悪意のある活動のインスタンスを識別するように構成された脅威ハンドラーモジュールとを含む。
【0008】
非限定的な代替の実施形態では、本システムは、挙動解析器に接続された挙動解析器リポジトリを更に備え、挙動解析器リポジトリは、複数のイベントに対応する複数の予期される有限状態と関連付けられた情報を含む。
【0009】
非限定的な代替の実施形態では、対象となる少なくとも1つのイベントは、悪意のある攻撃又は悪意のある活動の機会に前記標的デバイスをさらすイベントである。
非限定的な代替の実施形態では、1つ又は複数のイベントパラメータは、レジストリキー、アクセス許可、及びネットワークセッションパラメータを含む。
【0010】
代替及びその変形を含め、本開示の実施形態のよりよい理解は、以下の図面と共に実施形態の詳細な説明を参照することによって得ることができる。
【図面の簡単な説明】
【0011】
図1】本開示の一実施形態による、標的デバイスの挙動解析に基づいて標的デバイスでの悪意のある活動を識別するシステムを示すブロック図を示す。
図2】本開示の一実施形態による、標的デバイスの挙動解析に基づいて標的デバイスでの悪意のある活動を識別するシステムのプロセスを示すブロック図を示す。
図3】本開示の一実施形態による挙動解析器ルールを準備する方法を示す。
図4】本開示の一実施形態による、標的デバイスの挙動解析に基づいて標的デバイスでの悪意のある活動を識別するシステムの方法を示すブロック図を示す。
【発明を実施するための形態】
【0012】
これより実施形態について、好ましい実施形態が示される添付図を参照して以下より十分に説明する。しかしながら、上記は、本開示と一貫した代替の構成で実施することも可能である。
【0013】
図1は、本開示の一実施形態による、標的デバイス102の挙動解析に基づいて標的デバイスでの悪意のある活動を識別する、以下システム100と呼ばれるシステム100を示すブロック図を示す。システム100は、標的デバイス102で実行中のオペレーティングシステム及びアプリケーション103での悪意のある活動を識別するために標的デバイス102で実施される。システムは主に、標的デバイス102で実施される挙動解析器と共に仮想マシン104を含む。標的デバイス102の例には、少なくとも1つ又は複数のラップトップ、デスクトップ、サーバ、ゲートウェイ、通信ポート、ハンドヘルド又はモバイルデバイス、ファイアウォール等があり得る。
【0014】
一実施態様では、仮想マシン104は標的デバイス102上に構成され得る。仮想マシンは、プログラム及び関数を実行するために、物理的計算マシンの代わりにそれ自体のソフトウェアを使用する計算リソースである。例えば、仮想マシンはそれ自体のオペレーティングシステムを実行する。1つの計算システムで複数の仮想マシンを実行することができ、その場合、各仮想マシンはそれ自体のオペレーティングシステムを利用し、同じ計算マシンで実行中の他の仮想マシンとは別個に実行される。仮想マシンはサーバ仮想化に使用することができ、ユーザがユーザの複数の計算リソースを統合し、効率を上げられるようにする。さらに、仮想マシンは、ホスト標的デバイスで実行するには脅威であると見なされる特定のタスクを実行することができる。そのようなタスクの例には、ウイルスに感染したデータへのアクセス、オペレーティングシステムのテスト、未知且つ未識別の関数の実行等があり得る。仮想マシンは、ホスト標的デバイスの残りの部分とは別個であるため、いかなる脅威もホスト標的システムに課すことなく関数を実行することができる。仮想マシンで生じたあらゆる誤作動は、ホスト標的デバイスの性能に影響することができない。仮想マシンのこれらの有利な技術的態様は、当分野で現在既知の技術と比較して本趣旨をより効率的、より堅牢、且つ最も安全にする。挙動解析の処理に仮想マシンを使用することの別の利点は、イベント処理動作、挙動ハンドリング動作、及び挙動解析器の他の動作の標的デバイスのアプリケーション、システムサービス、及びハードウェアとの互換性である。
【0015】
図1で参照される仮想マシンは標的デバイス102で実行される。標的デバイスのオペレーティングシステム及びシステム構成要素は、仮想マシンによってアクセスすることができる。仮想マシンは、データ伝送及び通信のための伝送方法を介して標的デバイスに接続することができる。伝送方法の例には特に、ネットワークソケット、プロセス間通信(IPC : Inter-Process communication)、及び共有メモリがあり得る。ネットワークソケットは、ネットワークを経由したデータの送受信のエンドポイントとして機能する、コンピュータネットワークのネットワークノード内の構造である。ソケットは、ノードで実行中のアプリケーションのプロセスの有効期間中のみ作成される。IPCは、あるプロセスの別のプロセスとの通信を含む。IPCは、親プロセス及び子プロセス等の1つのみのプロセスから開始された関連プロセス間及び非関連プロセス間又は2つ以上の異なるプロセス間で機能することができる。伝送方法の更なる例には、ファイバチャネル(Fibre Channel : FC)又はインターネッSCSI(Internet SCSI : iSCSI)プロトコルを使用して直接接続されたストレージにサポートされるストレージエリアネットワーク(Storage Area Network : SAN)、ESXサーバに常駐する仮想マシンにインストールされる仮想サーバエージェントであるHotAdd、ESXサーバと標的デバイス/プロキシコンピュータとの間でTCP/IP接続を介してデータを伝送するローカルエリアネットワーク(NBD及びNBDSSL)、仮想サーバエージェント(virtual server agent : VSA)プロキシコンピュータが、ESXホストを経由せずに又はLANを経由してデータを転送せずにネットワークファイルサーバ(network file server : NFS)から直接データを読み出せるようにするネットワーク接続ストレージ(Network Attached Storage : NAS)等があり得る。それ故、仮想マシンは、システムログ及びフック(hooks)を含む、標的デバイスのオペレーティングシステムで処理されている関連プロセス又は非関連プロセスにアクセスすることができる。別の実施態様では、仮想マシンはリモートサーバを介して標的デバイスに接続することができる。
【0016】
本趣旨の実施形態によれば、標的デバイス102はオペレーティングシステム及び他のアプリケーションを含む。標的デバイス102は、1つ又は複数のプロセッサ及び1つ又は複数のメモリを含む任意のスマートデバイス又は計算システムであり得る。オペレーティングシステムは1つ又は複数のオペレーティングシステム構成要素を有する。システム構成要素へのアクセスは仮想マシンと共有されて、標的デバイス102で生じる全てのイベントのイベントパラメータを処理する。1つの考えられる例示的な実施形態によれば、標的デバイス102のリモート直接メモリアクセスを仮想マシン104に提供することができ、それにより、仮想マシン104が標的デバイス102のランダムアクセスメモリ(RAM)にアクセスして、そこからシステムイベントパラメータを非侵襲的に検索することを保証する。
【0017】
標的デバイス102は、ラップトップ、デスクトップ、サーバ、ゲートウェイ、通信ポート、又はモバイルデバイス等の、プロセッサを有する計算デバイスである。ネットワークは、複数の計算デバイス及び複数の地理的場所間に分散し得る。マルウェア脅威は、ネットワーク脅威、物理的近接性脅威、セカンダリロケーション脅威(secondary location threats)等から生じ得る。標的デバイス102は、インターネットを通して非保護サーバと対話するとき、脅威をピックアップする(picks up)。
【0018】
仮想マシン104は、本開示の一実施形態によれば、挙動解析器106を実行するように構成されている。挙動解析器は、一実施態様では、限定ではなく、高水準プログラミング命令を使用して、カーネルレベルイベント及びオペレーティングシステムに由来するイベントに関する悪意があり疑われる挙動を示しているプロセスを検出して停止させるように構築されたツールである。挙動解析器は、対象物の挙動及び幾つかの場合ではその意図される又は潜在的な挙動を解析して、疑いのある活動を検出するように構成されている。挙動解析に基づくマルウェア検出は、その挙動を実際に実行することができるようになる前に、その意図される行為に基づいて標的デバイス対象物を評価する。例えば、特定のユーザには許可されない行為、その特定の標的デバイスでの実行は異常である行為等の実行を試みることは、対象物の又は活動の挙動に潜在的に悪意があることを示す。悪意がある又は疑いがあると見なすことができる意図される挙動の更なる例には、サンドボックス環境を発見しようとする試み、セキュリティ制御の無効化、ルートキットのインストール、オートスタートへの登録等があり得る。そのような悪意のある挙動を評価することは、動的解析と見なされる。
【0019】
先に触れたように、挙動解析器は、高水準プログラミング言語を使用して構築されるツールである。高水準プログラミング言語でコード化された実行可能命令はスクリプト又はバイトコードと呼ばれる。スクリプトを実行するには、仮想マシンはインタプリター(interpreter)として機能する。高水準言語はコンパイラーの代わりにインタプリターを使用する。ここでの目的は、プログラムを機械コードに翻訳する必要なく言語を理解して実行することができる中間コードを作成することである。したがって、本明細書における仮想マシンは、高水準言語にコード化された挙動解析の一組の命令を理解して実行し、標的デバイスのプロセッサによってスクリプトをコンパイルする必要なく命令を実行することができる中間コードとして作用する。一組の命令は、本説明全体を通して挙動解析器と呼ばれるスクリプトである。
【0020】
挙動解析器は高水準プログラミング言語を使用して構築される。例えば、一実施態様では、Luaスクリプトが一組の命令の構築に使用される。Luaは軽量、高水準のマルチパラダイムプログラミング言語である。Luaは、コンパイルされたバイトコードがANSI Cで書かれる場合、インタプリターとしてのクロスプラットフォーム言語(cross-platform language)である。
【0021】
挙動解析器は、挙動検出を初期化する挙動検出モジュール106Aを含む。挙動検出はルール構造に基づく。ルール構造は仮想マシンによって実行される。ルール構造は基本的に、異なるタイプのアレイ及びディクショナリ(dictionaries)を表すデータ構築メカニズムである。各ルールは、数字のみならず文字列でも索引付けすることができるアレイを有するテーブルである。標準のグローバルルールとして、仮想マシン内部のルールは、検出する異なるイベントと関連付けられたデータ構造を有するテーブルを含む。実施形態の特定の実装では、ルールは、検出する悪意のあるイベントと関連付けられたデータ構造を有する一組のテーブルを含む。例えば、RuleEmotet。Emotetはユーザのコンピュータに入り込み、機密のプライベート情報を盗もうとするバンキングトロイの木馬である。Emotetマルウェアは既知であるため、Emotetと関連付けられたシグネチャ及び命令はRuleEmotetテーブルに記憶される。同様に、そのような悪意のあるイベントを識別するために、Luaにおいて一組のテーブルが作成される。
【0022】
ルールは特に2つのステージに分割される:第1にシグネチャオートマトン(signature-automata)であり、第2に論理ブロック。挙動解析器はイベントと関連付けられたシグネチャを抽出する。シグネチャは、コンピュータネットワーク又はシステムでの悪意のある攻撃と関連付けられた典型的なフットプリント又はパターンである。このパターンは、ネットワークトラフィック中のファイル(バイトシーケンス)中のバイトシーケンスであることができる。未許可のソフトウェア実行、未許可のネットワークアクセス、未許可のディレクトリアクセス、又はネットワーク特権使用における異常の形態をとることもできる。
【0023】
挙動解析器は更に、シグネチャの論理的組合せである複数の表現を抽出し、複数の表現を結合して1つの論理ブロックにする。複数の論理表現は、シグネチャイベントを識別する一組のブール演算子であることができる。シグネチャイベントは、パケットタイプ、パケットタイプのシーケンス、又はカウント若しくは時間期間等の幾つかのシグネチャ関連イベントのいずれか1つであり得る。複数の論理演算子は、カウントが特定の値を超えるか否か等のシグネチャイベント間の関係を記述するのに使用される。各シグネチャについて、これらの識別子及び演算子の1つ又は複数は結合されて、そのシグネチャを記述する正規表現を提供する。
【0024】
挙動解析器は、シグネチャに関連する機能である複数のハンドラー(handlers)を更に抽出し、ハンドラーを論理ブロックに記憶する。特に、2つの引数、即ちコンテキスト及びイベントを有する関数であり、両引数ともテーブルである。コンテキストは最初、空であり、幾つかの要素はCtxCreateイベント時にイベントから結合される。イベントは、現在処理されたイベントのキーバリュー対(key-value pairs)を含む。ハンドラーは、対応する表現が真になるとき、呼び出される。ハンドラーの例にはPrint(a,b,c・・・)がある。プリント関数(print function)は、何かをコンソールにプリントするために呼び出され、ルールデバッグ中に特に有用である。少数の他の例には、trace(level,message)、get_context(puid)、on_event(context)等がある。
【0025】
したがって、挙動検出モジュール106Aはルール構造を初期化して、イベントに関連するシグネチャ、論理表現、及びハンドラーを処理する。イベントは、標的デバイス102のイベントと関連付けられたイベントパラメータをフィルタリングして、対処となる少なくとも1つのイベントを識別するように構成されたイベント処理モジュール106Bによって処理される。一実施形態によれば、対象となる少なくとも1つのイベントは、悪意のある攻撃及び/又は悪意があり疑いのある活動の機会に標的デバイスをさらす(exposes)イベントである。対象となるイベントの幾つかの例には、限定されないが、インターネットを通した非保護サーバとのインターフェース又はUSBフラッシュメモリスティックの標的デバイスへの接続等がある。非限定的な代替の実施形態では、1つ又は複数のイベントパラメータはレジストリキー(registry key)、アクセス許可、及びネットワークセッションパラメータ等を含む。
【0026】
挙動解析器は、本実施形態の実施態様に従って新たなプロセスのコンテキストを生成する。特別なイベントCtxCreateは、1つ又は複数の属性が畳まれた状態でこのコンテキストに送信される。属性の例には、cmdline、image_filename、pid、parent_pid、sidがある。新たなイベントは1つの文字列に畳まれる。一例では、文字列はgen-lineである。順序が固定された、全てではなく特定の属性のみが文字列に畳まれる。1つ又は複数のフィルタを適用して、特定のイベント属性を選択することができる。文字列は次いで、ルールからの全てのシグネチャと突き合わせてチェックされる。選択された属性のみが文字列に結合され、明確にするために値x01、x02を有するバイトによって隔てられる。
【0027】
挙動解析モジュール106は、実施形態の実施態様によれば、イベント相関器モジュール106Cを更に含む。複数の関連表現は、イベントを相関付けるために評価される。イベント相関器モジュール106Cは、状態遷移テーブルに基づいてある状態から別の状態に遷移するのに有限状態機械を使用する。有限状態機械は、順次論理のシミュレートに使用することができる計算モジュールである。基本的に、有限状態機械は実行フローを表し、制御する。イベントシーケンス、イベントパラメータ、及び処理中のイベントに関連する疑いのある又は悪意のある活動の特性に基づいて、有限状態機械の状態はイベント相関器モジュールによって変わる。イベント相関器モジュールは、有限状態遷移テーブルに従って有限状態機械の状態を対象となるイベントに対応する予期される状態(expected state)に変更するように構成されている。テーブルAは、イベントシーケンス及び表現評価の例示的な実証である。テーブルAは静的でグローバル(global)である。テーブルに記載されるように、考慮されている複数のイベント、即ちイベントa、b、及びcがある。対応する表現は、「and(および)、or(または)、then(その後)、except(予期する)」を含む行4~15に記載される。ここでの各イベントは、このイベントが生じたときに実行される幾つかのトリガーを有する。例えば、イベントAが生じたとき、以下の行為が実行される。
【0028】
1.ハンドラー1が実行される。
2.イベント2(b)が既に設定されている場合、イベント4(a及びb)が生じる。
3.イベント6(a及びb)が自動的に生じ、次いでイベント12(a、b、又はc)が生じる。その結果、ハンドラー7が実行される。
【0029】
4.「or」条件が自明に評価される。
5.「and」及び「then」条件は、2つのオペランドを有するトリガーを必要とする。複雑な条件はトリビアル(trivial)に分割される。コンテキストイベントベクトルが、監視される各プロセスに作成され、ゼロで埋められる。
【0030】
【表1】
【0031】
挙動解析モジュール106は、有限状態機械によって生成された状態に基づいて特定されたイベント相関に基づいて、挙動脅威を識別するように構成された脅威ハンドラーモジュール106Dを更に含む。例えば、イベント相関付け中、イベントが、未許可データファイルへのアクセス試行に一致する場合、脅威ハンドラーモジュールは、標的デバイスでの悪意のある活動のインスタンスであると判断することができる。悪意のある活動のインスタンスが標的デバイス102で発生したと脅威ハンドラーモジュール106Dが判断した場合、脅威ハンドラーモジュール106Dは、更なる行為のために、悪意のある活動のインスタンスを標的デバイス102上のマルウェア対策セキュリティソリューションファームウェア(anti-malware security solutions firmware)に通知するように更に構成することができる。
【0032】
システム100は、仮想マシンインタプリターを介して挙動解析器に接続される挙動解析器リポジトリ(behavior analyzer repository)108を更に備える。挙動解析器リポジトリ108は、複数のイベントに対応する予期される有限状態と関連付けられた情報を含む。一実施形態では、挙動解析器リポジトリ108は1つ又は複数のルールを含む。そのようなルールについて図3と関連してより詳細に後述する。
【0033】
図2は、本開示の一実施形態による、標的データの挙動解析に基づいて標的デバイスでの悪意のある活動を識別するシステムのプロセス200を示すブロック図を示す。プロセス200は、一実施形態によれば、システム100によって実行することができることに留意されたい。ブロック202において、プロセス200は、イベントリスト、イベントフィルタリングのためのイベント属性、状態遷移テーブル、及びスクリプトの形態の命令を含む更新を仮想マシン104の挙動解析器モジュール106にロードすることを含む。一実施形態によれば、イベントリスト、イベントフィルタリングのためのイベント属性、状態遷移テーブル、及びスクリプトの形態の命令を含む更新は、挙動解析器リポジトリ108によって提供される。一実施態様では、この情報は挙動解析器モジュール106にリアルタイムで提供され得、即ち、挙動解析器リポジトリ108によって提供される情報は、挙動解析器モジュール106によって現在処理されている一つのイベントに対応し得る。
【0034】
ブロック204において、プロセス200は、指定されたイベントリスト及び対象となるイベントを登録するためのイベント属性を用いてイベント処理モジュール106Bを初期化することを含む。より具体的には、イベント処理モジュール106Bに、標的デバイス102で動作中の全てのイベントのイベントパラメータが提供される。
【0035】
ブロック206において、プロセス200は、指定されたイベントを登録しフィルタリングすることを含む。ここで指定されたイベントは、対象となるイベントを意味する。指定されたイベント及び対象となるイベントという用語は、本開示において同義で使用可能である。一実施形態では、このステップは挙動解析器モジュール106のイベント処理モジュール106Bによって実行される。
【0036】
ブロック208において、プロセス200は、状態遷移テーブルに従って有限状態機械(又は仮想マシン104)の状態を変更することを含み、各状態はイベントシーケンス、イベント属性、及び特定の状態条件に関連する。一実施態様では、イベント相関器モジュール106Cはこのステップを実行する。より具体的には、挙動解析器リポジトリ108は、イベントシーケンス、イベント属性、及び特定の状態条件に関連する状態と関連付けられた情報をイベント相関器モジュール106Cに提供して、挙動解析器リポジトリ108によって提供されるものへの仮想マシン104の状態の変更を可能にする。先に触れたように、この状態は、仮想マシン104でシミュレートされた標的デバイス102の予期される状態である。仮想マシン104でシミュレートされる標的デバイス102のこの予期される状態は解析され、標的デバイス102のリアルタイム状態と比較される。
【0037】
ブロック210において、プロセス200は、状態が脅威を識別するか否かを問い合わせることを含む。より具体的には、脅威ハンドラーモジュール106Dは、標的デバイスでの悪意のある又は疑いのある挙動を識別するように構成されている。悪意のある活動のインスタンスが標的デバイス102で生じたと脅威ハンドラーモジュール106Dが判断する場合、脅威ハンドラーモジュール106Dは、プロセス200のブロック212に示すように、更なる行為のために、悪意のある活動のインスタンスを標的デバイス102上のマルウェア対策セキュリティソリューションファームウェアに通知するように更に構成することができる。
【0038】
脅威が検出されない場合、プロセス200はブロック214に進み、プロセスは、スクリプト命令が標的デバイス102の現在の状態について定義されているか否かを問い合わせる。スクリプト命令が定義されている場合、プロセスはブロック216に進み、スクリプト命令が実行される。スクリプト命令が定義されていない場合、プロセスはブロック218に進み、対象となる次のイベント又は指定された次のイベントが、イベント相関器モジュール106Cによる処理に採用される。
【0039】
ブロック216においてスクリプト命令が実行されると、プロセスはブロック220に進み、プロセスは、ブロック216におけるスクリプト命令の実行後、特定の状態条件チェックが現在の状態について定義されているか否かを問い合わせる。この現在の状態についてのそのようなチェックが挙動解析器リポジトリ108で利用可能な場合、プロセスはブロック222に進み、チェックがイベント相関器モジュール106Cによって実行され、それに続けて、プロセスはブロック208にリダイレクトされ(redirected)、上記ステップが繰り返される。そのようなチェックが利用可能ではない場合、プロセスはブロック218に進み、対象となる次のイベント又は指定された次のイベントが、イベント相関器モジュール106Cによる処理に採用される。
【0040】
図3は、挙動解析器ルールを準備する方法を示す。方法はプロセッサで実行される。方法は主に、ブロック302において、既知のマルウェアサンプルのクラスを実行することを含む。ブロック304において、方法は、サンプル実行に関連する全てのイベントを収集することを含む。さらに、ブロック306において、方法は信頼できるソフトウェアのクラスを実行することを含む。ブロック308において、方法は、信頼できるソフトウェアに関連する全てのイベントを収集することを含む。ブロック310において、方法は、既知のマルウェアサンプルのクラスを特徴付けるイベント及び条件のセットを識別することを含む。ブロック312において、方法は、予期される誤検出率での挙動マルウェア解析のイベント及び条件状態の状態遷移テーブルを生成することを含む。ブロック314において、方法は、疑いがある悪意のある活動に応答するための命令をグラフの状態に追加することを含む。さらにブロック316において、方法は、イベントリスト、イベントフィルタリングのためのイベント属性、状態遷移テーブル、及びスクリプトの形態の命令を含む標的計算システムの挙動解析器ルールを更新することを含む。ブロック318において、方法は、専用仮想マシン上の挙動解析スクリプトインタプリターでスクリプトを実行して、標的デバイスでのマルウェアを検出することを含む。
【0041】
図4は、本開示の一実施形態による、標的デバイスの挙動解析に基づいて標的デバイスでの悪意のある活動を識別する方法400を示すブロック図を示す。方法400が記載される順序は限定として解釈されることを意図されず、方法又は任意の代替の方法を実施するために、記載される方法ブロックのうちの任意の数のブロックを任意の順序で組み合わせることができることに留意されたい。さらに、本明細書に記載の趣旨の精神及び範囲から逸脱せずに、個々のブロックは方法から削除し得る。さらに、方法は、任意の適したハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せで実施することができる。
【0042】
方法400は、本趣旨の一実施形態によれば、システム100によって実施し得る。ブロック402において、方法400は、仮想マシン104において標的デバイス102のイベントを検索することを含む。仮想マシン104は、インターネットを介して標的デバイス102に通信可能に結合され得る。さらに、一実施態様では、標的デバイス102の動作速度及び計算リソースに影響せずに標的デバイス102からシステムイベントパラメータを抽出するために、仮想マシン104に、標的デバイス102のリモート直接メモリアクセスを提供し得る。
【0043】
ブロック404において、方法400は、標的デバイス102のイベントと関連付けられたパラメータによってイベントをフィルタリングして、対象となる少なくとも1つのイベントを識別することを含む。一実施形態では、対象となるイベントは、悪意のある攻撃又は悪意のある活動の機会に標的デバイスをさらすイベントである。対象となるイベントという用語は、本開示において指定されたイベントとも同義で呼ばれる。一実施形態では、このステップはイベント処理モジュール106Bにおいて実行される。
【0044】
ブロック406において、方法400は、仮想マシンの状態を対象となる少なくとも1つのイベントに対応する予期される状態に変更して、対象となる少なくとも1つのイベントに対応する標的デバイスのリアルタイム状態と比較することを含む。一実施形態では、このステップはイベント相関器モジュール106Cによって実行される。
【0045】
ブロック408において、方法400は、予期される状態及びリアルタイム状態を解析することを含む。一実施形態では、このステップはイベント相関器モジュール106Cによって実行される。
【0046】
ブロック410において、方法400は、予期される状態とリアルタイム状態との間の不一致を識別して、標的デバイスでの悪意のある活動のインスタンスを決定することを含む。一実施形態では、脅威ハンドラーモジュール106Dは、予期される状態とリアルタイム状態との間の不一致を識別して、標的デバイスでの悪意のある活動のインスタンスを決定するように構成されている。悪意のある活動のインスタンスが標的デバイス102で生じたと脅威ハンドラーモジュール106Dが判断する場合、脅威ハンドラーモジュール106Dは、プロセス200のブロック212に示すように、更なる行為のために、悪意のある活動のインスタンスを標的デバイス102上のマルウェア対策セキュリティソリューションファームウェアに通知するように更に構成されることができる。
【0047】
こうして本趣旨の特定の実施態様について説明した。他の実施態様も以下の特許請求の範囲内である。幾つかの場合、特許請求の範囲に記載される行為は異なる順に実行することができ、それでもなお所望の結果を達成することができる。特定の実施態様では、マルチタスク処理及び並列処理が有利であり得る。
図1
図2
図3
図4
【外国語明細書】