(57)【要約】【課題】ルータの脆弱性公表からルータでの対策実施までの間のルータへの攻撃を防ぐ、ルータ攻撃検出装置を提供する。【解決手段】ルータ攻撃検出装置１００は、ルータ３００が生成する第１動作ログとルータ３００への攻撃事象のある発生ログとを比較し、第１動作ログに攻撃事象が存在するかを判定する事象発生判定部２１と、攻撃事象が存在する場合、パケット保存ＤＢ１１からパケットを取り出し、仮想ルータ２３へパケットを入力して仮想ルータ２３から第２動作ログを取得し、第２動作ログに発生ログの攻撃事象が存在するかを判定し、存在する場合、第２動作ログでの攻撃事象の発生タイミングと、パケットの仮想ルータ２３への入力タイミングとに基づき、仮想ルータ２３へ入力したパケットが攻撃パケットかを決定する攻撃パケット抽出部２２と、攻撃パケットと決定されたパケットのシグネチャを生成するシグネチャ作成部２４とを備える。【選択図】図１
2020155986.tif 000002
【特許請求の範囲】
【請求項１】
パケットの入力に伴ってルータが生成する第１動作ログと、前記ルータへの攻撃事象が記載されている発生ログとの比較により、前記第１動作ログに前記攻撃事象が存在するかどうかを判定する攻撃事象判定部と、
前記第１動作ログに前記攻撃事象が存在すると判定された場合、前記ルータに入力されるパケットを格納するパケット格納装置から攻撃パケットの候補となる候補パケットを取り出し、前記ルータに代替する代替ルータへ前記候補パケットを入力し、前記候補パケットの入力に伴って前記代替ルータが生成する第２動作ログを取得し、前記発生ログと前記第２動作ログとの比較により、前記第２動作ログに前記攻撃事象が存在するかどうかを判定し、前記第２動作ログに前記攻撃事象が存在する場合、前記第２動作ログでの前記攻撃事象の発生タイミングと、前記候補パケットの前記代替ルータへの入力タイミングとに基づいて、前記攻撃パケットとなる候補パケットを決定する攻撃パケット決定部と、
前記攻撃パケットと決定された前記候補パケットの有するパケット情報を用いて、前記ルータへ入力される前記パケットが前記攻撃パケットかどうかを特定するシグネチャを生成するシグネチャ作成部と
を備えるルータ攻撃検出装置。
【請求項２】
前記攻撃パケット決定部は、前記候補パケットとして、
前記第１動作ログに前記攻撃事象が存在すると判定された判定時刻から定まる一定期間に前記パケット格納装置に格納されたパケットを取り出す請求項１に記載のルータ攻撃検出装置。
【請求項３】
前記攻撃パケット決定部は、
安全な安全パケットの有するパケット情報が記載されたホワイトリストの前記パケット情報と、前記候補パケットの有するパケット情報との比較により、前記安全パケットである前記候補パケットを決定し、前記安全パケットと決定された前記候補パケットを前記代替ルータへの入力から除外する請求項１または請求項２に記載のルータ攻撃検出装置。
【請求項４】
前記攻撃パケット決定部は、
攻撃パケットである可能性を予測する情報が記載されている攻撃パケット予測情報を用いて、前記候補パケットが前記攻撃パケットである確度を決定し、前記攻撃パケットである確度の高い順に前記代替ルータへ、前記候補パケットを入力する請求項１から請求項３のいずれか一項に記載のルータ攻撃検出装置。
【請求項５】
前記シグネチャ作成部は、
前記シグネチャとして、前記攻撃パケットと決定された複数の前記候補パケットに共通する項目を有する共通項目シグネチャを作成する請求項１から請求項４のいずれか一項に記載のルータ攻撃検出装置。
【請求項６】
コンピュータに、
パケットの入力に伴ってルータが生成する第１動作ログと、前記ルータへの攻撃事象が記載されている発生ログとの比較により、前記第１動作ログに前記攻撃事象が存在するかどうかを判定する攻撃事象判定処理と、
前記第１動作ログに前記攻撃事象が存在すると判定された場合、前記ルータに入力されるパケットを格納するパケット格納装置から攻撃パケットの候補となる候補パケットを取り出し、前記ルータに代替する代替ルータへ前記候補パケットを入力し、前記候補パケットの入力に伴って前記代替ルータが生成する第２動作ログを取得し、前記発生ログと前記第２動作ログとの比較により、前記第２動作ログに前記攻撃事象が存在するかどうかを判定し、前記第２動作ログに前記攻撃事象が存在する場合、前記第２動作ログでの前記攻撃事象の発生タイミングと、前記候補パケットの前記代替ルータへの入力タイミングとに基づいて、前記攻撃パケットとなる候補パケットを決定する攻撃パケット決定処理と、
前記攻撃パケットと決定された前記候補パケットの有するパケット情報を用いて、前記ルータへ入力される前記パケットが前記攻撃パケットかどうかを特定するシグネチャを生成するシグネチャ作成処理と
を実行させるルータ攻撃検出プログラム。
【請求項７】
コンピュータが、
パケットの入力に伴ってルータが生成する第１動作ログと、前記ルータへの攻撃事象が記載されている発生ログとの比較により、前記第１動作ログに前記攻撃事象が存在するかどうかを判定し、
前記第１動作ログに前記攻撃事象が存在すると判定された場合、前記ルータに入力されるパケットを格納するパケット格納装置から攻撃パケットの候補となる候補パケットを取り出し、前記ルータに代替する代替ルータへ前記候補パケットを入力し、前記候補パケットの入力に伴って前記代替ルータが生成する第２動作ログを取得し、前記発生ログと前記第２動作ログとの比較により、前記第２動作ログに前記攻撃事象が存在するかどうかを判定し、前記第２動作ログに前記攻撃事象が存在する場合、前記第２動作ログでの前記攻撃事象の発生タイミングと、前記候補パケットの前記代替ルータへの入力タイミングとに基づいて、前記攻撃パケットとなる候補パケットを決定し、
前記攻撃パケットと決定された前記候補パケットの有するパケット情報を用いて、前記ルータへ入力される前記パケットが前記攻撃パケットかどうかを特定するシグネチャを生成するルータ攻撃検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ルータ攻撃検出装置、ルータ攻撃検出プログラム及びルータ攻撃検出方法に関する。
【背景技術】
【０００２】
インターネットに接続するルータに脆弱性が公表された場合、そのルータで脆弱性対策が実施されるまでの間に外部から攻撃され、サービス不能（ＤｏＳ）、ハングアップ及び任意コード実行のような事象が起きるリスクがある。
このようなリスクに対しては、ルータとインターネットの間に存在するＩＤＳ／ＩＰＳのようなセキュリティ機器によって、攻撃を一部防御できる。ここで、ＩＤＳ／ＩＰＳでの攻撃検知方法にはアノマリ型とシグネチャ型がある（例えば特許文献１）。
【０００３】
アノマリ型は、トラフィックを分析して、統計的に異常なパケットを攻撃として検知するため、未知のパターンの攻撃を検知することは可能であるが、統計的処理のため、攻撃の通過や、正常通信を攻撃と判定する「誤検知」が起こる可能性がある。
【０００４】
シグネチャ型は、事前に登録したパターンとパケットとの照合により、攻撃を精度高く検知できる。しかし、新たな攻撃については、パターンを管理者が作成しない限り検知できず、作成までに時間がかかることもあり、また、管理者は情報不足によりパターンを作成できないこともある。
【０００５】
従って、脆弱性公表からルータで対策が実施されるまでの間、アノマリ型及びシグネチャ型の対策では攻撃を防げない場合がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１８−１２１２６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明は、ルータの脆弱性公表からルータで脆弱性対策が実施されるまでの間、ルータへの攻撃を防ぐ、ルータ攻撃検出装置の提供を目的とする。
【課題を解決するための手段】
【０００８】
この発明のルータ攻撃検出装置は、
パケットの入力に伴ってルータが生成する第１動作ログと、前記ルータへの攻撃事象が記載されている発生ログとの比較により、前記第１動作ログに前記攻撃事象が存在するかどうかを判定する攻撃事象判定部と、
前記第１動作ログに前記攻撃事象が存在すると判定された場合、前記ルータに入力されるパケットを格納するパケット格納装置から攻撃パケットの候補となる候補パケットを取り出し、前記ルータに代替する代替ルータへ前記候補パケットを入力し、前記候補パケットの入力に伴って前記代替ルータが生成する第２動作ログを取得し、前記発生ログと前記第２動作ログとの比較により、前記第２動作ログに前記攻撃事象が存在するかどうかを判定し、前記第２動作ログに前記攻撃事象が存在する場合、前記第２動作ログでの前記攻撃事象の発生タイミングと、前記候補パケットの前記代替ルータへの入力タイミングとに基づいて、前記攻撃パケットとなる候補パケットを決定する攻撃パケット決定部と、
前記攻撃パケットと決定された前記候補パケットの有するパケット情報を用いて、前記ルータへ入力される前記パケットが前記攻撃パケットかどうかを特定するシグネチャを生成するシグネチャ作成部と
を備える。
【０００９】
前記攻撃パケット決定部は、前記候補パケットとして、
前記第１動作ログに前記攻撃事象が存在すると判定された判定時刻から定まる一定期間に前記パケット格納装置に格納されたパケットを取り出す。
【００１０】
前記攻撃パケット決定部は、
安全な安全パケットの有するパケット情報が記載されたホワイトリストの前記パケット情報と、前記候補パケットの有するパケット情報との比較により、前記安全パケットである前記候補パケットを決定し、前記安全パケットと決定された前記候補パケットを前記代替ルータへの入力から除外する。
【００１１】
前記攻撃パケット決定部は、
攻撃パケットである可能性を予測する情報が記載されている攻撃パケット予測情報を用いて、前記候補パケットが前記攻撃パケットである確度を決定し、前記攻撃パケットである確度の高い順に前記代替ルータへ、前記候補パケットを入力する。
【００１２】
前記シグネチャ作成部は、
前記シグネチャとして、前記攻撃パケットと決定された複数の前記候補パケットに共通する項目を有する共通項目シグネチャを作成する。
【００１３】
この発明のルータ攻撃検出プログラムは、
コンピュータに、
パケットの入力に伴ってルータが生成する第１動作ログと、前記ルータへの攻撃事象が記載されている発生ログとの比較により、前記第１動作ログに前記攻撃事象が存在するかどうかを判定する攻撃事象判定処理と、
前記第１動作ログに前記攻撃事象が存在すると判定された場合、前記ルータに入力されるパケットを格納するパケット格納装置から攻撃パケットの候補となる候補パケットを取り出し、前記ルータに代替する代替ルータへ前記候補パケットを入力し、前記候補パケットの入力に伴って前記代替ルータが生成する第２動作ログを取得し、前記発生ログと前記第２動作ログとの比較により、前記第２動作ログに前記攻撃事象が存在するかどうかを判定し、前記第２動作ログに前記攻撃事象が存在する場合、前記第２動作ログでの前記攻撃事象の発生タイミングと、前記候補パケットの前記代替ルータへの入力タイミングとに基づいて、前記攻撃パケットとなる候補パケットを決定する攻撃パケット決定処理と、
前記攻撃パケットと決定された前記候補パケットの有するパケット情報を用いて、前記ルータへ入力される前記パケットが前記攻撃パケットかどうかを特定するシグネチャを生成するシグネチャ作成処理とを実行させる。
【００１４】
この発明のルータ攻撃検出方法は、
コンピュータが、
パケットの入力に伴ってルータが生成する第１動作ログと、前記ルータへの攻撃事象が記載されている発生ログとの比較により、前記第１動作ログに前記攻撃事象が存在するかどうかを判定し、
前記第１動作ログに前記攻撃事象が存在すると判定された場合、前記ルータに入力されるパケットを格納するパケット格納装置から攻撃パケットの候補となる候補パケットを取り出し、前記ルータに代替する代替ルータへ前記候補パケットを入力し、前記候補パケットの入力に伴って前記代替ルータが生成する第２動作ログを取得し、前記発生ログと前記第２動作ログとの比較により、前記第２動作ログに前記攻撃事象が存在するかどうかを判定し、前記第２動作ログに前記攻撃事象が存在する場合、前記第２動作ログでの前記攻撃事象の発生タイミングと、前記候補パケットの前記代替ルータへの入力タイミングとに基づいて、前記攻撃パケットとなる候補パケットを決定し、
前記攻撃パケットと決定された前記候補パケットの有するパケット情報を用いて、前記ルータへ入力される前記パケットが前記攻撃パケットかどうかを特定するシグネチャを生成する。
【発明の効果】
【００１５】
本発明によれば、ルータの脆弱性公表からルータで脆弱性対策が実施されるまでの間、ルータへの攻撃を防ぐ、ルータ攻撃検出装置を提供できる。
【図面の簡単な説明】
【００１６】
【図１】実施の形態１の図で、ルータ攻撃検出装置１００の機能ブロック図。
【図２】実施の形態１の図で、ルータ攻撃検出装置１００のハードウェア構成を示す図。
【図３】実施の形態１の図で、ルータ攻撃検出装置１００の動作を説明するフローチャート。
【図４】実施の形態１の図で、パケット一時保存ＤＢ１１が保存する保存パケット情報１１ａを示す図。
【図５】実施の形態１の図で、ログ保存ＤＢ１２が一時的に保存する保存ログ情報１２ａを示す図。
【図６】実施の形態１の図で、ホワイトリストＤＢ１３が保存するホワイトリスト１３ａを示す図。
【図７】実施の形態１の図で、脆弱性情報ＤＢ１４が格納している脆弱性情報１４０Ａを示す図。
【図８】実施の形態１の図で、実事象発生通知２１ａを示す図。
【図９】実施の形態１の図で、シグネチャＤＢ１５が格納しているシグネチャ情報１５ａを示す図。
【図１０】実施の形態１の図で、攻撃パケット抽出部２２が攻撃パケット７０１を抽出する動作を示すフローチャート。
【図１１】実施の形態１の図で、攻撃パケット抽出部２２が攻撃パケット７０１を抽出する動作を示す続きのフローチャート。
【発明を実施するための形態】
【００１７】
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
【００１８】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１から図１１を参照して、実施の形態１のルータ攻撃検出装置１００を説明する。
図１は、ルータ攻撃検出装置１００の機能ブロックを示している。また図１は、ルータ攻撃検出装置１００が使用されるシステムの概要を示している。ルータ攻撃検出装置１００は、インターネット６００に接続している。インターネット６００からはルータ３００へパケットが入力される。ルータ攻撃検出装置１００はインターネット６００とルータ３００との間に接続されている。またルータ３００とルータ攻撃検出装置１００との間にはスイッチ２１０が接続されている。内部ＩＰネットワーク５００とルータ３００との間には、スイッチ２２０が接続されている。
【００１９】
攻撃者４００は、ルータ３００への攻撃のため、インターネット６００経由で攻撃パケット７０１をルータ３００へ送信する。攻撃パケット７０１は、ルータ脆弱性を突く、加工されたパケットである。
【００２０】
図１では、以下を前提としている。
（１）攻撃者４００
（１．１）攻撃者４００は何らかの手段で攻撃対象（ＩＰアドレス）と内在している脆弱性を把握している。
（１．２）攻撃者４００は攻撃対象にダメージを与えるため、同じ脆弱性を突いた攻撃を繰り返し行い、通常の利用者が攻撃対象のサービスを利用できない状態にさせる目的を持っている。
（１．３）攻撃者４００はルータ３００で対処されていない既知の脆弱性を攻撃に使用する。攻撃者４００が操れる攻撃元装置（ＩＰアドレス）の数は限界があり、したがって、攻撃元のＩＰアドレスのバリエーションには限度がある。
（２）攻撃対象（攻撃を受けるサービス提供者）
（２．１）接続元のＩＰアドレスを絞り込むことはできないものとする。
（２．２）既知の脆弱性であっても、即時にはソフトウェアバージョンアップの対応が出来ない環境であるとする。
（３）その他
数分間など短時間で影響が出る攻撃を対象とする。
【００２１】
ルータ攻撃検出装置１００は、パケット保存ＤＢ１１、ログ保存ＤＢ１２、ホワイトリストＤＢ１３、脆弱性情報ＤＢ１４、シグネチャＤＢ１５、事象発生判定部２１、攻撃パケット抽出部２２、仮想ルータ２３、シグネチャ作成部２４を備えている。仮想ルータ２３は代替ルータである。仮想ルータ２３はソフトウェアで実現することを想定しているが、現物のハードウェアを用いてもよい。なおＤＢはデータベースを示す。これらの機能は後述する。事象発生判定部２１は、攻撃事象判定部である。攻撃パケット抽出部２２は、攻撃パケット決定部である。パケット保存ＤＢ１１はパケット格納装置である。
【００２２】
図２は、ルータ攻撃検出装置１００のハードウェア構成を示す。ルータ攻撃検出装置１００は、コンピュータである。ルータ攻撃検出装置１００は、プロセッサ１１０を備えるとともに、主記憶装置１２０、補助記憶装置１３０、入力ＩＦ１４０、出力ＩＦ１５０及び通信ＩＦ１６０といった他のハードウェアを備える。なおＩＦはインタフェースを示す。プロセッサ１１０は、信号線１７０を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【００２３】
ルータ攻撃検出装置１００は、機能要素として、事象発生判定部２１、攻撃パケット抽出部２２、仮想ルータ２３、シグネチャ作成部２４を備える。仮想ルータ２３はソフトウェアで実現される仮想的なルータである。事象発生判定部２１、攻撃パケット抽出部２２、仮想ルータ２３及びシグネチャ作成部２４の機能は、ルータ攻撃検出プログラム１０１により実現される。
【００２４】
プロセッサ１１０は、ルータ攻撃検出プログラム１０１を実行する装置である。ルータ攻撃検出プログラム１０１は、事象発生判定部２１、攻撃パケット抽出部２２、仮想ルータ２３及びシグネチャ作成部２４の機能を実現するプログラムである。プロセッサ１１０は、演算処理を行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ１１０の具体例は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）、ＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。
【００２５】
主記憶装置１２０は記憶装置である。主記憶装置１２０の具体例は、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。主記憶装置１２０は、プロセッサ１１０の演算結果を保持する。
【００２６】
補助記憶装置１３０は、データを不揮発的に保管する記憶装置である。補助記憶装置１３０の具体例は、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）である。また、補助記憶装置１３０は、ＳＤ（登録商標）（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）メモリカード、ＮＡＮＤフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ（登録商標）ディスク、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）といった可搬記録媒体であってもよい。
補助記憶装置１３０は、ルータ攻撃検出プログラム１０１、パケット保存ＤＢ１１、ログ保存ＤＢ１２、ホワイトリストＤＢ１３、脆弱性情報ＤＢ１４、シグネチャＤＢ１５を格納している。なお、ルータ攻撃検出プログラム１０１、パケット保存ＤＢ１１、ログ保存ＤＢ１２、ホワイトリストＤＢ１３、脆弱性情報ＤＢ１４、シグネチャＤＢ１５のようなデータは、クラウドサーバのような他の装置に格納されており、ルータ攻撃検出装置１００が他の装置から取得してもよい。
【００２７】
入力ＩＦ１４０は、各種機器が接続され、各種機器からデータが入力されるポートである。出力ＩＦ１５０は、各種機器が接続され、各種機器にプロセッサ１１０によりデータが出力されるポートである。通信ＩＦ１６０はプロセッサが他の装置と通信するための通信ポートである。
【００２８】
プロセッサ１１０は補助記憶装置１３０からルータ攻撃検出プログラム１０１を主記憶装置１２０にロードし、主記憶装置１２０からルータ攻撃検出プログラム１０１を読み込み実行する。主記憶装置１２０には、ルータ攻撃検出プログラム１０１だけでなく、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）も記憶されている。プロセッサ１１０は、ＯＳを実行しながら、ルータ攻撃検出プログラム１０１を実行する。ルータ攻撃検出装置１００は、プロセッサ１１０を代替する複数のプロセッサを備えていてもよい。これら複数のプロセッサは、ルータ攻撃検出プログラム１０１の実行を分担する。それぞれのプロセッサは、プロセッサ１１０と同じように、ルータ攻撃検出プログラム１０１を実行する装置である。ルータ攻撃検出プログラム１０１により利用、処理または出力されるデータ、情報、信号値及び変数値は、主記憶装置１２０、補助記憶装置１３０、または、プロセッサ１１０内のレジスタあるいはキャッシュメモリに記憶される。
【００２９】
ルータ攻撃検出プログラム１０１は、事象発生判定部２１、攻撃パケット抽出部２２、仮想ルータ２３及びシグネチャ作成部２４の「部」及び「仮想ルータ」を、「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程をコンピュータに実行させるプログラムである。
【００３０】
また、ルータ攻撃検出プログラム１０１は、コンピュータであるルータ攻撃検出装置１００が、ルータ攻撃検出プログラム１０１を実行することにより行われる方法である。ルータ攻撃検出プログラム１０１は、コンピュータ読み取り可能な記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
【００３１】
＊＊＊動作の説明＊＊＊
図３は、ルータ攻撃検出装置１００の動作を説明するフローチャートである。図３を参照して、ルータ攻撃検出装置１００の動作を説明する。ルータ攻撃検出装置１００の動作は、ルータ攻撃検出方法に相当する。ルータ攻撃検出装置１００の動作は、ルータ攻撃検出プログラム１０１の処理に相当する。
【００３２】
＜ステップＳ１１＞
ステップＳ１１において、図１で述べたように、攻撃パケット７０１を含む複数のパケットが、インターネット６００を介してルータ３００へ送信される。パケット保存ＤＢ１１は、インターネット６００からルータ３００へ送信されたパケットを、保存パケット情報１１ａとして一時的に保存する。
図４は、パケット一時保存ＤＢ１１が保存する保存パケット情報１１ａを示す。保存パケット情報１１ａでは例１と例２を示している。保存パケット情報１１ａは、項目として、１．パケット番号、２．パケットの受信時刻、３．レイヤ３、４プロトコル、４．送信元ＩＰアドレス、５．送信元ポート、６．宛先ＩＰアドレス、７．宛先ポート、８．ペイロードデータ、９．パケット長を含む。
「１．パケット番号」は、受信順に昇順で整数が付与される。「２．パケットの受信時刻」は、日付を含む。「３．レイヤ３、４プロトコル」のプロトコル名は、ＩＣＭＰ，ＩＰ，ＴＣＰ，ＵＤＰ，ＥＳＰ，ＩＫＥｖ１，ＩＫＥｖ２，．．．のような名称である。「５．送信元ポート」は、ＴＣＰ／ＵＤＰポート番号である。「７．宛先ポート」は、ＴＣＰ／ＵＤＰポート番号である。「８．ペイロードデータ」は、プロトコルで送信するデータ内容である。「９．パケット長さ」は、ＩＰパケット長である。
【００３３】
＜ステップＳ１２＞
ステップＳ１２において、ログＤＢ１２は、ルータ３００および接続機器であるスイッチ２１０，２２０が、パケットの受信に伴って作成する、動作ログ及び操作ログを、一時的に保存する。
図５は、ログ保存ＤＢ１２が一時的に保存する保存ログ情報１２ａを示す。図５では、保存ログ情報１２ａとして、例１及び例２を示している。保存ログ情報１２ａとは、ルータ３００、接続機器であるスイッチ２１０，２２０から受信したシステムログ、稼働データである。受信したデータは時刻情報が付与されて保存ログ情報１２ａとして保存される。ログの種別は、１から４の以下を想定している。ログ種別１＝システムログ、ログ種別２＝ＳＮＭＰＴｒａｐ（ルータ）、ログ種別３＝ＳＮＭＰＴｒａｐ（周辺機器）、ログ種別４＝その他である。図５に示すように、保存ログ情報１２ａは項目として、１．データの日付を含む受信時刻、２．ログ種別、３．ログデータを含む。
【００３４】
＜ステップＳ１３＞
ステップＳ１３において、ホワイトリストＤＢ１３は、安全な接続元アドレス情報を記載したホワイトリスト１３ａを、事前に格納する。
図６は、ホワイトリストＤＢ１３が保存するホワイトリスト１３ａを示す。図６に示すように、ホワイトリスト１３ａは項目として、ＩＰアドレスを含む。図６では、ホワイトリスト１３ａの情報として、例１及び例２を示している。例１は、社内ネットワークを想定したＩＰアドレスであり、例２は、ＶＰＮルータグローバルＩＰアドレスを想定したＩＰアドレスである。
【００３５】
＜ステップＳ１４＞
ステップＳ１４において、脆弱性情報ＤＢ１４は、公表された脆弱性情報１４０Ａを格納する。
図７は、脆弱性情報ＤＢ１４が格納している脆弱性情報１４０Ａを示す。脆弱性情報１４０Ａは、攻撃パケット要件１４ａ，発生事象１４ｂ，発生ログ１４ｃを含む。図７では、脆弱性情報１４０Ａ１と脆弱性情報１４０Ａ２との２つの脆弱性情報１４０Ａを示している。脆弱性情報１４０Ａは、公表された脆弱性の情報である。脆弱性情報１４０Ａは、ルータ攻撃検出装置１００がパケットを受信した場合に、そのパケットが攻撃パケット７０１であるかどうかを決定することはできないが、攻撃パケット７０１である可能性を示す確度を決定できる情報である。確度は後述の一致率である。
（ａ）攻撃パケット要件１４ａは、攻撃パケット７０１の仕様の一部の情報である。攻撃パケット要件１４ａでは攻撃パケット７０１を特定できない。攻撃パケット要件１４ａは、項目として、１．脆弱性識別番号、２．レイヤ３、４プロトコル、３．送信元ＩＰアドレス、４．送信元ポート、５．宛先ＩＰアドレス、６．宛先ポート、７．ペイロードデータ、８．パケット長、を含む。
（ｂ）発生事象は、攻撃を受けた場合にルータ３００に発生する事象である。
攻撃パケット要件１４ａは、項目として、１．脆弱性識別番号、２．発生事象１４ｂの種別を含む。
発生する事象の種別として以下を想定する。
発生事象種別１＝起動、発生事象種別２＝再起動、発生事象種別３＝ＣＰＵ高負荷、発生事象種別４＝通信停止、発生事象種別５＝ハングアップ、発生事象種別６＝クラッシュ、発生事象種別７＝任意コード実行、発生事象種別８＝その他である。
（ｃ）発生ログ１４ｃは、攻撃パケット７０１による攻撃の際に、ルータ３００及びスイッチ２１０、２２０が生成し、出力するログである。発生ログ１４ｃは、項目として、１．脆弱性識別番号、２．発生ログの内容を含む。
【００３６】
＜ステップＳ１５＞
ステップＳ１５において、事象発生判定部２１は、パケットの入力に伴ってルータ３００が生成する第１動作ログと、ルータ３００への攻撃事象が記載されている発生ログ１４ｃとの比較により、第１動作ログに攻撃事象が存在するかどうかを判定する。具体的には以下のようである。事象発生判定部２１は、ログＤＢ１２の保存ログ（第１動作ログ）を、脆弱性情報ＤＢ１４の発生ログ１４ｃと照合し、保存ログの内容（攻撃事象）が発生ログ１４ｃの攻撃事象に一致するか判定する。なお、数値など可変部分は除いて判定する。
【００３７】
＜ステップＳ１６＞
ステップＳ１６において、事象発生判定部２１は、保存ログの内容が脆弱性情報（発生ログ）に一致した場合、脆弱性攻撃による事象が発生したと判定する。事象発生判定部２１は、脆弱性攻撃による事象が発生したと判定した場合、実事象発生通知２１ａを攻撃パケット抽出部２２に送信する。
図８は、実事象発生通知２１ａを示す。実事象発生通知２１ａは項目として、実事象発生時刻と発生事象１４ｂを有する。図８では例１と例２を示している。
【００３８】
＜ステップＳ１７＞
ステップＳ１７において、ルータ３００の生成する第１動作ログに攻撃事象が存在すると判定された場合、ルータ３００に入力されるパケットを格納するパケット保存ＤＢ１１から攻撃パケットの候補となる候補パケットを取り出す。
そして攻撃パケット抽出部２２は、ルータ３００に代替する代替ルータである仮想ルータ２３へ候補パケットを入力し、候補パケットの入力に伴って仮想ルータ２３が生成する第２動作ログを取得する。
攻撃パケット抽出部２２は、発生ログ１４ｃと第２動作ログとの比較により、第２動作ログに攻撃事象が存在するかどうかを判定する。攻撃パケット抽出部２２は、第２動作ログに攻撃事象が存在する場合、第２動作ログでの攻撃事象の発生タイミングと、候補パケットの仮想ルータ２３への入力タイミングとに基づいて、攻撃パケットとなる候補パケットを決定する。この攻撃事象の発生タイミングと、候補パケットの仮想ルータ２３への入力タイミングとに基づいて、攻撃パケットとなる候補パケットを決定する処理は、後述の図１１のステップＳ３９に該当する。
攻撃パケット抽出部２２は、攻撃パケット７０１の候補になる候補パケットとして、ルータ３００の作成した第１動作ログに発生ログ１４ｃに記載されている攻撃事象が存在すると判定された判定時刻から定まる一定期間にパケット保存ＤＢ１１に格納されたパケットを取り出す。具体的には以下のようである。
【００３９】
攻撃パケット抽出部２２は、判定時刻である実事象発生通知２１ａの示す実事象発生時刻の直前（５分程度）のパケットに攻撃パケットが含まれるとみなし、パケット保存ＤＢ１１から、その時間帯のパケットを取り出す。
【００４０】
＜ステップＳ１８＞
ステップＳ１８において、攻撃パケット抽出部２２は、攻撃パケットである可能性を予測する情報が記載されている攻撃パケット予測情報である脆弱性情報１４０Ａを用いて、候補パケットが攻撃パケットである確度を決定し、攻撃パケットである確度の高い順に代替ルータである仮想ルータ２３へ、候補パケットを入力する。
攻撃パケット抽出部２２は、安全な安全パケットの有するパケット情報が記載されたホワイトリスト１３ａのパケット情報と、候補パケットの有するパケット情報との比較により、安全パケットである候補パケットを決定し、安全パケットと決定された候補パケットを仮想ルータ２３への入力から除外する。具体的には、仮想ルータ２３への入力の際に、攻撃パケット抽出部２２は、取り出した候補パケットから、ホワイトリスト１３ａの情報、脆弱性情報１４０Ａ（攻撃パケット要件１４ａ）により、攻撃パケットではないものを除外する。この除外後、攻撃パケット抽出部２２は、各パケットについて一致率を算出する。
【００４１】
＜ステップＳ１９＞
ステップＳ１９において、攻撃パケット抽出部２２は、一致率の高い順に、パケットを仮想ルータ２３へ入力する。
ステップＳ２０において、攻撃パケット抽出部２２は、実際に発生した発生ログ１４ｃと同じ動作ログ（第２動作ログ）が仮想ルータ２３に発生した場合には、仮想ルータ２３に流し込んだ候補パケットを攻撃パケットと判定する。
【００４２】
＜ステップＳ２１＞
ステップＳ２１において、シグネチャ作成部２４は、攻撃パケットと決定された候補パケットの有するパケット情報を用いて、ルータ３００へ入力されるパケットが攻撃パケットかどうかを特定するシグネチャを生成する。具体的には以下のようである。
シグネチャ作成部２４は、攻撃と判定されたパケットをブロックするシグネチャを自動生成し、従来のＩＰＳ相当部のシグネチャＤＢ１５を更新する。これにより、以後、同じ攻撃パケットはルータ３００に届かない。
図９は、シグネチャＤＢ１５が格納しているシグネチャ情報１５ａを示す。図９では、シグネチャ情報１５ａとしてシグネチャ１及びシグネチャ２を示している。シグネチャ１５ａは、項目として、攻撃パケット７０１を特定するための「攻撃パケット特定要件」と、攻撃パケットを特定した場合の処置を含む。図９では、「攻撃パケット特定要件」としては、以下の７つを記載している。１．レイヤ３、４プロトコル、２．送信元ＩＰアドレス、３．送信元ポート、４．宛先ＩＰアドレス、５．宛先ポート、６．ペイロードデータ、７．パケット長である。
【００４３】
図１０、図１１は、攻撃パケット抽出部２２が攻撃パケット７０１を抽出する動作を説明するフローチャートである。図１１には図１０に続く動作を記載している。図１０、図１１を参照して、攻撃パケット抽出部２２による攻撃パケット７０１の抽出動作を説明する。
【００４４】
＜ステップＳ３１＞
まず、ルータ攻撃検出装置１００が起動する。ステップＳ３１において、攻撃パケット抽出部２２は、事象発生判定部２１から実事象発生通知２１ａの通知待ち状態になる。
【００４５】
＜ステップＳ３２、ステップＳ３３＞
ステップＳ３２で事象発生判定部２１から実事象発生通知２１ａを受信した場合、ステップＳ３３において、攻撃パケット抽出部２２は、一定期間における複数のパケットをパケット保存ＤＢ１１から取り出す。攻撃パケット抽出部２２は、ステップＳ１７で述べたように、実事象発生通知２１ａに記載されている実事象発生時刻の直前の５分間にルータ攻撃検出装置１００が受信したパケットを、パケット保存ＤＢ１１から取り出す。
【００４６】
＜ステップＳ３４＞
ステップＳ３４において、攻撃パケット抽出部２２は、パケット保存ＤＢ１１から取得したパケットをホワイトリスト１３ａと照合し、取得したパケットのうち、ホワイトリスト１３ａに一致したパケットを除外する。
【００４７】
＜ステップＳ３５＞
ステップＳ３５において、攻撃パケット抽出部２２はパケットの一致率を計算する。攻撃パケット抽出部２２は、残ったパケットの持つパケット情報を、脆弱性情報ＤＢ１４の脆弱性情報１４０Ａと照合する。攻撃パケット抽出部２２は、各パケットのパケット情報について、脆弱性情報１４０Ａの攻撃パケット要件１４ａと照合する。攻撃パケット抽出部２２は、攻撃パケット要件１４ａにおける、「２．レイヤ３、４プロトコル」、「３．送信元ＩＰアドレス」、「４．送信元ポート」、「５．宛先ＩＰアドレス」、「６．宛先ポート」、「７．ペイロードデータ」、「８．パケット長」を参照する。なお、各パケットのパケット情報は攻撃パケット要件１４ａの有する項目を持つ。この例では、パケット情報は、「２．レイヤ３、４プロトコル」から「８．パケット長」のデータ項目（フィールド）を有すると共に、これらのデータ項目は記載されている。攻撃パケット抽出部２２は、各パケットについて、そのパケットのパケット情報と、攻撃パケット要件１４ａとの一致率を計算する。例示すれば以下のようである。
一致率は確度である。
パケットＡの持つパケット情報は、図７に示す脆弱性情報１４０Ａ１の攻撃パケット要件１４ａとの一致率が７０％である。パケットＢの持つパケット情報は、図７に示す脆弱性情報１４０Ａ２の攻撃パケット要件１４ａとの一致率が４０％である。
【００４８】
＜ステップＳ３６＞
図１１のステップＳ３６において、攻撃パケット抽出部２２は、一致率が高い順に、パケットを並べ替える。攻撃パケット抽出部２２は、パケットＡ、パケットＣ、パケットＤ、パケットＢ、パケットＲ・・・のように、パケットをソートする。
【００４９】
＜ステップＳ３７、ステップＳ３８＞
ステップＳ３７において、攻撃パケット抽出部２２は、一致率が高いパケットから順に、仮想ルータ２３に投入する。ステップＳ３８において、攻撃パケット抽出部２２、仮想ルータ２３で生成される動作ログ（第２動作ログ）を仮想ルータ２３から取得する。
【００５０】
＜ステップＳ３９＞
ステップＳ３９において、攻撃パケット抽出部２２は、仮想ルータ２３から取得した動作ログに、
発生ログ１４ｃに記載されている事象が発生しているかどうかを確認する。発生していない場合は、処理はステップＳ３７に戻る。発生している場合は、処理はステップＳ４０に進む。
【００５１】
＜ステップＳ４０＞
ステップＳ４０において、攻撃パケット抽出部２２は、発生ログ１４ｃに記載されている事象と同じ事象が仮想ルータ２３の動作ログに発生している場合、その動作ログを発生させた投入したパケットを、攻撃パケットと決定する。攻撃パケット抽出部２２は、順次、すべてのパケットを仮想ルータ２３に投入する（ステップＳ３９のＮＯ、後述するステップＳ４２でＮＯ）。
【００５２】
＜ステップＳ４１＞
ステップＳ４１において、攻撃パケット抽出部２２は、攻撃パケット７０１として確定したパケットの持つパケット情報をシグネチャ作成部２４へ通知する。
【００５３】
ステップＳ４２において、攻撃パケット抽出部２２は、仮想ルータ２３へ入力したパケットが、ステップＳ３６で並び替えたうちの最後のパケットかどうかを判定する。最後のパケットであれば、攻撃パケット抽出部２２は処理をステップＳ３１に進め、最後のパケットでなければ、攻撃パケット抽出部２２は処理をステップＳ３７へ進める。
【００５４】
以下に、シグネチャ作成部２４によるシグネチャの作成動作を説明する。攻撃パケット抽出部２２から攻撃パケット７０１と決定されたパケットのパケット情報を受け取ったシグネチャ作成部２４は、以下の処理を行う。
【００５５】
攻撃パケット抽出部２２が、攻撃パケットを１個しか見つけることができなかった場合は、シグネチャ作成部２４は、その単一のパケットを特定するシグネチャを作成する。この場合は、図９において、シグネチャ１のみが作成されるような場合である。
【００５６】
シグネチャ作成部２４は、シグネチャとして、攻撃パケットと決定された複数の候補パケットに共通する項目を有する共通項目シグネチャを作成する。具体的には以下のようである。
攻撃パケット抽出部２２が攻撃パケットとして、パケットＣ、パケットＤ、パケットＥのように複数のパケットを攻撃パケット７０１として決定し、攻撃パケット抽出部２２から各パケットのパケット情報を取得した場合、シグネチャ作成部２４は、複数のパケットに共通するシグネチャである共通項シグネチャを作成する。シグネチャ作成部２４は、各パケットのパケット情報から共通する項目の値を抽出し、値が一致しない項目は変数化して共通項シグネチャを作成し、共通項シグネチャをシグネチャＤＢ１５に登録する。例示すれば以下のようである。
以下は、パケットＣとパケットＤのパケット情報を示している。
パケットＣ：送信元１：１．１．１、プロトコル：ＵＤＰ、宛先ポート：５００、サイズ：２１０ｂｙｔｅ．
パケットＤ：送信元１：１．１．２、プロトコル：ＵＤＰ、宛先ポート：５００、サイズ：２１０ｂｙｔｅ
シグネチャ作成部２４は、共通項シグネチャとして、送信元１．１．１．０／２４、プロトコル：ＵＤＰ、宛先ポート：５００、サイズ：２１０ｂｙｔｅを作成する。
【００５７】
なお、シグネチャ作成部２４は、シグネチャの作成方法として、攻撃パケット抽出部２２によって今回決定された攻撃パケットの有するパケット情報と、すでにシグネチャＤＢ１５に登録されているシグネチャとを照合することにより、既存のシグネチャを新たに攻撃パケットと決定されたパケットのパケット情報を用いて更新してもよい。
【００５８】
また、シグネチャ作成部２４は、ログ保存ＤＢ１２に保存されているログで発生した事象と、登録済みの脆弱性情報１４０Ａの発生事象とを照合して、ログ保存ＤＢ１２に保存されているログから疑わしい脆弱性情報を抽出する。実際にはシグネチャ作成部２４は、事前に設定した事象発生時の発生ログ１４ｃと、新たに出力されるログＤＢ１２のログとを照合し、可変部分以外が一致するかどうか確認し、一致する事象を脆弱性情報として抽出する。
【００５９】
＊＊＊実施の形態１の効果＊＊＊
実施の形態１のルータ攻撃検出装置１００によれば、ルータの脆弱性公表からルータで脆弱性対策が実施されるまでの間、ルータへの攻撃を防ぐ、ルータ攻撃検出装置を提供できる。
また、ルータ攻撃検出装置１００はルータ攻撃検出プログラム１０１として既存のソフトウェアに組み込むことができるので、ハードウェア構成を変更することなく、既存の装置に適用できる。
【００６０】
以上、実施の形態１について説明したが、実施の形態１のうち、１つを部分的に実施しても構わない。あるいは、実施の形態１のうち、２つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、実施の形態１に限定されるものではなく、必要に応じて種々の変更が可能である。
【符号の説明】
【００６１】
１１  パケット保存ＤＢ、１１ａ  保存パケット情報、１２  ログ保存ＤＢ、１２ａ  保存ログ情報、１３  ホワイトリストＤＢ、１３ａ  ホワイトリスト、１４  脆弱性情報ＤＢ、１４ａ  攻撃パケット要件、１４ｂ  発生事象、１４ｃ  発生ログ、１５  シグネチャＤＢ、２１  事象発生判定部、２１ａ  実事象発生通知、２２  攻撃パケット抽出部、２３  仮想ルータ、２４  シグネチャ作成部、１００  ルータ攻撃検出装置、１０１  ルータ攻撃検出プログラム、１１０  プロセッサ、１２０  主記憶装置、１３０  補助記憶装置、１４０  入力ＩＦ、１５０  出力ＩＦ、１６０  通信ＩＦ、２１０  スイッチ、２２０  スイッチ、３００  ルータ、４００  攻撃者、５００  内部ＩＰネットワーク、６００  インターネット。
【図１】
2020155986.tif 000003
【図２】
2020155986.tif 000004
【図３】
2020155986.tif 000005
【図４】
2020155986.tif 000006
【図５】
2020155986.tif 000007
【図６】
2020155986.tif 000008
【図７】
2020155986.tif 000009
【図８】
2020155986.tif 000010
【図９】
2020155986.tif 000011
【図１０】
2020155986.tif 000012
【図１１】
2020155986.tif 000013