【手続補正書】
【提出日】令和2年1月17日(2020.1.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】請求項１３
【補正方法】変更
【補正の内容】
【請求項１３】
請求項１２に記載のシステムにおいて、さらに、
前記データストリームを処理する前記フレームワークによって起動される第２の関数セットを捕捉するように構成された第２のプロファイラと、
データベースサーバへのデータベースクエリであって、前記フレームワークにより生成されるデータベースクエリを捕捉するように構成された第２のトラフィックアナライザと、
を備え、
前記パターン照合エンジンが、さらに、
捕捉された少なくとも１つの前記データベースクエリを、捕捉された前記第２の関数セットのサブセットと照合し、かつ、
捕捉されたデータベースクエリであって、適合した少なくとも１つの前記データベースクエリと、捕捉された前記第２の関数セットの前記サブセットとを、抽出された前記データセットに抽出するように構成されている、システム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００７７
【補正方法】変更
【補正の内容】
【００７７】
本発明を例示的な実施形態を参照しながら具体的に図示・説明してきたが、当業者であれば、特許請求の範囲に包含される本発明の範囲を逸脱することなく形態や細部に様々な変更が施されてもよいことを理解するであろう。
なお、本発明は、実施の態様として以下の内容を含む。
〔態様１〕
コンピュータに実装される方法であって、
ウェブフェーシングアプリケーションのフレームワークで受信されたデータストリームを捕捉する過程と、
前記データストリームを処理する前記フレームワークによって起動される関数の第１の関数セットを捕捉する過程と、
捕捉された前記第１の関数セットのサブセットを、捕捉された前記データストリームのデータパケットと照合する過程と、
捕捉された前記第１の関数セットのうちの適合した前記サブセットと前記データパケットのデータとを、データセットに抽出する過程と、
セキュリティ攻撃を検知するために、抽出された前記データセットに基づいて前記ウェブフェーシングアプリケーションの活動を探査する過程と、
を備える、方法。
〔態様２〕
態様１に記載の方法において、さらに、
前記データストリームを処理する前記フレームワークによって起動される関数の第２の関数セットを捕捉する過程と、
データベースサーバへのデータベースクエリであって、前記フレームワークにより生成されるデータベースクエリを捕捉する過程と、
捕捉された少なくとも１つの前記データベースクエリを、捕捉された前記第２の関数セットのサブセットと照合する過程と、
捕捉されたデータベースクエリであって、適合した少なくとも１つの前記データベースクエリと、捕捉された前記第２の関数セットのうちの適合した前記サブセットとを、抽出された前記データセットに抽出する過程と、
を備える、方法。
〔態様３〕
態様２に記載の方法において、さらに、
適合した前記データパケット、捕捉された前記第１の関数セットのうちの適合した前記サブセット、捕捉された前記第２の関数セットのうちの適合した前記サブセット、および前記少なくとも１つのデータベースクエリの間の関係を相関させる過程であって、捕捉された前記第１の関数セットのうちの適合した前記サブセット、捕捉された前記第２の関数セットのうちの適合した前記サブセットおよび前記少なくとも１つのデータベースクエリを処理するのに用いられるスレッドを追跡することに基づく、相関させる過程と、
前記データセット内における、適合した前記データパケット、捕捉された前記第１の関数セットのうちの適合した前記サブセット、捕捉された前記第２の関数セットのうちの適合した前記サブセット、および前記少なくとも１つのデータベースクエリを、相関された前記関係に基づいてマッピングする過程と、
前記ウェブフェーシングアプリケーションの活動を、抽出された前記データセット内における、適合した前記データパケット、捕捉された前記第１の関数セットのうちの適合した前記サブセット、捕捉された前記第２の関数セットのうちの適合した前記サブセット、および前記少なくとも１つのデータベースクエリの前記マッピングに基づいて探査する過程と、
を備える、方法。
〔態様４〕
態様３に記載の方法において、捕捉された前記少なくとも１つのデータベースクエリを照合する前記過程が、前記第２の関数セットの捕捉された前記サブセットにおける少なくとも１つの捕捉された関数のパラメータのデータを、捕捉された前記少なくとも１つのデータベースクエリの表現式のデータとパターン照合することを含む、方法。
〔態様５〕
態様３に記載の方法において、前記活動を探査する前記過程が、さらに、
前記ウェブフェーシングアプリケーションのフレームワークで受信されたデータパケットを実行時に捕捉すること、
抽出された前記データセット内における、捕捉された前記第１の関数セットのうちの適合した前記サブセットおよび捕捉された前記第２の関数セットのうちの適合した前記サブセットそれぞれの起動される関数を前記データセット内に捕捉し、捕捉された前記データベースクエリそれぞれの起動されるデータベースクエリを前記データセット内に実行時に捕捉すること、
前記第１の関数セットの起動される関数ごとに、前記第２の関数セットのマッピングされた前記サブセットの起動と、マッピングされた前記少なくとも１つのデータベースクエリの起動とがないかを調べること、
前記第２の関数セットのマッピングされた前記サブセットとマッピングされた少なくとも１つのデータクエリとのうちの少なくとも一方が起動されない場合にセキュリティ攻撃と断定すること、
を含む、方法。
〔態様６〕
態様２に記載の方法において、(i)前記第１の関数セットの前記サブセットが、前記フレームワークのビジネスロジック層へのインターフェースで前記フレームワークによって起動され、(ii)前記第２の関数セットの前記サブセットが、前記フレームワークの前記ビジネスロジック層からのインターフェースで前記フレームワークによって起動される、方法。
〔態様７〕
態様１に記載の方法において、捕捉された前記第１の関数セットの前記サブセットを照合する前記過程が、捕捉された前記第１の関数セットの前記サブセットにおける少なくとも１つの捕捉された関数のパラメータにおけるデータを、前記データパケットのフィールドのデータとパターン照合することを含む、方法。
〔態様８〕
態様１に記載の方法において、データストリームを捕捉する前記過程が、さらに、前記データストリームを前記フレームワークのプロトコル構成に基づいて復号することを含む、方法。
〔態様９〕
態様１に記載の方法において、さらに、
前記データストリームの処理から、ユーザ、ユーザデータ、セッション情報、ＩＰアドレス、ポート番号、プロトコルコンテキスト、スレッドＩＤ、スレッドコンテキスト、メモリへの読み書きの命令のアドレス、オペレートされるメモリの範囲、およびトラフィック方向のうちの少なくとも１つを、前記ウェブフェーシングアプリケーションの活動を探査するために、抽出された前記データセットに抽出する過程、
を備える、方法。
〔態様１０〕
態様１に記載の方法において、前記フレームワークが、バイナリ言語、．ＮＥＴ言語、ＪＡＶＡ（登録商標）言語、ＰＨＰ言語、Ｒｕｂｙ言語およびＰｙｔｈｏｎ言語のうちの少なくとも１つに従って構成されている、方法。
〔態様１１〕
態様１に記載の方法において、さらに、
前記フレームワークにおける前記データストリームの処理の間に各メモリアクセスのコンテンツを捕捉する過程と、
捕捉された前記第１の関数セットおよび捕捉された第２の関数セットの命令であって、ユーザデータを処理するのに用いられる命令を特定するように、抽出された前記データセットを捕捉された各メモリアクセスと比較する過程と、
特定された前記命令のチェーンを作成する過程であって、作成された前記チェーンは、前記ウェブフェーシングアプリケーションにおける脆弱性を表すように前記データセットに抽出される、過程と、
前記作成されたチェーンを監視することにより、実行時に前記ウェブフェーシングアプリケーションの前記活動を探査する過程であって、捕捉された各関数の出力にユーザコンテンツを付加すること、および捕捉された各関数の入力からコンテキストを除去することを含む、探索する過程と、
を備える、方法。
〔態様１２〕
ウェブフェーシングアプリケーションのフレームワークで受信されたデータストリームを捕捉するように構成された第１のトラフィックアナライザと、
前記データストリームを処理する前記フレームワークによって起動される第１の関数セットを捕捉するように構成された第１のプロファイラと、
捕捉された前記第１の関数セットのサブセットを、捕捉された前記データストリームのデータパケットと照合し、かつ、捕捉された前記第１の関数セットのうちの適合したサブセットをデータセットに抽出するように構成されたパターン照合エンジンと、
セキュリティ攻撃を検知するために、抽出された前記データセットに基づいて前記ウェブフェーシングアプリケーションの活動を監視するように構成されたプローブと、
を備える、コンピュータシステム。
〔態様１３〕
態様１２に記載のシステムにおいて、さらに、
前記データストリームを処理する前記フレームワークによって起動される第２の関数セットを捕捉するように構成された第２のプロファイラと、
データベースサーバへのデータベースクエリであって、前記フレームワークにより生成されるデータベースクエリを捕捉するように構成された第２のトラフィックアナライザと、
を備え、
前記パターン照合エンジンが、さらに、
捕捉された少なくとも１つの前記データベースクエリを、捕捉された前記第２の関数セットのサブセットと照合し、かつ、
捕捉されたデータベースクエイルであって、適合した少なくとも１つの前記データベースクエリと、捕捉された前記第２の関数セットの前記サブセットとを、抽出された前記データセットに抽出するように構成されている、システム。
〔態様１４〕
態様１３に記載のシステムにおいて、
前記パターンマッチングエンジンが、さらに、
適合した前記データパケット、捕捉された前記第１の関数セットのうちの適合した前記サブセット、捕捉された前記第２の関数セットのうちの適合した前記サブセット、および適合した前記少なくとも１つのデータベースクエリの間の関係を相関し、かつ、
抽出された前記データセット内における、適合した前記データパケット、捕捉された前記第１の関数セットのうちの適合した前記サブセット、捕捉された前記第２の関数セットのうちの適合した前記サブセット、および適合した前記少なくとも１つのデータベースクエリを、相関された前記関係に基づいてマッピングするように構成されており、
前記相関は、捕捉された前記第１の関数セットのうちの適合した前記サブセット、捕捉された前記第２の関数セットのうちの適合した前記サブセット、および適合した前記少なくとも１つのデータベースクエリを処理するのに用いられるスレッドを追跡することに基づき、
前記プローブが、さらに、前記ウェブフェーシングアプリケーションの活動を、抽出された前記データセット内における、適合した前記データパケット、捕捉された前記第１の関数セットのうちの適合した前記サブセット、捕捉された前記第２の関数セットのうちの適合した前記サブセット、および適合した前記少なくとも１つのデータベースクエリのマッピングに基づいて監視するように構成されている、システム。
〔態様１５〕
態様１４に記載のシステムにおいて、さらに、
ウェブフェーシングアプリケーションのフレームワークで受信されたデータパケットを実行時に捕捉するように構成された第３のトラフィックアナライザと、
捕捉された前記第１の関数セットのうちの適合した前記サブセットの起動される各関数を実行時に捕捉するように構成されたる第３のプロファイラと、
抽出された前記データセット内における、捕捉された前記第２の関数セットのうちの適合した前記サブセットの起動される各関数を前記データセット内に実行時に捕捉するように構成された第４のプロファイラと、
捕捉された前記データベースクエリのうち起動される各データベースクエリを前記データセット内に実行時に捕捉するように構成された第４のトラフィックアナライザと、
を備え、
前記プローブが、さらに、
前記第１の関数セットの起動される関数ごとに、前記第２のセットの関数のマッピングされた前記サブセットの起動と、マッピングされた前記少なくとも１つのデータベースクエリの起動とがないかを調べ、かつ、
前記第２の関数セットの前記マッピングされたサブセットとマッピングされた少なくとも１つのデータクエリとのうちの少なくとも一方が起動されなかった場合にセキュリティ攻撃と断定するように構成されている、システム。
〔態様１６〕
態様１４に記載のシステムにおいて、捕捉された前記少なくとも１つのデータベースクエリを照合することが、捕捉された前記第２の関数セットのパラメータにおけるデータを、捕捉された前記少なくとも１つのデータベースクエリの表現式のデータとパターン照合することを含む、システム。
〔態様１７〕
態様１２に記載のシステムにおいて、前記第１の関数セットを照合することが、前記第１の関数セットのパラメータにおけるデータを、前記データパケットのフィールドのデータとパターン照合することを含む、システム。
〔態様１８〕
態様１２に記載のシステムにおいて、(i)前記第１の関数セットの前記サブセットが、前記フレームワークのビジネスロジック層へのインターフェースで前記フレームワークによって起動され、(ii)前記第２の関数セットの前記サブセットが、前記フレームワークの前記ビジネスロジック層からのインターフェースで前記フレームワークによって起動される、システム。
〔態様１９〕
態様１２に記載のシステムにおいて、前記第１のトラフィックアナライザが、さらに、前記データストリームを前記フレームワークのプロトコル構成に基づいて復号するように構成されている、システム。
〔態様２０〕
態様１２に記載のシステムにおいて、前記パターンマッチングエンジンが、さらに、前記データストリームの処理から、ユーザ、ユーザデータ、セッション情報、ＩＰアドレス、ポート番号、プロトコルコンテキスト、スレッドＩＤ、スレッドコンテキスト、メモリへの読み書きの命令のアドレス、オペレートされるメモリの範囲、およびトラフィック方向のうちの少なくとも１つを、前記ウェブフェーシングアプリケーションの活動を探査するために、抽出された前記データセットに抽出するように構成されている、システム。
〔態様２１〕
態様１２に記載のシステムにおいて、前記フレームワークが、バイナリ言語、．ＮＥＴ言語、ＪＡＶＡ（登録商標）言語、ＰＨＰ言語、Ｒｕｂｙ言語およびＰｙｔｈｏｎ言語のうちの少なくとも１つに従って構成されている、システム。
〔態様２２〕
態様１２に記載のシステムにおいて、前記第１のプロファイラおよび第２のプロファイラが、さらに、前記フレームワークにおける前記データストリームの処理の間に各メモリアクセスのコンテンツを捕捉するように構成され、
前記パターンマッチングエンジンが、さらに、
捕捉された前記関数の命令であって、ユーザデータを処理するのに用いられる命令を特定するように、抽出された前記データセットを捕捉された各メモリアクセスと比較し、かつ、
特定された前記命令のチェーンを作成するように構成されており、
作成された前記チェーンは、前記ウェブフェーシングアプリケーションにおける脆弱性を表すように前記データセットに抽出され、
前記プローブが、さらに、前記作成されたチェーンを実行時に監視することにより、前記ウェブフェーシングアプリケーションの前記活動を監視するように構成され、当該監視が、捕捉された各関数の出力にユーザコンテンツを付加すること、捕捉された各関数の入力からコンテキストを除去すること、およびこれら付加および除去を解析エンジンに報告することを含む、システム。