(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】特開2019-82746(P2019-82746A)
(43)【公開日】2019年5月30日
(54)【発明の名称】異常ログ検出装置、異常ログの検出方法およびプログラム
(51)【国際特許分類】
G06F 11/30 20060101AFI20190510BHJP
H04L 12/70 20130101ALI20190510BHJP
G06F 11/34 20060101ALI20190510BHJP
【FI】
G06F11/30 172
H04L12/70 100Z
G06F11/34 176
【審査請求】未請求
【請求項の数】10
【出願形態】OL
【全頁数】14
(21)【出願番号】特願2017-208307(P2017-208307)
(22)【出願日】2017年10月27日
(71)【出願人】
【識別番号】000102728
【氏名又は名称】株式会社エヌ・ティ・ティ・データ
(71)【出願人】
【識別番号】596065223
【氏名又は名称】株式会社NTTデータ数理システム
(74)【代理人】
【識別番号】110000752
【氏名又は名称】特許業務法人朝日特許事務所
(72)【発明者】
【氏名】重田 真義
(72)【発明者】
【氏名】大谷 尚通
(72)【発明者】
【氏名】雪島 正敏
(72)【発明者】
【氏名】成瀬 俊輔
【テーマコード(参考)】
5B042
5K030
【Fターム(参考)】
5B042GA12
5B042GA18
5B042GB09
5B042JJ15
5B042JJ17
5B042MA14
5B042MC09
5K030GA15
5K030HA08
5K030JA10
5K030KA01
5K030KA02
5K030LC13
5K030LE16
5K030MA04
5K030MB01
5K030MC08
5K030MC09
(57)【要約】
【課題】従来のような攻撃パターン情報に基づく検出パターンに依存せずに不正プログラムによる異常ログを検出する。
【解決手段】異常ログ検出部101は、特徴量抽出部112によって抽出された、各セッションの特徴量に基づいて異常ログを抽出する。この異常ログ抽出においては教師無し学習を用いているので、従来のような攻撃パターン情報に基づく検出パターンに依存せずに不正プログラムによる異常ログを検出することが可能となる。さらに、誤検出ログに関しては教師あり学習を用いて除外するようにしているので、誤検出の可能性を小さくすることができる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
複数の通信ログを所定の基準に従って通信ログ群に分割する分割部と、
分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出部と、
抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出部と
を備えることを特徴とする異常ログ検出装置。
【請求項2】
前記異常ログ検出部は、
各々の前記通信ログ群に圧縮処理を行い、
各々の前記通信ログ群と、当該通信ログ群に圧縮処理を行ったデータとの誤差を算出し、
算出した前記誤差に基づいて前記異常ログを抽出する
ことを特徴とする請求項1記載の異常ログ検出装置。
【請求項3】
前記特徴量抽出部は、分割された1の前記通信ログ群に含まれる各通信ログの関係において特定される特徴量を抽出する
ことを特徴とする請求項1又は2記載の異常ログ検出装置。
【請求項4】
前記特徴量の解析観点、前記特徴量の解析対象、前記特徴量の表記方法及び前記特徴量の次元数を含む情報を記憶する特徴量記憶部を備え、
前記特徴量抽出部は、前記特徴量記憶部に記憶されている情報に基づいて、複数次元の行列で表現される前記通信ログ群の特徴量を抽出し、
前記異常ログ検出部は、前記圧縮処理として、前記特徴量を次元削減する圧縮処理を行う
ことを特徴とする請求項2記載の異常ログ検出装置。
【請求項5】
前記異常ログ検出部は、
抽出した前記異常ログにおいて誤って抽出された誤検出ログに基づく学習を行い、
当該学習結果に基づいて前記異常ログを抽出する
ことを特徴とする請求項1〜3のいずれか1項に記載の異常ログ検出装置。
【請求項6】
通信ログの監視対象となる複数の通信装置のうち閾値以上の通信装置が通信を行った発信先がある場合には、当該発信先を含む通信ログを、異常ログの検出対象から除外する
ことを特徴とする請求項1〜4のいずれか1項に記載の異常ログ検出装置。
【請求項7】
前記分割部は、前記通信ログの発生日時に関する前記基準に従って前記分割を行う
ことを特徴とする請求項1〜5のいずれか1項に記載の異常ログ検出装置。
【請求項8】
前記分割部は、同一の発信元を含む通信ログのうち、連続する通信ログの発生日時の時間間隔が閾値未満となる1又は複数の通信ログを1の前記通信ログ群として分割する
ことを特徴とする請求項6に記載の異常ログ検出装置。
【請求項9】
複数の通信ログを所定の基準に従って通信ログ群に分割する分割ステップと、
分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出ステップと、
抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出ステップと
を備えることを特徴とする異常ログの検出方法。
【請求項10】
コンピュータに、
複数の通信ログを所定の基準に従って通信ログ群に分割する分割ステップと、
分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出ステップと、
抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出ステップと を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不正プログラムによる異常ログを検出する技術に関する。
【背景技術】
【0002】
いわゆるマルウェアと呼ばれるような不正プログラムを検出するため、例えば実ネットワークに接続可能な仮想ネットワーク環境上でマルウェアを実行してそのマルウェアで引き起こす挙動を把握する方法が知られている(例えば、非特許文献1参照)。
【先行技術文献】
【非特許文献】
【0003】
【非特許文献1】青木一史、岩村誠、伊藤光恭、「半透性仮想ネットワークを用いたボットの動的解析手法の提案」、電子情報通信学会2008年総合大会、2008年3月18日
【発明の概要】
【発明が解決しようとする課題】
【0004】
この種の不正プログラムの感染を検出する技術として、プロキシサーバ装置等に蓄積された通信ログを不正プログラム感染時に固有の通信ログの検出パターンと照合する、というものがある。しかし、この検出パターンは、プログラミングに精通した専門家でなければ作成が難しいことに加え、その作成には例えば2週間といった長い時間がかかるという問題がある。また、この検出パターンは、不正プログラムによる攻撃に関する情報が例えばWEBサイト等で公開されるとそれを入手して作成するものであるが、この攻撃情報の公開や入手にも一定の時間を要する。さらに、特定の組織を狙った不正プログラムに関しては、その攻撃情報が公開されず、その組織自身が不正プログラムによる攻撃を検出しなければならないという問題もある。
【0005】
本発明は、このような事情を考慮してなされたものであり、従来のような検出パターンに依存せずに、不正プログラムによる異常ログを検出することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明は、複数の通信ログを所定の基準に従って通信ログ群に分割する分割部と、分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出部と、抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出部とを備えることを特徴とする異常ログ検出装置を提供する。
【0007】
前記異常ログ検出部は、各々の前記通信ログ群に圧縮処理を行い、各々の前記通信ログ群と、当該通信ログ群に圧縮処理を行ったデータとの誤差を算出し、算出した前記誤差に基づいて前記異常ログを抽出するようにしてもよい。
【0008】
前記特徴量抽出部は、分割された1の前記通信ログ群に含まれる各通信ログの関係において特定される特徴量を抽出するようにしてもよい。
【0009】
前記特徴量の解析観点、前記特徴量の解析対象、前記特徴量の表記方法及び前記特徴量の次元数を含む情報を記憶する特徴量記憶部を備え、前記特徴量抽出部は、前記特徴量記憶部に記憶されている情報に基づいて、複数次元の行列で表現される前記通信ログ群の特徴量を抽出し、前記異常ログ検出部は、前記圧縮処理として、前記特徴量を次元削減する圧縮処理を行うようにしてもよい。
【0010】
前記異常ログ検出部は、抽出した前記異常ログにおいて誤って抽出された誤検出ログに基づく学習を行い、当該学習結果に基づいて前記異常ログを抽出するようにしてもよい。
【0011】
通信ログの監視対象となる複数の通信装置のうち閾値以上の通信装置が通信を行った発信先がある場合には、当該発信先を含む通信ログを、異常ログの検出対象から除外するようにしてもよい。
【0012】
前記分割部は、前記通信ログの発生日時に関する前記基準に従って前記分割を行うようにしてもよい。
【0013】
前記分割部は、同一の発信元を含む通信ログのうち、連続する通信ログの発生日時の時間間隔が閾値未満となる1又は複数の通信ログを1の前記通信ログ群として分割するようにしてもよい。
【0014】
また、本発明は、複数の通信ログを所定の基準に従って通信ログ群に分割する分割ステップと、分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出ステップと、抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出ステップとを備えることを特徴とする異常ログの検出方法を提供する。
【0015】
また、本発明は、コンピュータに、複数の通信ログを所定の基準に従って通信ログ群に分割する分割ステップと、分割された各々の前記通信ログ群の特徴量を抽出する特徴量抽出ステップと、抽出された前記特徴量に基づいて異常ログを抽出する異常ログ検出ステップとを実行させるためのプログラムを提供する。
【発明の効果】
【0016】
本発明によれば、従来のような検出パターンに依存せずに、不正プログラムによる異常ログを検出することができる。
【図面の簡単な説明】
【0017】
【
図1】本発明の一実施形態に係る異常ログ検出装置のハードウェア構成を示すブロック図である。
【
図2】異常ログ検出装置の機能構成を示すブロック図である。
【
図5】特徴量記憶部に記憶されている通信ログの特徴量を例示する図である。
【
図6】特徴量記憶部に記憶されている通信ログの特徴量を例示する図である。
【
図7】特徴量記憶部に記憶されている通信ログの特徴量を例示する図である。
【
図8】特徴量記憶部に記憶されている通信ログの特徴量を例示する図である。
【
図9】特徴量記憶部に記憶されている通信ログの特徴量を例示する図である。
【
図10】異常ログを検出する処理の手順を示すフローチャートである。
【
図11】特徴量検出において注目する特徴量を例示する図である。
【
図12】或る通信ログから特徴量を検出する例を示す図である。
【
図13】変形例において異常ログを検出する処理の手順を示すフローチャートである。
【発明を実施するための形態】
【0018】
[実施形態]
[構成]
図1は、本発明の一実施形態に係る異常ログ検出装置10のハードウェア構成を示す図である。異常ログ検出装置10はコンピュータによって実現される。異常ログ検出装置10は、例えばインターネットのようなオープンネットワークと例えば社内LAN(Local Area Network)のようなクローズドネットワークとの間においてデータ中継を行うゲートウェイ設備に接続されている。
【0019】
図1に示すように、異常ログ検出装置10は、制御部11と、通信部12と、記憶部13とを少なくとも備えている。制御部11は、CPU(Central Processing Unit)などの演算装置と、ROM(Read Only Memory)及びRAM(Random Access Memory)などの記憶装置を備えている。ROMは、CPUによって利用されるプログラムや各種データを記憶している。通信部12は、他のコンピュータ(通信装置)と通信を行うインタフェースである。記憶部13は、例えばハードディスクなどの大容量の記憶手段であり、CPUによって利用されるプログラムや各種データを記憶している。CPUは、ROMや記憶部13に記憶されたプログラムやデータをRAMに展開し、そのプログラムに既述された手順に従って処理を行うことにより、
図2に示す各種機能を実現する。
【0020】
図2は、異常ログ検出装置10の機能構成を示すブロック図である。異常ログ検出装置10は、セッション分割部111、特徴量抽出部112、特徴量記憶部113、圧縮処理部114、誤差算出部115、異常判定部116、誤検出ログ記憶部118及び誤検出ログ除外部119という機能を備える。これらの機能はいずれも、制御部11がプログラムに既述された手順に従って処理を行うことによって実現される。これらの機能は主に、いわゆる教師無し学習によって、膨大な通信ログから不正プログラム感染時の異常ログを検出しようとするものである。なお、
図2に示した誤検出ログ抽出処理117は、異常ログ検出装置10に必須の構成ではなく、例えばプログラミングに精通した専門家が行う処理(作業)を表現したものである。
【0021】
クローズドネットワークに含まれるコンピュータ(通信装置)がオープンネットワークに含まれるコンピュータ(通信装置)との間で行った通信に関する通信ログは、例えばプロキシサーバ装置、DNS(Domain Name System)サーバ装置、ファイヤウォールサーバ装置又はメールサーバ装置等のサーバ装置群に蓄積され、さらに、それらのサーバ装置群からログサーバ装置へと収集、蓄積される。
【0022】
ここで、
図3は通信ログの一例を示す図である。
図3における1行分の情報は、1回の通信(アクセス)に対応する1の通信ログである、
図3の例では、各通信ログに、「time」、「発信元IP」、「メソッド」、「url」、「ステータスコード」、「UserAgent」及び「送信データサイズ」が含まれている。ただし、通信に関するログであれば
図3の例に限定されず、例えば「リファラ」等の通信ログとして取得可能なものは全て含まれ得る。
【0023】
セッション分割部111は、ログサーバ装置20から複数の通信ログを取得し、これらを所定の基準に従って、セッションと呼ばれる通信ログ群に分割する。なお、セッション分割部111は、ログサーバ装置20から通信ログを取得するのではなく、ログサーバ装置20を経由せずに、上述したプロキシサーバ装置等のサーバ装置群から直接、通信ログを取得してもよい。
【0024】
ここでいうセッションとは、通信ログの発生日時に関する基準に従って分割された1つの単位である。このセッションは1又は複数の通信ログを含み、このセッションを単位として異常ログの検出がなされる。セッションの分割について、より具体的には、クローズドネットワークに含まれる同一の発信元コンピュータのアドレスを含む通信ログのうち、時間的に連続する通信ログの発生日時の時間間隔が閾値未満となる通信ログ群が1つのセッションに含まれる。例えば閾値を30秒とした場合、前後30秒という期間を空けずに行われた通信の通信ログ群は全て1つのセッションに含まれる。また、前後30秒という期間を空けて行われた通信の通信ログは、たとえそれが1回の通信であっても、1つのセッションとして取り扱われる。1つ1つの通信ログを観察しただけでは不正プログラム感染時の異常ログとは推定できない場合も多いが、本実施形態のように、セッションという複数の通信ログを束ねた単位で観察したときには異常ログと推定できる可能性が高まる。
【0025】
図4は通信ログの分割例を示す図である。ここでは、上記閾値を30秒とした場合に
図3に示す通信ログを分割した例を示している。図示しているように、No.1の通信ログは、次に発生したNo.2の通信ログと30秒以上の期間が空いているため、1つのセッションS1として分割されている。また、No.2〜No.7の通信ログは、同一の発信元IPを含む通信ログであり、時間的に連続する通信ログの発生日時の時間間隔が30秒以内であり、且つNo.8の通信ログと30秒以上の期間が空いている。このため、これらNo.2〜No.7の通信ログは、1つのセッションS2として分割されている。同様に、No.8の通信ログは、前のNo.7の通信ログと30秒以上の期間が空いているため、1つのセッションS3として分割されている。
【0026】
特徴量抽出部112は、分割された各々のセッションについて、予め決められた特徴量に関する情報に基づいて通信ログの特徴量を抽出する。ここでいう通信ログの特徴量とは、不正プログラムの検出において有用であることが既に確認されている既知の特徴量のほか、有用である可能性は高いが不正プログラムの検出時の処理負担等を考慮して今まで採用されていなかった特徴量や、有用であるか否かが不明である特徴量等を含む。
【0027】
ここで、
図5〜9は、特徴量記憶部113に記憶されている通信ログの特徴量に関する情報を例示した図である。ここで、異常ログ検出装置10において異常ログ検出に利用される通信ログの特徴量の数を「次元数」と表現している。特徴量は、全ての特徴量の次元数を合計した次元数で表される。特徴量は次元数の行列で表現される。 特徴量記憶部113には、特徴量の識別子である「名称」、特徴量を3つの観点で種別に分類した「特徴種別」、特徴量の「解析観点」、特徴量の「解析対象」、特徴量の解析内容を説明する「解析に関する説明」、「特徴量の表記方法」、及び特徴量の「次元数」が対応付けられて記憶されている。特徴量の表記方法とは、特徴量を、0/1の値のみで表すのか又は非負整数値で表すのかを定めたものである。特徴量の次元数が複数の場合は、その特徴量について予め複数の項目が定められている。 例えば、No.「17」の「ブラウザのバージョン」という特徴量の場合は、次元数が30である。これは30個のブラウザ名及びバージョンの組にそれぞれ対応する項目群、具体的には「BrowserA ver50、BrowserA ver51、BrowserB ver8、BrowserB ver9・・・、その他」といった30個の項目群において、通信ログに該当するブラウザ名及びバージョンの項目には「1」という値が書き込まれ、それ以外のブラウザ名及びバージョンの項目には「0」という値が書き込まれることになる。 特徴量の「解析観点」「解析対象」「次元数」などの各項目は、利用者によって予め定義され、特徴量記憶部113に記憶される。特徴量抽出部112は、特徴量記憶部113に記憶されている情報に基づいて、それぞれの通信ログ群(セッション)の特徴量を抽出する。なお、特徴量は行列でなくても、他の次元を表す表記方法によって表現されてもよい。
【0028】
図5において、例えばNo.「1」の特徴量の名称は「direct_ip_ratio」である。ここでは、ユーザが発信先コンピュータとしてIPアドレスそのものを直接指定することは通常の通信においては稀であるという理由から、1のセッションに含まれる通信ログにおいて宛先がIPアドレスで直接指定されている通信ログの割合、というものが特徴量として設定されている。この特徴量は、分割された通信ログ群に相当するセッション単位で観察したときに特定される特徴量であるから、その特徴種別は「1のセッションから求まる特徴量」となっている。
【0029】
これに対し、例えばNo.「38」の特徴量は、オープンネットワークにおける発信先コンピュータのIPアドレスおよびポートである。これは1回の通信のみを観察したときに特定可能な特徴量であるから、その特徴種別は「1回の通信から求まる特徴量」となっている。
【0030】
また、例えばNo.「5」の特徴量は、発信先コンピュータを指定するURL(Uniform Resource Locator)末尾のファイル拡張子である。これは通信の実体的な内容に相当するという観点から、その特徴種別は「1のセッションから求まる特徴量」であり且つ「通信の実体的内容における特徴量」となっている。なお、「通信の実体的内容における特徴量」とは、より具体的には、通信されるデータのサイズ又は文字列等による特徴量である。
【0031】
図5〜9に例示した特徴量のうち、セッションにおける特徴量として有用性があると考えられるのは、例えばNo.「1」「2」「3」のような、セッションにおいてIPアドレスを発信先とした通信に関する特徴量である(特にNO.「1」のIPアドレス直接指定の割合)。これは、前述したように、通常の通信においてドメインを指定した通信が大半であるのに対し、不正プログラム感染時にはIPアドレスを発信先とした通信がよく観測されるためである。
【0032】
また、セッションにおける特徴量として有用性があると考えられるものとして、例えばNo.「7」「8」「9」のような、セッションにおいて発信先のポートを直接指定した通信に関する特徴量もある(特にNo.「9」のポートが直接指定されている比率)。これも、不正プログラム感染量時には発信先のポートを直接指定した通信がよく観測されるためである。
【0033】
また、セッションにおける特徴量として有用性があると考えられるものとして、例えばNo.「11」のような、セッションにおけるURL中のパラメータの値(引数)の長さの平均に関する特徴量もある。これも、不正プログラム感染時には、パラメータが極端に短い通信が続くとか或いはその逆の傾向が観測されるためである。
【0034】
また、セッションにおける特徴量として有用性があると考えられるものとして、例えばNo.「22」「23」「24」のような、セッションにおける特定メソッド(特にPOST)の出現に関する特徴量もある。これは不正プログラム感染時には、POSTで情報を外部(クローズドネットワークからオープンネットワーク)に繰り返しかつ多数回送信することが観測されるためである。
【0035】
図2の説明に戻る。圧縮処理部114、誤差算出部115、異常判定部116、誤検出ログ記憶部118、誤検出ログ除外部119によって、異常ログ検出部101が構成されている。この異常ログ検出部101は、特徴量抽出部112によって抽出された特徴量に基づいて、他の通信ログ群(セッション)と特徴量が異なる通信ログ群(セッション)を異常ログとして検出する機能である。より具体的に説明すると、特徴量抽出部112によって各通信ログ群(セッション)の特徴量が抽出されると、圧縮処理部114は、抽出した各通信ログ群(セッション)の特徴量に対して次元削減等の圧縮処理を行う。誤差算出部115は、各通信ログ群(セッション)について、圧縮処理前の特徴量と圧縮処理後の特徴量との間の誤差を算出する。D次元の特徴量を表記したベクトルXをD’次元のベクトルX’に次元削減する場合において(D>D’)、その変換行列をAとすると、X’=A・Xという数式で表されるが、ここでいう誤差とは、ベクトルX’とベクトルXとの間の距離に相当する。このような圧縮処理及び誤差算出処理が、分割された通信ログ群(セッション)のそれぞれについて行われることで、各々の通信ログ群(セッション)についての特徴量、圧縮処理後の特徴量及びこれらの間の誤差が求められることになる。異常判定部116は、各々の通信ログ群(セッション)について求められた誤差を参照し、その誤差が閾値以上となる通信ログ群(セッション)を第1異常ログとして出力する。異常判定部116で使用する閾値は予め決められていてもよいし、各通信ログ群(セッション)の誤差に基づいて下限5%を閾値とするなど、動的に決定されてもよい。
【0036】
この第1異常ログには、正常の通信であるにもかかわらず不正プログラムの感染によるものであると誤って検出されたものが含まれている可能性を否定できない。そこで、プログラミングの専門家等による第1異常ログから誤検出ログを抽出する作業を経て(誤検出ログ抽出処理117)、誤検出であるとされた第1異常ログは、誤検出ログ記憶部118に記憶される。誤検出ログ除外部119は、誤検出ログ記憶部118に記憶された誤検出ログに基づいて、いわゆる教師あり学習を行う。そして、誤検出ログ除外部119は、その学習結果に従って、第1異常ログから誤検出ログを含む通信ログ群(セッション)と推定されるものを除外し、第1異常ログから誤検出ログを除外した通信ログ群(セッション)を第2異常ログとして出力する。
【0037】
[動作]
図10に示したフローチャートを参照して、異常ログ検出装置10の動作の概要を説明する。
図10において、まず、セッション分割部111は、ログサーバ装置20から複数の通信ログを取得し(ステップS11)、これらを前述した通信ログの発生日時に関する基準に従って、セッションに分割する(ステップS12)。次に、特徴量抽出部112は、特徴量記憶部113に予め記憶されている内容に従い、分割された各々のセッションにおける通信ログの特徴量を抽出する(ステップS13)。
【0038】
ここで、
図11に示した特徴量に関する情報に注目して、或る通信ログ群(セッション)から特徴量を検出した例を、
図12を用いて説明する。
図11に示した特徴量の次元数は「8」である。
図12に示した5つの通信ログのうち、No.2の通信ログは、
図11のNo.1「direct_ip_ratio」という特徴量、つまりIPアドレスの直打ちに相当する。この特徴量は、セッション中に含まれる通信ログ群における割合(次元数1,非負整数値)として表記されるから(
図5参照)、1/5=「0.2」という表記となる。また、No.2「direct_ip_flag」という特徴量、つまりIPアドレスの有無は、「0/1」において有りを意味する「1」という表記となる。
【0039】
図12に示した5つの通信ログの送信データサイズの平均値(No.3「send_size_mean」の特徴量)は、(1000+100000+100000+100000+1000)/5=60040となる。これを、次元数1として非負整数値で表記すると、「60040」となる。
【0040】
また、
図12に示した5つの通信ログにおいて用いられるメソッドには、GETとCONNECTが含まれている。No.4「method_flag」という特徴量においては、メソッドの表記順序が予め決められており、ここでは「GET、CONNECT、POST、PUT、HEAD」となっている。このため、メソッドの出現有無という特徴量は、「1,1,0,0,0」という行列形式の表記となる。このように
図11の特徴量に関する情報に基づいて抽出された特徴量は、8次元の行列「0.2,1,60040,1,1,0,0,0」 となる。
【0041】
圧縮処理部114は、分割された通信ログ群のそれぞれに対して、前述の次元削減等の圧縮処理を行い、通信ログ群と、それに対応する圧縮後の特徴量とを関連付ける(ステップS14)。誤差算出部115は、分割された通信ログ群の特徴量と、当該通信ログ群の圧縮後の特徴量との間の誤差を通信ログ群のそれぞれについて算出し、各通信ログ群と、それに対応する圧縮後の特徴量と、算出した誤差とを関連付ける(ステップS15)。異常判定部116は、算出されたそれぞれの誤差に基づいて予め定めた閾値を超える誤差を抽出し、その誤差に関連づけられている通信ログ群を第1異常ログとして出力する(ステップS16)。そして、誤検出ログ除外部119は、第1異常ログから誤検出ログと推定されるものを除外し、第2異常ログとして出力する(ステップS17)。
【0042】
[効果]
本実施形態によれば、既知の不正プログラムによる攻撃情報に依存しない教師無し学習を用いることで、膨大な通信ログの中から不正プログラムによる異常ログを検出することが可能となる。さらに、誤検出ログに関しては、教師あり学習を用いて除外するようにしているので、正常な通信ログを異常ログとして誤って検出する可能性を小さくすることができる。これらの結果、不正プログラムの検出に関わる人手や時間を大幅に削減することが可能となる。
【0043】
さらに、本発明者らの実験によれば、従来の検出パターンを用いた仕組みでは検出が困難であった、いわゆるC&C通信(マルウェアに感染してボットと化したコンピュータ群に指令を送る不正制御の下で行われる通信)を検出できることが分かった。
【0044】
[変形例]
上述した実施形態は次のような変形が可能である。また、以下の変形例を互いに組み合わせて実施してもよい。
[変形例1]
実施形態で説明したような圧縮処理前後の誤差算出に基づく異常ログ検出は、必ずしも必須ではない。例えば圧縮処理部114が、特徴量抽出部112によって抽出された各通信ログ群(セッション)の特徴量に対して次元削減等の圧縮処理を行い、実施形態に係る異常判定部116に代わる本変形例の外れ値抽出部が、その圧縮後の特徴量に基づいて例えばLOF(Local Outlier Factor)処理を行って、外れ値に相当する特徴量に対応する通信ログ群(セッション)を異常ログとして出力するようにしてもよい。ただし、実施形態で説明したような圧縮処理前後の誤差算出に基づく異常ログ検出は、上記のLOF処理を行う場合よりも、異常ログの検出率が高く、また、処理負荷も小さいという利点がある。
【0045】
図13は、この変形例に係る情報処理装置の処理手順を示すフローチャートである。
図13において
図10と共通の処理には同一符号を付している。この変形例に係る情報処理装置は、ハードウェアとしては実施形態と同一であるが、機能的には、異常判定部116に代わる外れ値抽出部を備えている。
図13において、まず、セッション分割部111は、ログサーバ装置20から複数の通信ログを取得し(ステップS11)、これらを通信ログ群(セッション)に分割する(ステップS12)。次に、特徴量抽出部112は、特徴量記憶部113に予め記憶されている内容に従い、分割された各々の通信ログ群における通信ログの特徴量を抽出する(ステップS21)。圧縮処理部114は、特徴量抽出部112によって抽出された複数次元の行列で表現される特徴量について次元削減等の圧縮処理を行う(ステップS14)。外れ値抽出部は、圧縮後の特徴量についてLOFを用いた解析を行って外れ値を抽出し、その外れ値に相当する通信ログ群を第1異常ログとして出力する(ステップS22)。そして、誤検出ログ除外部119は、第1異常ログから誤検出ログと推定されるものを除外し、第2異常ログとして出力する(ステップS17)。
【0046】
なお、実施形態及び上記変形例で説明したような第1異常ログから誤検出ログを除外して第2異常ログを出力する処理は必須ではなく、第1異常ログを出力するだけでもよい。ただし、本発明者らの実験によれば、第1異常ログから誤検出ログを除外して第2異常ログを出力するほうが、第1異常ログを出力する場合と比べて、誤検出ログを約10%低減できることが分かっている。
【0047】
以上のとおり、要するに、異常ログ検出部101は、各通信ログ群(セッション)ごとに抽出した特徴量に基づいて異常ログを抽出すればよい。
【0048】
[変形例2]
異常ログ検出部101は、通信ログの監視対象となる複数のコンピュータ(通信装置)のうち閾値以上のコンピュータ(通信装置)が通信を行った発信先がある場合には、当該発信先のアドレスを含む通信ログを、異常ログの検出対象から除外するようにしてもよい。これは、例えば監視対象となるクローズドネットワークに含まれる、閾値(例えば5台)以上のコンピュータ(通信装置)が通信を行った発信先のドメインを含む通信ログは、不正プログラム感染による通信である可能性が小さい、という考え方によるものである。このような通信ログを除外するタイミングは、処理負荷低減の観点から、実施形態で説明したセッション分割の前であることが望ましいが、これに限らず、例えばセッション分割と特徴量抽出の処理の間であってもよいし、特徴量抽出と異常ログ検出の処理の間であってもよい。
【0049】
[変形例3]
図3〜9に図示した通信ログの特徴量は一例にすぎず、図示した内容に限定されない。
【0050】
[変形例4]
本発明は、異常ログ検出装置だけでなく、異常ログ検出装置が行う検出方法や、コンピュータを異常ログ検出装置として機能させるためのプログラムといった形態でも実施が可能である。このプログラムは、光ディスク等の記録媒体に記録した形態でコンピュータに提供されたり、インターネット等のネットワークを介してコンピュータに提供されたりしてもよい。
【符号の説明】
【0051】
10・・・異常ログ検出装置、11・・・制御部、12・・・通信部、13・・・記憶部、101・・・異常ログ検出部、111・・・セッション分割部、112・・・特徴量抽出部、113・・・特徴量記憶部、114・・・圧縮処理部、115・・・誤差算出部、116・・・異常判定部、117・・・誤検出ログ抽出処理、118・・・誤検出ログ記憶部、119・・・誤検出ログ除外部、20・・・ログサーバ装置。