(57)【要約】【課題】侵入検知システムにおけるテキスト形式の検体を対象としたシグネチャを効率的に生成できる支援装置、方法及びプログラムを提供すること。【解決手段】シグネチャ生成サーバ１０は、攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定部１１２と、テキスト形式であると判定された検体に含まれている文字を、正規表現における文字クラスのいずれかに分類する文字クラス分類部１１４と、アルファベットに分類された文字の連続からなる文字列のうち、非攻撃データの中よりも攻撃データの中に頻繁に出現する文字列、又は文字列の列を、シグネチャの候補として抽出する文字列抽出部１１５と、を備える。【選択図】図２
2012003463.tif 000002
【特許請求の範囲】
【請求項１】
攻撃データの侵入を検知するためのシグネチャの生成を支援する支援装置であって、
攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定部と、
前記テキスト判定部によりテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類部と、
前記クラス分類部により所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出部と、を備える支援装置。
【請求項２】
前記文字列抽出部により抽出された文字列又は文字列の列を示す正規表現形式のシグネチャを生成する正規表現生成部をさらに備える請求項１に記載の支援装置。
【請求項３】
前記正規表現生成部は、前記所定の文字クラス以外の文字クラスに分類された文字又は文字列に対して、前記所定の文字クラス以外の文字クラスに分類される他の文字又は文字列に置き換え可能な正規表現形式のシグネチャを生成する請求項２に記載の支援装置。
【請求項４】
前記正規表現生成部により生成されたシグネチャについて、予め設定されている所定の基準に基づく有効性指標をそれぞれ求め、当該有効性指標に基づいて前記シグネチャを取捨選択する有効性判定部をさらに備える請求項２又は請求項３に記載の支援装置。
【請求項５】
前記攻撃データ又は前記非攻撃データの検体を収集する検体収集部をさらに備える請求項１から請求項４のいずれかに記載の支援装置。
【請求項６】
前記検体に含まれているＵＲＬを所定のリストと照合することにより、当該検体が攻撃データであるか非攻撃データであるかを判定する検体判定部をさらに備える請求項１から請求項５のいずれかに記載の支援装置。
【請求項７】
前記検体判定部は、前記検体に含まれているスクリプトを実行することにより生成されるＵＲＬについても、前記所定のリストと照合することにより、当該検体が攻撃データであるか非攻撃データであるかを判定する請求項６に記載の支援装置。
【請求項８】
攻撃データの侵入を検知するためのシグネチャの生成をコンピュータが支援する方法であって、
攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定ステップと、
前記テキスト判定ステップにおいてテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類ステップと、
前記クラス分類ステップにおいて所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出ステップと、を含む方法。
【請求項９】
攻撃データの侵入を検知するためのシグネチャの生成をコンピュータに支援させるプログラムであって、
攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定ステップと、
前記テキスト判定ステップにおいてテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類ステップと、
前記クラス分類ステップにおいて所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出ステップと、を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不許可データの侵入を検知するためのシグネチャの生成を支援する支援装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来、Ｗｅｂサーバ等、インターネットに公開してサービスを提供するサーバは、インターネットから攻撃（不正アクセス）を受ける可能性がある。そこで、ファイアウォールや侵入検知システム等が設置されることが一般的である。ファイアウォールは、特定のプロトコル、ＩＰアドレス及びポート番号のみの通過を許可することによって、サーバにおける意図しないポートへの攻撃を防ぐ。また、侵入検知システムは、許可しているポートを通過するパケットの内容から攻撃を検知して運用者に通知する。
【０００３】
この侵入検知システムは、シグネチャ型と呼ばれる方式を採用する場合が多い。シグネチャ型とは、攻撃に特有のビット列を予めデータベースに登録しておき、通信の内容がこのビット列と合致した場合に、攻撃を受けていると判断する方式である。ところが、攻撃の方法は、次々と新しくなるため、攻撃方法の変化に対応するためのシグネチャの更新が不可欠である。このシグネチャは、侵入検知システムの販売会社や運用者のコミュニティによって生成、配布されるが、通常、攻撃時に発生する通信や脆弱性に関する情報から、専門家が攻撃特有のビット列を抽出して、シグネチャとして登録される。
【０００４】
このようなシグネチャの生成に関わる時間や費用を削減するために、通信の内容や攻撃方法に関する情報からシグネチャを自動生成する方法が提案されている（例えば、特許文献１〜４、非特許文献１〜３参照）。
【０００５】
ところで、攻撃がバイナリの実行ファイルである場合、このファイルは、実行形式のまま圧縮、暗号化、難読化又は最適化することにより、異なるビット列に変換が可能である。したがって、攻撃者が攻撃パケットに対して、これらの変換を行うことにより、シグネチャによる攻撃検出を回避される可能性がある。なお、このような変換によって生成された攻撃の検体は、ポリモーフィック型マルウェアと呼ばれる。ポリモーフィック技術は、実行ファイルだけでなく、攻撃通信に対しても適用される。
【０００６】
そこで、１つの攻撃検体に対して、複数のポリモーフィックされた検体を生成して、全ての検体に共通するビット列をシグネチャとして生成する方法が提案されている（例えば、非特許文献４又は５参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第４２６５１６３号公報
【特許文献２】特開２００４−３４８７４０号公報
【特許文献３】特開２００７−０５８５１４号公報
【特許文献４】特開２００７−２４２００２号公報
【非特許文献】
【０００８】
【非特許文献１】Ｈｙａｎｇ−ａｈ  Ｋｉｍ，  “Ａｕｔｏｇｒａｐｈ：  Ｔｏｗａｒｄ  ａｕｔｏｍａｔｅｄ，  ｄｉｓｔｒｉｂｕｔｅｄ  ｗｏｒｍ  ｓｉｇｎａｔｕｒｅ  ｄｅｔｅｃｔｉｏｎ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １３ｔｈ  Ｕｓｅｎｉｘ  Ｓｅｃｕｒｉｔｙ  Ｓｙｍｐｏｓｉｕｍ，  ２００４
【非特許文献２】Ｓｕｍｅｅｔ  Ｓｉｎｇｈ，  Ｃｒｉｓｔｉａｎ  Ｅｓｔａｎ，  Ｇｅｏｒｇｅ  Ｖａｒｇｈｅｓｅ  ａｎｄ  Ｓｔｅｆａｎ  Ｓａｖａｇｅ，  “Ａｕｔｏｍａｔｅｄ  Ｗｏｒｍ  ｆｉｎｇｅｒｐｒｉｎｔｉｎｇ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ６ｔｈ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｏｐｅａｒｔｉｎｇ  Ｓｙｓｔｅｍｓ  Ｄｅｓｉｇｎ  ＆  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ，  ２００４
【非特許文献３】Ｃｈｒｉｓｔｉａｎ  Ｋｒｅｉｂｉｃｈ  ａｎｄ  Ｊｏｎ  Ｃｒｏｗｃｒｏｆｔ，  “Ｈｏｎｅｙｃｏｍｂ  −  Ｃｒｅａｔｉｎｇ  Ｉｎｔｒｕｓｉｏｎ  Ｄｅｔｅｃｔｉｏｎ  Ｓｉｇｎａｔｕｒｅｓ  Ｕｓｉｎｇ  Ｈｏｎｅｙｐｏｔｓ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｓｅｃｏｎｄ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｈｏｔ  Ｔｏｐｉｃｓ  ｉｎ  Ｎｅｔｗｏｒｋｓ  （ＨｏｔＮｅｔｓ−ＩＩ），  ２００３
【非特許文献４】Ｊａｍｅｓ  Ｎｅｗｓｏｍｅ，  Ｂｒａｄ  Ｋａｒｐ  ａｎｄ  Ｄａｗｎ  Ｓｏｎｇ，  “Ｐｏｌｙｇｒａｐｈ：  Ａｕｔｏｍａｔｉｃａｌｌｙ  Ｇｅｎｅｒａｔｉｎｇ  Ｓｉｇｎａｔｕｒｅｓ  ｆｏｒ  Ｐｏｌｙｍｏｒｐｈｉｃ  Ｗｏｒｍｓ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００５  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｒｉｖａｃｙ，  ２００５
【非特許文献５】Ｚｈｉｃｈｕｎ  Ｌｉ，  Ｍａｎａｎ  Ｓａｎｇｈｉ，  Ｙａｎ  Ｃｈｅｎ，  Ｍｉｎｇ−ｙａｎｇ  Ｋａｏ  ａｎｄ  Ｂｒｉａｎ  Ｃｈａｖｅｚ，  “Ｈａｍｓａ：  ｆａｓｔ  ｓｉｇｎａｔｕｒｅ  ｇｅｎｅｒａｔｉｏｎ  ｆｏｒ  ｚｅｒｏ−ｄａｙ  ｐｏｌｙｍｏｒｐｈｉｃ  ｗｏｒｍｓ  ｗｉｔｈ  ｐｒｏｖａｂｌｅ  ａｔｔａｃｋ  ｒｅｓｉｌｉｅｎｃｅ，”  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２００６  ＩＥＥＥ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｓｅｃｕｒｉｔｙ  ａｎｄ  Ｐｒｉｖａｃｙ，  ２００６
【発明の概要】
【発明が解決しようとする課題】
【０００９】
近年、マルウェアの感染経路が、ネットワークからの能動的な経路から、閲覧しているＷｅｂサイトからＷｅｂブラウザを経由する受動的な経路に移行しつつある。そのため、Ｗｅｂブラウザが解釈できるＨＴＭＬやＪａｖａＳｃｒｉｐｔ（登録商標）等のテキスト形式の検体が増加している。
【００１０】
また、Ｗｅｂブラウザへの攻撃は、ＨＴＭＬやＪａｖａＳｃｒｉｐｔ（登録商標）によってＷｅｂブラウザを攻撃Ｗｅｂサイトへ誘導する方法であるため、Ｗｅｂサーバに設置された侵入検知システムでは攻撃を検知できない場合がある。したがって、テキスト形式の検体から効率的にシグネチャを生成することが望まれる。
【００１１】
しかしながら、上述のバイナリ形式の検体を対象としたシグネチャの生成方法は、テキスト形式の検体を効率的に処理できない。すなわち、テキスト形式のスクリプトは、バイナリ形式に比べて表現が柔軟であり、シグネチャを回避する変換が容易であるため、対象とすべき検体が膨大となる。そのため、有効なシグネチャを網羅的に検索するために多大な時間が掛かってしまう。例えば、ＨＴＭＬやＪａｖａＳｃｒｉｐｔ（登録商標）は、スペースの連続や改行コードを無視するため、スペースを追加するだけで異なる攻撃スクリプトが生成される。
【００１２】
そこで、本発明は、侵入検知システムにおけるテキスト形式の検体を対象としたシグネチャを効率的に生成できる支援装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明では、以下のような解決手段を提供する。
【００１４】
（１）攻撃データの侵入を検知するためのシグネチャの生成を支援する支援装置であって、攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定部と、前記テキスト判定部によりテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類部と、前記クラス分類部により所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出部と、を備える支援装置。
【００１５】
このような構成によれば、支援装置は、テキスト形式の検体のうち、非攻撃データよりも攻撃データに頻出する所定の種類の文字からなる文字列、又は文字列の列を抽出する。したがって、支援装置は、所定の種類の文字のみに着目して効率的にテキスト形式の攻撃に特有のシグネチャ候補を抽出できる。その結果、支援装置は、処理負荷を低減でき、大量の検体に対して網羅的にシグネチャ候補を探索することができる。
【００１６】
（２）前記文字列抽出部により抽出された文字列又は文字列の列を示す正規表現形式のシグネチャを生成する正規表現生成部をさらに備える（１）に記載の支援装置。
【００１７】
このような構成によれば、支援装置は、正規表現によるシグネチャを生成するので、テキストデータの揺らぎに対しても同一のシグネチャを対応させることができる。その結果、支援装置は、攻撃データを検知する精度を向上できる。
【００１８】
（３）前記正規表現生成部は、前記所定の文字クラス以外の文字クラスに分類された文字又は文字列に対して、前記所定の文字クラス以外の文字クラスに分類される他の文字又は文字列に置き換え可能な正規表現形式のシグネチャを生成する（２）に記載の支援装置。
【００１９】
このような構成によれば、支援装置は、例えばスペースを挿入するといった難読化されたテキストデータに対しても同一のシグネチャを対応させることができる。その結果、支援装置は、攻撃データを検知する精度を向上できる。
【００２０】
（４）前記正規表現生成部により生成されたシグネチャについて、予め設定されている所定の基準に基づく有効性指標をそれぞれ求め、当該有効性指標に基づいて前記シグネチャを取捨選択する有効性判定部をさらに備える（２）又は（３）に記載の支援装置。
【００２１】
このような構成によれば、支援装置は、有効性指標に基づいて、より高精度に攻撃データを検知できるシグネチャを選択するので、このシグネチャを利用する侵入検知システムにおいて、攻撃データの検知精度が向上すると共に、処理の効率化が期待できる。
【００２２】
（５）前記攻撃データ又は前記非攻撃データの検体を収集する検体収集部をさらに備える（１）から（４）のいずれかに記載の支援装置。
【００２３】
このような構成によれば、支援装置は、シグネチャを抽出するための検体を自動的に収集するので、運用者の作業負荷が低減される。さらに、検体数が増加することにより、有効なシグネチャを抽出できる可能性が高まる。
【００２４】
（６）前記検体に含まれているＵＲＬを所定のリストと照合することにより、当該検体が攻撃データであるか非攻撃データであるかを判定する検体判定部をさらに備える（１）から（５）のいずれかに記載の支援装置。
【００２５】
このような構成によれば、支援装置は、検体を閲覧したブラウザがリダイレクトされる先のＵＲＬを、既に攻撃サイトと判明しているリストと照合できるので、検体が攻撃データであるか非攻撃データであるかの簡易判定ができる。したがって、支援装置は、検体に基づいて生成されるシグネチャの信頼性を向上できる。
【００２６】
（７）前記検体判定部は、前記検体に含まれているスクリプトを実行することにより生成されるＵＲＬについても、前記所定のリストと照合することにより、当該検体が攻撃データであるか非攻撃データであるかを判定する（６）に記載の支援装置。
【００２７】
このような構成によれば、支援装置は、検体内のスクリプトを実行することにより実際に発生するリクエストを検出し、リダイレクト先のＵＲＬを取得できる。したがって、支援装置は、テキストとしてＵＲＬが明示されていない場合であっても、検体が攻撃データであるか否かの簡易判定ができる。
【００２８】
（８）攻撃データの侵入を検知するためのシグネチャの生成をコンピュータが支援する方法であって、攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定ステップと、前記テキスト判定ステップにおいてテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類ステップと、前記クラス分類ステップにおいて所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出ステップと、を含む方法。
【００２９】
このような構成によれば、当該方法をコンピュータが実行することにより、（１）と同様の効果が期待できる。
【００３０】
（９）攻撃データの侵入を検知するためのシグネチャの生成をコンピュータに支援させるプログラムであって、攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定ステップと、前記テキスト判定ステップにおいてテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類ステップと、前記クラス分類ステップにおいて所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出ステップと、を実行させるプログラム。
【００３１】
このような構成によれば、当該プログラムをコンピュータに実行させることにより、（１）と同様の効果が期待できる。
【発明の効果】
【００３２】
本発明によれば、侵入検知システムにおけるテキスト形式の検体を対象としたシグネチャを効率的に生成できる。
【図面の簡単な説明】
【００３３】
【図１】本発明の実施形態に係るシステム環境の全体構成を示す図である。
【図２】本発明の実施形態に係るシグネチャ生成サーバの機能構成を示すブロック図である。
【図３】本発明の実施形態に係る正規表現における文字クラスを示す図である。
【図４】本発明の実施形態に係るシグネチャの候補を記憶したテーブルの例を示す図である。
【図５】本発明の実施形態に係るシグネチャ生成サーバの処理を示すフローチャートである。
【発明を実施するための形態】
【００３４】
以下、本発明の実施形態の一例について説明する。
なお、本実施形態では、支援装置の一例として、シグネチャ生成サーバ１０を説明する。
【００３５】
図１は、本実施形態に係るシグネチャ生成サーバ１０及び侵入検知システム６を含むシステム環境の全体構成を示す図である。
【００３６】
ホスティングサーバ群１は、Ｗｅｂサイトをインターネット２に公開しており、サイトの管理用端末３又はサイトの閲覧用端末４からアクセスされる。攻撃者５は、管理用端末３を制御し、ホスティングサーバ群１に対して、攻撃サイトへ誘導する攻撃データ（ＨＴＭＬ、ＪａｖａＳｃｒｉｐｔ（登録商標）等のテキストデータ）をアップロードする。すると、閲覧用端末４は、攻撃データが含まれるＷｅｂサイトを閲覧したことにより、攻撃者５により用意された攻撃サイトへリダイレクトされ、攻撃を受けることとなる。
【００３７】
侵入検知システム６は、ホスティングサーバ群１への攻撃データの侵入を検知するシステムであり、この攻撃データを識別するためのシグネチャをデータベースに記憶している。ホスティングサーバ群１の運用者７は、侵入検知システム６から警告が通知されることにより、攻撃データの侵入を把握する。また、運用者７は、このシグネチャを適宜更新することにより、新たな攻撃データにも対応する。
【００３８】
シグネチャ生成サーバ１０は、シグネチャの生成を支援する装置である。シグネチャ生成サーバ１０は、運用者７からの指示入力に基づいて、ホスティングサーバ群１やインターネット２から収集された検体より、シグネチャを生成し、侵入検知システム６のデータベースへ登録する。
【００３９】
図２は、本実施形態に係るシグネチャ生成サーバ１０の機能構成を示すブロック図である。
シグネチャ生成サーバ１０は、制御部１１と、記憶部１２と、通信部１３と、入力部１４と、出力部１５とを備える。
【００４０】
制御部１１は、シグネチャ生成サーバ１０の全体を制御する部分であり、記憶部１２に記憶された各種プログラムを適宜読み出して実行することにより、上記のハードウェアと協働し、本実施形態における各種機能を実現している。制御部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってよい。なお、制御部１１が備える各部の機能は後述する。
【００４１】
記憶部１２は、ハードウェア群をシグネチャ生成サーバ１０として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ハードディスク（ＨＤＤ）であってよい。具体的には、記憶部１２には、本実施形態の各種機能を実現させるため制御部１１に実行させるプログラムが記憶される。
【００４２】
通信部１３は、シグネチャ生成サーバ１０が他の装置と情報を送受信する場合のネットワーク・アダプタであり、ネットワーク（インターネット２）を介して攻撃データ又は非攻撃データの検体を収集して制御部１１へ提供する。また、通信部１３は、運用者７の端末からの指示データを受信し、侵入検知システム６へシグネチャを送信する。
【００４３】
入力部１４は、シグネチャ生成サーバ１０に対する利用者からの指示入力を受け付けるインタフェース装置である。入力部１４は、例えば、キーボード、マウス及びタッチパネル等により構成される。
【００４４】
出力部１５は、利用者にデータの入力を受け付ける画面を表示したり、シグネチャ生成サーバ１０による処理結果の画面を表示したりするディスプレイ装置を含む。さらに、出力部１５は、ブラウン管表示装置（ＣＲＴ）や液晶表示装置（ＬＣＤ）等のディスプレイ装置の他、プリンタ等の各種出力装置を含んでよい。
【００４５】
次に、制御部１１の機能を詳述する。
制御部１１は、攻撃検体収集部１１１ａと、非攻撃検体収集部１１１ｂと、テキスト判定部１１２と、検体判定部１１３と、文字クラス分類部１１４と、文字列抽出部１１５と、正規表現生成部１１６と、有効性判定部１１７とを備える。各部は、記憶部１２に記憶されているプログラムを実行することにより実現される機能ブロックである。
【００４６】
攻撃検体収集部１１１ａは、攻撃データの検体を収集する。具体的には、攻撃検体収集部１１１ａは、運用者７から、攻撃を受けたことが判明している、あるいは可能性が高いＷｅｂサイトのＵＲＬの指定入力を受け付け、このＵＲＬにて特定されるＷｅｂページのページデータを収集する。
【００４７】
非攻撃検体収集部１１１ｂは、非攻撃データの検体を収集する。具体的には、非攻撃検体収集部１１１ｂは、侵入検知システム６の監視対象であるホスティングサーバ群１のＵＲＬを入力として、ページデータを取得する。このとき、非攻撃検体収集部１１１ｂは、取得したページデータ（ＨＴＭＬ）に含まれるリンクを参照し、別のページデータを取得する処理を繰り返す。これにより、効率的に非攻撃検体が収集される。
【００４８】
テキスト判定部１１２は、収集された検体がテキスト形式であるか否かを判定する。具体的には、テキスト判定部１１２は、検体であるファイルの先頭の数バイトを読み込むと、このバイト列が特定の文字列（例えば、「＜！ｄｏｃｔｙｐｅ  ｈｔｍｌ」）である場合に、ある種のテキスト形式（例えば、ＨＴＭＬ形式）のファイルであると判定する。
【００４９】
検体判定部１１３は、収集された検体（ＨＴＭＬファイル）に含まれているＵＲＬを所定のリスト、すなわち公開されているブラックリストと照合することにより、この検体が攻撃データあるか非攻撃データであるかを簡易判定する。また、検体判定部１１３は、検体に含まれているＪａｖａＳｃｒｉｐｔ（登録商標）を実行することにより発生するＨＴＴＰリクエストも対象とし、実行により生成されるＵＲＬについても、所定のブラックリストと照合することにより、検体が攻撃データであるか非攻撃データであるかを簡易判定する。
【００５０】
文字クラス分類部１１４は、テキスト判定部１１２によりテキスト形式であると判定された検体に含まれている文字を、正規表現における文字クラスのいずれかに分類する。
【００５１】
図３は、本実施形態に係る正規表現における文字クラスを示す図である。
本実施形態では、各文字は、アルファベット（Ａｌｐｈａｂｅｔｉｃ  ｃｈａｒａｃｔｅｒ）、数字（Ｄｉｇｉｔ  ｃｈａｒａｃｔｅｒ）又は非単語文字（Ｎｏｎ−ｗｏｒｄ）のいずれかの文字クラスに分類される。また、非単語文字は、さらに区切り文字（Ｐｕｎｃｔｕａｔｉｏｎ  ｃｈａｒａｃｔｅｒｓ）、空白文字（Ｗｈｉｔｅｓｐａｃｅ  ｃｈａｒａｃｔｅｒｓ）又は制御文字（Ｃｏｎｔｒｏｌ  ｃｈａｒａｃｔｅｒｓ）に分類される。
【００５２】
正規表現において、アルファベットは「［：ａｌｐｈａ：］」と表され、数字は「［：ｄｉｇｉｔ：］」と表され、区切り文字は「［：ｐｕｎｃｔ：］」と表され、空白文字は「［：ｓｐａｃｅ：］」と表され、制御文字は「［：ｃｎｔｒｌ：］」と表される。なお、本実施形態では、区切り文字、空白文字及び制御文字を区別せず、非単語文字を表す正規表現「￥ｗ」を用いる。
【００５３】
文字列抽出部１１５は、文字クラス分類部１１４によりアルファベット（所定の文字クラス）に分類された文字の連続からなる文字列を抽出する。そして、文字列抽出部１１５は、これらのうち、非攻撃データの検体中よりも攻撃データの検体中に頻繁に出現する文字列、又は文字列の列を、シグネチャの候補として抽出する。具体的には、文字列抽出部１１５は、攻撃データの検体にある閾値以上の割合で出現し、非攻撃データの検体に別の閾値以下の割合で出現する文字列又は文字列の列を抽出することとしてよい。
【００５４】
ここで、攻撃データの検体の中では出現頻度が高いが、非攻撃データの検体の中では出現頻度が低い文字列は、攻撃データを検出する有力なシグネチャの候補となる。また、文字列抽出部１１５は、アルファベット以外の文字で分割されたアルファベットのみの文字列を抽出するので、バイナリ形式の検体からビット列を抽出するのに比べて、シグネチャの候補数を低減できる。すなわち、分割位置を特定せずにビット列を抽出した場合、様々な長さのビット列が候補となるが、文字列抽出部１１５は、アルファベット以外の文字クラスの文字により明確に分割されたアルファベットの文字列を対象とする。
【００５５】
正規表現生成部１１６は、文字列抽出部１１５により抽出された文字列又は文字列の列を示す正規表現形式のシグネチャを生成し、記憶部１２に記憶する。このとき、正規表現生成部１１６は、アルファベット以外の文字クラスに分類された文字又は文字列に対して、同じくアルファベット以外の文字クラスに分類される他の文字又は文字列に置き換え可能な正規表現形式のシグネチャを生成する。
【００５６】
図４は、本実施形態に係るシグネチャの候補を記憶したテーブルの例を示す図である。
ここで、Ｔｏｋｅｎフィールドは、文字列抽出部１１５により抽出された文字列又は文字列の列であり、ＲｅｇＥｘｐ  Ｓｉｇｎａｔｕｒｅフィールドは、正規表現生成部１１６により生成された正規表現形式のシグネチャである。
【００５７】
また、Ｔｒｕｅ＋フィールドは、シグネチャが攻撃データの検体に含まれる割合であり、Ｆａｌｓｅ＋フィールドは、シグネチャが非攻撃データの検体に含まれる割合である。さらに、Ｌｅｎｇｔｈフィールドは、シグネチャが表しているアルファベットの文字列、又は文字列の列の長さである。これらは、生成されたシグネチャの有効性判定に用いられる。
【００５８】
なお、正規表現では、文字列の区切りは、「￥（［［：ｄｉｇｉｔ：］］￥｜￥ｗ￥）￥＋」と表現され、アルファベット以外の文字クラスに属する文字からなる任意の文字列を示している。すなわち、攻撃データ中の数字や非単語文字が他の数字や非単語文字からなる文字列に変換された場合（例えば、スペースを挿入された場合等）にも、シグネチャと合致する。
【００５９】
また、図４の例では、抽出された文字列が２文字以下である場合、例えば変数名の相違等により、侵入検知システム６において誤検知が生じる可能性が高くなるため、任意の２文字として表現している。
【００６０】
有効性判定部１１７は、正規表現生成部１１６により生成されたシグネチャについて、予め設定されている所定の基準に基づく有効性指標をそれぞれ求め、この有効性指標に基づいてシグネチャを取捨選択する。具体的には、例えば、図４に示すように、シグネチャが攻撃データの検体に含まれる割合（Ｔｒｕｅ＋）、シグネチャが非攻撃データの検体に含まれる割合（Ｆａｌｓｅ＋）、文字列長（Ｌｅｎｇｔｈ）等を有効性指標とする。
【００６１】
上述のように、（Ｔｒｕｅ＋）は大きいほど良く、（Ｆａｌｓｅ＋）は小さいほど良い。また、（Ｌｅｎｇｔｈ）は、長いほど誤検知が生じにくい。そこで、有効性判定部１１７は、例えば、（Ｔｒｕｅ＋）の大きいもの、（Ｆａｌｓｅ＋）の小さいもの、（Ｔｒｕｅ＋）−（Ｆａｌｓｅ＋）の大きいもの、（Ｌｅｎｇｔｈ）の大きいもの等、予め設定されている優先度に基づいて、有効なシグネチャを選択する。
【００６２】
また、ランダムな文字列よりも関数名のような意味のある文字列の方が有効なシグネチャである可能性が高いので、有効性判定部１１７は、このようなシグネチャを優先してもよい。
【００６３】
図５は、本実施形態に係るシグネチャ生成サーバ１０の処理を示すフローチャートである。
【００６４】
ステップＳ１において、制御部１１（攻撃検体収集部１１１ａ、非攻撃検体収集部１１１ｂ）は、攻撃データ及び非攻撃データの検体を収集する。
【００６５】
ステップＳ２（テキスト判定ステップ）において、制御部１１（テキスト判定部１１２）は、ステップＳ１において収集された検体がテキスト形式であるか否かを判定する。制御部１１は、テキスト形式でないと判定された検体を除外し、処理を次のステップへ進める。
【００６６】
ステップＳ３において、制御部１１（検体判定部１１３）は、ステップＳ２においてテキスト形式と判定された検体について、攻撃データであるか非攻撃データであるかの簡易判定を行う。制御部１１は、収集時の区分（攻撃データ又は非攻撃データ）と異なると判定された検体については、以下の処理で除外してもよいし、区分を入れ替えてもよい。
【００６７】
ステップＳ４（クラス分類ステップ）において、制御部１１（文字クラス分類部１１４）は、ステップＳ３までに除外されなかった検体に含まれる文字を、正規表現における文字クラスに分類する。
【００６８】
ステップＳ５（文字列抽出ステップ）において、制御部１１（文字列抽出部１１５）は、ステップＳ４でアルファベットに分類された文字からなる文字列、又は文字列の列を抽出し、このうち、非攻撃データよりも攻撃データの中に頻出するシグネチャ候補をさらに抽出する。
【００６９】
ステップＳ６において、制御部１１（正規表現生成部１１６）は、ステップＳ５において抽出されたシグネチャ候補の文字列、又は文字列の列を検出するための正規表現を生成する。
【００７０】
ステップＳ７において、制御部１１（有効性判定部１１７）は、ステップＳ６において生成された正規表現のシグネチャ候補の有効性を判定し、有効と判定されたものをシグネチャとして選定する。
【００７１】
以上のように、本実施形態によれば、シグネチャ生成サーバ１０は、テキスト形式の検体のうち、非攻撃データよりも攻撃データに頻出するアルファベットの文字列、又は文字列の列を抽出する。したがって、シグネチャ生成サーバ１０は、アルファベットの並びのみに着目して効率的にテキスト形式の攻撃に特有のシグネチャ候補を抽出できる。その結果、シグネチャ生成サーバ１０は、処理負荷を低減でき、大量の検体に対して網羅的にシグネチャ候補を探索することができる。
【００７２】
また、シグネチャ生成サーバ１０は、正規表現によるシグネチャを生成するので、例えばスペースを挿入するといった難読化されたテキストデータの揺らぎに対しても同一のシグネチャを対応させることができる。その結果、シグネチャ生成サーバ１０は、攻撃データを検知する精度を向上できる。
【００７３】
また、シグネチャ生成サーバ１０は、出現頻度や文字列長等の有効性指標に基づいて、より高精度に攻撃データを検知できるシグネチャを選択するので、このシグネチャを利用する侵入検知システム６において、攻撃データの検知精度が向上すると共に、処理の効率化が期待できる。
【００７４】
また、シグネチャ生成サーバ１０は、シグネチャを抽出するための検体を自動的に収集するので、運用者の作業負荷が低減される。さらに、検体数が増加することにより、有効なシグネチャを抽出できる可能性が高まる。
【００７５】
また、シグネチャ生成サーバ１０は、検体を閲覧したブラウザがリダイレクトされる先のＵＲＬを、既に攻撃サイトと判明しているブラックリストと照合できるので、検体が攻撃データであるか非攻撃データであるかの簡易判定ができる。さらに、シグネチャ生成サーバ１０は、検体内のスクリプトを実行することにより実際に発生するリクエストを検出し、リダイレクト先のＵＲＬを取得できる。したがって、支援装置は、テキストとしてＵＲＬが明示されていない場合であっても、検体が攻撃データであるか否かの簡易判定ができる。その結果、シグネチャ生成サーバ１０は、検体に基づいて生成されるシグネチャの信頼性を向上できる。
【００７６】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【符号の説明】
【００７７】
１０  シグネチャ生成サーバ（支援装置）
１１  制御部
１２  記憶部
１３  通信部
１４  入力部
１５  出力部
１１１ａ  攻撃検体収集部
１１１ｂ  非攻撃検体収集部
１１２  テキスト判定部
１１３  検体判定部
１１４  文字クラス分類部
１１５  文字列抽出部
１１６  正規表現生成部
１１７  有効性判定部
【図１】
2012003463.tif 000003
【図２】
2012003463.tif 000004
【図３】
2012003463.tif 000005
【図４】
2012003463.tif 000006
【図５】
2012003463.tif 000007