IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

<>
  • 特許-エクスプロイト・キット検出 図1
  • 特許-エクスプロイト・キット検出 図2
  • 特許-エクスプロイト・キット検出 図3
  • 特許-エクスプロイト・キット検出 図4
  • 特許-エクスプロイト・キット検出 図5
  • 特許-エクスプロイト・キット検出 図6
  • 特許-エクスプロイト・キット検出 図7
  • 特許-エクスプロイト・キット検出 図8
  • 特許-エクスプロイト・キット検出 図9
  • 特許-エクスプロイト・キット検出 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-11-27
(45)【発行日】2023-12-05
(54)【発明の名称】エクスプロイト・キット検出
(51)【国際特許分類】
   G06F 21/55 20130101AFI20231128BHJP
   G06N 20/00 20190101ALI20231128BHJP
【FI】
G06F21/55
G06N20/00
【請求項の数】 7
(21)【出願番号】P 2021527191
(86)(22)【出願日】2020-01-15
(65)【公表番号】
(43)【公表日】2022-03-16
(86)【国際出願番号】 IB2020050292
(87)【国際公開番号】W WO2020157591
(87)【国際公開日】2020-08-06
【審査請求日】2022-06-22
(31)【優先権主張番号】16/262,340
(32)【優先日】2019-01-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ハリス、ブラッドリー、エヴァン
(72)【発明者】
【氏名】カーン、モアッツァム
(72)【発明者】
【氏名】ラヴィンドラ、プリーティ
【審査官】上島 拓也
(56)【参考文献】
【文献】米国特許出願公開第2014/0189864(US,A1)
【文献】中国特許出願公開第106169050(CN,A)
【文献】米国特許第09825976(US,B1)
【文献】国際公開第2017/217163(WO,A1)
【文献】特表2015-511340(JP,A)
【文献】田中晃太郎ほか,DNSログからの不正Webサイト抽出について,コンピュータセキュリティシンポジウム2013,日本,2013年10月21日
【文献】松中隆志ほか,Drive-by Download攻撃対策フレームワークにおけるWebアクセスログを用いたWebリンク構造の解析による悪性サイト検出手法の提案,コンピュータセキュリティシンポジウム2014,日本,2014年10月22日
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/55
G06F 21/44
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
プロセッサとメモリとを備えたデータ処理システムにおける前記プロセッサによって実施される、エクスプロイト・キットを識別する方法であって、
前記プロセッサによって、ウェブ・ページを受信することと、
前記プロセッサによって、前記ウェブ・ページの複数の特徴を抽出することと、
前記プロセッサによって、前記抽出された特徴を用いて訓練されたアンサンブル分類器モデルによって、前記ウェブ・ページがエクスプロイト・キットに関連付けられるかどうかを決定することと
前記プロセッサによって、前記ウェブ・ページ内のリンクの数を識別することと、
前記プロセッサによって、リンクの数がゼロである場合は、前記ウェブ・ページは前記エクスプロイト・キットに関連付けられると決定することと

