(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2025-01-07
(45)【発行日】2025-01-16
(54)【発明の名称】攻撃検知装置、攻撃検知支援システム、攻撃検知支援方法および攻撃検知支援プログラム
(51)【国際特許分類】
G06F 21/55 20130101AFI20250108BHJP
G06F 11/34 20060101ALI20250108BHJP
G06F 16/38 20190101ALI20250108BHJP
【FI】
G06F21/55 320
G06F11/34 176
G06F16/38
(21)【出願番号】P 2021065328
(22)【出願日】2021-04-07
【審査請求日】2024-04-01
(73)【特許権者】
【識別番号】000006013
【氏名又は名称】三菱電機株式会社
(74)【代理人】
【識別番号】100118762
【氏名又は名称】高村 順
(72)【発明者】
【氏名】矢野 博將
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2020-140250(JP,A)
【文献】特開2017-083947(JP,A)
【文献】特開2008-129662(JP,A)
【文献】特開2005-322140(JP,A)
【文献】特開平2-297195(JP,A)
【文献】国際公開第2017/221667(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
G06F 11/34
G06F 16/38
(57)【特許請求の範囲】
【請求項1】
監視対象装置から取得された監視対象のログである監視対象ログとの照合に用いられる無害リストを記憶するリスト記憶部と、
前記監視対象装置から取得された正常なログを単語に分割し、前記正常なログにおける前記単語の記載順に、前記単語を上位層から順に階層に割当て、前記単語と、当該単語より前記正常なログにおいて上位の階層のそれぞれに対応する前記単語を識別する情報である上位層情報とを対応づけて前記無害リストとして前記リスト記憶部に格納する登録処理を行う解析部と、
前記監視対象ログを単語に分割し、前記監視対象ログにおける前記単語である監視対象単語の記載順に、前記監視対象単語を上位層から順に階層に割当て、前記階層ごとに前記監視対象単語を前記無害リストと照合し、前記監視対象単語が前記無害リストに合致しない場合に攻撃の可能性があると判定する判定部と、
を備えることを特徴とする攻撃検知装置。
【請求項2】
前記判定部により攻撃の可能性があると判定された場合に、攻撃の可能性があることを示す情報と、攻撃の可能性があると判定された前記監視対象ログである要確認ログとを含む通知情報を生成する通知情報生成部と、
前記通知情報を表示装置に送信する通信部と、
を備えることを特徴とする請求項1に記載の攻撃検知装置。
【請求項3】
前記通信部は、前記表示装置へ前記通知情報を送信した後に、前記要確認ログが正常なログであることを示す情報を受信すると、受信した情報を前記解析部へ通知し、
前記解析部は、前記要確認ログを前記正常なログとして前記登録処理を行うことを特徴とする請求項2に記載の攻撃検知装置。
【請求項4】
前記無害リストに含まれる前記単語の少なくとも一部は正規表現により表されることを特徴とする請求項1から3のいずれか1つに記載の攻撃検知装置。
【請求項5】
監視対象装置から取得された監視対象のログである監視対象ログを用いて攻撃の可能性があるか否かを判定する攻撃検知装置と、
表示装置と、
を備え、
前記攻撃検知装置は、
前記監視対象ログとの照合に用いられる無害リストを記憶するリスト記憶部と、
前記監視対象装置から取得された正常なログを単語に分割し、前記正常なログにおける前記単語の記載順に、前記単語を上位層から順に階層に割当て、前記単語と、当該単語より前記正常なログにおいて上位の階層のそれぞれに対応する前記単語を識別する情報である上位層情報とを対応づけて前記無害リストとして前記リスト記憶部に格納する登録処理を行う解析部と、
前記監視対象ログを単語に分割し、前記監視対象ログにおける前記単語である監視対象単語の記載順に、前記監視対象単語を上位層から順に階層に割当て、前記階層ごとに前記監視対象単語を前記無害リストと照合し、前記監視対象単語が前記無害リストに合致しない場合に攻撃の可能性があると判定する判定部と、
前記判定部により攻撃の可能性があると判定された場合に、攻撃の可能性があることを示す情報と、攻撃の可能性があると判定された前記監視対象ログである要確認ログとを含む通知情報を生成する通知情報生成部と、
前記通知情報を前記表示装置に送信する通信部と、
を備え、
前記表示装置は、前記通知情報を表示することを特徴とする攻撃検知支援システム。
【請求項6】
前記監視対象装置から前記監視対象ログおよび前記正常なログを取得し、取得した前記監視対象ログおよび前記正常なログに、定められた処理を施して前記攻撃検知装置へ送信する中継装置を備えることを特徴とする請求項5に記載の攻撃検知支援システム。
【請求項7】
前記攻撃検知装置を2台備え、
2台の前記攻撃検知装置のうちの一方は、前記解析部による処理を行い前記判定部による処理を行わず、2台の前記攻撃検知装置のうちの他方は、前記判定部による処理を行い前記解析部による処理を行わないことを特徴とする請求項5または6に記載の攻撃検知支援システム。
【請求項8】
監視対象装置から取得された監視対象のログである監視対象ログを用いて攻撃の可能性があるか否かを判定する攻撃検知装置における攻撃検知支援方法であって、
前記監視対象装置から取得された正常なログを単語に分割し、前記正常なログにおける前記単語の記載順に、前記単語を上位層から順に階層に割当て、前記単語と、当該単語より前記正常なログにおいて上位の階層のそれぞれに対応する前記単語を識別する情報である上位層情報とを対応づけて無害リストとして記憶するステップと、
前記監視対象装置から取得されたログである監視対象ログを単語に分割し、前記監視対象ログにおける前記単語である監視対象単語の記載順に、前記監視対象単語を上位層から順に階層に割当て、前記階層ごとに前記監視対象単語を前記無害リストと照合し、前記監視対象単語が前記無害リストに合致しない場合に攻撃の可能性があると判定するステップと、
を含むことを特徴とする攻撃検知支援方法。
【請求項9】
監視対象装置から取得された監視対象のログである監視対象ログを用いて攻撃の可能性があるか否かを判定するコンピュータシステムに、
前記監視対象装置から取得された正常なログを単語に分割し、前記正常なログにおける前記単語の記載順に、前記単語を上位層から順に階層に割当て、前記単語と、当該単語より前記正常なログにおいて上位の階層のそれぞれに対応する前記単語を識別する情報である上位層情報とを対応づけて無害リストとして記憶するステップと、
前記監視対象装置から取得されたログである監視対象ログを単語に分割し、前記監視対象ログにおける前記単語である監視対象単語の記載順に、前記監視対象単語を上位層から順に階層に割当て、前記階層ごとに前記監視対象単語を前記無害リストと照合し、前記監視対象単語が前記無害リストに合致しない場合に攻撃の可能性があると判定するステップと、
を実行させることを特徴とする攻撃検知支援プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、攻撃検知装置、攻撃検知支援システム、攻撃検知支援方法および攻撃検知支援プログラムに関する。
【背景技術】
【0002】
各種プラント、設備などを制御する制御システム、または情報処理を行う情報処理システムなどにおいて、システム外部からの攻撃の有無を判断する方法として、当該システム内の機器上に保管されたログを収集して分析する方法がある。例えば、特許文献1には、正常なログから、正規表現としてあらかじめ定められた抽出条件に合致する部分を抽出し、抽出した部分を正規表現に変換することでホワイトリストを作成し、監視対象のログがホワイトリストと合致しないログを異常なログと判定する技術が開示されている。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1に記載の技術では、あらかじめログのフォーマットが明確で正規表現にして複数のログをまとめても問題ないとわかっている部分以外は、正規表現で表現することを避けている。このため、ログの監視対象のシステムにおいて機器の交換が行われる、またはソフトウェアのアップデートが行われるなどによってフォーマットが変更される可能性がある場合には、フォーマットが明確でないため正規表現を適用できず、ログの全文をそのまま記録することになる。誤検出を避けるには、様々な正常なログをホワイトリストとして蓄積することが望ましく、ホワイトリストを記憶するためのメモリの使用量が多くなる。
【0005】
本開示は、上記に鑑みてなされたものであって、メモリの使用量を抑制しつつ攻撃の誤検出を低減することができる攻撃検知装置を得ることを目的とする。
【課題を解決するための手段】
【0006】
上述した課題を解決し、目的を達成するために、本開示にかかる攻撃検知装置は、監視対象装置から取得された監視対象のログである監視対象ログとの照合に用いられる無害リストを記憶するリスト記憶部と、監視対象装置から取得された正常なログを単語に分割し、正常なログにおける単語の記載順に、単語を上位層から順に階層に割当て、単語と、当該単語より正常なログにおいて上位の階層のそれぞれに対応する単語を識別する情報である上位層情報とを対応づけて無害リストとしてリスト記憶部に格納する登録処理を行う解析部、を備える。攻撃検知装置は、さらに、監視対象ログを単語に分割し、監視対象ログにおける単語である監視対象単語の記載順に、監視対象単語を上位層から順に階層に割当て、階層ごとに監視対象単語を無害リストと照合し、監視対象単語が無害リストに合致しない場合に攻撃の可能性があると判定する判定部と、を備える。
【発明の効果】
【0007】
本開示によれば、メモリの使用量を抑制しつつ攻撃の誤検出を低減することができるという効果を奏する。
【図面の簡単な説明】
【0008】
【
図1】実施の形態1にかかる攻撃検知支援システムの構成例を示す図
【
図2】実施の形態1の無害リストの生成手順の一例を示すフローチャート
【
図3】実施の形態1の無害リストをツリー状に表現した図
【
図4】実施の形態1のリスト記憶部に格納される無害リストの一例を示す図
【
図5】実施の形態1の攻撃検知処理手順の一例を示すフローチャート
【
図6】実施の形態1の表示装置に表示される画面の一例を示す図
【
図7】新たに単語が登録された後の実施の形態1の無害リストをツリー状に表現した図
【
図8】実施の形態1の攻撃検知装置を実現するコンピュータシステムの構成例を示す図
【
図9】実施の形態2にかかる攻撃検知支援システムの構成例を示す図
【
図10】実施の形態3にかかる攻撃検知支援システムの構成例を示す図
【発明を実施するための形態】
【0009】
以下に、実施の形態にかかる攻撃検知装置、攻撃検知支援システム、攻撃検知支援方法および攻撃検知支援プログラムを図面に基づいて詳細に説明する。
【0010】
実施の形態1.
図1は、実施の形態1にかかる攻撃検知支援システムの構成例を示す図である。本実施の形態の攻撃検知支援システム1は、攻撃の監視対象の装置である監視対象装置2から、監視対象装置2における動作、処理などの各種の履歴が記憶されたログを取得し、取得したログを用いて監視対象装置2への外部からの攻撃を検知する。なお、
図1では監視対象装置2を1台図示しているが、監視対象装置2は複数であってもよい。
【0011】
監視対象装置2は、例えば一般的なコンピュータであってもよいし、FAPC(Factory Automation Personal Computer)であってもよいし、アクセススイッチなどの周辺機器であってもよいし、これらの混在であってもよく、ログを記録している装置であればよい。なお、ログはテキストとして記録されているとする。
【0012】
攻撃検知支援システム1は、監視対象装置2から取得したログを用いて攻撃の可能性の有無を検知する攻撃検知装置3と、攻撃検知装置による検知結果を表示する表示装置4とを備える。なお、攻撃検知装置3が表示部を備えることで、表示装置4と攻撃検知装置3とを一体化させてもよい。本実施の形態では、後述するように、攻撃検知装置3は、正常なログを単語に分割し、単語を階層化してツリー状の無害リストとして保持する。無害リストは、監視対象装置2から取得されたログである監視対象ログとの照合に用いられる。
【0013】
ログを用いて攻撃を検知する方法として、あらかじめ攻撃検知のルールを定めておく方法も考えられるが、この場合、ログの監視対象のシステムにおいて機器の交換が行われたり、ソフトウェアのアップデートが行われたりといった事象があると、その都度ルールの更新作業を行う必要があり運用の負荷が生じる。また、あらかじめルールを定めるには、事前にログのフォーマットなどの情報を把握しておく必要があり、事前に情報の収集が困難なシステムには適用できない場合がある。事前に情報を把握せずにログを用いて攻撃を検知する方法としては、収集したログを用いて機械学習することで攻撃を検知する方法もあるが、機械学習による推論では、正常なログであるのに正常でないと判定したり、正常でないログを正常と判定したりといった誤判定の可能性がある。このため、攻撃の検知の精度を高める方法としては、監視対象のログを、正常であることがわかっているログと照合することで正常であるか否かを判定する方法がある。しかしながら、正常なログの全文を多数無害リストとして保持するとメモリの使用量が増大する。本実施の形態では、単語を階層化してツリー状の無害リストとして保持し、管理対象のログをツリー状の無害リストと照合することで、正常なログを全文無害リストとして保持する場合に比べメモリの使用量を抑制しつつ誤検出を抑制することができる。
【0014】
監視対象装置2は、処理部21、通信部22およびログ記憶部23を備える。処理部21は、あらかじめ定められた処理、オペレータからの指示に応じた処理などを実施し、各種の履歴を日時とともにログとしてログ記憶部23に格納する。通信部22は、ログ記憶部23に格納されているログを攻撃検知装置3へ送信する。通信部22は、攻撃検知装置3からログの送信の要求があったときにログを送信してもよいし、あらかじめ定められた周期で定期的にログを送信してもよい。ログ記憶部23は、ログを記憶する。
【0015】
攻撃検知装置3は、通信部31、ログ記憶部32、解析部33、リスト記憶部34、判定部35および通知情報生成部36を備える。通信部31は、監視対象装置2および表示装置4とそれぞれ通信を行う。通信部31は、例えば、監視対象装置2から、監視対象のログを受信し、受信したログをログ記憶部32に格納し、正常なログとして受信したログを解析部33へ渡す。正常なログについては後述する。
【0016】
解析部33は、監視対象装置2から取得された正常なログを単語(ワード)に分割し、正常なログにおける単語の記載順に、単語を上位層から順に階層に割当て、単語と、当該単語より正常なログにおいて上位の階層のそれぞれに対応する単語を識別する情報である上位層情報とを対応づけて無害リストとしてリスト記憶部34に格納する登録処理を行う。詳細には、解析部33は、通信部31から受け取った正常なログを単語に分割し、単語をログの記載順に階層化し、階層化した単語を上位の階層とのリンクを示す上位層情報とともに無害リストとしてリスト記憶部34に格納する。本実施の形態では、無害リストは、正常なログ内の単語が階層化されてツリー状に関連付けられたものとなる。本実施の形態の無害リストの詳細は後述する。正常なログは、例えば、正常であることが判明している期間に取得されたログであり、例えばユーザーによりこの期間が指定されることで、通信部31がこの期間のログを監視対象装置2から受信すると、解析部33へ正常なログとして出力する。また、後述するように、表示装置4では、攻撃検知装置3によって攻撃の可能性のあるログを検知したことを示す情報を表示すると、ユーザーから当該ログが正常であるか否かの入力を受け付ける。通信部31は、表示装置4から、正常であるとユーザーによって判断されたログを受信すると、当該ログも正常なログとして解析部33へ出力する。
【0017】
判定部35は、監視対象のログを単語に分割し、監視対象のログにおける単語である監視対象単語の記載順に、監視対象単語を上位層から順に階層に割当て、階層ごとに監視対象単語を無害リストと照合し、監視対象単語が無害リストに合致しない場合に攻撃の可能性があると判定する。詳細には、判定部35は、ログ記憶部32に記憶されている監視対象のログを読み出し、読み出したログを無害リストと照合することで、監視対象のログが無害であるか否かを判断し、監視対象のログが無害でないと判断した場合には攻撃の可能性があると判定して、攻撃の可能性があると判定されたログの内容とともに判定結果を通知情報生成部36へ通知する。
【0018】
通知情報生成部36は、判定部35により攻撃の可能性があると判定された場合に、攻撃の可能性があることを示す情報と、攻撃の可能性があると判定された監視対象のログである要確認ログとを含む通知情報を生成する。詳細には、通知情報生成部36は、判定部35から攻撃の可能性があると判定された判定結果を受け取ると、攻撃の可能性があることを示す通知情報を生成する。通知情報生成部36は、通知情報に、攻撃の可能性があると判定されたログの内容を含める。通知情報生成部36は、通信部31を介して通知情報を表示装置4へ送信する。
【0019】
ログ記憶部32は、監視対象のログを記憶する。リスト記憶部34は、無害リストを記憶する。
【0020】
表示装置4は、攻撃検知装置3から受信した通知情報を表示する。表示装置4は、制御部41、通信部42および表示部43を備える。通信部42は、攻撃検知装置3から通知情報を受信すると、制御部41へ渡す。制御部41は、通信部42から受信した通知情報を用いて、表示部43に表示するための表示情報を生成して表示部43へ出力する。表示情報は、攻撃検知装置3から受信した通知情報の内容、すなわち、攻撃の可能性を検知した旨を示す情報と対応するログの内容とを含む。表示部43は、表示情報を表示する。また、制御部41は、図示を省略した入力手段、または表示部43と一体化された入力手段が、ユーザーから、表示部43に表示されたログが正常である旨の入力を受け付けると、表示部43に表示されたログ、すなわち攻撃検知装置3から受信した通知情報に含まれるログを、正常なログと判定する。そして、制御部41は、正常なログであることを示す情報とともに当該ログを、攻撃検知装置3へ送信する。表示部43は、制御部41から受け取った表示情報を表示する。
【0021】
表示装置4は、パーソナルコンピュータであってもよいし、タブレット、スマートフォンなどであってもよい。例えば、攻撃検知装置3がWebサーバとしての機能を有し、通知情報生成部36が、htmlファイルなどのようにブラウザで閲覧可能な形式で通知情報を生成してもよい。
【0022】
次に、本実施の形態の動作について説明する。
図2は、本実施の形態の無害リストの生成手順の一例を示すフローチャートである。
図2に示すように、攻撃検知装置3は、無害リストの登録対象のログを受信する(ステップS1)。詳細には、通信部31が、上述した正常なログを、無害リストの登録対象のログとして受信し、解析部33へ渡す。
【0023】
次に、攻撃検知装置3は、無害リストの登録対象のログを、単語に分割する(ステップS2)。詳細には、解析部33が、通信部31から正常なログを、スペースなど定められた区切りを単位として単語に分割する。なお、単語の区切りはスペースに限定されず、カンマなどであってもよく、例えば、ユーザーによって設定される。
【0024】
次に、攻撃検知装置3は、上位階層と関連付けて単語を記録し(ステップS3)、処理を終了する。詳細には、解析部33が、単語を、ログにおける記載順の順に階層に対応づける。例えば、最初に記載されている単語は第1階層であり、次に記載されている単語は第2階層といったように、単語の記載順に単語を階層に対応づける。そして、各階層の単語を上位の階層の単語と関連づけ、上位階層と関連づけた単語を無害リストとしてリスト記憶部34に格納する。
【0025】
例えば、正常なログに“I amn’t hacker.”と記載されていたとする。このログは、“I”、“amn’t”、“hacker.”の3つの単語に分割され、“I”は第1階層の単語であり、“amn’t”は第2階層の単語であり、“hacker.”は第3階層の単語となる。そして、第2階層の“amn’t”は、上位の第1階層の“I”につながりがあり、第3階層の“hacker.”は、第1階層の“I”と第2階層の“amn’t”につながりがある。この場合、第2階層の“amn’t”は上位の第1階層の“I”と関連付けられ、第3階層の“hacker.”は、第1階層の“I”と第2階層の“amn’t”に関連付けられる。
【0026】
なお、すでに上位層の関連付けまで含めて同一の単語がすでに無害リストに含まれている場合には、解析部33は、当該単語は無害リストに追加せず、上位層の関連付けまで含めて同一の単語が無害リストに無い場合に、無害リストに新たに単語を追加する。上位層の関連付けまで含めて同一の単語とは、例えば、第2階層の単語を例に挙げると、単に第2階層単独でみた場合に同一の単語であるというだけでなく当該第2階層に関連付けられている第1階層の単語も同じ単語である。すなわち、解析部33は、上記の“I amn’t hacker.”を正常なログとして処理して無害リストに単語を登録した後に、“I amn’t attacker.”という正常なログを取得した場合、第1階層の“I”は既に登録されているため、無害リストに登録せず、第2階層の“amn’t”についても、上位層の“I”も同一の第2階層の“amn’t”が既に登録されているため、登録しない。
【0027】
図3は、本実施の形態の無害リストをツリー状に表現した図である。上述したように、ログ内の各単語を上位の階層と関連づけることで、解析部33は、
図3に示すようなツリー状の関係を求めることができる。
図3に示した例では、第1階層の単語として“I”が示されており、この単語を、上位の階層との関連とともに識別する情報として、“I”の上部にワード1と記載されている。第1階層は上位の階層はないことから、“I”については第1階層内における識別番号である1だけが付与されている。
【0028】
第2階層の単語として、
図3では、“amn’t”と“didn’t”の2つが示されており、これら2つの単語はいずれも上位の第1階層の“I”と関連付けられている。ここでは、第2階層における“amn’t”、“didn’t”の識別番号をそれぞれ1,2としており、“amn’t”の上部にはワード1-1と記載され、“didn’t”のの上部にはワード1-2と記載される。ワード1-1は、最後の数値1が第2階層における単語の識別番号を示し、ハイフンの前の1は、関連づけられている単語の第1階層における識別番号を示している。
【0029】
また、第3階層の単語として、
図3では、“hacker\.”、“attacker\.”、“attack\.”の3つが示されている。これらのうち“hacker\.”、“attacker\.”はいずれも、第1階層の“I”および第2階層の“amn’t”に関連付けられており、“attack\.”は、第1階層の“I”および第2階層の“didn’t”に関連付けられている。なお、ピリオドが正規表現で任意の1文字の意味で用いられることから、ピリオドの前に“\”をつけて、任意の1文字の意味ではなくピリオドの文字自体であることを表現している。
図3に示した例では、第3階層における“hacker\.”の識別番号を1としており、“hacker\.”の上部には、上位階層との関連も含む情報としてワード1-1-1が記載されている。“attacker\.”、“attack\.”についても同様に、上位階層との関連も含む情報として、それぞれワード1-1-2、1-2-1が記載されている。
【0030】
図3に示すように、正常なログに“I amn’t hacker.”と “I amn’t attacker.”の2つが含まれる場合、本実施の形態では、共通する“I amn’t”の部分は、1回ずつ単語として登録されればよい。なお、
図3に示した例では、簡易なモデルを示しているため、単語数が少ないが、一般的には階層数はより多数であり、また登録されるログの数も多いため、全文を正常なログとして保持するには多くのメモリを使用する。本実施の形態では、階層化してツリー状に無害リストを保持するため、正常なログを全文保持する場合に比べてメモリの使用量を抑制することができる。
【0031】
なお、
図3では、関連性を示すために無害リストをツリー状に表示しているが、実際には、無害リストとして、上位階層との関連付けを示す情報とともに単語がリスト記憶部34に格納される。
図4は、本実施の形態のリスト記憶部34に格納される無害リストの一例を示す図である。
図4に示した例では、無害リストとして、階層ごとに、単語の識別番号と単語と上位階層リンクとが格納される。上位階層リンクは、関連づけられる上位階層の単語を識別する上位層情報である。
図4に示した例では、上位階層が1層の場合には、当該上位階層における関連付けられている単語の識別番号が上位階層リンクの欄に格納される。また、上位階層が2層以上の場合には、jを3以上の整数とするとき、第j階層の上位階層リンクは、第1階層、第2階層、・・・、第(j-1)階層のそれぞれに関連づけられている単語の識別番号が、この順で、ハイフンで区切られて示される。なお、
図4に示すように、関連付けられている上位層のリンクごとに、すなわち上位階層リンクが1-1の場合と1-2の場合とで分けてそれぞれ識別番号が付与される。なお、
図4に示した無害リストは一例であり、同等の内容を記録することができればよく、具体的な識別番号の付与方法、形式などは
図4に示した例に限定されない。
【0032】
また、
図3および
図4に示した例では、正常なログに含まれる単語自体を用いているが、無害リストに含まれる単語のうちの少なくとも一部は正規表現により表されてもよい。例えば、正常なログとして第1階層に、一文字の大文字のアルファベットの全てが登録された場合、これらのA-Zのそれぞれの単語の代わりに、1つの正規表現“[A-Z]”を用いてもよい。このように正規表現を用いることでさらに無害リストのサイズを低減することができる。なお、本実施の形態では、このように正規表現で表されたひとまとまりの部分も単語と呼ぶ。なお、1つの単語のうちの一部が正規表現で表されてもよい。
【0033】
次に、本実施の形態の監視対象のログを用いた攻撃検知について説明する。
図5は、本実施の形態の攻撃検知処理手順の一例を示すフローチャートである。
図5に示すように、攻撃検知装置3は、監視対象のログを取得する(ステップS11)。詳細には、通信部31が監視対象装置2から監視対象のログを受信し、受信したログをログ記憶部32に格納する。
【0034】
次に、攻撃検知装置3は、監視対象のログを単語に分割する(ステップS12)。詳細には、判定部35が、ログ記憶部32に格納されている監視対象のログを単語に分割する。単語に分割する方法は、ステップS2で述べた方法と同様である。
【0035】
次に、攻撃検知装置3は、処理対象の階層を示す変数であるiを1に設定する(ステップS13)。次に、攻撃検知装置3は、ログの第i階層の単語が、無害リストの第i階層の単語とリンク先も含めて一致するか否かを判定する(ステップS14)。詳細には、まず、判定部35が、ステップS12で分割した単語を記載順に並べ、記載順に第1階層から順に階層を対応づける。そして、判定部35は、ステップS12で分割した単語のうち第1階層の単語が、リスト記憶部34に記憶されている無害リストの第1階層の単語とリンク先も含めて一致するか否かを判定する。第1階層の場合には、上位階層がないため、リスト記憶部34に記憶されている無害リストの第1階層の単語のうち、ステップS12で分割した単語のうち第1階層の単語と一致するものがあるか否かを判定する。iが2以上の場合には、判定部35は、リスト記憶部34に記憶されている無害リストの第i階層の単語のうち、監視対象のログの第i階層の単語と一致し、かつ、監視対象のログにおける第i階層より上位の階層の単語が上位階層リンクと合致しているものがあるか否かを判定する。
【0036】
例えば、
図4に示した無害リストがリスト記憶部34に格納されている場合に、監視対象のログとして“I amn’t attacker.”というログを取得した場合、判定部35は、i=1の場合には、監視対象のログの第1階層の“I”が無害リストの第1階層の単語に含まれているため、ステップS14でYesと判定する。また、i=2の場合には、監視対象のログの第2階層の“amn’t”が無害リストの第2階層の単語に含まれており、また、第2階層の“amn’t”の上位階層リンクに示されている1は第1階層の“I”に対応する識別番号でありリンク先も含めて一致するため、ステップS14でYesと判定する。同様に、i=3の場合にも、“attacker.”は無害リストの第3階層の単語とリンク先も含めて一致するため、判定部35は、ステップS14でYesと判定する。
【0037】
一方、例えば、
図4に示した無害リストがリスト記憶部34に格納されている場合に、監視対象のログとして“I amn’t traitor.”というログを取得した場合、判定部35は、i=1の場合と、i=2の場合とでは、ステップS14でYesと判定するが、i=3の場合は、“traitor.”が無害リストの第3階層にないためステップS14でNoと判定する。
【0038】
また、例えば、
図4に示した無害リストがリスト記憶部34に格納されている場合に、監視対象のログとして“I attacker amn’t.”というログを取得した場合、判定部35は、i=1の場合では、ステップS14でYesと判定するが、i=2の場合は、“attacker”が無害リストの第2階層にないためステップS14でNoと判定する。このように、単語単体では、無害リストに含まれていても、階層が異なる場合にはステップS14でNoと判定される。
【0039】
図5の説明に戻る。ステップS14でYesと判定されると、攻撃検知装置3の判定部35は、iがimaxに等しいか否かを判断する(ステップS16)。imaxは、ステップS12において単語に分割した際に決定される監視対象のログの単語数である。iがimaxに等しい場合(ステップS16 Yes)、攻撃検知装置3は処理を終了する。なお、ステップS16でYesと判断される場合には、ログが全階層で無害リストに合致すると判定された場合であるため、攻撃検知装置3の判定部35は監視対象のログが正常であると判定する。ここでは、攻撃検知装置3は監視対象のログが正常であると判定した場合にはなにも処理を行わない例を示しているが、監視対象のログが正常であると判定した場合にも判定結果を通知情報生成部36へ通知してもよい。この場合、通知情報生成部36は、監視対象のログが正常であることを示す通知情報を、通信部31を介して表示装置4へ送信する。
【0040】
iがimaxに等しくない場合(ステップS16 No)、攻撃検知装置3の判定部35は、i=i+1とし(ステップS17)、ステップS14の処理を再度実施する。また、ステップS14でNoと判定された場合(ステップS14 No)、攻撃検知装置3は、攻撃の可能性があることを通知し(ステップS15)、処理を終了する。詳細には、ステップS15では、判定部35は、攻撃の可能性があることを、対応するログとともに通知情報生成部36へ通知し、通知情報生成部36は、攻撃の可能性があること示す通知情報を生成して、通信部31を介して表示装置4へ送信する。上述したように通知情報には、攻撃の可能性があると判定されたログの内容を含む。なお、通知情報生成部36がhtmlファイルとして通知情報を生成する場合には、表示装置4から対応するURL(Uniform Resource Locator)が指定された場合に、表示装置4へ通知情報を送信する。
【0041】
以上の処理により、攻撃検知装置3は、監視対象のログをツリー状の無害リストと照合することで、攻撃の可能性の有無を判定することができる。表示装置4は、通知情報を受信すると、表示部43に表示する。これによりユーザーは攻撃の可能性のログがあったことを認識することができる。
【0042】
図6は、本実施の形態の表示装置4に表示される画面の一例を示す図である。表示装置4は、通知情報を受信すると、例えば、
図6に示すように、攻撃の可能性のあるログを検出したことを示すメッセージと、対応するログと、対処方法の選択を促す情報とを表示する。
図6に示した例では、攻撃の可能性のあるログを検出したことを示すメッセージとして「攻撃の可能性のあるログが検出されました」というメッセージが表示され、その下に対応するログの内容が表示されている。
図6では、“I amn’t traitor.”というログが無害リストと合致しないと判定された例を示している。また、
図6では、対処方法の選択肢として、「対処しない」、「無害リストに登録」、「警報」の3つの選択肢が示されており、これらは入力を受け付けるボタンとなっている。ユーザーは、これらの3つのボタンのうちのいずれかをクリックまたはタッチすることで、対処方法を選択することができる。なお、具体的に表示するメッセージなどの内容、配置、対処方法の入力の受付方法などは
図6の例に限定されず、同等の内容が表示されればどのような形式で表示が行われてもよい。
【0043】
「対処しない」が選択された場合には、特に対処はされない。「警報」が選択された場合には、攻撃が検知された場合の処置を担当する担当者などに攻撃が検知されたことを示すメッセージが送信されるなどにより、警報が発せられる。「無害リストに登録」が選択された場合には、表示装置4の制御部41は、対応するログを、当該ログが正常であることを示す情報とともに、通信部42を介して攻撃検知装置3へ送信する。これにより、攻撃検知装置3は、
図2に示した無害リストの登録処理を実施し、“I amn’t traitor.”に対応する無害リストを登録する。すなわち、攻撃検知装置3の通信部31は、表示装置4へ要確認ログを含む通知情報を送信した後に、要確認ログが正常なログであることを示す情報を表示装置4から受信すると、受信した情報を解析部33へ通知し、解析部33は、要確認ログを正常なログとして登録処理を行う。
【0044】
図7は、新たに単語が登録された後の本実施の形態の無害リストをツリー状に表現した図である。
図7は、無害リストが
図3に示した状態であるときに、“I amn’t traitor.”のログが攻撃検知処理により攻撃の可能性があると判定され、表示装置4によってその旨が表示され、ユーザーが“I amn’t traitor.”を正常であると判断して、
図6に例示した「無害リストに登録」を選択した例に相当する。その後、攻撃検知装置3が
図2に示した処理を実施することで、
図7の破線で示したように、第3階層に“traitor\.”が追加される。
【0045】
なお、以上では、分割した単語の全てを照合する例を説明したが、例えば、日時などのように頻繁に変化する単語などのように照合の対象から除外したいものがあれば、除外する部分を設けてもよい。例えば、ログの先頭が日時である場合には、ログの記載順の先頭の単語は照合の対象から除外することとし、記載順が2番目の単語を第1階層として、上述した無害リストの登録処置と攻撃検知処理とを実施してもよい。また、何番目の単語を照合の除外とするかをユーザーが設定できるようにしてもよい。
【0046】
次に、各装置のハードウェア構成について説明する。本実施の形態の攻撃検知装置3は、コンピュータシステム上で、攻撃検知装置3における処理が記述されたプログラムが実行されることにより、コンピュータシステムが攻撃検知装置3として機能する。
図8は、本実施の形態の攻撃検知装置3を実現するコンピュータシステムの構成例を示す図である。
図8に示すように、このコンピュータシステムは、制御部101と入力部102と記憶部103と表示部104と通信部105と出力部106とを備え、これらはシステムバス107を介して接続されている。
【0047】
図8において、制御部101は、例えば、CPU(Central Processing Unit)等のプロセッサであり、本実施の形態の攻撃検知装置3における処理が記述されたプログラムを実行する。入力部102は、たとえばキーボード、マウスなどで構成され、コンピュータシステムの使用者が、各種情報の入力を行うために使用する。記憶部103は、RAM(Random Access Memory),ROM(Read Only Memory)などの各種メモリおよびハードディスクなどのストレージデバイスを含み、上記制御部101が実行すべきプログラム、処理の過程で得られた必要なデータ、などを記憶する。また、記憶部103は、プログラムの一時的な記憶領域としても使用される。表示部104は、ディスプレイ、LCD(液晶表示パネル)などで構成され、コンピュータシステムの使用者に対して各種画面を表示する。通信部105は、通信処理を実施する受信機および送信機である。出力部106は、プリンタなどである。なお、
図8は、一例であり、コンピュータシステムの構成は
図8の例に限定されない。
【0048】
ここで、本実施の形態のプログラムが実行可能な状態になるまでのコンピュータシステムの動作例について説明する。上述した構成をとるコンピュータシステムには、たとえば、図示しないCD(Compact Disc)-ROMドライブまたはDVD(Digital Versatile Disc)-ROMドライブにセットされたCD-ROMまたはDVD-ROMから、プログラムが記憶部103にインストールされる。そして、プログラムの実行時に、記憶部103から読み出されたプログラムが記憶部103の主記憶領域に格納される。この状態で、制御部101は、記憶部103の主記憶領域に格納されたプログラムに従って、本実施の形態の攻撃検知装置3としての処理を実行する。
【0049】
なお、上記の説明においては、CD-ROMまたはDVD-ROMを記録媒体として、攻撃検知装置3における処理を記述したプログラムを提供しているが、これに限らず、コンピュータシステムの構成、提供するプログラムの容量などに応じて、たとえば、通信部105を経由してインターネットなどの伝送媒体により提供されたプログラムを用いることとしてもよい。
【0050】
図1に示した攻撃検知装置3のうち、解析部33、判定部35および通知情報生成部36は、
図8に示した記憶部103に記憶されたプログラムが
図8に示した制御部101により実行されることにより実現される。
図1に示したログ記憶部32およびリスト記憶部34は、
図8に示した記憶部103の一部である。
図1に示した通信部31は、
図8に示した通信部105により実現される。なお、攻撃検知装置3は複数のコンピュータシステムにより実現されてもよい。また、攻撃検知装置3は、クラウドシステムにより実現されてもよい。
【0051】
攻撃検知装置3における処理が記述された攻撃検知支援プログラムは、例えば、コンピュータシステムに、監視対象装置2から取得された正常なログを単語に分割し、正常なログにおける単語の記載順に、単語を上位層から順に階層に割当て、単語と、当該単語より正常なログにおいて上位の階層のそれぞれに対応する単語を識別する情報である上位層情報とを対応づけて無害リストとして記憶するステップ、を実行させる。さらに、攻撃検知支援プログラムは、監視対象装置2から取得されたログである監視対象ログを単語に分割し、監視対象ログにおける単語である監視対象単語の記載順に、監視対象単語を上位層から順に階層に割当て、階層ごとに監視対象単語を無害リストと照合し、監視対象単語が無害リストに合致しない場合に攻撃の可能性があると判定するステップ、を実行させる。
【0052】
また、表示装置4についても、同様に、
図8に例示したコンピュータシステムにより実現することができる。例えば、制御部41は、
図8に示した記憶部103に記憶されたプログラムが
図8に示した制御部101により実行されることにより実現される。
図1に示した表示部43は、
図8に示した表示部104により実現される。
図1に示した通信部42は、
図8に示した通信部105により実現される。なお、上述したように、表示装置4は、タブレット、スマートフォンなどであってもよく、この場合もハードウェア構成は
図8に示した例と同様である。
【0053】
以上のように、本実施の形態では、正常なログを単語に分割し、単語をログの記載順に階層化し、階層化した単語を上位の階層とのリンクを示す情報とともに無害リストとして保持し、監視対象のログを単語に分割して、無害リストと照合することにした。このため、メモリの使用量を抑制しつつ攻撃の誤検出を低減することができる。
【0054】
実施の形態2.
図9は、実施の形態2にかかる攻撃検知支援システムの構成例を示す図である。本実施の形態の攻撃検知支援システム1aは、実施の形態1の攻撃検知支援システム1に中継装置5が追加されている。実施の形態1と同様の機能を有する構成要素は実施の形態1と同一の符号を付して重複する説明を省略する。以下、実施の形態1と異なる点を主に説明する。
【0055】
本実施の形態では、中継装置5が、監視対象装置2からログを受信し、受信したログに定められた処理を施し、処理後のログを攻撃検知装置3へ送信する。中継装置5が行う定められた処理は、例えば、監視対象装置2の時刻情報などに誤りがある場合に当該誤りを補正する処理、ログ内におけるホスト名などを別の名称に変更して監視対象装置2へ入力したい場合にホスト名などを変更する処理などである。これらの補正、変更などの処理を攻撃検知装置3が行うこともできるが、攻撃検知装置3はログの監視のために負荷が高くなっている。これらの補正、変更などの処理を中継装置5が行うことで、攻撃検知装置3の負荷を上げることなく、攻撃検知装置3へ入力するログを分析に適した形式に変換することができる。
【0056】
なお、上述したように監視対象装置2は複数であってもよく、複数の監視対象装置2が中継装置5へログを送信し、中継装置5がこれらの監視対象装置2から受信したログに処理を施して攻撃検知装置3へ送信してもよい。また、中継装置5を複数設け、各々の中継装置5が複数の監視対象装置2から受信したログに処理を施して攻撃検知装置3へ送信してもよい。
【0057】
図9に示すように、中継装置5は、通信部51および変換部52を備える。通信部51は、監視対象装置2からログを受信し、受信したログを変換部52へ出力する。変換部52は、通信部51から受け取ったログに時刻の補正、ホスト名など定められた項目の修正などの処理を行い処理後のログを、通信部51を介して攻撃検知装置3へ送信する。以上述べた以外の本実施の形態の構成および動作は実施の形態1と同様である。
【0058】
本実施の形態の中継装置5も実施の形態1の攻撃検知装置3と同様にコンピュータシステムにより実現される。
【0059】
以上のように、本実施の形態では、中継装置5が、監視対象装置2からログを受信し、受信したログに処理を施し、処理後のログを攻撃検知装置3へ送信するようにした。これにより、攻撃検知装置3の負荷を上げることなく、攻撃検知装置3へ入力するログを分析に適した状態とすることができる。
【0060】
実施の形態3.
図10は、実施の形態3にかかる攻撃検知支援システムの構成例を示す図である。実施の形態1の攻撃検知支援システム1は、攻撃検知装置3を1台備えたが、本実施の形態の攻撃検知支援システム1bは、攻撃検知装置3を2台備える。
図10に示した攻撃検知装置3-1,3-2は、それぞれが実施の形態1の攻撃検知装置3である。実施の形態1と同様の機能を有する構成要素は実施の形態1と同一の符号を付して重複する説明を省略する。以下、実施の形態1と異なる点を主に説明する。
【0061】
本実施の形態では、攻撃検知装置3を2台備えることで攻撃検知装置3を冗長化している。冗長化のために攻撃検知装置3が2台設けられる場合、通常は、いずれか一方が運用に用いられ、他方は例えばスリープ状態などで待機し、運用中の攻撃検知装置3になんらかの異常などが生じた場合に、自動的に他方の攻撃検知装置3が処理を実行するように切り替わる。
図10に示した例では、攻撃検知装置3-1,3-2はログおよび無害リストを同期している。例えば、攻撃検知装置3-1,3-2は、それぞれの通信部31を介して通信を行うことで、一方の装置においてデータが更新された場合には他方の装置でもデータが更新される。
【0062】
本実施の形態では、上記のように冗長化のために、攻撃検知装置3が2台設けられている場合に、2台のうち一方は、解析部33による処理を行い判定部35による処理を行わず、他方は、判定部35による処理を行い解析部33による処理を行わない。例えば、運用中の攻撃検知装置3は、ログの収集、登録処理などを行い、他方の攻撃検知装置3は、判定部35によるログの攻撃検知処理を実施する。このように、待機中の攻撃検知装置3も一部の処理を分担することで、攻撃検知装置3の処理負荷を軽減することができ、処理の遅延などを抑制することができる。なお、2台の攻撃検知装置3のそれぞれが担う処理は上述した分担に限定されず、2台で処理が分担されればよい。
【0063】
なお、攻撃検知装置3を3台以上備え、3台以上の攻撃検知装置3で処理を分担するようにしてもよい。また、本実施の形態においても、実施の形態2で述べた中継装置5が用いられてもよい。例えば、中継装置5も冗長化されていてもよい。
【0064】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、実施の形態同士を組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【0065】
1,1a,1b 攻撃検知支援システム、2 監視対象装置、3,3-1,3-2 攻撃検知装置、4 表示装置、5 中継装置、21 処理部、22,31,42,51 通信部、23,32 ログ記憶部、33 解析部、34 リスト記憶部、35 判定部、36 通知情報生成部、41 制御部、43 表示部、52 変換部。