以下、図面を参照し、本発明の実施形態を説明する。
(第1の実施形態)
まず、本発明の第1の実施形態を説明する。本実施形態は、ドメイン名に対応したIPアドレスを検索する名前解決を行うDNSサーバのログに注目して、詐称されたSource IPを追跡する方法を実現したものである。攻撃元の通信装置は、攻撃パケットを送信する前に攻撃先のドメイン名(ホスト名)の名前解決をDNSサーバに依頼する。したがって、DNSサーバが保持するログを参照し、攻撃先の通信装置のドメイン名の名前解決を依頼した通信装置のIPアドレス(Source IP)の記録を探すことによって、Source IPを追跡することができる。
本実施形態は以下の事項を前提としているものとする。すなわち、Source IPの追跡対象となる攻撃は、DNSサーバを利用してドメイン名からIPアドレスを取得する過程を含むものであるものとする。したがって、IPアドレスを直接指定してパケットを送信する攻撃は対象外とする。また、攻撃元の通信装置がDNSサーバに名前解決を依頼する場合、攻撃元の通信装置自身がDNSサーバからの回答を受け取る必要があるため、名前解決の依頼時点では攻撃元の通信装置のIPアドレスは詐称されていないものとする。
次に、Source IPを詐称して攻撃を行う前に攻撃元の通信装置がDNSサーバに名前解決を依頼する方法を説明する。図2に示すように、攻撃元の通信装置1(Source)と、攻撃対象の通信装置2(Destination)と、DNSサーバ3a〜3eとがネットワーク上に存在しているものとする。通信装置1のドメイン名は「www.YYY.co.kr」であり、IPアドレスは「yyy.yyy.yyy.yyy」である。ただし、IPアドレス中の「y」は0〜9の任意の数字である。また、通信装置2のドメイン名は「www.XXX.co.jp」であり、IPアドレスは「xxx.xxx.xxx.xxx」である。ただし、IPアドレス中の「x」は0〜9の任意の数字である。
DNSサーバ3aは通信装置1と同一のドメイン「YYY.co.kr」に属している。また、DNSサーバ3b〜3eは、ドメイン毎の階層構造を示すドメイン・ツリーを構成しており、DNSサーバ3bはルートドメインに属し、DNSサーバ3cはドメイン「.jp」に属し、DNSサーバ3dはドメイン「.co.jp」に属し、DNSサーバ3eはドメイン「XXX.co.jp」に属している。
まず、通信装置1はドメイン名「www.XXX.co.jp」のIPアドレスをDNSサーバ3aに問い合わせる(ステップS100)。この問合せの意味は、ドメイン名「www.XXX.co.jp」のIPアドレスの検索の依頼と同等である。また、この問合せは、一般的に再帰検索(リカーシブ:Recursive)と呼ばれるタイプの問合せである。再帰検索の依頼を受けたDNSサーバ3aは、名前解決が完了するまで以下のようにドメイン・ツリーをたどって検索を行い、最終結果を通信装置1に返信する。このように、再帰検索の依頼を受けて名前解決が完了するまで検索を行うDNSサーバは一般的にリゾルバと呼ばれる。
再帰検索の依頼を受けたDNSサーバ3aは、ドメイン・ツリーの最上位のルートドメインに属するDNSサーバ3b(ルート・ネーム・サーバ)に対して、ドメイン「.jp」の情報を管理するDNSサーバのIPアドレスを問い合わせる(ステップS110)。この問合せは、一般的に反復検索(イテレイティブ:Iterative)と呼ばれるタイプの問合せである。反復検索の依頼を受けたDNSサーバ3bは、自身が管理しているドメインの情報のみを返答し、他のDNSサーバに対する問合せは行わない。DNSサーバ3bは、自身が管理しているドメインの情報の中から、ドメイン「.jp」の情報を管理するDNSサーバのIPアドレスを検索し、DNSサーバ3cのIPアドレスをDNSサーバ3aに返信する(ステップS120)。
続いて、DNSサーバ3aは、DNSサーバ3cに対して、ドメイン「.co.jp」の情報を管理するDNSサーバのIPアドレスを問い合わせる(ステップS130)。この問合せも反復検索である。反復検索の依頼を受けたDNSサーバ3cは、自身が管理しているドメインの情報の中から、ドメイン「.co.jp」の情報を管理するDNSサーバのIPアドレスを検索し、DNSサーバ3dのIPアドレスをDNSサーバ3aに返信する(ステップS140)。
続いて、DNSサーバ3aは、DNSサーバ3dに対して、ドメイン「XXX.co.jp」の情報を管理するDNSサーバのIPアドレスを問い合わせる(ステップS150)。この問合せも反復検索である。反復検索の依頼を受けたDNSサーバ3dは、自身が管理しているドメインの情報の中から、ドメイン「XXX.co.jp」の情報を管理するDNSサーバのIPアドレスを検索し、DNSサーバ3eのIPアドレスをDNSサーバ3aに返信する(ステップS160)。
続いて、DNSサーバ3aは、DNSサーバ3eに対して、ドメイン名「www.XXX.co.jp」に対応するIPアドレスを問い合わせる(ステップS170)。この問合せも反復検索である。反復検索の依頼を受けたDNSサーバ3eは、自身が管理しているIPアドレスの中から、ドメイン名「www.XXX.co.jp」に対応するIPアドレスを検索し、通信装置2のIPアドレス「xxx.xxx.xxx.xxx」をDNSサーバ3aに返信する(ステップS180)。DNSサーバ3aは、名前解決の結果として、通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を通信装置1に返信する(ステップS190)。
各DNSサーバは、以上の処理の結果をDNSログとして保存する。図3および図4はDNSログの一例を示している。図3は、図2のDNSサーバ3aが記憶するDNSログを示している。このDNSログには、DNSサーバ3aが再帰検索を行ったときの検索結果が含まれている。DNSサーバ3aは他のDNSサーバから反復検索の依頼を受けることもあり、その場合には図4に示す反復検索のDNSログを記憶する。
図3に示すDNSログには、時刻300、リゾルバIP310、Source IP320、Destination Domain330、Destination IP340が含まれている。時刻300は、通信装置から再帰検索の依頼を受けた時刻を示している。リゾルバIP310は、再帰検索の依頼を受けてリゾルバとして処理を行ったDNSサーバ、すなわち自身のIPアドレスを示している。Source IP320は、再帰検索の依頼を行った通信装置のIPアドレスを示している。Destination Domain330は、名前解決の対象となったドメイン名を示している。Destination IP340は、Destination Domain330に対応したIPアドレスを示している。
図2の通信装置1から依頼された再帰検索の結果はレコード350に記録されている。したがって、図2の通信装置2が攻撃を受けた場合、通信装置2のIPアドレスまたはドメイン名を検索のキーとしてDestination IP340またはDestination Domain330を検索し、通信装置2のIPアドレスまたはドメイン名に対応したSource IPを取得することによって、攻撃元の通信装置1のIPアドレスを追跡することができる。
図4は、図2のDNSサーバ3b〜3eが記憶するDNSログの一例を示している。このDNSログには、DNSサーバ3b〜3eが反復検索を行ったときの検索結果が含まれている。図4(a)は、DNSサーバ3bが記憶するDNSログを示し、図4(b)は、DNSサーバ3cが記憶するDNSログを示し、図4(c)は、DNSサーバ3dが記憶するDNSログを示し、図4(d)は、DNSサーバ3eが記憶するDNSログを示している。
図4に示すDNSログには、時刻400、リゾルバIP410、Destination Domain420、Destination IP430が含まれている。時刻400は、他のDNSサーバから反復検索の依頼を受けた時刻を示している。リゾルバIP410は、反復検索を依頼したリゾルバとしてのDNSサーバのIPアドレスを示している。Destination Domain420は、名前解決の対象となったドメイン名を示している。Destination IP430は、Destination Domain420に対応したIPアドレスを示している。
図2のDNSサーバ3aから反復検索の依頼を受け、通信装置2のIPアドレスを回答した結果は図4(d)のレコード440に記録されている。したがって、通信装置2が攻撃を受けた場合、通信装置2のIPアドレスまたはドメイン名を検索のキーとしてDestination IP430またはDestination Domain420を検索し、通信装置2のIPアドレスまたはドメイン名に対応したリゾルバIPを取得することによって、再帰検索を行ったDNSサーバ3aのIPアドレスを取得することができる。さらに、DNSサーバ3aの再帰検索のDNSログを用いて、前述した検索を行うことにより、攻撃元の通信装置1のIPアドレスを追跡することができる。
次に、Source IPの追跡方法を説明する。図1は、本実施形態によるトレースバック装置の構成を示している。記憶部10はDNSログを記憶する。このDNSログには、DNSサーバが再帰検索または反復検索により取得した通信装置のIPアドレス(Destination IP)、またはそのIPアドレスに対応したドメイン名(Destination Domain)と、再帰検索を依頼した通信装置のIPアドレス(Source IP)とが少なくとも含まれている。検索部11は、上記のDNSログに基づいて、攻撃元の通信装置のIPアドレスを検索する。
検索部11は以下の検索を行う。すなわち、検索部11は、攻撃対象となった通信装置のIPアドレスまたはドメイン名を検索のキーとして、DNSログ中のDestination IPまたはDestination Domainを検索し、攻撃対象となった通信装置のIPアドレスまたはドメイン名と一致するDestination IPまたはDestination Domainを抽出する。さらに、検索部11は、抽出したDestination IPまたはDestination Domainと対応関係を有するSource IPをDNSログから抽出する。このSource IPが、攻撃元の通信装置のIPアドレスである。
攻撃元の通信装置とは無関係の通信装置が、攻撃対象となった通信装置のドメイン名に関する名前解決を行うことも十分考えられるので、上記の処理では、攻撃元の通信装置のIPアドレスを誤検出する可能性がある。しかし、攻撃が行われる場合には攻撃の直前に名前解決が行われるので、攻撃が行われた時刻の直前の所定時間内で行われた名前解決の結果のみを検索の対象とすることによって、このような誤検出の発生を低減することができる。以下、上記のトレースバック装置の動作の具体例を説明する。
<第1の動作例>
まず、第1の動作例を説明する。図5は、第1の動作例に係るトレースバックシステムの構成を示している。通信装置1,2およびDNSサーバ3a〜3eについては前述した通りである。DNSログ管理装置4は、DNSサーバ3a〜3eからDNSログを収集して一括管理し、そのDNSログに基づいて攻撃元の通信装置のIPアドレスの検索を行う。すなわち、DNSログ管理装置4は、トレースバックを実現する図1の記憶部10と検索部11の機能を備えている。
Source IPの追跡は以下のようにして行われる。通信装置2は、攻撃を受けた時刻と自身のIPアドレス(Destination IP)を含む情報500をDNSログ管理装置4へ送信し、DNSログ管理装置4にSource IPを問い合わせる。DNSログ管理装置4の制御装置(CPU等)は、通信装置2からSource IPの問合せを受けたとき、または定期的に、図3および図4に示した情報を有するDNSログ510〜550をDNSサーバ3a〜3eから受信し、内部の記憶装置(ハードディスクドライブ等)に保存する。
通信装置2からSource IPの問合せを受けたDNSログ管理装置4の制御装置は記憶装置から再帰検索のDNSログを読み出す。DNSログ管理装置4の制御装置は、再帰検索のDNSログに記録されている時刻と通信装置2から通知された時刻とを比較し、通信装置2から通知された時刻の直前N(N>0)秒の範囲内の時刻が記録されているレコードのみを検索対象とする。このNは適宜決定すればよい。
続いて、DNSログ管理装置4の制御装置は、通信装置2のIPアドレスを検索のキーとして、再帰検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのSource IPを取得する。このSource IPが攻撃元の通信装置1のIPアドレスである。DNSログ管理装置4の制御装置は、検索により取得したSource IPを含む情報560を通信装置2へ送信し、攻撃元の通信装置1のIPアドレスを通知する。上記のDestination IPの代わりにDestination Domainを用いても同様の処理を実現することが可能である。
再帰検索のDNSログを用いて検索を行っても、該当するDestination IPを有するレコードが存在しない場合、反復検索のDNSログを用いて同様の検索が行われる。この検索では、リゾルバとなったDNSサーバのIPアドレスは判明するが、そのDNSサーバから既に取得しているDNSログには所望のレコードが存在していなかったため、所望のSource IPの完全な追跡は達成できない。したがって、判明したリゾルバのIPアドレスは参考情報となる。
上記の処理では、DNSログ管理装置4が大量のDNSログを管理する必要がある。そこで、以下のようにして、DNSログ管理装置4が管理するDNSログの量を削減してもよい。以下ではDNSログ管理装置4は、各ドメインを管理するDNSサーバのIPアドレス等の情報を予め記憶しているものとする。通信装置2からSource IPの問合せを受けたDNSログ管理装置4の制御装置は、通信装置2から通知されたドメイン名に基づいて、通信装置2が属するドメインを管理するDNSサーバのIPアドレスを検索する。
続いて、DNSログ管理装置4の制御装置は、検索により見つかったIPアドレスを有するDNSサーバから反復検索のDNSログを受信する。DNSログ管理装置4の制御装置は、受信したDNSログを参照し、通信装置2のIPアドレスまたはドメイン名と一致する情報を有するレコードを検索する。通信装置2のIPアドレスまたはドメイン名と一致する情報を有するレコードがあった場合、そのレコードに含まれるリゾルバのIPアドレスは、攻撃元の通信装置1から名前解決の依頼を受けたリゾルバのIPアドレスを示している。DNSログ管理装置4の制御装置は、リゾルバとして名前解決を行ったDNSサーバから再帰検索のDNSログを受信し、前述した処理と同様の処理を行い、攻撃元の通信装置のSource IPを特定する。この動作によれば、DNSログ管理装置4は、全てのDNSサーバからDNSログを収集する必要はなく、DNSログ管理装置4が管理するDNSログの量を削減することができる。
<第2の動作例>
次に、第2の動作例を説明する。図6は、第2の動作例に係るトレースバックシステムの構成を示している。通信装置1,2およびDNSサーバ3eについては前述した通りである。通信装置1は、自身がリゾルバとなって再帰検索を行う。また、DNSサーバ3eは、自身が記憶するDNSログに基づいて攻撃元の通信装置のIPアドレスの検索を行う。すなわち、DNSサーバ3eは、トレースバックを実現する図1の記憶部10と検索部11の機能を備えている。
攻撃元の通信装置1は、前述したDNSサーバ3aと同様にドメイン・ツリーをたどって他のDNSサーバに反復検索を依頼し(図示せず)、最後にDNSサーバ3eに対して、ドメイン名「www.XXX.co.jp」に対応するIPアドレスの反復検索を依頼するため、自身のIPアドレスおよび検索対象のドメイン名を含む情報600をDNSサーバ3eへ送信する。反復検索の依頼を受けたDNSサーバ3eは、自身が管理しているIPアドレスの中から、ドメイン名「www.XXX.co.jp」に対応するIPアドレスを検索し、通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を含む反復検索結果の情報610を通信装置1へ送信する。以上によって、通信装置1は通信装置2のIPアドレスを取得することができる。
Source IPの追跡は以下のようにして行われる。通信装置2は、自身が属するドメインの情報を管理するDNSサーバ3eのIPアドレスを予め記憶しているものとする。通信装置2は、攻撃を受けた時刻と自身のIPアドレス(Destination IP)を含む情報620をDNSサーバ3eへ送信し、DNSサーバ3eにSource IPを問い合わせる。通信装置2からSource IPの問合せを受けたDNSサーバ3eの制御装置は記憶装置から反復検索のDNSログを読み出す。DNSサーバ3eの制御装置は、反復検索のDNSログに記録されている時刻と通信装置2から通知された時刻とを比較し、通信装置2から通知された時刻の直前N(N>0)秒の範囲内の時刻が記録されているレコードのみを検索対象とする。
続いて、DNSサーバ3eの制御装置は、通信装置2のIPアドレスを検索のキーとして、反復検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのリゾルバIPを取得する。このリゾルバIPが攻撃元の通信装置1のIPアドレスである。DNSサーバ3eの制御装置は、検索により取得したリゾルバIPを含む情報630を通信装置2へ送信し、攻撃元の通信装置1のIPアドレスを通知する。
上記のDestination IPの代わりにDestination Domainを用いても同様の処理を実現することが可能である。また、上記では、Destination IPをリゾルバに通知したDNSサーバ3eがSource IPの追跡を行っているが、通信装置2がDNSサーバ3eから反復検索のDNSログを収集し、そのDNSログに基づいてSource IPの追跡を行ってもよい。
<第3の動作例>
次に、第3の動作例を説明する。図7は、第3の動作例に係るトレースバックシステムの構成を示している。通信装置1,2およびDNSサーバ3a,3eについては前述した通りである。DNSサーバ3aはリゾルバとなって再帰検索を行い、DNSサーバ3eはDNSサーバ3aから反復検索の依頼を受けて反復検索を行う。また、DNSサーバ3a,3eは、自身が記憶するDNSログに基づいて攻撃元の通信装置のIPアドレスの検索を行う。すなわち、DNSサーバ3a,3eは、トレースバックを実現する図1の記憶部10と検索部11の機能を備えている。
攻撃元の通信装置1は、DNSサーバ3aに対して、ドメイン名「www.XXX.co.jp」に対応するIPアドレスの再帰検索を依頼するため、自身のIPアドレスおよび検索対象のドメイン名を含む情報700をDNSサーバ3aへ送信する。再帰検索の依頼を受けたDNSサーバ3aは、前述したようにドメイン・ツリーをたどって他のDNSサーバに反復検索を依頼し(図示せず)、最後にDNSサーバ3eに反復検索を依頼するため、自身のIPアドレスおよび検索対象のドメイン名を含む情報710をDNSサーバ3eへ送信する。
反復検索の依頼を受けたDNSサーバ3eは、自身が管理しているIPアドレスの中から、ドメイン名「www.XXX.co.jp」に対応するIPアドレスを検索し、通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を含む反復検索結果の情報720をDNSサーバ3aへ送信する。DNSサーバ3aは、通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を含む再帰検索結果の情報730を通信装置1へ送信する。以上によって、通信装置1は通信装置2のIPアドレスを取得することができる。
Source IPの追跡は以下のようにして行われる。通信装置2は、自身が属するドメインの情報を管理するDNSサーバ3eのIPアドレスを予め記憶しているものとする。通信装置2は、攻撃を受けた時刻と自身のIPアドレス(Destination IP)を含む情報740をDNSサーバ3eへ送信し、DNSサーバ3eにSource IPを問い合わせる。通信装置2からSource IPの問合せを受けたDNSサーバ3eの制御装置は記憶装置から反復検索のDNSログを読み出す。DNSサーバ3eの制御装置は、反復検索のDNSログに記録されている時刻と通信装置2から通知された時刻とを比較し、通信装置2から通知された時刻の直前N(N>0)秒の範囲内の時刻が記録されているレコードのみを検索対象とする。
続いて、DNSサーバ3eの制御装置は、通信装置2のIPアドレスを検索のキーとして、反復検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのリゾルバIPを取得する。DNSサーバ3eの制御装置は、リゾルバIPを有するDNSサーバ3aにSource IPを問い合わせるため、通信装置2から通知された時刻と通信装置2のIPアドレスを含む情報750をDNSサーバ3aへ送信する。
問合せを受けたDNSサーバ3aの制御装置は記憶装置から再帰検索のDNSログを読み出す。DNSサーバ3aの制御装置は、再帰検索のDNSログに記録されている時刻とDNSサーバ3eから通知された時刻とを比較し、DNSサーバ3eから通知された時刻の直前N(N>0)秒の範囲内の時刻が記録されているレコードのみを検索対象とする。
続いて、DNSサーバ3aの制御装置は、通信装置2のIPアドレスを検索のキーとして、再帰検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのSource IPを取得する。このSource IPが攻撃元の通信装置1のIPアドレスである。DNSサーバ3aの制御装置は、検索により取得したSource IPを含む情報760をDNSサーバ3eへ送信する。この情報760を受信したDNSサーバ3eの制御装置は情報770を通信装置2へ転送し、攻撃元の通信装置1のIPアドレスを通知する。
上記において、Destination IPの代わりにDestination Domainを用いても同様の処理を実現することが可能である。また、上記では、Destination IPの反復検索を行ったDNSサーバ3eが、リゾルバとしてのDNSサーバ3aにSource IPの問合せを行っているが、DNSサーバ3eがDNSサーバ3aから再帰検索のDNSログを収集し、そのDNSログに基づいてSource IPの追跡を行ってもよい。その場合には、DNSサーバ3eは、反復検索のDNSログに基づく検索により取得したリゾルバIPを有するDNSサーバ3aへ、再帰検索のDNSログの取得を要求する情報を送信する。DNSサーバ3aは、その情報に基づいて再帰検索のDNSログをDNSサーバ3eへ送信する。DNSサーバ3eは再起検索のDNSログをDNSサーバ3aから受信し、そのDNSログに基づいてSource IPの追跡を行う。
また、通信装置2がDNSサーバ3eから反復検索のDNSログを収集し、そのDNSログに基づいて特定したリゾルバとしてのDNSサーバ3aから再帰検索のDNSログを収集し、そのDNSログに基づいてSource IPの追跡を行ってもよい。
次に、本実施形態の変形例を説明する。図8は、本実施形態によるトレースバック装置の他の構成を示している。上記では、Source IPの問合せを行うため、通信装置とDNSサーバの間、またはDNSサーバ同士の間で、個人のプライバシーに関わるDestination IPまたはDestination Domainが送受信されてしまう。そこで、図8に示すトレースバック装置は、他の装置との間でDestination IPやDestination Domainの送受信を行うことなく、Source IPの追跡を行う。
図8において、ハッシュ値算出部12は、Destination IPのハッシュ値、Destination Domainのハッシュ値、Destination IPとDestination Domainを結合した情報のハッシュ値のいずれかを算出する。以下では、ハッシュ値算出部12がDestination IPのハッシュ値を算出する場合のみについてSource IPの追跡方法を説明するが、他の場合についてもSource IPの追跡方法は同様である。
ハッシュ値算出部12は記憶部10からDNSログを読み出し、DNSログ中の全てのDestination IPのハッシュ値を算出する。ハッシュ値算出部12は、DNSログに記録されている情報にハッシュ値を追加した状態で、DNSログを記憶部10に格納する。検索部11は、このDNSログを用いて攻撃元の通信装置のIPアドレスを検索することになる。
続いて、検索部11は、攻撃対象となった通信装置のIPアドレスのハッシュ値を検索のキーとして、DNSログ中のハッシュ値を検索し、攻撃対象となった通信装置のIPアドレスのハッシュ値と一致するハッシュ値をDNSログから抽出する。さらに、検索部11は、このハッシュ値を算出する元となったDestination IPと対応関係を有するSource IPをDNSログから抽出する。このSource IPが、攻撃元の通信装置のIPアドレスである。
Source IPの問合せを行う場合、通信装置やDNSサーバはDestination IPやDestination Domainの代わりにそれらのハッシュ値を送信する。ハッシュ値を受信したDNSサーバやDNSログ管理装置は、上記と同様にして、ハッシュ値をキーにした検索を行い、Source IPを取得する。
次に、その他の変形例を説明する。プローブ装置の設置にかかるコストや時間を許容するならば、再帰検索や反復検索のパケットのみを収集するプローブ装置を用いてもよい。このプローブ装置は、ネットワークで送受信される全パケットではなく、再帰検索や反復検索のパケットのみを収集するため、管理する情報量を大幅に削減することができる。再帰検索や反復検索のパケットを受信したプローブ装置は、受信したパケットに含まれる情報から再帰検索および反復検索のDNSログを生成する。攻撃対象の通信装置や他のプローブ装置からSource IPの問合せを受けた場合、プローブ装置は、DNSログに基づいてSource IPの検索を行う。
上述したように、本実施形態によれば、ネットワーク上の各所にプローブ装置を設置する必要がなくなるので、プローブ装置の設置にかかるコストや時間を削減することができる。また、DNSサーバが再帰検索や反復検索の依頼のために送信するパケットの数は、ネットワークで送受信される全パケットの数よりもはるかに少ないので、DNSログの情報量は、ネットワークで送受信される全パケットの情報量よりもはるかに少量である。したがって、DNSサーバがDNSログを記憶可能な期間が長くなり、時間的な制約によってIPアドレスの追跡が失敗する可能性を低減することができる。
(第2の実施形態)
次に、本発明の第2の実施形態を説明する。本実施形態は、DNSサーバのログに注目して、ボットの指令サーバのIPアドレスまたはドメイン名を追跡する方法を実現したものである。図14は、ボットによる通信のモデルを示している。ボットによる通信には、攻撃を行う加害者PC(Personal Computer)1400,1401と、攻撃を受ける被害者PC1410,1411,1412,1413と、攻撃コード(実行ファイル)の配信や攻撃指示を行う指令サーバ1420,1421とが関係している。外部の加害者PC1400は、ボットをダウンロードする初期コードを加害者PC1401に埋め込む。この初期コードには、指令サーバのドメイン名も含まれている。加害者PC1401は、この初期コードに従って指令サーバ1420から新たなコードを受信する。さらに、加害者PC1401は、指令サーバ1421から指令を受け取り、被害者PCに対して各種攻撃を行う。
攻撃元の通信装置は、ボットに感染している場合には、攻撃の直前に指令サーバと通信を行うために、指令サーバの名前解決をDNSサーバに依頼する。したがって、この検索結果に関する情報から、指令サーバのIPアドレスまたはドメイン名を追跡することが可能となる。
本実施形態によるトレースバック装置の構成は、図1に示した構成と同様である。以下、図1に示した構成に基づいて、本実施形態によるトレースバック装置の機能を説明する。記憶部10はDNSログを記憶する。このDNSログには、DNSサーバが再帰検索または反復検索により取得した通信装置のIPアドレス(Destination IP)、またはそのIPアドレスに対応したドメイン名(Destination Domain)と、再帰検索を依頼した通信装置のIPアドレス(Source IP)と、通信装置から検索の依頼を受けた時刻(検索時刻)とが少なくとも含まれている。検索部11は、上記のDNSログに基づいて、攻撃元の通信装置のIPアドレスを検索し、さらに攻撃元の通信装置が名前解決を依頼した指令サーバのIPアドレスまたはドメイン名を検索する。
検索部11は以下の検索を行う。すなわち、検索部11は、攻撃対象となった通信装置のIPアドレスまたはドメイン名を検索のキーとして、DNSログ中のDestination IPまたはDestination Domainを検索し、攻撃対象となった通信装置のIPアドレスまたはドメイン名と一致するDestination IPまたはDestination Domainを抽出する。さらに、検索部11は、抽出したDestination IPまたはDestination Domainと対応関係を有するSource IPをDNSログから抽出する。このSource IPが、攻撃元の通信装置のIPアドレスである。上記の処理は第1の実施形態と同様である。
さらに、本実施形態の検索部11は、記憶部10に格納されているDNSログのうち、検索時刻として攻撃時刻以前の時刻が記録されているレコードを処理対象として、以下の検索を行う。すなわち、検索部11は、攻撃元の通信装置のIPアドレスとして取得したSource IPを検索のキーとして、DNSログ中のSource IPを検索する。攻撃元の通信装置のIPアドレスとして取得したSource IPと一致するSource IPがDNSログ中にあった場合、そのSource IPと対応関係を有するDestination IPまたはDestination DomainをDNSログから抽出する。このDestination IPまたはDestination Domainが、指令サーバのIPアドレスまたはドメイン名である。
上記の攻撃時刻は、別途他の装置からトレースバック装置に報告されるものであってもよいし、攻撃元の通信装置が攻撃対象の通信装置の名前解決を依頼した時刻であってもよい。攻撃元の通信装置が攻撃対象の通信装置の名前解決を依頼した時刻は、攻撃元の通信装置のSource IPと攻撃対象の通信装置のDestination IPまたはDestination Domainとを含むレコード、すなわち上記の検索によって見つかるレコードに記録されている検索時刻である。
攻撃元の通信装置は、ボットに感染している場合、指令サーバとの通信を行う以外に、攻撃対象の通信装置への攻撃も行う。ボットに感染した通信装置が指令サーバとの通信と、攻撃対象の通信装置への攻撃とを非同期に繰り返し行う場合があるため、上記の検索では、攻撃対象の通信装置のIPアドレスまたはドメイン名を指令サーバのIPアドレスまたはドメイン名として誤検出する可能性もある。
攻撃元の通信装置がスパムメールの送信を行う場合には、メールサーバの名前解決をDNSサーバに依頼する。DNSサーバは、MXレコードと呼ばれるレコードでメールサーバの情報を管理しており、MXレコードを検索した結果はDNSログに記録される。したがって、DNSログに記録されているレコードのうち、文字列MXを含むレコードを検索対象から除外して検索を行うことによって、指令サーバのIPアドレスまたはドメイン名の追跡精度を向上することができる。
以下、上記のトレースバック装置の動作の具体例を説明する。
<第1の動作例>
まず、第1の動作例を説明する。図9は、第1の動作例に係るトレースバックシステムの構成を示している。通信装置1,2およびDNSサーバ3a,3eについては前述した通りである。DNSサーバ3fはドメイン「VVV.co.jp」に属しており、DNSサーバ3aから反復検索の依頼を受けて反復検索を行う。DNSサーバ3a,3e,3fは、トレースバックを実現する図1の記憶部10と検索部11の機能を備えている。また、指令サーバ5のドメイン名は「www.VVV.co.jp」であり、IPアドレスは「vvv.vvv.vvv.vvv」である。ただし、IPアドレス中の「v」は0〜9の任意の数字である。
通信装置1のIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名の追跡は以下のようにして行われる。攻撃の前段階において、通信装置1は指令サーバ5のドメイン名に対応したIPアドレスの検索(名前解決)をDNSサーバ3aに依頼する。まず、通信装置1は、DNSサーバ3aに対して、ドメイン名「www.VVV.co.jp」に対応するIPアドレスの再帰検索を依頼するため、自身のIPアドレスおよび検索対象のドメイン名を含む情報900をDNSサーバ3aへ送信する。再帰検索の依頼を受けたDNSサーバ3aは、前述したようにドメイン・ツリーをたどって他のDNSサーバに反復検索を依頼し(図示せず)、最後にDNSサーバ3fに反復検索を依頼するため、自身のIPアドレスおよび検索対象のドメイン名を含む情報910をDNSサーバ3fへ送信する。
反復検索の依頼を受けたDNSサーバ3fは、自身が管理しているIPアドレスの中から、ドメイン名「www.VVV.co.jp」に対応するIPアドレスを検索し、指令サーバ5のIPアドレス「vvv.vvv.vvv.vvv」を含む反復検索結果の情報920をDNSサーバ3aへ送信する。DNSサーバ3aは、指令サーバ5のIPアドレス「vvv.vvv.vvv.vvv」を含む再帰検索結果の情報930を通信装置1へ送信する。以上によって、通信装置1は指令サーバ5のIPアドレスを取得することができる。
続いて、通信装置1は指令サーバ5と通信を行い、攻撃用のコードを受信する。さらに、通信装置1は、受信したコードに従って攻撃を開始する。通信装置1は、DNSサーバ3aに対して、ドメイン名「www.XXX.co.jp」に対応するIPアドレスの再帰検索を依頼するため、自身のIPアドレスおよび検索対象のドメイン名を含む情報(情報900と同様の情報)をDNSサーバ3aへ送信する。再帰検索の依頼を受けたDNSサーバ3aは、前述したようにドメイン・ツリーをたどって他のDNSサーバに反復検索を依頼し(図示せず)、最後にDNSサーバ3eに反復検索を依頼するため、自身のIPアドレスおよび検索対象のドメイン名を含む情報940をDNSサーバ3eへ送信する。
反復検索の依頼を受けたDNSサーバ3eは、自身が管理しているIPアドレスの中から、ドメイン名「www.XXX.co.jp」に対応するIPアドレスを検索し、通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を含む反復検索結果の情報950をDNSサーバ3aへ送信する。DNSサーバ3aは、通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を含む再帰検索結果の情報(情報930と同様の情報)を通信装置1へ送信する。以上によって、通信装置1は通信装置2のIPアドレスを取得することができる。
トレースバックは以下のようにして行われる。通信装置2は、自身が属するドメインの情報を管理するDNSサーバ3eのIPアドレスを予め記憶しているものとする。通信装置2は、攻撃を受けた時刻と自身のIPアドレス(Destination IP)を含む情報960をDNSサーバ3eへ送信し、DNSサーバ3eにトレースバックを依頼する。本実施形態ではDestination IPを用いるが、Destination Domainを用いてもよい。通信装置2からトレースバックの依頼を受けたDNSサーバ3eの制御装置は記憶装置から反復検索のDNSログを読み出す。DNSサーバ3eの制御装置は、反復検索のDNSログに記録されている時刻と通信装置2から通知された時刻とを比較し、通信装置2から通知された時刻の直前N(N>0)秒の範囲内の時刻が記録されているレコードのみを検索対象とする。
続いて、DNSサーバ3eの制御装置は、通信装置2のIPアドレスを検索のキーとして、反復検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのリゾルバIPを取得する。DNSサーバ3eの制御装置は、リゾルバIPを有するDNSサーバ3aにトレースバックを依頼するため、通信装置2から通知された時刻と通信装置2のIPアドレスを含む情報970をDNSサーバ3aへ送信する。
DNSサーバ3eからトレースバックの依頼を受けたDNSサーバ3aの制御装置は記憶装置から再帰検索のDNSログを読み出す。DNSサーバ3aの制御装置は、再帰検索のDNSログに記録されている時刻とDNSサーバ3eから通知された時刻とを比較し、DNSサーバ3eから通知された時刻の直前N(N>0)秒の範囲内の時刻が記録されているレコードのみを検索対象とする。
続いて、DNSサーバ3aの制御装置は、通信装置2のIPアドレスを検索のキーとして、再帰検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのSource IPを取得する。このSource IPが攻撃元の通信装置1のIPアドレスである。図10は、DNSサーバ3aが記憶するDNSログの一例を示している。レコード1000には、Destination IPとして通信装置2のIPアドレス「xxx.xxx.xxx.xxx」が記録されている。したがって、レコード100に記録されている情報は、通信装置1から依頼された通信装置2の再帰検索の結果を示しており、このレコード1000のSource IPが通信装置1のIPアドレスである。
続いて、DNSサーバ3aの制御装置は攻撃時刻(図10ではレコード1000に記録されている時刻)よりも前の時刻が記録されているレコードを対象とし、通信装置1のIPアドレス「yyy.yyy.yyy.yyy」がSource IPに記録されているレコードを検索する。通信装置1のIPアドレス「yyy.yyy.yyy.yyy」がSource IPに記録されているレコードがあった場合、DNSサーバ3aの制御装置はそのレコードのDestination IPまたはDestination Domainを取得する。このDestination IPまたはDestination Domainが指令サーバ5のIPアドレスまたはドメイン名である。図10では、レコード1010のSource IPとして通信装置1のIPアドレス「yyy.yyy.yyy.yyy」が記録されている。したがって、レコード1010に記録されている情報は、通信装置1から依頼された指令サーバ5の再帰検索の結果を示しており、このレコード1010のDestination Domainが指令サーバ5のドメイン名であり、Destination IPが指令サーバ5のIPアドレスである。
DNSサーバ3aの制御装置は、検索により取得した通信装置1のIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名を含む情報980をDNSサーバ3eへ送信する。この情報980を受信したDNSサーバ3eの制御装置は情報990を通信装置2へ転送し、攻撃元の通信装置1のIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名を通知する。
<第2の動作例>
次に、第2の動作例を説明する。図11は、第2の動作例に係るトレースバックシステムの構成を示している。通信装置1,2、DNSサーバ3a,3e,3f、および指令サーバ5については前述した通りである。DNSサーバ3a,3e,3fは、トレースバックを実現する図1の記憶部10と検索部11の機能を備えている。トレースバック管理装置6は、トレースバックに係る一連の通信を管理する。
通信装置1のIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名の追跡は以下のようにして行われる。通信装置1は第1の動作例と同様にして、DNSサーバ3aに対して、ドメイン名「www.VVV.co.jp」に対応するIPアドレスおよびドメイン名「www.XXX.co.jp」に対応するIPアドレスの再帰検索を依頼し、指令サーバ5のIPアドレス「vvv.vvv.vvv.vvv」および通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を取得しているものとする。また、通信装置2は、自身が属するドメインの情報を管理するDNSサーバ3eのIPアドレスを予め記憶しているものとする。通信装置2は、攻撃を受けた時刻と、自身のIPアドレス(Destination IP)と、受信したパケットに含まれる送信元の通信装置のIPアドレス(Source IP)と、DNSサーバ3eのIPアドレスとを含む情報1100をトレースバック管理装置6へ送信し、トレースバックを依頼する。
情報1100を受信したトレースバック管理装置6は、通信装置2のIPアドレスに関する再帰検索を行ったDNSサーバ(リゾルバ)を問い合わせる情報1110をDNSサーバ3eへ送信する。この情報1110には、通信装置2のIPアドレスが含まれている。情報1110を受信したDNSサーバ3eの制御装置は、通信装置2のIPアドレスを検索のキーとして、反復検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのリゾルバIPを取得する。DNSサーバ3eの制御装置は、取得したリゾルバIPを含む情報1120をトレースバック管理装置6へ送信する。
情報1120を受信したトレースバック管理装置6は、情報1120に含まれるリゾルバIPを有するDNSサーバ3aにトレースバックを依頼するため、通信装置2から受信した情報1100と同様の情報1130をDNSサーバ3aへ送信し、トレースバックを依頼する。情報1130を受信したDNSサーバ3aの制御装置は記憶装置から再帰検索のDNSログを読み出す。DNSサーバ3aの制御装置は、再帰検索のDNSログに記録されている時刻と、情報1130に含まれる時刻とを比較し、情報1130に含まれる時刻の直前N(N>0)秒の範囲内の時刻が記録されているレコードのみを検索対象とする。
続いて、DNSサーバ3aの制御装置は、通信装置2のIPアドレスを検索のキーとして、再帰検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのSource IPを取得する。このSource IPが攻撃元の通信装置1のIPアドレスである。
さらに、DNSサーバ3aの制御装置は攻撃時刻よりも前の時刻が記録されているレコードを対象とし、通信装置1のIPアドレス「yyy.yyy.yyy.yyy」がSource IPに記録されているレコードを検索する。通信装置1のIPアドレス「yyy.yyy.yyy.yyy」がSource IPに記録されているレコードがあった場合、DNSサーバ3aの制御装置はそのレコードのDestination IPまたはDestination Domainを取得する。このDestination IPまたはDestination Domainが指令サーバ5のIPアドレスまたはドメイン名である。
DNSサーバ3aの制御装置は、トレースバック結果を示す情報1140をトレースバック管理装置6へ送信する。この情報1140を受信したトレースバック管理装置6は情報1150を通信装置2へ転送し、攻撃元の通信装置1のIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名を通知する。
上記では、DNSサーバ3a,3eが、自身のDNSログに基づいてトレースバックを行っているが、トレースバック管理装置6がDNSサーバ3a,3eからDNSログを収集し、上記と同様のトレースバックを行ってもよい。
上述したように、本実施形態によれば、攻撃元の通信装置のIPアドレスを追跡すると共に、指令サーバのIPアドレスまたはドメイン名を追跡することができる。
(第3の実施形態)
次に、第3の実施形態を説明する。攻撃元の通信装置が攻撃前(ボットに感染する前など)に正規の名前解決を依頼している可能性があるため、第2の実施形態で説明した方法では、正規の通信の相手が指令サーバとして誤検出される可能性もある。ボットでは、複数の攻撃元の通信装置が同一の指令サーバと通信を行う特徴があるので、本実施形態ではこの特徴を利用して、指令サーバのIPアドレスまたはドメイン名を追跡する。以下、本実施形態の動作の具体例を説明する。
<第1の動作例>
まず、第1の動作例を説明する。図12は、第1の動作例に係るトレースバックシステムの構成を示している。通信装置2、DNSサーバ3a,3e、および指令サーバ5については前述した通りである。通信装置1a,1bは攻撃元の通信装置である。通信装置1aのドメイン名は「www.YYY.co.kr」であり、IPアドレスは「yyy.yyy.yyy.yyy」である。ただし、IPアドレス中の「y」は0〜9の任意の数字である。また、通信装置1bのドメイン名は「www.UUU.co.kr」であり、IPアドレスは「uuu.uuu.uuu.uuu」である。ただし、IPアドレス中の「u」は0〜9の任意の数字である。DNSサーバ3gはドメイン「UUU.co.kr」に属している。DNSサーバ3a,3e,3gは、トレースバックを実現する図1の記憶部10と検索部11の機能を備えている。
攻撃の前段階において、通信装置1aは指令サーバ5のドメイン名に対応したIPアドレスの検索(名前解決)を依頼するための情報1200をDNSサーバ3aへ送信し、DNSサーバ3aに指令サーバ5の名前解決を依頼する。名前解決の依頼を受けたDNSサーバ3aは、第2の実施形態と同様の動作により指令サーバ5のIPアドレスを取得し、指令サーバ5のIPアドレス「vvv.vvv.vvv.vvv」を含む再帰検索結果の情報1205を通信装置1aへ送信する。以上によって、通信装置1aは指令サーバ5のIPアドレスを取得することができる。
同様に、攻撃の前段階において、通信装置1bは指令サーバ5のドメイン名に対応したIPアドレスの検索(名前解決)を依頼するための情報1210をDNSサーバ3gへ送信し、DNSサーバ3gに指令サーバ5の名前解決を依頼する。名前解決の依頼を受けたDNSサーバ3gは、DNSサーバ3aと同様の動作により指令サーバ5のIPアドレスを取得し、指令サーバ5のIPアドレス「vvv.vvv.vvv.vvv」を含む再帰検索結果の情報1215を通信装置1bへ送信する。以上によって、通信装置1bは指令サーバ5のIPアドレスを取得することができる。
続いて、通信装置1a,1bは指令サーバ5と通信を行い、攻撃用のコードを受信する。さらに、通信装置1a,1bは、受信したコードに従って攻撃を開始する。第2の実施形態と同様の動作により、通信装置1aは、DNSサーバ3aに対して、ドメイン名「www.XXX.co.jp」に対応するIPアドレスの再帰検索を依頼するための情報(情報1200と同様の情報)をDNSサーバ3aへ送信する。再帰検索の依頼を受けたDNSサーバ3aは、前述したようにドメイン・ツリーをたどって他のDNSサーバに反復検索を依頼し(図示せず)、最後にDNSサーバ3eに反復検索を依頼するための情報1220をDNSサーバ3eへ送信する。
反復検索の依頼を受けたDNSサーバ3eは、第2の実施形態と同様のIPアドレスの検索により取得した通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を含む反復検索結果の情報1225をDNSサーバ3aへ送信する。DNSサーバ3aは、通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を含む再帰検索結果の情報(情報1205と同様の情報)を通信装置1aへ送信する。以上によって、通信装置1aは通信装置2のIPアドレスを取得することができる。
上記と同様に通信装置1bは、DNSサーバ3gに対して、ドメイン名「www.XXX.co.jp」に対応するIPアドレスの再帰検索を依頼するための情報(情報1210と同様の情報)をDNSサーバ3gへ送信する。再帰検索の依頼を受けたDNSサーバ3gは、前述したようにドメイン・ツリーをたどって他のDNSサーバに反復検索を依頼し(図示せず)、最後にDNSサーバ3eに反復検索を依頼するための情報1230をDNSサーバ3eへ送信する。
反復検索の依頼を受けたDNSサーバ3eは、第2の実施形態と同様のIPアドレスの検索により取得した通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を含む反復検索結果の情報1235をDNSサーバ3gへ送信する。DNSサーバ3gは、通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を含む再帰検索結果の情報(情報1215と同様の情報)を通信装置1bへ送信する。以上によって、通信装置1bは通信装置2のIPアドレスを取得することができる。
通信装置1a,1bのIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名の追跡は以下のようにして行われる。通信装置2は、自身が属するドメインの情報を管理するDNSサーバ3eのIPアドレスを予め記憶しているものとする。通信装置2は、攻撃を受けた時刻と自身のIPアドレス(Destination IP)を含む情報1240をDNSサーバ3eへ送信し、DNSサーバ3eにトレースバックを依頼する。本実施形態ではDestination IPを用いるが、Destination Domainを用いてもよい。通信装置2からトレースバックの依頼を受けたDNSサーバ3eの制御装置は記憶装置から反復検索のDNSログを読み出す。DNSサーバ3eの制御装置は、反復検索のDNSログに記録されている時刻と通信装置2から通知された時刻とを比較し、通信装置2から通知された時刻の直前N(N>0)秒の範囲内の時刻が記録されているレコードのみを検索対象とする。
続いて、DNSサーバ3eの制御装置は、通信装置2のIPアドレスを検索のキーとして、反復検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのリゾルバIPを取得する。DNSサーバ3eの制御装置は、リゾルバIPを有するDNSサーバ3a,3gにトレースバックを依頼するため、通信装置2から通知された時刻と通信装置2のIPアドレスを含む情報1245をDNSサーバ3a,3gへ送信する。
DNSサーバ3eからトレースバックの依頼を受けたDNSサーバ3aの制御装置は記憶装置から再帰検索のDNSログを読み出す。DNSサーバ3aの制御装置は、再帰検索のDNSログに記録されている時刻とDNSサーバ3eから通知された時刻とを比較し、DNSサーバ3eから通知された時刻の直前N(N>0)秒の範囲内の時刻が記録されているレコードのみを検索対象とする。
続いて、DNSサーバ3aの制御装置は、通信装置2のIPアドレスを検索のキーとして、再帰検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのSource IPを取得する。このSource IPが攻撃元の通信装置1aのIPアドレスである。
続いて、DNSサーバ3aの制御装置は攻撃時刻よりも前の時刻が記録されているレコードを対象とし、通信装置1aのIPアドレス「yyy.yyy.yyy.yyy」がSource IPに記録されているレコードを検索する。通信装置1aのIPアドレス「yyy.yyy.yyy.yyy」がSource IPに記録されているレコードがあった場合、DNSサーバ3aの制御装置はそのレコードのDestination IPまたはDestination Domainを取得する。このDestination IPまたはDestination Domainが指令サーバ5のIPアドレスまたはドメイン名である。DNSサーバ3aの制御装置は、検索により取得した通信装置1aのIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名を含む情報1250をDNSサーバ3eへ送信する。
上記と同様に、DNSサーバ3eからトレースバックの依頼を受けたDNSサーバ3gの制御装置は、DNSログの検索により、攻撃元の通信装置1bのIPアドレスを取得すると共に、指令サーバ5のIPアドレスまたはドメイン名を取得する。続いて、DNSサーバ3gの制御装置は、取得した通信装置1bのIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名を含む情報1255をDNSサーバ3eへ送信する。
情報1250,1255を受信したDNSサーバ3eの制御装置は、情報1250に含まれる指令サーバ5のIPアドレスまたはドメイン名と、情報1255に含まれる指令サーバ5のIPアドレスまたはドメイン名とが一致するか否かを判定する。両者が一致した場合、DNSサーバ3a,3gから通知された指令サーバ5のIPアドレスまたはドメイン名は信頼度が高いものとなる。DNSサーバ3eの制御装置は、通信装置1aのIPアドレス、通信装置1bのIPアドレス、および指令サーバ5のIPアドレスまたはドメイン名を含む情報1260を通信装置2へ送信し、攻撃元の通信装置1a,1bのIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名を通知する。
<第2の動作例>
次に、第2の動作例を説明する。図13は、第2の動作例に係るトレースバックシステムの構成を示している。通信装置1a,1b、通信装置2、DNSサーバ3a,3e,3g、および指令サーバ5については前述した通りである。DNSサーバ3a,3e,3gは、トレースバックを実現する図1の記憶部10と検索部11の機能を備えている。トレースバック管理装置6は、トレースバックに係る一連の通信を管理する。
通信装置1のIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名の追跡は以下のようにして行われる。通信装置1aは第1の動作例と同様にして、DNSサーバ3aに対して、ドメイン名「www.VVV.co.jp」に対応するIPアドレスおよびドメイン名「www.XXX.co.jp」に対応するIPアドレスの再帰検索を依頼し、指令サーバ5のIPアドレス「vvv.vvv.vvv.vvv」および通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を取得しているものとする。同様に、通信装置1bは、DNSサーバ3gに対して、ドメイン名「www.VVV.co.jp」に対応するIPアドレスおよびドメイン名「www.XXX.co.jp」に対応するIPアドレスの再帰検索を依頼し、指令サーバ5のIPアドレス「vvv.vvv.vvv.vvv」および通信装置2のIPアドレス「xxx.xxx.xxx.xxx」を取得しているものとする。
通信装置2は、自身が属するドメインの情報を管理するDNSサーバ3eのIPアドレスを予め記憶しているものとする。通信装置2は、攻撃を受けた時刻と、自身のIPアドレス(Destination IP)と、受信したパケットに含まれる送信元の通信装置のIPアドレス(Source IP)と、DNSサーバ3eのIPアドレスとを含む情報1300をトレースバック管理装置6へ送信し、トレースバックを依頼する。
情報1300を受信したトレースバック管理装置6は、通信装置2のIPアドレスに関する再帰検索を行ったDNSサーバ(リゾルバ)を問い合わせる情報1310をDNSサーバ3eへ送信する。この情報1310には、通信装置2のIPアドレスが含まれている。情報1310を受信したDNSサーバ3eの制御装置は、通信装置2のIPアドレスを検索のキーとして、反復検索のDNSログに記録されているDestination IPを検索し、通信装置2のIPアドレスと一致するDestination IPを有するレコードのリゾルバIPを取得する。DNSサーバ3eの制御装置は、取得したリゾルバIPを含む情報1320をトレースバック管理装置6へ送信する。
情報1320を受信したトレースバック管理装置6は、情報1320に含まれるリゾルバIPを有するDNSサーバ3a,3gにトレースバックを依頼するため、通信装置2から受信した情報1300と同様の情報1340をDNSサーバ3a,3gへ送信し、トレースバックを依頼する。情報1340を受信したDNSサーバ3aの制御装置は第1の動作例と同様の検索により、通信装置1aのIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名を取得する。続いて、DNSサーバ3aの制御装置は、取得したこれらの情報を含む情報1350をトレースバック管理装置6へ送信する。
同様に、情報1340を受信したDNSサーバ3gの制御装置は第1の動作例と同様の検索により、通信装置1bのIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名を取得する。続いて、DNSサーバ3gの制御装置は、取得したこれらの情報を含む情報1360をトレースバック管理装置6へ送信する。情報1350,1360を受信したトレースバック管理装置6は、これらの情報を統合した情報1370を通信装置2へ送信し、攻撃元の通信装置1a,1bのIPアドレスおよび指令サーバ5のIPアドレスまたはドメイン名を通知する。
上記では、DNSサーバ3a,3e,3gが、自身のDNSログに基づいてトレースバックを行っているが、トレースバック管理装置6がDNSサーバ3a,3e,3gからDNSログを収集し、上記と同様のトレースバックを行ってもよい。
上述したように、本実施形態によれば、指令サーバのIPアドレスまたはドメイン名の追跡精度を向上することができる。
(付加説明)
次に、上述した第2および第3の実施形態に関する付加説明を行う。以下、正規の名前解決によるDNSログの記録と、ボットに従う名前解決によるDNSログの記録とに現れる特徴の差異に注目してボットの活動を検出する手法を説明する。リゾルバとしてのDNSサーバのDNSログに現れる特徴を以下に列挙する。
(1)様々な国のドメインに指令サーバが設置されているため、多数の国名を表すドメイン(jp,dk等)が記録される。
(2)同じドメイン名についての名前解決を短時間に頻繁に繰り返す。
(3)多数の「.」が含まれた異常に長いドメイン名の名前解決を依頼するため、検索の失敗が多い。
(4)指令サーバのIPアドレスが頻繁に変更されるため、検索の失敗が多い。
(5)スパムメールを送信するために、前述したMXレコードを検索する。
上記のような特徴をDNSログから検出することによって、ボットの活動を検出することもできる。
以上、図面を参照して本発明の実施形態について詳述してきたが、具体的な構成は上記の実施形態に限られるものではなく、本発明の要旨を逸脱しない範囲の設計変更等も含まれる。例えば、上述した実施形態によるトレースバック装置の動作および機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータに読み込ませ、実行させてもよい。
ここで、「コンピュータ」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
また、上述したプログラムは、このプログラムを記憶装置等に格納したコンピュータから、伝送媒体を介して、あるいは伝送媒体中の伝送波により他のコンピュータに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように、情報を伝送する機能を有する媒体のことをいう。また、上述したプログラムは、前述した機能の一部を実現するためのものであってもよい。さらに、前述した機能を、コンピュータに既に記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
1,1a,1b,2・・・通信装置、3a,3b,3c,3d,3e,3f,3g・・・DNSサーバ、4・・・DNSログ管理装置、5・・・指令サーバ、6・・・トレースバック管理装置、10・・・記憶部、11・・・検索部