(58)【調査した分野】(Int.Cl.,DB名)
悪意のある攻撃者からの未知の攻撃に対して、攻撃者に対してあたかも攻撃が成功しているかのように擬似的な応答を生成するため、通常の通信を行わず、受信するパケットは悪意があると推定できる擬似的なホスト装置である仮想ホスト装置であって、
攻撃ホスト装置からパケットを受信すると、該パケットからペイロードを抽出し、攻撃パターンを検出するためのマスキングルールが格納されたマスキングルールDBのマスキングルールを適用してマスキングを行い、マスキング後のパターンが、攻撃パターンDBに登録されているかを判定するパターン判定手段と、
前記パターン判定手段において、前記マスキング後のパターンが前記攻撃パターンDBに登録されていなかった場合は、該マスキング後のパターンを該攻撃パターンDBに登録し、登録されていた場合は、該パケットのセッション情報、前記マスキングルール、該マスキング後のパターン及び悪意のある攻撃パターンとその応答パターンが格納された攻撃応答パターンDBから取得した該応答パターンにより擬似応答パケットを生成する応答生成手段と、
受信したパケットのペイロードと一つ前に受信したパケットのペイロードのデータ列の差分量を求め、該差分量が所定の値より小さく、差分のデータ列が同一フローにおける過去のパケットに存在する場合は、差分を可変パラメータとしてマスクパターンを生成し、前記マスクパターンDBに登録するマスキングルール生成手段と、
を有することを特徴とする仮想ホスト装置。
【発明を実施するための形態】
【0012】
以下図面と共に、本発明の実施の形態を説明する。
【0013】
本発明は、低対話型ハニーポットが未知の攻撃に対し応答可能なシステムを提案するものである。
【0014】
本発明に示すシステムは、一般ユーザの通信が流れるネットワークを分析し、マルウェアの攻撃パターンを抽出し学習する。学習した攻撃パターンに基づき、本システムはマルウェアからの通信要求に対して、あたかも攻撃が成立したかのようにみせかけることを可能とするような擬似的な応答を返すものである。
【0015】
図1は、本発明の一実施の形態におけるシステム構成を示す。
【0016】
同図に示すシステムは、通信監視装置100、仮想ホスト装置(以下、単に「仮想ホスト」と記す)200、マスキングルールDB310、攻撃パターンDB320,攻撃応答パターンDB330、複数のホスト装置A,
B(以下、単に「攻撃ホスト」と記す)、
ホスト装置C(被攻撃ホスト)、ルータ等のデータ転送装置400から構成される。
【0017】
マスキングルールDB310は、攻撃パターンを検出するためのマスキングルールを格納する。
【0018】
攻撃パターンDB320は、攻撃パターンを格納し、マスキング後の通信パターンと照合される。
【0019】
攻撃応答パターンDB330は、マルウェア等の悪意のある攻撃パターンとその応答パターンを記録・保持する。攻撃応答パターンは、攻撃を構成するセッション情報(セッションにおいて何パケット目にどのような通信が生じるかといった情報)と、データ部(ペイロード・応答パターン)で構成される。
【0020】
同図に示すシステムにおける主要な構成要素は、通信監視装置100と仮想ホスト200の2つである。
【0021】
(1)通信監視装置:
まず、通信監視装置100について説明する。
【0022】
通信監視装置100は、独立した装置としてネットワークにおける外部接続点等の任意の位置に設置する。通信監視装置100は、セッション管理部110、攻撃判定部120、通信パターン分析部130から成り、マルウェアの攻撃パターンを抽出し、学習する。
【0023】
通信監視装置100は外部から到着したすべての通信を通信パターン分析部130に転送することもできるが、一部の通信パターンのみを通信パターン分析部130に転送することで通信パターン分析部130の負荷を低減することもできる。以下、後者の方法について述べる。
【0024】
通信監視装置100におけるセッション管理部110では到着するパケットをセッションの単位で管理し、該当したパケットがどのセッションに属するか、あるいは何パケット目であるかといった情報をメモリ(図示せず)で記録・管理する。ここでセッションとは通信の開始から終了までの一連のデータ集合を指す。各パケットは攻撃通信に含まれる主たるサービスのバイト列であるペイロードを含む。
【0025】
通信監視装置100がパケットを受信すると、はじめにセッション管理部110においてどのセッションのパケットであるかを確認し、次に該セッションにおいて何パケット目の通信であるかを確認する。その値をXとして(X=1,2,3,…)メモリ(図示せず)に格納する。
【0026】
次に、攻撃判定部120では、セッション管理部110で取得したセッションにおけるパケット番号の情報(X)をもとに、動的に変化する部分を削除し、必要な情報のみを抽出するためのマスキングルールが格納されたマスキングルールDB310を参照し、情報Xに該当するマスキングルールの集合Ωを得る。マスキングルールについては後述する。さらに該パケットのペイロードに対して、取得したマスキングルールの集合Ωに含まれるルールをそれぞれ適用する。各々のマスキングルールを該パケットのペイロードに適用した結果が攻撃パターンDB320に存在するかを参照し、存在した場合について、その後の該パケットに対する応答も含めて通信パターン分析部130に転送する。複数マッチする場合は最初のものを採用するか、ランダムに選択した結果を採用する。
【0027】
また、通信監視装置100は、攻撃パターンDB320を予め定められた周期が到来するごとに走査し、現在時刻とエントリーしている通信パターンの最終更新日時の差が一定値よりも大きい場合に該エントリーを攻撃パターンDB320から削除する。
【0028】
通信パターン分析部130は、攻撃判定部120を通過して送られてきた情報を元に、攻撃応答パターンDB330を管理する。
【0029】
(2)仮想ホスト:
次に、仮想ホスト200について説明する。
【0030】
仮想ホスト200は攻撃者からみて脆弱性がある通常のホストとして振舞う。すなわち擬似的なホストの役割を果たす。仮想ホスト200は通信機能を有し、通信に必要なアドレス(IPアドレス等)が割り当てられる。アドレスは複数割り当てることも可能である。また、仮想ホストは通常の通信を行わないため、外部からの通信を受信した場合、高い確率で悪意がある通信であるとみなすことができる。
【0031】
図2は、本発明の一実施の形態における仮想ホストの構成を示す。
【0032】
同図に示す仮想ホスト200は、通信受信部210、セッション管理部220、セッションDB230、パターン判定部240、応答生成部250、通信装置部260から構成され、パターン判定部240には、攻撃パターンDB320、マスキングルールDB310
、攻撃応答パターンDB330が接続され、応答生成部250には攻撃応答パターンDB330が接続されている。
【0033】
仮想ホスト200は、外部からの通信を通信受信部210で受信する。受信された通信データはセッション管理部220へと送られ、セッションごとの通信状態がセッションDB230で管理される。さらに通信データはパターン判定部240へと送られる。パターン判定部240では受信した通信データに対してマスキングルールDB310(後述)に登録されたマスキングルール(後述)を適用し、得られたマスキング後の通信パターンに基づいて攻撃パターンDB320を参照する。前記マスキング後の通信パターンが攻撃パターンDB320に登録されていなかった場合、当該マスキング後の通信パターンを攻撃パターンDB320に登録するとともに最終更新日時を更新する。
【0034】
攻撃パターンDB320に登録されていた場合は、前記セッション情報、マスキングルール、およびマスキング後の通信パターンを応答生成部250に送信する。応答生成部250は該通信パターンを攻撃応答パターンDB330に照会し、応答パターン得る。次に、応答生成部250は、前記応答パターン、マスキングルール、ならびに該通信パターンに対応するセッション情報を使って応答通信を生成する.応答通信の生成方法は後述する。前記生成した応答通信は通信送信部260を通じて該通信の送信元ホストへの応答として送信される。
【0035】
(3)マスキング手法:
次に、仮想ホスト200によるマスキングの手法について説明する。
【0036】
マスキング手法はペイロードにセッションに固有な可変パラメータが含まれている場合でも、攻撃応答パターンDB300への検索と応答パケットの生成を可能にする手段である。以下のようなペイロード列を観測したとする。
【0037】
X1: aaaabbbbxxxxdddd
X2: aaaabbbbyyyyydddd
データ列X1とX2を含むパケットが送信されるきっかけとなった1つ前のパケットのペイロードが等しく、かつ、X1,X2の差異がごく僅かである場合、X1, X2はほぼ同一の中身であり、一部に可変パラメータを含むと推測できる。
【0038】
上記の例では、X1のxxxxとX2のyyyyyは既存の文字列差分抽出アルゴリズム等によって抽出できる。抽出した差分をペイロードにおける可変パラメータであると仮定し、前記可変パラメータに対してマスクを適用することにより抽象化することができる。
【0039】
マスキングのルールを正規表現の形式を利用して表現すると下記のようになる。
【0040】
Xabs: aaaabbbb(.+)dddd
上記がマスキング後の通信パターンとなる。ここで、未知のバイナリ列:X3
X3: aaaabbbbzzzzzzdddd
が出現した場合、X3をXabsのパターンでマスキングをして、その結果がXabsと一致する場合、X3はX1, X2と同じ種類であり、パラメータが異なるパケットとみなす。
【0041】
攻撃パターンを検出するためのマスキングのルールはマスキングルールDB310で管理される。
【0042】
以下ではマスキングルールを構成する方法を述べる。仮想ホスト200が受信するパケットは正常な通信が存在しないため、基本的に攻撃である可能性があり、マスキングルールの生成対象となる。仮想ホスト200は受信したパケットが該セッションにおける何パケット目であるか、および、攻撃応答パターンDB330の該パケット以前に判定されたパターンを元に、該パケットに対して参照すべきマスキングルールを限定する。例えば、
A->B->C->X
A->B->C->Y
A->B->C->Z
という4パケット目に可変パラメータを含む3パターンのフローが観測された場合、X,Y,Zのそれぞれに掛けるべきマスキングルールは、(A->B->C)というパターンが続いた場合のマスクというように限定する。また、そのようなマスクは複数存在する場合もある。
【0043】
このようにして得た、マスキングルールの集合を該パケットのペイロードに適用し、その結果と攻撃パターンDB320に登録された対応する攻撃通信パターンとの編集距離を算出し、編集距離が予め定めた閾値より小さかった場合に該当したマスクをマスキングルールDB310に登録する。なお、ここでは攻撃パターンDB320には予めいくつかの既存攻撃のパターンを登録するか、しばらく監視した後に頻出であると判定された攻撃パターンが登録されているとする。
【0044】
(4)応答パケットの生成方法:
次に、仮想ホスト200の応答生成部250において、可変パラメータを含む応答パケットの生成方法について説明する。
【0045】
ペイロードに含まれる可変パラメータは、セッション毎あるいはホスト毎に固有ではないケースがあり、事前に学習した攻撃パターンから一意に求まらないことがある。その場合は、仮想ホスト200よって確立されているセッションから可変パラメータを推定する必要がある。
【0046】
可変パラメータは主に以下のケースが存在する。
【0047】
1) ホストごとに固有の値 (IPアドレス,ポート番号,サーバ名,共有名(SMBプロトコルの場合)など):
2) セッションごとに固有の値 (プロセス番号,セッション識別子(ID)など):
3) Challenge and Response,ハッシュ等の一方向関数により生成された値:
ケース1)のIPアドレスやポート番号は、当該ホストのTCP/UDPレイヤ以下のヘッダに含まれるIPアドレスやポート番号から推測することが可能である。また、サーバ名・共有名等はユーザが任意に指定することができるため、仮想ホスト200側で適当な値を生成し、同一セッション内で同一の値を用いる限りは通信を成立させることができる。
【0048】
ケース2)のセッションごとに固有の値は、マルウェアから受信したパケット(X)に対してマスキング・パターン(Xabs)を適用して可変パラメータを抽出する。応答パケットの
パターン(Yabs)に可変パラメータを埋め込むことで、応答パケット(Y)を生成できる。
【0049】
a) X: aaabbbcccddd
b) Xabs: aaabbb(.+)ddd
c) 可変パラメータ : ccc
d) Yabs: oooppp(.+)rrr
e) Y: ooopppcccrrr
ケース3)の場合、一方向関数はプロトコルの仕様に依存することから、本システムの方式による可変パラメータ値の推定ができない。ケース3)の性質を持つパケットは本発明の対象外である。
【0050】
以下に、上記のシステム構成における方法について説明する。
【0051】
また、以下の例ではTCP/IPネットワークを対象とした実現形態の例を示すが、本発明の適用範囲はこの限りではない。
【0052】
図1に示すシステムにおいて、通信監視装置100は、ルータ等ネットワーク転送装置400に内部に実装しても良いし、外付けの形態でネットワークに接続される形態で実装しても良い。仮想ホスト200には監視対象とするIPアドレスを複数割り当て、攻撃元ホストからの攻撃に応答を返すことが出来る場所に設置する。通信監視装置100と仮想ホスト200はマスキングルールDB310、攻撃パターンDB320、攻撃応答パターンDB330のそれぞれを共有する。
【0053】
まず、通信監視装置100において、通信パケットを受信した後に、最終的に攻撃応答パターンを生成するまでの動作を説明する。
【0054】
図3は、本発明の一実施の形態における攻撃応答パターン生成までのフローチャートである。なお、以下の処理では、既に仮想ホスト200でマスキングルールDB310が構築されているものとする。
【0055】
ステップ101) 通信監視装置100のセッション管理部110は、ネットワークからパケットを受信する。
【0056】
ステップ102) セッション管理部110は、受信したパケットがどのセッションのパケットであるか、あるいは、何パケット目(パケット番号)であるかを、当該セッション管理部110内に保持しているセッションDB(図示せず)を参照することにより判定し、当該パケットの情報をメモリ(図示せず)に格納する。
【0057】
ステップ103) セッション管理部110は、受信したパケットからヘッダ情報とペイロードを抽出する。
【0058】
ステップ104) 攻撃判定部120は、パケットのペイロードに基づいて攻撃
応答パターンDB3
30を参照し、一致するものがある場合はステップ101に戻る。一致しない場合はステップ105に移行する。
【0059】
ステップ105) 攻撃判定部120は、攻撃応答パターンDB330にパケットのペイロードに類似するものがある場合は、ステップ106に移行し、ない場合はステップ10
1に移行する。ここで、ペイロードに類似するものとは、攻撃応答パターンDB330の攻撃通信パターンとパケットのペイロードとの編集距離が所定の値より小さいものを指す。
【0060】
ステップ106) 攻撃判定部120は、ステップ102で取得したセッションにおけるパケットのペイロードに基づいて、マスキングルールDB310を参照し、該当するマスキングルールを取得して適用し、マスキングを行い、マスキング後のパターンをメモリ(図示せず)に格納する。
【0061】
ステップ107) マスキング後のパターンが攻撃パターンDB320の攻撃パターンと一致するかを判定し、一致する場合にはステップ109に移行し、一致しない場合はステップ10
1に移行する。
【0063】
ステップ109)
ステップ107において、マスキング後のパターンが既知の攻撃パターンと一致しない場合は
ステップ101に移行し、一致する場合には攻撃応答パターンDB330に
マスキング後のパターンとペイロード及び、攻撃を構成するセッション情報を攻撃応答パターンとして追加する。
【0064】
次に、仮想ホスト200におけるマスキングルールの生成方法について説明する。
【0065】
図4は、本発明の一実施の形態におけるマスキングルール生成処理のフローチャートである。
【0066】
ステップ201) 仮想ホスト200のパターン判定部240は、攻撃パターンDB320からセッションの通信パターンを抽出する。
【0067】
ステップ202) パターン判定部240は、攻撃パターンDB320に格納されているフローを構成する第nまでのパケットが同一、あるいは、マスク処理済みの場合、第n+1のパケット同士で差分を計算する。ここで、
第nのパケット同士の差分とは、攻撃パターンDB320のパケットnのペイロードと
受信したパケット
nのペイロードの編集距離を指す。
【0068】
ステップ203) 計算された差分(編集距離)が僅か(所定の値以下)である場合はステップ204に移行し、所定の値より大きい場合はステップ210に移行する。
【0069】
ステップ204) ステップ203において、差分が僅かであると判定された場合は、「可変長パラメータあり」と判断する。
【0070】
ステップ205) 攻撃パターンDB320を参照して、ステップ202で求められた差分値が同一フローにおける過去のパケットに存在するかを判定し、存在する場合にはステップ206に移行し、存在しない場合はステップ211に移行する。
【0071】
ステップ206) パターン判定部240は、フローにおける差分の検出位置に基づいてマスクパターンを生成する。
【0072】
ステップ207) 攻撃パターンDB320から差分値に従属するパラメータ(例えば、IPアドレス)を検索する。
【0073】
ステップ208) パターン判定部240は、マスキングルールDB310にマスクパターンと従属パラメータを登録する。
【0074】
ステップ209) マスキングルール生成処理を終了する。
【0075】
ステップ210) ステップ203において、差分量が所定の値を越えている場合には、可変長パラメータなし、または、学習不可として、ステップ201に戻る。
【0076】
ステップ211) ステップ205において、差分値が同一フローにおける過去のパケットに存在していない場合は、可変長パラメータなし、または、学習不可、または、サンプル不足と判断し、ステップ201に戻る。
【0077】
次に、
図2に示す仮想ホスト200の疑似応答時の動作を説明する。
【0078】
図5は、本発明の一実施の形態における仮想ホストによる疑似応答送受信のフローチャートである。
【0079】
ステップ301) 仮想ホスト200の通信受信部210は、他ホスト(攻撃ホスト)からパケットを受信し、当該パケットのペイロードやセッション情報をセッションDB230に格納する。
【0080】
ステップ302) セッション管理部220は、受信したパケットにペイロードを含むか判定し、含む場合はステップ303に移行し、含まない場合はステップ301に戻る。
【0081】
ステップ303) パターン判定部240は、攻撃
応答パターンDB3
30を参照して、ステップ302で取得したペイロードに一致するパターンがあるかを判定し、ある場合はステップ308に移行し、ない場合は、ステップ304に移行する。
【0082】
ステップ304) ステップ303で一致するパターンが攻撃
応答パターンDB3
30にない場合は、類似するパターンがあるかを判定し、ある場合はステップ305に移行し、ない場合は、ステップ309に移行する。
【0083】
ステップ305) パターン判定部240は、マスキングルールDB310を参照して前述の方法によりマスキング処理を行う。
【0084】
ステップ306) マスキング後、攻撃パターンDB320を参照して、一致するパターンがあるかを判定し、ある場合はステップ307に移行し、ない場合はステップ310に移行する。
【0085】
ステップ307) 応答生成部250が応答パケット送信処理を行い、ステップ301に戻る。当該処理は後述する。
【0086】
ステップ308) 上記と同様の応答パケット送信処理を行い、ステップ301に戻る。
【0087】
ステップ309) パターン判定部
240は、ステップ304において、類似するパターンが攻撃
応答パターンDB3
30に存在しない場合は、攻撃パターンDB320に新たな攻撃パターンとしてペイロードを追加し、ステップ301に戻る。
【0088】
ステップ310) ステップ306において、マスキング後のパターンと一致するパターンが攻撃パターンDB320にない場合は、パターン判定部240において、当該パターンを新たな攻撃パターンとして攻撃パターンDB320に追加し、ステップ301に戻る。
【0089】
次に、上記のステップ307,308の応答パケット送信処理について説明する。
【0090】
ステップ401) 仮想ホスト200の応答生成部250は、攻撃応答パターンDB330より応答パターンを取得する。
【0091】
ステップ402) 取得した応答パターンがマスキング処理済みであるかを判定し、マスキング処理済みであればステップ403に移行し、マスキング処理がなされていない場合はステップ405に移行する。
【0092】
ステップ403) 応答生成部250は、マスキング処理がなされている場合には、セッションDB230に格納されているパケットのペイロードから可変長パラメータを抽出する。
【0093】
ステップ404) 前述の(4)の応答パケットの生成方法に示す方法により可変長パラメータを推定する。
【0094】
ステップ405) 応答パケットのパターンに可変長パラメータを埋め込み、応答パケットを生成する。
【0095】
ステップ406) 通信送信部260は、ステップ301で受信したパケットの送信元に応答パケットを送信する。
【0096】
なお、上記の通信監視装置100及び仮想ホスト200の各構成要素の動作をプログラムとして構築し、通信監視装置、仮想ホストとして利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
【0097】
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において種々変更・応用が可能である。