(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-10
(45)【発行日】2024-09-19
(54)【発明の名称】攻撃情報生成装置、制御方法、及びプログラム
(51)【国際特許分類】
G06F 21/55 20130101AFI20240911BHJP
【FI】
G06F21/55 320
G06F21/55 340
(21)【出願番号】P 2022571953
(86)(22)【出願日】2021-11-15
(86)【国際出願番号】 JP2021041829
(87)【国際公開番号】W WO2022137883
(87)【国際公開日】2022-06-30
【審査請求日】2023-06-15
(31)【優先権主張番号】P 2020215074
(32)【優先日】2020-12-24
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(73)【特許権者】
【識別番号】301022471
【氏名又は名称】国立研究開発法人情報通信研究機構
(74)【代理人】
【識別番号】100103894
【氏名又は名称】家入 健
(72)【発明者】
【氏名】高橋 佑典
(72)【発明者】
【氏名】安田 真悟
【審査官】行田 悦資
(56)【参考文献】
【文献】特開2010-152773(JP,A)
【文献】特開2004-302956(JP,A)
【文献】国際公開第2015/141560(WO,A1)
【文献】国際公開第2015/141630(WO,A1)
【文献】特開2012-003436(JP,A)
【文献】特開2016-115037(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
複数
回実行
された対象攻撃それぞれの
実行期間が示される情報を取得し、各前記対象攻撃の実行期間におけるログを用いて、
各前記対象攻撃について1つ以上のイベントそれぞれの出現数を特定する特定手段と、
前記イベントごとに、
各前記対象攻
撃について特定されたそのイベントの出現数が、所定条件を満たすか否かを判定する判定手段と、
前記対象攻撃と、出現数が前記所定条件を満たすと判定された前記イベントとを対応づけた
情報を、前記対象攻撃の影響で発生しうるイベントが示された攻撃情報
として生成する生成手段と、を有する攻撃情報生成装置。
【請求項2】
前記所定条件は、前記対象攻撃の複数回の実行それぞれについて特定された前記イベントの出現数の統計値が閾値以上であることである、請求項1に記載の攻撃情報生成装置。
【請求項3】
前記特定手段は、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在する前記イベントの出現数を1とし、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在しない前記イベントの出現数を0とする、請求項1又は2に記載の攻撃情報生成装置。
【請求項4】
前記特定手段は、
前記ログにおいて前記対象攻撃の実行期間に記録されている複数のエントリのうち、1つ以上の所定の項目において互いに一致又は類似する値が示されている各前記エントリを、互いに同一の前記イベントを表す前記エントリとして特定し、
各前記イベントについて、そのイベントを表すものとして特定された前記エントリの数に基づいて、そのイベントの出現数を特定する、請求項1から3いずれか一項に記載の攻撃情報生成装置。
【請求項5】
前記生成手段は、前記対象攻撃の実行期間の長さを特定し、当該実行期間の長さを前記攻撃情報に含める、請求項1から4いずれか一項に記載の攻撃情報生成装置。
【請求項6】
前記攻撃情報に含める前記対象攻撃の実行期間の長さは、複数回実行された前記対象攻撃それぞれの実行期間の長さの統計値である、請求項5に記載の攻撃情報生成装置。
【請求項7】
前記対象攻撃の複数回の実行のうち、少なくとも2回の実行は、互いに異なるテスト環境で行われる、請求項1から6いずれか一項に記載の攻撃情報生成装置。
【請求項8】
前記特定手段は、複数種類の前記ログそれぞれについて、各前記イベントの出現数の特定を行い、
前記生成手段は、前記攻撃情報に、前記イベントを表すエントリが抽出された前記ログの種類を含める、請求項1から7いずれか一項に記載の攻撃情報生成装置。
【請求項9】
コンピュータによって実行される制御方法であって、
複数
回実行
された対象攻撃それぞれの
実行期間が示される情報を取得し、各前記対象攻撃の実行期間におけるログを用いて、
各前記対象攻撃について1つ以上のイベントそれぞれの出現数を特定する特定ステップと、
前記イベントごとに、
各前記対象攻
撃について特定されたそのイベントの出現数が、所定条件を満たすか否かを判定する判定ステップと、
前記対象攻撃と、出現数が前記所定条件を満たすと判定された前記イベントとを対応づけた
情報を、前記対象攻撃の影響で発生しうるイベントが示された攻撃情報
として生成する生成ステップと、を有する制御方法。
【請求項10】
前記所定条件は、前記対象攻撃の複数回の実行それぞれについて特定された前記イベントの出現数の統計値が閾値以上であることである、請求項9に記載の制御方法。
【請求項11】
前記特定ステップにおいて、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在する前記イベントの出現数を1とし、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在しない前記イベントの出現数を0とする、請求項9又は10に記載の制御方法。
【請求項12】
前記特定ステップにおいて、
前記ログにおいて前記対象攻撃の実行期間に記録されている複数のエントリのうち、1つ以上の所定の項目において互いに一致又は類似する値が示されている各前記エントリを、互いに同一の前記イベントを表す前記エントリとして特定し、
各前記イベントについて、そのイベントを表すものとして特定された前記エントリの数に基づいて、そのイベントの出現数を特定する、請求項9から11いずれか一項に記載の制御方法。
【請求項13】
前記生成ステップにおいて、前記対象攻撃の実行期間の長さを特定し、当該実行期間の長さを前記攻撃情報に含める、請求項9から12いずれか一項に記載の制御方法。
【請求項14】
前記攻撃情報に含める前記対象攻撃の実行期間の長さは、複数回実行された前記対象攻撃それぞれの実行期間の長さの統計値である、請求項13に記載の制御方法。
【請求項15】
前記対象攻撃の複数回の実行のうち、少なくとも2回の実行は、互いに異なるテスト環境で行われる、請求項9から13いずれか一項に記載の制御方法。
【請求項16】
前記特定ステップにおいて、複数種類の前記ログそれぞれについて、各前記イベントの出現数の特定を行い、
前記生成ステップにおいて、前記攻撃情報に、前記イベントを表すエントリが抽出された前記ログの種類を含める、請求項9から15いずれか一項に記載の制御方法。
【請求項17】
複数
回実行
された対象攻撃それぞれの
実行期間が示される情報を取得し、各前記対象攻撃の実行期間におけるログを用いて、
各前記対象攻撃について1つ以上のイベントそれぞれの出現数を特定する特定ステップと、
前記イベントごとに、
各前記対象攻
撃について特定されたそのイベントの出現数が、所定条件を満たすか否かを判定する判定ステップと、
前記対象攻撃と、出現数が前記所定条件を満たすと判定された前記イベントとを対応づけた
情報を、前記対象攻撃の影響で発生しうるイベントが示された攻撃情報
として生成する生成ステップと、をコンピュータに実行させるプログラム。
【請求項18】
前記所定条件は、前記対象攻撃の複数回の実行それぞれについて特定された前記イベントの出現数の統計値が閾値以上であることである、請求項17に記載のプログラム。
【請求項19】
前記特定ステップにおいて、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在する前記イベントの出現数を1とし、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在しない前記イベントの出現数を0とする、請求項17又は18に記載のプログラム。
【請求項20】
前記特定ステップにおいて、
前記ログにおいて前記対象攻撃の実行期間に記録されている複数のエントリのうち、1つ以上の所定の項目において互いに一致又は類似する値が示されている前記エントリを、互いに同一の前記イベントを表す前記エントリとして特定し、
各前記イベントについて、そのイベントを表すものとして特定された前記エントリの数に基づいて、そのイベントの出現数を特定する、請求項17から19いずれか一項に記載のプログラム。
【請求項21】
前記生成ステップにおいて、前記対象攻撃の実行期間の長さを特定し、当該実行期間の長さを前記攻撃情報に含める、請求項17から20いずれか一項に記載のプログラム。
【請求項22】
前記攻撃情報に含める前記対象攻撃の実行期間の長さは、複数回実行された前記対象攻撃それぞれの実行期間の長さの統計値である、請求項21に記載のプログラム。
【請求項23】
前記対象攻撃の複数回の実行のうち、少なくとも2回の実行は、互いに異なるテスト環境で行われる、請求項17から22いずれか一項に記載のプログラム。
【請求項24】
前記特定ステップにおいて、複数種類の前記ログそれぞれについて、各前記イベントの出現数の特定を行い、
前記生成ステップにおいて、前記攻撃情報に、前記イベントを表すエントリが抽出された前記ログの種類を含める、請求項17から23いずれか一項に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示はコンピュータシステムに対する攻撃の解析に関する。
【背景技術】
【0002】
コンピュータシステムに対する攻撃(サイバー攻撃)への対策として、コンピュータシステムの種々のログから未検知の攻撃の存在を検出する作業が行われている。そのため、ログから攻撃を検出するためのルールを生成する技術が開発されている。
【0003】
例えば特許文献1は、マルウエアの挙動ログから、特定の条件を満たす文字列を抽出し、抽出した文字列を時系列で表すマルウエア検知ルールを生成する技術を開示している。例えば文字列はシステムコールであり、マルウエア検知ルールはシステムコール列を表す。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1の発明では、マルウエアによって発生したイベントではないイベントが、マルウエア検知ルールに含まれてしまう蓋然性が高い。マルウエアが動作している間に発生したシステムコールの全てが、当該マルウエアに関係しているとは限らないためである。
【0006】
本開示は、上記の課題に鑑みてなされたものであり、その目的の一つは、攻撃に関連するイベントを特定するための新たな技術を提供することである。
【課題を解決するための手段】
【0007】
本開示の攻撃情報生成装置は、対象攻撃の複数回の実行それぞれについて、その実行期間におけるログを用いて、1つ以上のイベントそれぞれの出現数を特定する特定手段と、前記イベントごとに、前記対象攻撃の複数回の実行それぞれについて特定されたそのイベントの出現数が、所定条件を満たすか否かを判定する判定手段と、前記対象攻撃と、出現数が前記所定条件を満たすと判定された前記イベントとを対応づけた攻撃情報を生成する生成手段と、を有する。
【0008】
本開示の制御方法は、対象攻撃の複数回の実行それぞれについて、その実行期間におけるログを用いて、1つ以上のイベントそれぞれの出現数を特定する特定ステップと、前記イベントごとに、前記対象攻撃の複数回の実行それぞれについて特定されたそのイベントの出現数が、所定条件を満たすか否かを判定する判定ステップと、前記対象攻撃と、出現数が前記所定条件を満たすと判定された前記イベントとを対応づけた攻撃情報を生成する生成ステップと、を有する。
【0009】
本開示の非一時的なコンピュータ可読媒体には、本開示の制御方法をコンピュータに実行させるプログラムが格納されている。
【発明の効果】
【0010】
本開示によれば、攻撃に関連するイベントを特定するための新たな技術が提供される。
【図面の簡単な説明】
【0011】
【
図1】実施形態1の攻撃情報生成装置の動作の概要を例示する図である。
【
図2】実施形態1の攻撃情報生成装置の機能構成を例示するブロック図である。
【
図3】攻撃情報生成装置を実現するコンピュータのハードウエア構成を例示するブロック図である。
【
図4】実施形態1の攻撃情報生成装置によって実行される処理の流れを例示するフローチャートである。
【
図5】複数の対象攻撃それぞれについて攻撃情報が生成されるケースについて、攻撃情報生成装置によって実行される処理の流れを例示するフローチャートである。
【
図6】出現数をイベントごとに特定する方法を、概念的に例示する図である。
【
図7】攻撃ログをテーブル形式で例示する図である。
【
図8】イベン同定ルールをテーブル形式で例示する図である。
【
図9】攻撃情報の構成をテーブル形式で例示する図である。
【
図10】攻撃情報において各攻撃にその攻撃の時間長が対応づけられているケースを例示する図である。
【発明を実施するための形態】
【0012】
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。また、特に説明しない限り、所定値や閾値などといった予め定められている値は、その値を利用する装置からアクセス可能な記憶装置などに予め格納されている。
【0013】
図1は、実施形態1の攻撃情報生成装置2000の動作の概要を例示する図である。ここで、
図1は、攻撃情報生成装置2000の概要の理解を容易にするための図であり、攻撃情報生成装置2000の動作は、
図1に示したものに限定されない。
【0014】
攻撃情報生成装置2000は、攻撃と、その攻撃が実行された場合に、その攻撃が実行された環境のログ(以下、ログ10)に記録されるイベントとの対応付けを行う。以下、この対応付けを表す情報を攻撃情報30と呼ぶ。また、攻撃情報30の生成の対象となる攻撃のことを、対象攻撃と呼ぶ。
【0015】
ここでいうイベントとは、対象攻撃の実行環境で発生する任意の事象である。例えば、プロセスによるシステムコールや API(Application Programing Interface)の実行、レジストリやファイルシステムに対する操作、又はネットワークを介した通信などである。例えばイベントは、その主体、その客体、及びその内容の組み合わせ(何が、何に対して、何をしたのか)によって表される。ただし、イベントは、これらの3つの情報の組み合わせ以外によって表されてもよい。
【0016】
攻撃情報30の生成は、ログ10を利用して行われる。ログ10は複数のエントリを有する。エントリは、発生したイベントに関する情報(イベントの主体、客体、内容、及び発生時点など)を示す。ログ10は、例えば、OS(operating system)によって記録されるイベントのログや、ネットワークフローに関するログなどである。
【0017】
ログ10には、対象攻撃の実行期間中に記録されたエントリが含まれる。このようなログを得るために、例えば、対象攻撃を実行可能なテスト環境を用意し、当該テスト環境において対象攻撃が実行される。そして、当該テスト環境において発生したイベントが記録されたログが、ログ10として用いられる。
【0018】
攻撃情報生成装置2000は、ログ10から、対象攻撃の実行期間内に発生した各イベントを表すエントリを検出することで、各イベントの出現数を特定する。ここで、対象攻撃は複数回実行される。そのため、対象攻撃の複数回の実行それぞれについて、イベントの出現数が特定される。
【0019】
例えば
図1において、対象攻撃の第1回目の実行については、イベントI1、イベントI2、及びイベントI3の出現数がそれぞれ、1回、3回、及び2回となっている。また、対象攻撃の第2回目の実行については、イベントI2、イベントI3、及びイベントI4の出現数がそれぞれ1回ずつとなっている。
【0020】
攻撃情報生成装置2000は、イベントごとに、対象攻撃の各実行について特定されたそのイベントの出現数が所定条件を満たすか否かを判定する。所定条件は、対象攻撃の影響で発生するイベントについて満たされる条件である。このような所定条件を採用することで、イベントごとに、そのイベントが対象攻撃の影響で発生するものであるか否かを判定することができる。詳しくは後述するが、例えばこのような所定の条件としては、「イベントの出現数の統計値が閾値以上である」などといった条件を利用することができる。
【0021】
攻撃情報生成装置2000は、その出現数が所定条件を満たすイベントと、対象攻撃とを対応づけて、攻撃情報30を生成する。例えば
図1の攻撃情報30は、対象攻撃A1が、イベントI2及びイベントI3と対応づけられている。この攻撃情報30から、イベントI2とイベントI3が対象攻撃A1の影響で発生することが分かる。
【0022】
<作用効果の一例>
本実施形態の攻撃情報生成装置2000によれば、対象攻撃の複数回の実行それぞれについて、その実行期間に記録されたログ10のエントリを用いて、各イベントの出現数が特定される。そして、対象攻撃の複数回の実行それぞれについて特定された出現数が所定条件を満たすイベントが、対象攻撃と対応づけられる。このように、攻撃情報生成装置2000によれば、新たな手法により、攻撃に関連するイベントが特定される。
【0023】
特に、所定条件として、対象攻撃の影響で発生するイベントについて満たされる条件を利用するとする。このようにすると、対象攻撃の複数回の実行それぞれについて記録されたエントリに基づいて、対象攻撃に対し、当該対象攻撃の影響で発生するイベントを対応づけることができる。そして、このような対応付けを表す攻撃情報30を利用して、新たに得られたログを解析すれば、ログを利用して、対象攻撃が行われた可能性があることを検出できるようになる。
【0024】
以下、本実施形態の攻撃情報生成装置2000について、より詳細に説明する。
【0025】
<機能構成の例>
図2は、実施形態1の攻撃情報生成装置2000の機能構成を例示するブロック図である。攻撃情報生成装置2000は、特定部2020、判定部2040、及び生成部2060を有する。特定部2020は、対象攻撃の複数回の実行それぞれについて、1つ以上のイベントそれぞれの出現数を、その実行期間にログ10に記録されたエントリを利用して特定する。判定部2040は、イベントごとに、対象攻撃の各実行について特定されたそのイベントの出現数が、所定条件を満たすか否かを判定する。生成部2060は、対象攻撃と、その出現数が所定条件を満たすイベントとを対応づけた攻撃情報30を生成する。
【0026】
<ハードウエア構成の例>
攻撃情報生成装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、攻撃情報生成装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0027】
図3は、攻撃情報生成装置2000を実現するコンピュータ500のハードウエア構成を例示するブロック図である。コンピュータ500は、任意のコンピュータである。例えばコンピュータ500は、PC(Personal Computer)やサーバマシンなどといった、据え置き型のコンピュータである。その他にも例えば、コンピュータ500は、スマートフォンやタブレット端末などといった可搬型のコンピュータである。コンピュータ500は、攻撃情報生成装置2000を実現するために設計された専用のコンピュータであってもよいし、汎用のコンピュータであってもよい。
【0028】
例えば、コンピュータ500に対して所定のアプリケーションをインストールすることにより、コンピュータ500で、攻撃情報生成装置2000の各機能が実現される。上記アプリケーションは、攻撃情報生成装置2000の機能構成部を実現するためのプログラムで構成される。なお、上記プログラムの取得方法は任意である。例えば、当該プログラムが格納されている記憶媒体(DVD ディスクや USB メモリなど)から、当該プログラムを取得することができる。その他にも例えば、当該プログラムが格納されている記憶装置を管理しているサーバ装置から、当該プログラムをダウンロードすることにより、当該プログラムを取得することができる。
【0029】
コンピュータ500は、バス502、プロセッサ504、メモリ506、ストレージデバイス508、入出力インタフェース510、及びネットワークインタフェース512を有する。バス502は、プロセッサ504、メモリ506、ストレージデバイス508、入出力インタフェース510、及びネットワークインタフェース512が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ504などを互いに接続する方法は、バス接続に限定されない。
【0030】
プロセッサ504は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又は FPGA(Field-Programmable Gate Array)などの種々のプロセッサである。メモリ506は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス508は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。
【0031】
入出力インタフェース510は、コンピュータ500と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース510には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。
【0032】
ネットワークインタフェース512は、コンピュータ500をネットワークに接続するためのインタフェースである。例えば攻撃情報生成装置2000に対する攻撃は、このネットワークを介してコンピュータ500と通信可能に接続されている他のマシンから行われる。なお、このネットワークは、LAN(Local Area Network)であってもよいし、WAN(Wide Area Network)であってもよい。
【0033】
ストレージデバイス508は、攻撃情報生成装置2000の各機能構成部を実現するプログラム(前述したアプリケーションを実現するプログラム)を記憶している。プロセッサ504は、このプログラムをメモリ506に読み出して実行することで、攻撃情報生成装置2000の各機能構成部を実現する。
【0034】
攻撃情報生成装置2000は、1つのコンピュータ500で実現されてもよいし、複数のコンピュータ500で実現されてもよい。後者の場合において、各コンピュータ500の構成は同一である必要はなく、それぞれ異なるものとすることができる。
【0035】
<処理の流れ>
図4は、実施形態1の攻撃情報生成装置2000によって実行される処理の流れを例示するフローチャートである。S102からS108は、対象攻撃の複数回の実行それぞれについて行われるループ処理L1である。S102において、攻撃情報生成装置2000は、対象攻撃の複数回の実行の全てについて、ループ処理L1が既に行われたか否かを判定する。対象攻撃の複数回の実行の全てについて、ループ処理L1が既に行われた場合、
図4の処理はS112に進む。一方、対象攻撃の複数回の実行のうち、まだループ処理L1の対象となっていないものがある場合、攻撃情報生成装置2000は、そのうちの1つを選択する。ここで選択される実行を、第i回目の実行と呼ぶ。その後、
図4の処理はS104に進む。
【0036】
特定部2020は、ログ10から、対象攻撃の第i回目の実行期間中に記録されたエントリを抽出する(S104)。特定部2020は、抽出されたエントリに基づいて、各イベントの出現数を特定する(S106)。S108はループ処理L1の終端であるため、
図4の処理はS102に進む。
【0037】
S110からS114は、対象攻撃の実行期間中に発生した各イベントについて行われるループ処理L2である。S110において、攻撃情報生成装置2000は、対象攻撃の実行期間中に発生した全てのイベントについて、ループ処理L2が既に行われたか否かを判定する。対象攻撃の実行期間中に発生した全てのイベントについて、ループ処理L2が既に行われた場合、
図4の処理はS116に進む。一方、対象攻撃の実行期間中に発生したイベントの中に、まだループ処理L2の対象としていないものがある場合、攻撃情報生成装置2000は、そのうちの1つを選択する。ここで選択されるイベントを、イベントjと呼ぶ。その後、
図4の処理はS112に進む。
【0038】
判定部2040は、対象攻撃の複数回の実行それぞれについて特定された、イベントjの出現数が所定条件を満たすか否かを判定する(S112)。S114はループ処理L2の終端であるため、
図4の処理はS110に進む。
【0039】
生成部2060は、対象攻撃と、その出現数が所定条件を満たすと判定されたイベントととを対応づけた攻撃情報30を生成する(S116)。
【0040】
なお、
図4のフローチャートでは、1つの対象攻撃について、攻撃情報30においてその対象攻撃と対応づけるイベントの特定が行われている。しかしながら、対象攻撃は複数あってもよい。複数の対象攻撃それぞれについて攻撃情報30が生成される場合、例えば
図5に示すように、各対象攻撃についてS102からS116の処理が実行される。
図5は、複数の対象攻撃それぞれについて攻撃情報30が生成されるケースについて、攻撃情報生成装置2000によって実行される処理の流れを例示するフローチャートである。
【0041】
<ログ10について>
前述したように、ログ10は、対象攻撃が実行される環境のログである。例えばログ10は、1)対象攻撃を受けるマシン(以下、対象マシン)上で取得されるログと、2)他対象マシンと他のマシンとの間の通信経路上で取得されるログとに大別される。以下、1)のログをエンドポイントログと呼び、2)のログをネットワークログと呼ぶ。なお、対象マシンは物理マシンであってもよいし、仮想マシンであってもよい。
【0042】
エンドポイントログは、例えば、対象マシン上で動作する各プロセスの挙動のログ、レジストリに対するアクセスのログ、又はファイルシステムのログなどである。プロセスの挙動は、例えば、プロセスによって実行されたシステムコールその他の API(Application Programming Interface)などで表される。ネットワークログは、例えば、通信経路上に存在するプロキシサーバによって記録されるログ、ネットワークフローのログ、又はパケットキャプチャのログなどである。
【0043】
攻撃情報生成装置2000は、前述した種々のログやその他のログのうち、いずれか1つのログをログ10として用いてもよいし、複数のログをそれぞれログ10として用いてもよい。
【0044】
<対象攻撃について>
対象攻撃は任意のサイバー攻撃である。例えば対象攻撃は、1つ又は複数のコマンドで構成される。ここで、対象攻撃は、特定の目的を達成するための一連の攻撃(以下、攻撃列)の一部であってもよい。例えば、標的組織内からの重要情報の奪取を目的とした攻撃者は、標的組織ネットワーク内の端末に侵入後、端末内に保管されたファイルの調査・収集を行なう。また、重要情報が保管されていそうな他端末の探索や、他端末に侵入を拡大するための認証情報の取得や脆弱性の探索を行ない、取得した認証情報や脆弱性情報を用いて、探索によって発見した他端末へ侵入し、重要情報の探索範囲を広げていく。重要情報を端末から取得した場合、攻撃者のサーバへ当該情報を持ち出し攻撃を終了する。
【0045】
対象攻撃は、悪意ある攻撃者によって行われる実際の攻撃である必要はなく、攻撃情報生成装置2000の運用者などによって攻撃情報30の生成等を目的として行われる擬似的な攻撃でよい。例えば攻撃情報30の生成は、テスト環境において攻撃列の実行を複数回行い、その結果として得られるログ10を利用して行われる。例えば攻撃列が攻撃A1、A2、及びA3で構成されているとする。この場合、攻撃A1、A2及びA3のそれぞれが、対象攻撃として扱われる。例えば
図5のフローチャートでは、攻撃A1を対象攻撃kとしたループ処理L3、攻撃A2を対象攻撃kとしたループ処理L3、及び攻撃A3を対象攻撃kとしたループ処理L3がそれぞれ実行される。こうすることで、攻撃情報生成装置2000は、攻撃A1と攻撃A1の影響によって発生するイベントとを対応づけた攻撃情報30、攻撃A2と攻撃A2の影響によって発生するイベントとを対応づけた攻撃情報30、及び攻撃A3と攻撃A3の影響によって発生するイベントとを対応づけた攻撃情報30を生成する。ただし、攻撃情報生成装置2000は、攻撃列に含まれる一部の攻撃のみを、対象攻撃として扱ってもよい。
【0046】
ここで、対象攻撃の複数回の実行は、テスト環境の設定を変更しながら行われてもよい。言い換えれば、各実行がそれぞれ異なる設定のテスト環境で行われるようにしてもよい。変更しうるテスト環境の設定としては、例えば、ログの取得設定(どのようなタイプのイベントをログとして記録するかの設定)、ネットワークの構成、又はファイアウォールの設定などがある。このようにテスト環境の設定を様々に変えながら対象攻撃を実行することによって得られたログ10を利用することにより、対象攻撃の影響で発生するイベントのうち、実行環境の影響が小さいイベントを、対象攻撃と対応づけることができる(言い換えれば、特定の実行環境でしか発生しないようなイベントを、対象攻撃と対応づけないようにすることができる)。
【0047】
<エントリの抽出とイベントの出現数の特定:S104、S106>
特定部2020は、対象攻撃の複数回の実行それぞれについて、その実行期間にログ10に記録されたエントリを用いて、各イベントの出現数を特定する(S106)。そのために、例えば特定部2020は、対象攻撃の複数回の実行それぞれについて、ログ10から、その実行期間に記録されたエントリを抽出する(S104)。以下、第i回目の対象攻撃の実行期間についてログ10から抽出されたエントリの集合を、エントリグループiと呼ぶ。
【0048】
ここで、特定部2020がログ10を取得する方法は任意である。例えば特定部2020は、特定部2020からアクセス可能な記憶装置からログ10を取得する。その他にも例えば、特定部2020は、ログ10を管理している装置(データベースサーバなど)に対してリクエストを送信し、そのレスポンスとして、ログ10を取得してもよい。
【0049】
特定部2020は、各エントリグループについて、そのエントリグループに含まれるエントリを、イベントごとに分類する。
図6は、各イベントの出現数を特定する方法を、概念的に例示する図である。この例では、対象攻撃が3回実行されている。第1回目から第3回目の対象攻撃の実行期間はそれぞれ、t11 から t12、t21 から t22、及び t31 から t32 である。そのため、第1回目の対象攻撃についてのエントリグループには、時点 t11 から時点 t12 までの間にログ10に記録された各エントリが含まれる。同様に、第2回目の対象攻撃についてのエントリグループには、時点 t21 から時点 t22 までの間にログ10に記録された各エントリが含まれ、第3回目の対象攻撃についてのエントリグループには、時点 t31 から時点 t32 までの間にログ10に記録された各エントリが含まれる。
【0050】
特定部2020は、エントリグループごとに、エントリの集計を行う。
図6では、第1回目の対象攻撃について生成されたエントリグループ1を集計する様子が例示されている。特定部2020は、エントリグループ1に含まれるエントリを、同一のイベントを表すエントリごとに分ける。この例では、エントリグループ1に含まれるエントリE1からE9が、「E1、E3、E5」、「E2、E7」、「E4、E6、E8」、及び「E9」に分類されている。ここで、エントリE1、E3、及びE5によって表されているイベントにはI1という識別子が割り当てられ、エントリE2及びE7によって表されているイベントにはI2という識別子が割り当てられ、エントリE4、E6、及びE8によって表されているイベントにはI3という識別子が割り当てられ、エントリE9によって表されているイベントにはI4という識別子が割り当てられている。
【0051】
特定部2020は、各イベントに対応するエントリの数に基づいて、イベントの出現数を特定する。例えば特定部2020は、或るイベントに対応するエントリの数を、そのイベントの出現数として扱う。例えば
図6の例の場合、イベントI1からI4に対応するエントリの数はそれぞれ、3、2、3、及び1である。そのため、イベントI1からI4の出現数はそれぞれ、3、2、3、及び1となる。
【0052】
その他にも例えば、特定部2020は、或るイベントに対応するエントリが存在しなければ(エントリの数が0であれば)そのイベントの出現数を0とし、そのイベントに対応するエントリが存在すれば(エントリの数が1以上であれば)そのイベントの出現数を1としてもよい。すなわち、この場合には、各イベントの有無が対象攻撃ごとに把握されることとなる。例えば
図6のケースでは、イベントI1からI4の出現数が、いずれも1として扱われる。
【0053】
<<対象攻撃の実行期間の特定>>
ログ10から対象攻撃の実行期間中に記録されたエントリを抽出するためには、対象攻撃の実行期間を特定できる必要がある。そのために、例えば、対象攻撃が実行される際に、その実行の開始時点と終了時点を示す情報(以下、攻撃ログ)が、任意の記憶装置に格納されるようにしておく。特定部2020は、攻撃ログを利用することで、対象攻撃の実行期間を特定する。
【0054】
なお、攻撃の開始時点と終了時点を記録する技術には、既存の技術を利用することができる。例えば、実行開始時点が予めスケジュールされているスクリプトを利用して対象攻撃が実行される場合、そのスクリプトの実行開始時点としてスケジュールされていた時刻が、攻撃の開始時点として攻撃ログに記録されるようにする。また、この場合、スクリプトの実行の終了時点が、攻撃の終了時点として攻撃ログに記録されるようにする。その他にも例えば、運用者等が手動で対象攻撃の実行を行う場合、当該運用者等により、実行の開始時点と終了時点が攻撃ログに記録されるようにしてもよい。
【0055】
図7は、攻撃ログをテーブル形式で例示する図である。
図7の攻撃ログ40は、攻撃識別子42及び実行期間44を含む。攻撃識別子42は、対象攻撃を特定可能な識別子を示す。実行期間44は、対象攻撃の開始時点を示す開始時点46と、対象攻撃の終了時点を示す終了時点48を含む。
【0056】
<<イベントの同定>>
エントリをイベントごとに分けるためには、各エントリによって表されるイベントの同定を行う必要がある。すなわち、何らかの基準を用いて、複数のエントリが互いに同一のイベントを表しているのか、それとも、互いに異なるイベントを表しているのかを判定する必要がある。以下、その具体的な方法を例示する。
【0057】
例えば特定部2020は、1つ以上の所定の項目の値が互いに一致するエントリ同士を、互いに同じイベントを表しているものとして扱う。エントリの項目には、例えば、イベントの主体、客体、又は内容などを表す種々の項目が存在しうる。項目の値に基づいてイベントの同定を行う場合、どの項目を利用してイベントの同定を行うかを定めたルール(以下、イベント同定ルール)を、特定部2020によって取得可能な態様で任意の記憶装置に予め格納しておく。特定部2020は、エントリグループに含まれる複数のエントリを、イベント同定ルールを利用して、互いに同じイベントを表しているエントリの組み合わせに分割する。
【0058】
例えばログ10の各エントリが5つの項目B1からB5を有しているとする。また、「項目B2とB4の値が互いに一致するエントリ同士は、互いに同じイベントを表している」というイベント同定ルールを定めておくとする。この場合、特定部2020は、エントリグループに含まれるエントリ同士で、項目B2の値の比較及び項目B4の値の比較を行う。そして、「項目B2の値が互いに同じであり、なおかつ、項目B4の値も互いに同じである」という条件が満たされる複数のエントリの組み合わせが、同一のイベントを表しているエントリの組み合わせとして抽出される。
【0059】
ここで、項目の値が互いに完全に一致するエントリ同士だけでなく、項目の値が互いに類似しているエントリ同士が、互いに同じイベントを表しているエントリとして扱われてもよい。例えば、「アクセスされたファイル」という項目については、複数のエントリにおいて、アクセスされたファイルの名前が完全に互いに一致している場合だけでなく、アクセスされたファイルが格納されているディレクトリが互いに一致してる場合(すなわち、ファイルのパスが途中まで一致する場合)や、アクセスされたファイルの種類が互いに一致する場合(例えば、ファイルの拡張子が一致する場合)でも、互いに同じイベントを表しているエントリとして扱うことが考えられる。
【0060】
ここで、ログに含まれる項目は、ログの種類ごとに異なりうる。そこで、ログ10として複数種類のログを扱う場合、前述したイベント同定ルールは、ログの種類ごとに予め定めておく。
【0061】
図8は、イベント同定ルールをテーブル形式で例示する図である。イベント同定ルール50は、ログ種別52とルール54を有する。ログ種別52は、ルール54に示すルールが適用されるログ10の種類を示す。ルール54は、項目名と同定の条件とのペアを1つ以上示す。例えば
図8の例では、「項目B1の値が互いに一致し、なおかつ、項目B3に示されるファイルの種類が互いに一致する」という条件が満たされる複数のエントリの組み合わせが、互いに同じイベントを表しているエントリの組み合わせとして扱われる。
【0062】
ただし、ルール54に複数のペアが示されている場合において、ルール54が表す意味は、「各ペアの条件を全て満たす」という意味に限定されなくてもよい。例えば、「ペア1 and ペア2 or ペア3」などのような指定をルール54において可能にすることにより、複数のペアによって柔軟なルールを設定できるようにしてもよい。
【0063】
<所定条件を満たすか否かの判定:S112>
判定部2040は、イベントごとに、そのイベントの出現数が所定条件を満たすか否かを判定する(S112)。例えば前述したように、所定条件としては、対象攻撃の影響で発生するイベントについて満たされる条件が利用される。ここで、あるイベントが対象攻撃の影響で発生するものである場合、対象攻撃の複数回の実行の全て又はその多くで、そのイベントが発生すると考えられる。そこで例えば、対象攻撃の影響で発生するイベントについて満たされる所定条件としては、対象攻撃の複数回の実行の全て又はその多くで出現しているイベントについて満たされる条件を利用できる。
【0064】
このような所定条件は、例えば、イベントの出現数の統計値(平均値、中央値、最頻値、又は最小値など)に関する条件で定められる。具体的には、「イベントの出現数の統計値が閾値以上である」といった条件である。この場合、判定部2040は、各イベントについて、対象攻撃の複数回の実行それぞれにおけるそのイベントの出現数の統計値を算出し、当該統計値が閾値以上であるか否かを判定する。あるイベントについて算出された上記統計値が閾値以上である場合、そのイベントの出現数については、所定条件が満たされていることとなる。一方、そのイベントについて算出された上記統計値が閾値より小さい場合、そのイベントの出現数については、所定条件を満たされていないこととなる。
【0065】
<攻撃情報30の生成:S116>
生成部2060は、対象攻撃と、その出現数が所定条件を満たすと判定されたイベントとを対応づけた攻撃情報30を生成する(S116)。所定条件として、対象攻撃の複数回の実行の全て又はその多くで出現しているイベントについて満たされる条件が利用される場合、攻撃情報30は、対象攻撃と、その対象攻撃の影響で発生するイベントとを対応づけた情報となる。
【0066】
図9は、攻撃情報30の構成をテーブル形式で例示する図である。
図9において、攻撃情報30は、攻撃識別子32、ログ種別34、及びイベント識別子36を有する。攻撃識別子32は、攻撃に割り当てられた識別子を示す。攻撃識別子32には、攻撃を識別可能な任意の情報を利用することができる。例えば、攻撃識別子32には、攻撃の名称が利用される。その他にも例えば、攻撃識別子32は、攻撃の名称とその設定との組み合わせで表されてもよい。例えば、引数によってその動作が変化するコマンドを攻撃として利用する場合、「コマンド名、引数」という組み合わせで、攻撃識別子32を表すことができる。
【0067】
ログ種別34は、攻撃情報30の生成に利用されたログの種別を示す。イベント識別子36は、イベントを識別可能な任意の情報を利用することができる。例えばイベントの同定にイベント同定ルール50が利用される場合、生成部2060は、ルール54で指定されている項目の値に基づいて、イベント識別子36を生成する。例えば、「プロセス名が一致し、なおかつ、アクセスされたファイルの種別が一致する」というルールに基づいて、イベントの同定が行われたとする。この場合、例えば、イベント識別子36は、プロセス名とファイル種別のペアで表される。
【0068】
ここで、同一の対象攻撃及び同一のログ10について、その出現数が所定条件を満たすイベントが複数特定された場合、イベント識別子36には、これら複数のイベントそれぞれの識別子が示されている。すなわち、「対象攻撃、ログ種別」のペアに対して、複数のイベントが対応づけられている。これは、対象攻撃を実行することで、これら複数のイベントが発生するため、これら複数のイベントそれぞれを表すエントリが同一のログ10に記録されることを表す。
【0069】
例えば
図9の1行目は、「攻撃識別子=攻撃A1」と「ログ種別=OS イベント」という組み合わせに対し、「イベント識別子=OI2、OI3」が対応づけられている。そのため、OS イベントのログからイベント識別子が OI2 のイベントを表すエントリと、イベント識別子が OI3 のイベントを表すエントリの双方が含まれている場合に、攻撃A1が実行された蓋然性が高いと言える。
【0070】
<攻撃情報30の出力>
生成部2060は、任意の態様で攻撃情報30を出力してもよい。例えば生成部2060は、攻撃情報生成装置2000からアクセス可能な記憶装置に攻撃情報30を格納する。例えば記憶装置に格納された攻撃情報30は、後述する攻撃検出装置によって利用される。その他にも例えば、生成部2060は、攻撃情報生成装置2000からアクセス可能なディスプレイ装置に、攻撃情報30を表示させる。その他にも例えば、生成部2060は、任意の装置に攻撃情報30を送信する。例えば攻撃情報30の送信先は、後述する攻撃検出装置である。
【0071】
<攻撃情報30を利用した攻撃の検出>
攻撃情報30の利用方法の1つとして、コンピュータシステムの実際の運用環境で生成されたログから、当該システムに対して行われた可能性のある攻撃を検出する処理に利用することが考えられる。以下、攻撃情報30を利用して、コンピュータシステムに対して行われた可能性のある攻撃を検出する方法について説明する。ここで、攻撃検出の対象となるコンピュータシステムを検査対象システムと呼び、検査対象システムの実行環境で得られるログを検査対象ログと呼ぶ。また、攻撃情報30を利用して攻撃を検出する処理を行う装置を、攻撃検出装置と呼ぶ。
【0072】
攻撃検出装置は、攻撃情報生成装置2000と一体として設けられてもよいし、別体として設けられてもよい。言い換えれば、攻撃検出装置は、攻撃情報生成装置2000と共にコンピュータ500で実現されてもよいし、別のコンピュータで実現されてもよい。後者の場合、攻撃情報生成装置2000を実現するコンピュータは、例えばコンピュータ500と同様に、
図3に示すハードウエア構成を有する。
【0073】
例えば攻撃検出装置は、攻撃情報30において同一の攻撃に対応づけられている1つ以上のイベント(以下、イベント群)を、検査対象ログから検出する。攻撃検出装置は、あるイベント群が検査対象ログから検出されたら、そのイベント群に対応づけられている攻撃を、検査対象システムに対して行われた可能性のある攻撃として検出する。なお、前述したように、攻撃情報30は、複数のログ10を利用して生成されうる。そこで攻撃検出装置は、検査対象システムの実行環境から得られたログのうち、ログ種別34に示されている種類と同じ種類のログを検査対象ログとして用いて、イベント群の検出を行う。
【0074】
攻撃検出装置は、攻撃に要する時間をさらに考慮して、イベント群の検出を行ってもよい。すなわち、攻撃検出装置は、イベント群が特定の時間幅の中に含まれている場合のみ、そのイベント群に対応づけられている攻撃を、検査対象システムに対して実行された攻撃として検出してもよい。このように攻撃に要する時間を考慮して攻撃の検出を行うことにより、検査対象システム行われた可能性のある攻撃をより高い精度で検出することができる。
【0075】
攻撃の時間長は、全ての攻撃で共通であってもよいし、攻撃ごとに定められていてもよい。後者の場合、攻撃情報30に、攻撃の時間長に関する情報を含めておく。
図10は、攻撃情報30において各攻撃にその攻撃の時間長が対応づけられているケースを例示する図である。
図10の攻撃情報30は、攻撃長38を有する。攻撃長38は、対応する攻撃の実行期間の長さを示す。
【0076】
図10のように攻撃情報30が攻撃長38を含む場合、例えば生成部2060は、対象攻撃の実行期間の長さに基づいて、攻撃長38に設定する値を決定する。例えば生成部2060は、攻撃ログ40を利用して、対象攻撃の複数回の実行それぞれについて実行期間の長さを特定し、特定した実行期間の長さの統計値を攻撃長38に設定する。例えば統計値は、平均値、中央値、最頻値、最大値、又は最小値などである。
【0077】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0078】
なお、上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに提供することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えば、フレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば、光磁気ディスク)、CD-ROM、CD-R、CD-R/W、半導体メモリ(例えば、マスク ROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM)を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに提供されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【0079】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
対象攻撃の複数回の実行それぞれについて、その実行期間におけるログを用いて、1つ以上のイベントそれぞれの出現数を特定する特定手段と、
前記イベントごとに、前記対象攻撃の複数回の実行それぞれについて特定されたそのイベントの出現数が、所定条件を満たすか否かを判定する判定手段と、
前記対象攻撃と、出現数が前記所定条件を満たすと判定された前記イベントとを対応づけた攻撃情報を生成する生成手段と、を有する攻撃情報生成装置。
(付記2)
前記所定条件は、前記対象攻撃の複数回の実行それぞれについて特定された前記イベントの出現数の統計値が閾値以上であることである、付記1に記載の攻撃情報生成装置。
(付記3)
前記特定手段は、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在する前記イベントの出現数を1とし、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在しない前記イベントの出現数を0とする、付記1又は2に記載の攻撃情報生成装置。
(付記4)
前記特定手段は、
前記ログにおいて前記対象攻撃の実行期間に記録されている複数のエントリのうち、1つ以上の所定の項目において互いに一致又は類似する値が示されている各前記エントリを、互いに同一の前記イベントを表す前記エントリとして特定し、
各前記イベントについて、そのイベントを表すものとして特定された前記エントリの数に基づいて、そのイベントの出現数を特定する、付記1から3いずれか一項に記載の攻撃情報生成装置。
(付記5)
前記生成手段は、前記対象攻撃の実行期間の長さを特定し、当該実行期間の長さを前記攻撃情報に含める、付記1から4いずれか一項に記載の攻撃情報生成装置。
(付記6)
前記攻撃情報に含める前記対象攻撃の実行期間の長さは、複数回実行された前記対象攻撃それぞれの実行期間の長さの統計値である、付記5に記載の攻撃情報生成装置。
(付記7)
前記対象攻撃の複数回の実行のうち、少なくとも2回の実行は、互いに異なるテスト環境で行われる、付記1から6いずれか一項に記載の攻撃情報生成装置。
(付記8)
前記特定手段は、複数種類の前記ログそれぞれについて、各前記イベントの出現数の特定を行い、
前記生成手段は、前記攻撃情報に、前記イベントを表すエントリが抽出された前記ログの種類を含める、付記1から7いずれか一項に記載の攻撃情報生成装置。
(付記9)
コンピュータによって実行される制御方法であって、
対象攻撃の複数回の実行それぞれについて、その実行期間におけるログを用いて、1つ以上のイベントそれぞれの出現数を特定する特定ステップと、
前記イベントごとに、前記対象攻撃の複数回の実行それぞれについて特定されたそのイベントの出現数が、所定条件を満たすか否かを判定する判定ステップと、
前記対象攻撃と、出現数が前記所定条件を満たすと判定された前記イベントとを対応づけた攻撃情報を生成する生成ステップと、を有する制御方法。
(付記10)
前記所定条件は、前記対象攻撃の複数回の実行それぞれについて特定された前記イベントの出現数の統計値が閾値以上であることである、付記9に記載の制御方法。
(付記11)
前記特定ステップにおいて、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在する前記イベントの出現数を1とし、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在しない前記イベントの出現数を0とする、付記9又は10に記載の制御方法。
(付記12)
前記特定ステップにおいて、
前記ログにおいて前記対象攻撃の実行期間に記録されている複数のエントリのうち、1つ以上の所定の項目において互いに一致又は類似する値が示されている各前記エントリを、互いに同一の前記イベントを表す前記エントリとして特定し、
各前記イベントについて、そのイベントを表すものとして特定された前記エントリの数に基づいて、そのイベントの出現数を特定する、付記9から11いずれか一項に記載の制御方法。
(付記13)
前記生成ステップにおいて、前記対象攻撃の実行期間の長さを特定し、当該実行期間の長さを前記攻撃情報に含める、付記9から12いずれか一項に記載の制御方法。
(付記14)
前記攻撃情報に含める前記対象攻撃の実行期間の長さは、複数回実行された前記対象攻撃それぞれの実行期間の長さの統計値である、付記13に記載の制御方法。
(付記15)
前記対象攻撃の複数回の実行のうち、少なくとも2回の実行は、互いに異なるテスト環境で行われる、付記9から13いずれか一項に記載の制御方法。
(付記16)
前記特定ステップにおいて、複数種類の前記ログそれぞれについて、各前記イベントの出現数の特定を行い、
前記生成ステップにおいて、前記攻撃情報に、前記イベントを表すエントリが抽出された前記ログの種類を含める、付記9から15いずれか一項に記載の制御方法。
(付記17)
対象攻撃の複数回の実行それぞれについて、その実行期間におけるログを用いて、1つ以上のイベントそれぞれの出現数を特定する特定ステップと、
前記イベントごとに、前記対象攻撃の複数回の実行それぞれについて特定されたそのイベントの出現数が、所定条件を満たすか否かを判定する判定ステップと、
前記対象攻撃と、出現数が前記所定条件を満たすと判定された前記イベントとを対応づけた攻撃情報を生成する生成ステップと、をコンピュータに実行させるプログラム。
(付記18)
前記所定条件は、前記対象攻撃の複数回の実行それぞれについて特定された前記イベントの出現数の統計値が閾値以上であることである、付記17に記載のプログラム。
(付記19)
前記特定ステップにおいて、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在する前記イベントの出現数を1とし、
前記対象攻撃の実行期間における前記ログの中に対応するエントリが存在しない前記イベントの出現数を0とする、付記17又は18に記載のプログラム。
(付記20)
前記特定ステップにおいて、
前記ログにおいて前記対象攻撃の実行期間に記録されている複数のエントリのうち、1つ以上の所定の項目において互いに一致又は類似する値が示されている前記エントリを、互いに同一の前記イベントを表す前記エントリとして特定し、
各前記イベントについて、そのイベントを表すものとして特定された前記エントリの数に基づいて、そのイベントの出現数を特定する、付記17から19いずれか一項に記載のプログラム。
(付記21)
前記生成ステップにおいて、前記対象攻撃の実行期間の長さを特定し、当該実行期間の長さを前記攻撃情報に含める、付記17から20いずれか一項に記載のプログラム。
(付記22)
前記攻撃情報に含める前記対象攻撃の実行期間の長さは、複数回実行された前記対象攻撃それぞれの実行期間の長さの統計値である、付記21に記載のプログラム。
(付記23)
前記対象攻撃の複数回の実行のうち、少なくとも2回の実行は、互いに異なるテスト環境で行われる、付記17から22いずれか一項に記載のプログラム。
(付記24)
前記特定ステップにおいて、複数種類の前記ログそれぞれについて、各前記イベントの出現数の特定を行い、
前記生成ステップにおいて、前記攻撃情報に、前記イベントを表すエントリが抽出された前記ログの種類を含める、付記17から23いずれか一項に記載のプログラム。
【0080】
この出願は、2020年12月24日に出願された日本出願特願2020-215074を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【符号の説明】
【0081】
10 ログ
30 攻撃情報
32 攻撃識別子
34 ログ種別
36 イベント識別子
38 攻撃長
40 攻撃ログ
42 攻撃識別子
44 実行期間
46 開始時点
48 終了時点
50 イベント同定ルール
52 ログ種別
54 ルール
500 コンピュータ
502 バス
504 プロセッサ
506 メモリ
508 ストレージデバイス
510 入出力インタフェース
512 ネットワークインタフェース
2000 攻撃情報生成装置
2020 特定部
2040 判定部
2060 生成部