(58)【調査した分野】(Int.Cl.,DB名)
前記コンピュータシステムに含まれる複数のコンピュータと当該複数のコンピュータのそれぞれに対して実施されているセキュリティ対策を示す情報を記憶するインベントリデータベース
をさらに備え、
前記攻撃シナリオデータベースに記憶された攻撃シナリオでは、前記コンピュータシステムに対する複数の攻撃のそれぞれが対象とするコンピュータと当該複数の攻撃のそれぞれに対応するセキュリティ対策とが定義され、
前記攻撃判定部は、前記インベントリデータベースに記憶された情報を参照して、前記攻撃シナリオデータベースに記憶された攻撃シナリオで定義されている、前記関連攻撃抽出部により抽出された攻撃に対応するセキュリティ対策が、当該攻撃シナリオで定義されている、当該攻撃が対象とするコンピュータに対して実施されているかどうかを判定し、実施されていないと判定した場合に、前記ログデータベースに記憶されたログを分析することを特徴とする請求項1又は2のログ分析装置。
前記攻撃判定部は、前記ログデータベースに記憶されたログを分析する際に、前記攻撃シナリオデータベースに記憶された攻撃シナリオで定義されている複数の攻撃のうち、前記検知装置により既に検知されており、当該攻撃シナリオで定義されている順番が前記関連攻撃抽出部により抽出された攻撃の1つ前の攻撃を特定し、特定した攻撃を前記コンピュータシステムが受けた時刻より後の期間を対象に当該ログを分析することを特徴とする請求項1から4のいずれかのログ分析装置。
前記攻撃判定部は、前記ログデータベースに記憶されたログのうち、少なくとも前記コンピュータシステムに含まれる少なくとも1つのコンピュータのログを分析して、前記コンピュータシステムが前記関連攻撃抽出部により抽出された攻撃を受けていたかどうかを判定することを特徴とする請求項1から6のいずれかのログ分析装置。
前記攻撃判定部は、攻撃の検知漏れが発生したと判断した場合、前記攻撃シナリオデータベースに記憶された攻撃シナリオで設定されている点数と前記閾値との少なくともいずれかを調整することを特徴とする請求項8のログ分析装置。
前記攻撃判定部は、前記攻撃シナリオデータベースに記憶された攻撃シナリオが実行されたと判定した場合、当該攻撃シナリオで定義されている複数の攻撃のうち、前記検知装置により未だ検知されておらず、当該攻撃シナリオで定義されている順番が前記検知装置により最後に検知された攻撃よりも後の攻撃を抽出し、前記コンピュータシステムに対し、抽出した攻撃の経路となる通信を制限することを特徴とする請求項8又は9のログ分析装置。
前記攻撃判定部は、前記攻撃シナリオデータベースに記憶された攻撃シナリオで定義されている複数の攻撃のうち、前記検知装置により未だ検知されておらず、当該攻撃シナリオで定義されている順番が前記検知装置により最後に検知された攻撃の1つ後の攻撃を抽出し、抽出した攻撃が前記検知装置により検知されない期間が閾値を超えた場合、当該攻撃シナリオが実行されなかったと判断することを特徴とする請求項1から7のいずれかのログ分析装置。
攻撃を検知する検知装置が備えられたコンピュータシステムのログを記憶するログデータベースと、前記コンピュータシステムを対象とする複数の攻撃と当該複数の攻撃の順番とを定義する攻撃シナリオを記憶する攻撃シナリオデータベースとを利用するログ分析方法であって、
関連攻撃抽出部が、前記攻撃シナリオデータベースに記憶された攻撃シナリオで定義されている複数の攻撃のうち、前記検知装置により未だ検知されておらず、当該攻撃シナリオで定義されている順番が前記検知装置により既に検知されている少なくとも1つの攻撃よりも前の攻撃を抽出し、
攻撃判定部が、前記ログデータベースに記憶されたログを分析して、前記コンピュータシステムが前記関連攻撃抽出部により抽出された攻撃を受けていたかどうかを判定し、受けていたと判定した場合に、攻撃の検知漏れが発生したと判断することを特徴とするログ分析方法。
攻撃を検知する検知装置が備えられたコンピュータシステムのログを記憶するログデータベースと、前記コンピュータシステムを対象とする複数の攻撃と当該複数の攻撃の順番とを定義する攻撃シナリオを記憶する攻撃シナリオデータベースとを備えるコンピュータに、
前記攻撃シナリオデータベースに記憶された攻撃シナリオで定義されている複数の攻撃のうち、前記検知装置により未だ検知されておらず、当該攻撃シナリオで定義されている順番が前記検知装置により既に検知されている少なくとも1つの攻撃よりも前の攻撃を抽出する関連攻撃抽出処理と、
前記ログデータベースに記憶されたログを分析して、前記コンピュータシステムが前記関連攻撃抽出処理により抽出された攻撃を受けていたかどうかを判定し、受けていたと判定した場合に、攻撃の検知漏れが発生したと判断する攻撃判定処理と
を実行させることを特徴とするログ分析プログラム。
【発明を実施するための形態】
【0017】
以下、本発明の実施の形態について、図を用いて説明する。
【0018】
実施の形態1.
図1は、本実施の形態に係るセキュリティログ分析装置100の構成を示すブロック図である。
【0019】
図1において、セキュリティログ分析装置100は、ログ分析装置の一例であり、入力部101、解釈部102、攻撃シナリオ検索部103、関連攻撃抽出部104、セキュリティ対策検索部105、インベントリ検索部106、攻撃判定部107、ログ検索部108、出力部109を備える。また、セキュリティログ分析装置100は、攻撃シナリオデータベース111(攻撃シナリオDB)、セキュリティ対策データベース112(セキュリティ対策DB)、インベントリデータベース113(インベントリDB)、ログデータベース114(ログDB)を備える。
【0020】
以下では、
図1を用いて、セキュリティログ分析装置100の動作(本実施の形態に係るログ分析方法、本実施の形態に係るログ分析プログラムの処理手順)の概要について説明する。
【0021】
入力部101は、検知結果301を入力し、検知データ201を出力する。
【0022】
解釈部102は、検知データ201を入力し、検知情報202とインベントリ検索情報208を出力する。
【0023】
攻撃シナリオ検索部103は、検知情報202とシナリオ抽出条件302を入力し、攻撃識別情報203を出力して攻撃シナリオデータベース111を検索する。攻撃シナリオ検索部103は、検索結果である攻撃シナリオ204を入力する。また、攻撃シナリオ検索部103は、入力した攻撃シナリオ204を関連攻撃抽出部104と攻撃判定部107へ出力する。
【0024】
攻撃シナリオデータベース111は、サイバー攻撃を実行する複数の攻撃のシーケンスを攻撃シナリオ204として保存する。攻撃シナリオ204は、監視対象のシステムに対して発生すると予測される複数の攻撃の各々を識別する複数の識別子を含むシナリオ情報である。
【0025】
関連攻撃抽出部104は、関連攻撃抽出条件303を入力し、関連攻撃情報205をセキュリティ対策検索部105と、インベントリ検索部106と、攻撃判定部107へ出力する。
【0026】
セキュリティ対策検索部105は、関連攻撃情報205を入力し、関連攻撃検索情報206を用いて、セキュリティ対策データベース112を検索する。そして、セキュリティ対策検索部105は、その検索結果である対策有無情報207を入力する。セキュリティ対策検索部105は、対策有無情報207を攻撃判定部107へ出力する。
【0027】
セキュリティ対策データベース112は、侵入検知/防御装置等による攻撃への対策実施に関わる情報を保存する。
【0028】
インベントリ検索部106は、インベントリ検索情報208と関連攻撃情報205を入力し、インベントリ検索情報208を用いてインベントリデータベース113を検索する。インベントリ検索部106は、その検索結果であるインベントリ情報209を入力する。
【0029】
インベントリデータベース113は、PC(パーソナルコンピュータ)やサーバ等の資産ID(識別子)、IP(Internet・Protocol)アドレス、使用OS(Operating・System)やアプリケーション、パッチ適用状況等の情報を保存する。
【0030】
攻撃判定部107は、インベントリ情報209と、関連攻撃情報205と、攻撃シナリオ204と、検知情報202と、対策有無情報207と、既検知結果304を入力し、ログ検索情報213をログ検索部108に出力する。また、攻撃判定部107は、ログ検索部108がログデータベース114を検索した結果である検索結果215を入力し、サイバー攻撃の発生を判定し、判定結果216を出力部109へ出力する。
【0031】
ログデータベース114は、検索命令214を入力し、検索結果215を出力する。
【0032】
出力部109は、判定結果216をセキュリティログ分析装置100の外部へ判定結果310として出力する。
【0033】
以下では、
図1〜10を用いて、セキュリティログ分析装置100の動作の詳細について説明する。
【0034】
入力部101は、検知結果301を入力する。
【0035】
図2は、検知結果301の構成の一例を示す図である。
【0036】
図2に示すように、検知結果301は、以下の内容がフォーマット化された情報である。
(a)日時:攻撃が発生した日時である。
(b)攻撃ID:攻撃を識別する情報である。
(c)攻撃種別:攻撃の種別(例えば、DoS(Denial・of・Service)攻撃、権限昇格等)である。
(d)脆弱性ID:攻撃がソフトウェア等の脆弱性を悪用することで成り立つ場合、その識別情報(例えば、CVE番号(脆弱性識別番号))である。
(e)攻撃元情報:ソースIP/ポート、資産ID等、攻撃元に関する情報である。
(f)攻撃先情報:デスティネーションIP/ポート、資産ID等、攻撃先に関する情報である。
【0037】
このような情報は、例えば、IPS(Intrusion・Prevention・System)等のセキュリティ機器による攻撃の検知結果として通知される。
【0038】
セキュリティログ分析装置100は、検知結果301を、例えば、UDP(User・Datagram・Protocol)やTCP(Transmission・Control・Protocol)パケットとして入力する。検知結果301は、パケットのボディ部に
図2に示したような情報を格納する形でフォーマット化される。検知結果301は、セキュリティ機器のログファイルに記録されたログのエントリでもよい。また、検知結果301は、端末(以下では、「計算機」又は「コンピュータ」ということがある)の監査ログでもよい。その場合は、日時、端末ID、イベントIDで構成され、イベントIDで端末上の異常な行動(認証失敗)等が表される。検知結果301は、ログを分析する装置等においてプロキシログから通信の異常を分析し、その結果をログエントリにしたり、パケットで通知したりしたものでもよい。
【0039】
入力部101は、(
図2に示したような情報がフォーマット化されたデータである)検知結果301から、検知結果301がパケットの場合は、そのボディ部である検知データ201を、ログエントリの場合は、そのエントリである検知データ201を取り出し、解釈部102へ出力する。即ち、検知データ201とは、検知結果301のことである。
【0040】
解釈部102は、検知結果301である検知データ201を入力する。解釈部102は、入力した検知データ201を、日時、攻撃ID、攻撃種別、脆弱性ID、攻撃元情報、攻撃先情報等の構成要素に分解する(解釈する)。解釈部102は、この結果を、検知情報202とし、攻撃シナリオ検索部103へ出力する。検知情報202の内容は、検知結果301の内容と同じである。
【0041】
攻撃シナリオ検索部103は、検知情報202から、攻撃ID、攻撃種別、脆弱性IDを抽出し、攻撃識別情報203として、攻撃シナリオデータベース111に出力する。このとき、攻撃シナリオ検索部103は、シナリオ抽出条件302を入力する。シナリオ抽出条件302とは、攻撃シナリオデータベース111から検索する攻撃シナリオ204の数を指定する条件である。シナリオ抽出条件302としては、例えば、1つ、複数、或いは指定された数を条件とする。ここでは、シナリオ抽出条件302は、攻撃シナリオデータベース111から検索する攻撃シナリオ204の数を「1つ」として指定するものとする。
【0042】
攻撃シナリオデータベース111では、攻撃識別情報203に基づいて、攻撃ID、若しくは攻撃種別、若しくは脆弱性IDが含まれる攻撃シナリオ204を検索する。
【0043】
図3は、攻撃シナリオ204の構成の一例を示す図である。
【0044】
図3に示すように、攻撃シナリオ204は、複数の攻撃シナリオ要素Aiのシーケンスであり、例えば、「攻撃シナリオ要素A1→攻撃シナリオ要素A2→攻撃シナリオ要素A3→攻撃シナリオ要素A4→攻撃シナリオ要素A5」(i=1,2,3,4,5の場合)といった形で構成される。
【0045】
攻撃シナリオ要素Ai(i=1,2,3,4,5)は、1つ1つの攻撃の情報である。それぞれの攻撃シナリオ要素Ai(i=1,2,3,4,5)は、攻撃識別情報401、攻撃情報402、対策識別情報403、対策情報404から構成される。
【0046】
図3に示すように、攻撃識別情報401、攻撃情報402、対策識別情報403、対策情報404は、以下の情報である。
(a)攻撃識別情報401:攻撃ID、攻撃種別、脆弱性IDを含む。
(b)攻撃情報402:影響を受ける製品(製品ID、バージョン情報、パッチID)、必要とする実行権限、キーワード、その他の情報を含む。
(c)対策識別情報403:対策IDを含む。
(d)対策情報404:パッチID、回避策ID、回避策内容、その他の情報を含む。
【0047】
ここで、攻撃情報402のキーワードとは、攻撃発生において起こり得る事象を示すもので、例えば、OSの設定の書き換えが発生するのであれば、キーワードは、「OS、configuration、modify」である。
【0048】
図3に示す攻撃シナリオ204は、攻撃シナリオ要素A1が最初に発生し、次に攻撃シナリオ要素A2が発生し、次に攻撃シナリオ要素A3が発生し、次に攻撃シナリオ要素A4が発生し、次に攻撃シナリオ要素A5が発生するというシナリオを示している。
【0049】
過去の事例に基づき、上記のような攻撃シナリオ204が作成され、攻撃シナリオデータベース111に保存される。なお、攻撃シナリオ204を構成する攻撃シナリオ要素Aiは1つ以上であり、2つでも、3つでも、それ以上でも構わない。
【0050】
攻撃シナリオ検索部103は、攻撃識別情報203を用いて、攻撃シナリオデータベース111を検索する。攻撃シナリオ検索部103は、例えば、攻撃識別情報203の構成要素である攻撃IDが攻撃シナリオ要素Aiの攻撃識別情報401に含まれる攻撃シナリオ204を検索する。
【0051】
攻撃シナリオ検索部103は、攻撃IDで検索結果を得ることができなければ、脆弱性IDや攻撃種別で検索する。攻撃シナリオ検索部103は、上記のようにして検索された結果を、攻撃シナリオ204として、攻撃シナリオデータベース111から抽出する。
【0052】
以上のように、セキュリティログ分析装置100は、検知結果301により通知された攻撃が含まれる攻撃シナリオ204を、攻撃シナリオデータベース111から抽出する。
【0053】
攻撃シナリオ検索部103は、攻撃シナリオデータベース111から入力された攻撃シナリオ204を関連攻撃抽出部104へ出力する。
【0054】
関連攻撃抽出部104は、攻撃シナリオ204を入力し、攻撃シナリオ204を分析する。関連攻撃抽出部104は、通知された攻撃シナリオ204に含まれる攻撃に関連する情報を抽出する。
【0055】
このとき、関連攻撃抽出部104は、関連攻撃抽出条件303を入力する。関連攻撃抽出条件303とは、通知された攻撃以降に発生する攻撃の数としてn個(1〜all)を、又は、通知された攻撃以前に発生する攻撃の数としてm個(1〜all)を指定する条件である。
【0056】
例えば、関連攻撃抽出条件303が、通知された攻撃以降に発生する攻撃の数として「1個」を指定するものである場合、通知された攻撃の次に起こる攻撃の情報のみを抽出する。「all」と指定された場合は、通知された攻撃の後に起こる全ての攻撃に関しての情報を抽出する。また、例えば、関連攻撃抽出条件303が、通知された攻撃以前に発生する攻撃の数として「1個」を指定するものである場合、通知された攻撃の前に起こる攻撃の情報のみを抽出する。「all」と指定された場合は、通知された攻撃の前に起こる全ての攻撃に関しての情報を抽出する。或いはこれらの組合せでもよい。或いは、攻撃シナリオ204の全ての情報を抽出してもよい(full)。関連攻撃抽出部104により抽出される攻撃は、通知された攻撃の前後の時期において発生すると予測される分析対象攻撃の一例である。
【0057】
ここでは、関連攻撃抽出条件303は、攻撃シナリオ204について「全ての情報を抽出する:full」と指定されたものとする。
【0058】
例えば、検知情報202に含まれる攻撃IDが攻撃シナリオ要素A4の攻撃IDであるとする。攻撃シナリオ検索部103は、
図3に示す攻撃シナリオ204を攻撃シナリオデータベース111から抽出する。そして、関連攻撃抽出部104は、関連攻撃抽出条件303「全ての情報を抽出する:full」を入力し、攻撃シナリオ204から「攻撃シナリオ要素A1→攻撃シナリオ要素A2→攻撃シナリオ要素A3→攻撃シナリオ要素A4→攻撃シナリオ要素A5」を抽出する。このように、関連攻撃抽出部104は、関連攻撃情報205を抽出する。
【0059】
次に、関連攻撃抽出部104は、関連攻撃情報205をセキュリティ対策検索部105に出力する。セキュリティ対策検索部105は、入力した関連攻撃情報205を用いて、セキュリティ対策データベース112を検索する。具体的には、セキュリティ対策検索部105は、入力した関連攻撃情報205に含まれる「攻撃シナリオ要素A1、攻撃シナリオ要素A2、攻撃シナリオ要素A3、攻撃シナリオ要素A4、攻撃シナリオ要素A5」を用いて、セキュリティ対策データベース112を検索する。
【0060】
図4は、セキュリティ対策データベース112に格納されるセキュリティ対策情報500の構成の一例を示す図である。
【0061】
図4に示すように、セキュリティ対策情報500は、攻撃識別情報501、攻撃情報502、対策識別情報503、対策情報504、対策実施情報505から構成される。攻撃識別情報501、攻撃情報502、対策識別情報503、対策情報504、対策実施情報505は、以下の情報である。
(a)攻撃識別情報501:攻撃ID、攻撃種別、脆弱性IDを含む。
(b)攻撃情報502:影響を受ける製品(製品ID、バージョン情報、パッチID)、必要とする実行権限、キーワード、その他の情報を含む。
(c)対策識別情報503:対策IDを含む。
(d)対策情報504:シグネチャID(IPSのシグネチャ等)、ウイルスパタンファイルID、パッチID、回避策ID、回避策内容、その他の情報を含む。
(e)対策実施情報505:対策実施の有無(現在、IPS等で対策を実施しているか否か)を示す情報を含む。
【0062】
セキュリティ対策検索部105は、入力した関連攻撃情報205を用いて、セキュリティ対策データベース112から対応するセキュリティ対策情報500を抽出する。具体的には、セキュリティ対策検索部105は、入力した関連攻撃情報205に含まれる「攻撃シナリオ要素A1、攻撃シナリオ要素A2、攻撃シナリオ要素A3、攻撃シナリオ要素A4、攻撃シナリオ要素A5」を構成する各々の攻撃識別情報401(つまり、攻撃シナリオ要素A1の攻撃識別情報401、攻撃シナリオ要素A2の攻撃識別情報401、攻撃シナリオ要素A3の攻撃識別情報401、攻撃シナリオ要素A4の攻撃識別情報401、攻撃シナリオ要素A5の攻撃識別情報401)に含まれる攻撃ID或いは脆弱性ID或いは攻撃種別を含むセキュリティ対策情報500のエントリをセキュリティ対策データベース112から抽出する。セキュリティ対策データベース112に保存されているセキュリティ対策情報500には、攻撃識別情報501が含まれているが、この中に、攻撃ID、攻撃種別、脆弱性IDが含まれており、上記の各攻撃シナリオ要素Aiの攻撃識別情報401に含まれる攻撃ID、若しくは攻撃種別、若しくは脆弱性IDが、攻撃識別情報501に含まれるエントリを抽出すればよい。
【0063】
セキュリティ対策検索部105は、前述のように抽出したセキュリティ対策情報500と攻撃識別情報401を対にして、対策有無情報207を生成する。対策有無情報207には、攻撃シナリオ要素A1の攻撃識別情報401とセキュリティ対策情報500、攻撃シナリオ要素A2の攻撃識別情報401とセキュリティ対策情報500、攻撃シナリオ要素A3の攻撃識別情報401とセキュリティ対策情報500、攻撃シナリオ要素A4の攻撃識別情報401とセキュリティ対策情報500、攻撃シナリオ要素A5の攻撃識別情報401とセキュリティ対策情報500が含まれる。ここで、攻撃シナリオ要素Aiのセキュリティ対策情報500とは、攻撃識別情報501が攻撃シナリオ要素Aiの攻撃識別情報401と一致するセキュリティ対策情報500のことである。セキュリティ対策検索部105は、セキュリティ対策データベース112から抽出した対策有無情報207を攻撃判定部107へ出力する。
【0064】
インベントリ検索部106は、解釈部102からインベントリ検索情報208を入力する。また、関連攻撃抽出部104から関連攻撃情報205を入力する。インベントリ検索情報208は、検知情報202(
図2の検知結果301に相当)の一部の情報であり、攻撃先情報が該当する(攻撃種別によっては、攻撃元情報が該当する場合もある)。攻撃先情報は、デスティネーションIP/ポート、資産ID等、攻撃先に関する情報である。この情報には複数の攻撃先(又は複数の攻撃元)の情報が含まれることがある(例えば、複数の端末への攻撃や、ネットワークへの攻撃等)。
【0065】
インベントリ検索部106は、この攻撃先情報のうち、デスティネーションIP(或いはMAC(Media・Access・Control))、資産ID等、資産を特定できる情報を、検索用のインベントリ検索情報208とする。インベントリ検索部106は、同様に、入力された関連攻撃情報205において、資産を特定できる情報を、検索用のインベントリ検索情報208とする。インベントリ検索情報208は、複数の資産を特定できる情報となる場合がある(例えば、複数の端末への攻撃や、ネットワークへの攻撃等)。インベントリ検索部106は、検索用のインベントリ検索情報208をインベントリデータベース113に出力する。インベントリ検索部106は、インベントリ検索情報208(インベントリ(資産)を特定できる情報)を用いて、インベントリデータベース113を検索する。
【0066】
インベントリ検索部106は、インベントリ検索情報208にマッチするエントリをインベントリデータベース113からインベントリ情報209として抽出する。
【0067】
図5は、インベントリデータベース113で管理するインベントリ情報209の構成の一例を示す図である。
【0068】
図5に示すように、インベントリ情報209は、資産識別情報601、資産OS情報602、資産アプリケーション情報603、資産実行情報604、資産セキュリティ施策情報605から構成される。インベントリ情報209を構成する、資産識別情報601、資産OS情報602、資産アプリケーション情報603、資産実行情報604、資産セキュリティ施策情報605は、例えば、以下の情報である。
(a)資産識別情報601:資産ID、IPアドレス、MACアドレス、ユーザIDを含む。
(b)資産OS情報602:OS(製品ID、バージョン情報)、適用パッチ(パッチID)/適用回避策(回避策ID)に関する情報を含む。
(c)資産アプリケーション情報603:アプリケーション(製品ID、バージョン情報)、適用パッチ(パッチID)/適用回避策(回避策ID)に関する情報を含む。
(d)資産実行情報604:実行権限を示す情報を含む。
(e)資産セキュリティ施策情報605:セキュリティ施策(セキュリティ設定、ソフトウェア等)に関する情報を含む。
【0069】
インベントリデータベース113は、インベントリ検索情報208(攻撃先情報)のデスティネーションIP(或いはMAC)/資産IDが、資産識別情報601にマッチするエントリを、自身に保存しているエントリから検索し、インベントリ情報209としてインベントリ検索部106へ出力する。なお、攻撃種別によっては、インベントリ検索情報208が攻撃元情報(ソースIP(或いはMAC)/資産ID)になる場合がある。
【0070】
インベントリ検索部106は、インベントリデータベース113から入力したインベントリ情報209を攻撃判定部107へ出力する。
【0071】
攻撃判定部107は、インベントリ情報209、関連攻撃情報205、攻撃シナリオ204、検知情報202、対策有無情報207、後に述べる既検知結果304を入力し、ログ検索情報213を出力する。攻撃判定部107は、攻撃判定処理を実行することにより、ログ検索情報213を出力する。
【0072】
図6は、攻撃判定部107の攻撃判定処理を示すフローチャートである。
【0073】
図6のS11において、攻撃判定部107は、関連攻撃情報205に該当する攻撃の痕跡をログデータベース114から検索する。そのために、関連攻撃情報205からログデータベース114を検索するための情報であるログ検索情報213を生成し、ログ検索部108へ出力する。ログ検索部108は入力されたログ検索情報213から検索命令214を生成し、ログデータベース114へ出力する。その結果、ログデータベース114は、検索結果215をログ検索部108へ返す。ログ検索部108は、攻撃判定部107へ検索結果215を出力する。
【0074】
図6のS12において、攻撃判定部107は、検知情報202で通知された攻撃と、既に検知された攻撃を示す既検知結果304をタイムスタンプ(攻撃の発生に該当する日時)順にソートする。ここでは、既検知結果304の構成は、
図2に示した検知結果301の構成と同じとする。
【0075】
ここで、ある攻撃A1,A2の情報が既検知結果304として攻撃判定部107に与えられたとする。そして、攻撃A4が検知結果301として入力部101に与えられたとする。この状況において、攻撃判定部107が、上記のようにソートした結果を以下とする。古いものから(左)、新しいもの(右)の順に並べて示す。
(1)攻撃A1(既検知結果304より)、攻撃A2(既検知結果304より)、攻撃A4(検知情報202より)
【0076】
図6のS13において、攻撃判定部107は、攻撃シナリオ204を参照し、現在、既に検知した攻撃と照らし合わせて、検知が漏れた攻撃があるかを確認する。
【0077】
図7は、
図6のS13の処理を示すフローチャートである。
【0078】
図7のS21において、攻撃判定部107は、攻撃シナリオ204の順番に攻撃が発生しているか調べる。攻撃シナリオ204が以下であったとする。
(2)攻撃A1→攻撃A2→攻撃A3→攻撃A4→攻撃A5
【0079】
そうすると、(1)に示された攻撃と比較して、攻撃シナリオ204に沿った場合、攻撃A3の検知がないまま、攻撃A4が検知されていることが分かる。したがって、攻撃判定部107は、「NO」と判定し、
図7のS22へ進む。「YES」の場合は、
図7の処理を終了する。
【0080】
図7のS22において、攻撃判定部107は、既に検知すべき攻撃で未だ検知していない攻撃Akの情報を参照する。この場合、AkはA3である(k=3)。攻撃A3の情報としては、攻撃シナリオ204の攻撃シナリオ要素Aiに含まれる情報を参照する。例えば、攻撃IDである。
【0081】
図7のS23において、攻撃発生フラグA3_occ、検知漏れ判定フラグA3_evaを0に設定する(
図7のS22でk=3としたため)。
【0082】
図7のS24において、攻撃判定部107は、攻撃A3について監視対象のシステムのセキュリティ対策手段が対応しているか調べる。ここでは、例えば、IPSをセキュリティ対策手段として運用しているものとする。よって、IPSで対応しているかを調べる。
図7のS22で攻撃A3に該当する攻撃IDを参照しているので、対策有無情報207において、この攻撃IDに該当するエントリがあるか調べる。対策有無情報207は、攻撃シナリオ要素A1の攻撃識別情報401とセキュリティ対策情報500、攻撃シナリオ要素A2の攻撃識別情報401とセキュリティ対策情報500、攻撃シナリオ要素A3の攻撃識別情報401とセキュリティ対策情報500、攻撃シナリオ要素A4の攻撃識別情報401とセキュリティ対策情報500、攻撃シナリオ要素A5の攻撃識別情報401とセキュリティ対策情報500である。攻撃シナリオ要素A3の攻撃識別情報401には攻撃IDが含まれており、攻撃A3に該当する攻撃IDが含まれている。次に、攻撃判定部107は、対となるセキュリティ対策情報500を参照する。セキュリティ対策情報500を構成する対策実施情報505が対策を実施していることを示していれば、IPS等で攻撃A3への対策が実施されていることになるため、攻撃判定部107は、「YES」と判定し、
図7のS25へ進む。対策が実施されていなければ、「NO」と判定し、
図7のS26へ進む。ここで、対策実施情報505には、対策情報504に示されるシグネチャIDやパッチIDや回避策IDで示される対策が実施されているか否かが示されている。例えば、対策実施情報505は、「シグネチャID=1234、対策実施=実施済(若しくは、未実施)」、「パッチID=5678、対策実施=実施済(若しくは、未実施)」、「回避策ID=9999、対策実施=実施済(若しくは、未実施)」といった情報を含む。
【0083】
図7のS25において、攻撃判定部107は、A3_evaを1に設定し、
図7のS26へ進む。A3_eva=1は、IPS等で対策を実施しているにも関わらず、検知していない(即ち、検知漏れ)という意味である。
【0084】
図7のS26において、攻撃判定部107は、攻撃A3を受ける可能性のある計算機(端末)が存在するか調べる。そのためには、攻撃シナリオ204の攻撃シナリオ要素A3に含まれる情報と、インベントリ情報209を参照する。攻撃シナリオ要素A3の構成要素である攻撃情報402の、例えば、攻撃を受ける製品の情報が、インベントリ情報209において、資産OS情報602、及び資産アプリケーション情報603に該当するか調べる。該当する端末があれば、そのインベントリ情報209を参照する。該当する端末が複数あれば、複数の端末のインベントリ情報209を参照する。この場合、攻撃判定部107は、「YES」と判定し、
図7のS27に進む。該当するものがなければ攻撃判定部107は、「NO」と判定し、
図7のS32に進む。
【0085】
図7のS27において、攻撃判定部107は、攻撃A3を受ける可能性のある端末において回避策があるか調べる。攻撃シナリオ要素A3における対策情報404に回避策IDが含まれるか調べる。あれば、攻撃判定部107は、「YES」と判定し、
図7のS28に進む。なければ、攻撃判定部107は、「NO」と判定し、
図7のS29へ進む。
【0086】
図7のS28において、攻撃判定部107は、回避策を実施しているか調べる。例えば、攻撃シナリオ要素A3における対策情報404が、現在攻撃を受ける可能性がある計算機(端末)に対するインベントリ情報209における資産OS情報602、及び資産アプリケーション情報603における適用回避策に含まれているか否か調べる。含まれていれば、これらの端末において回避策が実施されていることになるので、攻撃判定部107は、「YES」と判定し、
図7のS32に進む。含まれていなければ、回避策が実施されていないことになるので、攻撃判定部107は、「NO」と判定し、
図7のS29へ進む。
【0087】
図7のS29において、攻撃判定部107は、ログ検索部108にログ検索処理を実行させることで、攻撃の痕跡を調査する。
【0088】
図8は、
図7のS29のログ検索処理の一例を示すフローチャートである。
【0089】
図8のS41において、ログ検索部108は、変数pに1を設定する。
【0090】
図8のS42において、ログ検索部108は、p≦nになっているか判定する。ここで、nは
図8のS43で呼び出すログ検索関数の数である。p≦nであれば、ログ検索部108は、「YES」と判定し、
図8のS43へ進む。p≦nでなければ、ログ検索部108は、「NO」と判定し、
図8の処理を終了する。
【0091】
図8のS43において、ログ検索部108は、ログ検索関数f_pを呼び出す。このとき、関数のパラメータとして検索期間を指定するが、任意の期間を指定してもよいし、攻撃A2の発生日時と攻撃A4の発生日時の間の期間を指定してもよい。
【0092】
図8のS44において、ログ検索部108は、ログ検索関数f_pで攻撃の痕跡をログから抽出した場合は、「YES」と判定し、
図8の処理を終了する。抽出しなかった場合は、「NO」と判定し、
図8のS45に進む。
【0093】
図8のS45において、ログ検索部108は、変数pに1を加え、
図8のS42に戻る。
【0094】
このように、ログ検索部108は、予め用意したログ検索関数f_pを呼び出すことで攻撃の痕跡がログに残っているか検索する。この例では、nをログ検索関数fの数としているため、n=5であれば、f_1、f_2、f_3、f_4、f_5を呼び出すことになるが、他の方法で、ログ検索関数fを呼び出してもよい。
【0095】
図9は、
図7のS29のログ検索処理の別の例を示すフローチャートである。
【0096】
図9のS51において、ログ検索部108は、q=1,3,5と指定し、変数pに1(qの最初の値)を指定する。
【0097】
図9のS52において、ログ検索部108は、pに全てのqを指定したか判定する。全てのqを指定していなければ、ログ検索部108は、「NO」と判定し、
図9のS53へ進む。全てのqを指定していれば、ログ検索部108は、「YES」と判定し、
図9の処理を終了する。
【0098】
図9のS53において、ログ検索部108は、
図8のS43と同様に、ログ検索関数f_pを呼び出す。
【0099】
図9のS54において、ログ検索部108は、
図8のS44と同様に、ログ検索関数f_pで攻撃の痕跡をログから抽出した場合は、「YES」と判定し、
図9の処理を終了する。抽出しなかった場合は、「NO」と判定し、
図9のS55に進む。
【0100】
図9のS55において、ログ検索部108は、変数pにqの次の値を指定し、
図9のS52に戻る。
【0101】
この例では、f_1、f_3、f_5を呼び出すことを予め決めているが、他の関数を呼び出すことを決めていてもよい。
【0102】
図7のS30において、攻撃判定部107は、
図7のS29の処理の結果、攻撃の痕跡がログから見つかっていれば、攻撃が発生した可能性があるとして(「YES」と判定して)、
図7のS31に進む。このとき、攻撃A3を識別する情報(攻撃ID等)、攻撃を受けた端末の情報(ログ検索関数fで検索したログエントリから得たIPアドレス等)、攻撃を発した計算機の情報(ログ検索関数fで検索したログエントリから得たIPアドレス等)、そして、攻撃の痕跡を見つけたログエントリの日時を検知日時として出力する。攻撃の痕跡がログから見つかっていなければ、「NO」と判定し、
図7のS32に進む。
【0103】
図7のS31において、攻撃判定部107は、A3_occを1に設定する。A3_occ=1は、ログの検索で攻撃が見つかったことを意味する。
【0104】
図7のS32において、攻撃判定部107は、A3_occとA3_evaの値から攻撃の発生について判断する。
【0105】
図10は、Ak_occとAk_evaの値の組み合わせに対応する判定結果216を示す表である。
【0106】
図10に示すように、攻撃判定部107は、No.1(Ak_occ=0、Ak_eva=0)の場合、攻撃AkにIPSでは対応していないのでIPSでは検知は発生せず、ログ分析でも攻撃Akの痕跡を検知していないので、攻撃Akは発生していないと判断する。
【0107】
攻撃判定部107は、No.2(Ak_occ=0、Ak_eva=1)の場合、攻撃AkにIPSで対応しているがIPSでは検知せず(もし攻撃Akを検知している場合は、
図7のS21において「YES」になり、
図7の処理を終わるため、
図7のS22には進まない)、ログ分析でも攻撃の痕跡を検知していないので、攻撃は発生していないと判断する。
【0108】
攻撃判定部107は、No.3(Ak_occ=1、Ak_eva=0)の場合、攻撃AkにIPSでは対応していないので検知は発生していないが、ログ分析で攻撃の痕跡を検知しているので、攻撃Akは発生したと判断する。
【0109】
攻撃判定部107は、No.4(Ak_occ=1、Ak_eva=1)の場合、攻撃AkにIPSで対応しているがIPSでは検知せず(もし攻撃Akを検知している場合は、
図7のS21において「YES」になり、
図7の処理を終わるため、
図7のS22には進まない)、ログ分析で攻撃の痕跡を検知しているので、攻撃は発生したと判断する。この場合は、本来IPSで検知すべき攻撃を検知漏れしており、ログ分析で検知漏れを回避したことになる。IPSでシグネチャ方式を採用している場合はシグネチャを回避するように攻撃が行われることがあり検知漏れが起こる。IPSで振る舞い検知を採用している場合は振る舞いの基準に満たない場合に検知漏れが起こる。
【0110】
以上の処理により、攻撃判定部107は、
図6のS13における結果として、
図10のNo.1、No.2、No.3、No.4のいずれかの判定結果216を出力部109へ出力する。このとき、攻撃判定部107は、No.3、No.4の場合は、攻撃A3を識別する情報(攻撃ID等)、攻撃を受けた端末の情報(ログ検索関数fで検索したログエントリから得たIPアドレス等)、攻撃を発した計算機の情報(ログ検索関数fで検索したログエントリから得たIPアドレス等)、そして、攻撃の痕跡を見つけたログエントリの日時を検知日時として判定結果216に含める。
【0111】
図7のS29(つまり、
図8又は
図9)の処理において、ログ検索関数fは、ログデータベース114からログを検索する命令であるログ検索情報213をログ検索部108へ出力する。ログ検索部108は、ログ検索情報213を検索命令214に変換し、ログデータベース114へ出力する。ログデータベース114は、ログを検索し、その結果を検索結果215としてログ検索部108へ出力する。ログ検索部108は、検索結果215を攻撃判定部107へ出力する。検索命令214は、ログデータベース114に対して発行されるが、例えば、SQLクエリが該当する。検索結果215は、例えば、SQLレスポンスが該当する。検索条件305は、ログを検索する期間等のパラメータである。
【0112】
出力部109は、セキュリティログ分析装置100の外部に、攻撃の判定結果216を判定結果310として出力する。例えば、判定結果310は、「攻撃情報=A3(攻撃ID=1234)」、「攻撃を受けた端末=192.168.1.10」、「攻撃を発した端末=192.168.1.50」、「検知日時=2013/9/20の12:00:00」、「検知状況=IPSで検知していない。シグネチャは対応しているのでIPSの検知漏れである。」といった情報を含む。なお、攻撃が、ある端末内の操作として検知された場合(例えば、設定を変更された等)は、攻撃を発した端末が攻撃を受けた端末と同一の場合がある。
【0113】
将来発生するであろう攻撃A5については、例えば、その後、10日後に検知結果301として通知されるかもしれない。或いは、検知結果301を待つのではなく、攻撃判定部107において、定期的にログ検索関数fを呼び出して、ログから攻撃の痕跡を検知することで攻撃A5を検知してもよい。そして、最後の攻撃A5を検知した段階で、攻撃シナリオに従ったサイバー攻撃が発生したことを、出力部109に出力し、出力部109は判定結果310としてセキュリティログ分析装置100の外部へ出力してもよい。このとき、攻撃判定部107では、処理を行っていた検知結果301(検知情報202の元の情報)、既検知結果304、攻撃シナリオ204のセットについて、攻撃シナリオに従ったサイバー攻撃が発生したと判定した日時と、「処理済」という印(フラグ)を付与する。攻撃A5を検知していない場合は、「処理中」という印(フラグ)のみを付与しておく。
【0114】
なお、上記の例では、既に検知した攻撃の情報を既検知結果304としてセキュリティログ分析装置100の外部から与えたが、セキュリティログ分析装置100が稼動し始めてから与えられた検知結果301(検知情報202)を攻撃判定部107が全て記憶していてもよく(既検知結果304として)、そのような運用の場合は、セキュリティログ分析装置100の外部から既検知結果304を与えなくてよい。もし与えた場合は、攻撃判定部107は、セキュリティログ分析装置100の外部から与えられた既検知結果304を破棄し、記憶している既検知結果304を用いてもよい。攻撃判定部107が記憶した検知結果301を(記憶した既検知結果304として)使用する場合の処理については、上記の説明において、既検知結果304を記憶した検知結果301に読み替えるものとする。また、攻撃判定部107が検知した判定結果216を既検知結果304として攻撃判定部107が全て記憶していてもよい。
【0115】
上記の例では、セキュリティ対策手段の例としてIPSを用いているが、他のセキュリティ対策手段、例えば、ファイアウォール、アンチウイルスソフトウェア、セキュリティサーバ等を用いても構わない。
【0116】
上記の例では、攻撃シナリオ204の1つの攻撃(攻撃A3)のみが発生していないが、攻撃シナリオ204の複数の攻撃が発見されていない場合は、攻撃A3の痕跡を見つけるための攻撃判定部107の処理を、発見されていない攻撃の各々に適用すればよい。例えば、攻撃シナリオ204が、「攻撃A1’→A2’→A3’→A4’→A5’→A6’→A7’」であり、セキュリティログ分析装置100に入力された検知結果301に基づき、この攻撃シナリオ204が抽出されたとする。現在検知している攻撃が、既検知結果304、検知結果301から、攻撃A1’、攻撃A4’、攻撃A5’、攻撃A6’であるとする。このとき、攻撃A2’と攻撃A3’の各々に対して、上記の例で攻撃A3に対して攻撃判定部107が行った処理と同様の処理を実施する。或いは、例えば、この攻撃シナリオ204において、現在検知している攻撃が、既検知結果304、検知結果301から、攻撃A2’、攻撃A3’、攻撃A5’であるとする。このとき、攻撃A1’と攻撃A4’の各々に対して、上記の例で攻撃A3に対して攻撃判定部107が行った処理と同様の処理を実施する。攻撃A1’のように、過去に遡って検索する場合は、予めその検索期間(例えば、m日とする)を攻撃判定部107に保持し、攻撃A2’の発生前のm日について遡り検索すればよい。
【0117】
上記の例では、攻撃シナリオ検索部103は、検知結果301に基づいた検知情報202に該当する攻撃を含む攻撃シナリオ204を検索した。ここで、仮に、「新しくセキュリティログ分析装置100で受け付けられた検知結果301の攻撃ID、攻撃種別、脆弱性ID等の攻撃を示す情報と、攻撃元情報・攻撃先情報」が同じ検知結果301又は既検知結果304が既にセキュリティログ分析装置100に保存されているとする。さらに、これらについて、攻撃判定部107で「処理中」の攻撃シナリオ204がある場合は、既にセキュリティログ分析装置100に通知され、攻撃シナリオ204に従った検知が処理されている攻撃が「繰り返し」発生していると判定して、無視してもよい。この判定は、攻撃判定部107において、入力された検知情報202(検知結果301を元とする情報)と、既検知結果304と、これらに対応する処理中の攻撃シナリオ204をセットで保存し、「処理中」のフラグを付与しておき、検知結果301が新たに与えられ、検知情報202として攻撃判定部107に入力された場合に、この保存された情報を用いて判定すればよい。
【0118】
なお、ログを検索する場合、ある特定の攻撃については特定のログに記録されることが予め分かっている場合は、攻撃シナリオ要素Aiの対策情報404の「その他情報」において、記録されるログの情報を含めてもよい。例えば、攻撃A2については、IPSログ、プロキシログを検索するという情報を、「LogToBeInspected=IPS,Proxy」、或いは、より具体的に、ログの記録される機器の識別番号を含めて「LogToBeInspected=IPS_1234,Proxy_5678」といった形で、対策情報404の「その他情報」に含めてもよい。攻撃判定部107は、この情報をパラメータとして検索関数fを呼び出す。
【0119】
また、ログを検索する場合、ある特定の攻撃についてはどの検索関数fを呼び出せばよいか予め分かっている場合は、攻撃シナリオ要素Aiの対策情報404の「その他情報」において、使用する関数の情報を含めてもよい。例えば、攻撃A2については、f1、f2を使用するという情報を、「UseFunction=f1,f2」といった形で、対策情報404の「その他情報」に含めてもよい。攻撃判定部107はこの情報に従い指定された関数を用いる。
【0120】
本実施の形態では、
図7のS26で「NO」、
図7のS28で「YES」の場合は、
図7のS29の処理を省略しているが、未検知の攻撃Akがある場合は、必ず
図7のS29の処理を実行してログを分析するようにしてもよい。
【0121】
以上説明したように、本実施の形態において、ログデータベース114は、攻撃を検知する検知装置(例えば、IPS)が備えられたコンピュータシステム(即ち、監視対象のコンピュータシステム)のログを記憶する。攻撃シナリオデータベース111は、上記コンピュータシステムを対象とする複数の攻撃と当該複数の攻撃の順番とを定義する攻撃シナリオ204を記憶する。関連攻撃抽出部104は、攻撃シナリオデータベース111に記憶された攻撃シナリオ204で定義されている複数の攻撃(例えば、攻撃A1〜A5)のうち、上記検知装置により未だ検知されておらず、当該攻撃シナリオ204で定義されている順番が上記検知装置により既に検知されている少なくとも1つの攻撃(例えば、攻撃A4)よりも前の攻撃(例えば、攻撃A3)を抽出する。攻撃判定部107は、ログデータベース114に記憶されたログを分析して、上記コンピュータシステムが関連攻撃抽出部104により抽出された攻撃を受けていたかどうかを判定し、受けていたと判定した場合に、攻撃の検知漏れが発生したと判断する。このため、本実施の形態によれば、例えば、IPSで攻撃の検知漏れが発生しても、攻撃シナリオ204に沿ってログを分析することで、その攻撃を検知することができるため、結果的に検知漏れを減らすことが可能となる。
【0122】
また、本実施の形態において、セキュリティ対策データベース112は、上記検知装置に対して実施されているセキュリティ対策を示す情報を記憶する。攻撃シナリオデータベース111に記憶された攻撃シナリオ204では、上記コンピュータシステムに対する複数の攻撃のそれぞれに対応するセキュリティ対策が定義される。攻撃判定部107は、セキュリティ対策データベース112に記憶された情報を参照して、攻撃シナリオデータベース111に記憶された攻撃シナリオ204で定義されている、関連攻撃抽出部104により抽出された攻撃に対応するセキュリティ対策が上記検知装置に対して実施されているかどうかを判定し、実施されていると判定した場合に、上記コンピュータシステムが関連攻撃抽出部104により抽出された攻撃を受けていたと判定した場合、上記検知装置における攻撃の検知漏れが発生したと判断する。このため、本実施の形態によれば、例えば、攻撃の検知漏れが発生した場合に、それがIPSで発生したものかどうかを判断することが可能となる。
【0123】
また、本実施の形態において、インベントリデータベース113は、上記コンピュータシステムに含まれる複数のコンピュータと当該複数のコンピュータのそれぞれに対して実施されているセキュリティ対策を示す情報を記憶する。攻撃シナリオデータベース111に記憶された攻撃シナリオ204では、上記コンピュータシステムに対する複数の攻撃のそれぞれが対象とするコンピュータと当該複数の攻撃のそれぞれに対応するセキュリティ対策とが定義される。攻撃判定部107は、インベントリデータベース113に記憶された情報を参照して、攻撃シナリオデータベース111に記憶された攻撃シナリオ204で定義されている、関連攻撃抽出部104により抽出された攻撃に対応するセキュリティ対策が、当該攻撃シナリオ204で定義されている、当該攻撃が対象とするコンピュータに対して実施されているかどうかを判定し、実施されていないと判定した場合に、ログデータベース114に記憶されたログを分析する。このため、本実施の形態によれば、例えば、攻撃を受ける可能性がない(又は低い)場合、攻撃の検知漏れが発生していないか確認するためにログを分析する処理を省略することで、効率性を向上させることができる。
【0124】
また、本実施の形態において、攻撃判定部107は、ログデータベース114に記憶されたログを分析する際に、攻撃シナリオデータベース111に記憶された攻撃シナリオ204で定義されている複数の攻撃のうち、上記検知装置により既に検知されており、当該攻撃シナリオ204で定義されている順番が関連攻撃抽出部104により抽出された攻撃(例えば、攻撃A3)の1つ前の攻撃(例えば、攻撃A2)を特定し、特定した攻撃を上記コンピュータシステムが受けた時刻より後の期間を対象に当該ログを分析する。このため、本実施の形態によれば、ログで分析対象とする範囲を限定できるため、効率性を向上させることができる。
【0125】
本実施の形態では、セキュリティログ分析装置100は、攻撃シナリオ204と既に検知した攻撃の情報に基づき、本来発生している可能性があるが検知されていない攻撃について、ログ分析で攻撃の発生の有無を調べ、さらに既存のセキュリティ対策による検知漏れも判定できる。セキュリティ対策を行う組織の管理者は、この判定を用いることで、本来発生している可能性があるが検知されていない攻撃について、本当に発生していないかどうか判定でき、さらに、発生していた場合は、既存のセキュリティ対策の不備について情報を得ることができ、既存のセキュリティ対策を見直すことが可能となる。
【0126】
実施の形態2.
本実施の形態について、主に実施の形態1との差異を説明する。
【0127】
実施の形態1では、セキュリティログ分析装置100は、セキュリティ対策データベース112に格納している「現在適用しているセキュリティ対策手段(実施の形態1では一例としてIPS)の情報」を参照した。そして、攻撃シナリオ204に従えば既に発生しているはずだが未だ検知していない攻撃(実施の形態1では一例として攻撃A3)について「現在適用しているセキュリティ対策」で「検知しているべき」か判定した(
図7)。
【0128】
本実施の形態では、既に世の中に公開されている脆弱性や攻撃情報について、セキュリティ対策の機器(IPS等)やソフトウェアが対応しているか(検知できるか)を攻撃判定部107で調べ、既に発生しているはずの攻撃についてセキュリティ対策の機器での対応の可否について判定し、ログ分析をより詳細に実施する。
【0129】
図11は、本実施の形態に係るセキュリティログ分析装置100の構成を示すブロック図である。
【0130】
図11において、攻撃判定部107は、セキュリティログ分析装置100の外部から、公開脆弱性情報321や攻撃情報322を入力する。
【0131】
公開脆弱性情報321は、NIST(米国の国立標準技術研究所)のNVD(National・Vulnerablity・Database)等で公開されている、ソフトウェアの脆弱性情報である。この脆弱性情報には、一般的に、脆弱性の識別番号が付与される。例えば、CVE(Common・Vulnerabilities・and・Exposures)番号である。公開脆弱性情報321は、1種類以上の脆弱性情報(エントリ)で構成される。
【0132】
攻撃情報322は、「公開脆弱性情報321を悪用した攻撃で既に被害が報告されている攻撃」や、「未だ被害が報告されていないが、公開脆弱性情報321を悪用した攻撃として今後発生が予想される攻撃」の情報である。攻撃情報322は、攻撃IDで識別される1種類以上の情報(エントリ)で構成される。また、攻撃情報322においては、攻撃に悪用される脆弱性を識別するため、一般的に、脆弱性の識別番号(例えば、CVE番号)が付与される。攻撃情報322は、セキュリティ情報を公開するサービス等から提供される。
【0133】
また、攻撃判定部107は、(図示していないが)セキュリティ対策ベンダ(セキュリティ対策の機器(IPS等)やソフトウェアのベンダ)における攻撃への対応の情報である、攻撃対応情報323を入力する。
【0134】
攻撃対応情報323は、IPSのシグネチャや、アンチウイルスソフトウェアのパターンファイル情報等、攻撃への対応(検知/防御)の情報である。攻撃対応情報323は、対応(検知/防御)する攻撃が悪用する公開脆弱性情報321の識別子(例えば、CVE番号)を含む。また、対象の攻撃の攻撃IDを含むこともある。攻撃対応情報323は、対策IDで識別される1種類以上の情報で構成される。
【0135】
次に、攻撃判定部107の処理を説明する。
【0136】
攻撃判定部107は、入力された、公開脆弱性情報321、攻撃情報322、攻撃対応情報323から、世の中で公開されている攻撃に対して、セキュリティ対策で対応できるかを次のように判断する。
【0137】
攻撃判定部107は、公開脆弱性情報321若しくは攻撃情報322の1つのエントリを抽出し、記載されている脆弱性の識別番号(例えば、CVE番号=xxx)について、攻撃対応情報323のエントリにおいて同番号を含むものがあるか調べる。もしこの番号を含むエントリがあればCVE番号=xxxについてセキュリティ対策(例えば、IPS)で防御可能と判定する。攻撃判定部107は、公開脆弱性情報321若しくは攻撃情報322の全てのエントリについて、含まれる脆弱性の識別番号(例えば、CVE番号=xxx)が、攻撃対応情報323のエントリに含まれるか調べることで、全ての公開脆弱性情報321若しくは攻撃情報322について、セキュリティ対策(例えば、IPS)で対応できるか否かを判定する。
【0138】
攻撃判定部107は、上記の処理により、公開脆弱性情報321や攻撃情報322のエントリを以下に分類する。
・セキュリティ対策対応情報(図示なし):採用しているセキュリティ対策手段(例えば、IPS)で対応できる、公開脆弱性情報321若しくは攻撃情報322のエントリである。
・セキュリティ対策非対応情報(図示なし):採用しているセキュリティ対策手段(例えば、IPS)で対応できない、公開脆弱性情報321若しくは攻撃情報322のエントリである。
【0139】
攻撃判定部107は、この分類を
図7のS24の処理を行う前までに実施する。
【0140】
次に、攻撃判定部107は、
図6の処理を実行し、その際に
図7の処理を行うが、
図7のS24において、まず、攻撃Akがセキュリティ対策対応情報に含まれるか調べる。攻撃Akについては、攻撃シナリオ要素Aiの攻撃識別情報401で脆弱性ID(例えば、CVE番号)が含まれているので、この脆弱性IDが、セキュリティ対策対応情報に含まれるかを調べればよい。もし含まれていなければ(或いは、セキュリティ対策非対応情報に同脆弱性IDが含まれていれば)、そのセキュリティ対策(例えば、IPS)ではそもそも対応できないことが判定できる。
【0141】
もし、攻撃Akがセキュリティ対策対応情報に含まれていた場合、
図7のS24においては、実施の形態1の処理のように、攻撃Akについて対策しているか(例えば、IPSに適用しているシグネチャで対策しているか)調べる。対策していなかった場合は、セキュリティ対策ベンダはセキュリティ対策対応情報として、攻撃Akに対応しているのだから(例えば、IPSのシグネチャを提供)、セキュリティ対策の是正(例えば、IPSのシグネチャの更新)が必要と判定し、出力部109に対して、警告情報324として、攻撃Akを識別する番号(例えば、攻撃IDや脆弱性ID=CVE番号等)とセキュリティ対策の是正(例えば、IPSのシグネチャの更新)を推奨するメッセージを出力する。さらに、この状況は、セキュリティ対策(例えば、IPS)が適切に運用されていないために(例えば、IPSのシグネチャが更新されていないために)、攻撃Akを検知していないだけで、攻撃Akが発生している(つまり見過ごしている)可能性が高いので、
図7のS29において呼び出すログ検索関数fの数を増やしたり、或いは、同関数に与えるパラメータをより詳しく検索したりする等により、詳しくログを調査する。
【0142】
ログ検索関数fに与えるパラメータは、予め攻撃判定部107の内部に設定値として保存しておけばよく、例えば、
図7のS24でセキュリティ対策の是正が必要と判断した場合、ログ検索関数fについて、規定で呼び出すf_1、f_2、f_3に加えて、f_4、f_5、f_6を呼び出すと定義すればよい。或いは、f_1、f_2、f_3に渡すパラメータ、例えば、p=10(例えば、ログ検索による攻撃の痕跡の検知の感度を指定するパラメータ)を、p=20に上げてもよい。或いは、f_1、f_2、f_3に渡すパラメータとして検索先のログ種類を指定している場合は、検索すべきログを追加したりして範囲を広げてくまなく検索してもよい。
【0143】
つまり、セキュリティ対策の是正が必要な状況では、攻撃の検知漏れをしている可能性があり、その攻撃の痕跡が様々なログに残っている可能性が高いので、規定のログ検索よりも検索を強化する。
【0144】
反対に、攻撃Akがセキュリティ対策対応情報に含まれていない場合、そのセキュリティ対策(IPS)ではそもそも攻撃Akに対応できないことが判定できる。この場合は、規定のログ検索のままにしてもよいし、上述のように、ログ検索を強化してもよい。
【0145】
以上説明したように、本実施の形態において、攻撃シナリオデータベース111に記憶された攻撃シナリオ204では、監視対象のコンピュータシステムに対する複数の攻撃のそれぞれが利用する脆弱性が定義される。攻撃判定部107は、脆弱性に関する情報を公開する外部のシステムにアクセスして、攻撃シナリオデータベース111に記憶された攻撃シナリオで定義されている、関連攻撃抽出部104により抽出された攻撃が利用する脆弱性に関する情報が当該外部のシステムにより公開されているかどうかを判定し、公開されていると判定した場合に、ログデータベース114に記憶されたログを分析する。
【0146】
本実施の形態では、公開脆弱性情報321や攻撃情報322と、攻撃対応情報323を比較することで、世の中に存在する攻撃が、現在使用しているセキュリティ対策で対応(検知/防御)可能かということを攻撃判定部107が予め調べておき、その結果、「セキュリティ対策ベンダでは攻撃に対応している」が、「セキュリティ対策の運用環境では適用していない(セキュリティ対策の是正が必要)」場合は、セキュリティ対策での検知漏れの可能性があるため、ログ検索を詳細に行う。この処理により、発生している可能性があるが検知されていない攻撃を、ログから検知する機会を増やす効果がある。また、「セキュリティ対策が対応していない」攻撃については、規定のログ検索のまま処理を進めたり、検索を詳細に行うことが可能となる効果がある。
【0147】
実施の形態3.
本実施の形態について、主に実施の形態1との差異を説明する。
【0148】
図7の処理において、攻撃Akについて、通信が発生する場合は、例えばプロキシログにその通信の痕跡が残る場合がある。そこで、攻撃判定部107は、プロキシログの検索を以下のように行う。
【0149】
例えば、実施の形態1における、攻撃A1、攻撃A2、攻撃A4が検知されている場合は、その情報から攻撃対象の端末が特定されることがある。例えば、検知したセキュリティ対策がIPSであれば、検知アラート(ログ)に攻撃先の端末の識別子(例えば、IPアドレス)が記録されている。
【0150】
また、セキュリティ対策の1つとして、プロキシログから不審な通信を分析し、攻撃を検知している場合は、不審な通信を行っている端末の識別子が特定される。
【0151】
セキュリティ対策の1つとして、セキュリティ設定が変更された端末を、端末の監査ログを調べて検知している場合は、攻撃の種類によっては、攻撃先ではなく攻撃元を特定することになる。例えば、ある端末にマルウェアが感染したため、その端末のセキュリティ設定が変更され、さらに、プロキシログの分析でその端末から不正な通信を行っていることを検知した場合は、その端末が攻撃元となる。
【0152】
これらの場合、その攻撃先(元)として特定されている端末において、初めてアクセスするウェブサイトの有無を調査する。これは、もし該当端末がマルウェア等に感染している場合、インターネット上の攻撃者が制御するウェブサイト(Command&Control(C&C)サーバ)へアクセスし、命令を受け取ったり、情報を漏洩したりしていることがあるためであり、その場合、そのウェブサイトは、(必ずしもそうではないが)該当端末が今までアクセスしたことのないウェブサイトであることが多いからである。
【0153】
そこで、攻撃判定部107は、ログ検索部108を経由してログデータベース114に蓄積されたプロキシログを検索し、該当端末がある期間にアクセスしたウェブサイトのホスト名を得て、そのリストを作成する(過去アクセスホスト名リスト(図示なし))。ある期間とは、任意の期間でよいが、ここでは、A3において今までアクセスしていないウェブサイトへのアクセスを調べるので、攻撃A2以前の期間とするのが好ましい。そして、ログ検索関数fは、以下のように処理する。
・与えられるパラメータ:以下の通りである。
(1)ログの検索期間(攻撃A2の発生日時からn時間後まで)
(2)攻撃先(元)端末の識別子(例えば、IPアドレス)
(3)検索するログの情報(例えば、プロキシログの識別子)
(4)攻撃先(元)端末がある期間にアクセスしたウェブサイトのホスト名のリスト(過去アクセスホスト名リスト)
・処理:(3)で指定されたログから、(1)の期間のログについて、(2)の攻撃先(元)端末の識別子に該当するログエントリを検索し、検索されたログエントリにおけるアクセス先のウェブサーバのホスト名が、(4)のホスト名のリストにあるか否か調べる。リストにない場合は、初アクセスホスト名リスト(図示なし)に加える。
【0154】
このように、ログ検索関数fは、(2)で指定される端末が、攻撃A3が発生したであろう期間に初めてアクセスしたウェブサイトのホスト名を、初アクセスホスト名リストに得ることができる。
【0155】
次に、この初アクセスホスト名リストをウェブレピュテーション(ウェブサイトが不審か否か判定するサービス)で不審なウェブサイトでないか調べる。ウェブレピュテーションをオンラインで提供するサービスがあり、このようなサービスを利用して初アクセスホスト名リストに記載のホスト名を1つずつ、不審か否か調査する。この調査では、ウェブレピュテーションのサービスをu個利用し、v個以上で不審と判定したら、そのホスト名を不審と判断する。ウェブレピュテーションのサービスが判定結果をスコアで返す場合は、u個のサービスの判定結果のスコアの合計がw以上の場合に不審と判定してもよい。また、ウェブレピュテーションのサービスが、オンライン以外に、CD(Compact・Disc)等の媒体でレピュテーションの情報が提供されていれば、それを利用して判定してもよい。
【0156】
ウェブレピュテーションのサービスにおいて判定結果に併せてホスト名のホストが所在する国・地域・期間が提示されることがある。予め、ホストが所在する国・地域のブラックリストを作成しておき、ウェブレピュテーションの結果、所在がこのブラックリストに記載されていた場合に不審と判定してもよい(ホストの所在が何処にあるか、誰が管理しているか等の情報だけを調べるオンラインサービスがあり、それを利用してもよい)。或いは、ホスト名のブラックリストを作成し、これに該当する場合に不審と判定してもよい。或いは、ホスト名のホワイトリストを作成し、これに該当しない場合に不審と判定してもよい。
【0157】
上記の判定の結果、初アクセスホスト名リストにおけるホスト名x個のうち、y個以上が不審と判定された場合に、攻撃の発生と判断してもよい。
【0158】
上記の攻撃の判定に、次のような判定を加えてもよい。
【0159】
初アクセスホスト名リストにおけるホスト名1つについて、(1)のログの検索期間(或いはその期間を超えた任意の期間)において、q時間の間にr回以上アクセスした場合に攻撃の発生と判断してもよい。また、そのアクセスの仕方がランダムの場合に攻撃発生と判断してもよく、そのアクセスの仕方が定期的であってもよい。このようなランダムや定期的といったアクセスの仕方の判断は、既知の判断方式を使ってよい。
【0160】
また、(4)の攻撃先(元)端末がある期間にアクセスしたウェブサイトのホスト名のリストをNULLにすることで、関数fの処理で、(3)で指定されたログから、(1)の期間のログについて、(2)の攻撃先(元)端末の識別子に該当するログエントリを検索し、検索されたログエントリにおけるアクセス先のウェブサイトのホスト名は、全て、初アクセスホスト名リストに加える。このように、初アクセスのウェブサイトか否かに係らず全てのウェブサイトについて不審か否かを判定するようにしてもよい。
【0161】
以上説明したように、本実施の形態において、監視対象のコンピュータシステムには、そのコンピュータシステムに含まれる複数のコンピュータと外部との通信を中継する中継装置(例えば、プロキシサーバ)が備えられる。攻撃判定部107は、ログデータベース114に記憶されたログのうち、少なくとも上記中継装置のログを分析して、上記コンピュータシステムが関連攻撃抽出部104により抽出された攻撃を受けていたかどうかを判定する。
【0162】
上記のように、本実施の形態では、既に発生している攻撃の間の期間で、他の攻撃の発生が、攻撃シナリオ等により考えられる場合は、その期間においてアクセスしたウェブサイトについて、不審なアクセスでないかをウェブレピュテーションサービスを使って判定することで、既に起こった攻撃の結果、不審なサイトにアクセスしていると判断でき、そのことから、他の攻撃が発生したと判断できる効果がある。
【0163】
実施の形態4.
本実施の形態について、主に実施の形態3との差異を説明する。
【0164】
実施の形態3では、プロキシログを検索する検索関数fを用いたが、本実施の形態では、端末におけるログを検索する検索関数fを用いる。
【0165】
攻撃A1、攻撃A2、攻撃A4の発生が確認された場合、例えば、攻撃先/元の端末において、攻撃A1、攻撃A2の発生に引き続き発生する攻撃による端末の操作が発生することがある。例えば、プロセスの操作、ファイル操作、設定の操作(検索・変更)、アカウントの操作、ログの操作が発生する。これらの挙動を監視してログに出力するソフトウェアがある。このようなソフトウェアでは、これらの挙動を全て記録したログを端末挙動ログ(図示なし)とする。
【0166】
攻撃判定部107は、ログ検索部108を経由してログデータベース114に蓄積されたログを検索し、該当端末においてある期間に観測された端末挙動ログを調べ、不審な挙動がないか調べる。そのために、以下のログ検索関数fを用いる。
・与えられるパラメータ:以下の通りである。
(1)ログの検索期間(攻撃A2の発生日時からn時間後まで、或いは攻撃A2の発生日時から攻撃A4の発生日時まで)
(2)攻撃先(元)端末の識別子(例えば、IPアドレス)
(3)検索するログの情報(例えば、端末挙動ログの識別子)
(4)不審プロセス操作判断基準、不審ファイル操作判断基準、不審設定操作判断基準、不審アカウント操作判断基準、不審ログ操作判断基準、不審アクセス判断基準
・処理:(3)で指定された端末挙動ログから、(1)で指定された検索期間について、(2)の攻撃先(元)端末の識別子に該当するエントリを検索し、検索されたログエントリ(調査対象ログエントリ)において、(4)で与える判断基準を満たすものがあるか調べる。
【0167】
不審プロセス操作判断基準について説明する。
【0168】
例えば、通常起動するプロセスをホワイトリストとして不審プロセス操作判断基準に内包しておき、調査対象ログエントリにおいて起動したプロセス名があれば、このホワイトリストに名前があるか照合する。合致がなければ、不審なプロセスの起動として判定する。或いは、不審なプロセス名を予めブラックリストとして不審プロセス操作判断基準に内包しておき、調査対象ログエントリにおいて起動したプロセス名があれば、不審なプロセスの起動として判定してもよい。
【0169】
不審ファイル操作判断基準について説明する。
【0170】
例えば、あるu時間以内にv個のファイルを「コピー」した場合に、不審と判断する判断条件を不審ファイル操作判断基準に内包しておき、調査対象ログエントリにおいてこの条件を満たすファイル操作があれば、不審なファイル操作の発生として判定する。或いは、上記の判断条件について、「コピー」の部分を「ファイルの名前の変更」や「オペレーティングシステムのシステムフォルダ下に新規にファイルが生成されたこと」等に置き換えてもよい。また、複数の判断条件のいずれかを満たした場合や、複数の判断条件のうち任意の組み合わせを満たした場合に、不審なファイル操作と判定してもよい。
【0171】
不審設定操作判断基準について説明する。
【0172】
例えば、w時間以内にx回のオペレーティングシステム(或いはアプリケーション)における「特定の設定値の追加、削除、変更」が発生した場合に不審と判断する判断条件を不審設定操作判断基準に内包しておき、調査対象ログエントリにおいてこの条件を満たす設定操作があれば、不審な設定操作の発生として判定する。「特定の設定値の変更・追加」の例として、オペレーティングシステム起動時に自動的に起動するアプリケーションの追加・変更、信用するデジタル証明書を追加する等がある。また、ローカルファイアウォールにおいて特定の送信元を許可したり、特定のポートへのアクセスやプロトコルのアクセスを許可したりする等、許可する条件を緩めることもある。逆に、ローカルファイアウォールにおいて、アンチウイルスソフトウェアがパターンファイルのアップデートのために外部と通信することをブロックする等、特定の通信をブロックすることもある。「特定の設定値の削除」の例としてローカルファイアウォールでブロックする送信元情報の削除等がある。
【0173】
不審アカウント操作判断基準について説明する。
【0174】
例えば、不審アカウント操作判断基準として、q時間以内にr回の「特定のアカウント操作」が発生した場合に不審と判断する判断条件を不審アカウント操作判断基準に内包しておき、調査対象ログエントリにおいてこの条件を満たすアカウント操作があれば、不審なアカウント操作の発生として判定する。「特定のアカウント操作」の例として、権限の高いアカウントの追加、既存のアカウントの権限の昇格、パスワードのロック回数を減らす、認証の失敗等がある。
【0175】
不審ログ操作判断基準について説明する。
【0176】
例えば、s時間以内にt回の「特定のログ操作」が発生した場合に不審と判断する判断条件を不審ログ操作判断基準に内包しておき、調査対象ログエントリにおいてこの条件を満たすログ操作があれば、不審なログ操作の発生として判定する。「特定のログ操作」の例として、セキュリティ監査ログの閲覧、削除、変更等がある。
【0177】
不審アクセス判断基準について説明する。
【0178】
例えば、a時間以内にb回の「特定のアクセス」が発生した場合に不審と判断する判断条件を不審アクセス判断基準に内包しておき、調査対象ログエントリにおいてこの条件を満たすアクセスがあれば、不審なアクセスとして判定する。「特定のアクセス」の例として、ローカルファイアウォールログで、ネットワークスキャンで拒否ログが発生していたり、特定のフォルダへのアクセスが発生し拒否ログが発生していたり、認証エラーが発生している等がある。
【0179】
ログ検索関数fにおいて、不審プロセス操作判断基準、不審ファイル操作判断基準、不審設定操作判断基準、不審アカウント操作判断基準、不審ログ操作判断基準、不審アクセス判断基準について、これらの判断基準のいずれか1つだけ不審と判定された場合に攻撃の発生と判断してもよい。又は、z個以上の判断基準について不審と判定された場合に攻撃の発生と判断してもよい。また、ログ検索関数fに与える(4)の判断基準は、これら全てでも、一部を組み合わせてもよい。
【0180】
また、端末挙動ログを調べる対象は、攻撃元(先)の端末だけでなく、その端末からネットワーク経由でアクセス可能な他の端末であってもよく、端末は、PCやファイルサーバやデータベースサーバ等のサーバであってもよい。その場合、攻撃元(先)の端末が攻撃A2の発生日時以降にアクセスした他の端末を、ネットワークログや、他の端末のログから調べて判定してもよい。例えば、ネットワークログの1種であるルータが発生するフローログにおいては、いつどの端末からどの端末へアクセスが発生したかが記録されているし、端末のローカルファイアウォールログにおいては、リモートの端末へアクセスした記録や、リモートの端末からアクセスされた記憶が残る。したがって、これらのログから、攻撃元(先)の端末だけでなく、その端末からネットワーク経由でアクセス可能な他の端末を調べればよい。
【0181】
また、端末挙動ログについて、挙動別に個々のログを出力する場合もあるが、その場合は、個々のログについて、該当する関数fを適用すればよい。
【0182】
以上説明したように、本実施の形態において、攻撃判定部107は、ログデータベース114に記憶されたログのうち、少なくとも監視対象のコンピュータシステムに含まれる少なくとも1つのコンピュータのログを分析して、上記コンピュータシステムが関連攻撃抽出部104により抽出された攻撃を受けていたかどうかを判定する。
【0183】
上記のように、本実施の形態では、既に発生している攻撃の間の期間で、他の攻撃の発生が、攻撃シナリオ等により考えられる場合で、その攻撃がIPS等で検知されていない場合、その期間において攻撃元(先)の端末、或いはその端末からアクセス可能な他の端末について、端末挙動ログに不審な挙動が発生していないか判定することで、既に起こった攻撃の結果、不審な挙動が発生していると判断でき、そのことから、他の攻撃が発生したと判断できる効果がある。
【0184】
実施の形態5.
本実施の形態について、主に実施の形態1との差異を説明する。
【0185】
図12は、攻撃シナリオ204のスコア405の一例を示す表である。
【0186】
図12に示すように、本実施の形態では、攻撃シナリオ204を構成する攻撃シナリオ要素Aiに、その攻撃の危険度を表すスコア405を付与する。攻撃判定部107は、検知結果301若しくは既検知結果304で与えられた攻撃について、これらに該当する攻撃シナリオ204を攻撃シナリオ検索部103経由で既に得ている。よって、攻撃判定部107は、攻撃シナリオ204から、検知結果301若しくは既検知結果304で与えられた攻撃についてのスコア405を得ることができる。さらに、攻撃判定部107は、それらのスコア405を足し合わせる。
【0187】
ここで、攻撃シナリオ204が「攻撃A1→攻撃A2→攻撃A3→攻撃A4→攻撃A5」となっており、実施の形態1の説明で示した例のように、攻撃A1、攻撃A2、攻撃A4が検知されたとする。このとき、スコア405の合計S=30+10+10=50点となる。
【0188】
検知したスコアの合計Sが、閾値m=90点(合計Sの最大100点の4/5)以上の場合にサイバー攻撃が発生したと判定する場合で、
図6の処理の結果、攻撃A3が検知されなかったとする。その場合、もし攻撃A5が発生しても20点が加算されるのみで、S=70点<mとなり、5つの攻撃中4つが検知されてもサイバー攻撃の発生とみなされない。そこで、
図6の処理の結果、攻撃A3が検知されなかった場合に、閾値mを下げ、70点とする。或いは、攻撃A5のスコア405を50点に変更する。或いは、現在のスコア405の合計Sである50点に30点を足す。このように、攻撃A3がログから検知されなくても、攻撃A5が検知された場合にサイバー攻撃が発生したと判定できるように動的に判定基準を変更する。
【0189】
また、スコア405の高い攻撃(例えば、攻撃A3が30点である)が検索されない場合、その発生を見落とすことは危険なので、その場合は、攻撃判定部107は、動的にログ検索関数fとして、規定の関数と異なるものを追加して呼び出したり、ログ検索関数fに与える規定のパラメータを変更したりして、より検知の感度が高くなるように設定を変更し、スコア405の高い攻撃のログによる検知を動的に強化してもよい。
【0190】
また、セキュリティ対策情報500において、セキュリティ対策によって、検知漏れの発生のしやすさや誤検知の発生のしやすさが分かっている場合は、その確度を、検知漏れ確度Fn、誤検知確度Fpとして対策情報504に追加する。例えば、IPSにおいては、シグネチャの更新が遅れた場合に検知漏れが発生するし、振る舞い検知で攻撃を検知する場合は正常な振る舞いを誤検知することがあるので、こういった情報を対策情報504に追加してもよい。
【0191】
ここで、攻撃判定部107に入力された対策有無情報207において、検知漏れ確度Fnが付与されていたとする。その場合は、攻撃判定部107は、攻撃シナリオ204において、この対策で対応する攻撃のスコア405を動的に減らしてサイバー攻撃の判定を行う。
【0192】
例えば、攻撃シナリオ204に従った場合に検知しているはずの攻撃で未だ検知されていない攻撃A3についてスコア405が30点とする。そして、この攻撃A3は対策有無情報207で検知可能と判定されている(攻撃A3を識別する情報である攻撃識別情報401とそれに対応するセキュリティ対策情報500による)が、実際には検知されず、対策有無情報207における検知漏れ確度Fn=50%であるとする。これは、50%の確率で検知漏れが発生することを意味している。そこで、動的に、閾値m=90点を、(30点+10点+30点×50%+10点+20点)×4/5=68点に減算して、サイバー攻撃を判定する。
【0193】
また、閾値mを減算する代わりに、攻撃判定部107は動的にログ検索関数fを規定の関数に対して追加して呼び出したり、ログ検索関数fに与える規定のパラメータを変更したりして、より検知の感度が高くなるように設定を変更し、スコア405の高い攻撃の、ログの検索による検知を強化してもよい。例えば、検知漏れ確度Fn=50%であれば、呼び出すfの種類や数を2倍にしたり、関数fの感度を2倍になるようにパラメータを調整したりする。つまり、対策有無情報207における対策は50%の確率で検知漏れが発生するので、ログ検索関数fによるA3の検知を動的に詳細にしてもよい。
【0194】
また、例えば、攻撃A2が既検知結果304で検知されたことが攻撃判定部107に入力された場合に、攻撃A2が何の対策により検知されたかを、攻撃判定部107は、セキュリティ対策検索部105を経由してセキュリティ対策データベース112から得られる対策有無情報207で知ることができる。例えば、既検知結果304に含まれる攻撃IDを関連攻撃情報205として、セキュリティ対策検索部105に対して入力することで、この攻撃IDへ対策可能なセキュリティ対策を検索する(セキュリティ対策情報500には攻撃識別情報501が含まれ、この情報には攻撃IDが含まれる)。この結果、攻撃判定部107は、対策有無情報207を得るが、この情報に、誤検知確度Fpが含まれていたとする。ここで、誤検知確度Fp=50%とする。これは、攻撃A2を検知した場合、50%の確率で誤検知であることを意味する。その場合、攻撃判定部107はこの攻撃A2について、ログ検索関数fを呼び出して、攻撃A2の発生の痕跡をログから検索する。もし検索された場合は、攻撃A2の検知は誤検知ではないと判定する。つまり、対策有無情報207で示されたIPS等の対策で攻撃A2を検知した場合に、その対策が誤検知が50%である場合、ログ検索関数fを呼び出して他のログから攻撃A2の痕跡を探し、もし見つかれば、IPS等の対策で検知され、他のログからも攻撃の痕跡が見つかっているので、誤検知ではないと判断する。
【0195】
関数fの呼び出し方は、例えば、誤検知確度Fp=50%であれば、攻撃A2を検知する関数fについて、呼び出すfの種類や数を2倍にしたり、関数fの感度を2倍になるようにパラメータを調整したりする。
【0196】
スコア405の合計値の閾値を動的に変更するルールや、検知漏れ確度Fnや誤検知確度Fpに対して、いくつ以上であれば、ログ検索関数fを呼び出してログを検索するか判断するための閾値については、セキュリティログ分析装置100の内部に予め保存しておけばよい。
【0197】
以上説明したように、本実施の形態において、攻撃シナリオデータベース111に記憶された攻撃シナリオ204では、監視対象のコンピュータシステムに対する複数の攻撃のそれぞれに対して点数(即ち、スコア405)が設定される。攻撃判定部107は、攻撃シナリオデータベース111に記憶された攻撃シナリオ204で定義されている複数の攻撃のうち、上記コンピュータシステムに備えられた検知装置により既に検知されている全ての攻撃(例えば、攻撃A1、攻撃A2、攻撃A4)を特定し、当該攻撃シナリオ204で、特定した攻撃に対して設定されている点数の合計と閾値との比較結果に基づいて、当該攻撃シナリオ204が実行されたかどうかを判定する。
【0198】
また、本実施の形態において、攻撃判定部107は、攻撃の検知漏れが発生したと判断した場合、攻撃シナリオデータベース111に記憶された攻撃シナリオ204で設定されている点数と上記閾値との少なくともいずれかを調整する。
【0199】
上記のように、本実施の形態では、攻撃シナリオ204に沿った攻撃の発生を元に、スコア405によりサイバー攻撃の発生を検知する場合で、攻撃シナリオ204の通りに攻撃が発生していない場合は、サイバー攻撃の発生を判断する閾値を動的に下げたり、付与したスコアを動的に変更したり、呼び出すログ検索関数を追加したり、攻撃を判定するパラメータの感度を変更したりすることで、攻撃シナリオ204の通りに発生しない攻撃があってもサイバー攻撃の検知が可能となる。また、セキュリティ対策で検知漏れや誤検知の発生確度が予め分かっている場合はその情報をセキュリティ対策の情報に追加しておき、これらの情報を用いることで、セキュリティ対策で検知が漏れている可能性のある攻撃については、ログ分析関数fによりログから検知を行うことで検知漏れを減らし、既に検知した攻撃に関しては、ログ分析関数fによりログから同攻撃を検知することで、誤検知か否かを判断できる効果がある。
【0200】
実施の形態6.
本実施の形態について、主に実施の形態1との差異を説明する。
【0201】
本実施の形態では、ログを検索するタイミングについて、予め定めた検索のタイミングを攻撃の検知状況に応じて変更する。
【0202】
実施の形態1の説明で用いた例において、攻撃シナリオ204は「攻撃A1→攻撃A2→攻撃A3→攻撃A4→攻撃A5」となっていた。そして、検知した攻撃は、攻撃A1、攻撃A2、攻撃A4であり、攻撃A3の発生をログを検索して検知しようとした。将来発生するであろう攻撃A5については、例えば、その後、10日後に検知結果301として通知されるのを待ってもよいが、検知結果301を待つのではなく、攻撃判定部107において、定期的にログ検索関数fを呼び出して、ログから攻撃の痕跡を検索することで攻撃を検知してもよい。また、この検索による検知は、攻撃A3(攻撃シナリオ204に従った場合、既に発生している可能性のある攻撃)に対する攻撃判定部107によるログ検索による検知と、並行して実施してもよい。
【0203】
このとき、将来起こるかもしれない攻撃A5については、いつまで検知結果301を待つべきか、或いは、ログ検索関数fによるログの検索により検知を行うべきかを、予め、セキュリティログ分析装置100に保存しておく(攻撃判定部107等に保存)。例えば、攻撃シナリオ204のある攻撃から次の攻撃の発生を待つ期間は「30日おき」として保存しておけば、攻撃A5についての検知結果301を待つ期間は攻撃A4の検知後30日までとなる。また、ログを検索するタイミングは、攻撃A4の検知後30日となる(攻撃A4の検知後30日分のログを検索する)。また、攻撃A5についてログから検索して探すタイミングを、「10日おきに検索し30日まで行う」として保存しておけば、攻撃A5についてのログの検索のタイミングは、攻撃A4の検知後、10日目(前回の検索から10日経過分を検索)、20日目(前回の検索から10日経過分を検索)、30日目(前回の検索から10日経過分を検索)となる。
【0204】
しかし、このように、攻撃シナリオ204について、将来起こるかもしれない攻撃の発生についての検知を、セキュリティログ分析装置100に保存した期間に従って行った場合、検知結果301を待つ期間や、ログを検索するタイミングの「最後」を、例えば1日超えて攻撃が発生した場合には、攻撃シナリオ204に従った攻撃としては検索しないため、攻撃シナリオ204に従ったサイバー攻撃は発生していないと判断される。
【0205】
本実施の形態では、検知結果301を待つ期間や、ログを検索するタイミングについて、予め定められた日時を待っても攻撃を検知(検知結果301又はログ検索により)しなかった場合に、動的に、攻撃を待つ期間やログを検索するタイミングを延長する。以降、本実施の形態の説明において、「攻撃の検知」とは、検知結果301があること、又は、ログ検索による攻撃の検知を意味する。
【0206】
本実施の形態では、規定の「攻撃の検知」を待つ期間Tを決めておき、もしこの期間を過ぎても攻撃が検知されなかった場合のために、延長して「攻撃の検知」を待つ期間TExtを決めておく。また、延長回数nを決めておき、これらをセキュリティログ分析装置100に保存する。例えば、T=30日、TExt=10日、n=3回である。
【0207】
このようにすることで、攻撃A5が攻撃A4の発生後30日(T=30日)経っても検知結果301で通知されず、ログ検索でも攻撃の痕跡が検索されなかった場合、その後、10日間、同様に検知結果301の通知を待つ。或いは、10日後に、前回の検索からの差分のログを検索し攻撃を検知する。
【0208】
それでも検知しなかった場合は、さらに10日間、検知結果301の通知を待つ。或いは、10日後に、前回の検索からの差分のログを検索し攻撃を検知する。
【0209】
それでも検知しなかった場合は、さらに10日間、検知結果301の通知を待つ。或いは、10日後に、前回の検索からの差分のログを検索し攻撃を検知する。
【0210】
その結果「攻撃の検知」が無かった場合は、攻撃シナリオ204に従ったサイバー攻撃は発生しなかったと判断する。
【0211】
また、実施の形態5のように、攻撃シナリオ204の攻撃シナリオ要素Aiにスコア405が付与されている場合、検知された攻撃(例えば、攻撃A1、攻撃A2、攻撃A4)についてのスコア405の合計Sがサイバー攻撃の発生を判定する閾値Mよりも低い場合、つまり、未だ、サイバー攻撃の検知として判断されていない場合は、攻撃シナリオ204に従った攻撃の発生の可能性は低いとして、攻撃A5の攻撃の検知について延長して待つ期間を短くしてもよい。
【0212】
例えば、S<Mの場合は、保存されたT=30日、TExt=10日、n=3回において、TExt=5日と減らしたり、或いは、n=1回と減らしたりしてもよい。逆に、S>Mの場合は、既にサイバー攻撃の発生として判断する基準を満たしており、攻撃A5の発生の可能性は高いとして、保存されたT=30日、TExt=10日、n=3回において、TExt=20日と増やしたり、或いはn=6回と増やしたりしてもよい。TExt及びnは両方変更してもよい。そのルールはセキュリティログ分析装置100に保存しておけばよい。例えば、
T=30日、TExt=10日、n=3回
M=80
if“S>M”then“TExt=20日”
if“S<M”then“TExt=5日”
と設定する。或いは、例えば、
T=30日、TExt=10日、n=3回
M=80
if“S>M”then“n=6回”
if“S<M”then“n=1回”
と設定する。このように、セキュリティログ分析装置100にルールを保存すれば、攻撃判定部107はこれらの値を読み取って処理を実行できる。
【0213】
また、上記のSとMの大小関係を逆にしたルールでもよい。また、上記のSとMの大小関係において、Mに係数(例えば、0.8)をかけて、Mの何%に対してSの大小を比較するかを定めてもよい。
【0214】
或いは、攻撃A5(次に起こるであろう攻撃)のスコア405の値(s)について閾値mを設定し、同様のルールを記述してもよい。例えば、
T=30日、TExt=10日、n=3回
m=20
if“s>m”then“TExt=20日”(sは攻撃A5のスコア405)
if“s<m”then“TExt=5日”(sは攻撃A5のスコア405)
と設定する。この場合、次に、検知結果301で通知されるかログ検索で検知される攻撃のスコア405が高ければ(閾値mより大きければ)、危険なので、延長して攻撃の検知(検知結果301の通知、若しくは、ログ検索による検知)を待つ期間を延長して、攻撃を捕らえる機会を増やす。逆に、同スコア405が低ければ、延長して攻撃の検知を待つ期間を減らす。
【0215】
また、攻撃A5(次に起こるであろう攻撃)の「攻撃の種類」によって、これらの値を変更してもよい。例えば、攻撃A5がType=InfoLeak(情報漏洩)の場合は、
T=30日、TExt=10日、n=3回
if“Type=InfoLeak”then“TExt=20日”
if“Type=FileDelete”then“TExt=5日”
とする。この場合、次に、検知結果301で通知されるかログ検索で検知される攻撃が、攻撃として危険な種類であれば、延長して攻撃の検知を待つ期間を延長して、攻撃を捕らえる機会を増やす。逆に、同種類がそれほど危険な種類でなければ、スコア405が低ければ攻撃の検知を待つ期間を減らす。
【0216】
なお、上記の例では、検知するはずの攻撃で検知していない攻撃が1つであるが、そのような攻撃が複数ある場合でも、その各々について、攻撃判定部107が動作すればよい。同様に、将来検知する攻撃が1つであるが、複数の場合でも各々について攻撃判定部107が動作すればよい。
【0217】
以上説明したように、本実施の形態において、攻撃判定部107は、攻撃シナリオデータベース111に記憶された攻撃シナリオ204で定義されている複数の攻撃のうち、上記コンピュータシステムに備えられた検知装置により未だ検知されておらず、当該攻撃シナリオ204で定義されている順番が上記検知装置により最後に検知された攻撃(例えば、攻撃A4)の1つ後の攻撃(例えば、攻撃A5)を抽出し、抽出した攻撃が上記検知装置により検知されない期間が閾値を超えた場合、当該攻撃シナリオ204が実行されなかったと判断する。
【0218】
また、本実施の形態において、攻撃シナリオデータベース111に記憶された攻撃シナリオ204では、上記コンピュータシステムに対する複数の攻撃のそれぞれに対して点数(即ち、スコア405)が設定される。攻撃判定部107は、攻撃シナリオデータベース111に記憶された攻撃シナリオ204で定義されている複数の攻撃のうち、上記検知装置により既に検知されている全ての攻撃(例えば、攻撃A1、攻撃A2、攻撃A4)を特定し、当該攻撃シナリオ204で、特定した攻撃に対して設定されている点数の合計に応じて、上記閾値を調整する。或いは、攻撃判定部107は、当該攻撃シナリオ204で、抽出した攻撃(例えば、攻撃A5)に対して設定されている点数に応じて、上記閾値を調整する。
【0219】
上記のように、本実施の形態では、攻撃シナリオ204に従い検知が発生しなかった場合に、攻撃のスコア405や種類等により攻撃の発生について延長して待つ期間を動的に変更するので、規定の待ち期間を僅かに超えた攻撃についても、効率的に攻撃シナリオ204に従ったサイバー攻撃として検知することが可能となる効果がある。
【0220】
実施の形態7.
本実施の形態について、主に実施の形態3との差異を説明する。
【0221】
実施の形態3では、プロキシログ等を分析した結果から、不審と判断された場合に、アクセスしたウェブサイトについてウェブレピュテーション等を利用して不審か否かを判定した。本実施の形態では、このような不審なHTTP(HyperText・Transfer・Protocol)通信が発見された場合に、その不審なHTTP通信が発生するきっかけとなった事象を、攻撃シナリオを利用して特定する。
【0222】
例えば、不審なHTTP通信が検知された場合、この不審なHTTP通信を含む攻撃シナリオ204を検索したところ、攻撃A1、攻撃A2、攻撃A3、攻撃A4で構成される攻撃シナリオ204が検索され、攻撃A2がこの不審な通信に該当したとする。その場合、攻撃A2がマルウェアによる通信とした場合、攻撃A1はマルウェアに感染するきっかけに該当する。そのようなきっかけは一般的に以下である。
(1)マルウェアが添付されたメール
(2)不正なウェブサイトへのリンク(URL(Uniform・Resource・Locator))が記録されたメール
(3)不正なウェブサイトへのアクセス
(4)マルウェアに感染した外部記憶媒体の参照
(5)他のマルウェアに感染した端末からネットワーク経由で感染
【0223】
以下に、攻撃A1が(1)〜(5)のいずれかであるかを発見する方法を示す。以下の方法は、攻撃判定部107で処理される。ログデータベース114には以下で使用する、プロキシログ、メールサーバログ、端末の操作を記録するソフトウェアのログ(端末操作ログ)等の各種ログが保存されているものとする。ログの検索は、攻撃判定部107がログ検索部108を使用してログデータベース114に対して行う。攻撃判定部107がインベントリデータベース113に格納された情報を参照する場合、(図示していないが)攻撃判定部107はインベントリ検索部106を利用してインベントリデータベース113の情報を検索し、参照する。
【0224】
以下では、攻撃A1が(1)或いは(2)の場合について説明する。
【0225】
攻撃判定部107では、攻撃A2が発見された端末(不審なHTTP通信を発している)の識別子をプロキシログから抽出し、この端末を使用しているユーザの識別子を取得する。例えば、組織では、「端末Xの利用者はユーザUである」という対応表や、それに準ずる情報を保持していることがあるので、このような情報を参照することで、ユーザの識別子Uを取得する。
【0226】
さらに、組織では、「ユーザUのメールアドレスはMailAddressUである」という情報を管理していることが多いので、この情報を参照することで、ユーザUのメールアドレスを取得する。
【0227】
次に、このメールアドレス宛に受信したメールの情報について、攻撃A2の検知前、過去m時間遡りメールサーバのログから検索する。
【0228】
次に、検索された各メールの情報について攻撃判定部107は以下の(a)及び(b)判定を行う。
【0229】
(a)メールアドレスの信頼性を調べる。
【0230】
セキュリティログ分析装置100は、
図13のような表を予め内包している。この表において、送信元のメールアドレスのカテゴリごとに、その信頼度が付与されている。例えば、同じ会社内で同じ部署のメールアドレスから送信されたメールであれば、そのメールの信頼度は高、違う部署であれば中と判断する。異なる会社から送信されたメールであれば、セキュリティが高い会社であることが予め分かっている場合、その情報はこの表に反映されており、そのメールの信頼度は高とし、不明な場合は中とする。フリーメールのアドレスから送信されたメールであれば、そのメールの信頼度は低とする。そして、メールについてこのような信頼度が判断された後、信頼度が高以外のメールは不審なメールの候補として扱う。
【0231】
さらに、同じ会社については、人事データベースからの情報として、該当するメールアドレスを使用しているユーザの人的な傾向を参照して信頼度に反映してもよい。例えば、「仕事上のミスが多い」という傾向があれば、信頼度を中、「慎重」であれば、信頼度は変更しない等である。
【0232】
仕事の忙しさとミスに相関があると仮定して、「仕事が忙しい」であれば信頼度を中、「仕事は忙しくない」であれば信頼度は変更しない、としてもよい。体調とミスに相関があると仮定して、「体調不良」であれば信頼度を中、「健康」であれば信頼度は変更しない、としてもよい。
【0233】
勤続年数と慎重さに相関があると仮定して、勤続年数が長ければ信頼度は高とし、勤続年数が短ければ信頼度は中、としてもよい。
【0234】
平均受信メール数が多い場合や、様々な会社とメールを送受信している場合は、様々なメールを閲覧する機会があり、危険にさらされる機会が高いとみなし、信頼度を中としてもよい。このような「受信メールが多い」、「様々な会社とメールを送受信している」といった判断は、まず閾値を定めておき、1日にその閾値を越える数のメールを受信していれば「受信メールが多い」と判定し、或いは、1日にメールを送受信した社外の会社の数がその閾値を超えた場合に、「様々な会社とメールを送受信している」と判定すればよい。
【0235】
或いは、検索されたメールの送信時間が、ビジネスアワーの場合は、信頼度は変更せず、深夜の場合は、(疲労している可能性があるとして)信頼度を中としてもよい。
【0237】
まず、メールが添付メールの場合について説明する。
【0238】
添付メールの添付ファイルが暗号化されている場合は、添付ファイルのセキュリティスキャン等、セキュリティ対策を回避している可能性があるため、信頼度を低とする。
【0239】
次に、メールが、URLが記載されたメールの場合について説明する。
【0240】
記載されたURLを、ウェブレピュテーションを利用して、その不審さを調べる。不審と判断されれば、メールの信頼度を低とする。或いは、そのメールを受信した端末Xについて、そのメールの受信時間から遡りn時間における、端末Xのウェブアクセスについて、プロキシログを検索し、該当のURLにアクセスしていなければ、初めてアクセスするウェブサイトと判断して信頼度を低としてもよい。つまり、メールに記載されたURLが、ウェブレピュテーションにより不審と判断されるか、初めてアクセスするサイトであれば、信頼度を低く設定するのである。メールに記載されたURLについて、ウェブレピュテーションの変わりに、組織で保有しているURLのホワイトリストに該当しないURLである場合、信頼度を低としてもよい。組織で保有しているURLのブラックリストに該当するURLである場合、信頼度を極低としてもよい。
【0241】
次に、メールが、電子署名が付与されたメールの場合について説明する。
【0242】
メールに電子署名が付与されており、その電子署名の正当性が検証された場合に、メールの信頼度を高としてもよい。また、その署名を検証する際に使用した電子証明書が、メールの受信者の組織で信頼しているものである場合に、メールの信頼度を高としてもよい。或いは、その電子証明書の信頼度のランクを定義しておき、あるランク以上の場合に信頼度を高としてもよい。例えば、電子証明書を発行する認証局によって、電子証明書内に、電子証明書の発行プロセスにおいて、電子証明書の発行先の組織や人物について厳密な審査を経たうえで電子証明書を発行していることを示す識別子を含めていることがあり、その識別子を電子証明書の信頼度として使用すればよい。
【0243】
最後に、メールが、暗号化されたメールの場合について説明する。
【0244】
メールが暗号化されている場合は、セキュリティスキャン等、セキュリティ対策を回避している可能性があるため、信頼度を低とする。
【0245】
以下では、攻撃A1が(3)の場合について説明する。
【0246】
攻撃判定部107では、攻撃A2が発見された端末Xの識別子をプロキシログから抽出し、攻撃A2の検知前、過去m時間遡り、この端末XがアクセスしたウェブサイトのURLをプロキシログから検索する(端末Xの識別子でログを検索すればよい)。次に、検索されたURLをウェブレピュテーションを利用して不審さを調べる。不審と判断されればこのURLの信頼度を低とする。そうでない場合は信頼度を高としてもよい。
【0247】
以下では、攻撃A1が(4)の場合について説明する。
【0248】
攻撃判定部107では、攻撃A2が発見された端末Xの識別子をプロキシログから抽出し、A2の検知前、過去m時間遡り、この端末Xが外部記憶媒体を使用した場合に、この外部記憶媒体の信頼度を低とする。端末Xが外部記憶媒体を使用したか否かは、端末操作ログを検索することで実現し、端末操作ログにおいて、端末Xの識別子をキーに、A2の検知前、過去m時間遡り、検索し、外部記憶媒体の接続の有無を調べる。また、端末の操作を記録するソフトウェアによっては、組織で管理されている外部記憶媒体とそうでないもの(個人で所有しているもの)を、外部記憶媒体のシリアルナンバーで識別する機能がある。組織で管理されている外部記憶媒体ではない外部記憶媒体を接続していることが分かった場合は、その外部記憶媒体の信頼度を低とし、組織で管理されている外部記憶媒体の場合に信頼度を高としてもよい。
【0249】
以下では、攻撃A1が(5)の場合について説明する。
【0250】
攻撃判定部107では、攻撃A2が発見された端末Xの識別子をプロキシログから抽出し、攻撃A2の検知前、過去m時間遡り、この端末Xが他の端末Yからアクセスされたかを調べ、アクセスがあった場合はこの端末Yの信頼度を低とする。端末Xが他の端末からアクセスされたかは、端末Xの端末操作ログやOSが保持するローカルファイアウォールの機能が記録するログにおいて攻撃A2の検知前、過去m時間遡り、検索し、他の端末からのアクセスの有無を調べる。端末Yが端末Xの複数のポート(TCP/UDPのポート)にアクセスしている場合に(どのポートが開いているか探っていると判断して)、端末Yの信頼度を低とし、そうでない場合は、信頼度を高としてもよい。また、端末Yが端末Xにアクセスした時点の、端末Yにおけるパッチの適用履歴を、インベントリデータベース113から調べ、端末Yがその当時の最新のパッチが適用されていない場合に、端末Yの信頼度を低としてもよい。また、端末Xについて、その当時の最新のパッチが適用されていない場合に(端末Yから攻撃を受けて感染した恐れがあるとして)端末Yの信頼度を低としてもよい。或いは、攻撃A2の検知前、過去m時間遡り、端末Xから端末Y’に対してアクセスした場合、この端末Y’が、複数のポートにおいてアクセスされていたり、端末Y’がその当時の最新のパッチが適用されていない場合に、端末Y’の信頼度を低としてもよい。
【0251】
これらの例では、攻撃A2が発見された場合に、各種ログを遡り、受信したメールの信頼度、アクセスしたURLの信頼度、使用した外部記憶媒体の信頼度、アクセスされた他の端末の信頼度を決定している。そして、このような信頼度が低の場合に、攻撃A1に相当する攻撃があったと判断する。例えば、攻撃A2の発生から遡り、信頼度が低いメールを受信した場合に、攻撃A1の発生と判断する。
【0252】
また、これらの例において、攻撃A1が発生したと判断するための事象がログから発見された場合(例えば、端末Xが添付メールを受信したことがメールサーバログから検索された場合(攻撃A1が(1)))、その時点における、端末Xの最新パッチの適用状況を調べ、最新パッチが適用されていた場合は、各信頼度は高としてもよい。最新のパッチが適用されている場合は、仮に添付メール等が、マルウェアであっても、感染のリスクが低いからである。
【0253】
また、セキュリティ状態が組織内で統一的に管理されており、メールの送信元が同じ組織である場合、送信元のセキュリティ状態を参照してもよい。例えば、メールの送信日時におけるパッチの適用状況が最新ではない場合は、マルウェアに感染している可能性があるため、そのメールの信頼度を低としてもよい。もし、同じ組織からのメールでなくとも、何らかの手段で、その送信者のセキュリティ情報が参照できる場合は、同様の判断を行ってもよい。
【0254】
上記の信頼度は、高、中、低、極低等としたが、100点、50点、20点、0点等の点数であってもよい。その場合は、例えば、暗号化された添付メールを受信していた場合、メールアドレスの信頼度が50点、暗号化された添付メールが付与されているので信頼度を20点として、合計の信頼度の閾値を100点とした場合、合計70点であり、信頼できないと判断してもよい。その場合、この暗号化された添付メールが攻撃A2のきっかけとなった攻撃A1であると判断する。
【0255】
上記のように、本実施の形態では、不審なHTTP通信をログから検知した場合、その不審なHTTP通信はマルウェア等の攻撃により発生しているとみなし、その攻撃が発生するきっかけを、様々なログを遡って調べることで、不審なHTTP通信の原因があったか否か判断できる効果がある。
【0256】
実施の形態8.
本実施の形態について、主に実施の形態3との差異を説明する。
【0257】
実施の形態3では、プロキシログ等を分析した結果から、不審と判断された場合に、アクセスしたウェブサイトについてレピュテーション等を利用して不審か否かを判定した。本実施の形態では、このような不審なHTTP通信が発見された場合に該当端末である端末Xのセキュリティ状態から、これらの通信が不審か否か判断する。この処理は、攻撃判定部107で実行される。
【0258】
ログデータベース114には、プロキシログが保存されているものとする。ログの検索は、攻撃判定部107がログ検索部108を使用してログデータベース114に対して行う。攻撃判定部107がインベントリデータベース113に格納された情報を参照する場合、(図示していないが)攻撃判定部107はインベントリ検索部106を利用してインベントリデータベース113の情報を検索し、参照する。
【0259】
実施の形態3でも同様であるが、例えば、以下に該当する通信についてプロキシログから検索された場合に不審とみなす。
・端末Xが、ホワイトリストにないURLであるURL_Sにアクセスしている。
・端末Xから、定期的にこのURL_Sにアクセスが行われている。
【0260】
本実施の形態では、さらに、以下の(1)〜(3)のいずれか1つ以上に当てはまる場合に、このHTTP通信を不審と判断する。
(1)最初のURL_Sへのアクセスにおいて、遷移元のURLであるリファラを調べた結果、リファラが存在しない場合(単独の繰り返しの通信が突然発生したとみなす)、あるいは、リファラが存在しても、それ以前に、そのリファラのURLへアクセスしていない場合
(2)URL_Sへアクセスした後にアクセスした別のHTTP通信のリファラを調べた結果、このリファラがURL_Sになっていない場合(URL_Sに関係ない別の通信が発生したとみなす)
(3)以下に説明する場合
【0261】
(3)については、URL_Sへの通信の発生からm日遡り、端末Xのパッチの状態の履歴を調べる。この期間にリリースされたある1つのパッチPatch_iについて、ΔTi_X=端末XにおけるPatch_iパッチ適用日時−Patch_iのパッチリリース日時、とした場合にΔTi_XはPatch_iがリリースされてから端末Xに適用されるまでの時間差である。そして、ΔTi_X>n時間である場合は、Patch_iについてパッチ未適用の期間があったとみなし、不審な通信と判断する。端末Xのパッチ適用履歴やパッチの情報は、インベントリデータベース113に格納されている。また、例えば、Patch_i(i=1〜k)について、AllΔT_X=ΣΔTi_X、i=1〜kとして、AllΔT_X<p時間の場合に、安全な状態であったと判断し、HTTP通信は不審ではないと判断してもよい。例えば、k=3、p=4であれば、Patch_1、Patch_2、Patch_3が、URL_Sへの最初の通信の発生からm日前までにリリースされており、それぞれのリリース日時から端末Xに適用した日時の差分であるΔT1_X、ΔT2_X、ΔT3_Xを足した値が4時間未満であるという判断になる。この場合、各パッチがリリースされてから適用までの時間を、全て足しても4時間未満であるので、「端末Xは安全な状態を保っていた」と判断する。したがって、攻撃を受けていないと判断し、よって、このHTTP通信は不審ではないと判断する。
【0262】
或いは、ΔTi_X、i=1〜kのうち、最大のものがp未満であった場合に、HTTP通信は不審ではないと判断してもよい。
【0263】
或いは、Patch_i(i=1〜k)について、パッチが対応する脆弱性のインパクトから、判定に用いるPatch_iを選択してもよい。例えば、i=1のパッチで対処される脆弱性はインパクトがDoSであるとする。この脆弱性が攻撃された場合、端末のCPU(Central・Processing・Unit)の負荷が上がるだけであり、任意のコードを実行されたり、権限が昇格したりする等、それ以上の攻撃に発展する危険性がない。したがって、Patch_1は、上記の判定に使うパッチから除外してもよい。
【0264】
或いは、脆弱性への攻撃の難易度が高いものについて、そのパッチについては、判定で使わないようにしてもよい。難易度の例として、その脆弱性を攻撃する攻撃コードや攻撃方法が世の中に広まっているか否かがある。
【0265】
或いは、リモートからの攻撃ができる脆弱性、逆にローカルな攻撃が必要な脆弱性に対するパッチを判定で使わないようにしてもよい。
【0266】
或いは、攻撃に認証が必要な脆弱性に対するパッチを判定で使わないようにしてもよい。
【0267】
これらの脆弱性についての情報は、インターネット上のウェブサイトに公開されていることがあり、セキュリティログ分析装置100が定期的にこのウェブサイトにアクセスして情報を取り込むことで、参照可能となる。脆弱性の情報はインベントリデータベース113に保存する。
【0268】
或いは、Patch_i(i=1〜k)について、Patch_iのパッチリリース日時から、端末XにおけるPatch_iパッチ適用日時の間の期間をNST_iとする。例えば、Patch_iのパッチリリース日時が2013/10/22の00:00:00、パッチ適用日時が2013/10/23の12:00:00の場合、NST_i=2013/10/22の00:00:00〜2013/10/23の12:00:00となる。そして、NST_iに、端末Xがウェブサイトへアクセスしたか否かをプロキシログから調べる。NST_iに、端末Xがウェブサイトへアクセスした場合は、そのサイトのURLの不審さから、攻撃を受けたか否かを判定する。URLの不審さは組織が持つURLのホワイトリストにないサイトや、URLのブラックリストに掲載されているサイトや、ウェブレピュテーションによる判定から判断する。つまり、パッチが適用されていない期間であるNST_iに、ウェブサイトへアクセスした場合は、攻撃を受けた可能性があるため、そのURLの不審さをもって、攻撃を受けた可能性の有無を判定する。このとき、URLのホワイトリスト/ブラックリストやウェブレピュテーションは、パッチが適用されていない期間のものを参照してもよく、最も新しいものを参照してもよい。或いは、これらの両方を参照してもよく、その場合、片方で不審と判断されたことで不審と判定してもよく、両方で不審と判断されたことで不審と判定してもよい。
【0269】
また、NST_iに、端末Xがウェブサイトへアクセスした回数が予め定めた閾値未満の場合に、攻撃は受けていないと判定し、閾値以上の場合は、攻撃を受けたと判定してもよい。
【0270】
また、NST_iに、端末Xがメールを受信した場合に、そのメールが不審であれば、攻撃を受けたとみなしてもよい。メールの不審さの判定には、実施の形態7と同様の方法を用いてもよい。
【0271】
また、NST_iにおける、Patch_iが対処する脆弱性について、世の中の同脆弱性を狙った攻撃の発生数が別途定める閾値未満である場合は、攻撃を受けていないと判断し、閾値以上であれば、攻撃を受けたと判断してもよい。
【0272】
上記の例では、端末Xから、定期的にURL_Sにアクセスが行われていることをもって不審としたが、端末XからのURL_Sへのアクセスは、ランダムでもよい。ランダム性の判断は、URL_Sへの1つのアクセスをHTTP_jとして、そのタイムスタンプをHTTP_TS_jとして、時間的に隣り合うアクセス間の間隔を以下のΔjで定義する。そして、Δjがランダムか否かを調べればよい。
Δj=HTTP_TS_(j+1)−HTTP_TS_j(このとき、j=1〜h)
【0273】
また、端末XからのURL_Sへのアクセスは、稀でもよい。稀かどうかを判断する方法は例えば以下である。
・URL_Sへのアクセスが、α時間に、β回未満である。
・朝(9時〜10時)α回、昼(12時〜13時)β回、夜(17時〜18時)γ回のように、ある期間に決まった回数アクセスする。
【0274】
また、上記の例では、端末Xにおけるパッチの適用状況を判断に用いたが、リリースされているパッチが端末Xに適用されていなくても、他のセキュリティ装置で(そのパッチが対応する)脆弱性への攻撃を防御できる場合があり、そのようなセキュリティ装置の設定履歴をセキュリティログ分析装置100に取り込んで(例えば、インベントリデータベース113や攻撃判定部107で保存し)参照してもよい。例えば、端末Xにパッチ未適用の期間があり脆弱性が残存していても、このようなセキュリティ装置で防御されていた場合は、攻撃を受けていないと判断し、防御されていなかった場合は攻撃を受けていると判断してもよい。
【0275】
上記のように、本実施の形態では、不審なHTTP通信がある端末で発見された場合に、該当端末のセキュリティ状態を過去に遡り調べることで、これらの通信が攻撃を受けたことにより発生したか否か判断できる効果がある。
【0276】
実施の形態9.
本実施の形態について、主に実施の形態8との差異を説明する。
【0277】
実施の形態8では、不審なHTTP通信が検知された1台の端末について、このHTTP通信が本当に不審か、セキュリティ状態を基に判断するが、本実施の形態では、複数の端末で、不審なHTTP通信が検知された場合についての判断を行う。
【0278】
例えば、以下に該当する通信についてプロキシログから検索された場合に不審と判断する。
・端末Xと端末Yが、ホワイトリストにないURLであるURL_Sにアクセスしている。
・端末Xから、定期的にURL_Sにアクセスが行われている。
・端末Yから、定期的にURL_Sにアクセスが行われている。
【0279】
本実施の形態では、さらに、以下の(1)〜(3)のいずれか1つ以上に当てはまる場合に、このHTTP通信を不審と判断する。
(1)端末Xの最初のURL_Sへのアクセスにおいて、遷移元のURLであるリファラを調べ、端末Yの最初のURL_Sへのアクセスにおいて、遷移元のURLであるリファラを調べた結果、端末Xと端末Yにおけるこれらのリファラが同じである場合
(2)端末Xにおいて、URL_Sへアクセスした後にアクセスした別のHTTP通信のリファラを調べ、端末Yにおいて、URL_Sへアクセスした後にアクセスした別のHTTP通信のリファラを調べた結果、これらのリファラがURL_Sになっていない場合
(3)端末XにおいてURL_Sへのアクセスの「前q時間/後r時間」にアクセスしているサイトをURL_Xとし、端末YにおいてURL_Sへのアクセスの「前q時間/後r時間」にアクセスしているサイトをURL_Yとしたとき、URL_XとURL_Yがある一定の割合以上で一致する場合
(4)以下に説明する場合
(5)以下に説明する場合
【0280】
(4)については、端末Xと端末Yにおいて、パッチのリリース後、パッチが適用されていない期間があった場合に、その期間におけるウェブアクセスの有無を調べる。そして、このウェブアクセスが不審かウェブレピュテーションやURLホワイトリストやブラックリスト等で調べる。端末Xと端末Yにおけるこの期間におけるウェブアクセスの状態を比較することで、端末Xと端末Yが攻撃されたか否かを
図14のように判定してもよい。
【0281】
例えば、端末Xにおいてパッチ未適用の期間があり、かつ、不審ウェブアクセスがあった場合、端末Yにおいてパッチ未適用の期間があり、かつ、不審ウェブアクセスがあった場合、両端末で、安全でない期間に不審なウェブサイトにアクセスしていたので、マルウェアに感染し、その結果、後で、URL_Sへ定期的にアクセスが発生したと判断する。
【0282】
例えば、端末Xにおいてパッチ未適用の期間があり、かつ、不審ウェブアクセスがなかった場合、端末Yにおいてパッチ未適用の期間があり、かつ、不審ウェブアクセスがあった場合、端末Yのみが、安全でない期間に不審なウェブサイトにアクセスしていたので、マルウェアに感染し、その結果、後で、URL_Sへ定期的にアクセスが発生したと判断する。端末XにおけるURL_Sへの定期的な通信は誤検知とみなす。パッチ未適用の期間については、実施の形態8に従ってもよい。
【0283】
(5)については、パッチ未適用の期間があった場合に、その期間における不審なメールの受信の有無を調べる。そして、端末Xと端末Yにおけるこの期間における不審なメールの有無を比較することで、端末Xと端末Yが攻撃されたか否かを
図14のように判定してもよい。このとき、
図14における、「不審ウェブアクセス」を「不審メール」に置き換える。
【0284】
また、本実施の形態では、ログ分析のきっかけとする、端末Xと端末Yが行う不審なHTTP通信先のURLについて、同じもの(URL_S)としたが、別のURLでもよい(端末X:URL_S、端末Y:URL_S’)。ただし、それらのURLはホワイトリストにないものである。
【0285】
また、本実施の形態では、パッチ未適用期間に端末XがアクセスしたURLは、URL_Sであっても別のものでもよい。同様に、端末Yについても、パッチ未適用期間の通信についても、URL_Sであっても別のものでもよい。
【0286】
また、本実施の形態では、URL_SやURL_S’はホワイトリストにないものとしたが、ブラックリストにあるものとしてもよい。また、ウェブレピュテーションでスコアが閾値以下のものであってもよい。
【0287】
また、上記の例では、2つの端末X,Yを対象としているが、さらに複数の端末を対象としてもよい。
【0288】
上記のように、本実施の形態では、不審なHTTP通信が複数の端末で発見された場合に、該当端末のセキュリティ状態を過去に遡り調べ、安全ではない期間に、不審なウェブサイトにアクセスしたり、不審なメールを受信したか調べることで、これらの通信が攻撃を受けたことにより発生したか否か判断できる効果がある。
【0289】
本実施の形態において、セキュリティ対策を管理していない組織においては、セキュリティ対策情報500が検索されなかった場合の処理を行えばよい。また、インベントリを管理していない組織においては、インベントリ情報209が検索されなかった場合の処理を行えばよい。
【0290】
実施の形態10.
本実施の形態について、主に実施の形態1との差異を説明する。
【0291】
本実施の形態では、攻撃シナリオ204に従って攻撃を検知した結果、情報漏洩の攻撃が疑われる、或いは、攻撃シナリオ204に従えば、今後起こり得ることが分かっている場合、セキュリティログ分析装置100がプロキシサーバと連携して、強制的にHTTP通信を制御する。
【0292】
図15は、制御命令217の構成の一例を示す図である。
【0293】
攻撃判定部107は、例えば、実施の形態5のように現在検知された攻撃のスコア405の合計が閾値を超えた時点で、将来起こり得る攻撃に情報漏洩が含まれている場合は、制御命令217を生成し、出力部109に出力する。
【0294】
図15に示すように、制御命令217は、以下の情報で構成される。
(a)期間:制御を行う期間(例えば、2013/10/01の00:00:00〜2013/10/31の23:59:59)である。
(b)送信元情報:攻撃判定部107が攻撃シナリオ204とログ分析により攻撃されている可能性があると判断した端末の情報(例えば、IPアドレス)である。
(c)送信先情報:攻撃判定部107が攻撃シナリオ204とログ分析により攻撃元と判断した通信相手の情報(例えば、ウェブサーバのホスト名)である。
(d)制御情報:プロキシサーバに対する制御の命令である。
【0295】
制御命令217は、送信元情報で示される端末から送信先情報で示されるサーバ等への通信に対し、期間として指定する間、制御情報で示す制御を行うことを命令するデータである。制御情報の命令の内容として、例えば、HTTPを全て遮断、HTTPのGETを遮断、HTTPのPOSTを遮断、CONNECTを遮断、認証の強制(HTTPリクエストの送信のために認証情報を提供する)がある。また、これらに、「m回につき1回の通信を遮断」、「ランダムに遮断」等の条件を組み合わせてもよい。例えば、制御情報は、「DenyHTTP=ON,Method=POST,CONDITION=1:m」(HTTP通信のPOSTメソッドをm回につき1回遮断せよ、という意味である)といったものになる。
【0296】
送信先情報として、ANY(全ての送信先)を指定して、攻撃されている可能性のある端末については全ての通信を制御してもよい。また、送信元情報として、ANY(全ての送信元)を指定して、攻撃元が疑われる通信相手(例えば、ウェブサーバ)については、全ての端末からの通信を制御するようにしてもよい。
【0297】
出力部109は、制御命令217を受け取ると、プロキシサーバに出力する。プロキシサーバは制御命令217を入力すると、制御命令217を解釈して該当する通信を制御する。プロキシサーバにおける制御命令217の解釈は、これらのサーバに既に備わっている機能を使うことが望ましい。よって、制御命令217は、これらのサーバが解釈できるフォーマットに変形しても構わない。また、出力部109がプロキシサーバに制御命令217を出力する方法としては、プロキシサーバが入力可能な方法であれば任意の方法でよい。例えば、これらのサーバがSNMP(Simple・Network・Management・Protocol)のトラップメッセージを受信して、制御命令217を解釈できるのであれば、トラップメッセージに制御命令217を含めて、これらのサーバにネットワークを経由して送信してもよい。
【0298】
制御情報は、通信の遮断だけでなく、プロキシサーバがワークフローシステムと連携しているのであれば、このワークフローシステムの使用を強制するように指定してもよい。例えば、制御情報は、「UseWorkFlow=ON,Protocol=HTTP,Method=POST」(HTTP通信のPOSTメソッドには、ワークフローを強制適用せよ、という意味である)といったものになる。
【0299】
ここでのワークフローシステムとは、あるユーザが、ウェブサイトへファイル等のデータを送信する場合に、上長の許可を得ないと送信できないような仕組みをもったシステムであり、例えば、以下のような手順が用いられる。
(1)ユーザAが、ウェブサイトXへ、HTTPのPOSTで1メガバイトのファイルを送信する(HTTP・POSTリクエスト)。このHTTP・POSTリクエストはプロキシサーバへ送信される。
(2)ユーザAからのHTTP・POSTリクエストはプロキシサーバと連携するワークフローシステムへフォワードされ、保留される。
(3)ワークフローシステムは、ユーザAの上長Bへ、メールにより、ユーザAが組織外へデータを送信しようとしていることを通知する。
(4)上長Bはワークフローシステムへアクセスし、該当するHTTP・POSTリクエストを目視で確認する。宛先や送信データ(ファイル)に問題がなければ、ワークフロー上で許可する。
(5)ワークフローシステムは、上長Bからの許可が下りた場合、プロキシサーバへ該当するHTTP・POSTリクエストをフォワードする。
(6)プロキシサーバは、該当するHTTP・POSTリクエストをウェブサイトXへ送信する。
【0300】
プロキシサーバは、制御命令217に「UseWorkFlow=ON」が指定されていた場合は、ワークフローシステムへ該当するリクエストをフォワードし、ワークフローシステムの使用を強制する。この結果、例えば、マルウェアがHTTPのPOSTでデータを送信しようとしても、上長Bのチェックが入るため、不審なPOSTは防止される。
【0301】
プロキシサーバと検査サーバが連携しており、検査サーバにおいて、上記のような通信の制御を受け付けて、プロキシサーバを制御するのであれば、制御命令217を検査サーバに送信すればよく、そのフォーマットも検査サーバが解釈可能な形式にすればよい。プロキシサーバとワークフローシステムが連携しており、ワークフローシステムにおいて、上記のような通信の制御を受け付けて、プロキシサーバを制御するのであれば、制御命令217をワークフローシステムに送信すればよく、そのフォーマットもワークフローシステムが解釈可能な形式にすればよい。
【0302】
以上説明したように、本実施の形態において、攻撃判定部107は、攻撃シナリオデータベース111に記憶された攻撃シナリオ204が実行されたと判定した場合、当該攻撃シナリオ204で定義されている複数の攻撃のうち、上記コンピュータシステムに備えられた検知装置により未だ検知されておらず、当該攻撃シナリオ204で定義されている順番が上記検知装置により最後に検知された攻撃(例えば、攻撃A4)よりも後の攻撃(例えば、攻撃A5)を抽出し、上記コンピュータシステムに対し、抽出した攻撃の経路となる通信を制限する。
【0303】
上記のように、本実施の形態では、不審な攻撃シナリオ204に従い不審なHTTP通信や今後の情報漏洩が疑われる場合、プロキシサーバや連携するワークフローシステムにHTTP通信を制御する指示を送ることで、以後、HTTP通信を制御することで被害の拡大を抑制できる効果がある。
【0304】
図16は、実施の形態1〜10に係るセキュリティログ分析装置100のハードウェア構成の一例を示す図である。
【0305】
図16において、セキュリティログ分析装置100は、コンピュータであり、出力装置910、入力装置920、記憶装置930、処理装置940といったハードウェアを備える。ハードウェアは、セキュリティログ分析装置100の各部(本発明の実施の形態の説明において「〜部」として説明するもの)によって利用される。
【0306】
出力装置910は、例えば、LCD(Liquid・Crystal・Display)等の表示装置、プリンタ、通信モジュール(通信回路等)である。出力装置910は、各部(「〜部」)によってデータ、情報、信号の出力(送信)のために利用される。
【0307】
入力装置920は、例えば、キーボード、マウス、タッチパネル、通信モジュール(通信回路等)である。入力装置920は、各部(「〜部」)によってデータ、情報、信号の入力(受信)のために利用される。
【0308】
記憶装置930は、例えば、ROM(Read・Only・Memory)、RAM(Random・Access・Memory)、HDD(Hard・Disk・Drive)、SSD(Solid・State・Drive)である。記憶装置930には、プログラム931、ファイル932が記憶される。プログラム931には、各部(「〜部」)の処理(機能)を実行するプログラムが含まれる。ファイル932には、各部(「〜部」)によって演算、加工、読み取り、書き込み、利用、入力、出力等が行われるデータ、情報、信号(値)等が含まれる。
【0309】
処理装置940は、例えば、CPUである。処理装置940は、バス等を介して他のハードウェアデバイスと接続され、それらのハードウェアデバイスを制御する。処理装置940は、記憶装置930からプログラム931を読み出し、プログラム931を実行する。処理装置940は、各部(「〜部」)によって演算、加工、読み取り、書き込み、利用、入力、出力等を行うために利用される。
【0310】
本発明の実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」であってもよく、また、「〜ステップ」、「〜工程」、「〜手順」、「〜処理」であってもよい。即ち、「〜部」として説明するものは、ソフトウェアのみ、ハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせで実現される。ソフトウェアは、プログラム931として、記憶装置930に記憶される。プログラム931は、本発明の実施の形態の説明で述べる「〜部」としてコンピュータを機能させるものである。或いは、プログラム931は、本発明の実施の形態の説明で述べる「〜部」の処理をコンピュータに実行させるものである。
【0311】
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。或いは、これらの実施の形態のうち、1つを部分的に実施しても構わない。或いは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。例えば、これらの実施の形態の説明において「〜部」として説明するもののうち、いずれか1つのみを採用してもよいし、いずれか2つ以上の任意の組み合わせを採用してもよい。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。