を含む方法。
【請求項2】
前記プロセッサによって、前記ウェブ・ページ内の画像の数を識別することと、
前記プロセッサによって、画像の数がゼロである場合は、前記ウェブ・ページは前記エクスプロイト・キットに関連付けられると決定することと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記プロセッサによって、前記ウェブ・ページ内のリンクの数および画像の数を識別することと、
前記プロセッサによって、リンクの数および画像の数の両方がゼロである場合は、前記ウェブ・ページは前記エクスプロイト・キットに関連付けられると決定することと
をさらに含む、請求項1に記載の方法。
【請求項4】
前記プロセッサによって、前記ウェブ・ページが圧縮されたオブジェクトまたは実行可能なバイナリ・コンテンツを含んだ非テキスト・ベースのウェブ・ページである場合は、前記ウェブ・ページを削除すること
をさらに含む、請求項1に記載の方法。
【請求項5】
エクスプロイト・キットを識別するためのシステムであって、
プロセッサを備え、前記プロセッサは、
ウェブ・ページを受信することと、
前記ウェブ・ページの複数の特徴を抽出することであって、前記複数の特徴は、一意のバイグラムの数、バイグラムの総数、一意のバイグラムの数とバイグラムの総数の比、ファイル・サイズ、および前記ファイル・サイズとバイグラムの総数の比の1つまたは複数を含む、前記抽出することと、
前記抽出された特徴を用いて訓練されたアンサンブル分類器モデルによって、前記ウェブ・ページが前記エクスプロイト・キットに関連付けられるかどうかを決定することであって、前記訓練されたアンサンブル分類器モデルは、ナイーブ・ベイズ分類器およびランダム規則分類器によって生成されたモデルを備える、前記決定することと
前記ウェブ・ページが上位1万個のウェブ・ページの1つであるかどうかを識別することと、
前記ウェブ・ページが上位1万個のウェブ・ページの1つである場合は、前記ウェブ・ページは前記エクスプロイト・キットに関連付けられないと決定することと、
前記ウェブ・ページ内のリンクの数および画像の数を識別することと、
リンクの数および画像の数の両方がゼロである場合は、前記ウェブ・ページは前記エクスプロイト・キットに関連付けられると決定することと
を行うように構成されるシステム。
【請求項6】
エクスプロイト・キットを識別するためのシステムであって、
ウェブ・ページ識別モジュールであって、ウェブ・ページが上位1万個のウェブ・ページの1つであるかどうかを識別することと、前記ウェブ・ページが上位1万個のウェブ・ページの1つである場合は、前記ウェブ・ページは前記エクスプロイト・キットに関連付けられないと決定することとを行うように構成された、前記ウェブ・ページ識別モジュールと、
ナイーブ・ベイズ分類器およびランダム規則分類器によって生成されたモデルを含んだ訓練されたアンサンブル分類器モデルであって、前記ウェブ・ページが前記エクスプロイト・キットに関連付けられるかどうかを決定するように構成された、前記訓練されたアンサンブル分類器モデルと、
リンク・カウント・フィルタおよび画像カウント・フィルタを含んだフィルタであって、前記ウェブ・ページ内のリンクの数および画像の数を識別することと、リンクの数および画像の数の両方がゼロである場合は、前記ウェブ・ページは前記エクスプロイト・キットに関連付けられると決定することとを行うように構成された、前記フィルタと
を備えるシステム。
【請求項7】
侵入防止システムであって、エクスプロイト・キットを識別するためのシステムを備え、前記エクスプロイト・キットを識別するためのシステムは、
プロセッサを備え、前記プロセッサは、
ウェブ・ページを受信することと、
前記ウェブ・ページの複数の特徴を抽出することであって、前記複数の特徴は、一意のバイグラムの数、バイグラムの総数、一意のバイグラムの数とバイグラムの総数の比、ファイル・サイズ、および前記ファイル・サイズとバイグラムの総数の比の1つまたは複数を含む、前記抽出することと、
前記ウェブ・ページが上位1万個のウェブ・ページの1つであるかどうかを識別することと、
前記ウェブ・ページが上位1万個のウェブ・ページの1つである場合は、
前記ウェブ・ページは前記エクスプロイト・キットに関連付けられないと決定することと、
前記ウェブ・ページが上位1万個のウェブ・ページの1つではない場合は、
前記抽出された特徴に基づいて訓練されたアンサンブル分類器モデルを通して、前記ウェブ・ページが前記エクスプロイト・キットに関連付けられるかどうかを検出することであって、前記訓練されたアンサンブル分類器モデルは、ナイーブ・ベイズ分類器およびランダム規則分類器によって生成されたモデルを備え、前記訓練されたアンサンブル分類器モデルは、前記決定されたウェブ・ページおよび追加の1つまたは複数の新たなエクスプロイト・キットを用いて継続的に訓練される、前記検出することと、
前記ウェブ・ページが、前記訓練されたアンサンブル分類器モデルによって、前記エクスプロイト・キットに関連付けられると検出された場合は、
前記ウェブ・ページ内の画像の数を識別することと、
画像の数がゼロである場合は、
前記ウェブ・ページは前記エクスプロイト・キットに関連付けられると決定することと、
前記ウェブ・ページが前記エクスプロイト・キットに関連付けられると決定された場合は、前記ウェブ・ページを阻止することと
を行うように構成される、侵入防止システム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は一般に、ウェブ・ページがエクスプロイト・キットであるか否かを識別するために用いられるシステム、方法、およびコンピュータ・プログラム製品に関する。
【背景技術】
【0002】
エクスプロイト・キットは、ワールド・ワイド・ウェブ上で見出されるウェブ・ページまたはウェブ・ページのスクリプトであり、ブラウザ・ベースのエクスプロイトを含んでいる。エクスプロイトは、コード片または一連のコマンドなど、プログラム内の脆弱性を巧みに利用してそれが予想外に振る舞うようにさせるオブジェクトである。
【0003】
ブラウザ・エクスプロイト、特にフラッシュ・プレーヤなどの一般的なプラグイン内に常駐するエクスプロイトは、様々なブラウザを相手にして蔓延しているエクスプロイトである。エクスプロイト・キットは、被害を受けるブラウザに、これらのエクスプロイトをうまく利用することによってマルウェアを広めるために用いられる。しかし、これらのエクスプロイト・キット、すなわち、ウェブ・ページまたはウェブ・ページのスクリプトは、通常高度に不明瞭化され、したがってエクスプロイト・キットのシグネチャ・ベースの検出は実用的ではない。エントロピーなど、他の技法は、より複雑な不明瞭化エンジン(例えば、パッカ)に対しては信頼できるものとはなっていない。さらに、侵入防止システム(IPS)を通したスクリプトの形でのエクスプロイト・キットの識別は、エンコーディングおよびエスケープ・シーケンスにより、直接的でない。さらに、IPSにはより高速なアルゴリズムが含められることが望ましい。
【発明の概要】
【0004】
実施形態は、プロセッサとメモリとを備えたデータ処理システムにおけるコンピュータによって実施される方法をもたらし、メモリは、プロセッサによって実行されたときプロセッサに、エクスプロイト・キットを識別する方法を実施させる命令を備え、方法は、プロセッサによって、ウェブ・ページを受信することと、プロセッサによって、ウェブ・ページの複数の特徴を抽出することと、プロセッサによって、抽出された特徴に基づいて訓練されたアンサンブル分類器モデルを通して、ウェブ・ページがエクスプロイト・キットであるかどうかを決定することとを含む。
【0005】
実施形態はコンピュータによって実施される方法をさらにもたらし、複数の特徴は、一意のNグラムの数、Nグラムの総数、一意のNグラムの数とNグラムの総数の比、ファイル・サイズ、およびファイル・サイズとNグラムの総数の比の1つまたは複数を含む。
【0006】
実施形態はコンピュータによって実施される方法をさらにもたらし、Nグラムはバイグラムである。
【0007】
実施形態はコンピュータによって実施される方法をさらにもたらし、方法は、プロセッサによって、ウェブ・ページ内のリンクの数を識別することと、プロセッサによって、リンクの数がゼロである場合は、ウェブ・ページをエクスプロイト・キットとして決定することとをさらに含む。
【0008】
実施形態はコンピュータによって実施される方法をさらにもたらし、方法は、プロセッサによって、ウェブ・ページ内の画像の数を識別することと、プロセッサによって、画像の数がゼロである場合は、ウェブ・ページをエクスプロイト・キットとして決定することとをさらに含む。
【0009】
実施形態はコンピュータによって実施される方法をさらにもたらし、方法は、プロセッサによって、ウェブ・ページ内のリンクの数および画像の数を識別することと、プロセッサによって、リンクの数および画像の数の両方がゼロである場合は、ウェブ・ページをエクスプロイト・キットとして決定することとをさらに含む。
【0010】
実施形態はコンピュータによって実施される方法をさらにもたらし、方法は、プロセッサによって、ウェブ・ページが上位1万個のウェブ・ページの1つであるかどうかを識別することと、プロセッサによって、ウェブ・ページが上位1万個のウェブ・ページの1つである場合は、ウェブ・ページはエクスプロイト・キットではないと決定することとをさらに含む。
【0011】
実施形態はコンピュータによって実施される方法をさらにもたらし、方法は、プロセッサによって、ウェブ・ページのサイズが1024バイト未満であるかどうかを識別することと、プロセッサによって、ウェブ・ページのサイズが1024バイト未満である場合は、ウェブ・ページを削除することとをさらに含む。
【0012】
実施形態はコンピュータによって実施される方法をさらにもたらし、方法は、プロセッサによって、ウェブ・ページが圧縮されたオブジェクトまたは実行可能なバイナリ・コンテンツを含んだ非テキスト・ベースのウェブ・ページである場合は、ウェブ・ページを削除することをさらに含む。
【0013】
実施形態はエクスプロイト・キットを識別するためのコンピュータ・プログラム製品をもたらし、コンピュータ・プログラム製品は、コンピュータ可読記憶媒体を備え、コンピュータ可読記憶媒体はそれによって具現化されたプログラム命令を有し、プログラム命令は、プロセッサによって、プロセッサにウェブ・ページを受信することと、ウェブ・ページの複数の特徴を抽出することであって、複数の特徴は、一意のバイグラムの数、バイグラムの総数、一意のバイグラムの数とバイグラムの総数の比、ファイル・サイズ、およびファイル・サイズとバイグラムの総数の比の1つまたは複数を含む、抽出することと、抽出された特徴に基づいて訓練されたアンサンブル分類器モデルを通して、ウェブ・ページがエクスプロイト・キットであるかどうかを決定することとを行わせるように実行可能である。
【0014】
実施形態はエクスプロイト・キットを識別するためのコンピュータ・プログラム製品をさらにもたらし、訓練されたアンサンブル分類器モデルは、ナイーブ・ベイズ分類器およびランダム規則分類器によって生成されたモデルを備える。
【0015】
実施形態はエクスプロイト・キットを識別するためのコンピュータ・プログラム製品をさらにもたらし、プロセッサはさらに、決定されたウェブ・ページを用いて、訓練されたアンサンブル分類器モデルを引き続き訓練するようにされる。
【0016】
実施形態はエクスプロイト・キットを識別するためのコンピュータ・プログラム製品をさらにもたらし、プロセッサはさらに、1つまたは複数の新たなエクスプロイト・キットを用いて、訓練されたアンサンブル分類器モデルを引き続き訓練するようにされる。
【0017】
実施形態はエクスプロイト・キットを識別するためのコンピュータ・プログラム製品をさらにもたらし、プロセッサはさらに、訓練されたアンサンブル分類器モデルから、古いエクスプロイト・キットを除去するようにされる。
【0018】
実施形態はエクスプロイト・キットを識別するためのコンピュータ・プログラム製品をさらにもたらし、プロセッサはさらに、訓練されたアンサンブル分類器モデルを、新たなアンサンブル分類器モデルで置き換えるようにされ、新たなアンサンブル分類器モデルは1つまたは複数の新たなエクスプロイト・キットによって訓練される。
【0019】
実施形態はエクスプロイト・キットを識別するためのコンピュータ・プログラム製品をさらにもたらし、プロセッサはさらに、ウェブ・ページ内のリンクの数および画像の数を識別することと、リンクの数および画像の数の両方がゼロである場合は、ウェブ・ページをエクスプロイト・キットとして決定することとを行うようにされる。
【0020】
実施形態はエクスプロイト・キットを識別するためのコンピュータ・プログラム製品をさらにもたらし、プロセッサはさらに、ウェブ・ページが上位1万個のウェブ・ページの1つであるかどうかを識別することと、ウェブ・ページが上位1万個のウェブ・ページの1つである場合は、ウェブ・ページはエクスプロイト・キットではないと決定することとを行うようにされる。
【0021】
実施形態はエクスプロイト・キットを識別するためのコンピュータ・プログラム製品をさらにもたらし、プロセッサはさらに、ウェブ・ページのサイズが1024バイト未満であるかどうかを識別することと、ウェブ・ページのサイズが1024バイト未満である場合は、ウェブ・ページを削除することとを行うようにされる。
【0022】
実施形態はエクスプロイト・キットを識別するためのシステムをもたらし、プロセッサを備え、プロセッサは、ウェブ・ページを受信することと、ウェブ・ページの複数の特徴を抽出することであって、複数の特徴は、一意のバイグラムの数、バイグラムの総数、一意のバイグラムの数とバイグラムの総数の比、ファイル・サイズ、およびファイル・サイズとバイグラムの総数の比の1つまたは複数を含む、抽出することと、抽出された特徴に基づいて訓練されたアンサンブル分類器モデルを通して、ウェブ・ページがエクスプロイト・キットであるかどうかを決定することであって、訓練されたアンサンブル分類器モデルは、ナイーブ・ベイズ分類器およびランダム規則分類器によって生成されたモデルを備える、決定することとを行うように構成される。
【0023】
実施形態はエクスプロイト・キットを識別するためのシステムをさらにもたらし、プロセッサは、決定されたウェブ・ページおよび追加の1つまたは複数の新たなエクスプロイト・キットを用いて、訓練されたアンサンブル分類器モデルを引き続き訓練するようにさらに構成される。
【0024】
実施形態はエクスプロイト・キットを識別するためのシステムをさらにもたらし、プロセッサは、ウェブ・ページが上位1万個のウェブ・ページの1つであるかどうかを識別することと、ウェブ・ページが上位1万個のウェブ・ページの1つである場合は、ウェブ・ページはエクスプロイト・キットではないと決定することと、ウェブ・ページ内のリンクの数および画像の数を識別することと、リンクの数および画像の数の両方がゼロである場合は、ウェブ・ページをエクスプロイト・キットとして決定することとを行うようにさらに構成される。
【0025】
実施形態はエクスプロイト・キットを識別するためのシステムをもたらし、システムは、ウェブ・ページ識別モジュールであって、ウェブ・ページが上位1万個のウェブ・ページの1つであるかどうかを識別することと、ウェブ・ページが上位1万個のウェブ・ページの1つである場合は、ウェブ・ページはエクスプロイト・キットではないと決定することとを行うように構成された、ウェブ・ページ識別モジュールと、ナイーブ・ベイズ分類器およびランダム規則分類器によって生成されたモデルを含んだ訓練されたアンサンブル分類器モデルであって、ウェブ・ページがエクスプロイト・キットであるかどうかを決定するように構成された、訓練されたアンサンブル分類器モデルと、リンク・カウント・フィルタおよび画像カウント・フィルタを含んだフィルタであって、ウェブ・ページ内のリンクの数および画像の数を識別することと、リンクの数および画像の数の両方がゼロである場合は、ウェブ・ページをエクスプロイト・キットとして決定することとを行うように構成された、フィルタとを備える。
【0026】
実施形態は、エクスプロイト・キットを識別するためのシステムをさらにもたらし、訓練されたアンサンブル分類器モデルは、決定されたウェブ・ページおよび追加の1つまたは複数の新たなエクスプロイト・キットを用いて継続的に訓練される。
【0027】
実施形態は侵入防止システムをもたらし、エクスプロイト・キットを識別するためのシステムを備え、エクスプロイト・キットを識別するためのシステムは、プロセッサを備えプロセッサは、ウェブ・ページを受信することと、ウェブ・ページの複数の特徴を抽出することであって、複数の特徴は、一意のバイグラムの数、バイグラムの総数、一意のバイグラムの数とバイグラムの総数の比、ファイル・サイズ、およびファイル・サイズとバイグラムの総数の比の1つまたは複数を含む、抽出することと、ウェブ・ページが上位1万個のウェブ・ページの1つであるかどうかを識別することと、ウェブ・ページが上位1万個のウェブ・ページの1つである場合は、ウェブ・ページはエクスプロイト・キットではないと決定することと、ウェブ・ページが上位1万個のウェブ・ページの1つではない場合は、抽出された特徴に基づいて訓練されたアンサンブル分類器モデルを通して、ウェブ・ページがエクスプロイト・キットであるかどうかを検出することとを行うように構成される。訓練されたアンサンブル分類器モデルは、ナイーブ・ベイズ分類器およびランダム規則分類器によって生成されたモデルを備え、訓練されたアンサンブル分類器モデルは、決定されたウェブ・ページおよび追加の1つまたは複数の新たなエクスプロイト・キットを用いて継続的に訓練される。ウェブ・ページが、訓練されたアンサンブル分類器モデルによって、エクスプロイト・キットとして検出された場合は、ウェブ・ページ内の画像の数を識別する。画像の数がゼロである場合は、ウェブ・ページをエクスプロイト・キットとして決定し、ウェブ・ページがエクスプロイト・キットとして決定された場合は、ウェブ・ページを阻止する。
【0028】
実施形態はさらに侵入防止システムをもたらし、プロセッサは、ウェブ・ページのサイズが1024バイト未満であるかどうかを識別することと、ウェブ・ページのサイズが1024バイト未満である場合は、ウェブ・ページを削除することとを行うようにさらに構成される。
【0029】
他の例示的実施形態において、コンピュータ可読プログラムを有するコンピュータ使用可能または可読媒体を備えた、コンピュータ・プログラム製品がもたらされる。コンピュータ可読プログラムは、プロセッサ上で実行されたとき、方法の例示的実施形態に関して上記で概説された動作の様々なものおよびそれらの組み合わせをプロセッサに行わせる。
【0030】
他の例示的実施形態において、システムがもたらされる。システムは、方法の例示的実施形態に関して上記で概説された動作の様々なものおよびそれらの組み合わせを行うように構成されたプロセッサを備え得る。
【0031】
本開示のさらなる特徴および利点は、添付の図面を参照して進行する、例示的実施形態の以下の詳しい説明から明らかにされるであろう。
【0032】
本発明の前述のおよび他の態様は、添付の図面に関連して読まれたとき、以下の詳しい説明から最もよく理解される。本発明を例示するために、現在好ましい実施形態が図面に示されるが、本発明は開示される特定の手段に限定されないことが理解される。図面には以下の図が含まれる。
【図面の簡単な説明】
【0033】
図1】例示的エクスプロイト・キット検出デバイス104がその中で実施される、例示のデータ処理システム100のブロック図である。
図2】本明細書で述べられるいくつかの実施形態による、分類器モデルを訓練する例示のオフライン・モードのブロック図である。
図3】本明細書で述べられるいくつかの実施形態による、分類器モデルを訓練する他の例示のオフライン・モードのブロック図である。
図4】本明細書で述べられるいくつかの実施形態による、分類器モデルを訓練する例示のオンライン・モードのブロック図である。
図5】本明細書で述べられるいくつかの実施形態による、分類器モデルを訓練する他の例示のオンライン・モードのブロック図である。
図6】本明細書の実施形態による、エクスプロイト・キットを検出する方法600を示す例示のフローチャートである。
図7】本明細書の実施形態による、エクスプロイト・キットを検出する方法700を示す他の例示のフローチャートである。
図8】本明細書の実施形態による、エクスプロイト・キットを検出する方法800を示す他の例示のフローチャートである。
図9】本明細書の実施形態による、エクスプロイト・キットを検出する方法900を示す他の例示のフローチャートである。
図10】例示的実施形態がその中で実施され得る、例示のデータ処理システム1000のブロック図である。
【発明を実施するための形態】
【0034】
本発明の実施形態は、システム、方法、またはコンピュータ・プログラム製品あるいはその組み合わせとすることができる。コンピュータ・プログラム製品は、本発明の態様をプロセッサに遂行させるためのコンピュータ可読プログラム命令を有する、(1つまたは複数の)コンピュータ可読記憶媒体を含むことができる。
【0035】
実施形態において、ウェブ・ページがエクスプロイト・キットであるか、それとも「正常な」ウェブ・ページであるかを識別するためのシステム、方法、およびコンピュータ・プログラム製品が開示される。実施形態において、エクスプロイト・キットを正確に検出するために、検出方策の組み合わせが用いられる。具体的には、一実施形態において、高速な処理、簡単な実装、および高い検出率により、ナイーブ・ベイズ分類器が用いられる。ナイーブ・ベイズ分類器の性能を最適化し、フォールス・ポジティブをさらに低減させるために、一実施形態においてメタ分類器として「ランダム規則」が追加として利用される。さらに、いくつかの実施形態において、フォールス・ポジティブ率を約0.7%までさらに低減させるように、2つの特徴(属性)、すなわちウェブ・ページ内の画像の数である画像カウントと、ウェブ・ページ内のリンクの数であるリンク・カウントとが、独立にまたは組み合わせて用いられ得る。さらに、いくつかの実施形態において、一般的なウェブ・サイト(上位1万個にランク付けされたサイト)がフォールス・ポジティブから削除されることができ、それによりフォールス・ポジティブ率がさらに低減され得るように、上位1万個にランク付けされたサイト(例えば、Alexa(商標)社によってもたらされる)を識別するために、ブルーム・フィルタ、ハッシュ・セット、ハッシュ・マップ、またはジュディ配列が用いられ得る。
【0036】
他の実施形態において、1024バイト未満のサイズを有するウェブ・ページは削除される。例において、サイズが1024バイト未満である場合、ウェブ・ページはノイズであるまたは意味がない傾向があるので、1024バイト未満のサイズを有するウェブ・ページはフィルタにより取り除かれ得る。
【0037】
実施形態において、テキスト・ベースでないウェブ・ページは除外される。例えば、画像またはアニメーションあるいはその両方のみを含んだウェブ・ページは、検討対象から除去され得る。非テキスト・ベースのウェブ・ページ、例えば圧縮されたオブジェクトまたは実行可能なバイナリ・コンテンツを有するウェブ・ページは、一般に異なる長さの意味のあるトークンを有し、ナイーブ・ベイズ分類器は無限のトークン長さによって適切に動作することができない。
【0038】
実施形態において、ブルーム・フィルタ、ハッシュ・セット、ハッシュ・マップ、またはジュディ配列などのウェブ・ページ識別モジュールは、ウェブ・ページがAlexa社によってリストに記載された上位1万個のウェブ・ページの1つであるかどうかを識別するために用いられ得る。ウェブ・ページが上位1万個のウェブ・ページの1つである場合は、このウェブ・ページは一般的なウェブ・ページであり、したがってエクスプロイト・キットではないと見なされ、一方、ウェブ・ページが上位1万個のウェブ・ページの1つではない場合は、ウェブ・ページがエクスプロイト・キットであるかどうかを検出するためにさらなるステップが行われる。ウェブ・ページ識別モジュールを用いて、可能性のある直接のフォールス・ポジティブが削除され得る。より具体的には、フォールス・ポジティブは、エクスプロイト・キットについて、それが実際には無いときに、それの存在を不適切に示すエラーであり、したがって正常なウェブ・ページがエクスプロイト・キットと間違えられる。ウェブ・ページ識別モジュールは、ウェブ・ページが上位1万個のウェブ・ページの1つであるかどうかを確認することによって、この間違いの機会を低減させることができる。実施形態において、ブルーム・フィルタは、要素がセットのメンバであるかどうかをテストするために用いられる、空間効率の良い確率的データ構造体である。実施形態において、ハッシュ・セットは、ビット値にマッピングされたホスト名/URLを保持することができるデータ構造体である。
【0039】
実施形態において、ウェブ・ページのテキスト全体を分析してエクスプロイト・キット・パターンを検出するために、機械学習モデル(分類器の事例であり、「分類器モデル」とも呼ばれる)が利用される。実施形態において、単一トークンはウェブ・ページ・スクリプトのコンテキスト情報をもたらさないので、機械学習モデルでは単一トークンの代わりに、Nグラムが採用される。Nグラムは、エクスプロイト・キットを正常なウェブ・ページと区別するために、ウェブ・ページ・スクリプトのコンテキスト情報をもたらすことができる。Nグラムは、単一の分析されるトークンとして表される、n個の連続したワードである。例において、速度を維持するために、ワードに近いトークン・バイグラム(すなわち、nが2である)が用いられる。バイグラムは、単一の分析されるトークンとして表される2つの連続したワードであり、バイグラム(2グラム)は、低い複雑さと速い処理速度により、トークン化の単位として用いられる。実施形態において、エクスプロイト・キット・ドリフト(エクスプロイト・キット・パターンおよび構造の進化)に対処するために、ストリーミング分類器(継続的に学習する)が用いられる。例において、さらなる安定性および精度のために、アンサンブル分類器が用いられる。
【0040】
実施形態において、機械学習モデルがウェブ・ページをエクスプロイト・キットまたは「正常な」ウェブ・ページとして分類できるように、機械学習モデルが学習するために、機械学習モデルを訓練するためのウェブ・ページの訓練セットがもたらされる。機械学習モデルが訓練された後、訓練された機械学習モデルが、新たなウェブ・ページまたはウェブ・ページの新たなセットのそれぞれがエクスプロイト・キットであるか否かを識別できるように、機械学習モデルをテストするために新たなウェブ・ページまたはウェブ・ページの新たなセット(テスト・セット)がさらにもたらされる。
【0041】
最初に、訓練セットおよびテスト・セットに、エクスプロイト・キットおよび「正常な」ウェブ・ページが埋め込まれる。訓練セットに対して、「正常な」ウェブ・ページを集め、エクスプロイト・キットを収集するためにウェブ・クローラが利用され、テスト・セットに対して、「正常な」ウェブ・ページを集め、エクスプロイト・キットを収集するために別のウェブ・クローラが利用される。エクスプロイト・キットは、Angler、NSS Labs testingからのエクスプロイト・キットなどを含むことができる。
【0042】
実施形態において、「正常な」ウェブ・ページをエクスプロイト・キットと区別するために分類器が用いられる。分類器は以下の特徴を用いる:一意のNグラム、Nグラム総数、一意のNグラム/Nグラム総数(すなわち、一意のNグラムの数とNグラムの総数の比)、ファイル・サイズ、およびファイル・サイズ/Nグラム総数(すなわち、ファイル・サイズとNグラムの総数の比)。分類器の特徴(属性とも呼ばれる)は、一意のバイグラムの数およびバイグラムの総数のみに依存し、2つの数を追跡することは簡単である。
【0043】
実施形態において、分類器はアンサンブル分類器とすることができる。他の実施形態において、アンサンブル分類器は、基本分類器としてナイーブ・ベイズ分類器を含む。ナイーブ・ベイズ分類器は極めて高速で、実装するのが非常に簡単であり、これは前もって見ていないウェブ・ページを、高速のネットワーク速度でテストするのに役立つ。さらにナイーブ・ベイズ分類器は「更新可能」アルゴリズムであり、これは単一の新たなサンプル(新たなウェブ・ページ)、または複数の新たなサンプル(新たな複数のウェブ・ページ)から学習することができる。したがって、エクスプロイト・キットの変形は、それらが進化するのに従って捕捉され得る。
【0044】
ナイーブ・ベイズは確率的分類器である。更新可能なバージョンは事前確率分布を用いて始まり、各特徴および属性(例えば、一意のNグラム、Nグラム総数、一意のNグラム/Nグラム総数、ファイル・サイズ、およびファイル・サイズ/Nグラム総数)は、ガウス(釣鐘曲線)分布である予め規定された事前の分布におけるクラスにマッピングされる。分類器モデルが訓練されるのに従って、特徴の確率は曲線上で増加される。訓練の終わりにおいて、各特徴の確率に対して新たな分布が生成される。新たな分布は、任意の数値が供給され得るように滑らかである。
【0045】
続いて、ベイズ理論が各属性に対して独立に適用される。ベイズ理論は以下のように記述される:
P(specific_class|attribute_value)は、予測子attribute_valueを所与とする、クラスspecific_classの事後確率である;
P(specific_class)は、クラスspecific_classの事前確率である;
P(attribute_value|specific_class)は、specific_classを所与とする、attribute_valueの確率である;
P(attribute_value)は、attribute_valueの事前確率である。
【0046】
これらの記法を前提として、ベイズ理論は、P(specific_class|attribute_value)=P(attribute_value|specific_class)×P(specific_class)/P(attribute_value)であることを述べている。特定のクラスに対する事後確率が各attribute_valueに対して計算された後、どのクラスに属性のセット全体が属するかについての決定がなされる。
【0047】
他の実施形態において、ナイーブ・ベイズ分類器の性能を高め、フォールス・ポジティブ率を低減させるために、メタ分類器として、アンサンブル分類器にまた「ランダム規則」が含められる。ランダム規則分類器も更新可能なアルゴリズムであり、これは大規模オンライン分析(MOA)に含まれるアルゴリズムである。ランダム規則分類器も、ナイーブ・ベイズ分類器のようにエクスプロイト・キットの進化を捕捉することができる。ナイーブ・ベイズ分類器と同様に、ランダム規則分類器も属性のより小さなセットに基づき、したがってランダム規則分類器を通した評価は迅速である。ランダム規則分類器は、フォールス・ポジティブ率を劇的に削減することができる。実施形態において、ランダム規則分類器は、N個の属性のセットを抽出し、それらをN-2個の属性分類器のN!/(N-2)!/2!個のサブセットに分割する。例において、N=5(5個の属性がある)、5!/(5-2)!/2!=10である。したがって、もとの5個の属性から、10個の3属性分類器が生成される。
【0048】
実施形態において、ナイーブ・ベイズ分類器およびランダム規則分類器によって生成されたモデルを含む、アンサンブル分類器モデルは、エクスプロイト・キットにおけるドリフトを、それらが進化し続けるのに従って検出するように訓練される。アンサンブル分類器モデルは、オフラインまたはオンラインで訓練され得る。オフライン・モードにおいて、アンサンブル分類器モデルはデータ・セット全体を用いて訓練される必要がある。新たな機械学習モデルを構築する必要がある度に、それはデータ・セット全体を用いてバッチ訓練されるべきである。オンライン・モードにおいて、アンサンブル分類器モデルは、データ・セット全体の代わりに、データ・セットの増分部分(新たに発見されたエクスプロイト・キットであり、「新たなサンプル」と呼ばれる)を用いて学習することができる。アンサンブル分類器モデルは、自動モードで新たなサンプルに対応するように更新されるようになる。
【0049】
実施形態において、基本分類器およびメタ分類器の評価結果からのフォールス・ポジティブをさらに最小化するために、追加のフィルタがもたらされる。具体的には、フォールス・ポジティブ率を低減させるために、ウェブ・ページ内のリンクの数であるリンク・カウント、およびウェブ・ページ内の画像の数である画像カウントが利用され得る。一般に、真のエクスプロイト・キットはリンクまたは画像をもたず、したがって数「0」がフィルタとして用いられ得る。具体的には、リンクまたは画像をもたないウェブ・ページは真のポジティブ(検出されたように真のエクスプロイト・キット)になり得て、一方、1つまたは複数のリンクまたは画像を有するウェブ・ページはフォールス・ポジティブ(エクスプロイト・キットと間違えられた)になり得る。
【0050】
図1は、例示的エクスプロイト・キット検出デバイス104がその中で実施される、例示のデータ処理システム100のブロック図を示す。図1に示されるように、データ処理システム100は、本発明の例示的実施形態のためのプロセスを実施するコンピュータ使用可能コードまたは命令がその中に配置される、サーバまたはクライアントなどの、コンピュータの例である。一実施形態において、データ処理システム100は、侵入検出システムまたは侵入防止システムを表す。他の実施形態において、データ処理システム100は、オペレーティング・システム102を実施するコンピューティング・デバイスを表す。いくつかの実施形態において、オペレーティング・システム102は、Windows(R)、Unix(R)システム、またはAIX(R)、A/UX、HP-UX、IRIX、Linux、Minix、Ultrix、Xenix、Xinu、XNUなどのUnix(R)類似のオペレーティング・システムとすることができる。
【0051】
示される例において、エクスプロイト・キット検出デバイス104およびウェブ・クローラ106は、オペレーティング・システム102上で動作する。ウェブ・クローラ106は検索エンジンに統合され、インターネット108と通信する。ウェブ・クローラ106は、インターネット108にわたってウェブ・ページ124を取得し、「正常な」ウェブ・ページおよびエクスプロイト・キットを含んだ取得されたウェブ・ページ124を、エクスプロイト・キット検出デバイス104にもたらすことができる。エクスプロイト・キット検出デバイス104は、取得されたウェブ・ページ124のそれぞれがエクスプロイト・キットであるか否かを検出することができる。エクスプロイト・キット検出デバイス104は、ブルーム・フィルタ110、アンサンブル分類器112、およびフィルタ114を含む。アンサンブル分類器112は、ナイーブ・ベイズ分類器116およびランダム規則分類器118をさらに含む。フィルタ114は、リンク・カウント・フィルタ120および画像カウント・フィルタ122をさらに含む。ブルーム・フィルタ110は、取得されたウェブ・ページ124のそれぞれが、Alexa社によってリストに記載された上位1万個のウェブ・ページの1つであるかどうかを識別する。取得されたウェブ・ページ124のそれぞれに対して、ウェブ・ページが上位1万個のウェブ・ページの1つである場合は、ウェブ・ページは「正常な」ウェブ・ページであり、そうでなければそれはエクスプロイト・キットであり得る。次いで、上位1万個のウェブ・ページの1つではない取得されたウェブ・ページ124(「第1の複数のウェブ・ページ」と呼ばれる)は、次いでアンサンブル分類器112に送られる。アンサンブル分類器112モデルは、「正常な」ウェブ・ページおよびエクスプロイト・キットを含んだ膨大な量のウェブ・ページによってすでに訓練されている。訓練されたアンサンブル分類器112モデルは、第1の複数のウェブ・ページのそれぞれがエクスプロイト・キットであるか否かを検出する。次いで、エクスプロイト・キットとして検出されたウェブ・ページ(「第2の複数のウェブ・ページ」と呼ばれる)は、次いでフォールス・ポジティブを低減させるためにフィルタ114に送られる。具体的には、真のエクスプロイト・キットは一般にリンクまたは画像をもたないので、フィルタ114は、1つまたは複数のリンク(リンク・カウント・フィルタ120によって行われる)または/および画像(画像カウント・フィルタ122によって行われる)を有するウェブ・ページを、第2の複数のウェブ・ページから除去する。残りのウェブ・ページ(「第3の複数のウェブ・ページ」と呼ばれる)は、エクスプロイト・キットとして決定されたウェブ・ページである。
【0052】
図2~5は、アンサンブル分類器112モデルを訓練する4つの例示的モードを示す。図2は、本明細書で述べられるいくつかの実施形態による、分類器モデルを訓練する例示のオフライン・モードのブロック図を示す。図2に示されるように、新たに発見されたエクスプロイト・キット204を有する新たな訓練セットが、分類器モデル208(例えば、図1に示されるようなアンサンブル分類器112モデル)を訓練するために用いられる。このオフライン・モードにおいて、新たに発見されたエクスプロイト・キット204は、新たに発見されたエクスプロイト・キット204のバッチを形成するために所定の数に達しなければならない。具体的には、新たに発見されたエクスプロイト・キット204から特徴206が抽出され、新たに発見されたエクスプロイト・キット204(すなわち、新たなサンプル)の特徴は新たな訓練セットを形成する。新たな訓練セット全体が分類器モデル208を訓練するために用いられ、それに従って新たな分類器モデル210が生成される。より新しいエクスプロイト・キットを検出することができる新たに訓練された分類器モデル210は、テスト・ウェブ・ページ202内のより新しいエクスプロイト・キットを検出するように、侵入防止システム(IPS)のプロトコル分析モジュール(PAM)200に組み込まれる。具体的には、テスト・ウェブ・ページ202は、IPSのプロトコル分析モジュール(PAM)200に送られ、PAM200内の新たに訓練された分類器モデル210は、テスト・ウェブ・ページ202のそれぞれがエクスプロイト・キットであるか否かを検出する。新たに発見されたエクスプロイト・キット204は、新たに訓練された分類器モデル210を生成するように分類器モデル208を訓練するために用いられ得るので、エクスプロイト・キットの進化が継続的に捕捉され得る。実施形態において、新たに発見されたエクスプロイト・キット204は、データ管理者(エクスプロイト・キットの進化/ドリフトを監視する人)によってもたらされる。
【0053】
図3は、本明細書で述べられるいくつかの実施形態による、分類器モデルを訓練する他の例示のオフライン・モードのブロック図を示す。図3に示されるように、新たに発見されたエクスプロイト・キット204は既存の訓練セットに追加され、これは、分類器モデル208(例えば、図1に示されるようなアンサンブル分類器112モデル)を訓練するために用いられる。このオフライン・モードにおいて、新たに発見されたエクスプロイト・キット204は、新たに発見されたエクスプロイト・キット204のバッチを形成するために所定の数に達しなければならない。具体的には、新たに発見されたエクスプロイト・キット204から特徴206が抽出され、新たに発見されたエクスプロイト・キット204(すなわち、新たなサンプル)の特徴は既存の訓練セットに追加される。古いエクスプロイト・キットと新たに発見されたエクスプロイト・キット204とを含んだ、訓練セット全体が分類器モデル208を訓練するために用いられ、それに従って新たな分類器モデル210が生成される。新たにに発見されたエクスプロイト・キット204を検出できる新たに訓練された分類器モデル210は、IPSのプロトコル分析モジュール(PAM)200に組み込まれ、PAM200内の新たに訓練された分類器モデル210は、テスト・ウェブ・ページ202のそれぞれがエクスプロイト・キットであるか否かを検出する。新たに発見されたエクスプロイト・キット204は、新たに訓練された分類器モデル210を生成するように分類器モデル208を訓練するために用いられ得るので、エクスプロイト・キットの進化/ドリフトが継続的に捕捉され得る。実施形態において、新たに発見されたエクスプロイト・キット204は、データ管理者(エクスプロイト・キットの進化を監視する人)によってもたらされる。
【0054】
図4は、本明細書で述べられるいくつかの実施形態による、分類器モデルを訓練する例示のオンライン・モードのブロック図を示す。図4に示されるように、新たに発見されたエクスプロイト・キット204は、分類器モデル208(例えば、図1に示されるようなアンサンブル分類器112モデル)を訓練するために用いられる。具体的には、新たに発見されたエクスプロイト・キット204が使用可能になったとき、新たに発見されたエクスプロイト・キット204から特徴206が抽出され、新たに発見されたエクスプロイト・キット204の特徴は、既存の分類器モデル208を訓練するために直ちに用いられる。新たに発見されたエクスプロイト・キット204を検出できる訓練された分類器モデル208は、IPSのプロトコル分析モジュール(PAM)200に組み込まれ、PAM200内の訓練された分類器モデル208は、テスト・ウェブ・ページ202のそれぞれがエクスプロイト・キットであるか否かを検出する。この実施形態において、新たに発見されたエクスプロイト・キット204は、それらが使用可能であるとき、既存の分類器モデル208を訓練するために直ちに用いられ得る。新たな訓練セットを形成するために、所定の数の新たに発見されたエクスプロイト・キット204が使用可能になるまで待機する必要はない。言い換えれば、新たに発見されたエクスプロイト・キット204をバッチで収集する必要はない。1つまたは複数の新たに発見されたエクスプロイト・キット204が使用可能である限り、それらは直ちに分類器モデル208を訓練するために用いられ得る。分類器モデル208は、エクスプロイト・キットの進化/ドリフトを自動的に学習しながら、より古いエクスプロイト・キット・サンプルを削除することができる。この実施形態において、分類器モデル208は、オフライン・モードでのように、再びデータ・セット全体にわたって訓練される必要はない。さらに、より古い分類器モデルは、オフライン・モードでのように、PAM200内の新たに訓練された分類器モデルで置き換えられる必要はない。代わりに、新たな分類器モデルは生成されず、既存の分類器モデル208は、新たに発見されたエクスプロイト・キット204を用いて更新され続ける。新たに発見されたエクスプロイト・キット204は、既存の分類器モデル208を訓練するために直ちに用いられ得るので、エクスプロイト・キットの進化は継続的に捕捉され得る。実施形態において、新たに発見されたエクスプロイト・キット204は、データ管理者(エクスプロイト・キットの進化を監視する人)によってもたらされる。
【0055】
図5は、本明細書で述べられるいくつかの実施形態による、分類器モデルを訓練する他の例示のオンライン・モードのブロック図を示す。図5に示されるように、図4の例示のオンライン・モードとは異なり、PAM200に組み込まれた分類器モデル208がウェブ・ページをエクスプロイト・キットとして識別した場合、これらの識別されたエクスプロイト・キットは次いで、新たな訓練データとして既存の分類器モデル208に供給される。図4のオンライン・モードと同様に、分類器モデル208の特質は、再びデータ・セット全体を用いて訓練されずに、エクスプロイト・キットのドリフト/進化を学習することを助けるようになる。さらに、エクスプロイト・キットのドリフト/進化は、PAM200内の前の分類器モデルを、新たな分類器モデルで置き換えずに学習され得る。新たに発見されたエクスプロイト・キット204は、既存の分類器モデル208を訓練するために直ちに用いられ得るので、エクスプロイト・キットの進化は継続的に捕捉され得る。さらに、PAM200によって識別されたエクスプロイト・キットは、新たな訓練データとして自動的に既存の分類器モデル208に供給されるので、このオンライン・モードではデータ管理者は必要ない。
【0056】
図6は、本明細書の実施形態による、エクスプロイト・キットを検出する方法600を示す例示のフローチャートである。ステップ602で、テスト・ウェブ・ページは侵入防止システム(IPS)にもたらされる。ステップ604で、IPSはテスト・ウェブ・ページの特徴を抽出する。実施形態において、抽出された特徴は、一意のバイグラムの数、バイグラムの総数、一意のバイグラムの数とバイグラムの総数の比、ファイル・サイズ、およびファイル・サイズとバイグラムの総数の比を含む。ステップ606で、抽出された特徴は、IPSのPAMに組み込まれた訓練されたアンサンブル分類器モデルに送られる。ステップ608で、訓練されたアンサンブル分類器モデルは、テスト・ウェブ・ページがエクスプロイト・キットであるか否かを識別する。
【0057】
図7は、本明細書の実施形態による、エクスプロイト・キットを検出する方法700を示す他の例示のフローチャートである。ステップ602~606は、図6に示される例示の方法600のものと同じである。ステップ702で、訓練されたアンサンブル分類器モデルは、テスト・ウェブ・ページがエクスプロイト・キットであるか否かを識別する。テスト・ウェブ・ページがエクスプロイト・キットではない場合、ステップ704で、テスト・ウェブ・ページは正常なウェブ・ページとして識別される。テスト・ウェブ・ページがエクスプロイト・キットとして識別された場合、決定が正しくおよびフォールス・ポジティブ率を低減させるかどうかを検証するための、さらなる手法が行われる。ステップ706で、テスト・ウェブ・ページ内のリンクの数および画像の数など、追加の特徴が抽出される。ステップ708で、リンクの数および画像の数が1以上である、すなわち、テスト・ウェブ・ページ内に何らかのリンクおよび画像がある場合、ステップ710で、テスト・ウェブ・ページは最終的に正常なウェブ・ページとして識別される。テスト・ウェブ・ページ内にリンクおよび画像がない場合、ステップ712で、テスト・ウェブ・ページは最終的にエクスプロイト・キットとして識別される。テスト・ウェブ・ページが最終的に正常なウェブ・ページとして識別された場合は、侵入検出システムまたは侵入防止システムは、ネットワーク・ユーザがテスト・ウェブ・ページにアクセスすることを許可するようになる。これに対して、テスト・ウェブ・ページが最終的にエクスプロイト・キットとして識別された場合、侵入検出システムまたは侵入防止システムはこのテスト・ウェブ・ページを阻止するようになり、ネットワーク・ユーザはテスト・ウェブ・ページにアクセスすることはできない。
【0058】
図8は、本明細書の実施形態による、エクスプロイト・キットを検出する方法800を示す他の例示のフローチャートである。図7に示される例示の方法700と比べると、例示の方法800は、フォールス・ポジティブ率を低減させるためのさらなる手法を含む。ステップ802で、テスト・ウェブ・ページが、Alexa社によってリストに記載された10,000個のウェブ・ページの1つである場合、ステップ804で、テスト・ウェブ・ページは正常なウェブ・ページとして識別される。テスト・ウェブ・ページが10,000個のウェブ・ページの1つではない場合、テスト・ウェブ・ページがエクスプロイト・キットであるか否かをさらに識別するために、ステップ604およびそれに続くステップが行われる。さらに、リンクの数および画像の数を抽出する代わりに、ステップ806で、リンクの数のみが抽出される。テスト・ウェブ・ページ内に何らかのリンクがある場合、ステップ710で、テスト・ウェブ・ページは最終的に正常なウェブ・ページとして識別される。テスト・ウェブ・ページ内にリンクがない場合、次いでステップ712で、テスト・ウェブ・ページは最終的にエクスプロイト・キットとして識別される。
【0059】
図9は、本明細書の実施形態による、エクスプロイト・キットを検出する方法900を示す他の例示のフローチャートである。図8に示される例示の方法800と比べると、例示の方法900は、フォールス・ポジティブ率を低減させるためのさらなる手法を含む。ステップ902で、テスト・ウェブ・ページのサイズが1024バイトより大きい場合、次いで、テスト・ウェブ・ページがエクスプロイト・キットであるか否かをさらに検出するように、ステップ802およびそれに続くステップが行われる。テスト・ウェブ・ページのサイズが1024バイト未満である場合、次いでステップ904で、このテスト・ウェブ・ページは検討対象から除外される。このようにして、侵入検出システムまたは侵入防止システムは、解析されることになるウェブ・ページが、さらなる解析の意味がない、1024バイト未満である場合は迅速にウェブ・ページを省き得る。さらに、リンクの数および画像の数を抽出する代わりに、ステップ906で、画像の数のみが抽出される。テスト・ウェブ・ページ内に何らかの画像がある場合、次いでステップ710で、テスト・ウェブ・ページは最終的に正常なウェブ・ページとして識別される。テスト・ウェブ・ページ内に画像がない場合、次いでステップ712で、テスト・ウェブ・ページは最終的にエクスプロイト・キットとして識別される。
【0060】
図10は、例示的実施形態の態様がその中で実施され得る、例示のデータ処理システム1000のブロック図である。データ処理システム1000は、本発明の例示的実施形態のためのプロセスを実施するコンピュータ使用可能コードまたは命令がその中に配置される、サーバまたはクライアントなどの、コンピュータの例である。一実施形態において、図10はサーバ・コンピューティング・デバイスを表し得る。
【0061】
示される例において、データ処理システム1000は、ノース・ブリッジおよびメモリ・コントローラ・ハブ(NB/MCH)1001と、サウス・ブリッジおよび入力/出力(I/O)コントローラ・ハブ(SB/ICH)1002とを含んだハブ・アーキテクチャを使用し得る。処理ユニット1003、メイン・メモリ1004、およびグラフィックス・プロセッサ1005は、NB/MCH1001に接続され得る。グラフィックス・プロセッサ1005は、アクセラレイテッド・グラフィックス・ポート(AGP)(図10には示されない)を通してNB/MCH1001に接続され得る。
【0062】
示される例において、ネットワーク・アダプタ1006は、SB/ICH1002に接続する。オーディオ・アダプタ1007、キーボードおよびマウス・アダプタ1008、モデム1009、読み出し専用メモリ(ROM)1010、ハード・ディスク・ドライブ(HDD)1011、光ドライブ(CDまたはDVD)1012、ユニバーサル・シリアル・バス(USB)ポートおよび他の通信ポート1013、ならびにPCI/PCIeデバイス1014は、バス・システム1016を通してSB/ICH1002に接続し得る。PCI/PCIeデバイス1014は、イーサネット(R)・アダプタ、アドイン・カード、およびノートブック・コンピュータ用のPCカードを含み得る。ROM1010は、例えば、フラッシュ基本入力/出力システム(BIOS)とすることができる。HDD1011および光ドライブ1012は、統合ドライブ・エレクトロニクス(IDE)またはシリアル・アドバンスト・テクノロジー・アタッチメント(SATA)インターフェースを用い得る。スーパーI/O(SIO)デバイス1015は、SB/ICH1002に接続され得る。
【0063】
オペレーティング・システムは処理ユニット1003上で動作し得る。オペレーティング・システムは、データ処理システム1000内の様々な構成要素の制御を協調させ、およびそれらをもたらし得る。クライアントとして、オペレーティング・システムは市販のオペレーティング・システムとすることができる。Java(R)(商標)プログラミング・システムなどのオブジェクト指向プログラミング・システムは、オペレーティング・システムと共に動作することができ、データ処理システム1000上で実行するオブジェクト指向プログラムまたはアプリケーションからオペレーティング・システムへの呼び出しをもたらし得る。サーバとして、データ処理システム1000は、アドバンスト・インタラクティブ・エグゼクティブ・オペレーティング・システムまたはLinuxオペレーティング・システムを動作させるIBM(R)eServer(商標)システムp(R)とすることができる。データ処理システム1000は、処理ユニット1003内に複数のプロセッサを含み得る対称マルチプロセッサ(SMP)システムとすることができる。あるいは、単一プロセッサ・システムが使用され得る。
【0064】
オペレーティング・システム、オブジェクト指向プログラミング・システム、およびアプリケーションまたはプログラムに対する命令は、HDD1011など、記憶デバイス上に配置され、処理ユニット1003による実行のために、メイン・メモリ1004にロードされる。生成システムの実施形態のためのプロセスは、例えばメイン・メモリ1004、ROM1010などのメモリ内、または1つもしくは複数の周辺デバイス内に配置され得る、コンピュータ使用可能プログラム・コードを用いて、処理ユニット1003によって行われ得る。
【0065】
バス・システム1016は、1つまたは複数のバスから構成され得る。バス・システム1016は、ファブリックまたはアーキテクチャにアタッチされた異なる構成要素またはデバイスの間のデータの転送をもたらし得る、任意のタイプの通信ファブリックまたはアーキテクチャを用いて実施され得る。モデム1009またはネットワーク・アダプタ1006などの通信ユニットは、データを送信および受信するために用いられ得る1つまたは複数のデバイスを含み得る。
【0066】
当業者は、図10に示されるハードウェアは、実装形態に応じて変わり得ることを理解するであろう。フラッシュ・メモリ、等価な不揮発性メモリ、または他の光ディスク・ドライブなど、他の内部ハードウェアまたは周辺デバイスが、示されるハードウェアに加えてまたはその代わりに用いられ得る。さらに、データ処理システム1000は、非限定的に、クライアント・コンピューティング・デバイス、サーバ・コンピューティング・デバイス、タブレット・コンピュータ、ラップトップ・コンピュータ、電話機または他の通信デバイス、携帯情報端末などを含む、いくつかの異なるデータ処理システムの形を取り得る。本質的に、データ処理システム1000は、アーキテクチャの制限なしに、任意の知られているまたは後に開発されるデータ処理システムとすることができる。
【0067】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のための命令を維持および記憶することができる、有形のデバイスとすることができる。コンピュータ可読記憶媒体は、例えば、非限定的に、電子的記憶デバイス、磁気記憶デバイス、光記憶デバイス、電磁的記憶デバイス、半導体記憶デバイス、または前述の任意の適切な組み合わせとすることができる。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラマブル読み出し専用メモリ(EPROMまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM)、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリ・スティック、フロッピ・ディスク、パンチカードまたはその上に記録された命令を有する溝内の隆起構造などの機械的エンコード型デバイス、および前述の任意の適切な組み合わせを含む。本明細書で用いられる場合、コンピュータ可読記憶媒体とは、電波もしくは他の自由に伝搬する電磁波、導波路もしくは他の伝送媒体を通して伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、または線材を通して伝送される電気信号など、それ自体が一過性の信号であると解釈されるべきではない。
【0068】
本明細書で述べられるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスに、またはネットワーク、例えば、インターネット、ローカル・エリア・ネットワーク(LAN)、広域ネットワーク(WAN)、または無線ネットワークあるいはその組み合わせを通じて外部コンピュータもしくは外部記憶デバイスに、ダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはその組み合わせを備えることができる。各コンピューティング/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体における記憶のために転送する。
【0069】
本発明の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存型命令、マイクロコード、ファームウェア命令、状態設定データ、またはJava(R)、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語もしくは同様なプログラミング言語などの従来型の手続き型プログラミング言語を含む、1つもしくは複数のプログラミング言語の任意の組み合わせで書かれたソース・コードもしくはオブジェクト・コードとすることができる。コンピュータ可読プログラム命令は、専らユーザのコンピュータ上で、部分的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上および部分的にリモート・コンピュータ上で、または専らリモート・コンピュータもしくはサーバ上で実行することができる。後者のシナリオにおいて、リモート・コンピュータは、LANもしくはWANを含む任意のタイプのネットワークを通して、ユーザのコンピュータに接続されることができ、または外部コンピュータへの接続がなされ得る(例えば、インターネット・サービス・プロバイダを用いてインターネットを通して)。いくつかの実施形態において、例えば、プログラマブル・ロジック回路、フィールド・プログラマブル・ゲート・アレイ(FPGA)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、本発明の態様を行うために、電子回路を個人向けにするようにコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0070】
本発明の態様は本明細書において、本発明の実施形態による方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して述べられる。フローチャート図またはブロック図あるいはその両方の各ブロック、およびフローチャート図またはブロック図あるいはその両方におけるブロックの組み合わせは、コンピュータ可読プログラム命令によって実施され得ることが理解されるであろう。
【0071】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラマブル・データ処理装置によって実行する命令が、フローチャートまたはブロック図ブロックあるいはその両方において指定された機能/働きを実施するための手段を作り出すように、マシンを生み出すために、汎用コンピュータ、専用コンピュータ、または他のプログラマブル・データ処理装置のプロセッサにもたらされ得る。これらのコンピュータ可読プログラム命令はまた、命令が記憶されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図ブロックあるいはその両方において規定された機能/働きの態様を実施する命令を含んだ製造品を備えるように、特定のやり方で機能するようにコンピュータ、プログラマブル・データ処理装置、または他のデバイスあるいはその組み合わせに指示することができるコンピュータ可読記憶媒体に記憶され得る。
【0072】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブル装置、または他のデバイス上で実行する命令が、フローチャートまたはブロック図ブロックあるいはその両方において指定された機能/働きを実施するべく、コンピュータによって実施されるプロセスを生み出すように、一連の動作ステップがコンピュータ、他のプログラマブル装置、または他のデバイス上で行われるようにさせるために、コンピュータ、他のプログラマブル・データ処理装置、または他のデバイス上にロードされ得る。
【0073】
図におけるフローチャートおよびブロック図は、本発明の様々な実施形態によるシステム、方法、およびコンピュータ・プログラム製品の可能な実装形態のアーキテクチャ、機能性、および動作を示す。この関連において、フローチャートまたはブロック図内の各ブロックは、指定された論理機能を実施するための1つまたは複数の実行可能命令を備えるモジュール、セグメント、または命令の一部分を表すことができる。いくつかの代替実装形態において、ブロック内に記された機能は、図に記されたものとは異なる順序で生じ得る。例えば、連続して示される2つのブロックは、実際は実質的に並行して実行されることができ、またはブロックは時には関わる機能性に応じて、逆の順序で実行され得る。また、ブロック図またはフローチャート図あるいはその両方の各ブロック、およびブロック図またはフローチャート図あるいはその両方におけるブロックの組み合わせは、指定された機能または働きを行う、または専用ハードウェアおよびコンピュータ命令の組み合わせを遂行する、専用ハードウェア・ベースのシステムによって実施され得ることが留意されるであろう。
【0074】
説明および特許請求項は、例示的実施形態の特定の特徴および要素に関して、用語「a」、「の少なくとも1つ(at least one of)」、および「の1つまたは複数(one or more of)」を用い得る。これらの用語および語句は、特定の例示的実施形態に存在する特定の特徴または要素の少なくとも1つがあることを述べることが意図されるが、1つより多くも存在し得ることが理解されるべきである。すなわち、これらの用語/語句は、説明または特許請求項を、単一の特徴/要素が存在することに制限すること、または複数のこのような特徴/要素が存在することを必要とすることを意図するものではない。それとは反対に、これらの用語/語句は、単に、少なくとも単一の特徴/要素を、複数のこのような特徴/要素が説明および特許請求項の範囲内である可能性を有して、必要とするものである。
【0075】
加えて、以下の説明は、例示的実施形態の例示の実装形態をさらに示すため、および例示的実施形態の機構の理解を助けるために、例示的実施形態の様々な要素に対して複数の様々な例を用いることが理解されるべきである。これらの例は、例示的実施形態の機構を実施するための様々な可能性について、限定するものではなく、および網羅的ではないことが意図される。この説明に鑑みて当業者には、本発明の思想および範囲から逸脱せずに、本明細書で示される例に加えて、またはその置き換えとして利用され得るこれらの様々な要素に対する多くの他の代替実装形態があることが明らかとなるであろう。
【0076】
図のシステムおよびプロセスは排他的でない。同じ目的を達成するために、本明細書で述べられる実施形態の原理に従って、他のシステム、プロセス、およびメニューが導き出され得る。本明細書で示され、および述べられる実施形態および変形形態は、説明のためのみであることが理解されるべきである。当業者によって、実施形態の範囲から逸脱せずに、現在の設計に対する修正が実施され得る。本明細書で述べられるように、様々なシステム、サブシステム、エージェント、マネージャ、およびプロセスは、ハードウェア構成要素、ソフトウェア構成要素、および/またはその組み合わせを用いて実施され得る。本明細書における請求要素は、要素が「する手段(means for)」という語句を用いて明示的に記載されない限り、米国特許法第112条(f)のもとで解釈されないものとする。
【0077】
本発明は、例示的実施形態に関連して述べられたが、それらに限定されない。当業者は、本発明の好ましい実施形態に、数多くの変更および修正がなされることができ、このような変更および修正は本発明の真の思想から逸脱せずになされ得ることを理解するであろう。したがって、添付の「特許請求の範囲」は、本発明の真の思想および範囲に含まれるものとして、すべてのこのような等価な変形形態を包含するように解釈されることが意図される。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10