説明

シグネチャの生成を支援する支援装置、方法及びプログラム

【課題】侵入検知システムにおけるテキスト形式の検体を対象としたシグネチャを効率的に生成できる支援装置、方法及びプログラムを提供すること。
【解決手段】シグネチャ生成サーバ10は、攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定部112と、テキスト形式であると判定された検体に含まれている文字を、正規表現における文字クラスのいずれかに分類する文字クラス分類部114と、アルファベットに分類された文字の連続からなる文字列のうち、非攻撃データの中よりも攻撃データの中に頻繁に出現する文字列、又は文字列の列を、シグネチャの候補として抽出する文字列抽出部115と、を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、不許可データの侵入を検知するためのシグネチャの生成を支援する支援装置、方法及びプログラムに関する。
【背景技術】
【0002】
従来、Webサーバ等、インターネットに公開してサービスを提供するサーバは、インターネットから攻撃(不正アクセス)を受ける可能性がある。そこで、ファイアウォールや侵入検知システム等が設置されることが一般的である。ファイアウォールは、特定のプロトコル、IPアドレス及びポート番号のみの通過を許可することによって、サーバにおける意図しないポートへの攻撃を防ぐ。また、侵入検知システムは、許可しているポートを通過するパケットの内容から攻撃を検知して運用者に通知する。
【0003】
この侵入検知システムは、シグネチャ型と呼ばれる方式を採用する場合が多い。シグネチャ型とは、攻撃に特有のビット列を予めデータベースに登録しておき、通信の内容がこのビット列と合致した場合に、攻撃を受けていると判断する方式である。ところが、攻撃の方法は、次々と新しくなるため、攻撃方法の変化に対応するためのシグネチャの更新が不可欠である。このシグネチャは、侵入検知システムの販売会社や運用者のコミュニティによって生成、配布されるが、通常、攻撃時に発生する通信や脆弱性に関する情報から、専門家が攻撃特有のビット列を抽出して、シグネチャとして登録される。
【0004】
このようなシグネチャの生成に関わる時間や費用を削減するために、通信の内容や攻撃方法に関する情報からシグネチャを自動生成する方法が提案されている(例えば、特許文献1〜4、非特許文献1〜3参照)。
【0005】
ところで、攻撃がバイナリの実行ファイルである場合、このファイルは、実行形式のまま圧縮、暗号化、難読化又は最適化することにより、異なるビット列に変換が可能である。したがって、攻撃者が攻撃パケットに対して、これらの変換を行うことにより、シグネチャによる攻撃検出を回避される可能性がある。なお、このような変換によって生成された攻撃の検体は、ポリモーフィック型マルウェアと呼ばれる。ポリモーフィック技術は、実行ファイルだけでなく、攻撃通信に対しても適用される。
【0006】
そこで、1つの攻撃検体に対して、複数のポリモーフィックされた検体を生成して、全ての検体に共通するビット列をシグネチャとして生成する方法が提案されている(例えば、非特許文献4又は5参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特許第4265163号公報
【特許文献2】特開2004−348740号公報
【特許文献3】特開2007−058514号公報
【特許文献4】特開2007−242002号公報
【非特許文献】
【0008】
【非特許文献1】Hyang−ah Kim, “Autograph: Toward automated, distributed worm signature detection,” Proceedings of the 13th Usenix Security Symposium, 2004
【非特許文献2】Sumeet Singh, Cristian Estan, George Varghese and Stefan Savage, “Automated Worm fingerprinting,” Proceedings of the 6th Conference on Symposium on Opearting Systems Design & Implementation, 2004
【非特許文献3】Christian Kreibich and Jon Crowcroft, “Honeycomb − Creating Intrusion Detection Signatures Using Honeypots,” Proceedings of the Second Workshop on Hot Topics in Networks (HotNets−II), 2003
【非特許文献4】James Newsome, Brad Karp and Dawn Song, “Polygraph: Automatically Generating Signatures for Polymorphic Worms,” Proceedings of the 2005 IEEE Symposium on Security and Privacy, 2005
【非特許文献5】Zhichun Li, Manan Sanghi, Yan Chen, Ming−yang Kao and Brian Chavez, “Hamsa: fast signature generation for zero−day polymorphic worms with provable attack resilience,” Proceedings of the 2006 IEEE Symposium on Security and Privacy, 2006
【発明の概要】
【発明が解決しようとする課題】
【0009】
近年、マルウェアの感染経路が、ネットワークからの能動的な経路から、閲覧しているWebサイトからWebブラウザを経由する受動的な経路に移行しつつある。そのため、Webブラウザが解釈できるHTMLやJavaScript(登録商標)等のテキスト形式の検体が増加している。
【0010】
また、Webブラウザへの攻撃は、HTMLやJavaScript(登録商標)によってWebブラウザを攻撃Webサイトへ誘導する方法であるため、Webサーバに設置された侵入検知システムでは攻撃を検知できない場合がある。したがって、テキスト形式の検体から効率的にシグネチャを生成することが望まれる。
【0011】
しかしながら、上述のバイナリ形式の検体を対象としたシグネチャの生成方法は、テキスト形式の検体を効率的に処理できない。すなわち、テキスト形式のスクリプトは、バイナリ形式に比べて表現が柔軟であり、シグネチャを回避する変換が容易であるため、対象とすべき検体が膨大となる。そのため、有効なシグネチャを網羅的に検索するために多大な時間が掛かってしまう。例えば、HTMLやJavaScript(登録商標)は、スペースの連続や改行コードを無視するため、スペースを追加するだけで異なる攻撃スクリプトが生成される。
【0012】
そこで、本発明は、侵入検知システムにおけるテキスト形式の検体を対象としたシグネチャを効率的に生成できる支援装置、方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0013】
本発明では、以下のような解決手段を提供する。
【0014】
(1)攻撃データの侵入を検知するためのシグネチャの生成を支援する支援装置であって、攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定部と、前記テキスト判定部によりテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類部と、前記クラス分類部により所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出部と、を備える支援装置。
【0015】
このような構成によれば、支援装置は、テキスト形式の検体のうち、非攻撃データよりも攻撃データに頻出する所定の種類の文字からなる文字列、又は文字列の列を抽出する。したがって、支援装置は、所定の種類の文字のみに着目して効率的にテキスト形式の攻撃に特有のシグネチャ候補を抽出できる。その結果、支援装置は、処理負荷を低減でき、大量の検体に対して網羅的にシグネチャ候補を探索することができる。
【0016】
(2)前記文字列抽出部により抽出された文字列又は文字列の列を示す正規表現形式のシグネチャを生成する正規表現生成部をさらに備える(1)に記載の支援装置。
【0017】
このような構成によれば、支援装置は、正規表現によるシグネチャを生成するので、テキストデータの揺らぎに対しても同一のシグネチャを対応させることができる。その結果、支援装置は、攻撃データを検知する精度を向上できる。
【0018】
(3)前記正規表現生成部は、前記所定の文字クラス以外の文字クラスに分類された文字又は文字列に対して、前記所定の文字クラス以外の文字クラスに分類される他の文字又は文字列に置き換え可能な正規表現形式のシグネチャを生成する(2)に記載の支援装置。
【0019】
このような構成によれば、支援装置は、例えばスペースを挿入するといった難読化されたテキストデータに対しても同一のシグネチャを対応させることができる。その結果、支援装置は、攻撃データを検知する精度を向上できる。
【0020】
(4)前記正規表現生成部により生成されたシグネチャについて、予め設定されている所定の基準に基づく有効性指標をそれぞれ求め、当該有効性指標に基づいて前記シグネチャを取捨選択する有効性判定部をさらに備える(2)又は(3)に記載の支援装置。
【0021】
このような構成によれば、支援装置は、有効性指標に基づいて、より高精度に攻撃データを検知できるシグネチャを選択するので、このシグネチャを利用する侵入検知システムにおいて、攻撃データの検知精度が向上すると共に、処理の効率化が期待できる。
【0022】
(5)前記攻撃データ又は前記非攻撃データの検体を収集する検体収集部をさらに備える(1)から(4)のいずれかに記載の支援装置。
【0023】
このような構成によれば、支援装置は、シグネチャを抽出するための検体を自動的に収集するので、運用者の作業負荷が低減される。さらに、検体数が増加することにより、有効なシグネチャを抽出できる可能性が高まる。
【0024】
(6)前記検体に含まれているURLを所定のリストと照合することにより、当該検体が攻撃データであるか非攻撃データであるかを判定する検体判定部をさらに備える(1)から(5)のいずれかに記載の支援装置。
【0025】
このような構成によれば、支援装置は、検体を閲覧したブラウザがリダイレクトされる先のURLを、既に攻撃サイトと判明しているリストと照合できるので、検体が攻撃データであるか非攻撃データであるかの簡易判定ができる。したがって、支援装置は、検体に基づいて生成されるシグネチャの信頼性を向上できる。
【0026】
(7)前記検体判定部は、前記検体に含まれているスクリプトを実行することにより生成されるURLについても、前記所定のリストと照合することにより、当該検体が攻撃データであるか非攻撃データであるかを判定する(6)に記載の支援装置。
【0027】
このような構成によれば、支援装置は、検体内のスクリプトを実行することにより実際に発生するリクエストを検出し、リダイレクト先のURLを取得できる。したがって、支援装置は、テキストとしてURLが明示されていない場合であっても、検体が攻撃データであるか否かの簡易判定ができる。
【0028】
(8)攻撃データの侵入を検知するためのシグネチャの生成をコンピュータが支援する方法であって、攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定ステップと、前記テキスト判定ステップにおいてテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類ステップと、前記クラス分類ステップにおいて所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出ステップと、を含む方法。
【0029】
このような構成によれば、当該方法をコンピュータが実行することにより、(1)と同様の効果が期待できる。
【0030】
(9)攻撃データの侵入を検知するためのシグネチャの生成をコンピュータに支援させるプログラムであって、攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定ステップと、前記テキスト判定ステップにおいてテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類ステップと、前記クラス分類ステップにおいて所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出ステップと、を実行させるプログラム。
【0031】
このような構成によれば、当該プログラムをコンピュータに実行させることにより、(1)と同様の効果が期待できる。
【発明の効果】
【0032】
本発明によれば、侵入検知システムにおけるテキスト形式の検体を対象としたシグネチャを効率的に生成できる。
【図面の簡単な説明】
【0033】
【図1】本発明の実施形態に係るシステム環境の全体構成を示す図である。
【図2】本発明の実施形態に係るシグネチャ生成サーバの機能構成を示すブロック図である。
【図3】本発明の実施形態に係る正規表現における文字クラスを示す図である。
【図4】本発明の実施形態に係るシグネチャの候補を記憶したテーブルの例を示す図である。
【図5】本発明の実施形態に係るシグネチャ生成サーバの処理を示すフローチャートである。
【発明を実施するための形態】
【0034】
以下、本発明の実施形態の一例について説明する。
なお、本実施形態では、支援装置の一例として、シグネチャ生成サーバ10を説明する。
【0035】
図1は、本実施形態に係るシグネチャ生成サーバ10及び侵入検知システム6を含むシステム環境の全体構成を示す図である。
【0036】
ホスティングサーバ群1は、Webサイトをインターネット2に公開しており、サイトの管理用端末3又はサイトの閲覧用端末4からアクセスされる。攻撃者5は、管理用端末3を制御し、ホスティングサーバ群1に対して、攻撃サイトへ誘導する攻撃データ(HTML、JavaScript(登録商標)等のテキストデータ)をアップロードする。すると、閲覧用端末4は、攻撃データが含まれるWebサイトを閲覧したことにより、攻撃者5により用意された攻撃サイトへリダイレクトされ、攻撃を受けることとなる。
【0037】
侵入検知システム6は、ホスティングサーバ群1への攻撃データの侵入を検知するシステムであり、この攻撃データを識別するためのシグネチャをデータベースに記憶している。ホスティングサーバ群1の運用者7は、侵入検知システム6から警告が通知されることにより、攻撃データの侵入を把握する。また、運用者7は、このシグネチャを適宜更新することにより、新たな攻撃データにも対応する。
【0038】
シグネチャ生成サーバ10は、シグネチャの生成を支援する装置である。シグネチャ生成サーバ10は、運用者7からの指示入力に基づいて、ホスティングサーバ群1やインターネット2から収集された検体より、シグネチャを生成し、侵入検知システム6のデータベースへ登録する。
【0039】
図2は、本実施形態に係るシグネチャ生成サーバ10の機能構成を示すブロック図である。
シグネチャ生成サーバ10は、制御部11と、記憶部12と、通信部13と、入力部14と、出力部15とを備える。
【0040】
制御部11は、シグネチャ生成サーバ10の全体を制御する部分であり、記憶部12に記憶された各種プログラムを適宜読み出して実行することにより、上記のハードウェアと協働し、本実施形態における各種機能を実現している。制御部11は、CPU(Central Processing Unit)であってよい。なお、制御部11が備える各部の機能は後述する。
【0041】
記憶部12は、ハードウェア群をシグネチャ生成サーバ10として機能させるための各種プログラム、及び各種データ等の記憶領域であり、ハードディスク(HDD)であってよい。具体的には、記憶部12には、本実施形態の各種機能を実現させるため制御部11に実行させるプログラムが記憶される。
【0042】
通信部13は、シグネチャ生成サーバ10が他の装置と情報を送受信する場合のネットワーク・アダプタであり、ネットワーク(インターネット2)を介して攻撃データ又は非攻撃データの検体を収集して制御部11へ提供する。また、通信部13は、運用者7の端末からの指示データを受信し、侵入検知システム6へシグネチャを送信する。
【0043】
入力部14は、シグネチャ生成サーバ10に対する利用者からの指示入力を受け付けるインタフェース装置である。入力部14は、例えば、キーボード、マウス及びタッチパネル等により構成される。
【0044】
出力部15は、利用者にデータの入力を受け付ける画面を表示したり、シグネチャ生成サーバ10による処理結果の画面を表示したりするディスプレイ装置を含む。さらに、出力部15は、ブラウン管表示装置(CRT)や液晶表示装置(LCD)等のディスプレイ装置の他、プリンタ等の各種出力装置を含んでよい。
【0045】
次に、制御部11の機能を詳述する。
制御部11は、攻撃検体収集部111aと、非攻撃検体収集部111bと、テキスト判定部112と、検体判定部113と、文字クラス分類部114と、文字列抽出部115と、正規表現生成部116と、有効性判定部117とを備える。各部は、記憶部12に記憶されているプログラムを実行することにより実現される機能ブロックである。
【0046】
攻撃検体収集部111aは、攻撃データの検体を収集する。具体的には、攻撃検体収集部111aは、運用者7から、攻撃を受けたことが判明している、あるいは可能性が高いWebサイトのURLの指定入力を受け付け、このURLにて特定されるWebページのページデータを収集する。
【0047】
非攻撃検体収集部111bは、非攻撃データの検体を収集する。具体的には、非攻撃検体収集部111bは、侵入検知システム6の監視対象であるホスティングサーバ群1のURLを入力として、ページデータを取得する。このとき、非攻撃検体収集部111bは、取得したページデータ(HTML)に含まれるリンクを参照し、別のページデータを取得する処理を繰り返す。これにより、効率的に非攻撃検体が収集される。
【0048】
テキスト判定部112は、収集された検体がテキスト形式であるか否かを判定する。具体的には、テキスト判定部112は、検体であるファイルの先頭の数バイトを読み込むと、このバイト列が特定の文字列(例えば、「<!doctype html」)である場合に、ある種のテキスト形式(例えば、HTML形式)のファイルであると判定する。
【0049】
検体判定部113は、収集された検体(HTMLファイル)に含まれているURLを所定のリスト、すなわち公開されているブラックリストと照合することにより、この検体が攻撃データあるか非攻撃データであるかを簡易判定する。また、検体判定部113は、検体に含まれているJavaScript(登録商標)を実行することにより発生するHTTPリクエストも対象とし、実行により生成されるURLについても、所定のブラックリストと照合することにより、検体が攻撃データであるか非攻撃データであるかを簡易判定する。
【0050】
文字クラス分類部114は、テキスト判定部112によりテキスト形式であると判定された検体に含まれている文字を、正規表現における文字クラスのいずれかに分類する。
【0051】
図3は、本実施形態に係る正規表現における文字クラスを示す図である。
本実施形態では、各文字は、アルファベット(Alphabetic character)、数字(Digit character)又は非単語文字(Non−word)のいずれかの文字クラスに分類される。また、非単語文字は、さらに区切り文字(Punctuation characters)、空白文字(Whitespace characters)又は制御文字(Control characters)に分類される。
【0052】
正規表現において、アルファベットは「[:alpha:]」と表され、数字は「[:digit:]」と表され、区切り文字は「[:punct:]」と表され、空白文字は「[:space:]」と表され、制御文字は「[:cntrl:]」と表される。なお、本実施形態では、区切り文字、空白文字及び制御文字を区別せず、非単語文字を表す正規表現「¥w」を用いる。
【0053】
文字列抽出部115は、文字クラス分類部114によりアルファベット(所定の文字クラス)に分類された文字の連続からなる文字列を抽出する。そして、文字列抽出部115は、これらのうち、非攻撃データの検体中よりも攻撃データの検体中に頻繁に出現する文字列、又は文字列の列を、シグネチャの候補として抽出する。具体的には、文字列抽出部115は、攻撃データの検体にある閾値以上の割合で出現し、非攻撃データの検体に別の閾値以下の割合で出現する文字列又は文字列の列を抽出することとしてよい。
【0054】
ここで、攻撃データの検体の中では出現頻度が高いが、非攻撃データの検体の中では出現頻度が低い文字列は、攻撃データを検出する有力なシグネチャの候補となる。また、文字列抽出部115は、アルファベット以外の文字で分割されたアルファベットのみの文字列を抽出するので、バイナリ形式の検体からビット列を抽出するのに比べて、シグネチャの候補数を低減できる。すなわち、分割位置を特定せずにビット列を抽出した場合、様々な長さのビット列が候補となるが、文字列抽出部115は、アルファベット以外の文字クラスの文字により明確に分割されたアルファベットの文字列を対象とする。
【0055】
正規表現生成部116は、文字列抽出部115により抽出された文字列又は文字列の列を示す正規表現形式のシグネチャを生成し、記憶部12に記憶する。このとき、正規表現生成部116は、アルファベット以外の文字クラスに分類された文字又は文字列に対して、同じくアルファベット以外の文字クラスに分類される他の文字又は文字列に置き換え可能な正規表現形式のシグネチャを生成する。
【0056】
図4は、本実施形態に係るシグネチャの候補を記憶したテーブルの例を示す図である。
ここで、Tokenフィールドは、文字列抽出部115により抽出された文字列又は文字列の列であり、RegExp Signatureフィールドは、正規表現生成部116により生成された正規表現形式のシグネチャである。
【0057】
また、True+フィールドは、シグネチャが攻撃データの検体に含まれる割合であり、False+フィールドは、シグネチャが非攻撃データの検体に含まれる割合である。さらに、Lengthフィールドは、シグネチャが表しているアルファベットの文字列、又は文字列の列の長さである。これらは、生成されたシグネチャの有効性判定に用いられる。
【0058】
なお、正規表現では、文字列の区切りは、「¥([[:digit:]]¥|¥w¥)¥+」と表現され、アルファベット以外の文字クラスに属する文字からなる任意の文字列を示している。すなわち、攻撃データ中の数字や非単語文字が他の数字や非単語文字からなる文字列に変換された場合(例えば、スペースを挿入された場合等)にも、シグネチャと合致する。
【0059】
また、図4の例では、抽出された文字列が2文字以下である場合、例えば変数名の相違等により、侵入検知システム6において誤検知が生じる可能性が高くなるため、任意の2文字として表現している。
【0060】
有効性判定部117は、正規表現生成部116により生成されたシグネチャについて、予め設定されている所定の基準に基づく有効性指標をそれぞれ求め、この有効性指標に基づいてシグネチャを取捨選択する。具体的には、例えば、図4に示すように、シグネチャが攻撃データの検体に含まれる割合(True+)、シグネチャが非攻撃データの検体に含まれる割合(False+)、文字列長(Length)等を有効性指標とする。
【0061】
上述のように、(True+)は大きいほど良く、(False+)は小さいほど良い。また、(Length)は、長いほど誤検知が生じにくい。そこで、有効性判定部117は、例えば、(True+)の大きいもの、(False+)の小さいもの、(True+)−(False+)の大きいもの、(Length)の大きいもの等、予め設定されている優先度に基づいて、有効なシグネチャを選択する。
【0062】
また、ランダムな文字列よりも関数名のような意味のある文字列の方が有効なシグネチャである可能性が高いので、有効性判定部117は、このようなシグネチャを優先してもよい。
【0063】
図5は、本実施形態に係るシグネチャ生成サーバ10の処理を示すフローチャートである。
【0064】
ステップS1において、制御部11(攻撃検体収集部111a、非攻撃検体収集部111b)は、攻撃データ及び非攻撃データの検体を収集する。
【0065】
ステップS2(テキスト判定ステップ)において、制御部11(テキスト判定部112)は、ステップS1において収集された検体がテキスト形式であるか否かを判定する。制御部11は、テキスト形式でないと判定された検体を除外し、処理を次のステップへ進める。
【0066】
ステップS3において、制御部11(検体判定部113)は、ステップS2においてテキスト形式と判定された検体について、攻撃データであるか非攻撃データであるかの簡易判定を行う。制御部11は、収集時の区分(攻撃データ又は非攻撃データ)と異なると判定された検体については、以下の処理で除外してもよいし、区分を入れ替えてもよい。
【0067】
ステップS4(クラス分類ステップ)において、制御部11(文字クラス分類部114)は、ステップS3までに除外されなかった検体に含まれる文字を、正規表現における文字クラスに分類する。
【0068】
ステップS5(文字列抽出ステップ)において、制御部11(文字列抽出部115)は、ステップS4でアルファベットに分類された文字からなる文字列、又は文字列の列を抽出し、このうち、非攻撃データよりも攻撃データの中に頻出するシグネチャ候補をさらに抽出する。
【0069】
ステップS6において、制御部11(正規表現生成部116)は、ステップS5において抽出されたシグネチャ候補の文字列、又は文字列の列を検出するための正規表現を生成する。
【0070】
ステップS7において、制御部11(有効性判定部117)は、ステップS6において生成された正規表現のシグネチャ候補の有効性を判定し、有効と判定されたものをシグネチャとして選定する。
【0071】
以上のように、本実施形態によれば、シグネチャ生成サーバ10は、テキスト形式の検体のうち、非攻撃データよりも攻撃データに頻出するアルファベットの文字列、又は文字列の列を抽出する。したがって、シグネチャ生成サーバ10は、アルファベットの並びのみに着目して効率的にテキスト形式の攻撃に特有のシグネチャ候補を抽出できる。その結果、シグネチャ生成サーバ10は、処理負荷を低減でき、大量の検体に対して網羅的にシグネチャ候補を探索することができる。
【0072】
また、シグネチャ生成サーバ10は、正規表現によるシグネチャを生成するので、例えばスペースを挿入するといった難読化されたテキストデータの揺らぎに対しても同一のシグネチャを対応させることができる。その結果、シグネチャ生成サーバ10は、攻撃データを検知する精度を向上できる。
【0073】
また、シグネチャ生成サーバ10は、出現頻度や文字列長等の有効性指標に基づいて、より高精度に攻撃データを検知できるシグネチャを選択するので、このシグネチャを利用する侵入検知システム6において、攻撃データの検知精度が向上すると共に、処理の効率化が期待できる。
【0074】
また、シグネチャ生成サーバ10は、シグネチャを抽出するための検体を自動的に収集するので、運用者の作業負荷が低減される。さらに、検体数が増加することにより、有効なシグネチャを抽出できる可能性が高まる。
【0075】
また、シグネチャ生成サーバ10は、検体を閲覧したブラウザがリダイレクトされる先のURLを、既に攻撃サイトと判明しているブラックリストと照合できるので、検体が攻撃データであるか非攻撃データであるかの簡易判定ができる。さらに、シグネチャ生成サーバ10は、検体内のスクリプトを実行することにより実際に発生するリクエストを検出し、リダイレクト先のURLを取得できる。したがって、支援装置は、テキストとしてURLが明示されていない場合であっても、検体が攻撃データであるか否かの簡易判定ができる。その結果、シグネチャ生成サーバ10は、検体に基づいて生成されるシグネチャの信頼性を向上できる。
【0076】
以上、本発明の実施形態について説明したが、本発明は上述した実施形態に限るものではない。また、本実施形態に記載された効果は、本発明から生じる最も好適な効果を列挙したに過ぎず、本発明による効果は、本実施形態に記載されたものに限定されるものではない。
【符号の説明】
【0077】
10 シグネチャ生成サーバ(支援装置)
11 制御部
12 記憶部
13 通信部
14 入力部
15 出力部
111a 攻撃検体収集部
111b 非攻撃検体収集部
112 テキスト判定部
113 検体判定部
114 文字クラス分類部
115 文字列抽出部
116 正規表現生成部
117 有効性判定部

【特許請求の範囲】
【請求項1】
攻撃データの侵入を検知するためのシグネチャの生成を支援する支援装置であって、
攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定部と、
前記テキスト判定部によりテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類部と、
前記クラス分類部により所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出部と、を備える支援装置。
【請求項2】
前記文字列抽出部により抽出された文字列又は文字列の列を示す正規表現形式のシグネチャを生成する正規表現生成部をさらに備える請求項1に記載の支援装置。
【請求項3】
前記正規表現生成部は、前記所定の文字クラス以外の文字クラスに分類された文字又は文字列に対して、前記所定の文字クラス以外の文字クラスに分類される他の文字又は文字列に置き換え可能な正規表現形式のシグネチャを生成する請求項2に記載の支援装置。
【請求項4】
前記正規表現生成部により生成されたシグネチャについて、予め設定されている所定の基準に基づく有効性指標をそれぞれ求め、当該有効性指標に基づいて前記シグネチャを取捨選択する有効性判定部をさらに備える請求項2又は請求項3に記載の支援装置。
【請求項5】
前記攻撃データ又は前記非攻撃データの検体を収集する検体収集部をさらに備える請求項1から請求項4のいずれかに記載の支援装置。
【請求項6】
前記検体に含まれているURLを所定のリストと照合することにより、当該検体が攻撃データであるか非攻撃データであるかを判定する検体判定部をさらに備える請求項1から請求項5のいずれかに記載の支援装置。
【請求項7】
前記検体判定部は、前記検体に含まれているスクリプトを実行することにより生成されるURLについても、前記所定のリストと照合することにより、当該検体が攻撃データであるか非攻撃データであるかを判定する請求項6に記載の支援装置。
【請求項8】
攻撃データの侵入を検知するためのシグネチャの生成をコンピュータが支援する方法であって、
攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定ステップと、
前記テキスト判定ステップにおいてテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類ステップと、
前記クラス分類ステップにおいて所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出ステップと、を含む方法。
【請求項9】
攻撃データの侵入を検知するためのシグネチャの生成をコンピュータに支援させるプログラムであって、
攻撃データ及び非攻撃データの検体がテキスト形式であるか否かを判定するテキスト判定ステップと、
前記テキスト判定ステップにおいてテキスト形式であると判定された前記検体に含まれている文字を、正規表現における文字クラスのいずれかに分類するクラス分類ステップと、
前記クラス分類ステップにおいて所定の文字クラスに分類された文字の連続からなる文字列のうち、前記非攻撃データの中よりも前記攻撃データの中に頻繁に出現する文字列、又は文字列の列を、前記シグネチャの候補として抽出する文字列抽出ステップと、を実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate