(57)【要約】      （修正有）【課題】クライアントコンピュータがリクエストしたウェブページを受信する前に侵入を検出して対処する有効な方法及びシステムを提供する。【解決手段】方法は、クライアントコンピュータにより要求されたウェブページからのオブジェクトプロパティーをリアルタイムで検査し、該検査は、クライアントコンピュータがウェブページを受信する前に行われる段階と、前記オブジェクトプロパティーの検査結果に基づいて、クライアントコンピュータを害するウェブページに関する全体的なリスクレベルを評価する段階と、前記全体的なリスクレベルに応じて前記ウェブページに対して動作を行う段階とを含む。【選択図】図３
2009064443.tif 000002
【特許請求の範囲】
【請求項１】
ウェブページ攻撃を防止する方法であって：
クライアントコンピュータにより要求されたウェブページからのオブジェクトプロパティーをリアルタイムで検査し、該検査は、前記クライアントコンピュータが前記ウェブページを受信する前に行われる段階と、
前記オブジェクトプロパティーの検査結果に基づいて、前記クライアントコンピュータを害する前記ウェブページに関する全体的なリスクレベルを評価する段階と、
前記全体的なリスクレベルに応じて前記ウェブページに対して動作を行う段階とを含む、ウェブページ攻撃の防止方法。
【請求項２】
前記方法は更に、前記ウェブページの各オブジェクトプロパティーに対して数字による点数をつける段階を含み、当該数字による点数は、前記クライアントコンピュータを害する前記オブジェクトプロパティーに関する個別のリスクレベルを反映する、請求項１に記載のウェブページ攻撃の防止方法。
【請求項３】
前記検査段階は更に：
前記ウェブページのソースコードから未検査オブジェクトを特定する段階と、
前記未検査オブジェクトからオブジェクトプロパティーを抽出する段階とを含む、請求項２に記載のウェブページ攻撃の防止方法。
【請求項４】
前記評価段階は更に、前記未検査オブジェクトのオブジェクトプロパティーを既知シグネチャデータベースと比較する段階を含む、請求項３に記載のウェブページ攻撃の防止方法。
【請求項５】
前記評価段階は更に：
前記ウェブページに関する異常の有無を確認する段階と、
前記異常に関する全体的なリスクレベルが閾値を超えたかどうかを判断する段階とを含む、請求項３に記載のウェブページ攻撃の防止方法。
【請求項６】
前記判断段階は更に：
前記評価段階を実行するたびに数字による点数をトラッキングする段階と、
前記数字による点数を前記閾値と比較する段階と、
前記数字による点数が前記閾値を超えた場合に、前記異常に関するオブジェクトプロパティーで前記既知シグネチャデータベースを更新する段階とを含む、請求項５に記載のウェブページ攻撃の防止方法。
【請求項７】
前記判断段階は更に：
前記評価段階を実行するたびに数字による点数をトラッキングする段階と、
前記数字による点数を前記閾値と比較する段階と、
前記数字による点数が前記閾値を超えた場合に、前記ウェブページの位置で前記既知シグネチャデータベースを更新する段階とを含む、請求項５に記載のウェブページ攻撃の防止方法。
【請求項８】
前記動作は、前記全体的なリスクレベルの評価結果を報告することを含む、請求項１に記載のウェブページ攻撃の防止方法。
【請求項９】
前記動作は、前記ウェブページをクリーンにするプロセスを開始することを含む、請求項１に記載のウェブページ攻撃の防止方法。
【請求項１０】
ウェブページ攻撃を防止するように構成されたネットワークデバイスであって：
メモリシステムと、
処理ユニットとを含み、
当該処理ユニットは、クライアントコンピュータにより要求されたウェブページからのオブジェクトプロパティーをリアルタイムで検査し、該検査は、前記クライアントコンピュータが前記ウェブページを受信する前に行われ、
前記オブジェクトプロパティーの検査結果に基づいて、前記クライアントコンピュータを害する前記ウェブページに関連する全体的なリスクレベルを評価し、
前記全体的なリスクレベルに応じて前記ウェブページに対して動作を行うように構成されている、ネットワークデバイス。
【請求項１１】
前記処理ユニットは更に、前記ウェブページの各オブジェクトプロパティーに対して数字による点数をつけるように構成されており、当該数字による点数は、前記クライアントコンピュータを害する前記オブジェクトプロパティーに関する個別のリスクレベルを反映する、請求項１０に記載のネットワークデバイス。
【請求項１２】
前記処理ユニットは更に：
前記ウェブページのソースコードから未検査オブジェクトを特定し、
前記未検査オブジェクトからオブジェクトプロパティーを抽出するように構成されている、請求項１１に記載のネットワークデバイス。
【請求項１３】
前記処理ユニットは更に、前記未検査オブジェクトのオブジェクトプロパティーを、前記メモリシステムに保存された既知シグネチャデータベースと比較するように構成されている、請求項１２に記載のネットワークデバイス。
【請求項１４】
前記処理ユニットは更に、前記未検査オブジェクトのオブジェクトプロパティーを、前記ネットワークデバイスの外部デバイスにより維持される既知シグネチャデータベースと比較するように構成されている、請求項１２に記載のネットワークデバイス。
【請求項１５】
前記処理ユニットは更に：
前記ウェブページに関する異常の有無を確認し、
前記異常に関する全体的なリスクレベルが閾値を超えたかどうかを判断するように構成されている、請求項１２に記載のネットワークデバイス。
【請求項１６】
前記処理ユニットは更に：
前記評価段階を実行するたびに数字による点数をトラッキングし、
前記数字による点数を前記閾値と比較し、
前記数字による点数が前記閾値を超えた場合に、前記異常に関するオブジェクトプロパティーで前記既知シグネチャデータベースを更新するように構成されている、請求項１５に記載のネットワークデバイス。
【請求項１７】
前記処理ユニットは更に：
前記評価段階を実行するたびに数字による点数をトラッキングし、
前記数字による点数を前記閾値と比較し、
前記数字による点数が前記閾値を超えた場合に、前記ウェブページの位置で前記既知シグネチャデータベースを更新するように構成されている、請求項１５に記載のネットワークデバイス。
【請求項１８】
前記処理ユニットは更に、前記全体的なリスクレベルの評価結果を報告するように構成されている、請求項１０に記載のネットワークデバイス。
【請求項１９】
前記処理ユニットは更に、前記ウェブページをクリーンにするプロセスを開始することを含む、請求項１０に記載のネットワークデバイス。
【請求項２０】
ウェブページアナライザーに対する命令シーケンスを含む機械可読な媒体であって、当該命令シーケンスをネットワークデバイスの処理ユニットで実行した場合、当該処理ユニットは：
クライアントコンピュータにより要求されたウェブページからのオブジェクトプロパティーをリアルタイムで検査し、該検査は、前記クライアントコンピュータが前記ウェブページを受信する前に行われ、
前記オブジェクトプロパティーの検査結果に基づいて、前記クライアントコンピュータを害する前記ウェブページに関する全体的なリスクレベルを評価し、
前記全体的なリスクレベルに応じて前記ウェブページに対して動作を行う、機械可読な媒体。
【請求項２１】
前記機械可読な媒体は更に、ヒューリスティックエンジンに対する命令シーケンスを含み、当該命令シーケンスを前記処理ユニットで実行した場合、前記処理ユニットは前記ウェブページの各オブジェクトプロパティーに対して数字による点数をつけ、当該数字による点数は、前記クライアントコンピュータを害する前記オブジェクトプロパティーに関する個別のリスクレベルを反映する、請求項２０に記載の機械可読な媒体。
【請求項２２】
前記機械可読な媒体は更に、シグネチャベースエンジンに対する命令シーケンスを含み、当該命令シーケンスを前記処理ユニットで実行した場合、前記処理ユニットは：
前記ウェブページのソースコードから未検査オブジェクトを特定し、
前記未検査オブジェクトからオブジェクトプロパティーを抽出する、請求項２１に記載の機械可読な媒体。
【請求項２３】
前記機械可読な媒体はシグネチャベースエンジンに対する命令シーケンスを含み、当該命令シーケンスを前記処理ユニットで実行した場合、前記処理ユニットは前記未検査オブジェクトのオブジェクトプロパティーを既知シグネチャデータベースと比較する、請求項２１に記載の機械可読な媒体。
【請求項２４】
前記機械可読な媒体はヒューリスティックエンジンに対する命令シーケンスを含み、当該命令シーケンスを前記処理ユニットで実行した場合、前記処理ユニットは：
前記ウェブページに関する異常の有無を確認し、
前記異常に関する全体的なリスクレベルが閾値を超えたかどうかを判断する、請求項２２に記載の機械可読な媒体。
【請求項２５】
前記機械可読な媒体はヒューリスティックエンジンに対する命令シーケンスを含み、当該命令シーケンスを前記処理ユニットで実行した場合、前記処理ユニットは：
前記評価段階を実行するたびに数字による点数をトラッキングし、
前記数字による点数を前記閾値と比較し、
前記数字による点数が前記閾値を超えた場合に、前記異常に関するオブジェクトプロパティーで前記既知シグネチャデータベースを更新する、請求項２４に記載の機械可読な媒体。
【請求項２６】
前記機械可読な媒体はヒューリスティックエンジンに対する命令シーケンスを含み、当該命令シーケンスを前記処理ユニットで実行した場合、前記処理ユニットは：
前記評価段階を実行するたびに数字による点数をトラッキングし、
前記数字による点数を前記閾値と比較し、
前記数字による点数が前記閾値を超えた場合に、前記ウェブページの位置で前記既知シグネチャデータベースを更新する、請求項２４に記載の機械可読な媒体。
【請求項２７】
前記動作は、前記全体的なリスクレベルの評価結果を報告することを含む、請求項２０に記載の機械可読な媒体。
【請求項２８】
前記動作は、前記ウェブページをクリーンにするプロセスを開始することを含む、請求項２０に記載の機械可読な媒体。
【請求項２９】
ウェブページ攻撃を防止するための処理ユニットであって、当該処理ユニットは：
クライアントコンピュータにより要求されたウェブページからのオブジェクトプロパティーをリアルタイムで検査し、該検査は、前記クライアントコンピュータが前記ウェブページを受信する前に行われ、
前記オブジェクトプロパティーの検査結果に基づいて、前記クライアントコンピュータを害する前記ウェブページに関する全体的なリスクレベルを評価し、
前記全体的なリスクレベルに応じて前記ウェブページに対して動作を行うように構成されている、処理ユニット。
【請求項３０】
前記処理ユニットは更に、前記ウェブページの各オブジェクトプロパティーに対して数字による点数をつけるように構成されており、当該数字による点数は、クライアントコンピュータを害するオブジェクトプロパティーに関する個別のリスクレベルを反映する、請求項２９に記載の処理ユニット。
【請求項３１】
前記処理ユニットは更に：
前記ウェブページのソースコードから未検査オブジェクトを特定し、
前記未検査オブジェクトからオブジェクトプロパティーを抽出するように構成されている、請求項３０に記載の処理ユニット。
【請求項３２】
前記処理ユニットは更に、前記未検査オブジェクトのオブジェクトプロパティーを既知シグネチャデータベースと比較するように構成されている、請求項３１に記載の処理ユニット。
【請求項３３】
前記処理ユニットは更に：
前記ウェブページに関する異常の有無を確認し、
前記異常に関する全体的なリスクレベルが閾値を超えたかどうかを判断するように構成されている、請求項３１に記載の処理ユニット。
【請求項３４】
前記処理ユニットは更に：
前記評価段階を実行するたびに数字による点数をトラッキングし、
前記数字による点数を前記閾値と比較し、
前記数字による点数が前記閾値を超えた場合に、前記異常に関するオブジェクトプロパティーで前記既知シグネチャデータベースを更新するように構成されている、請求項３３に記載の処理ユニット。
【請求項３５】
前記処理ユニットは更に：
前記評価段階を実行するたびに数字による点数をトラッキングし、
前記数字による点数を前記閾値と比較し、
前記数字による点数が前記閾値を超えた場合に、前記ウェブページの位置で前記既知シグネチャデータベースを更新するように構成されている、請求項３３に記載の処理ユニット。
【請求項３６】
前記動作は、前記全体的なリスクレベルの評価結果を報告することを含む、請求項２９に記載の処理ユニット。
【請求項３７】
前記動作は、前記ウェブページをクリーンにするプロセスを開始することを含む、請求項２９に記載の処理ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピュータセキュリティー技術に関し、特にウェブページ攻撃を防止する方法及び装置に関する。
【背景技術】
【０００２】
マルウェアはユーザーの同意なしにクライアントコンピュータに侵入して破壊するために設計されたソフトウェアまたはプログラムであり、コンピュータウイルス、ワーム、トロイの木馬、スパイウェア、不正なアドウェア、及びその他悪意的で望ましくないソフトウェアを含む。マルウェアは一般に、クライアントコンピュータのリソースを占有してクライアントコンピュータの動作を妨害し、時々クライアントコンピュータを使用不能に陥らせる。しかし、ウイルス対策ソフトウェアまたは各種のＯＳ（オペレーティングシステム）セキュリティーパッチをクライアントコンピュータにインストールしても、クライアントコンピュータは、通常のウェブページ攻撃またはコード注入と呼ばれる他形式の攻撃にさらされる。特に一部の悪意コードは、クライアントコンピュータがネットワークを通してアクセスするウェブページに埋め込むことができる。このようなウェブページは、クラックサイト、シリアル番号サイト、ポルノサイト、悪意的な攻撃のために設計されたサイトなどの悪意ウェブサイトに限らず、人気のある商品ウェブサイト、インターネットポータル、インターネットブログ、及び人気のあるダウンロードウェブサイトなどよく訪ねるウェブサイトにも存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
図１は、クライアントコンピュータの未知のユーザーがインターネットをブラウズすることによって、クライアントコンピュータのセキュリティーが破られた状況を示す。通常、インターネットウェブサイトのウェブページは、図１に示すウェブサーバー１０６のようなウェブサーバーに保存される。クライアントコンピュータ１０２のユーザーがインターネットをブラウズしてウェブサイトにアクセスするとき、クライアントコンピュータ１０２はウェブサーバー１０６に対してウェブページ１０４リクエストを送信する。リクエストされたウェブページは悪意コードを含んで変更されたウェブページ１０８でありうる。この場合、ウェブサーバー１０６はリクエスト１０４に応じて、変更されたウェブページ１０８をクライアントコンピュータ１０２に返送する。クライアントコンピュータ１０２が変更されたウェブページ１０８を受信すると、変更されたウェブページ１０８の悪意コードはクライアントコンピュータを破壊しうる。クライアントコンピュータ１０２のユーザーは通常、このようなセキュリティー侵害を知ることができない。なぜならば、悪意コードの効果は必ずしもすぐに発覚するわけではないからである。
【０００４】
図２は、クライアントコンピュータの未知のユーザーがインターネットをブラウズすることによって、クライアントコンピュータのセキュリティーが破られた状況を示す。図１に示す前記状況と同じように、クライアントコンピュータ２０２がウェブページ２０４リクエストを送信した場合、ウェブサーバー２０６は変更されたウェブページ２０８をクライアントコンピュータ２０２に返送する。しかし、変更されたウェブページ２０８は悪意コードの代わりに、ユーザーが知らないうちにゾンビサイト２１２からウェブページまたは悪意プログラムをクライアントコンピュータ２０２にロードする埋め込みリンクも含んでいる。その後、このゾンビサイトまたは他のゾンビサイトからの悪意プログラムまたはスクリプト２１４はクライアントコンピュータ２０２を感染させて破壊する。以上のような２種類のセキュリティー侵害を受けた結果、場合によってクライアントコンピュータ２０２は回復不可能なシステム障害とクラッシュを蒙ることがある。
【０００５】
従来のデスクトップウィルス対策ソフトウェアは、クライアントコンピュータの既存のデータに対して動作するので、前述のようなウェブ感染を効果的に防止することができない。特に、デスクトップウィルス対策ソフトウェアはメモリ（例えばＲＡＭ（ランダムアクセスメモリ）とブートセクター）のコンテンツヒューリスティックス、及びクライアントコンピュータの固定式またはリムーバブルドライブ（例えばハードドライブとフロッピー（登録商標）ドライブ）に保存されたファイルを既知ウィルスシグネチャのデータベースと比較する。このようなアプローチでは、クライアントコンピュータは依然としてリクエストするウェブページが変更されたかを予め知るよしがないので、変更されたウェブページの受信を防止することができない。代わりに、デスクトップウィルス対策ソフトウェアはスキャンを開始する前にウェブページ攻撃がなされるまで待たなければならず、ウェブページ攻撃によるセキュリティー侵害を識別して対処できるかどうかが定かではない。
【０００６】
前述のように、従来のアプローチではウェブページ攻撃またはコード注入を防止することができない。したがって、クライアントコンピュータがリクエストしたウェブページを受信する前に侵入を検出して対処する有効な方法及びシステムが求められる。
【課題を解決するための手段】
【０００７】
本発明ではウェブページ攻撃を防止する方法と装置を開示している。本発明の一実施例によれば、クライアントコンピュータにより要求されたウェブページからのオブジェクトプロパティーをリアルタイムで検査し、該検査は、クライアントコンピュータがウェブページを受信する前に行われる段階と、前記オブジェクトプロパティーの検査結果に基づいて、クライアントコンピュータを害するウェブページに関する全体的なリスクレベルを評価する段階と、前記全体的なリスクレベルに応じて前記ウェブページに対して動作を行う段階とを含む方法が開示されている。
【０００８】
本発明により開示された方法と装置の１つの利点は、悪意コードを含んだウェブページがクライアントコンピュータに到達することから予防し、クライアントコンピュータがウェブページの受信後に悪意コードを特定し除去することを不要にすることである。以下に課題解決のための装置及び方法について述べる。
【０００９】
ウェブページアタックを防止する方法であって、
クライアントコンピュータがウェブページを受信する前に、前記クライアントコンピュータにより要求された前記ウェブページからのオブジェクトプロパティーをリアルタイムで検査する段階と、
前記オブジェクトプロパティーの検査結果に基づいて、前記クライアントコンピュータを害する前記ウェブページに関する全体的なリスクレベルを評価する段階と、
前記全体的なリスクレベルに応じて前記ウェブページに対して動作を行う段階とを含む、ウェブページアタックの防止方法。
【００１０】
ウェブページアタックを防止するように構成されたネットワークデバイスであって、
メモリシステムと、
処理ユニットとを含み、当該処理ユニットは、
クライアントコンピュータがウェブページを受信する前に、前記クライアントコンピュータにより要求された前記ウェブページからのオブジェクトプロパティーをリアルタイムで検査し、
前記オブジェクトプロパティーの検査結果に基づいて、前記クライアントコンピュータを害する前記ウェブページに関する全体的なリスクレベルを評価し、
前記全体的なリスクレベルに応じて前記ウェブページに対して動作を行うように構成されている、ネットワークデバイス。
【００１１】
ウェブページアナライザーに対する命令シーケンスを含む機械可読な媒体であって、当該命令シーケンスをネットワークデバイスの処理ユニットで実行した場合、当該処理ユニットは、
クライアントコンピュータがウェブページを受信する前に、前記クライアントコンピュータにより要求された前記ウェブページからのオブジェクトプロパティーをリアルタイムで検査し、
前記オブジェクトプロパティーの検査結果に基づいて、前記クライアントコンピュータを害する前記ウェブページに関する全体的なリスクレベルを評価し、
前記全体的なリスクレベルに応じて前記ウェブページに対して動作を行う、機械可読な媒体。
【００１２】
ウェブページアタックを防止するための処理ユニットであって、当該処理ユニットは、
クライアントコンピュータがウェブページを受信する前に、前記クライアントコンピュータにより要求された前記ウェブページからのオブジェクトプロパティーをリアルタイムで検査し、
前記オブジェクトプロパティーの検査結果に基づいて、前記クライアントコンピュータを害する前記ウェブページに関する全体的なリスクレベルを評価し、
前記全体的なリスクレベルに応じて前記ウェブページに対して動作を行うように構成されている、処理ユニット。
【発明を実施するための最良の形態】
【００１３】
本発明の特徴の理解を進めるために、以下のように実施例をもって本発明を詳しく説明している。実施例の一部は添付図面にて示されている。注意すべきは、添付図面は本発明の代表的な実施例のみ示しており、本発明の範囲を限定するものとして捉えるべきではない。なぜならば、本発明は均等な効果を有する他実施例を含みうるからである。
【００１４】
本開示では、ＨＴＭＬ（ハイパーテキストマークアップ言語）、ＨＴＴＰ（ハイパーテキスト転送プロトコル）、ＵＲＬ（ユニフォームリソースロケーター）、ＴＣＰ／ＩＰ（伝送制御プロトコル／インターネットプロトコル）、ＮＡＴ（ネットワークアドレス変換）など、インターネットとネットワーク関連テクノロジーに関する各種の用語が用いられている。本発明の一実施例は、ネットワークデバイスと併用するプログラムプロダクトとして実施される。このプログラムプロダクトのプログラムは、実施例（後述の方法を含む）の機能を定義し、各種の機械可読な記録媒体に保存できる。機械可読な記録媒体の具体例としては、（１）情報を永久に保存する書き込み不能な記録媒体（例えばＣＤ−ＲＯＭドライブで読み取り可能なＣＤ−ＲＯＭディスク、ＤＶＤドライブで読み取り可能なＤＶＤディスク、またはＲＯＭ（読み出し専用メモリ）チップもしくは他種のソリッドステート不揮発性半導体メモリなどのネットワークデバイスに設けられるＲＯＭデバイス）、及び（２）変更できる情報を保存する書き込み可能な記録媒体（例えばフラッシュメモリまたは他種のソリッドステートランダムアクセス半導体メモリ）があるが、これに限らない。このような機械可読な記録媒体は、本発明の機能を指示する機械可読な命令を運ぶものであれば、本発明の実施例に属する。その他の媒体は、コンピュータまたは電話ネットワーク（無線通信ネットワークを含む）など情報をネットワークデバイスに運ぶ通信媒体を含む。後者の実施例は特に、インターネット及び他のネットワークとの情報の送受信を含む。このような通信媒体は、本発明の機能を指示する機械可読な命令を運ぶものであれば、本発明の実施例に属する。
【００１５】
図３は本発明の一実施例に従った、変更されたウェブページがクライアントコンピュータに到達する前に阻止されるシステム構成を示す。図に示すように、システム３００はネットワークサーバー３０２と、ゲートウェイ３０６と、クライアントコンピュータ３１２とを含む。ネットワークサーバー３０２がクライアントコンピュータ３１２送り先にリクエストされたウェブページを送信する時に、このウェブページは既に変更されて悪意コードを含んでしまうことがありうる。しかしながら、このリクエストされたウェブページ３０４がクライアントコンピュータ３１２に到達する前に、ゲートウェイ３０６はこのウェブページの到達を阻止する保護シールドとして作用する。特に、本発明の一実施例では、ゲートウェイ３０６は、リクエストされたウェブページ３０４のリアルタイムセキュリティースキャンを行うウェブページアナライザー３０８を含む。本発明の一実施例では、セキュリティースキャンはリクエストされたウェブページ３０４のソースコードを検査する。リクエストされたウェブページ３０４から悪意コードを検出した場合、ウェブページアナライザー３０８はこの悪意コードを除去するか分離し、処理済みのウェブページ３１０をクライアントコンピュータ３１２に送信する。本発明のもう１つの実施例では、ウェブページアナライザー３０８は、クライアントコンピュータ３１２がゾンビサイトなど以前にブラックリストに載せられたウェブサイトにアクセスするのを阻止するホストフィルターとしても作用する。また本発明のもう１つの実施例では、ウェブページアナライザー３０８はクライアントコンピュータ３１２にダウンロードされると思われるコンテンツからマルウェアを検査する。ウェブページアナライザー３０８については以下のパラグラフに詳述する。
【００１６】
図４は本発明の一実施例によるウェブページアナライザー４０２の簡略化したブロック図である。ウェブページアナライザー４０２は、シグネチャベース（Signature Based）エンジン４０４と、ヒューリスティック(Heuristic)エンジン４０６と、既知シグネチャデータベース４０８とを含む。ウェブページアナライザー４０２がリクエストされたウェブページを受信したとき、シグネチャベースエンジン４０４はこのリクエストされたウェブページのソースコードを検査する。ソースコードは複数のオブジェクトを含むことが可能で、各オブジェクトはそれぞれ特定のオブジェクトプロパティーと関連する。本発明の一実施例では、シグネチャベースエンジン４０４はこれらのオブジェクトをソースコードから解析（パース）し、これらのオブジェクトのオブジェクトプロパティーを、既知シグネチャデータベース４０８に保存された既知の攻撃（attack）シグネチャと比較する。既知シグネチャデータベース４０８中に一致が発見された場合、リクエストされたウェブページは、悪意コードを含むと考えられる。他方、一致が発見されなければ、リクエストされたウェブページは更に、ヒューリスティックエンジン４０６によって処理される。ウェブページの中のオブジェクトとオブジェクトプロパティーの例については以下のパラグラフに説明する。
【００１７】
ヒューリスティックエンジン４０６の一特徴は、リクエストされたウェブページの異常を検出して解読することである。ここで異常とは広く、そのようなオブジェクトプロパティーの予期された属性から乖離したオブジェクトプロパティーを指す。本発明の一実施例では、ヒューリスティックエンジン４０６は採点システムを採用しており、各オブジェクトプロパティーには数字による点数がつけられている。この点数はオブジェクトプロパティーのリスクレベルを示す。そのようにして、ヒューリスティックエンジン４０６は潜在的に悪意的な異常に関連したオブジェクトプロパティーに高い点数をつけ、潜在的に良性の異常に関するオブジェクトプロパティーに低い点数をつけ、異常に関しないオブジェクトプロパティーに更に低い点数をつける。下表はヒューリスティックエンジン４０６で検出・採点可能な異常を示す。
【００１８】
【表１】
2009064443.tif 000003
本発明の一実施例では、ヒューリスティックエンジン４０６は各ウェブページのオブジェクトプロパティーの点数を合計し、ウェブページの全体的なリスクレベルを示す。注意すべきは、ヒューリスティックエンジン４０６は各点数を個別に重み付けでき、合計時に変化する重みをつけることができる。その後、ヒューリスティックエンジン４０６は各ウェブページの合計点を調整可能な閾値と比較する。合計点数が調整可能な閾値を超えれば、当該ウェブページを悪意的なものとみなし、ウェブページに対するソースコードスキャンを終了する。それに加えて、調整可能な閾値を超えた後、この現在処理中のウェブページの位置を既知シグネチャデータベース４０８のブラックリストに載せ、或いは合計点数の原因となる異常もしくは異常の組み合わせをブラックリストに載せる。注意すべきは、採点システムと調整可能な閾値は状況の変化に応じて適応できる。例えば、ハイリスクと想定して最初に高い点数をつけた特定種類の異常が、しかし、実地試験を経て他の異常より良性またはローリスクであると後に判明すれば、前記点数を調整して状況の変化を反映することができる。それと同じく、ヒューリスティックエンジン４０６があまりに多くのウェブページに悪意であるというラベルを貼った場合、前記閾値を調整することができる。
【００１９】
先に述べたように、既知シグネチャデータベース４０８は既知攻撃のシグネチャを保存する。本発明の一実施例では、データベースの中で各シグネチャに関連するプロパティーはカテゴリー化されている。以下のパラグラフにいくつかの例を挙げる。既知シグネチャデータベース４０８は、ウェブページアナライザー４０２の開発者または他の第三者により作成・維持される。また、本発明の一実施例として、既知シグネチャデータベース４０８をウェブページアナライザー４０２の中に設ける（図４に図示せず）か、或いは既知シグネチャデータベース４０８を、ウェブページアナライザー４０２がリンクを維持するネットワークサーバーの中に設けることもできる。
【００２０】
図５は本発明の一実施例によるウェブページアナライザー４０２が行うプロセスのフローチャートである。クライアントコンピュータＣがウェブページＷをリクエストし、ウェブページアナライザー４０２がこのウェブページＷを受信するとすれば、図４と合わせて見れば、ステップ５０２において、シグネチャベースエンジン４０４はウェブページＷのソースコードからオブジェクトを解析（パース）し、どのオブジェクトが検査されたかをトラッキングする。ステップ５０４に示すように、ウェブページＷに関連するすべてのオブジェクトが検査された場合、このスキャンプロセスはステップ５３０で終了する。他方、検査対象のオブジェクトが残っていれば、シグネチャベースエンジン４０４はステップ５１０で、検査対象として残ったオブジェクトのいずれかに関連するオブジェクトプロパティーを抽出し、このオブジェクトプロパティーを既知シグネチャデータベース４０８のブラックリストに載せられたシグネチャと比較する。ステップ５１２でシグネチャベースエンジン４０４により一致が検出されれば、シグネチャベースエンジン４０４はステップ５２８でその結果をウェブページアナライザー４０２に報告する。本発明の一実施例では、この受信報告に答えて、ウェブページアナライザー４０２はクリーニング（除去）プロセスを起動し、ウェブページＷがクライアントコンピュータＣに到達する前に悪意コードを除去しようと試みる。ステップ５１２で一致が発見されなければ、シグネチャベースエンジン４０４はオブジェクトと抽出されたオブジェクトプロパティーとをヒューリスティックエンジン４０６に送信する。
【００２１】
ヒューリスティックエンジン４０６はステップ５１６でオブジェクトとそれに関連するオブジェクトプロパティーを検査する。先に述べたように、ヒューリスティックエンジン４０６はオブジェクトプロパティーに数字による点数につけ、ウェブページＷの合計点数をトラッキングする。その後、ヒューリスティックエンジン４０６はステップ５１８で合計点数と調整可能な閾値を比較する。点数が高過ぎれば（例えば調整可能な閾値を超えた場合）、ヒューリスティックエンジン４０６は現在ウェブページを処理中の位置で既知シグネチャデータベース４０８を更新するか、或いは、ヒューリスティックエンジン４０６は既知シグネチャデータベース４０８の合計点数に寄与する異常または異常の組み合わせを既知シグネチャデータベース４０８に保存する。さもなければ、ヒューリスティックエンジン４０６はステップ５２４で、最新抽出されたオブジェクトプロパティーの点数を追加することで合計点数を更新する。注意すべきは、合計前にオブジェクトプロパティーの点数に異なった重みをつけることができる。その後、シグネチャベースエンジン４０４はステップ５０４で、検査されていないオブジェクトに対して動作を継続する。
【００２２】
前掲実施例の説明に続いて、図６はウェブページＷのソースコードのいくつかのオブジェクトのスナップショットである。ここで、ウェブページＷにＨＴＭＬ言語を用いるものとする。オブジェクト６００、６０２、６０４は図６に示すように太字、下線付きで強調表示されている。オブジェクト６０４では、＜ＩＦＲＡＭＥ  ＳＲＣ＝ｈｔｔｐ：／／ｗｗｗ．ｆｏｏ．ｂａｒ＞と、ＩＦＲＡＭＥと、ＳＲＣとは、このオブジェクトのオブジェクトプロパティーである。ＩＦＲＡＭＥは、メインドキュメントにもう１つのＨＴＭＬドキュメントを埋め込むことを可能にするＨＴＭＬ要素である。この埋め込み予定のＨＴＭＬドキュメントのＵＲＬ（ｈｔｔｐ：／／ｗｗｗ．ｆｏｏ．ｂａｒ）はＳＲＣにより特定される。
【００２３】
図７では既知シグネチャデータベースの一例を示す。図７に示す各線はそれぞれ異なったオブジェクトプロパティーを有する既知の攻撃シグネチャを示す。これらブラックリストに載せられたシグネチャは更に個々のカテゴリーに分類されている。本実施例では、一部のシグネチャは「タイプ」情報でカテゴリー化されており、図に示すシグネチャの多くは２またはそれ以上のオブジェクトプロパティー（すなわちＩＦＲＡＭＥとＳＲＣ）を有する。ここで、ブラックリストに載せられたシグネチャのうち１組はＩＦＲＡＭＥタイプのカテゴリーに属し、もう１組はＳＣＲＩＰＴタイプのカテゴリーに属する。もう１組のブラックリストに載せられたシグネチャは異常の組み合わせ、例えばシグネチャ７０２、７０４、７０６、７０８を含む。当業者が、ブラックリストに載せられた各シグネチャが、図７に示すものと異なるオブジェクトプロパティーの組み合わせを含むことができることを認識することは明白である。
【００２４】
図４と図５と合わせて先に述べたように、シグネチャベースエンジン４０４は図６に示すウェブページＷのソースコードのオブジェクト６００、６０２、６０４を抽出し、抽出したオブジェクトを図７に示す既知シグネチャデータベース４０８と比較する。ここで、シグネチャベースエンジン４０４は一致したシグネチャ７００を特定する。なぜならば、オブジェクト６０４のオブジェクトプロパティーは、一致したシグネチャ７００のタイプ情報（すなわちＩＦＲＡＭＥ）とＳＲＣ情報（すなわちｗｗｗ．ｆｏｏ．ｂａｒ）の両方にも合致しているからである。しかし、ウェブページＷに既知シグネチャデータベース４０８のブラックリストに載せられたシグネチャに合致するオブジェクトが含まれていないとすれば、ヒューリスティックエンジン４０６はオブジェクトとそれに関連するオブジェクトプロパティーに対して異常の有無を検査し、ウェブページＷの合計点数のトラッキングを続ける。前述のように、ウェブページＷの合計点数が閾値を超えれば、このウェブページＷは悪意的なものと考えられ、現在処理中のウェブページの位置、または合計点数に寄与する異常もしくは異常の組み合わせを既知シグネチャデータベース４０８に入力してこれを更新する。
【００２５】
図８は本発明の一実施例によるウェブページアナライザー８０４を備えるネットワークデバイス８００の簡略化したブロック図である。ネットワークデバイス８００はＨＴＭＬエキストラクター８０２と、ウェブページアナライザー８０４と、ルーティングブロック８０６と、ブリッジングブロック８０８と、ＮＡＴブロック８１０と、ネットワークドライバー８１２とを含む。ＨＴＭＬエキストラクター８０２は、アプリケーションユーザーとネットワークが利用するネットワークプロトコルからＨＴＭＬドキュメントを抽出し、抽出したＨＴＭＬドキュメントをウェブページアナライザー８０４に送信する。ウェブページアナライザー８０４は図４に示す前記ウェブページアナライザー４０２と同じ機能をサポートする。ネットワークデバイス８００はネットワーク８１４と１台もしくはそれ以上のクライアントコンピュータに結合するように構成されている。したがって、クライアントコンピュータとネットワーク８１４の間すべてのネットワークトラヒックはネットワークデバイス８００を通過する。
【００２６】
図９は又、本発明のもう１つの実施例によるウェブページアナライザー９０４を備えるネットワークデバイス９００の簡略化したブロック図である。ネットワークデバイス９００はＨＴＴＰプロキシ９０２と、ウェブページアナライザー９０４と、ＴＣＰ／ＩＰレイヤーコンポーネント９０６と、ネットワークドライバー９０８とを含む。ＨＴＴＰプロキシ９０２は、ネットワーク９１０上の他のサーバーと情報を交換することで、ネットワーク９１０上のクライアントコンピュータのＨＴＴＰリクエストとレスポンスを処理し、ＨＴＭＬドキュメントをウェブページアナライザー９０４に送る。ウェブページアナライザー９０４は図４に示すウェブページアナライザー４０２と同じである。また、ウェブページアナライザー９０４の一実施例では、ブラックリストに載せられた特定のＵＲＬをフィルターして除去する機能も行う。ネットワークデバイス８００と同じように、クライアントコンピュータとネットワーク９１０の間すべてのネットワークトラヒックはネットワークデバイス９００を通過する。或いは、ネットワークデバイス９００はいくつかのネットワークトラヒック（例えばＨＴＴＰトラヒック）を取り扱う。本発明の一実施例では、ネットワークデバイス８００とネットワークデバイス９００に描かれたすべてのブロックは、ネットワークデバイスに設けられた１またはそれ以上の処理ユニットで実行されるソフトウェアコンポーネントである。或いは、これらのブロックの機能のいくつか、例えばウェブページアナライザー８０４またはウェブページアナライザー９０４がサポートする機能は、１またはそれ以上の専用半導体デバイスにより実行される。
【００２７】
前述では本発明の種々の実施例、及び本発明をいかに実施するかを示す例を掲示している。前記実例、実施例、及び図示は、唯一の実施例とみなすべきでなく、特許請求の範囲により定められた本発明の融通性と利点を説明するために掲げるものである。
【図面の簡単な説明】
【００２８】
【図１】クライアントコンピュータの未知のユーザーがインターネットをブラウズすることによって、クライアントコンピュータのセキュリティーが破られた状況を示す説明図である。
【図２】未知のユーザーがインターネットをブラウズすることによって、クライアントコンピュータのセキュリティーが破られた状況を示す説明図である。
【図３】本発明の一実施例による、クライアントコンピュータに到達する前に変更されたウェブページを阻止するシステム構成を示す説明図である。
【図４】本発明の一実施例によるウェブページアナライザーの簡略化したブロック図である。
【図５】本発明の一実施例によるウェブページアナライザーが行うプロセスのフローチャートである。
【図６】ウェブページＷのソースコードのいくつかのオブジェクトのスナップショットである。
【図７】既知シグネチャデータベースの一例を示す説明図である。
【図８】本発明の一実施例によるウェブページアナライザーを備えるネットワークデバイスの簡略化したブロック図である。
【図９】本発明のもう１つの実施例によるウェブページアナライザーを備えるネットワークデバイスの簡略化したブロック図である。
【図１】
2009064443.tif 000004
【図２】
2009064443.tif 000005
【図３】
2009064443.tif 000006
【図４】
2009064443.tif 000007
【図５】
2009064443.tif 000008
【図６】
2009064443.tif 000009
【図７】
2009064443.tif 000010
【図８】
2009064443.tif 000011
【図９】
2009064443.tif 000012