(57)【要約】【課題】  一連の処理を経て実行される不正アクセスをリアルタイムに検知することができるようにする。【解決手段】  パケット５がネットワーク２上で通信されると、そのパケット５がキーデータ抽出手段１ｃで取得され、キーデータが抽出される。次に、進行中シナリオ検索手段１ｄにより、キーデータ抽出手段１ｃが抽出したキーデータを検索キーとして、進行中シナリオ記憶手段１ｂから進行中シナリオが検索される。さらに、照合手段１ｅにより、進行中シナリオ検索手段１ｄで検出された進行中シナリオに続けてパケット５で示される処理を行うことが、不正アクセスシナリオ記憶手段１ａに格納されている不正アクセスシナリオに沿っているかどうかが照合される。そして、レポート出力手段１ｇにより、照合手段１ｅによる照合の結果に基づいて、不正アクセスレポート６が出力される。【選択図】  図１
2005136526.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介した不正アクセスを検出するための不正アクセス検知装置において、
準備動作を経て不正アクセスが実行されるまでに前記ネットワークを介して行われる処理の手順を定義した不正アクセスシナリオが格納された不正アクセスシナリオ記憶手段と、
前記不正アクセスシナリオに沿って前記ネットワークを介して行われた処理の経過を示す進行中シナリオを、前記進行中シナリオに関連する処理と他の処理とを区別するためのキーデータに対応付けて格納する進行中シナリオ記憶手段と、
前記ネットワークを介して通信されるパケットを取得し、取得した前記パケットから前記キーデータを抽出するキーデータ抽出手段と、
前記キーデータ抽出手段が抽出した前記キーデータを検索キーとして、前記進行中シナリオ記憶手段から前記進行中シナリオを検索する進行中シナリオ検索手段と、
前記進行中シナリオ検索手段で検出された前記進行中シナリオに続けて前記パケットで示される処理を行うことが、前記不正アクセスシナリオ記憶手段に格納されている前記不正アクセスシナリオに沿っているかどうかを照合する照合手段と、
前記照合手段による照合の結果、前記不正アクセスシナリオに沿っていると判断されたとき、前記進行中シナリオ記憶手段に格納されている前記進行中シナリオを更新する進行中シナリオ更新手段と、
前記照合手段による照合の結果に基づいて、前記不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポートを出力するレポート出力手段と、
を有することを特徴とする不正アクセス検知装置。
【請求項２】
前記不正アクセスシナリオ記憶手段では、前記不正アクセスシナリオに関し、前記ネットワークを介して行われる処理を示す情報の発信元と宛先とのそれぞれに対して役割が設定されており、
前記照合手段は、前記パケットで示される処理の発信元と宛先とが、前記不正アクセスシナリオで定義された役割を担っているかどうかを判定することを特徴とする請求項１記載の不正アクセス検知装置。
【請求項３】
前記不正アクセスシナリオ記憶手段に格納された前記不正アクセスシナリオは、前記ネットワークを介して行われる処理の指示や応答の際に発生するイベントを契機とした状態遷移によって、準備動作を経て不正アクセスが実行されるまでの処理手順が定義されており、
前記照合手段は、前記パケットで示される処理のイベントによる状態遷移が、前記不正アクセスシナリオに沿っているか否かを判定することを特徴とする請求項１記載の不正アクセス検知装置。
【請求項４】
ネットワークを介した不正アクセスを検出するための不正アクセス検知方法において、
前記ネットワークを介して通信されるパケットを取得し、取得した前記パケットから所定のキーデータを抽出し、
準備動作を経て不正アクセスが実行されるまでに前記ネットワークを介して行われる処理の手順を定義した不正アクセスシナリオに沿って前記ネットワークを介して行われた処理の経過を示す進行中シナリオを、前記進行中シナリオに関連する処理と他の処理とを区別するための前記キーデータに対応付けて格納する進行中シナリオ記憶手段から、前記パケットから抽出した前記キーデータを検索キーとして前記進行中シナリオを検索し、
前記不正アクセスシナリオが格納された不正アクセスシナリオ記憶手段を参照し、検出された前記進行中シナリオに続けて前記パケットで示される処理を行うことが前記不正アクセスシナリオに沿っているかどうかを照合し、
照合の結果、前記不正アクセスシナリオに沿っていると判断されたとき、前記進行中シナリオ記憶手段に格納されている前記進行中シナリオを更新し、
照合の結果に基づいて、前記不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポートを出力する、
ことを特徴とする不正アクセス検知方法。
【請求項５】
ネットワークを介した不正アクセスを検出するための不正アクセス検知プログラムにおいて、
コンピュータを、
準備動作を経て不正アクセスが実行されるまでに前記ネットワークを介して行われる処理の手順を定義した不正アクセスシナリオが格納された不正アクセスシナリオ記憶手段、
前記不正アクセスシナリオに沿って前記ネットワークを介して行われた処理の経過を示す進行中シナリオを、前記進行中シナリオに関連する処理と他の処理とを区別するためのキーデータに対応付けて格納する進行中シナリオ記憶手段、
前記ネットワークを介して通信されるパケットを取得し、取得した前記パケットから前記キーデータを抽出するキーデータ抽出手段、
前記キーデータ抽出手段が抽出した前記キーデータを検索キーとして、前記進行中シナリオ記憶手段から前記進行中シナリオを検索する進行中シナリオ検索手段、
前記進行中シナリオ検索手段で検出された前記進行中シナリオに続けて前記パケットで示される処理を行うことが、前記不正アクセスシナリオ記憶手段に格納されている前記不正アクセスシナリオに沿っているかどうかを照合する照合手段、
前記照合手段による照合の結果、前記不正アクセスシナリオに沿っていると判断されたとき、前記進行中シナリオ記憶手段に格納されている前記進行中シナリオを更新する進行中シナリオ更新手段、
前記照合手段による照合の結果に基づいて、前記不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポートを出力するレポート出力手段、
として機能させるための不正アクセス検知プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータへの不正アクセスを検出するための不正アクセス検知装置、不正アクセス検知方法、および不正アクセス検知プログラムに関し、特に攻撃モデルを用いて不正アクセスを検知する不正アクセス検知装置、不正アクセス検知方法、および不正アクセス検知プログラムに関する。
【背景技術】
【０００２】
近年の情報通信技術の発展に伴い、インターネットを介したサービスの提供が盛んに行われている。たとえば、サービスの提供者は、インターネットを介してアクセス可能なサーバを設置する。そのサーバにおいて、インターネット経由で接続されたクライアント装置に対して各種サービスを提供する。
【０００３】
ただし、サービスを提供するサーバは、インターネットからアクセス可能であるため、不正アクセスによる攻撃の対象になりやすい。そこで、不正アクセスを早期に発見するための技術が必要とされる。
【０００４】
基本的には、不正目的のコマンドを含むアクセス要求を検出することで、不正アクセスを発見できる。具体的には、一般に既知のセキュリティホールに対して攻撃を加えるための不正コマンドのリストを予め登録しておく。そして、リストに登録された不正コマンドを含むアクセス要求を検出すると、そのアクセス要求の受付を拒否すると共に、不正アクセスの発生を管理者に通知する。
【０００５】
たとえば、脆弱性（セキュリティホール）を有するスクリプトとして“ｐｈｆ”が良く知られている。“ｐｈｆ”はウェブサーバ上で動作するスクリプトである。この“ｐｈｆ”が動作するウェブサーバに対して、不正行為者が所定のＨＴＴＰ（HyperText Transfer Protocol）リクエストを送信すると、その不正行為者はパスワードファイルを入手することができる。不正行為者が送信する所定ＨＴＴＰリクエストには、スクリプトを指定するために“ｐｈｆ”という文字列が含まれる。そこで、文字列“ｐｈｆ”を含むＨＴＴＰリクエストを不正アクセスとして検出することができる。
【０００６】
ところが、複数の正規なコマンドを組み合わせることで攻撃する不正アクセスも存在する。たとえば、以下のような順序でサーバに値してコマンドを送ることで、不正アクセスが実行されることがある。
【０００７】
１．「ping＿sweep」：攻撃者は攻撃の第一歩として、ネットワークツールpingを用いて、動作中のマシンのＩＰ（Internet Protocol）アドレスを取得する。
２．「Port＿scan」：攻撃者は動作中のマシンに対して、各ポートをスキャンする（各ＴＣＰ（Transmission Control Protocol）ポートが応答するかどうかを検査する処理）。これによって、攻撃者は該当マシンにおいて提供されているサービスの種別を知ることができる。
【０００８】
３．「Fingerprinting」：攻撃者はあるポートに対して適当なパケットを送りつけ、その反応を確かめることによってサーバのソフトウェアの種別・版数等を推定する。
４．「Hijacking」：サーバで動作するソフトウェアの種別・版数に応じた脆弱性が分かった場合、攻撃者は脆弱性を利用してマシンを乗っ取る（任意のプログラムを該当マシンに実行させることができるようにすること）。
【０００９】
５．「Deploy＿Back＿door」：攻撃者は、乗っ取ったマシンにバックドアプログラムを導入する。バックドアプログラムは、攻撃者による該当マシンの自由な操作を容易にするためのツールである。
【００１０】
このような場合、個々のアクセス要求に含まれるコマンドだけでは、不正を検出することができない。そこで、攻撃の準備行為を状態遷移で表した攻撃モデルを登録しておく。そして、イベントそれぞれを関連付けて手順として検出し、攻撃モデルと比較することで不正アクセスを検知することができる（たとえば、非特許文献１参照）。
【非特許文献１】三友仁史  他、「攻撃モデルを用いたＤＤｏＳ攻撃の予兆検知方式」、情報処理学会  第６５回全国大会、２００３年３月、第６５回情報処理学会全国大会公演論文集  第三分冊ｐ．２０７−２０８
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかし、従来の方式では、大量のイベントが発生するサーバ上では、処理負荷が過大となってしまうという問題がある。すなわち、従来の方式では、リアルタイムに入力されるイベントシーケンスに対し、保持している「それまでのイベント履歴」と攻撃モデルとを照合することで不正アクセスの検知を行う。この場合、イベントが１つ入力されるごとに、全てのイベント履歴を追跡し、攻撃モデル中のイベント遷移が出現するかを判定する必要がある。そのため、長期間の運用によってイベント履歴が膨大になった場合、不正アクセスの検知がリアルタイムに行えない恐れがある。
【００１２】
本発明はこのような点に鑑みてなされたものであり、一連の準備段階の処理を経て実行される不正アクセスをリアルタイムに検知することができる不正アクセス検知装置、不正アクセス検知方法、および不正アクセス検知プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明では上記課題を解決するために、図１に示すような不正アクセス検知装置１が提供される。本発明に係る不正アクセス検知装置１は、ネットワーク２を介した不正アクセスを検出するためのものである。この不正アクセス検知装置１は、以下の要素で構成される。
【００１４】
不正アクセスシナリオ記憶手段１ａは、準備動作を経て不正アクセスが実行されるまでにネットワーク２を介して行われる処理の手順を定義した不正アクセスシナリオが格納されている。進行中シナリオ記憶手段１ｂは、不正アクセスシナリオに沿ってネットワーク２を介して行われた処理の経過を示す進行中シナリオを、進行中シナリオに関連する処理と他の処理とを区別するためのキーデータに対応付けて格納する。キーデータ抽出手段１ｃは、ネットワーク２を介して通信されるパケット５を取得し、取得したパケット５からキーデータを抽出する。進行中シナリオ検索手段１ｄは、キーデータ抽出手段１ｃが抽出したキーデータを検索キーとして、進行中シナリオ記憶手段１ｂから進行中シナリオを検索する。照合手段１ｅは、進行中シナリオ検索手段１ｄで検出された進行中シナリオに続けてパケット５で示される処理を行うことが、不正アクセスシナリオ記憶手段１ａに格納されている不正アクセスシナリオに沿っているかどうかを照合する。進行中シナリオ更新手段１ｆは、照合手段１ｅによる照合の結果、不正アクセスシナリオに沿っていると判断されたとき、進行中シナリオ記憶手段１ｂに格納されている進行中シナリオを更新する。レポート出力手段１ｇは、照合手段１ｅによる照合の結果に基づいて、不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポート６を出力する。
【００１５】
このような不正アクセス検知装置によれば、パケット５がネットワーク２上で通信されると、そのパケット５がキーデータ抽出手段１ｃで取得され、キーデータが抽出される。次に、進行中シナリオ検索手段１ｄにより、キーデータ抽出手段１ｃが抽出したキーデータを検索キーとして、進行中シナリオ記憶手段１ｂから進行中シナリオが検索される。さらに、照合手段１ｅにより、進行中シナリオ検索手段１ｄで検出された進行中シナリオに続けてパケット５で示される処理を行うことが、不正アクセスシナリオ記憶手段１ａに格納されている不正アクセスシナリオに沿っているかどうかが照合される。照合手段１ｅによる照合の結果、不正アクセスシナリオに沿っていると判断されたとき、進行中シナリオ更新手段１ｆにより、進行中シナリオ記憶手段１ｂに格納されている進行中シナリオが更新される。また、レポート出力手段１ｇにより、照合手段１ｅによる照合の結果に基づいて、不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポート６が出力される。
【００１６】
また、本発明では上記課題を解決するために、ネットワークを介した不正アクセスを検出するための不正アクセス検知方法において、前記ネットワークを介して通信されるパケットを取得し、取得した前記パケットから所定のキーデータを抽出し、準備動作を経て不正アクセスが実行されるまでに前記ネットワークを介して行われる処理の手順を定義した不正アクセスシナリオに沿って前記ネットワークを介して行われた処理の経過を示す進行中シナリオを、前記進行中シナリオに関連する処理と他の処理とを区別するためのキーデータに対応付けて格納する進行中シナリオ記憶手段から、前記パケットから抽出した前記キーデータを検索キーとして前記進行中シナリオを検索し、前記不正アクセスシナリオが格納された不正アクセスシナリオ記憶手段を参照し、検出された前記進行中シナリオに続けて前記パケットで示される処理を行うことが前記不正アクセスシナリオに沿っているかどうかを照合し、照合の結果、前記不正アクセスシナリオに沿っていると判断されたとき、前記進行中シナリオ記憶手段に格納されている前記進行中シナリオを更新し、照合の結果に基づいて、前記不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポートを出力する、ことを特徴とする不正アクセス検知方法が提供される。
【００１７】
このような不正アクセス検知方法によれば、パケットがネットワーク上で通信されると、そのパケットからキーデータが抽出される。次に、抽出したキーデータを検索キーとして、進行中シナリオ記憶手段から進行中シナリオが検索される。さらに、検出された進行中シナリオに続けてパケットで示される処理を行うことが、不正アクセスシナリオ記憶手段に格納されている不正アクセスシナリオに沿っているかどうかが照合される。照合の結果、不正アクセスシナリオに沿っていると判断されたとき、進行中シナリオ記憶手段に格納されている進行中シナリオが更新される。また、照合の結果に基づいて、不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポートが出力される。
【００１８】
また、上記課題を解決するために、ネットワークを介した不正アクセスを検出するための不正アクセス検知プログラムにおいて、コンピュータを、準備動作を経て不正アクセスが実行されるまでに前記ネットワークを介して行われる処理の手順を定義した不正アクセスシナリオが格納された不正アクセスシナリオ記憶手段、前記不正アクセスシナリオに沿って前記ネットワークを介して行われた処理の経過を示す進行中シナリオを、前記進行中シナリオに関連する処理と他の処理とを区別するためのキーデータに対応付けて格納する進行中シナリオ記憶手段、前記ネットワークを介して通信されるパケットを取得し、取得した前記パケットから前記キーデータを抽出するキーデータ抽出手段、キーデータ抽出手段が抽出した前記キーデータを検索キーとして、前記進行中シナリオ記憶手段から前記進行中シナリオを検索する進行中シナリオ検索手段、前記進行中シナリオ検索手段で検出された前記進行中シナリオに続けて前記パケットで示される処理を行うことが、前記不正アクセスシナリオ記憶手段に格納されている前記不正アクセスシナリオに沿っているかどうかを照合する照合手段、前記照合手段による照合の結果、前記不正アクセスシナリオに沿っていると判断されたとき、前記進行中シナリオ記憶手段に格納されている前記進行中シナリオを更新する進行中シナリオ更新手段、前記照合手段による照合の結果に基づいて、前記不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポートを出力するレポート出力手段、として機能させるための不正アクセス検知プログラムが提供される。
【００１９】
このような不正アクセス検知プログラムをコンピュータに実行させることで、コンピュータが上記不正アクセス検知装置として機能する。
【発明の効果】
【００２０】
以上説明したように本発明では、キーデータを検索キーとして進行中シナリオを検索し、検出された進行中シナリオに続けてパケットで示される処理を行うことと、不正アクセスシナリオとの照合を行うようにした。そのため、格納されている全ての進行中シナリオの照合を行う必要が無くなり、一連の準備段階の処理を経て実行される不正アクセスをリアルタイムに検知することが可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態を図面を参照して説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
【００２２】
図１は、実施の形態に適用される発明の概念図である。不正アクセス検知装置１は、ネットワーク２を介した不正アクセスを検出するためのものである。図１に示すように、不正アクセス検知装置１は、不正アクセスシナリオ記憶手段１ａ、進行中シナリオ記憶手段１ｂ、キーデータ抽出手段１ｃ、進行中シナリオ検索手段１ｄ、照合手段１ｅ、進行中シナリオ更新手段１ｆ、およびレポート出力手段１ｇを有している。
【００２３】
不正アクセスシナリオ記憶手段１ａには、不正アクセスシナリオが格納されている。不正アクセスシナリオは、準備動作を経て不正アクセスが実行されるまでにネットワーク２を介して行われる処理の手順を定義したものである。たとえば、不正アクセスシナリオは、ネットワーク２を介して行われる処理の指示や応答の際に発生するイベントの遷移によって、準備動作を経て不正アクセスが実行されるまでの処理手順を定義することができる。
【００２４】
進行中シナリオ記憶手段１ｂは、不正アクセスシナリオに沿ってネットワーク２を介して行われた処理の経過を示す進行中シナリオを、進行中シナリオに関連する処理と他の処理とを区別するためのキーデータに対応付けて格納する。キーデータは、たとえば、パケット５の発信元アドレスと宛先アドレスとである。
【００２５】
キーデータ抽出手段１ｃは、ネットワーク２を介して通信されるパケット５を取得し、取得したパケット５からキーデータを抽出する。たとえば、発信元装置３から宛先装置４に対して送信されたパケット５から、発信元装置３のアドレスと宛先装置４のアドレスとが抽出される。
【００２６】
進行中シナリオ検索手段１ｄは、キーデータ抽出手段１ｃが抽出したキーデータを検索キーとして、進行中シナリオ記憶手段１ｂから進行中シナリオを検索する。たとえば、発信元装置３のアドレスと宛先装置４のアドレスとの両方を含む進行中シナリオが検索される。
【００２７】
照合手段１ｅは、進行中シナリオ検索手段１ｄで検出された進行中シナリオに続けてパケット５で示される処理を行うことが、不正アクセスシナリオ記憶手段１ａに格納されている不正アクセスシナリオに沿っているかどうかを照合する。
【００２８】
進行中シナリオ更新手段１ｆは、照合手段１ｅによる照合の結果、不正アクセスシナリオに沿っていると判断されたとき、進行中シナリオ記憶手段１ｂに格納されている進行中シナリオを更新する。
【００２９】
レポート出力手段１ｇは、照合手段１ｅによる照合の結果に基づいて、不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポート６を出力する。たとえば、レポート出力手段１ｇは、進行中シナリオ検索手段１ｄで検出された進行中シナリオが、不正アクセスシナリオの最後の処理まで進行したときに不正アクセスレポート６を出力する。
【００３０】
このような不正アクセス検知装置によれば、パケット５がネットワーク２上で通信されると、そのパケット５がキーデータ抽出手段１ｃで取得され、キーデータが抽出される。次に、進行中シナリオ検索手段１ｄにより、キーデータ抽出手段１ｃが抽出したキーデータを検索キーとして、進行中シナリオ記憶手段１ｂから進行中シナリオが検索される。さらに、照合手段１ｅにより、進行中シナリオ検索手段１ｄで検出された進行中シナリオに続けてパケット５で示される処理を行うことが、不正アクセスシナリオ記憶手段１ａに格納されている不正アクセスシナリオに沿っているかどうかが照合される。照合手段１ｅによる照合の結果、不正アクセスシナリオに沿っていると判断されたとき、進行中シナリオ更新手段１ｆにより、進行中シナリオ記憶手段１ｂに格納されている進行中シナリオが更新される。また、レポート出力手段１ｇにより、照合手段１ｅによる照合の結果に基づいて、不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポート６が出力される。
【００３１】
このように、本発明では、イベント履歴を保持する代わりに、進行中シナリオを、あるキーデータをキーとしてデータベース化して保持することにした。ここで、キーデータは、不正アクセスシナリオ記憶手段１ａ中で定義された不正アクセスシナリオにおいて、シナリオを構成する各イベントに対して共通に関連付けられているべき情報である（たとえば、発信元アドレスや宛先アドレス）。
【００３２】
これにより、リアルタイムに入力されるパケットから抽出されるキーデータに基づき、それらが関連する進行中シナリオをリアルタイムに特定できる。また、不正アクセスシナリオ記憶手段１ａ中の不正アクセスシナリオとの照合も、キーデータにより検出された進行中シナリオに関してのみ行えばよい。そのため、処理時間が短くて済む。その結果、不正アクセスの検知がリアルタイムに行える。
【００３３】
なお、進行中シナリオ記憶手段１ｂにおいて、進行中シナリオに対応付けて、進行中シナリオの進捗度を示す数値を記憶させることもできる。この場合、進行中シナリオ更新手段１ｆは、進捗度の数値を増加させることで、進行中シナリオを更新する。
【００３４】
また、レポート出力手段１ｇは、進捗度が所定の値を超えたとき、不正アクセスレポートを出力するようにすることができる。すなわち、不正アクセスシナリオの最終段階まで進行中シナリオが進んでいなくても、進捗度が有る程度以上進んだ場合、不正アクセスレポート６が出力される。これにより、不正アクセスの予兆が現れたときに不正アクセスレポートを出力できる。
【００３５】
さらに、不正アクセスシナリオ記憶手段１ａでは、不正アクセスシナリオに関し、ネットワーク２を介して行われる処理を示す情報（たとえばパケット）の発信元と宛先とのそれぞれに対して役割を設定することができる。この場合、照合手段１ｅは、パケットで示される処理の発信元と宛先とが、不正アクセスシナリオで定義された役割を担っているかどうかを判定する。すなわち、役割に沿った処理を示すパケットを取得した場合にのみ、進行中シナリオが進行するものと判断される。これにより、役割の異なる３台以上の装置が関係する不正アクセスの検知が可能となる。
【００３６】
また、不正アクセスシナリオは、ネットワーク２を介して行われる処理の指示や応答の際に発生するイベントを契機とした状態遷移によって、準備動作を経て不正アクセスが実行されるまでの処理手順を定義することができる。この場合、照合手段１ｅは、パケット５で示される処理のイベントによる状態遷移が、不正アクセスシナリオに沿っているか否かを判定する。これにより、攻撃の実行までに複数のイベントが複雑に関係し合っている場合であっても、不正アクセスの準備状態の進捗を把握することができる。
【００３７】
また、不正アクセスシナリオには、処理が次の段階へ進行するまでの有効期限を設定することもできる。この場合、照合手段１ｅは、パケットで示される処理が、有効期限内に発生した処理かどうかを判定する。すなわち、有効期限内に次の段階の処理が発生した場合にのみ、進行中シナリオが進行するものと判断される。これにより、途中で処理の進行が中止された進行中シナリオに基づいて、誤って不正アクセスレポートを出力する事態を防止することができる。
【００３８】
このとき、進行中シナリオ更新手段１ｆは、有効期限の切れた進行中シナリオを進行中シナリオ記憶手段１ｂから削除することができる。これにより、途中で停止した不要な進行中シナリオを効率よく削除できる。
【００３９】
また、不正アクセスシナリオは、シナリオが進行する毎に加算される重みを定義することができる。この場合、レポート出力手段１ｇは、重みのトータルが所定値を超えたとき、不正アクセスレポート６を出力する。これにより、不正アクセスが実行される危険性が高くなったときに攻撃の予兆を検知し、実際の攻撃前に不正アクセスレポート６を出力することができる。
【００４０】
また、照合手段１ｅは、将来起こりうる不正シナリオにおける被害の種類、大きさ、期間等について予測することもできる。予測内容に応じた対策を施すことで、不正アクセスの内容に応じた適切な対応が可能となる。
【００４１】
さらに必要に応じて、不正シナリオに関わる装置、ネットワーク２などに関する情報を、ネットワーク２越しに取得、解析することで、将来起こりうる不正シナリオにおける被害を予測することも可能である。
【００４２】
以下に本発明の実施の形態を具体的に説明する。
［第１の実施の形態］
まず、第１の実施の形態について説明する。
【００４３】
図２は、第１の実施の形態に係るネットワークシステムの構成例を示す図である。図２に示すように、イントラネット２１とインターネット２２との間にファイアウォール（ＦＷ）２００が設置されている。ファイアウォール２００はネットワーク１０に接続されている。
【００４４】
ネットワーク１０は、インターネット２２に接続されたクライアント３１，３２，３３，・・・からアクセス可能なネットワークである。ネットワーク１０には、不正アクセス検知装置１００、ウェブサーバ２１０、メールサーバ２２０などが接続されている。ウェブサーバ２１０は、インターネット２２を介してウェブページ等のコンテンツの提供サービスを行うサーバコンピュータである。メールサーバ２２０は、イントラネット２１とインターネット２２とを介した電子メール送受信サービスを行うサーバコンピュータである。
【００４５】
不正アクセス検知装置１００は、ＩＤＳ（侵入検知システム）等の機能を利用してネットワーク１０上の装置へのインターネット２２を介した不正アクセスを監視するコンピュータである。すなわち、ウェブサーバ２１０やメールサーバ２２０は、所定のサービスをインターネット２２を介して提供するため、ＩＰアドレスが公開されている。そのため、ウェブサーバ２１０やメールサーバ２２０は、不正進入等の攻撃を受けやすい。そこで、不正アクセス検知装置１００は、ネットワーク１０を介して伝送されるパケットを監視し、ウェブサーバ２１０やメールサーバ２２０に対する不正アクセスを検出する。
【００４６】
図３は、本発明の実施の形態に用いる不正アクセス検知装置のハードウェア構成例を示す図である。不正アクセス検知装置１００は、ＣＰＵ（Central Processing Unit）１０１によって装置全体が制御されている。ＣＰＵ１０１には、バス１０７を介してＲＡＭ（Random Access Memory）１０２、ハードディスクドライブ（ＨＤＤ:Hard Disk Drive）１０３、グラフィック処理装置１０４、入力インタフェース１０５、および通信インタフェース１０６が接続されている。
【００４７】
ＲＡＭ１０２には、ＣＰＵ１０１に実行させるＯＳ（Operating System）のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、ＲＡＭ１０２には、ＣＰＵ１０１による処理に必要な各種データが格納される。ＨＤＤ１０３には、ＯＳやアプリケーションプログラムが格納される。
【００４８】
グラフィック処理装置１０４には、モニタ１１が接続されている。グラフィック処理装置１０４は、ＣＰＵ１０１からの命令に従って、画像をモニタ１１の画面に表示させる。入力インタフェース１０５には、キーボード１２とマウス１３とが接続されている。入力インタフェース１０５は、キーボード１２やマウス１３から送られてくる信号を、バス１０７を介してＣＰＵ１０１に送信する。
【００４９】
通信インタフェース１０６は、ネットワーク１０に接続されている。通信インタフェース１０６は、ネットワーク１０を介して、他のコンピュータとの間でデータの送受信を行う。
【００５０】
以上のようなハードウェア構成によって、第１の実施の形態の処理機能を実現することができる。なお、図３には、不正アクセス検知装置１００のハードウェア構成を示したが、ファイアウォール２００、ウェブサーバ２１０、メールサーバ２２０、およびクライアント３１，３２，３３，・・・も同様のハードウェア構成で実現することができる。
【００５１】
図４は、第１の実施の形態に係る不正アクセス検知装置の内部構成を示すブロック図である。不正アクセス検知装置１００は、通信処理部１１０、パケットモニタ部１２０、シナリオ検出部１３０、および攻撃レポート部１４０を有している。
【００５２】
通信処理部１１０は、ネットワーク１０を介した通信を行う。この通信処理部１１０は、不正アクセス検知装置１００宛のパケットに限らず、ウェブサーバ２１０やメールサーバ２２０宛のパケットも取り込み、パケットモニタ部１２０へ渡す。
【００５３】
パケットモニタ部１２０は、ネットワーク１０を介して伝送されるパケットを解析し、そのパケットに基づくイベントを検出する。パケットモニタ部１２０は、検出したイベントをシナリオ検出部１３０に渡す。
【００５４】
シナリオ検出部１３０は、パケットモニタ部１２０で検出されたイベントに基づいて、不正アクセスシナリオに沿ったイベント遷移を検出する。そして、検出されたイベント遷移を不正アクセスレポートとして攻撃レポート部１４０に通知する。
【００５５】
攻撃レポート部１４０は、シナリオ検出部１３０から検出されたイベント遷移を元に将来の攻撃予測に関する攻撃レポート４１，４２，４３，・・・を生成し、管理者に対して通知する。攻撃レポート４１，４２，４３，・・・の通知方法として、たとえば、管理者が使用している端末装置の画面にレポートの内容を表示させることができる。また、即時対応が不要な内容のレポートであれば、管理者に対して電子メールにより攻撃レポート４１，４２，４３，・・・を通知することもできる。
【００５６】
このような構成により、ネットワーク１０を介した通信のパケットが通信処理部１１０で取得され、パケットモニタ部１２０でイベントが検出される。検出されたイベントはシナリオ検出部１３０に渡され、不正アクセスシナリオと照合される。不正アクセスシナリオに沿ったイベント遷移が検出されると、その内容が攻撃レポート部１４０に通知され、攻撃レポート４１，４２，４３，・・・が出力される。
【００５７】
次に、シナリオ検出部１３０の詳細について説明する。
図５は、第１の実施の形態のシナリオ検出部の機能を示すブロック図である。シナリオ検出部１３０は、シナリオ定義データベース（ＤＢ）１３１、進行中シナリオＤＢ１３２、関連ホスト抽出部１３３、進行中シナリオ検索部１３４、イベント系列照合部１３５、進行中シナリオ更新部１３６、および検出シナリオ出力部１３７を有している。
【００５８】
図５において、イベント５１，５２，５３，・・・は、ネットワーク１０上でパケットモニタ部１２０によって、リアルタイムに検出されたイベントである。このようなイベント５１，５２，５３，・・・には、その名称（イベントの名前）、発信元ＩＰアドレス、宛先ＩＰアドレス、検出時刻などが情報として含まれている。
【００５９】
また、第１の実施の形態においては、イベントを関連付けるキーデータは「発信元ＩＰアドレス」「宛先ＩＰアドレス」となる。なお、時刻をキーデータとすることもできる。
シナリオ定義ＤＢ１３１は、予め定義された不正アクセスシナリオが格納されたデータベースである。不正アクセスは所定のシナリオに沿って進行することが多いため、シナリオ定義ＤＢ１３１には、不正アクセスシナリオがイベント遷移で表現されている。
【００６０】
進行中シナリオＤＢ１３２は、キーデータによって関連付けられるイベントの遷移（進行中イベント）が登録されたデータベースである。進行中シナリオＤＢ１３２には、発信元ＩＰアドレス、宛先ＩＰアドレス、対応する不正アクセスイベントの名前、進捗度等が進行中のシナリオ毎に登録されている。
【００６１】
関連ホスト抽出部１３３は、リアルタイムに入力されるイベント５１，５２，５３，・・・からキーデータとして、「発信元ＩＰアドレス」と「宛先ＩＰアドレス」とを抽出する。
【００６２】
進行中シナリオ検索部１３４は、関連ホスト抽出部１３３が抽出した「発信元ＩＰアドレス」と「宛先ＩＰアドレス」とを検索キーとして、進行中シナリオＤＢ１３２を検索する。検出された進行中シナリオは、イベント系列照合部１３５に渡される。
【００６３】
イベント系列照合部１３５は、進行中シナリオ検索部１３４により進行中シナリオＤＢ１３２からエントリが検出された場合、そのエントリが保持している「不正アクセスイベントの名前」「進捗度」を取得する。そして、イベント系列照合部１３５は、シナリオ定義ＤＢ１３１を参照し、入力されたイベントの名称に基づき、検出された進行中シナリオから入力されたイベントへの遷移が不正アクセスシナリオに沿っているかどうかを判定する。不正アクセスシナリオに沿ったイベントが発生していれば、その旨が進行中シナリオ更新部１３６に通知される。
【００６４】
また、イベント系列照合部１３５は、シナリオ定義ＤＢ１３１を参照し、入力されたイベントが先頭となるイベント遷移が有る場合、そのイベント遷移が開始されたことを進行中シナリオ更新部１３６に通知する。さらに、イベント系列照合部１３５は、進行中シナリオのイベント遷移が不正アクセスシナリオの終端まで達したとき、進行中シナリオの情報を検出シナリオ出力部１３７に渡す。
【００６５】
進行中シナリオ更新部１３６は、イベント系列照合部１３５からシナリオに沿ったイベント発生の通知を受けて、進行中シナリオＤＢ１３２における該当エントリの「進捗度」を更新する。
【００６６】
また、進行中シナリオ更新部１３６は、シナリオ定義ＤＢ１３１中のエントリにおいて先頭イベントが現在処理中のイベントと同じ場合、これに該当するエントリを進行中シナリオＤＢ１３２に追加する。
【００６７】
検出シナリオ出力部１３７は、イベント系列照合部１３５においてイベント遷移が不正アクセスシナリオの終端まで達したと判断されたとき、不正なアクセスを検出したとして、外部に不正アクセスレポート６１，６２，６３，・・・を出力する。不正アクセスレポート６１，６２，６３，・・・には、検出された進行中シナリオに関する情報（発信元ＩＰアドレスや宛先ＩＰアドレスなど）が含まれる。
【００６８】
図６は、シナリオ定義ＤＢのデータ構造例を示す図である。シナリオ定義ＤＢ１３１には、不正アクセスシナリオ名に対応付けて、不正アクセスが行われるときのイベント遷移が登録されている。イベント遷移は、イベント名の配列で表されている。
【００６９】
たとえば、不正アクセスシナリオＡは、最初にイベントａが発生し、次にイベントｂが発生し、最後にイベントｃ発生するというシナリオを表している。また、不正アクセスシナリオＢは、最初にイベントａが発生し、次にイベントｄが発生し、次にイベントｅ発生し、最後にイベント遷移ｃが発生するというシナリオを表している。
【００７０】
シナリオ定義ＤＢ１３１に定義された不正アクセスシナリオに沿って、キーデータで関連付けられたイベント遷移が発生した場合、不正アクセスが検出されたことになる。
図７は、進行中シナリオＤＢのデータ構造例を示す図である。進行中シナリオＤＢ１３２は、発信元ＩＰアドレスと宛先ＩＰアドレスとの組、不正アクセスシナリオ名、進捗度が互いに関連付けられ、１つのエントリとして登録されている。
【００７１】
各エントリは、装置間の通信における進行中シナリオの進行状況を示している。すなわち、進行中シナリオの「発信元ＩＰアドレス」「宛先ＩＰアドレス」をキーデータ（検索対象項目）として、そのキーデータに対応付けて、不正アクセスシナリオ名や、その進捗度を保持している。進捗度は、現在イベント遷移の何番目まで進行しているのかによって、シナリオの進行状態を示している。
【００７２】
たとえば、発信元ＩＰアドレス「192.168.1.5」の装置と宛先ＩＰアドレス「10.10.100.100」の装置との間では、不正アクセスシナリオＢに沿った進行中シナリオが、２番目のイベントまで進行している。また、発信元ＩＰアドレス「10.1.1.123」の装置と宛先ＩＰアドレス「192.168.30.30」の装置との間では、不正アクセスシナリオＤに沿った進行中シナリオが、３番目のイベントまで進行している。
【００７３】
以上のような構成のシナリオ検出部１３０において、以下のようなシナリオ検出処理が行われる。
図８は、シナリオ検出処理の手順を示すフローチャートである。以下、図８に示す処理をステップ番号に沿って説明する。
【００７４】
［ステップＳ１１］関連ホスト抽出部１３３は、イベントの入力を受け付けると、処理をステップＳ１２に進める。
［ステップＳ１２］関連ホスト抽出部１３３は、入力されたイベントからキーデータを抽出する。第１の実施の形態では、キーデータとして発信元ＩＰアドレスと宛先ＩＰアドレスとが抽出される。抽出されたキーデータは、進行中シナリオ検索部１３４に渡される。
【００７５】
［ステップＳ１３］進行中シナリオ検索部１３４は、関連ホスト抽出部１３３から抽出された発信元ＩＰアドレスと宛先ＩＰアドレスとを検索キーとして、進行中シナリオＤＢ１３２から進行中シナリオのエントリを検索する（２つの検索キーの論理積（ＡＮＤ）を検索条件とする）。そして、進行中シナリオ検索部１３４は、検索結果として得られた進行中シナリオをリストアップする。リストアップされた進行中シナリオは、イベント系列照合部１３５に渡される。
【００７６】
たとえばイベント５１が入力され、そのイベント５１の発信元ＩＰアドレスが「192.168.1.5」、宛先ＩＰアドレスが「10.10.100.100」、イベント名が「e」であった場合を考える。このとき、進行中シナリオＤＢ１３２の内容が図７の通りであれば、イベント５１の発信元ＩＰアドレス及び宛先ＩＰアドレスから、進行中シナリオＤＢ１３２内の第一エントリが検出される。
【００７７】
［ステップＳ１４］イベント系列照合部１３５は、進行中シナリオ検索部１３４によってリストアップされている進行中シナリオがあるか否かを判断する。進行中シナリオがある場合、処理がステップＳ１５に進められる。進行中シナリオが無い場合、処理がステップＳ２２に進められる。
【００７８】
［ステップＳ１５］イベント系列照合部１３５は、リストアップされた１つの進行中シナリオに対し、入力されたイベントによる進行の有無を判定する。
具体的には、イベント系列照合部１３５は、シナリオ定義ＤＢ１３１を参照し、ステップＳ１３で検出された進行中シナリオから入力されたイベントへの遷移と、予め定義されている不正アクセスシナリオとを照合する。次に、イベント系列照合部１３５は、検出された進行中シナリオのイベント遷移が、ステップＳ１１で入力されたイベントへ遷移したときに、不正アクセスシナリオ名で特定される不正アクセスシナリオに沿っているか否かを判断する。イベント遷移（イベント名の配列）が前方一致すれば、不正アクセスシナリオに沿っていると判断される。不正アクセスシナリオに沿ったイベント遷移であれば、イベント系列照合部１３５は、シナリオが進行すると判定する。
【００７９】
たとえば、ステップＳ１３の説明で示したようなイベント５１が入力された場合、シナリオは「不正アクセスシナリオＢ」において「２番目」まで進行していることが分かる。そこでシナリオ定義ＤＢ１３１で「不正アクセスシナリオＢ」を参照すると、イベント名「ｅ」が入力された場合に次の遷移が発生する（すなわち、「状態」が変化する）ことがわかる。ステップＳ１１で入力されたイベント５１の名前は「ｅ」であるため、不正アクセスシナリオに沿ったイベント遷移が発生し、シナリオが進行する。
【００８０】
また、シナリオ定義ＤＢ１３１に定義されている不正アクセスシナリオにおける先頭のイベントに対応するイベントが入力された場合、新規のシナリオのイベント遷移が発生したものと判断される。
【００８１】
［ステップＳ１６］イベント系列照合部１３５は、照合の結果、イベント遷移が発生し、進行中シナリオが進行するか否かを判断する。進行中シナリオが進行する場合、処理がステップＳ１７に進められる。進行中シナリオが進行しない場合、処理がステップＳ２１に進められる。
【００８２】
［ステップＳ１７］進行中シナリオ更新部１３６は、イベント遷移が発生した進行中シナリオのエントリを更新する。具体的には、進行中シナリオ更新部１３６は、該当する進行中シナリオの進捗度を１段階進める。
【００８３】
たとえば、ステップＳ１３の説明で示したようなイベント５１が入力された場合、進行中シナリオＤＢ１３２の第一エントリの「進捗度」が「２番目」から「３番目」に更新される。
【００８４】
［ステップＳ１８］イベント系列照合部１３５は、不正アクセスレポートの出力の要否を判定する。たとえば、イベント系列照合部１３５は、ステップＳ１７で進行させた進行中シナリオが、シナリオ定義ＤＢ１３１に定義された不正アクセスシナリオの終端に達した場合、不正アクセスレポートの出力が必要であると判断する。
【００８５】
［ステップＳ１９］イベント系列照合部１３５は、不正アクセスレポートの出力が必要な場合、不正アクセスが発生したことを検出シナリオ出力部１３７に通知し、処理をステップＳ２０に進める。不正アクセスレポートの出力が不要な場合、処理をステップＳ２１に進める。
【００８６】
［ステップＳ２０］検出シナリオ出力部１３７は、イベント系列照合部１３５から通知された内容に応じた不正アクセスレポートを生成し、出力する。
［ステップＳ２１］イベント系列照合部１３５は、処理対象となっている進行中シナリオを、ステップＳ１３で生成されたリストから削除する。その後、処理がステップＳ１４に進められ、リストアップされている他の進行中シナリオに対して、ステップＳ１４〜ステップＳ２０の処理が行われる。
【００８７】
［ステップＳ２２］リストアップされている進行中シナリオが無くなったとき、進行中シナリオ更新部１３６は、入力されたイベントによって開始する新たな進行中シナリオを、進行中シナリオＤＢ１３２に追加する。すなわち、進行中シナリオ更新部１３６は、シナリオ定義ＤＢ１３１中の不正アクセスシナリオにおいて先頭イベントがステップＳ１１で入力されたイベントと同じ場合、これに該当するエントリ（新規の進行中シナリオ）を進行中シナリオＤＢ１３２に追加する。
【００８８】
たとえば、ステップＳ１３の説明で示したようなイベント５１が入力された場合、シナリオ定義ＤＢ１３１において先頭イベントが「イベントｅ」の不正アクセスシナリオそれぞれに対応付けて、進捗度を「１番目」としたエントリが進行中シナリオＤＢ１３２に追加される。その後、処理が終了する。
【００８９】
このようにして、第１のコンピュータから第２のコンピュータに対して、不正アクセスシナリオに沿ったイベントを含むパケットが送信された場合、不正アクセスを検出して、管理者に通知することができる。この場合、不正アクセスレポートには、攻撃者が使用する装置のＩＰアドレス、攻撃を受けている装置のＩＰアドレス、完了した不正アクセスシナリオの名前等が含まれる。
【００９０】
このように第１の実施の形態では、キーデータが一致する進行中シナリオのイベント遷移のみを調査するため、不正アクセスシナリオとの照合処理が非常に簡単である。その結果、インターネット２２等の大規模なネットワークを介して大量のパケットがネットワーク１０上で送受信されても、リアルタイムに不正アクセスを検出することができる。
【００９１】
特に、不正アクセスには、サーバの負荷を過大にすることでセキュリティホールを発生させる攻撃もある。そのため、トラフィックが混雑している状態でも安定して不正アクセスを検出できることは、システムの安全性を確保する上で重要である。
【００９２】
［第２の実施の形態］
次に、第２の実施の形態について説明する。第２の実施の形態は、イベントの発信元や宛先が変遷するような不正アクセスを検知できるようにしたものである。イベントの発信元や宛先が変遷するような不正アクセスとしては、たとえば、ＤＤｏＳ（Distributed Denial of Service：分散型サービス不能化）攻撃がある。
【００９３】
ＤＤｏＳ攻撃とは、複数の踏み台（ネットワークを介して悪者に乗っ取られた装置）から１つのターゲットに向けて一斉に大量のパケットを送りつける攻撃である。ＤＤｏＳ攻撃は専用のツール（ＤＤｏＳ攻撃発生ツール）を用いて行われることが多く、それには様々な種類がある。
【００９４】
図９は、ＤＤｏＳ攻撃の発生メカニズムを示す概念図である。図９の例では、クライアント３１を利用して、ウェブサーバ２１０に攻撃を加える場合を想定している。
クライアント３１を使用する攻撃者は、インターネット２２からアクセス可能なコンピュータをエージェント２４１，２４２，２４３，・・・として機能させる。クライアント３１から各エージェント２４１，２４２，２４３，・・・へは、ハンドラ２３０を経由して指示を送る。
【００９５】
ここで、「エージェント」とは、ＤＤｏＳ攻撃の目標（任意の装置あるいはネットワーク）に向けて大量のパケットを送りつける処理機能である。すなわち、「エージェント」はターゲットに直接被害を及ぼすホストとなる。
【００９６】
また、「ハンドラ」とは、攻撃者の使用するクライアント３１とエージェント２４１，２４２，２４３，・・・とのインタフェースに相当し、攻撃者がエージェントを操作するための機能である。「ハンドラ」とはエージェントに対して外部から指令を出すホストとなる。
【００９７】
エージェント２４１，２４２，２４３，・・・やハンドラ２３０は、一般にネットワーク越しに攻撃者によって乗っ取られた脆弱なマシンにインストールされる。
攻撃者はクライアント３１を操作し、ハンドラ２３０にコマンドを与える。ハンドラ２３０は、コマンドが与えられると、それをエージェント２４１，２４２，２４３，・・・に対する操作・設定コマンドに変換し、各エージェント２４１，２４２，２４３，・・・に送信する。エージェント２４１，２４２，２４３，・・・は一種のサーバソフトウェアによる処理機能であり、ハンドラ２３０からコマンドを受信すると、その内容に応じた攻撃を実行する。たとえば、攻撃対象のウェブサーバ２１０に対して、大量のパケットを送信する（パケットフラッド）。
【００９８】
これらハンドラ２３０やエージェント２４１，２４２，２４３，・・・をネットワーク上のコンピュータに導入するためのソフトウェアのインストール及び設定は、ネットワークを介して行われる。よって、これらに係る通信は（暗号化されていない限り）ネットワーク上で検出可能である。
【００９９】
そこで、第２の実施の形態では、攻撃者がハンドラ２３０とするコンピュータの乗っ取りや、エージェント２４１，２４２，２４３，・・・へのコマンドの送信等の攻撃のシナリオを不正アクセス検知装置３００に登録する。不正アクセス検知装置３００は、予め登録された不正アクセスシナリオに沿ったイベント遷移を監視する。そして、不正アクセスシナリオに沿ったイベント遷移が攻撃の準備段階まで進んだとき、不正アクセス検知装置３００は、ウェブサーバ２１０の管理者や、ハンドラ２３０やエージェント２４１，２４２，２４３，・・・の管理者へ、不正アクセスの発生の予告通知を行う。
【０１００】
なお、ＤＤｏＳ攻撃では、不正アクセスに関与する装置が多数あるため、２つのコンピュータ間の通信（１台が発信元、他の１台が宛先）のイベント遷移だけを監視したのでは、ＤＤｏＳ攻撃を検出できない。そこで、第２の実施の形態に係る不正アクセス検知装置３００では、不正アクセスシナリオにおいて、各装置の役割に応じたイベント遷移を定義する。
【０１０１】
さらに、不正アクセス検知装置３００は、進行中シナリオを記憶するとき、検出したイベントに関与する装置に、不正アクセスシナリオ上の役割を設定する。そして、役割が設定された各装置間で、各役割に従って不正アクセスシナリオに沿ったイベント遷移が行われたとき、不正アクセス検知装置３００において不正アクセスの検出が行われる。
【０１０２】
なお、図９に示す不正アクセス検知装置３００、ハンドラ２３０、エージェント２４１，２４２，２４３，・・・のハードウェア構成は、図３に示した構成と同様である。
以下、第２の実施の形態に係る不正アクセス検知装置３００の機能について詳細に説明する。
【０１０３】
図１０は、第２の実施の形態に係る不正アクセス検知装置の内部構成を示すブロック図である。不正アクセス検知装置３００は、通信処理部３１０、パケットモニタ部３２０、シナリオ検出部３３０、引数抽出部３４０、および攻撃レポート部３５０を有している。
【０１０４】
通信処理部３１０は、図４に示した第１の実施の形態の通信処理部１１０と同様の機能を有している。パケットモニタ部３２０は、図４に示した第１の実施の形態のパケットモニタ部１２０と同様の機能を有している。ただし、パケットモニタ部３２０は、検出したイベントを、シナリオ検出部３３０だけでなく引数抽出部３４０にも渡す。
【０１０５】
シナリオ検出部３３０は、パケットモニタ部３２０で検出されたイベントに基づいて、不正アクセスシナリオに沿ったイベント遷移を検出する。そして、不正アクセスシナリオに沿ったイベント遷移に基づいて不正アクセスレポートの出力を行う。シナリオ検出部３３０は、不正アクセスレポートを攻撃レポート部３５０に通知する。
【０１０６】
引数抽出部３４０は、パケットモニタ部３２０から受け取ったイベントから、ＤＤｏＳ攻撃におけるハンドラ２３０からエージェント２４１，２４２，２４３，・・・への設定コマンドの引数を抽出する。抽出した引数は攻撃レポート部３５０に渡され、攻撃レポート７１，７２，７３，・・・に反映される。
【０１０７】
攻撃レポート部３５０は、シナリオ検出部３３０から検出されたイベント遷移を元に将来の攻撃に関する攻撃レポート７１，７２，７３，・・・を生成し、処理のコンピュータ（ハンドラ２３０やエージェント２４１，２４２，２４３，・・・）の管理者に対して通知する。攻撃レポート７１，７２，７３，・・・の通知方法として、たとえば、管理者が使用している端末装置の画面にレポートの内容を表示させることができる。また、即時対応が不要な内容のレポートであれば、電子メール等により攻撃レポート７１，７２，７３，・・・を通知することもできる。
【０１０８】
このような構成の不正アクセス検知装置３００のシナリオ検出部３３０において、ＤＤｏＳ攻撃の発生が検出される。
図１１は、第２の実施の形態のシナリオ検出部の機能を示すブロック図である。シナリオ検出部３３０は、役割指定シナリオ定義データベース（ＤＢ）３３１、役割指定進行中シナリオＤＢ３３２、関連ホスト抽出部３３３、役割指定進行中シナリオ検索部３３４、イベント系列照合部３３５、役割指定進行中シナリオ更新部３３６、および検出シナリオ出力部３３７を有している。
【０１０９】
関連ホスト抽出部３３３、イベント系列照合部３３５、および検出シナリオ出力部３３７は、図５に示した第１の実施の形態のシナリオ検出部１３０内の同名の要素と同じ機能を有している。また、シナリオ検出部３３０には、イベント８１，８２，８３，・・・が順次入力され、不正アクセスを検出すると不正アクセスレポート９１，９２，９３，・・・が出力される。
【０１１０】
役割指定シナリオ定義ＤＢ３３１は、予め定義された不正アクセスシナリオが定義されたデータベースである。ただし、役割指定シナリオ定義ＤＢ３３１では、不正アクセスシナリオにおいて、関与する装置の役割が指定されている。たとえば、攻撃者のクライアントとしての役割、ハンドラとしての役割、エージェントとしての役割が指定されている。
【０１１１】
役割指定進行中シナリオＤＢ３３２は、役割が与えられた装置間で発生したイベントの遷移が進行中シナリオとして登録されたデータベースである。
役割指定進行中シナリオ検索部３３４は、関連ホスト抽出部３３３が抽出した「発信元ＩＰアドレス」「宛先ＩＰアドレス」をキーとして、何れかのＩＰアドレスの装置が関与している役割指定進行中シナリオＤＢ３３２を検索する。検出された役割指定進行中シナリオは、イベント系列照合部３３５に渡される。
【０１１２】
イベント系列照合部３３５は、役割指定進行中シナリオ検索部３３４により役割指定進行中シナリオＤＢ３３２から、該当するエントリが検出された場合、そのエントリが保持している「不正アクセスシナリオ名」、「進捗度」を取得する。そして、イベント系列照合部３３５は、役割指定シナリオ定義ＤＢ３３１を参照し、入力されたイベントの名称により、入力されたイベントへの遷移が不正アクセスシナリオに沿っているかどうかを判定する。不正アクセスシナリオに沿ったイベントが発生していれば、その旨が役割指定進行中シナリオ更新部３３６に通知される。
【０１１３】
具体的には、イベント系列照合部３３５は、第２の実施の形態では各装置に役割が指定されているため、「発信元ＩＰアドレス」と「宛先ＩＰアドレス」とのそれぞれに対応する装置の役割を特定する。そして、イベント系列照合部３３５は、役割が特定された装置が、入力されたイベントにおいて、役割指定シナリオ定義ＤＢ３３１で定義されている不正アクセスシナリオに沿った役割を担っている場合、シナリオが進行すると判断される。
【０１１４】
役割指定進行中シナリオ更新部３３６は、イベント系列照合部３３５においてシナリオが進行すると判断されたとき、役割指定進行中シナリオＤＢ３３２内の該当するエントリを更新する。具体的には、役割指定進行中シナリオ更新部３３６は、入力されたイベントから抽出された「発信元ＩＰアドレス」と「宛先ＩＰアドレス」とのそれぞれの役割を設定すると共に、シナリオの進捗度を１段階進める。
【０１１５】
図１２は、役割指定シナリオ定義ＤＢのデータ構造例を示す図である。役割指定シナリオ定義ＤＢ３３１には、不正アクセスシナリオ名とイベント遷移との項目が設けられている。不正アクセスシナリオ名には、ＤＤｏＳ攻撃のシナリオに設定された名称が登録される。イベント遷移には、イベント遷移によって表現されたＤＤｏＳ攻撃のシナリオが登録される、イベント遷移の項目で登録されるイベントは、イベント名に加え、発信元と宛先との役割が設定される。このように、各イベントに「発信元」と「宛先」との装置に対し、「当該シナリオにおける役割」が関連付けられている。
【０１１６】
図１２の例では、不正アクセスシナリオＸのイベント遷移として、イベントａ、イベントｂ、イベントｃが登録されている。イベントａでは、発信元の役割はハンドラであり、宛先の役割はエージェントである。イベントｂでは、発信元の役割はエージェントであり、宛先の役割はハンドラである。イベントｃでは、発信元の役割はエージェントであり、宛先の役割はターゲットである。「ターゲット」とは不正アクセスの被害者である。
【０１１７】
このように、イベント毎に発信元と宛先とに対して役割が設定されている。ある装置（ＩＰアドレスで識別される）に役割が一旦設定されると、その装置は、以後のイベントでも設定されたと通りの役割を担うことになる。たとえば、不正アクセスシナリオＸのイベントａでは、発信元の装置がハンドラとなり、宛先の装置がエージェントとなる。そのため、次にイベントｂが入力された場合、イベントａにおいてハンドラであった装置が宛先であり、イベントａにおいてエージェントであった装置が発信元である場合、そのシナリオが進行する。
【０１１８】
また、イベントｃでは、新たな役割としてターゲットが出現する。したがって、イベントｂでエージェントを担った装置が発信元となるイベントｃが入力されれば、宛先に関係なくシナリオが進行する。
【０１１９】
図１３は、役割指定進行中シナリオＤＢのデータ構造例を示す図である。役割指定進行中シナリオＤＢ３３２には、役割担当ＩＰアドレス、不正アクセスシナリオ名、および進捗度の項目が設けられている。
【０１２０】
役割担当ＩＰアドレスの項目には、役割指定の進行中シナリオにおける最後のイベントでの各装置の役割が設定される。装置はＩＰアドレスによって特定される。なお、役割担当ＩＰアドレスの項目に、過去に入力された全てのイベントにおける各装置の役割を設定しておいてもよい。
【０１２１】
不正アクセスシナリオ名の項目には、進行している不正アクセスシナリオの名称が登録される。
進捗度の項目には、進行中シナリオの進行の度合いが設定される。進捗度は、不正アクセスシーケンス上での何番目のイベントまで進行したのかによって示される。
【０１２２】
以上のような構成のシナリオ検出部３３０により、役割が指定された不正アクセスシナリオに沿って、３台以上の装置が役割に応じたイベントを発生させたとき、不正アクセスが検出される。具体的には、イベント８１，８２，８３，・・・が入力されると、入力されたイベント８１，８２，８３，・・・から、関連ホスト抽出部３３３によりキーデータが抽出される。キーデータは、発信元ＩＰアドレスと宛先ＩＰアドレスとである。
【０１２３】
すると、役割指定進行中シナリオ検索部３３４により、キーデータの少なくとも何れか一方の役割担当ＩＰアドレスに設定されたエントリが、役割指定進行中シナリオＤＢ３３２から検出される。検出されたエントリは、イベント系列照合部３３５に通知される。
【０１２４】
イベント系列照合部３３５では、役割指定シナリオ定義ＤＢ３３１が参照され、役割指定進行中シナリオ検索部３３４で検出されたエントリに対応する不正アクセスシナリオと、入力されたイベントとが照合される。入力されたイベントが、照合対象の不正アクセスシナリオに沿っていれば、シナリオが進行すると判断される。
【０１２５】
シナリオが進行すると判断された場合、役割指定進行中シナリオ更新部３３６により、役割指定進行中シナリオＤＢ３３２内の該当エントリの進捗度が更新される。なお、入力されたイベントが、役割指定シナリオ定義ＤＢ３３１内の不正アクセスシナリオにおける先頭のイベントに相当するとき、役割指定進行中シナリオ更新部３３６は、新たなエントリを役割指定進行中シナリオＤＢ３３２に追加する。
【０１２６】
また、イベント系列照合部３３５でシナリオを進行させると判断したとき、シナリオが最終端まで完了した場合、その旨が検出シナリオ出力部に通知される。すると、検出シナリオ出力部３３７が最終端まで完了したシナリオに関する不正アクセスレポートを出力する。
【０１２７】
このように、第２の実施の形態では、入力されたイベントと、その発信元の装置または宛先の装置が関連して現在進行している進行中シナリオとを、各ホストの役割までを鑑みて不正アクセスシナリオに符合するか否かを判定している。すなわち、不正アクセスシナリオにおいて、各イベントの送信元及び宛先の装置に「役割」を関連付けるものである。そのため、「２装置間による一方通行な不正アクセスシナリオ」に限らずＤＤｏＳ攻撃のように、「双方向通信の含まれるシナリオ」「３者以上の装置が含まれる不正アクセスシナリオ」等を検出することが可能となる。
【０１２８】
［第３の実施の形態］
次に、第３の実施の形態について説明する。第３の実施の形態は、シナリオ定義ＤＢ中の、不正アクセスシナリオを示す「イベント遷移」を、「状態遷移」に拡張するためのものである。
【０１２９】
なお、第３の実施の形態における不正アクセス検知装置の機能の構成要素は、図４、図５に示す第１の実施の形態の構成要素とほぼ同じである。そこで、以下、図４、図５に示した構成を参照して、第１の実施の形態と異なる点について説明する。
【０１３０】
第３の実施の形態に係るシナリオ検出部１３０では、シナリオ定義ＤＢ１３１において、単純なイベントの遷移のみならず、イベントを契機とした状態遷移を格納する。そして、イベント系列照合部１３５において、現在の状態から、入力されたイベントによる遷移があるか否かを照合する。これにより、より複雑なシナリオを簡易に記述でき、攻撃モデルデータベースの縮小化が期待できる。
【０１３１】
図１４は、第３の実施の形態のシナリオ定義ＤＢに定義されるイベント遷移を示す図である。この例では、イベント遷移が、シナリオ状態遷移に置き換えて定義されている。シナリオの状態には、初期状態４１１、中間状態４１２、４１３、終了状態４１４がある。
【０１３２】
初期状態４１１から中間状態４１２へは、イベントａが入力されることで遷移する。初期状態４１１から中間状態４１３へは、イベントｂが入力されることで遷移する。
中間状態４１２から中間状態４１３へは、イベントｃが発生することで遷移する。中間状態４１２から終了状態４１４へは、イベントｄが発生することで遷移する。中間状態４１３から終了状態４１４へは、イベントｆが発生することで遷移する。中間状態４１３のときにイベントｅが発生すると、中間状態４１３が維持される。
【０１３３】
このように、第３の実施の形態では、状態遷移の遷移条件がイベントとなっている。これにより、イベントとシナリオを照合することができる。
なお、状態遷移においては、イベント遷移の先頭に該当する「初期状態」と、終端に該当する「終了状態」が含まれる必要がある。
【０１３４】
また、第３の実施の形態における不正アクセス検知装置の進行中シナリオＤＢ１３２では、各エントリにおいて「進捗度」を「状態名」（図１４の例では中間状態４１２など）で表すこととなる。
【０１３５】
［第４の実施の形態］
次に、第４の実施の形態について説明する。第４の実施の形態では、シナリオ定義データベースに格納されたイベント遷移あるいはイベントを契機とした状態遷移において、遷移それぞれに予め有効期限を設定しておく。そして、現在処理中のイベントと、そのキーデータが関連した進行中シナリオを、各遷移の有効期限までを鑑みてイベント遷移若しくは状態遷移に符合するか否かを判定する。すなわち、入力されたイベントと進行中シナリオとのキーデータが一致しても、進行中シナリオの有効期限を超えていれば、イベントは進行しない。これにより、有効期限以上に発生間隔の離れたイベント同士は、別のシナリオとして処理することができる。
【０１３６】
なお、第４の実施の形態における不正アクセス検知装置の機能の構成要素は、図４、図５に示す第１の実施の形態の構成要素とほぼ同じである。そこで、以下、図４、図５に示した構成を参照して、第１の実施の形態と異なる点について説明する。
【０１３７】
図１５は、第４の実施の形態のシナリオ定義ＤＢに定義されるイベント遷移を示す図である。図１５に示すように、イベント４２１〜４２３の配列でイベント遷移が定義されている。また、シナリオが進行する際の有効期限４２４，４２５が設定されている。
【０１３８】
具体的には、イベント４２１からイベント４２２へ遷移する際の有効期限４２４は、５分である。また、イベント４２２からイベント４２３へ遷移する際の有効期限４２５は、１時間である。
【０１３９】
このように、攻撃モデルを示す不正アクセスシナリオ中のイベント間の遷移に「有効期限」が関連付けられ、進行中シナリオＤＢ１３２中の各エントリにおいて、「前の遷移が発生した時刻」を保持する。イベント系列照合部１３５は、不正アクセスシナリオ中の「有効期限」、進行中シナリオ中の「前の遷移が発生した時刻」及び現在時刻を照合して、遷移が発生するか否かを判定する。
【０１４０】
たとえば、「前の遷移が発生した時刻」が正午であり、その次の遷移の有効期限が５分だった場合、次のイベントの入力が１２時５分以内であればそれに係る遷移は有効となり、１２時５分を過ぎていればそれに係る遷移は無効となる。
【０１４１】
このように、シナリオの進行に有効期限を設けることで、誤った不正アクセスを検出することを防止することができる。
また、進行中シナリオ更新部１３６は、進行中シナリオＤＢ１３２から、有効期限の切れた不要なエントリを削除することができる。この場合、進行中シナリオＤＢ１３２は、シナリオ定義ＤＢ１３１中の「有効期限」、進行中シナリオＤＢ１３２中の「前の遷移が発生した時刻」、及び現在時刻を鑑みて、適当なタイミング（たとえば、所定の時間間隔）で有効期限が切れたエントリを進行中シナリオＤＢ１３２から消去する。
【０１４２】
たとえば、進行中シナリオＤＢ１３２は、１０分ごとに進行中シナリオＤＢ１３２中の有効期限の切れたシナリオを全検索する。そして、進行中シナリオＤＢ１３２は、検出された進行中シナリオのエントリを進行中シナリオＤＢ１３２より削除する。これにより、有効期限の切れたシナリオを１０分以内に削除できる。
【０１４３】
このように、有効期限切れの進行中シナリオを削除することで、途中まで進んだ攻撃が止まった進行中シナリオによって進行中シナリオＤＢ１３２が溢れてしまう事態を回避できる。
【０１４４】
［第５の実施の形態］
次に、第５の実施の形態について説明する。第５の実施の形態では、不正アクセスシナリオの途中の段階まで進行中シナリオが進行したとき、不正アクセスの発生の予兆を通知する不正アクセスレポートを出力する。不正アクセスの予兆は、進行中シナリオが進行する毎に加算される重みによって判断する。すなわち、進行中シナリオの重みのトータルが所定値を超えたときに、不正アクセスの予兆有りと判断される。
【０１４５】
すなわち、第１〜第４の実施の形態では、進行中シナリオが不正アクセスシナリオの終端に達したとき、不正アクセス検出のレポートを出力していた。ところが、不正アクセスシナリオの途中まで進行中シナリオが進行すれば、最終的に攻撃が実行される蓋然性が高いと判断できることがある。そこで、第５の実施の形態では、将来的に攻撃が行われる蓋然性が高いと判断できるときは、これはシナリオの途中の段階でもレポートを出力する。
【０１４６】
なお、第５の実施の形態における不正アクセス検知装置の機能の構成要素は、図４、図５に示す第１の実施の形態の構成要素とほぼ同じである。そこで、以下、図４、図５に示した構成を参照して、第１の実施の形態と異なる点について説明する。
【０１４７】
第５の実施の形態では、シナリオ定義ＤＢ１３１において、予めイベント遷移や状態遷移の各イベントや遷移に重みを付与しておく。
図１６は、第５の実施の形態のイベント遷移ＤＢに設定されるイベント遷移の例を示す図である。図１６に示すようにイベント遷移を構成する各イベント４３１〜４３３には、重み４３４〜４３６が設定されている。たとえば、イベント４３１の重みは１であり、イベント４３２の重みは５であり、イベント４３３の重みは３である。
【０１４８】
また、イベント４３２は、繰り返し発生することがある。たとえば、ポートスキャンのイベントなどは、繰り返し発生する。
そして、不正アクセスシナリオのイベント遷移には、レポート出力閾値が設定されている。レポート出力閾値は、攻撃が行われる蓋然性の有無を判断するための指標である。発生したイベントの重みのトータルがレポート出力閾値を超えたとき、攻撃が行われる予兆有りと判断され、レポート提出が行われる。
【０１４９】
イベントに重みが設定されることにより、進行中シナリオＤＢ１３２には、進捗度の項目に代えて、重みトータルの項目が設けられる。
図１７は、第５の実施の形態における進行中シナリオＤＢのデータ構造例を示す図である。第５の実施の形態における進行中シナリオＤＢ１３２ａには、発信元ＩＰアドレスと宛先ＩＰアドレスとの組、不正アクセスシナリオ名、および重みトータルの項目が設けられている。重みトータルには、対応する進行中シナリオにおいて発生したイベントに設定されている重みのトータルが設定される。
【０１５０】
イベント系列照合部１３５は、イベントが入力されることで進行中シナリオが進行したとき、入力されたイベントの重みを、対象となる進行中シナリオの重みトータルに加算する。そして、加算した後の重みトータルが不正アクセスシナリオのレポート出力閾値を超えたとき、イベント系列照合部１３５は、不正アクセスの発生確率が高いと判断し、その旨を検出シナリオ出力部１３７に伝える。すると、検出シナリオ出力部１３７は、不正アクセスを検出したとして不正アクセスレポートを出力する。
【０１５１】
たとえば、図１６に示すイベント遷移の場合、イベント４３１からイベント４３２に遷移した段階では、重みトータルは「６」であり、レポートは出力されない。その後、イベント４３３が再度発生した場合、重みトータルが「９」となり、レポート出力閾値「８」を超える。したがって、不正アクセスレポートが出力される。
【０１５２】
また、イベント４３１からイベント４３２に遷移し、その後、再度イベント４３２が入力された場合、重みトータルが「１１」となる。この場合にも重みトータルがレポート出力閾値「８」を超えることとなり、不正アクセスレポートが出力される。
【０１５３】
なお、進行中シナリオが進行したときは、進行中シナリオ更新部１３６によって、進行中シナリオＤＢ１３２内の該当エントリにおける重みトータルの値が更新される。すなわち、新たに発生したイベントの重みが、元の重みトータルの値に加算される。
【０１５４】
このように、重みによって不正アクセスの蓋然性を判断できるようにすることで、実際に攻撃が行われる前に、不正アクセスレポートを出力し、システムの管理者に警告を発することができる。
【０１５５】
なお、重みを用いずに、進捗度によって、攻撃の予兆を通知する不正アクセスレポートを出力することもできる。たとえば、不正アクセスシナリオ毎に、何番目のイベントを超えたらレポート出力を行うのかを、閾値として設定しておく。イベント系列照合部１３５は、進行中シナリオの進捗度が閾値を超えたとき、その旨を検出シナリオ出力部１３７に通知する。すると、検出シナリオ出力部１３７において不正アクセスレポートが出力される。
【０１５６】
［第６の実施の形態］
第６の実施の形態は、不正アクセスシナリオにおいて、その状態、含まれるイベント、及びそれに付随するパラメータなどを鑑み、将来起こりうる被害の種類、大きさ等を予測するものである。しかも、予測内容に応じて事前の予防対策を自動的に実施することもできる。
【０１５７】
すなわち、イベント系列で定義された不正アクセスシナリオに沿った進行中シナリオの進行過程で、不正アクセスシナリオ上の以後のイベント遷移を参照することで、将来起こりうるイベントを予測することもできる。しかし、将来起こるイベントが分かっても、それが効果的な不正アクセス回避に繋がるとは限らない。むしろ、将来起こりうる被害の種類、大きさ、時間、期間などが分かったほうが、効果的な不正アクセス回避を行うことができる。
【０１５８】
図１８は、第６の実施の形態に係る不正アクセス検知装置の内部構成を示すブロック図である。不正アクセス検知装置５００は、通信処理部５１０、パケットモニタ部５２０、シナリオ検出部５３０、引数抽出部５４０、攻撃レポート部５５０および事前対策実施部５６０を有している。
【０１５９】
通信処理部５１０は、パケットモニタ部５２０、引数抽出部５４０、および攻撃レポート部５５０については、図１０に示した第２の実施の形態の同名の構成要素と同様の機能を有している。シナリオ検出部５３０は、パケットモニタ部５２０で検出されたイベントに基づいて、不正アクセスシナリオに沿ったイベント遷移を検出する。そして、不正アクセスシナリオに沿ったイベント遷移に基づいて、不正アクセスの予備動作の進行状況に応じて、攻撃の可能性や被害の大きさを予測する。そして、シナリオ検出部５３０は、予測結果を攻撃レポート部５５０に通知する。また、シナリオ検出部５３０は、予測により事前対策が必要と判断された場合、対策要求を事前対策実施部５６０に通知する。
【０１６０】
事前対策実施部５６０は、シナリオ検出部からの対策要求に応じて、攻撃を抑止するための事前対策を実行する。たとえば、不正アクセスの予兆を検出したら、当該通信を以後所定の時間遮断する。
【０１６１】
このような構成の不正アクセス検知装置５００により、不正アクセスの予兆を検知し、攻撃レポート５７１，５７２，５７３，・・・を出力する共に、事前対策を施すことができる。
【０１６２】
図１９は、第６の実施の形態のシナリオ検出部の機能を示すブロック図である。シナリオ検出部５３０は、役割指定シナリオ定義データベース（ＤＢ）５３１、役割指定進行中シナリオＤＢ５３２、関連ホスト抽出部５３３、役割指定進行中シナリオ検索部５３４、イベント系列照合部５３５、役割指定進行中シナリオ更新部５３６、検出シナリオ出力部５３７および対策指示部５３８を有している。
【０１６３】
役割指定シナリオ定義ＤＢ５３１、役割指定進行中シナリオＤＢ５３２、関連ホスト抽出部５３３、役割指定進行中シナリオ検索部５３４、イベント系列照合部５３５、役割指定進行中シナリオ更新部５３６、および検出シナリオ出力部５３７は、図１１に示した第２の実施の形態の同名の構成要素とほぼ同じ機能を有している。以下、これらの構成要素のうち第２の実施の形態と異なる機能について説明するとともに、対策指示部５３８の機能を説明する。
【０１６４】
イベント系列照合部５３５は、役割が指定された不正アクセスシナリオと、進行中シナリオから入力されたイベントに応じた状態遷移との照合を行う。その際、イベント系列照合部５３５は、予め状態毎に設定されている予測インパクト／対策定義テーブルを参照して、インパクト（攻撃開始）までの予想時間、その時間内のインパクトの発生確率、およびインパクトの大きさを判断する。そして、イベント系列照合部５３５は、予想される攻撃の内容に応じた対策を決定する。緊急を要する対策であれば、対策指示部５３８に対して対策の内容が通知される。緊急を要さない対策であれば、検出シナリオ出力部５３７に対策の内容が通知される。
【０１６５】
検出シナリオ出力部５３７は、予想される攻撃の内容を受け取った場合、その攻撃に関する不正アクセスレポートを出力する。出力された不正アクセスレポートは、攻撃レポート部５５０によって、不正アクセス検知装置５００、攻撃の対象となる装置、攻撃の踏み台となる装置等のそれぞれの管理者に通知される。
【０１６６】
対策指示部５３８は、イベント系列照合部５３５から対策内容を受け取ると、その内容の対策要求６２０を生成し、事前対策実施部５６０に渡す。すると、事前対策実施部５６０によって、所定の通信の遮断等の対策が実施される。
【０１６７】
また、第６の実施の形態では、役割指定シナリオ定義ＤＢ５３１は、図１４と同様な状態遷移によって不正アクセスシナリオが定義されている。たとえば、著名なＤＤｏＳ発生ツールであるTrinooに応じた不正アクセスシナリオを役割指定シナリオ定義ＤＢ５３１に登録することができる。
【０１６８】
図２０は、Trinooに対する設定コマンドを示す図である。図２０に示すハンドラ向けコマンドは、攻撃者が、ハンドラに対して入力するコマンドである。エージェント向けコマンドは、入力されたコマンドに応答してハンドラがエージェントに対して送信するコマンドである。攻撃者が、ハンドラに対して図２０の上に記載されているコマンドから順に入力することで、パケットフラッドによる攻撃を指示することができる。
【０１６９】
たとえば、攻撃者が「msize」を入力すると、ハンドラからエージェントに「rsz」が送信される。このコマンドは、エージェントに対して、将来発生させるパケットフラッド中の、ＵＤＰパケットのサイズ（Byte）を引数で設定することを指示している。
【０１７０】
攻撃者が「mtimer」を入力すると、ハンドラからエージェントに「bbb」が送信される。このコマンドは、エージェントに対して、将来発生させるフラッドの長さ（秒）を引数で設定することを指示している。
【０１７１】
攻撃者が「mping」を入力すると、ハンドラからエージェントに「png」が送信される。このコマンドは、全てのエージェントの生死（起動されているか否か）を確認するためのコマンドである。起動されているエージェントのみが、「png」に対して応答を返す。
【０１７２】
攻撃者が「die」を入力すると、ハンドラからエージェントに「d1e」が送信される。このコマンドは、全てのエージェントに対して動作の停止を指示している。
攻撃者が「dos」を入力すると、ハンドラからエージェントに「aaa」が送信される。このコマンドは、エージェントに対して、引数指定したＩＰアドレスにＵＤＰフラッドを発信ことを指示している。
【０１７３】
攻撃者が「mdos」を入力すると、ハンドラからエージェントに「xyz」が送信される。このコマンドは、エージェントに対して、引数指定したＩＰアドレスにＵＤＰフラッドを発信することを指示している。この場合、ＵＤＰフラッドを発信する対象として、複数のＩＰアドレスを指定することもできる。
【０１７４】
これらの指示がハンドラからエージェントに伝えられることで、エージェントによるウェブサーバ等への攻撃が実行される。
そこで、役割指定シナリオ定義ＤＢ５３１には、図２０に示すコマンドに応じたイベント遷移が不正アクセスシナリオとして登録される。
【０１７５】
図２１は、Trinooに応じた不正アクセスシナリオのイベント遷移を示す図である。この例では、イベント遷移が初期状態６３１、中間状態６３２〜６３４、および終了状態６３５，６３６で示されている。
【０１７６】
図２１では、エージェント起動メッセージのイベントが実線の矢印で示されている。設定コマンドのイベントは、点線の矢印で示されている。ＰＯＮＧ（pingへの応答）のイベントは、破線の矢印で示されている。攻撃命令のイベントは、１点鎖線の矢印で示されている。終了命令のイベントは、２点鎖線の矢印で示されている。
【０１７７】
初期状態６３１（「agent＿start（エージェント起動）」の指示待機状態）からエージェント起動メッセージが出力されると、中間状態６３２に状態が遷移する。
中間状態６３２は、「config＿waiting（攻撃態勢完了待ち）」の状態である。中間状態６３２は、攻撃の準備が整っていないため、フラッドが直ぐに発生する可能性は低いと考えられる。中間状態６３２から設定コマンドが発行されると、中間状態６３３に状態が遷移する。また、中間状態６３２からＰＯＮＧが発行されると、中間状態６３４に状態が遷移する。さらに、中間状態６３２から攻撃命令が発行されると、終了状態６３６に状態が遷移する。
【０１７８】
中間状態６３３は、「configured（攻撃態勢完了）」の状態である。中間状態６３３では、パケットフラッドによる攻撃が直ぐに発生する可能性がやや高いと考えられる。中間状態６３３から攻撃指令が発効されると、終了状態６３６に状態が遷移する。また、中間状態６３３から終了命令が発効されると、終了状態６３５に状態が遷移する。さらに、中間状態６３３からＰＯＮＧが発行されると、中間状態６３４に状態が遷移する。
【０１７９】
中間状態６３４は、「UDP＿waiting（ＵＤＰフラッド開始指示待ち）」の状態である。中間状態６３４では、パケットフラッドによる攻撃が直ぐに発生する可能性が高いと考えられる。中間状態６３４から攻撃指令が発効されると、終了状態６３６に状態が遷移する。また、中間状態６３３から終了命令が発効されると、終了状態６３５に状態が遷移する。さらに、中間状態６３４から設定コマンドが発行されると、中間状態６３３に状態が遷移する。
【０１８０】
終了状態６３５は、「died（エージェント停止）」の状態である。終了状態６３５になれば、少なくともこの進行中シナリオによってパケットフラッドが発生する可能性がなくなる。
【０１８１】
終了状態６３６は、「UDP＿flooding（フラッド実行）」の状態である。終了状態６３６の時点では、パケットフラッディングによる攻撃が既に開始されている。
このように、Trinooと呼ばれるツールはコマンドベースで動作し、各コマンドに与える引数を監視することによって、最終的な被害に関する情報（ＤＤｏＳ攻撃の時間、パケットサイズ、等）を類推できる。なお、ＤＤｏＳ攻撃は、いったん攻撃が開始されると被害を回避することは困難と言われている。したがって、ＤＤｏＳ攻撃を予測することで、ＤＤｏＳ攻撃が発生する前に段階的且つ柔軟な対策を選択・実施することが必要である。
【０１８２】
第６の実施の形態では、各状態に対応付けて、その状態のときの予測インパクト／対策定義テーブルが予め設定されている。
図２２は、「UDP＿waiting」の状態に対応する予測インパクト／対策定義テーブルの例を示す図である。予測インパクト／対策定義テーブル６４０には、予測インパクトとして、インパクト（攻撃）までの時間、インパクトの発生確率、インパクトの大きさが設定されている。なお、インパクトの大きさは、「大」、「中」、「小」の３段階で示されている。また、予測インパクトに対して、実施する対策が設定されている。
【０１８３】
図２２の例では、５分以内にインパクトがある確率は７０％であり、そのときのインパクトの大きさは「大」である。１時間以内にインパクトがある確率は１０％であり、そのときのインパクトの大きさは「大」である。１日以内にインパクトがある確率は１０％であり、そのときのインパクトの大きさは「中」である。
【０１８４】
このような予測インパクトの場合、緊急性が高くインパクトも大きいため、当該通信を以後一時間遮断するという実施対策となる。この実施対策を自動実行する場合、通信の遮断を指示する対策要求６２０が事前対策実施部５６０に通知される。すると、事前対策実施部５６０によって、たとえば、ハンドラとエージェントとの間の通信が遮断される。
【０１８５】
図２３は、「config＿waiting」の状態に対応する予測インパクト／対策定義テーブルの例を示す図である。この予測インパクト／対策定義テーブル６５０によれば、１時間以内にインパクトがある確率は１０％であり、そのときのインパクトの大きさは「中」である。１日以内にインパクトがある確率は４０％であり、そのときのインパクトの大きさは「大」である。３日以内にインパクトがある確率は３０％であり、そのときのインパクトの大きさは「大」である。
【０１８６】
このような予測インパクトの場合、図２２に比べ、比較的対策時間に余裕がある（緊急性は低い）。そこで、対策として、攻撃を起こしそうなホストの管理者（管理ホスト）に連絡する。また、当該通信を、以後３日間監視し、必要に応じて遮断する。この実施対策を自動実行する場合、通信の遮断を指示する対策要求６２０が事前対策実施部５６０に通知される。すると、事前対策実施部５６０によって、たとえば、通信の監視が行われる。
【０１８７】
なお、ＤＤｏＳ攻撃のエージェントの種類及びその位置（装置のＩＰアドレス等）を特定できた場合、当該装置や周囲のネットワークのスペックを取得し併せて分析することで、ＤＤｏＳ攻撃の浪費帯域等について予測を行うこともできる。
【産業上の利用可能性】
【０１８８】
なお、上記の実施の形態では、不正アクセス検知装置を単体の装置として説明したが、不正アクセス検知装置の機能をファイアウォールやその他のコンピュータに内蔵することもできる。
【０１８９】
上記の処理機能は、コンピュータによって実現することができる。その場合、不正アクセス検知装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置（ＨＤＤ）、フレキシブルディスク（ＦＤ）、磁気テープなどがある。光ディスクには、ＤＶＤ（Digital Versatile Disc）、ＤＶＤ−ＲＡＭ（Random Access Memory）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＣＤ−Ｒ（Recordable）／ＲＷ（ReWritable）などがある。光磁気記録媒体には、ＭＯ（Magneto-Optical disk）などがある。
【０１９０】
プログラムを流通させる場合には、たとえば、そのプログラムが記録されたＤＶＤ、ＣＤ−ＲＯＭなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１９１】
プログラムを実行するコンピュータは、たとえば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１９２】
（付記１）  ネットワークを介した不正アクセスを検出するための不正アクセス検知装置において、
準備動作を経て不正アクセスが実行されるまでに前記ネットワークを介して行われる処理の手順を定義した不正アクセスシナリオが格納された不正アクセスシナリオ記憶手段と、
前記不正アクセスシナリオに沿って前記ネットワークを介して行われた処理の経過を示す進行中シナリオを、前記進行中シナリオに関連する処理と他の処理とを区別するためのキーデータに対応付けて格納する進行中シナリオ記憶手段と、
前記ネットワークを介して通信されるパケットを取得し、取得した前記パケットから前記キーデータを抽出するキーデータ抽出手段と、
前記キーデータ抽出手段が抽出した前記キーデータを検索キーとして、前記進行中シナリオ記憶手段から前記進行中シナリオを検索する進行中シナリオ検索手段と、
前記進行中シナリオ検索手段で検出された前記進行中シナリオに続けて前記パケットで示される処理を行うことが、前記不正アクセスシナリオ記憶手段に格納されている前記不正アクセスシナリオに沿っているかどうかを照合する照合手段と、
前記照合手段による照合の結果、前記不正アクセスシナリオに沿っていると判断されたとき、前記進行中シナリオ記憶手段に格納されている前記進行中シナリオを更新する進行中シナリオ更新手段と、
前記照合手段による照合の結果に基づいて、前記不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポートを出力するレポート出力手段と、
を有することを特徴とする不正アクセス検知装置。
【０１９３】
（付記２）  前記レポート出力手段は、前記進行中シナリオ検索手段で検出された前記進行中シナリオが、前記不正アクセスシナリオの最後の処理まで進行したときに前記不正アクセスレポートを出力することを特徴とする付記１記載の不正アクセス検知装置。
【０１９４】
（付記３）  前記進行中シナリオ記憶手段は、前記進行中シナリオに対応付けて、前記進行中シナリオの進捗度を示す数値を記憶しており、
前記進行中シナリオ更新手段は、前記進捗度の数値を増加させることで、前記進行中シナリオを更新することを特徴等する付記１記載の不正アクセス検知装置。
【０１９５】
（付記４）  前記レポート出力手段は、前記進捗度が所定の値を超えたとき、前記不正アクセスレポートを出力することを特徴とする付記４記載の不正アクセス検知装置。
（付記５）  前記不正アクセスシナリオ記憶手段では、前記不正アクセスシナリオに関し、前記ネットワークを介して行われる処理を示す情報の発信元と宛先とのそれぞれに対して役割が設定されており、
前記照合手段は、前記パケットで示される処理の発信元と宛先とが、前記不正アクセスシナリオで定義された役割を担っているかどうかを判定することを特徴とする付記１記載の不正アクセス検知装置。
【０１９６】
（付記６）  前記不正アクセスシナリオ記憶手段に格納された前記不正アクセスシナリオは、前記ネットワークを介して行われる処理の指示や応答の際に発生するイベントを契機とした状態遷移によって、準備動作を経て不正アクセスが実行されるまでの処理手順が定義されており、
前記照合手段は、前記パケットで示される処理のイベントによる状態遷移が、前記不正アクセスシナリオに沿っているか否かを判定することを特徴とする付記１記載の不正アクセス検知装置。
【０１９７】
（付記７）  前記不正アクセスシナリオ記憶手段に格納された前記不正アクセスシナリオは、処理が次の段階へ進行するまでの有効期限が設定されており、
前記照合手段は、前記パケットで示される処理が、前記有効期限内に発生した処理かどうかを判定することを特徴とする付記１記載の不正アクセス検知装置。
【０１９８】
（付記８）  前記不正アクセスシナリオ記憶手段に格納された前記不正アクセスシナリオは、シナリオが進行する毎に加算される重みが定義されており、
前記レポート出力手段は、重みのトータルが所定値を超えたとき、前記不正アクセスレポートを出力することを特徴とする付記１記載の不正アクセス検知装置。
【０１９９】
（付記９）  ネットワークを介した不正アクセスを検出するための不正アクセス検知方法において、
前記ネットワークを介して通信されるパケットを取得し、取得した前記パケットから所定のキーデータを抽出し、
準備動作を経て不正アクセスが実行されるまでに前記ネットワークを介して行われる処理の手順を定義した不正アクセスシナリオに沿って前記ネットワークを介して行われた処理の経過を示す進行中シナリオを、前記進行中シナリオに関連する処理と他の処理とを区別するための前記キーデータに対応付けて格納する進行中シナリオ記憶手段から、前記パケットから抽出した前記キーデータを検索キーとして前記進行中シナリオを検索し、
前記不正アクセスシナリオが格納された不正アクセスシナリオ記憶手段を参照し、検出された前記進行中シナリオに続けて前記パケットで示される処理を行うことが前記不正アクセスシナリオに沿っているかどうかを照合し、
照合の結果、前記不正アクセスシナリオに沿っていると判断されたとき、前記進行中シナリオ記憶手段に格納されている前記進行中シナリオを更新し、
照合の結果に基づいて、前記不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポートを出力する、
ことを特徴とする不正アクセス検知方法。
【０２００】
（付記１０）  ネットワークを介した不正アクセスを検出するための不正アクセス検知プログラムにおいて、
コンピュータを、
準備動作を経て不正アクセスが実行されるまでに前記ネットワークを介して行われる処理の手順を定義した不正アクセスシナリオが格納された不正アクセスシナリオ記憶手段、
前記不正アクセスシナリオに沿って前記ネットワークを介して行われた処理の経過を示す進行中シナリオを、前記進行中シナリオに関連する処理と他の処理とを区別するためのキーデータに対応付けて格納する進行中シナリオ記憶手段、
前記ネットワークを介して通信されるパケットを取得し、取得した前記パケットから前記キーデータを抽出するキーデータ抽出手段、
前記キーデータ抽出手段が抽出した前記キーデータを検索キーとして、前記進行中シナリオ記憶手段から前記進行中シナリオを検索する進行中シナリオ検索手段、
前記進行中シナリオ検索手段で検出された前記進行中シナリオに続けて前記パケットで示される処理を行うことが、前記不正アクセスシナリオ記憶手段に格納されている前記不正アクセスシナリオに沿っているかどうかを照合する照合手段、
前記照合手段による照合の結果、前記不正アクセスシナリオに沿っていると判断されたとき、前記進行中シナリオ記憶手段に格納されている前記進行中シナリオを更新する進行中シナリオ更新手段、
前記照合手段による照合の結果に基づいて、前記不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポートを出力するレポート出力手段、
として機能させるための不正アクセス検知プログラム。
【０２０１】
（付記１１）  ネットワークを介した不正アクセスを検出するための不正アクセス検知プログラムを記録したコンピュータ読み取り可能な記録媒体において、
コンピュータを、
準備動作を経て不正アクセスが実行されるまでに前記ネットワークを介して行われる処理の手順を定義した不正アクセスシナリオが格納された不正アクセスシナリオ記憶手段、
前記不正アクセスシナリオに沿って前記ネットワークを介して行われた処理の経過を示す進行中シナリオを、前記進行中シナリオに関連する処理と他の処理とを区別するためのキーデータに対応付けて格納する進行中シナリオ記憶手段、
前記ネットワークを介して通信されるパケットを取得し、取得した前記パケットから前記キーデータを抽出するキーデータ抽出手段、
前記キーデータ抽出手段が抽出した前記キーデータを検索キーとして、前記進行中シナリオ記憶手段から前記進行中シナリオを検索する進行中シナリオ検索手段、
前記進行中シナリオ検索手段で検出された前記進行中シナリオに続けて前記パケットで示される処理を行うことが、前記不正アクセスシナリオ記憶手段に格納されている前記不正アクセスシナリオに沿っているかどうかを照合する照合手段、
前記照合手段による照合の結果、前記不正アクセスシナリオに沿っていると判断されたとき、前記進行中シナリオ記憶手段に格納されている前記進行中シナリオを更新する進行中シナリオ更新手段、
前記照合手段による照合の結果に基づいて、前記不正アクセスシナリオに沿った処理の進行状況を示す不正アクセスレポートを出力するレポート出力手段、
として機能させるための不正アクセス検知プログラムを記録したコンピュータ読み取り可能な記録媒体。
【図面の簡単な説明】
【０２０２】
【図１】実施の形態に適用される発明の概念図である。
【図２】第１の実施の形態に係るネットワークシステムの構成例を示す図である。
【図３】本発明の実施の形態に用いる不正アクセス検知装置のハードウェア構成例を示す図である。
【図４】第１の実施の形態に係る不正アクセス検知装置の内部構成を示すブロック図である。
【図５】第１の実施の形態のシナリオ検出部の機能を示すブロック図である。
【図６】シナリオ定義ＤＢのデータ構造例を示す図である。
【図７】進行中シナリオＤＢのデータ構造例を示す図である。
【図８】シナリオ検出処理の手順を示すフローチャートである。
【図９】ＤＤｏＳ攻撃の発生メカニズムを示す概念図である。
【図１０】第２の実施の形態に係る不正アクセス検知装置の内部構成を示すブロック図である。
【図１１】第２の実施の形態のシナリオ検出部の機能を示すブロック図である。
【図１２】役割指定シナリオ定義ＤＢのデータ構造例を示す図である。
【図１３】役割指定進行中シナリオＤＢのデータ構造例を示す図である。
【図１４】第３の実施の形態のシナリオ定義ＤＢに定義されるイベント遷移を示す図である。
【図１５】第４の実施の形態のシナリオ定義ＤＢに定義されるイベント遷移を示す図である。
【図１６】第５の実施の形態のイベント遷移ＤＢに設定されるイベント遷移の例を示す図である。
【図１７】第５の実施の形態における進行中シナリオＤＢのデータ構造例を示す図である。
【図１８】第６の実施の形態に係る不正アクセス検知装置の内部構成を示すブロック図である。
【図１９】第６の実施の形態のシナリオ検出部の機能を示すブロック図である。
【図２０】Trinooに対する設定コマンドを示す図である。
【図２１】Trinooに応じた不正アクセスシナリオのイベント遷移を示す図である。
【図２２】「UDP＿waiting」の状態に対応する予測インパクト／対策定義テーブルの例を示す図である。
【図２３】「config＿waiting」の状態に対応する予測インパクト／対策定義テーブルの例を示す図である。
【符号の説明】
【０２０３】
１  不正アクセス検知装置
１ａ  不正アクセスシナリオ記憶手段
１ｂ  進行中シナリオ記憶手段
１ｃ  キーデータ抽出手段
１ｄ  進行中シナリオ検索手段
１ｅ  照合手段
１ｆ  進行中シナリオ更新手段
１ｇ  レポート出力手段
２  ネットワーク
３  発信元装置
４  宛先装置
５  パケット
６  不正アクセスレポート
【図１】
2005136526.tif 000003
【図２】
2005136526.tif 000004
【図３】
2005136526.tif 000005
【図４】
2005136526.tif 000006
【図５】
2005136526.tif 000007
【図６】
2005136526.tif 000008
【図７】
2005136526.tif 000009
【図８】
2005136526.tif 000010
【図９】
2005136526.tif 000011
【図１０】
2005136526.tif 000012
【図１１】
2005136526.tif 000013
【図１２】
2005136526.tif 000014
【図１３】
2005136526.tif 000015
【図１４】
2005136526.tif 000016
【図１５】
2005136526.tif 000017
【図１６】
2005136526.tif 000018
【図１７】
2005136526.tif 000019
【図１８】
2005136526.tif 000020
【図１９】
2005136526.tif 000021
【図２０】
2005136526.tif 000022
【図２１】
2005136526.tif 000023
【図２２】
2005136526.tif 000024
【図２３】
2005136526.tif 000025