(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-29
(45)【発行日】2023-12-07
(54)【発明の名称】情報処理装置、分析用データ生成プログラム及び方法
(51)【国際特許分類】
G06F 21/55 20130101AFI20231130BHJP
【FI】
G06F21/55
(21)【出願番号】P 2020011089
(22)【出願日】2020-01-27
【審査請求日】2022-10-06
(73)【特許権者】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100087480
【氏名又は名称】片山 修平
(72)【発明者】
【氏名】及川 孝徳
(72)【発明者】
【氏名】藤嶌 由紀
(72)【発明者】
【氏名】古川 和快
【審査官】上島 拓也
(56)【参考文献】
【文献】米国特許第10419449(US,B1)
【文献】特開2013-218505(JP,A)
【文献】特開2019-092106(JP,A)
【文献】米国特許出願公開第2019/0149448(US,A1)
【文献】特開2019-185183(JP,A)
【文献】米国特許第08381301(US,B1)
【文献】特開2002-318734(JP,A)
【文献】特開2016-192185(JP,A)
【文献】森永 正信 外3名,組織内ネットワークにおける標的型攻撃の諜報活動検知方式,暗号と情報セキュリティシンポジウム SCIS2014,日本,電子情報通信学会,2014年01月21日,p.1-8
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
(57)【特許請求の範囲】
【請求項1】
ネットワークに接続された端末間の通信データを取得する取得部と、
前記通信データに含まれるコマンドの情報それぞれに対応付けられているセッションの識別情報を参照して、セッションの識別情報ごとに前記コマンドの情報を分割して、コマンド群を生成する分割部と、
生成した前記コマンド群のうちの第1のコマンド群に特定のコマンドが含まれている場合に、前記特定のコマンドが含まれているコマンド群と結合可能な他のコマンド群の条件を格納する格納部を参照して、生成した前記コマンド群の中から前記条件に合致するコマンド群を特定し、特定した前記コマンド群と前記第1のコマンド群とを結合し、前記ネットワークの攻撃判定のための分析用データとする結合部と、
を備える情報処理装置。
【請求項2】
前記分析用データは、前記結合する処理で結合されなかったコマンド群を含む、請求項1に記載の情報処理装置。
【請求項3】
前記条件は、複数のセッションに含まれるコマンドの内容と、複数のセッションの時間的な関係又は複数のセッションに含まれるコマンドの時間的な関係と、に関する条件を含む、ことを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記分析用データから特徴量を抽出する抽出部を更に備え、
前記抽出部が抽出した特徴量が、機械学習を用いた前記ネットワークの攻撃判定の教師データとして利用されることを特徴とする請求項1~3のいずれか一項に記載の情報処理装置。
【請求項5】
ネットワークに接続された端末間の通信データに含まれるコマンドの情報それぞれに対応付けられているセッションの識別情報を参照して、セッションの識別情報ごとに前記コマンドの情報を分割して、コマンド群を生成し、
生成した前記コマンド群のうちの第1のコマンド群に特定のコマンドが含まれている場合に、前記特定のコマンドが含まれているコマンド群と結合可能な他のコマンド群の条件を格納する格納部を参照して、生成した前記コマンド群の中から前記条件に合致するコマンド群を特定し、特定した前記コマンド群と前記第1のコマンド群とを結合し、前記ネットワークの攻撃判定のための分析用データとする、
処理をコンピュータに実行させるための分析用データ生成プログラム。
【請求項6】
ネットワークに接続された端末間の通信データに含まれるコマンドの情報それぞれに対応付けられているセッションの識別情報を参照して、セッションの識別情報ごとに前記コマンドの情報を分割して、コマンド群を生成し、
生成した前記コマンド群のうちの第1のコマンド群に特定のコマンドが含まれている場合に、前記特定のコマンドが含まれているコマンド群と結合可能な他のコマンド群の条件を格納する格納部を参照して、生成した前記コマンド群の中から前記条件に合致するコマンド群を特定し、特定した前記コマンド群と前記第1のコマンド群とを結合し、前記ネットワークの攻撃判定のための分析用データとする、
処理をコンピュータが実行することを特徴とする分析用データ生成方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、分析用データ生成プログラム及び方法に関する。
【背景技術】
【0002】
標的型メールの送信などによるサイバー攻撃が社会問題化している。標的型サイバー攻撃は、例えば、以下のようなプロセスで行われる。まず、初期段階では、標的型メールの送信などにより、攻撃対象マシンに不正プログラムを送り付け、攻撃対象マシンで攻撃対象者に気づかれないように不正プログラムを起動、実行させる。具体的には、標的型サイバー攻撃は、主に初期段階での情報収集命令の実行、攻撃者マシンと攻撃対象マシン間の不正なリモートセッションの開設、リモートセッションを介する収集情報のダウンロード、さらに、リモートセッションを利用した各種情報探索と感染マシンでの不正命令の実行などを含む。
【0003】
従来、不正アクセス等を発見するためのログ処理方法に関する技術が知られている(例えば特許文献1参照)。特許文献1には、ログをセッションごとに統合し、統合後のログをデーモン名(サービス名)に注目して振り分けを行う技術が開示されている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
標的型サイバー攻撃における攻撃操作においては、一般的な業務操作に用いるツールと同一のツールが使用されることがある。このため、攻撃と業務の判別には、専門知識が必要となる。
【0006】
また、機械学習等を用いて攻撃と業務を判別することもできるが、機械学習を行う場合には、攻撃者マシンと攻撃対象マシンとの間の通信データから教師データを生成する必要がある。このためには、通信データを分割する処理と、分割後のデータから特徴量を抽出する処理とが必要となる。
【0007】
特徴量を適切に抽出するためには、通信データを一連の操作毎に分割する必要がある。しかしながら、標的型攻撃における侵入後の攻撃活動は正規ユーザの操作の裏で行われることが多く、複数操作が並行して発生する可能性が高い。したがって、例えば時間単位で通信データを分割するだけでは、並行して実行される複数の操作を分割することができない。
【0008】
1つの側面では、本発明は、攻撃判定のための分析用データとして適切なデータを生成することが可能な情報処理装置、分析用データ生成プログラム及び方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
一つの態様では、情報処理装置は、ネットワークに接続された端末間の通信データを取得する取得部と、前記通信データに含まれるコマンドの情報それぞれに対応付けられているセッションの識別情報を参照して、セッションの識別情報ごとに前記コマンドの情報を分割して、コマンド群を生成する分割部と、生成した前記コマンド群のうちの第1のコマンド群に特定のコマンドが含まれている場合に、前記特定のコマンドが含まれているコマンド群と結合可能な他のコマンド群の条件を格納する格納部を参照して、生成した前記コマンド群の中から前記条件に合致するコマンド群を特定し、特定した前記コマンド群と前記第1のコマンド群とを結合し、前記ネットワークの攻撃判定のための分析用データとする結合部と、を備えている。
【発明の効果】
【0010】
攻撃判定のための分析用データとして適切なデータを生成することができる。
【図面の簡単な説明】
【0011】
【
図1】一実施形態に係る社内システムの構成を概略的に示す図である。
【
図2】
図1の分析装置のハードウェア構成を示す図である。
【
図5】
図5(a)~
図5(c)は、データ分割部が
図4のコマンドログを分割した後のデータを示す図である。
【
図6】データ結合部の処理を示すフローチャートである。
【
図8】
図8(a)は、
図5(a)のセッションをそのまま出力に追加する場合について説明する図であり、
図8(b)は、
図5(b)のセッションと
図5(c)のセッションを結合して出力に追加する場合について説明する図である。
【
図9】
図9(a)~
図9(c)は、「sc」コマンドを含むセッションを他のセッションと結合する例を説明するための図である。
【
図10】
図10(a)~
図10(c)は、感染拡大型ランサムウェアに関する複数のセッションを結合する例を説明するための図である。
【発明を実施するための形態】
【0012】
以下、一実施形態について、
図1~
図10に基づいて詳細に説明する。
図1には、一実施形態における社内システム100の構成が概略的に示されている。
【0013】
社内システム100は、例えば会社や団体等の組織において利用されるイントラネットを用いたシステムである。社内システム100には、複数の端末としての情報処理端末70と、収集装置60と、情報処理装置としての分析装置10と、ファイアウォール50とが含まれる。また、複数の情報処理端末70と、収集装置60と、分析装置10と、ファイアウォール50とは、例えばLAN(Local Area Network)等のネットワーク80を介して通信可能に接続されている。社内システム100におけるネットワーク80は、ファイアウォール50を介してインターネットと接続している。
【0014】
情報処理端末70は、例えばサーバ装置やクライアント端末である。サーバ装置は、任意の機能を提供するサーバであり、例えば、ドメイン管理サーバ、Webサーバ、ファイルサーバ、Windows(登録商標)サーバ、Sambaサーバ等が挙げられる。クライアント端末は、任意の端末であり、例えばデスクトップPC、ノート型PC、タブレット端末等が挙げられる。
【0015】
ここで、クライアント端末は、サーバ装置が提供する機能を利用することもあれば、クライアント端末同士で処理の連携やデータ共有、各種機能の提供等を行うこともあるものとする。また、サーバ装置が他のサーバ装置と処理の連携等を行うこともあるものとする。すなわち、情報処理端末70同士は、所定の条件の下で、任意にリモート操作を行うことがあるものとする。このようなリモート操作を行うために、複数の情報処理端末70の間では、例えばSMB(Server Message Block)やRPC(Remote Procedure Call)が用いられる。SMBやRPCは、リモート操作を行うためのアプリケーション層のプロトコルの一例である。
【0016】
収集装置60は、パケットの複製(ミラーリング)機能を有するネットワーク・スイッチやタップ等である。収集装置60は、複数の情報処理端末70間のリモート操作に関するパケットを収集する。そして、収集装置60は、収集したパケットを分析装置10に転送する。
【0017】
分析装置10は、例えばRAT(Remote Administration Tool又はRemote Access Tool)等の標的型攻撃を行うマルウェアに感染した情報処理端末70が他の情報処理端末70に行ったリモート操作と、ユーザが行った操作(業務操作)とを機械学習等により判別する。また、分析装置10は、判別処理を行う際に必要な教師データとなる構造化データを収集装置60から受け付けたパケットから生成する。
【0018】
図2には、分析装置10のハードウェア構成が示されている。
図2に示すように、分析装置10は、CPU(Central Processing Unit)90、ROM(Read Only Memory)92、RAM(Random Access Memory)94、記憶部(ここではHDD(Hard Disk Drive))96、ネットワークインタフェース97、及び可搬型記憶媒体用ドライブ99等を備えている。これら分析装置10の構成各部は、バス98に接続されている。分析装置10では、ROM92あるいはHDD96に格納されているプログラム(分析用データ生成プログラムを含む)、或いは可搬型記憶媒体用ドライブ99が可搬型記憶媒体91から読み取ったプログラム(分析用データ生成プログラムを含む)をCPU90が実行することにより、
図3に示す、各部の機能が実現される。なお、
図3の各部の機能は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
【0019】
図3は、分析装置10の機能ブロック図である。
図3に示すように、分析装置10においては、CPU90がプログラムを実行することにより、構造化データ生成部12、及び判別部14、としての機能が実現されている。構造化データ生成部12は、収集装置60で過去に収集されたパケットから、機械学習に必要な教師データとなる構造化データを生成する。判別部14は、収集装置60で新たに収集されたパケットを機械学習を利用して分析することで、攻撃操作が行われているか否かを判別する。
【0020】
構造化データ生成部12は、取得部としてのデータ生成部20、分割部としてのデータ分割部22、結合部としてのデータ結合部24、抽出部としての特徴量抽出部26、構造化データ出力部28、を含んでいる。
【0021】
データ生成部20は、収集装置60が収集した複数の情報処理端末70間のリモート操作に関するパケットを取得し、
図4に示すような通信データ(コマンドログと呼ぶ)を生成する。
図4のコマンドログには、時刻(Time)、セッションID(Session ID)、コマンド名(Cmd)、他コマンド関連情報(Option)の各項目が含まれる。他コマンド関連情報には、例えば、コマンドオプション名、共有名、使用アカウント名、使用ドメイン名、ファイル名等が含まれる。
【0022】
データ分割部22は、セッションIDに基づいて、
図4のコマンドログを分割する。すなわち、データ分割部22は、コマンドログから、セッションIDが同一のレコードを抽出して纏める。データ分割部22が分割した後のデータは、
図5(a)~
図5(c)に示すような形式のデータとなる。
図5(a)のデータは、セッションID=000のデータであり、
図5(b)、
図5(c)のデータは、セッションID=001、002のデータである。
図5(a)~
図5(c)の各データは、「セッション全体情報」と、「セッションに含まれるログ」とを有する。「セッション全体情報」には、開始時刻(StartTime)、終了時刻(EndTime)、送信元のIPアドレス(SrcIP:Source IP)、送信先のIPアドレス(DstIP:Destination IP)が含まれる。また、「セッションに含まれるログ」には、時刻(Time)、コマンド名(Cmd:Command)、他コマンド関連情報(Option)が含まれる。なお、データ分割部22は、
図4のコマンドログに含まれる複数のコマンドをセッションIDごとに分割して、コマンド群を生成しているといえる。
【0023】
データ結合部24は、結合条件テーブル30に基づいて、セッションIDに基づいて分割されたデータ(コマンド群)を結合する。このデータ結合部24の処理は、一連の連続した操作(1つの操作)とみなすことができる複数のセッションを結合する処理である。ここで、1つの操作であっても、複数のセッションに分かれる場合がある。例えば、「あるexeファイルをタスクスケジューラを使って通信先端末上で実行」という操作は、「あるexeファイルを通信先端末に書き込む」というセッションと「タスクスケジューラ登録・実行」というセッションに分かれる。このため、データ結合部24は、このような複数のセッションを結合して1つの操作に対応するコマンド群を生成する。なお、データ結合部24が利用する結合条件テーブル30の詳細については、後述する。
【0024】
特徴量抽出部26は、データ結合部24が結合した複数のセッションのデータ、及びデータ結合部24が結合しなかった単一のセッションのデータを分析して、各データの特徴量を抽出する。
【0025】
構造化データ出力部28は、特徴量抽出部26が抽出した特徴量の情報を含む構造化データを、判別部14に対して出力する。
【0026】
(データ結合部24の処理)
以下、
図6のフローチャートに沿って、データ結合部24の処理について詳細に説明する。
【0027】
図6の処理は、データ分割部22が、
図4のコマンドログをセッションIDごとに分割した後に実行される処理である。ここでは、
図4のコマンドログから
図5(a)~
図5(c)のデータが生成されているものとして、以下説明する。
【0028】
ここで、データ結合部24が利用する結合条件テーブル30について、
図7に基づいて説明する。
図7に示すように、結合条件テーブル30には、セッションを組み合わせるための条件が複数格納されている。例えば、
図7には、標的型攻撃において実行されるタスクスケジューラにタスクを登録する操作(「schtasks」コマンド)に関連する複数のセッションを結合する条件(着目箇所)が格納されている。この例では、着目箇所として「コマンド名」、「ファイル拡張子」、「時間的重ね合わせ」が挙げられている。なお、実際には、着目箇所それぞれについて、具体的な条件が記述されているが、
図7ではその図示を省略している。具体的な条件については、後述する。
【0029】
また、
図7には、標的型攻撃において実行されるサービス状態の表示や制御を行う操作(「sc」コマンド)に関連する複数のセッションを結合する条件(着目箇所)が格納されている。この例では、着目箇所として「コマンド名」、「共有名(コマンドのオプション)」、「時間的順序(~の後に~)」が挙げられている。また、
図7には、感染拡大型ランサムウェア(例えばWannaCry、NotPetya等)の操作に関連する複数のセッションを結合する条件が格納されている。この例では、着目箇所として「共有名(コマンドのオプション)」、「時間的順序(~の後に~)」が挙げられている。
【0030】
以下においては、一例として、
図7の上から1つ目の操作(タスクスケジューラにタスクを登録する操作)に関連する複数のセッションを結合する場合のデータ結合部24の処理について、
図6のフローチャートに沿って説明する。
【0031】
図6の処理では、まず、ステップS10において、データ結合部24が、セッションID=iを最小値に設定する。
図5(a)~
図5(c)の場合、セッションID=000に設定する。
【0032】
次いで、ステップS12においては、データ結合部24が、空のワークテーブルを作成する。
【0033】
次いで、ステップS14では、データ結合部24が、ワークテーブルにセッションiを追加する。すなわち、
図5(a)のセッションID=000のデータをワークテーブルに追加する。
【0034】
次いで、ステップS16では、データ結合部24が、セッションiがコマンド「schtasks」を含むか否かを判断する。
図5(a)の場合、コマンド「schtasks」を含んでいないため、ステップS16の判断は否定され、ステップS32に移行する。
【0035】
ステップS32に移行すると、データ結合部24は、ワークテーブルの内容を出力に追加する。すなわち、特徴量抽出部26に対して受け渡すデータに、ワークテーブルに含まれるセッションID=000のデータを追加する。
図8(a)には、セッションID=000をそのまま出力に追加する状態が模式的に示されている。
【0036】
次いで、ステップS34においては、データ結合部24が、iがセッションIDの最大値であるか否かを判断する。このステップS34の判断が否定されると、ステップS36に移行し、データ結合部24は、iを1インクリメントする(i←i+1)。すなわち、セッションIDを001とする。その後はステップS12に戻る。
【0037】
ステップS12に戻ると、データ結合部24は、空のワークテーブルを作成し、次のステップS14において、ワークテーブルにセッションiを追加する。ここでは、
図5(b)のセッションID=001のデータをワークテーブルに追加する。
【0038】
次いで、ステップS16では、データ結合部24が、セッションiがコマンド「schtasks」を含むか否かを判断する。
図5(b)の場合、コマンド「schtasks」を含んでいないため、ステップS16の判断は否定され、ステップS32に移行する。ステップS32に移行すると、データ結合部24は、ワークテーブルの内容を出力に追加する。すなわち、特徴量抽出部26に対して受け渡すデータに
図5(b)のデータを追加する。
【0039】
次いで、ステップS34においては、データ結合部24が、iがセッションIDの最大値であるか否かを判断する。このステップS34の判断が否定されると、ステップS36に移行し、データ結合部24は、iを1インクリメントする(i←i+1)。すなわち、セッションIDを002とする。その後はステップS12に戻る。
【0040】
ステップS12に戻ると、データ結合部24は、空のワークテーブルを作成し、次いで、ステップS14では、ワークテーブルにセッションiを追加する。ここでは、
図5(c)のセッションID=002のデータをワークテーブルに追加する。
【0041】
次いで、ステップS16では、データ結合部24が、セッションiがコマンド「schtasks」を含むか否かを判断する。
図5(c)の場合、コマンド「schtasks」を含んでいるため、ステップS16の判断は肯定され、ステップS18に移行する。
【0042】
ステップS18に移行すると、データ結合部24は、セッションID=kを最小値に設定する。すなわち、データ結合部24は、セッションID=kを「000」に設定する。
【0043】
次いで、ステップS20では、データ結合部24が、セッションID=iのセッション(セッションi)とセッションID=kのセッション(セッションk)とが、結合条件テーブル30に格納されている条件を満たすか否かを判断する。ここでは、データ結合部24は、下記条件(1)~(3)の全てを満たすかを判断し、全ての条件を満たす場合に、ステップS20の判断が肯定される。
(1) セッションiとセッションkが同じ送信元(SrcIP)、送信先(DstIP)である。
(2) セッションiのStartTimeからEndTimeの間の時間が、セッションkのStartTimeからEndTimeの間の時間と重複している。
(3) セッションkが、実行形式ファイル(exeファイルやbatファイルなど)の書き込みコマンドを含んでいる。
セッションkが
図5(a)のセッション(セッションID=000)である場合、上記条件(2)や(3)を満たさないため、ステップS20の判断は否定され、ステップS28に移行する。
【0044】
ステップS28に移行すると、データ結合部24は、kがセッションIDの最大値であるか否かを判断する。なお、ステップS28では、現在のiの値を除外して、kがセッションIDの最大値であるか否かを判断する。ここでの判断が否定されると、ステップS30に移行し、データ結合部24は、kを1インクリメントする(k←k+1)。ただし、kとiは一致しないものとする。ここでは、k=001となる。その後はステップS20に戻る。
【0045】
ステップS20に戻ると、データ結合部24は、セッションiとセッションkとが、結合条件テーブル30に格納されている条件を満たすか否かを判断する。ここで、セッション002(
図5(c))とセッション001(
図5(b))は、同じ送信元(SrcIP)、送信先(DstIP)である。また、セッション002のStartTimeからEndTimeの間の時間がセッション001のStartTimeからEndTimeの間の時間と重複している。また、セッション001にexeファイルの書き込みコマンドが含まれている。したがって、この場合、ステップS20の判断は肯定され、データ結合部24は、ステップS22に移行する。
【0046】
ステップS22に移行すると、データ結合部24は、セッションkを含むセッション組み合わせが出力に含まれているか否かを判断する。ここでは、直前に行われたステップS32において、セッション001が、出力に追加されているので、ステップS22の判断は肯定され、ステップS24に移行する。
【0047】
ステップS24に移行すると、データ結合部24は、セッションk(=001)を含むセッション組み合わせを出力から削除し、ワークテーブルに追加する。このとき、データ結合部24は、
図8(b)に示すように、セッションi(=002)にセッションk(=001)を結合する。この結合により、セッション002(
図8(b)の左上図)に対して、
図8(b)の右図において下線を付したデータが書き込まれるようになっている。その後は、ステップS28に移行する。なお、セッションkが他のセッションと組み合わされた状態で出力に含まれている場合もある。この場合には、データ結合部24は、ステップS24において、組み合わされているセッションを出力から削除し、組み合わされているセッションとセッションiとを新たに組み合わせることになる。
【0048】
なお、ステップS22の判断が否定された場合には、ステップS26に移行し、データ結合部24は、セッションkをワークテーブルに追加する。その後は、ステップS28に移行する。
【0049】
ステップS28に移行すると、データ結合部24は、kがセッションIDの最大値であるか否かを判断する。ここでの判断が否定された場合には、ステップS30を経てステップS20に戻り、ステップS28の判断が肯定されるまでステップS20~S30の処理、判断を繰り返し実行する。一方、ステップS28の判断が肯定されると、ステップS32に移行する。
【0050】
ステップS32に移行すると、データ結合部24は、ワークテーブルの内容を出力に追加する。ここでは、
図8(b)に示す結合されたセッションが出力に追加される。
【0051】
次いで、ステップS34においては、データ結合部24が、iがセッションIDの最大値であるか否かを判断する。このステップS34の判断が否定された場合には、ステップS36を経て、ステップS12に戻るが、ステップS34の判断が肯定されると、
図6の全処理が終了する。なお、データ結合部24は、
図6の全処理が終了すると、出力に含まれている各データ(組み合わされたセッション又は組み合わされなかった単一のセッション)を特徴量抽出部26に受け渡す。
【0052】
上述したように
図6の処理を実行することで、タスクスケジューラにタスクを登録する1つの操作に関連する複数のセッションを結合して、出力に含め、特徴量抽出部26に受け渡すことができる。また、その他の操作(業務操作)に関連する単一のセッションについても出力に含め、特徴量抽出部26に受け渡すことができる。
【0053】
なお、
図7の結合条件テーブル30に含まれているその他の対象(「sc」コマンド、感染拡大型ランサムウェア等)についても、
図6と同様の処理を行うことで、各操作に関連する複数のセッションを結合して、出力に含めることができる。
【0054】
例えば、「sc」コマンドの場合、
図6のステップS16において、データ結合部24は、セッションiがコマンド「sc」を含むかを判断する。そして、ステップS20においては、データ結合部24は、下記(1)、(2)の条件の両方を満たすかを判断する。
(1) セッションkが「[任意の文字列]\admin$」へのファイル共有のコマンド(「net use」コマンド)を含むセッションである。
(2) セッションiがセッションkの「net use」コマンドの後に発生する「sc」コマンドを含んでいる。
そして、ステップS20の判断が肯定された場合に、データ結合部24は、セッションiとセッションkとを組み合わせることとする(S24又はS26)。例えば、セッションkが
図9(a)に示すようなセッションであり、セッションiが
図9(b)に示すようなセッションである場合、データ結合部24は
図9(c)に示すようにセッションを組み合わせる(結合する)。
【0055】
また、例えば、感染拡大型ランサムウェアの場合、
図6のステップS16において、データ結合部24は、セッションiがコマンド「net use」を含むかを判断する。そして、ステップS20においては、データ結合部24は、下記(1)、(2)の条件の両方を満たすかを判断する。
(1) セッションkが「192.168.56.20\IPC$」へのファイル共有のコマンド(「net use」コマンド)を含むセッションである。
(2) セッションiがセッションkの「net use」コマンドの後に発生する「172.16.99.5\IPC$」へのファイル共有セッション(「net use」コマンド)を含むセッションである。
なお、上記2つの共有名は送信先のIPによらず固定である。そして、ステップS20の判断が肯定された場合に、セッションiとセッションkとを組み合わせることとする(S24又はS26)。例えば、セッションkが
図10(a)に示すようなセッションであり、セッションiが
図10(b)に示すようなセッションである場合、データ結合部24は
図10(c)に示すようにセッションを組み合わせる(結合する)。
【0056】
以上、詳細に説明したように、本実施形態によると、データ生成部20は、収集装置60が収集したネットワーク80に接続された複数の情報処理端末70間のリモート操作に関するパケットを取得し、
図4に示すようなコマンドログを生成する。そして、データ分割部22は、
図4のコマンドログをセッションIDに基づいてセッションごとに分割し、データ結合部24は、結合条件テーブル30に基づいて、データ分割部22が分割したセッションを結合して攻撃判定のためのデータとする。このようにセッションIDに基づいてコマンドログを分割することで、攻撃活動時に並行して発生する複数操作に関するデータを分けることができる。また、結合条件テーブル30に基づいて複数セッションを結合することで、1つの操作とみなせるセッションを組み合わせることができる。すなわち、本実施形態では、1つの操作ごとにコマンドログを適切に分割することができる。したがって、同時並行的に操作が行われる場合であっても、特徴量抽出部26は、各操作に対応するデータから特徴量を抽出することができる。また、抽出された特徴量の情報を含む構造化データを機械学習の教師データとして用いることで、機械学習による標的型攻撃の判別を精度よく行うことが可能となる。
【0057】
ここで、例えば、コマンドログを一定の時間単位(例えば5分単位)で分割し、分割後のデータから特徴量を抽出することも考えられる。しかしながら、このような方法では、攻撃活動が行われるときのように、同時並行的に複数の操作が実行されるような場合において、適切にコマンドログを分割することができない可能性が高い。これに対し、本実施形態では、1つの操作ごとにデータを分割することが可能である。
【0058】
また、本実施形態では、データ結合部24から特徴量抽出部26に対して出力されるデータには、データ結合部24が結合しなかったデータ(単一のセッションのデータ)も含まれる。これにより、単一のセッションのデータ(例えば業務操作に関連するコマンドログ)から得られる特徴量を機械学習の教師データとして用いることができる。
【0059】
また、本実施形態では、結合条件テーブル30に格納されている条件は、複数のセッションに含まれるコマンドの内容や、複数のセッションの時間的な関係又は複数のセッションに含まれるコマンドの時間的な関係に関する条件を含んでいる。これにより、データ結合部24は、各セッションに含まれるコマンドの情報や、各セッションの開始時刻や終了時刻又はコマンドが実行された時刻を参照することで、複数のセッションを簡易に組み合わせることができる。
【0060】
なお、上記実施形態では、結合条件テーブル30において、3種類の対象を例示したが、これに限らず、対象としてその他の標的型攻撃の情報を格納してもよい。また、新たな標的型攻撃が出現する度に、当該新たな標的型攻撃の情報を結合条件テーブル30に追加してもよい。
【0061】
なお、上記実施形態では、機械学習により攻撃操作の有無を判別する判別部14を分析装置10が備える場合について説明したが、これに限られるものではない。例えば、判別部14は、分析装置10以外の装置(ネットワーク80やインターネットに接続された外部サーバなど)が備えていてもよい。
【0062】
なお、上記実施形態では、構造化データ生成部12が生成した構造化データを機械学習の教師データに用いる場合について説明したが、これに限らず、構造化データは、機械学習以外の分析用データとして用いることとしてもよい。
【0063】
なお、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記憶媒体(ただし、搬送波は除く)に記録しておくことができる。
【0064】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD-ROM(Compact Disc Read Only Memory)などの可搬型記憶媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【0065】
プログラムを実行するコンピュータは、例えば、可搬型記憶媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記憶媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【0066】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【0067】
なお、以上の実施形態の説明に関して、更に以下の付記を開示する。
(付記1) ネットワークに接続された端末間の通信データを取得する取得部と、
前記通信データに含まれるコマンドの情報それぞれに対応付けられているセッションの識別情報を参照して、セッションの識別情報ごとにコマンドの情報を分割して、コマンド群を生成する分割部と、
予め定められている複数のセッションを1つの操作とみなす条件に基づいて、前記分割部が生成した異なるコマンド群を結合し、前記ネットワークの攻撃判定のための分析用データとする結合部と、
を備える情報処理装置。
(付記2) 前記分析用データは、前記結合する処理で結合されなかったコマンド群を含む、付記1に記載の情報処理装置。
(付記3) 前記条件は、複数のセッションに含まれるコマンドの内容と、複数のセッションの時間的な関係又は複数のセッションに含まれるコマンドの時間的な関係と、に関する条件を含む、ことを特徴とする付記1又は2に記載の情報処理装置。
(付記4) 前記分析用データから特徴量を抽出する抽出部を更に備え、
前記抽出部が抽出した特徴量が、機械学習を用いた前記ネットワークの攻撃判定の教師データとして利用されることを特徴とする付記1~3のいずれかに記載の情報処理装置。
(付記5) ネットワークに接続された端末間の通信データに含まれるコマンドの情報それぞれに対応付けられているセッションの識別情報を参照して、セッションの識別情報ごとに前記コマンドの情報を分割して、コマンド群を生成し、
予め定められている複数のセッションを1つの操作とみなす条件に基づいて、生成された異なるコマンド群を結合し、前記ネットワークの攻撃判定のための分析用データとする、
処理をコンピュータに実行させるための分析用データ生成プログラム。
(付記6) 前記分析用データは、前記結合する処理で結合されなかったコマンド群を含む、付記5に記載の分析用データ生成プログラム。
(付記7) 前記条件は、複数のセッションに含まれるコマンドの内容と、複数のセッションの時間的な関係又は複数のセッションに含まれるコマンドの時間的な関係と、に関する条件を含む、ことを特徴とする付記5又は6に記載の分析用データ生成プログラム。
(付記8) 前記分析用データから特徴量を抽出する処理を前記コンピュータに更に実行させ、
前記抽出する処理で抽出された特徴量が、機械学習を用いた前記ネットワークの攻撃判定の教師データとして利用されることを特徴とする付記5~7のいずれかに記載の分析用データ生成プログラム。
(付記9) ネットワークに接続された端末間の通信データに含まれるコマンドの情報それぞれに対応付けられているセッションの識別情報を参照して、セッションの識別情報ごとに前記コマンドの情報を分割して、コマンド群を生成し、
予め定められている複数のセッションを1つの操作とみなす条件に基づいて、生成された異なるコマンド群を結合し、前記ネットワークの攻撃判定のための分析用データとする、
処理をコンピュータが実行することを特徴とする分析用データ生成方法。
【符号の説明】
【0068】
10 分析装置(情報処理装置)
20 データ生成部(取得部)
22 データ分割部(分割部)
24 データ結合部(結合部)
26 特徴量抽出部(抽出部)
70 情報処理端末(端末)
80 ネットワーク