[実施の形態1]
図1に、情報処理システムの例を示す。複数の端末101がLAN(Local Area Network)を介して接続している。LANは、検知装置103を介してインターネットと接続している。端末101同士は、所定の条件の下で、任意にリモート操作を行うことがあるものとする。検知装置103は、LAN内の端末101に潜むマルウェアを探して、マルウェアに感染している端末101を特定する。
マルウェアは、例えば標的型攻撃を行うRATである。マルウェアは、標的型メールや不正サイトなどを介して、情報処理システム内の端末101に送り込まれる。送り込まれたマルウェアは、情報処理システム外の攻撃者からの指示を受けて、不正なリモート操作を行う。以下では、このようにマルウェアに侵入された端末101を、攻撃側の端末101又は攻撃端末という。
ある種のサイバー攻撃では、複数の攻撃端末をコントロールし、LAN内の端末101に対して多段階に及ぶ不正なリモート操作を行う。以下では、不正なリモート操作を受ける端末101を、標的側の端末101又は標的端末という。
検知装置103が攻撃側の端末101を見つけ出しても、その攻撃側の端末101が他の端末101に対してどのようなリモート操作を行ったかを把握することは難しい。また、検知装置103によって検知されないタイプのマルウェアが他の端末101に潜んでいる場合もある。
本実施の形態では、検知装置103を利用して攻撃端末を発見した後、分析装置105が、LAN内の各端末101に蓄えられたログを収集して、攻撃の一環である可能性がある操作の痕跡(以下、攻撃痕跡という。)を抽出する。
図2にサイバー攻撃の例を示す。この例で端末101aは、マルウェアXに感染しているものとする。同じく端末101bは、マルウェアXに感染しているものとする。同じく端末101cは、マルウェアYに感染しているものとする。同じく端末101dは、マルウェアZに感染しているものとする。
攻撃者端末201から操られるマルウェアによって他の端末101に対する不正なリモート操作が行われる。この例では、端末101aのマルウェアXが端末101eを不正に操作する。同じく端末101bのマルウェアXが端末101fを不正に操作する。同じく端末101cのマルウェアYが端末101gを不正に操作する。同じく端末101dのマルウェアZが端末101h及び端末101iを不正に操作する。
攻撃側の端末101aを検知した場合に、端末101aによって不正に操作された標的側の端末101eを特定することは比較的簡単である。また、端末101aと同じマルウェアXに感染している攻撃側の端末101bも同様に検知される。従って、端末101bによって不正に操作された標的側の端末101fも特定されやすい。
しかし、マルウェアXと異なるタイプのマルウェアに感染している攻撃側の端末101c及び端末101dは、検知されがたい。これらが検知されなければ、端末101cによって不正に操作された標的側の端末101g、端末101dによって不正に操作された標的側の端末101h及び端末101iも特定されない。
一般的に、攻撃者は、攻撃の手順において同じ攻撃端末を繰り返して使用する。また、攻撃者は、攻撃の手順において同じアカウント名を繰り返し使用することがある。攻撃者が、攻撃の手順において同じツールをリモート操作することもある。
つまり、攻撃痕跡によって判明した攻撃側の端末101が行う他のリモート操作は、サイバー攻撃の一環である可能性がある。また、攻撃痕跡に含まれるアカウント名を用いた他のリモート操作も、不正である可能性がある。更に、攻撃痕跡によって不正に用いられた可能性があるとわかったツールは、他の端末101においても不正な目的で使用されたかもしれない。
図3に、本実施の形態におけるツール実行ログ301の例を示す。各端末101は、ツール実行ログ301を生成している。リモート操作によってプログラム(以下、ツールという。)が実行された場合に、ツール実行ログ301に、ログオン要求元と、ユーザアカウントと、実行ツールとが記録される。尚、ツールは、例えばシステム管理の目的でリモート操作を行うプログラムである。また、マルウェアが、ツールとして動作することもある。
ログオン要求元は、リモート操作を行う前提としてリモートログオンを要求した端末101である。ユーザアカウントは、リモート操作を行うときに使用されたものである。
図示するように端末101eにおけるツール実行ログ301eには、ログオン要求元の「コンピュータA」、ユーザアカウントの「アカウントL」及び実行ツールの「ツールQ」の記録が含まれている。
同じく端末101fにおけるツール実行ログ301fには、ログオン要求元の「コンピュータB」、ユーザアカウントの「アカウントL」及び実行ツールの「ツールQ」の記録が含まれている。
同じく端末101gにおけるツール実行ログ301gには、ログオン要求元の「コンピュータC」、ユーザアカウントの「アカウントM」及び実行ツールの「ツールR」の記録が含まれている。ツール実行ログ301gには、更にログオン要求元の「コンピュータC」、ユーザアカウントの「アカウントL」及び実行ツールの「ツールQ」の記録が含まれている。
同じく端末101hにおけるツール実行ログ301hには、ログオン要求元の「コンピュータD」、ユーザアカウントの「アカウントM」及び実行ツールの「ツールS」の記録が含まれている。
同じく端末101iにおけるツール実行ログ301iには、ログオン要求元の「コンピュータD」、ユーザアカウントの「アカウントN」及び実行ツールの「ツールS」の記録が含まれている。
尚、「コンピュータA」乃至「コンピュータI」は、端末101a乃至端末101iに相当する。
まず、攻撃側の端末101に相当する「コンピュータA」が、1次的な探索キーとなったとする。次に、1次的な探索キーに対応する「アカウントL」及び「ツールQ」が、2次的な探索キー(図3では、細い下線を付している。)となる。同様に、2次的な探索キーに対応する「コンピュータB」及び「コンピュータC」が、3次的な探索キー(図3では、細い二重下線を付している。)となる。同様に、3次的な探索キーに対応する「アカウントM」が、4次的な探索キー(図3では、太い下線を付している。)となる。そして、4次的な探索キーに対応する「コンピュータD」及び「ツールS」が、5次的な探索キー(図3では、太い二重下線を付している。)となる。以下、これらの探索キーを用いた分析の概要について、更に説明する。
図4に、本実施の形態における分析例を示す。本実施の形態では、第1キーテーブル401、第2キーテーブル403及び第3キーテーブル405によって探索キーを管理する。第1キーテーブル401は、ログオン要求元に関する探索キー(以下、第1探索キーという。)を管理する。第2キーテーブル403は、ユーザアカウントに関する探索キー(以下、第2探索キーという。)を管理する。第3キーテーブル405は、実行ツールに関する探索キー(以下、第3探索キーという。)を管理する。尚、後述する実施の形態では、第3探索キーは、タスク又はサービスに関する。
「コンピュータA」が攻撃側の端末101に相当することが判明すると、1回目の探索動作によって、ツール実行ログ301eにおいて「コンピュータA」を含む記録が特定される。そして、この記録から第1探索キーとして「コンピュータA」が抽出され、第1キーテーブル401に登録される。同様に第2探索キーとして「アカウントL」が抽出され、第2キーテーブル403に登録される。同様に第3探索キーとして「ツールQ」が抽出され、第3キーテーブル405に登録される。
次に、図5に示すように新規な探索キー「アカウントL」及び「ツールQ」に基づく2回目の探索動作によって、ツール実行ログ301fにおいて「アカウントL」及び「ツールQ」を含む記録及びツール実行ログ301gにおいて「アカウントL」及び「ツールQ」を含む記録が特定される。ここでは、既に探索された記録を除いて説明する。尚、少なくとも一つの探索キーが含まれる記録が、探索の対象となる。そして、これら記録から第1探索キーとして「コンピュータB」及び「コンピュータC」が抽出され、第1キーテーブル401に登録される。
次に、図6に示すように新規な探索キー「コンピュータB」及び「コンピュータC」に基づく3回目の探索動作によって、ツール実行ログ301gにおいて「コンピュータC」を含む記録が特定される。そして、この記録から第2探索キーとして「アカウントM」が抽出され、第2キーテーブル403に登録される。更に、第3探索キーとして「ツールR」が抽出され、第3キーテーブル405に登録される。
次に、図7に示すように新規な探索キー「アカウントM」及び「ツールR」に基づく4回目の探索動作によって、ツール実行ログ301hにおいて「アカウントM」を含む記録が特定される。そして、この記録から第1探索キーとして「コンピュータD」が抽出され、第1キーテーブル401に登録される。更に、第3探索キーとして「ツールS」が抽出され、第3キーテーブル405に登録される。
次に、図8に示すように新規な探索キー「ツールS」に基づく5回目の探索動作によって、ツール実行ログ301iにおいて「ツールS」を含む記録が特定される。そして、この記録から第2探索キーとして「アカウントN」が抽出され、第2キーテーブル403に登録される。この例では、探索キーを重複登録しない。
そして、新規な探索キーが見つからなくなるまで探索動作を繰り返す。以上で、本実施の形態における概要の説明を終える。
図9に、本実施の形態におけるフェーズを示す。情報処理システムが日常的に利用されている運用フェーズ(S901)では、端末101がログ(例えば、ツール実行ログ301)を蓄積する。また、検知装置103が攻撃側の端末101を探す動作を行っている。尚、運用フェーズにおいて、分析装置105はLANに接続していなくてもよい。
検知装置103が攻撃側の端末101を特定すると、収集フェーズ(S903)に移る。収集フェーズでは、分析装置105が各端末101からログを収集する。分析装置105は、検知装置103から通知を受けて、自動的にログを収集するようにしてもよい。或いは、検知装置103が攻撃側の端末101を特定したことを管理者が知った時点で、管理者が分析装置105に対してログを収集するように指示してもよい。
分析フェーズ(S905)では、分析装置105が上述した探索を行って、収集したログから攻撃痕跡を抽出する。
次に、端末101について説明する。図10に、端末101のモジュール構成例を示す。端末101は、ツール1001a乃至1001c、オペレーティングシステム1003、ロガー1005、イベントログ記憶部1007、実行ログ記憶部1009及び第1送信部1011を有する。
ツール1001は、リモート操作によって動作する。オペレーティングシステム1003は、例えば起動されるプロセスを管理する。ロガー1005は、端末101におけるイベントに関するロギング処理(A)を実行する。イベントログ記憶部1007は、イベントログを記憶する。実行ログ記憶部1009は、ツール実行ログ301を記憶する。第1送信部1011は、イベントログ及びツール実行ログ301を分析装置105へ送信する。
上述した第1送信部1011は、ハードウエア資源(例えば、図38)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述したイベントログ記憶部1007及び実行ログ記憶部1009は、ハードウエア資源(例えば、図38)を用いて実現される。
図11に、イベントログの例を示す。この例におけるイベントログは、テーブル形式である。但し、イベントログは、テーブル形式以外の形式であってもよい。この例におけるイベントログは、端末101で発生したイベントに対応するレコード(以下、イベントレコードという。)を有している。イベントレコードは、日時を設定するためのフィールドと、イベント種別を設定するためのフィールドと、アカウント名を設定するためのフィールドと、ログオン要求元の識別子を設定するためのフィールドとを有している。
日時は、端末101においてイベントが発生した日付及び時刻である。この例では、説明を簡単にするために、具体的な日時に代えて、識別のための数字を付して「T3」のように記述する。他のデータの例においても同様である。イベント種別は、端末101において発生したイベントの種別である。この例では、イベント種別が「ログオン」であるイベントレコードに着目する。イベント種別が「ログオン」であるイベントレコードは、他の端末101からのリモートログオンが行われたことを示している。
イベント種別が「ログオン」である場合に、アカウント名は、リモートログオンに用いられたユーザアカウントを特定する。この例では、説明を簡単にするために、具体的なアカウント名に代えて、識別のための文字を付して「アカウントM」のように記述する。他のデータの例においても同様である。
イベント種別が「ログオン」である場合に、ログオン要求元の識別子は、リモートログオンを要求した端末101を特定する。この例では、説明を簡単にするために、具体的な端末101の識別子に代えて、識別のための文字を付して「コンピュータC」のように記述する。他のデータの例においても同様である。尚、端末101の識別子は、例えばIP(Internet Protocol)アドレス又はホスト名である。
図示したイベントログは、「コンピュータG」である端末101gにおいて生成されたものである。図示した1番目のイベントレコードは、日時「T3」に、「コンピュータC」である端末101cが、「コンピュータG」である端末101gに対して、「アカウントM」のアカウント名を用いてリモートログオンを行ったことを示している。尚、イベントログの生成は従来技術に相当するので、説明を省く。
続いて、ロガー1005によるロギング処理(A)について説明する。ロギング処理(A)では、ツール実行ログ301を生成する。図12に、ロギング処理(A)フローを示す。ロガー1005は、新規なプロセスが起動したか否かを判定する(S1201)。新規なプロセスが起動していないと判定した場合には、S1201に示した処理を繰り返す。
新規なプロセスが起動したと判定した場合には、ロガー1005は、新規なプロセスを起動したユーザアカウントが、リモートログオンのユーザアカウントであるか否かを判定する(S1203)。具体的には、ロガー1005は、イベント種別が「ログオン」であるイベントレコードに設定されているアカウント名に基づいて判定を行う。
新規なプロセスを起動したユーザアカウントが、リモートログオンのユーザアカウントではないと判定した場合には、S1201に示した処理に戻って上述した処理を繰り返す。
新規なプロセスを起動したユーザアカウントが、リモートログオンのユーザアカウントであると判定した場合には、ロガー1005は、ツール実行ログ301に新たなレコードを追加する(S1205)。
ここで、ツール実行ログ301について改めて説明する。図13に、ツール実行ログ301の例を示す。この例におけるツール実行ログ301は、テーブル形式である。但し、ツール実行ログ301は、テーブル形式以外の形式であってもよい。この例におけるツール実行ログ301は、ツール1001の実行に対応するレコード(以下、実行レコードという。)を有している。実行レコードは、ログオン要求元の識別子を設定するためのフィールドと、リモートログオンのユーザアカウントを設定するためのフィールドと、実行ツールの識別子を設定するためのフィールドと、実行日時を設定するためのフィールドとを有している。
ログオン要求元の識別子は、ツール実行のリモート操作を行う前提としてリモートログオンを要求した端末101を特定する。リモートログオンのユーザアカウントは、リモート操作を行ったユーザアカウントである。
実行ツールの識別子は、リモート操作によって実行されたツール1001を特定する。この例では、説明を簡単にするために、具体的なツールの識別子に代えて、識別のための文字を付して「ツールQ」のように記述する。他のデータの例においても同様である。実行日時は、リモート操作によってツール1001が実行された日付及び時刻である。
図示したイベントログは、「コンピュータG」である端末101gにおいて生成されたものである。図示した1番目のイベントレコードは、「アカウントL」を用いて「コンピュータC」からリモートログオンしたユーザが、日時「T3」に、「コンピュータG」である端末101gの「ツールQ」を実行したことを示している。同様に、図示した2番目のイベントレコードは、「アカウントM」を用いて「コンピュータC」からリモートログオンしたユーザが、日時「T5」に、「コンピュータG」である端末101gの「ツールR」を実行したことを示している。
この例で、ツール実行ログ301は、リモート操作によってツール1001が実行された場合に限りレコードが作られるものとする。
図12の説明に戻る。S1205において、ロガー1005は、イベント種別が「ログオン」であるイベントレコードにおいて当該ユーザアカウントに対応付けられているログオン要求元の識別子を、新たな実行レコードに設定する。更に、ロガー1005は、当該ユーザアカウントを、新たな実行レコードに設定する。更に、ロガー1005は、新規なプロセスの名前を、実行ツールの識別子として新たな実行レコードに設定する。更に、ロガー1005は、新規なプロセスが起動した日時を、新たな実行レコードにおける実行日時のフィールドに設定する。そして、S1201に示した処理に戻って上述した処理を繰り返す。
図14に、分析装置105のモジュール構成例を示す。分析装置105は、受付部1401、収集部1403、特定部1405、生成部1407、探索部1409、追加部1411、出力部1413、イベントログ記憶部1421、実行ログ記憶部1423、痕跡テーブル記憶部1425及びキーテーブル記憶部1427を有する。
受付部1401は、攻撃端末の識別子を受け付ける。収集部1403は、イベントログ及びツール実行ログ301を収集する。特定部1405は、特定処理を実行する。生成部1407は、探索キーテーブルを生成する。探索部1409は、攻撃痕跡を探索する。追加部1411は、探索キーテーブルに探索キーを追加する。出力部1413は、出力処理を実行する。
イベントログ記憶部1421は、収集したイベントログを記憶する。実行ログ記憶部1423は、収集したツール実行ログ301を記憶する。痕跡テーブル記憶部1425は、攻撃痕跡テーブルを記憶する。攻撃痕跡テーブルについては、図15を用いて後述する。キーテーブル記憶部1427は、探索キーテーブル(この例では、第1キーテーブル401、第2キーテーブル403及び第3キーテーブル405)を記憶する。
上述した受付部1401、収集部1403、特定部1405、生成部1407、探索部1409、追加部1411及び出力部1413は、ハードウエア資源(例えば、図38)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述したイベントログ記憶部1421、実行ログ記憶部1423、痕跡テーブル記憶部1425及びキーテーブル記憶部1427は、ハードウエア資源(例えば、図38)を用いて実現される。
図15に、攻撃痕跡テーブルの例を示す。この例における攻撃痕跡テーブルは、攻撃痕跡に対応するレコード(以下、痕跡レコードという。)を有している。痕跡レコードは、攻撃端末の識別子を設定するためのフィールドと、悪用されたユーザアカウントを設定するためのフィールドと、悪用されたツール1001の識別子を設定するためのフィールドと、標的端末の識別子を設定するためのフィールドと、実行日時を設定するためのフィールドとを有している。
攻撃端末の識別子は、攻撃を仕掛けた疑いがある端末101を特定する。悪用されたユーザアカウントは、攻撃に利用された疑いがあるアカウントである。悪用されたツール1001の識別子は、攻撃に用いられた疑いがあるツール1001を特定する。標的端末の識別子は、攻撃を仕掛けられた疑いがある端末101を特定する。実行日時は、悪用されたツール1001を実行した日付及び時刻である。
図示した1番目の痕跡レコードは、「アカウントL」を用いて「コンピュータA」からリモートログオンした攻撃者が、日時「T1」に、「コンピュータE」である端末101eの「ツールQ」を、サイバー攻撃の一環として実行した疑いがあることを示している。
同じく2番目の痕跡レコードは、「アカウントL」を用いて「コンピュータB」からリモートログオンした攻撃者が、日時「T2」に、「コンピュータF」である端末101fの「ツールQ」を、サイバー攻撃の一環として実行した疑いがあることを示している。
同じく3番目の痕跡レコードは、「アカウントL」を用いて「コンピュータC」からリモートログオンした攻撃者が、日時「T4」に、「コンピュータG」である端末101gの「ツールQ」を、サイバー攻撃の一環として実行した疑いがあることを示している。
同じく4番目の痕跡レコードは、「アカウントM」を用いて「コンピュータC」からリモートログオンした攻撃者が、日時「T6」に、「コンピュータG」である端末101gの「ツールR」を、サイバー攻撃の一環として実行した疑いがあることを示している。
同じく5番目の痕跡レコードは、「アカウントM」を用いて「コンピュータD」からリモートログオンした攻撃者が、日時「T7」に、「コンピュータH」である端末101hの「ツールS」を、サイバー攻撃の一環として実行した疑いがあることを示している。
同じく6番目の痕跡レコードは、「アカウントN」を用いて「コンピュータD」からリモートログオンした攻撃者が、日時「T8」に、「コンピュータI」である端末101iの「ツールS」を、サイバー攻撃の一環として実行した疑いがあることを示している。
図16に、第1キーテーブル401の例を示す。この例における第1キーテーブル401は、第1探索キーに対応するレコード(以下、キーレコードという。)を有している。第1キーテーブル401のキーレコードは、第1探索キーを設定するためのフィールドと、新規フラグを設定するためのフィールドと、有効フラグを設定するためのフィールドとを有している。
第1探索キーは、攻撃痕跡を探索するときの条件となる「攻撃端末の識別子」である。当該第1探索キーと比較する処理が、すべてのツール実行ログ301の全実行レコードに対して行われるまで、新規フラグはONの状態で保たれる。そして、次のサイクルに移る時点で、新規フラグはOFFに移る。また、有効フラグは、第1探索キーとして有効なときにONに設定される。
図16は、「コンピュータA」、「コンピュータB」、「コンピュータC」及び「コンピュータD」との比較による攻撃痕跡の探索を終えた状態を表している。
図17に、第2キーテーブル403の例を示す。この例における第2キーテーブル403は、第2探索キーに対応するレコード(以下、キーレコードという。)を有している。第2キーテーブル403のキーレコードは、第2探索キーを設定するためのフィールドと、新規フラグを設定するためのフィールドと、有効フラグを設定するためのフィールドとを有している。
第2探索キーは、攻撃痕跡を探索するときの条件となる「ユーザアカウント」である。当該第2探索キーと比較する処理が、すべてのツール実行ログ301の全実行レコードに対して行われるまで、新規フラグはONの状態で保たれる。そして、次のサイクルに移る時点で、新規フラグはOFFに移る。また、有効フラグは、第2探索キーとして有効なときにONに設定される。
図17は、「アカウントL」、「アカウントM」及び「アカウントN」との比較による攻撃痕跡の探索を終えた状態を表している。
図18に、第3キーテーブル405の例を示す。この例における第3キーテーブル405は、第3探索キーに対応するレコード(以下、キーレコードという。)を有している。第3キーテーブル405のキーレコードは、第3探索キーを設定するためのフィールドと、新規フラグを設定するためのフィールドと、有効フラグを設定するためのフィールドとを有している。
第3探索キーは、攻撃痕跡を探索するときの条件となる「ツールの識別子」である。当該第3探索キーと比較する処理が、すべてのツール実行ログ301の全実行レコードに対して行われるまで、新規フラグはONの状態で保たれる。そして、次のサイクルに移る時点で、新規フラグはOFFに移る。また、有効フラグは、第3探索キーとして有効なときにONに設定される。
図18は、「ツールQ」、「ツールR」及び「ツールS」との比較による攻撃痕跡の探索を終えた状態を表している。
次に、分析装置105における処理について説明する。図19に、メイン処理(A)フローを示す。受付部1401は、待機して、検知装置103において検知された攻撃端末の識別子を受け付ける(S1901)。収集部1403は、各端末101から、イベントログ及びツール実行ログ301を収集する(S1903)。収集した各イベントログは、当該イベントログを生成した端末101の識別子が付されてイベントログ記憶部1007に記憶される。収集した各ツール実行ログ301は、当該ツール実行ログ301を生成した端末101の識別子が付されて実行ログ記憶部1009に記憶される。
特定部1405は、特定処理(A)を実行する(S1905)。特定処理(A)では、検知装置103において検知された攻撃端末の識別子に基づいて、ツール実行ログ301に含まれる1次的な攻撃痕跡を特定する。
図20に、特定処理(A)フローを示す。特定部1405は、収集した各イベントログにおいて、攻撃側の端末101からのリモートログオンに関するイベントレコードを1つ特定する(S2001)。
特定部1405は、悪用された疑いのあるユーザアカウント(以下では、単に悪用されたユーザアカウントとして扱う。)を特定する(S2003)。具体的には、S2001に示した処理において特定されたイベントレコードに設定されているアカウント名が、悪用されたユーザアカウントに相当する。
特定部1405は、標的とされた疑いがある端末101(以下では、標的端末として扱う。)識別子を特定する(S2007)。具体的には、S2001に示した処理において特定されたイベントレコードを含むイベントログに付されている端末101の識別子が、標的端末の識別子に相当する。
特定部1405は、収集した各ツール実行ログ301において、攻撃端末及びS2003で特定されたユーザアカウントが該当する実行レコードを1つ特定する(S2009)。具体的には、特定部1405は、当該攻撃端末の識別子がログオン要求元の識別子のフィールドに設定されており、且つ当該ユーザアカウントがリモートログオンのユーザアカウントに設定されている実行レコードを1つ探し出す。
特定部1405は、悪用された疑いがあるツール1001(以下では、単に悪用されたツール1001として扱う。)を特定する(S2011)。具体的には、S2009に示した処理において特定された実行レコードに設定されている実行ツールの識別子によって悪用されたツール1001が特定される。
特定部1405は、S2001に示した処理において特定された実行レコードに設定されている実行日時を特定する(S2012)。
そして、特定部1405は、痕跡レコードを1つ生成する(S2013)。痕跡レコードには、攻撃端末の識別子と、悪用されたユーザアカウントと、悪用されたツールの識別子と、標的端末の識別子と、実行日時とが設定される。
特定部1405は、S2009における特定対象となる実行レコードが更にあるか否かを判定する(S2015)。S2009における特定対象となる実行レコードが更にあると判定した場合には、S2009に示した処理に戻って上述した処理を繰り返す。
S2009における特定対象となる実行レコードが無いと判定した場合には、特定部1405は、S2001における特定対象となるイベントレコードが更にあるか否かを判定する(S2017)。S2001における特定対象となるイベントレコードが更にあると判定した場合には、S2001に示した処理に戻って上述した処理を繰り返す。
S2001における特定対象となるイベントレコードが無いと判定した場合には、図19に示したメイン処理(A)に復帰する。
図19の説明に戻る。生成部1407は、探索キーテーブルを生成する(S1907)。この例で、第1キーテーブル401、第2キーテーブル403及び第3キーテーブル405が探索キーテーブルに相当する。
具体的には、生成部1407は、特定処理(A)で生成された痕跡レコードに設定されている攻撃端末の識別子を抽出し、第1キーテーブル401に登録する。第1キーテーブル401に登録された攻撃端末の識別子は、第1探索キーとして用いられる。新たな第1探索キーに対応する新規フラグはONに、同じく有効フラグはONに設定される。
更に、生成部1407は、当該痕跡レコードに設定されている悪用されたユーザアカウントを抽出し、第2キーテーブル403に登録する。第2キーテーブル403に登録されたユーザアカウントは、第2探索キーとして用いられる。新たな第2探索キーに対応する新規フラグはONに、同じく有効フラグはONに設定される。
更に、生成部1407は、当該痕跡レコードに設定されている悪用されたツールの識別子を抽出し、第3キーテーブル405に登録する。第3キーテーブル405に登録されたツールの識別子は、第3探索キーとして用いられる。新たな第3探索キーに対応する新規フラグはONに、同じく有効フラグはONに設定される。
次に、探索部1409は、実行ログ記憶部1423に記憶されているツール実行ログ301を1つ特定する(S1909)。探索部1409は、当該ツール実行ログ301に含まれる実行レコードを1つ特定する(S1911)。
探索部1409は、S1911において特定された実行レコードに設定されているログオン要求元の識別子が、新規な第1探索キーのいずれかに該当するか否かを判定する(S1913)。新規な第1探索キーとは、対応する新規フラグ及び有効フラグがONに設定されている第1探索キーのことである。
S1911において特定された実行レコードに設定されているログオン要求元の識別子が、新規な第1探索キーのいずれかに該当すると判定した場合には、端子Aを介して図21のS2101に示した処理に移る。
一方、S1911において特定された実行レコードに設定されているログオン要求元の識別子が、新規な第1探索キーのいずれにも該当しないと判定した場合には、探索部1409は、当該実行レコードに設定されているリモートログオンのユーザアカウントが、新規な第2探索キーのいずれかに該当するか否かを判定する(S1915)。新規な第2探索キーとは、対応する新規フラグ及び有効フラグがONに設定されている第2探索キーのことである。
S1911において特定された実行レコードに設定されているリモートログオンのユーザアカウントが、新規な第2探索キーのいずれかに該当すると判定した場合には、端子Aを介して図21のS2101に示した処理に移る。
一方、S1911において特定された実行レコードに設定されているリモートログオンのユーザアカウントが、新規な第2探索キーのいずれにも該当しないと判定した場合には、探索部1409は、当該実行レコードに設定されている実行ツールの識別子が、新規な第3探索キーのいずれかに該当するか否かを判定する(S1917)。新規な第3探索キーとは、対応する新規フラグ及び有効フラグがONに設定されている第3探索キーのことである。
S1911において特定された実行レコードに設定されている実行ツールの識別子が、新規な第3探索キーのいずれかに該当すると判定した場合には、端子Aを介して図21のS2101に示した処理に移る。
一方、S1911において特定された実行レコードに設定されている実行ツールの識別子が、新規な第3探索キーのいずれにも該当しないと判定した場合には、端子Bを介して図21のS2109に示した処理に移る。
図21の説明に移る。端子Aを介してS2101に示した処理に移ると、探索部1409は、攻撃追跡テーブルに痕跡レコードを追加する。具体的には、探索部1409は、S1911において特定された実行レコードに設定されているログオン要求元の識別子を、新たな痕跡レコードにおける攻撃端末の識別子のフィールドに設定する。
更に、探索部1409は、当該実行レコードに設定されているリモートログオンのユーザアカウントを、新たな痕跡レコードにおける悪用されたユーザアカウントのフィールドに設定する。
更に、探索部1409は、当該実行レコードに設定されている実行ツールの識別子を、新たな痕跡レコードにおける悪用されたツールの識別子のフィールドに設定する。
更に、探索部1409は、S1909において特定されたツール実行ログ301に付されている端末101の識別子を、新たな痕跡レコードにおける標的端末の識別子のフィールドに設定する。
更に、探索部1409は、当該実行レコードに設定されている実行日時を、新たな痕跡レコードにおける実行日時のフィールドに設定する。
追加部1411は、S2101において設定した攻撃端末の識別子が第1キーテーブル401に未登録であれば、第1探索キーとして第1キーテーブル401に追加する(S2103)。新たな第1探索キーに対応する新規フラグはONに設定され、同じく有効フラグはOFFに設定される。
追加部1411は、S2101において設定したユーザアカウントが第2キーテーブル403に未登録であれば、当該ユーザアカウントを第2探索キーとして第2キーテーブル403に追加する(S2105)。新たな第2探索キーに対応する新規フラグはONに設定され、同じく有効フラグはOFFに設定される。
追加部1411は、S2101において設定したツールの識別子が第3キーテーブル405に未登録であれば、当該ツールの識別子を第3探索キーとして第3キーテーブル405に追加する(S2107)。新たな第3探索キーに対応する新規フラグはONに設定され、同じく有効フラグはOFFに設定される。
探索部1409は、図19のS1911に示した処理において特定対象となる実行レコードが更にあるか否かを判定する(S2109)。当該実行レコードが更にあると判定した場合には、端子Cを介して、図19のS1911に示した処理に戻って上述した処理を繰り返す。
一方、当該実行レコードが無いと判定した場合には、探索部1409は、図19のS1909に示した処理において特定対象となるツール実行ログ301があるかを判定する(S2111)。当該ツール実行ログ301が更にあると判定した場合には、端子Dを介して、図19のS1909に示した処理に戻って上述した処理を繰り返す。
当該ツール実行ログ301が無いと判定した場合には、探索部1409は、図19のS1909乃至図21のS2111に示したループ処理において新規な探索キーが追加されたか否かを判定する(S2113)。具体的には、探索部1409は、第1キーテーブル401、第2キーテーブル403又は第3キーテーブル405において新規フラグがONであり、且つ有効フラグがOFFであるキーレコードがある場合に、新規な探索キーが追加されたと判定する。第1キーテーブル401、第2キーテーブル403及び第3キーテーブル405のいずれにおいても上記キーレコードが無い場合に、探索部1409は、新規な探索キーが追加されていないと判定する。
図19のS1909乃至図21のS2111に示したループ処理において新規な探索キーが追加されたと判定した場合には、探索部1409は、新規フラグ及び有効フラグがONであるキーレコードについて、新規フラグ及び有効フラグをOFFに変更する。更に、探索部1409は、新規フラグがONであり、且つ有効フラグがOFFであるキーレコードについて、有効フラグをONに変更する(S2115)。そして、探索部1409は、ツール実行ログ301の特定手段(例えば、ツール実行ログ301を順次特定するためのポインタ)を初期化する(S2117)。このようにすれば、図19のS1909に示した処理において改めて各ツール実行ログ301を特定するようになる。そして、端子Eを介して、図19のS1909に示した処理に戻って、上述した処理を繰り返す。つまり、新規な探索キーが追加されなくなるまで、各ツール実行ログ301における各実行レコードを特定して、図19のS1913乃至図21のS2107に示した処理を繰り返して行う。
一方、S2113において、上述した新規な探索キーが追加されていないと判定した場合には、出力部1413は、出力処理を実行する(S2119)。
図22に、出力処理フローを示す。出力部1413は、攻撃痕跡テーブルを出力する(S2201)。更に、出力部1413は、探索キーテーブルを出力する(S2203)。この例では、第1キーテーブル401、第2キーテーブル403及び第3キーテーブル405が出力される。
攻撃痕跡テーブル又は探索キーテーブルの一方を出力するようにしてもよい。更に、第1キーテーブル401、第2キーテーブル403及び第3キーテーブル405の一部を出力するようにしてもよい。また、出力の形態は、任意である。例えば、送信、記録媒体への書き込み、表示又は印刷によって出力するようにしてもよい。
本実施の形態によれば、サイバー攻撃の被害を分析するための対象となるツール実行ログ301を絞り込める。
更に、同じ攻撃端末からのリモート操作に関する実行レコードを抽出できるという面もある。
更に、同じユーザアカウントを使いまわす一連の攻撃に関する実行レコードを抽出できるという面もある。
更に、同じツールを操作対象とする一連の攻撃に関する実行レコードを抽出できるという面もある。
[実施の形態2]
上述した実施の形態では、各端末101において生成されたログに基づく分析の例について説明したが、本実施の形態では、LANの通信を監視する装置によって生成されたタスク登録ログに基づく分析の例について説明する。
図23に、実施の形態2における情報処理システムの例を示す。本実施の形態では、LANに監視装置2301が接続されている。監視装置2301は、パケットを収集して、ネットワークログを生成する。本実施の形態におけるネットワークログは、リモート操作によってタスクが登録されたことを記録するタスク登録ログである。
図24に、監視装置2301のモジュール構成例を示す。監視装置2301は、ネットワークロガー2401、ネットワークログ記憶部2403及び第2送信部2405を有する。ネットワークロガー2401は、ネットワークログを生成する。ネットワークログ記憶部2403は、ネットワークログを記憶する。第2送信部2405は、ネットワークログを分析装置105へ送信する。
上述した第2送信部2405は、ハードウエア資源(例えば、図38)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述したネットワークログ記憶部2403は、ハードウエア資源(例えば、図38)を用いて実現される。
図25に、タスク登録ログの例を示す。この例におけるタスク登録ログは、テーブル形式である。但し、タスク登録ログは、テーブル形式以外の形式であってもよい。この例におけるタスク登録ログは、タスクの登録に対応するレコード(以下、タスクレコードという。)を有している。タスクレコードは、送信元IPアドレスを設定するためのフィールドと、アカウント名を設定するためのフィールドと、タスクパスを設定するためのフィールドと、宛先IPアドレスを設定するためのフィールドと、登録日時を設定するためのフィールドとを有している。
送信元IPアドレスは、リモート操作によるタスク登録を行うためのパケットを送信した端末101のIPアドレスである。この端末101は、攻撃側の端末101に相当する。アカウント名は、リモート操作によるタスク登録において用いられたユーザアカウントを特定する。タスクパスは、登録対象のタスクを特定する。宛先IPアドレスは、リモート操作によるタスク登録を行うためのパケットを受信した端末101、つまりタスク登録を行った端末101のIPアドレスである。この端末101は、標的側の端末101に相当する。登録日時は、タスク登録が行われた日付及び時刻である。
図示した1番目のタスクレコードは、IPアドレス「x.x.x.1」の端末101aから、リモート操作によるタスク登録を行うためのパケットを受信したIPアドレス「x.x.x.5」の端末101eが、日時「T11」に、ユーザアカウント「adminL」に基づいてタスクパス「c:qware.exe」のタスクを登録したことを示している。
同じく2番目のタスクレコードは、IPアドレス「x.x.x.2」の端末101bから、リモート操作によるタスク登録を行うためのパケットを受信したIPアドレス「x.x.x.6」の端末101fが、日時「T12」に、ユーザアカウント「adminL」に基づいてタスクパス「d:qware.exe」のタスクを登録したことを示している。
同じく3番目のタスクレコードは、IPアドレス「x.x.x.3」の端末101cから、リモート操作によるタスク登録を行うためのパケットを受信したIPアドレス「x.x.x.7」の端末101gが、日時「T13」に、ユーザアカウント「adminL」に基づいてタスクパス「c:qware.exe」のタスクを登録したことを示している
本実施の形態では、ロギング処理(B)を行う。図26に、ロギング処理(B)フローを示す。ネットワークロガー2401は、キャプチャ処理を開始する(S2601)。キャプチャ処理で、ネットワークロガー2401は、監視装置2301とLANとの間に設けられたポートミラーリング対応のスイッチ又はネットワークタップを介して、ネットワーク上を伝送するパケットを取り込む。取り込んだパケットは、一時的に記憶する。記憶するパケットに、キャプチャした日時を付するようにしてもよい。
ネットワークロガー2401は、キャプチャしたパケットのうち、未処理のパケットを1つ特定する(S2603)。ネットワークロガー2401は、例えばキャプチャした順にパケットを特定する。未処理のパケットが無い場合に、ネットワークロガー2401は、次のパケットがキャプチャされるまで待機する。
ネットワークロガー2401は、特定したパケットが所定のプロトコル(例えば、SMB(Server Message Block)2)のパケットであるか否かを判定する(S2605)。特定したパケットが所定のプロトコルのパケットではないと判定した場合には、S2603に示した処理に戻って上述した処理を繰り返す。
一方、特定したパケットが所定のプロトコルのパケットであると判定した場合には、ネットワークロガー2401は、当該パケットにおけるコマンドがタスク登録であるか否かを判定する(S2607)。当該パケットにおけるコマンドがタスク登録ではないと判定した場合には、S2603に示した処理に戻って上述した処理を繰り返す。
一方、当該パケットにおけるコマンドがタスク登録であると判定した場合には、ネットワークロガー2401は、タスク登録ログにタスクレコードを追加する(S2609)。具体的には、ネットワークロガー2401は、送信元IPアドレス、アカウント名、タスクパス及び宛先IPアドレスを当該パケットから抽出し、該当するフィールドに設定する。また、当日の日付及び現在時間が、登録日時のフィールドに設定される。そして、S2603に示した処理に戻って上述した処理を繰り返す。
図27に、実施の形態2における分析装置105のモジュール構成例を示す。分析装置105は、図14に示した収集部1403に代えて、取得部2701を有する。分析装置105は、図14に示したイベントログ記憶部1421及び実行ログ記憶部1423に代えて、ネットワークログ記憶部2703を有する。
取得部2701は、ネットワークログを取得する。ネットワークログ記憶部2703は、ネットワークログを記憶する。
上述した取得部2701は、ハードウエア資源(例えば、図38)と、以下で述べる処理をプロセッサに実行させるプログラムとを用いて実現される。
上述したネットワークログ記憶部2703は、ハードウエア資源(例えば、図38)を用いて実現される。
図28に、実施の形態2における攻撃痕跡テーブルの例を示す。攻撃端末の識別子は、攻撃を仕掛けた疑いがある端末101を特定する。悪用されたユーザアカウントは、攻撃に利用された疑いがあるアカウントである。悪用されたタスクの識別子は、攻撃に用いられた疑いがあるタスクを特定する。標的端末の識別子は、攻撃を仕掛けられた疑いがある端末101を特定する。登録日時は、当該タスクが登録された日付及び時刻である。
図示した1番目の痕跡レコードは、IPアドレス「x.x.x.1」の攻撃側の端末101aから、不正なリモート操作によるタスク登録を行うためのパケットを受信したIPアドレス「x.x.x.5」の標的側の端末101eにおいて、日時「T11」に、ユーザアカウント「adminL」に基づいてタスクパス「c:qware.exe」のタスクが不正に登録された疑いがあることを示している。
図示した2番目の痕跡レコードは、IPアドレス「x.x.x.2」の攻撃側の端末101bから、不正なリモート操作によるタスク登録を行うためのパケットを受信したIPアドレス「x.x.x.6」の標的側の端末101fにおいて、日時「T12」に、ユーザアカウント「adminL」に基づいてタスクパス「d:qware.exe」のタスクが不正に登録された疑いがあることを示している。
図示した3番目の痕跡レコードは、IPアドレス「x.x.x.3」の攻撃側の端末101cから、不正なリモート操作によるタスク登録を行うためのパケットを受信したIPアドレス「x.x.x.7」の標的側の端末101gにおいて、日時「T13」に、ユーザアカウント「adminL」に基づいてタスクパス「c:qware.exe」のタスクが不正に登録された疑いがあることを示している。
本実施の形態では、メイン処理(B)を行う。図29に、メイン処理(B)フローを示す。受付部1401は、待機して、検知装置103において検知された攻撃端末の識別子を受け付ける(S2901)。取得部2701は、監視装置2301からタスク登録ログを取得する(S2903)。取得したタスク登録ログは、ネットワークログ記憶部2703に記憶される。
特定部1405は、特定処理(B)を実行する(S2905)。特定処理(B)では、検知装置103において検知された攻撃端末の識別子に基づいて、タスク登録ログに含まれる1次的な攻撃痕跡を特定する。
図30に、特定処理(B)フローを示す。特定部1405は、タスク登録ログに含まれるタスクレコードを1つ特定する(S3001)。特定部1405は、特定したタスクレコードが攻撃側の端末101からのタスク登録に該当するか否かを判定する(S3003)。具体的には、特定部1405は、当該タスクレコードに設定されている送信元IPアドレスが、攻撃側の端末101のIPアドレスと一致する場合に、当該タスクレコードが攻撃側の端末101からのタスク登録に該当すると判定する。
S3001において特定したタスクレコードが攻撃側の端末101からのタスク登録に該当しないと判定した場合には、S3007に示した処理に移る。
一方、S3001において特定したタスクレコードが攻撃側の端末101からのタスク登録に該当すると判定した場合には、特定部1405は、痕跡レコードを1つ生成する(S3005)。具体的には、当該タスクレコードに設定されている送信元IPアドレスが、新しい痕跡レコードにおける攻撃端末の識別子のフィールドに設定される。当該タスクレコードに設定されているアカウント名が、新しい痕跡レコードにおける悪用されたユーザアカウントのフィールドに設定される。当該タスクレコードに設定されているタスクパスに含まれるファイル名が、新しい痕跡レコードにおける悪用されたタスクの識別子のフィールドに設定される。当該タスクレコードに設定されている宛先IPアドレスが、新しい痕跡レコードにおける標的端末の識別子のフィールドに設定される。当該タスクレコードに設定されている登録日時が、新しい痕跡レコードにおける登録日時のフィールドに設定される。
特定部1405は、未処理のタスクレコードがあるか否かを判定する(S3007)。未処理のタスクレコードがあると判定した場合には、S3001に示した処理に戻って上述した処理を繰り返す。
一方、未処理のタスクレコードが無いと判定した場合には、特定処理(B)を終え、図29に示したメイン処理(B)に復帰する。
図29の説明に戻る。生成部1407は、実施の形態1の場合と同様に、探索キーテーブルを生成する(S2907)。
探索部1409は、タスク登録ログに含まれるタスクレコードを1つ特定する(S2909)。
探索部1409は、S2909において特定されたタスクレコードに設定されている送信元IPアドレスが、新規な第1探索キーのいずれかに該当するか否かを判定する(S2911)。
S2909において特定されたタスクレコードに設定されている送信元IPアドレスが、新規な第1探索キーのいずれかに該当すると判定した場合には、端子Fを介して図31のS3101に示した処理に移る。
一方、S2909において特定されたタスクレコードに設定されている送信元IPアドレスが、新規な第1探索キーのいずれにも該当しないと判定した場合には、探索部1409は、当該タスクレコードに設定されているアカウント名が、新規な第2探索キーのいずれかに該当するか否かを判定する(S2913)。
S2909において特定されたタスクレコードに設定されているアカウント名が、新規な第2探索キーのいずれかに該当すると判定した場合には、端子Fを介して図31のS3101に示した処理に移る。
一方、S2909において特定されたタスクレコードに設定されているアカウント名が、新規な第2探索キーのいずれにも該当しないと判定した場合には、探索部1409は、当該タスクレコードに設定されているタスクパスに含まれるファイル名が、新規な第3探索キーのいずれかに該当するか否かを判定する(S2915)。
S2909において特定されたタスクレコードに設定されているタスクパスに含まれるファイル名が、新規な第3探索キーのいずれかに該当すると判定した場合には、端子Fを介して図31のS3101に示した処理に移る。
一方、S2909において特定されたタスクレコードに設定されているタスクパスに含まれるファイル名が、新規な第3探索キーのいずれにも該当しないと判定した場合には、端子Gを介して図31のS3109に示した処理に移る。
図31の説明に移る。端子Fを介してS3101に示した処理に移ると、探索部1409は、攻撃追跡テーブルに痕跡レコードを追加する。具体的には、探索部1409は、S2909において特定されたタスクレコードに設定されている送信元IPアドレスを、新たな痕跡レコードにおける攻撃端末の識別子のフィールドに設定する。
更に、探索部1409は、当該タスクレコードに設定されているアカウント名を、新たな痕跡レコードにおける悪用されたユーザアカウントのフィールドに設定する。
更に、探索部1409は、当該タスクレコードに設定されているタスクパスに含まれるファイル名を、新たな痕跡レコードにおける悪用されたタスクの識別子のフィールドに設定する。
更に、探索部1409は、当該タスクレコードに設定されている宛先IPアドレスを、新たな痕跡レコードにおける標的端末の識別子のフィールドに設定する。
更に、探索部1409は、当該タスクレコードに設定されている登録日時を、新たな痕跡レコードにおける登録日時のフィールドに設定する。
追加部1411は、S3101において設定した攻撃端末の識別子が第1キーテーブル401に未登録であれば、当該攻撃端末の識別子を第1探索キーとして第1キーテーブル401に追加する(S3103)。新たな第1探索キーに対応する新規フラグはONに設定され、同じく有効フラグはOFFに設定される。
追加部1411は、S3101において設定したユーザアカウントが第2キーテーブル403に未登録であれば、当該ユーザアカウントを第2探索キーとして第2キーテーブル403に追加する(S3105)。新たな第2探索キーに対応する新規フラグはONに設定され、同じく有効フラグはOFFに設定される。
追加部1411は、S3101において設定したタスクの識別子が第3キーテーブル405に未登録であれば、当該タスクの識別子を第3探索キーとして第3キーテーブル405に追加する(S3107)。新たな第3探索キーに対応する新規フラグはONに設定され、同じく有効フラグはOFFに設定される。
探索部1409は、図29のS2909に示した処理において特定対象となるタスクレコードが更にあるか否かを判定する(S3109)。当該タスクレコードが更にあると判定した場合には、端子Hを介して、図29のS2909に示した処理に戻って上述した処理を繰り返す。
一方、当該タスクレコードが無いと判定した場合には、探索部1409は、図29のS2909乃至図31のS3109に示したループ処理において新規な探索キーが追加されたか否かを判定する(S3111)。
図29のS2909乃至図31のS3109に示したループ処理において新規な探索キーが追加されたと判定した場合には、探索部1409は、実施の形態1の場合と同様に、新規フラグ及び有効フラグを変更する(S3113)。そして、探索部1409は、タスクレコードの特定手段(例えば、タスクレコードを順次特定するためのポインタ)を初期化する(S3115)。このようにすれば、図29のS2909に示した処理において改めて各タスクレコードを特定するようになる。そして、端子Iを介して、図29のS2909に示した処理に戻って、上述した処理を繰り返す。つまり、新規な探索キーが追加されなくなるまで、各タスクレコードを特定して、図29のS2911乃至図31のS3107に示した処理を繰り返して行う。
一方、S3111において、上述した新規な探索キーが追加されていないと判定した場合には、出力部1413は、出力処理を実行する(S3117)。出力処理は、実施の形態1の場合と同様である。
本実施の形態によれば、サイバー攻撃の被害を分析するための対象となるタスク登録ログを絞り込める。
更に、同じ攻撃端末からのリモート操作に関するタスクレコードを抽出できるという面もある。
更に、同じユーザアカウントを使いまわす一連の攻撃に関するタスクレコードを抽出できるという面もある。
更に、同じタスクを操作対象とする一連の攻撃に関するタスクレコードを抽出できるという面もある。
[実施の形態3]
上述した実施の形態では、タスク登録ログに基づく分析の例について説明したが、本実施の形態では、LANの通信を監視する装置によって生成されたサービス登録ログに基づく分析の例について説明する。
本実施の形態におけるネットワークログは、リモート操作によってサービスが登録されたことを記録するサービス登録ログである。図32に、サービス登録ログの例を示す。この例におけるサービス登録ログは、テーブル形式である。但し、サービス登録ログは、テーブル形式以外の形式であってもよい。この例におけるサービス登録ログは、サービスの登録に対応するレコード(以下、サービスレコードという。)を有している。サービスレコードは、送信元IPアドレスを設定するためのフィールドと、アカウント名を設定するためのフィールドと、サービス名を設定するためのフィールドと、宛先IPアドレスを設定するためのフィールドと、登録日時を設定するためのフィールドとを有している。
送信元IPアドレスは、リモート操作によるサービス登録を行うためのパケットを送信した端末101のIPアドレスである。この端末101は、攻撃側の端末101に相当する。アカウント名は、リモート操作によるサービス登録において用いられたユーザアカウントを特定する。サービス名は、登録対象のサービスを特定する。宛先IPアドレスは、リモート操作によるサービス登録を行うためのパケットを受信した端末101、つまりサービス登録を行った端末101のIPアドレスである。この端末101は、標的側の端末101に相当する。登録日時は、サービス登録が行われた日付及び時刻である。
図示した1番目のサービスレコードは、IPアドレス「x.x.x.3」の端末101cから、リモート操作によるサービス登録を行うためのパケットを受信したIPアドレス「x.x.x.7」の端末101gが、日時「T21」に、ユーザアカウント「userM」に基づいて「serviceR」を登録したことを示している。
図示した2番目のサービスレコードは、IPアドレス「x.x.x.4」の端末101dから、リモート操作によるサービス登録を行うためのパケットを受信したIPアドレス「x.x.x.8」の端末101hが、日時「T22」に、ユーザアカウント「userM」に基づいて「serviceS」を登録したことを示している。
図示した3番目のサービスレコードは、IPアドレス「x.x.x.4」の端末101dから、リモート操作によるサービス登録を行うためのパケットを受信したIPアドレス「x.x.x.9」の端末101iが、日時「T23」に、ユーザアカウント「userN」に基づいて「serviceS」を登録したことを示している。
本実施の形態では、ロギング処理(C)を行う。図33に、ロギング処理(C)フローを示す。ネットワークロガー2401は、キャプチャ処理を開始する(S3301)。ネットワークロガー2401は、キャプチャしたパケットのうち、未処理のパケットを1つ特定する(S3303)。
ネットワークロガー2401は、特定したパケットが所定のプロトコル(例えば、DCE/RPC(Distributed Computing Environment / Remote Procedure Calls))のパケットであるか否かを判定する(S3305)。特定したパケットが所定のプロトコルのパケットではないと判定した場合には、S3303に示した処理に戻って上述した処理を繰り返す。
一方、特定したパケットが所定のプロトコルのパケットであると判定した場合には、ネットワークロガー2401は、当該パケットにおけるコマンドがサービス登録であるか否かを判定する(S3307)。当該パケットにおけるコマンドがサービス登録ではないと判定した場合には、S3303に示した処理に戻って上述した処理を繰り返す。
一方、当該パケットにおけるコマンドがサービス登録であると判定した場合には、ネットワークロガー2401は、サービス登録ログにサービスレコードを追加する(S3309)。具体的には、ネットワークロガー2401は、送信元IPアドレス、アカウント名、サービス名及び宛先IPアドレスを当該パケットから抽出し、該当するフィールドに設定する。また、当日の日付及び現在時間が、登録日時のフィールドに設定される。そして、S3303に示した処理に戻って上述した処理を繰り返す。
図34に、実施の形態3における攻撃痕跡テーブルの例を示す。攻撃端末の識別子は、攻撃を仕掛けた疑いがある端末101を特定する。悪用されたユーザアカウントは、攻撃に利用された疑いがあるアカウントである。悪用されたサービスの識別子は、攻撃に用いられた疑いがあるサービスを特定する。標的端末の識別子は、攻撃を仕掛けられた疑いがある端末101を特定する。実行日時は、当該サービスが登録された日付及び時刻である。
図示した1番目の痕跡レコードは、IPアドレス「x.x.x.3」の攻撃側の端末101cから、不正なリモート操作によるサービス登録を行うためのパケットを受信したIPアドレス「x.x.x.7」の標的側の端末101gにおいて、日時「T21」に、ユーザアカウント「userM」に基づいて「serviceR」が不正に登録された疑いがあることを示している。
同じく2番目の痕跡レコードは、IPアドレス「x.x.x.4」の攻撃側の端末101dから、不正なリモート操作によるサービス登録を行うためのパケットを受信したIPアドレス「x.x.x.8」の標的側の端末101hにおいて、日時「T22」に、ユーザアカウント「userM」に基づいて「serviceS」が不正に登録された疑いがあることを示している。
同じく3番目の痕跡レコードは、IPアドレス「x.x.x.4」の攻撃側の端末101dから、不正なリモート操作によるサービス登録を行うためのパケットを受信したIPアドレス「x.x.x.9」の標的側の端末101iにおいて、日時「T23」に、ユーザアカウント「userN」に基づいて「serviceS」が不正に登録された疑いがあることを示している。
本実施の形態では、メイン処理(C)を行う。図35に、メイン処理(C)フローを示す。受付部1401は、待機して、検知装置103において検知された攻撃端末の識別子を受け付ける(S3501)。取得部2701は、監視装置2301からサービス登録ログを取得する(S3503)。取得したサービス登録ログは、ネットワークログ記憶部2703に記憶される。
特定部1405は、特定処理(C)を実行する(S3505)。特定処理(C)では、検知装置103において検知された攻撃端末の識別子に基づいて、サービス登録ログに含まれる1次的な攻撃痕跡を特定する。
図36に、特定処理(C)フローを示す。特定部1405は、サービス登録ログに含まれるサービスレコードを1つ特定する(S3601)。特定部1405は、特定したサービスレコードが攻撃側の端末101からのサービス登録に該当するか否かを判定する(S3603)。具体的には、特定部1405は、当該サービスレコードに設定されている送信元IPアドレスが、攻撃側の端末101のIPアドレスと一致する場合に、当該サービスレコードが攻撃側の端末101からのサービス登録に該当すると判定する。
S3601において特定したサービスレコードが攻撃側の端末101からのサービス登録に該当しないと判定した場合には、S3607に示した処理に移る。
一方、S3601において特定したサービスレコードが攻撃側の端末101からのサービス登録に該当すると判定した場合には、特定部1405は、痕跡レコードを1つ生成する(S3605)。具体的には、当該サービスレコードに設定されている送信元IPアドレスが、新しい痕跡レコードにおける攻撃端末の識別子のフィールドに設定される。当該サービスレコードに設定されているアカウント名が、新しい痕跡レコードにおける悪用されたユーザアカウントのフィールドに設定される。当該サービスレコードに設定されているサービス名が、新しい痕跡レコードにおける悪用されたサービスの識別子のフィールドに設定される。当該サービスレコードに設定されている宛先IPアドレスが、新しい痕跡レコードにおける標的端末の識別子のフィールドに設定される。当該サービスレコードに設定されている登録日時が、新しい痕跡レコードにおける登録日時のフィールドに設定される。
特定部1405は、未処理のサービスレコードがあるか否かを判定する(S3607)。未処理のサービスレコードがあると判定した場合には、S3601に示した処理に戻って上述した処理を繰り返す。
一方、未処理のサービスレコードが無いと判定した場合には、特定処理(C)を終え、図35に示したメイン処理(C)に復帰する。
図35の説明に戻る。生成部1407は、実施の形態1の場合と同様に、探索キーテーブルを生成する(S3507)。
探索部1409は、サービス登録ログに含まれるサービスレコードを1つ特定する(S3509)。
探索部1409は、S3509において特定されたサービスレコードに設定されている送信元IPアドレスが、新規な第1探索キーのいずれかに該当するか否かを判定する(S3511)。
S3509において特定されたサービスレコードに設定されている送信元IPアドレスが、新規な第1探索キーのいずれかに該当すると判定した場合には、端子Jを介して図37のS3701に示した処理に移る。
一方、S3509において特定されたサービスレコードに設定されている送信元IPアドレスが、新規な第1探索キーのいずれにも該当しないと判定した場合には、探索部1409は、当該サービスレコードに設定されているアカウント名が、新規な第2探索キーのいずれかに該当するか否かを判定する(S3513)。
S3509において特定されたサービスレコードに設定されているアカウント名が、新規な第2探索キーのいずれかに該当すると判定した場合には、端子Jを介して図37のS3701に示した処理に移る。
一方、S3509において特定されたサービスレコードに設定されているアカウント名が、新規な第2探索キーのいずれにも該当しないと判定した場合には、探索部1409は、当該サービスレコードに設定されているサービス名が、新規な第3探索キーのいずれかに該当するか否かを判定する(S3515)。
S3509において特定されたサービスレコードに設定されているサービス名が、新規な第3探索キーのいずれかに該当すると判定した場合には、端子Jを介して図37のS3701に示した処理に移る。
一方、S3509において特定されたサービスレコードに設定されているサービス名が、新規な第3探索キーのいずれにも該当しないと判定した場合には、端子Kを介して図37のS3709に示した処理に移る。
図37の説明に移る。端子Jを介してS3701に示した処理に移ると、探索部1409は、攻撃追跡テーブルに痕跡レコードを追加する。具体的には、探索部1409は、S3509において特定されたサービスレコードに設定されている送信元IPアドレスを、新たな痕跡レコードにおける攻撃端末の識別子のフィールドに設定する。
更に、探索部1409は、当該サービスレコードに設定されているアカウント名を、新たな痕跡レコードにおける悪用されたユーザアカウントのフィールドに設定する。
更に、探索部1409は、当該サービスレコードに設定されているサービス名を、新たな痕跡レコードにおける悪用されたサービスの識別子のフィールドに設定する。
更に、探索部1409は、当該サービスレコードに設定されている宛先IPアドレスを、新たな痕跡レコードにおける標的端末の識別子のフィールドに設定する。
更に、探索部1409は、当該サービスレコードに設定されている登録日時を、新たな痕跡レコードにおける登録日時のフィールドに設定する。
追加部1411は、S3701において設定した攻撃端末の識別子が第1キーテーブル401に未登録であれば、当該攻撃端末の識別子を第1探索キーとして第1キーテーブル401に追加する(S3703)。新たな第1探索キーに対応する新規フラグはONに設定され、同じく有効フラグはOFFに設定される。
追加部1411は、S3701において設定したユーザアカウントが第2キーテーブル403に未登録であれば、当該ユーザアカウントを第2探索キーとして第2キーテーブル403に追加する(S3705)。新たな第2探索キーに対応する新規フラグはONに設定され、同じく有効フラグはOFFに設定される。
追加部1411は、S3701において設定したサービスの識別子が第3キーテーブル405に未登録であれば、当該サービスの識別子を第3探索キーとして第3キーテーブル405に追加する(S3707)。新たな第3探索キーに対応する新規フラグはONに設定され、同じく有効フラグはOFFに設定される。
探索部1409は、図35のS3509に示した処理において特定対象となるサービスレコードが更にあるか否かを判定する(S3709)。当該サービスレコードが更にあると判定した場合には、端子Lを介して、図35のS3509に示した処理に戻って上述した処理を繰り返す。
一方、当該サービスレコードが無いと判定した場合には、探索部1409は、図35のS3509乃至図37のS3709に示したループ処理において新規な探索キーが追加されたか否かを判定する(S3711)。
図35のS3509乃至図37のS3709に示したループ処理において新規な探索キーが追加されたと判定した場合には、探索部1409は、実施の形態1の場合と同様に、新規フラグ及び有効フラグを変更する(S3713)。そして、探索部1409は、サービスレコードの特定手段(例えば、サービスレコードを順次特定するためのポインタ)を初期化する(S3715)。このようにすれば、図35のS3509に示した処理において改めて各サービスレコードを特定するようになる。そして、端子Mを介して、図35のS3509に示した処理に戻って、上述した処理を繰り返す。つまり、新規な探索キーが追加されなくなるまで、各サービスレコードを特定して、図35のS3511乃至図37のS3707に示した処理を繰り返して行う。
一方、S3711において、上述した新規な探索キーが追加されていないと判定した場合には、出力部1413は、出力処理を実行する(S3717)。出力処理は、実施の形態1の場合と同様である。
本実施の形態によれば、サイバー攻撃の被害を分析するための対象となるサービス登録ログを絞り込める。
更に、同じ攻撃端末からのリモート操作に関するサービスレコードを抽出できるという面もある。
更に、同じユーザアカウントを使いまわす一連の攻撃に関するサービスレコードを抽出できるという面もある。
更に、同じサービスを操作対象とする一連の攻撃に関するサービスレコードを抽出できるという面もある。
以上本発明の実施の形態を説明したが、本発明はこれに限定されるものではない。例えば、上述の機能ブロック構成はプログラムモジュール構成に一致しない場合もある。
また、上で説明した各記憶領域の構成は一例であって、上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ、処理の順番を入れ替えることや複数の処理を並列に実行させるようにしても良い。
なお、上で述べた端末101、検知装置103、分析装置105及び監視装置2301は、コンピュータ装置であって、図38に示すように、メモリ2501とCPU(Central Processing Unit)2503とハードディスク・ドライブ(HDD:Hard Disk Drive)2505と表示装置2509に接続される表示制御部2507とリムーバブル・ディスク2511用のドライブ装置2513と入力装置2515とネットワークに接続するための通信制御部2517とがバス2519で接続されている。オペレーティング・システム(OS:Operating System)及び本実施例における処理を実施するためのアプリケーション・プログラムは、HDD2505に格納されており、CPU2503により実行される際にはHDD2505からメモリ2501に読み出される。CPU2503は、アプリケーション・プログラムの処理内容に応じて表示制御部2507、通信制御部2517、ドライブ装置2513を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ2501に格納されるが、HDD2505に格納されるようにしてもよい。本発明の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク2511に格納されて頒布され、ドライブ装置2513からHDD2505にインストールされる。インターネットなどのネットワーク及び通信制御部2517を経由して、HDD2505にインストールされる場合もある。このようなコンピュータ装置は、上で述べたCPU2503、メモリ2501などのハードウエアとOS及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
以上述べた本発明の実施の形態をまとめると、以下のようになる。
本実施の形態に係るログ分析方法は、(A)それぞれ複数の識別情報を含む複数のレコードを有するログから、攻撃に関する疑いがあるレコードの上記識別情報を探索キーとして、当該探索キーを含むレコードを探し出す探索処理と、(B)レコードが探し出された場合に、探し出された当該レコードに含まれる上記識別情報のうち、未だ探索キーに該当していないものを、新たな探索キーに追加する追加処理と、(C)追加処理において新たな探索キーが追加された場合に、当該新たな探索キーについて、探索処理及び追加処理を繰り返す処理とを含む。
このようにすれば、サイバー攻撃の被害を分析するための対象となるログを絞り込める。
更に、レコードは上記識別情報として、リモートログオンを要求した装置の識別子、当該リモートログオンに使用されたユーザアカウント、及びリモートログオンされた装置において当該ユーザアカウントによるリモート操作の対象となったプログラムの識別子を含むようにしてもよい。
また、攻撃に関する疑いがあるレコードの、攻撃を仕掛けた疑いがある装置の識別子、攻撃に利用された疑いがあるユーザアカウント及び攻撃に用いられた疑いがあるプログラムの識別子の少なくとも一つを探索キーとするようにしてもよい。
このようにすれば、同じ攻撃端末からのリモート操作に関するレコードを抽出できるという面がある。更に、同じユーザアカウントを使いまわす一連の攻撃に関するレコードを抽出できるという面もある。更に、同じプログラムを操作対象とする一連の攻撃に関するレコードを抽出できるという面もある。
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、CD−ROM、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納されるようにしてもよい。尚、中間的な処理結果は、一般的にメインメモリ等の記憶装置に一時保管される。
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
(付記1)
それぞれ複数の識別情報を含む複数のレコードを有するログから、攻撃に関する疑いがあるレコードの前記識別情報を探索キーとして、当該探索キーを含むレコードを探し出す探索処理と、
前記レコードが探し出された場合に、探し出された当該レコードに含まれる前記識別情報のうち、未だ前記探索キーに該当していないものを、新たな探索キーに追加する追加処理と、
前記追加処理において前記新たな探索キーが追加された場合に、当該新たな探索キーについて、前記探索処理及び前記追加処理を繰り返す処理と
を含み、コンピュータにより実行されるログ分析方法。
(付記2)
前記レコードは前記識別情報として、リモートログオンを要求した装置の識別子、当該リモートログオンに使用されたユーザアカウント、及びリモートログオンされた装置において当該ユーザアカウントによるリモート操作の対象となったプログラムの識別子を含むことを特徴とする付記1に記載のログ分析方法。
(付記3)
前記攻撃に関する疑いがある前記レコードの、前記攻撃を仕掛けた疑いがある装置の識別子、前記攻撃に利用された疑いがあるユーザアカウント及び前記攻撃に用いられた疑いがあるプログラムの識別子の少なくとも一つを前記探索キーとする付記2に記載のログ分析方法。
(付記4)
それぞれ複数の識別情報を含む複数のレコードを有するログから、攻撃に関する疑いがあるレコードの前記識別情報を探索キーとして、当該探索キーを含むレコードを探し出す探索処理と、
前記レコードが探し出された場合に、探し出された当該レコードに含まれる前記識別情報のうち、未だ前記探索キーに該当していないものを、新たな探索キーに追加する追加処理と、
前記追加処理において前記新たな探索キーが追加された場合に、当該新たな探索キーについて、前記探索処理及び前記追加処理を繰り返す処理と
をコンピュータに実行させるログ分析プログラム。
(付記5)
前記レコードは前記識別情報として、リモートログオンを要求した装置の識別子、当該リモートログオンに使用されたユーザアカウント、及びリモートログオンされた装置において当該ユーザアカウントによるリモート操作の対象となったプログラムの識別子を含むことを特徴とする付記4に記載のログ分析プログラム。
(付記6)
前記攻撃に関する疑いがある前記レコードの、前記攻撃を仕掛けた疑いがある装置の識別子、前記攻撃に利用された疑いがあるユーザアカウント及び前記攻撃に用いられた疑いがあるプログラムの識別子の少なくとも一つを前記探索キーとする付記5に記載のログ分析プログラム。
(付記7)
それぞれ複数の識別情報を含む複数のレコードを有するログから、攻撃に関する疑いがあるレコードの前記識別情報を探索キーとして、当該探索キーを含むレコードを探し出す探索部と、
前記レコードが探し出された場合に、探し出された当該レコードに含まれる前記識別情報のうち、未だ前記探索キーに該当していないものを、新たな探索キーに追加する追加部と
を有し、
前記新たな探索キーが追加された場合に、前記探索部は、当該新たな探索キーを含むレコードを探し出す
ログ分析装置。
(付記8)
前記レコードは前記識別情報として、リモートログオンを要求した装置の識別子、当該リモートログオンに使用されたユーザアカウント、及びリモートログオンされた装置において当該ユーザアカウントによるリモート操作の対象となったプログラムの識別子を含むことを特徴とする付記7に記載のログ分析装置。
(付記9)
前記探索部は、前記攻撃に関する疑いがある前記レコードの、前記攻撃を仕掛けた疑いがある装置の識別子、前記攻撃に利用された疑いがあるユーザアカウント及び前記攻撃に用いられた疑いがあるプログラムの識別子の少なくとも一つを前記探索キーとする付記8に記載のログ分析装置。