(57)【要約】マクロの記録を含む自動セキュリティ検査方法。該記録されたマクロが再生され、該マクロの再生中にウェブリクエストがインターセプトされる。該ウェブリクエストをアタックしてウェブサーバへ送信することが可能である。該ウェブリクエストに基づく該ウェブサーバからのレスポンスを受信し、該ウェブサーバのレスポンスを処理して脆弱性を判定する。【選択図】図１
2014519119.tif 000002
【特許請求の範囲】
【請求項１】
自動セキュリティ検査のためのシステムであって、
格納されている命令を実行するよう構成されたプロセッサと、
命令を格納する記憶装置であって、該記憶装置がプロセッサ実行可能コードを含み、該プロセッサ実行可能コードが前記プロセッサにより実行された際に、
マクロを記録し、
ウェブブラウザからのトラフィックをインターセプトする間に該記録したマクロを再生し、
該マクロを再生する間にウェブリクエストをインターセプトし、
該ウェブリクエストをアタックし、
該ウェブリクエストをウェブサーバへ送信し、
該ウェブリクエストに基づく該ウェブサーバからのレスポンスを受信し、
該ウェブサーバの該レスポンスを処理して脆弱性を判定する、
という各ステップを行うよう構成されている、自動セキュリティ検査のためのシステム。
【請求項２】
前記記憶装置がコンピュータ実行可能コードを含み、該コンピュータ実行可能コードが、前記プロセッサにより実行された際に、
前記ウェブブラウザで前記レスポンス中のスクリプトを実行し、
該スクリプトの実行中に実行されたアプリケーションコードにドキュメントオブジェクトモデルメソッドをフックし、
前記アプリケーションコードの実行により示されるスクリプトの実行中にコールされた前記ドキュメントオブジェクトモデルメソッドに基づいて脆弱性を判定する、
という各ステップを行うことにより、前記ウェブサーバのレスポンスを処理して脆弱性を判定するよう構成されている、請求項１に記載のシステム。
【請求項３】
前記記憶装置がコンピュータ実行可能コードを含み、該コンピュータ実行可能コードが、前記プロセッサにより実行された際に、前記ウェブブラウザとのユーザの対話を記録することによりマクロを記録するよう構成されている、請求項１に記載のシステム。
【請求項４】
前記記憶装置がコンピュータ実行可能コードを含み、該コンピュータ実行可能コードが、前記プロセッサにより実行された際に、前記マクロの再生中に前記ウェブリクエストをアタックするよう構成されている、請求項１に記載のシステム。
【請求項５】
前記記憶装置がコンピュータ実行可能コードを含み、該コンピュータ実行可能コードが、前記プロセッサにより実行された際に、
ドキュメントオブジェクトモデルの要素を前記マクロ内に含め、
該ドキュメントオブジェクトモデル内の他の要素に対する前記要素のロケーション、タグ名、要素ID、要素名、又はそれらの任意の組み合わせに基づいて該ドキュメントオブジェクトモデルが変更された後に該ドキュメントオブジェクトモデル内の要素を探し出す、
という各ステップによりマクロを記録するよう構成されている、請求項１に記載のシステム。
【請求項６】
自動セキュリティ検査方法であって、
マクロを記録し、
プロキシサーバがウェブブラウザからのトラフィックをインターセプトする間に前記記録したマクロを再生し、
該マクロを再生する間にウェブリクエストをインターセプトし、
該ウェブリクエストをアタックし、
該ウェブリクエストをウェブサーバへ送信し、
該ウェブリクエストに基づく該ウェブサーバからのレスポンスを受信し、
該ウェブサーバの該レスポンスを処理して脆弱性を判定する、
という各ステップからなる、自動セキュリティ検査方法。
【請求項７】
前記ウェブサーバのレスポンスを処理して脆弱性を判定する前記ステップが、
前記ウェブブラウザで前記レスポンス中のスクリプトを実行し、
ドキュメントオブジェクトモデルメソッドをアプリケーションコードにフックし、
該アプリケーションコードの実行により示されるスクリプトの実行中にコールされた前記ドキュメントオブジェクトモデルメソッドに基づいて脆弱性を判定する、
という各ステップからなる、請求項６に記載の方法。
【請求項８】
前記ウェブリクエストをアタックする前記ステップが、該ウェブリクエストに悪意のあるコードをインジェクトするステップからなる、請求項６に記載の方法。
【請求項９】
前記マクロを記録する前記ステップが、記録するための要素を定義し、該要素が、ログアウト状態、ログイン状態、又は一組の質問及び回答を示すものである、請求項６に記載の方法。
【請求項１０】
前記マクロを記録する前記ステップが、イベントハンドラを用いたウェブページの要素を記録するステップからなる、請求項６に記載の方法。
【請求項１１】
前記ウェブリクエストが、該ウェブリクエストがインターセプトされる前に該ウェブリクエストのオリジナルの宛先である前記ウェブサーバに送信される、請求項６に記載の方法。
【請求項１２】
前記ウェブリクエストをアタックする前記ステップが、脆弱性を構成するものに関する対応するルールを含む、請求項６に記載の方法。
【請求項１３】
持続性コンピュータ読み取り可能媒体であって、
マクロを記録し、
ウェブブラウザからのトラフィックをインターセプトする間に前記記録したマクロを再生し、
該マクロを再生する間にウェブリクエストをインターセプトし、
該ウェブリクエストをアタックし、
該ウェブリクエストをウェブサーバへ送信し、
該ウェブリクエストに基づく該ウェブサーバからのレスポンスを受信し、
該ウェブサーバの該レスポンスを処理して脆弱性を判定する、
という各ステップの実行をプロセッサに指示するよう構成されたコードを含む、持続性コンピュータ読み取り可能媒体。
【請求項１４】
前記ウェブブラウザで前記レスポンス中のスクリプトを実行し、
該スクリプトの実行中に実行されたアプリケーションコードにドキュメントオブジェクトモデルメソッドをフックし、
該アプリケーションコードの実行により示されるスクリプトの実行中にコールされた前記ドキュメントオブジェクトモデルメソッドに基づいて脆弱性を判定する、
という各ステップを実行することにより、前記ウェブサーバの前記レスポンスを処理して脆弱性を判定するようプロセッサに指示するよう構成されたコードを含む、請求項１３に記載の持続性コンピュータ読み取り可能媒体。
【請求項１５】
ウェブリクエストに悪意のあるコードをインジェクトすることにより該ウェブリクエストをアタックするようプロセッサに指示するよう構成されたコードを含む、請求項１３に記載の持続性コンピュータ読み取り可能媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
多くの企業は、オンラインプレゼンスを維持しており、及びウェブを使用して該企業の商取引や業務を行っている。多くの場合、業務は、ウェブを介した情報共有と称することができるWeb 2.0として知られるウェブの側面に関わるものとなり、この場合、ウェブはユーザ中心の設計のためのプラットフォームとみなされる。セキュアなウェブページを持つということは、業務がそのオンラインデータの完全性を維持すること並びにウェブ及びWeb 2.0上で正しく機能し続けることを確実にするための１つのテクニックである。その結果として、ウェブページセキュリティは日常的に評価されている。
【０００２】
マニュアル侵入検査は、セキュリティ評価の１つのテクニックである。マニュアル侵入検査では、悪意のあるソースからのアタックがウェブページ上でシミュレートされる。アタックは典型的には、ウェブページとの通信に悪意のあるコードを挿入することを含む。ユーザは、該アタックを介して露呈した脆弱性についてウェブサイトをマニュアルで解析することが可能である。しかし、多くのウェブページは非常に大きくて広範なものであり、このため、マニュアルでの解析中に脆弱性を見落とす可能性がある。更に、ウェブサイトの管理者は、ネットワーク全体にわたる様々なウェブページ上に存在する幾つかのアプリケーションに気づかない可能性があり、かかるアプリケーションに関連する脆弱性もまた見落とす可能性がある。更に、業務プロセスはその検査が困難なものである可能性があり、及びソースコードをマニュアルアタックにより完全にカバーすることは不可能であり、見落としてしまう脆弱性が更に増えることになる。
【０００３】
代替的に、トランスポートレベルアタック機構を使用して脆弱性を検査することが可能である。トランスポートレベルアタックは、アタックコードを含む様々なパラメータをウェブリクエストに同封することにより生成することが可能である。該リクエストは、その処理のためのサーバへ送信することが可能である。脆弱性が存在する際に予想される態様で該サーバが該リクエストに応答する場合、該アタックに基づいて脆弱性を発見することが可能である。
【０００４】
クロール及び監査技術を使用して脆弱性を発見することも可能であり、該技術は典型的には、サーバへのリクエスト及び該サーバからのレスポンスをもたらす各リンクと静的に連携して使用される。更に、クロール及び監査技術は、ユーザとの対話又はウェブブラウザの助力を伴うことなく自動的に実行されるものである。ユーザトラフィックは記録されず、それ故、Web 2.0アプリケーションにアクセスするための認証データは利用可能とならない。
【図面の簡単な説明】
【０００５】
【図１】本技術の一実施形態による自動セキュリティ検査のためのコンピュータにより実行される方法を示すプロセスフローチャートである。
【図２】本技術の一実施形態による自動セキュリティ検査のためのコンピュータにより実行される方法を示すプロセスフローチャートである。
【図３】本技術の一実施形態による自動セキュリティ検査を提供することができるシステムのブロック図である。
【図４】本技術の一実施形態による自動セキュリティ検査のためのコードを格納する持続性コンピュータ読み取り可能媒体を示すブロック図である。
【発明を実施するための形態】
【０００６】
以下では図面を参照して特定の例示的な実施形態について説明する。
【０００７】
本技術の一実施形態は、ウェブブラウザとのユーザ対話を記録することにより自動的にウェブページのセキュリティの脆弱性を検出することが可能なものである。また、本技術の一実施形態は、ウェブブラウザ上で記録し再生することができるマクロを生成すること及び該マクロにより再生されるイベント内にアタックをインジェクトすることが可能なものである。該マクロの再生は、所与のウェブサイトの完全に自動化された脆弱性スキャン中に新たな脆弱性を発見するために使用することが可能である。更に、本技術の一実施形態は、ウェブページに自動的にログインし、及びウェブブラウザとのユーザ対話を含む記録済みのマクロの再生を用いて様々なウェブページの状態を維持することが可能である。新たなリンクを発見し、ウェブアプリケーションのアタックポイントを探し出し、アタックを行い、及び脆弱性を発見するために、該記録済みのマクロの再生中にウェブリクエストを行うことが可能である。
【０００８】
図１は、一実施形態による自動セキュリティ検査のためのコンピュータにより実行される方法100を示すフローチャートである。ブロック102でマクロが記録される。本書で用いる場合、マクロとは、一連のアクション又は入力のソフトウェア記録であり、該アクション又は入力を繰り返すべく再生することが可能なものである。該マクロは、ウェブページの要素の操作、該要素の属性の変更、ドキュメントオブジェクトモデル（DOM）における該要素のロケーションの変化、及び該要素のあらゆる兄弟（siblings）を含むことが可能である。該要素はまた、ウェブブラウザとのユーザ対話の結果として生じるイベントに基づくものとすることが可能である。結果的に、マクロは、ウェブブラウザとのユーザの対話を記録することが可能である。ユーザは、ウェブページへのログインやプロファイル情報の表示といったユーザにより選択されたものとして記録されるべき業務プロセスに対応する任意の態様でウェブブラウザと対話することが可能である。イベントヘッダを使用してマクロを記録することも可能である。
【０００９】
ユーザはまた、ログイン状態又はログアウト状態を示す要素等を記録すべくウェブページの要素を選択することが可能である。例えば、ウェブページ上の「サインイン」と記載されたボタンは、ログアウト状態を示すことが可能なものである。更に、ユーザは、マクロに含めると共に認証のためにウェブページにより提示される動的なセキュリティ質問で使用するための一組の質問及び回答を定義することができる。該動的なセキュリティ質問のロケーションを記録することも可能である。例えば、銀行のウェブサイトは、「多層セキュリティ（Security-in-depth）」の一部として、「あなたの猫のお気に入りのボールは？」といった一連の予め設定された質問に対する回答をユーザに促すことができる。かかる質問は、ユーザが該一組の質問を定義して前記マクロに含めることにより脆弱性スキャン中に克服することが可能である。
【００１０】
本書で説明するように、ユーザがブラウザ内で所与のアクションを開始した際に、要素の属性（該要素がDOM内に存在する場合）及びDOMに関する他の関連情報（該要素の兄弟及び該要素がフォームの一部であるか否かなど）を記録することが可能である。このように各要素に関する情報を記録することにより、DOMのレイアウトが異なる場合であっても、該DOMに対する後続の変化で同一の要素を見いだすことが可能となる。一般に、DOMは、HTML及びXMLドキュメントのためのアプリケーションプログラミングインタフェイスである。DOMは、ウェブサイトのHTML及びXMLドキュメントの論理構造を定義することが可能であり、及びドキュメントがアクセスされ操作される態様を制御することが可能である。ウェブページのDOM構造は、Web 2.0アプリケーションを用いてユーザ対話中に変化し得るものであり、これによりDOM内の要素が論理的又は構造的に変化する。
【００１１】
DOM内の要素は、マクロが記録されている間に該DOMの構造が変換する場合にはスキャンエンジンを使用して見いだすことが可能である。最初に、スキャンエンジンは、タグ名、要素ID、及び要素名等の情報に基づいてDOM内の要素を探し出すことが可能である。DOMの要素をサーチするための最初のサーチが、該サーチした要素と同じDOM内のロケーションに同じタグ名を有する要素を探し出せなかった場合には、その正確なロケーションに基づいて又はDOM内の他の要素に対する該要素のロケーションに基づいて、記録された要素を探し出すことが可能である。このDOM内の要素を発見する際の柔軟性により、Web 2.0アプリケーションとの対話時にDOMに対する動的な変化が発生する場合に脆弱性を発見することをが可能となる。
【００１２】
ブロック104で、記録されたマクロが再生される。該マクロの再生は、正しいステップがキャプチャされたことを確認するために使用することが可能であり、該再生中に所望のブラウザ状態が達成される。該マクロは、最初に、状態を確立するため、並びに該マクロが訪問したURL（Uniform Resource Locators）をクロールに入力するために、再生することが可能である。該クロールは次いで、以下で説明するようにアタックを実行することが可能な監査エンジンにアタックサーフェスを提供するために使用することが可能である。更に、該監査エンジンは、スキャンエンジンの一部とすることが可能である。
【００１３】
最初のマクロ再生の後、後続のマクロ再生中に該マクロに記録されたログアウト状態を示す要素についてウェブページをチェックすることが可能である。かかる要素が見つからない場合には、該マクロ再生を中断して、実際の解析を実行することができるようにログイン状態を再確立するためにマクロを再生することが可能である。解析はログアウト状態では厳しく制限される可能性があり、ログアウト状態で再生が続いた場合には重要な脆弱性を発見できない可能性がある。
【００１４】
ブロック106で、マクロ再生中に行われたウェブリクエストがプロキシサーバによりインターセプトされる。プロキシサーバは、ウェブブラウザ内でのマクロの再生中に該ウェブブラウザからのトラフィックをインターセプトするよう構成することが可能である。更に、プロキシサーバは、監査エンジンにウェブリクエストを提供することが可能である。ブロック108で、該ウェブリクエストがアタックされる。該アタックは、監査エンジンにより実行することが可能である。ウェブリクエストのアタックは、該リクエストに悪意のあるコードをインジェクトすることを含み、これにより、該ウェブリクエスト内でユーザが意図しない何らかの機能の利用を試行することが可能となる。更に、マクロの再生中に該ウェブリクエストをアタックすることが可能である。クロスサイトスクリプティングの場合、クロスサイトスクリプティングペイロードをウェブリクエスト中にインジェクトすることが可能である。
【００１５】
ブロック110で、該ウェブリクエストがウェブサーバへ送信される。該ウェブサーバは、該ウェブリクエストがインターセプトされてプロキシサーバへ送信される前の該ウェブリクエストのオリジナルの宛先とすることが可能である。ブロック112で、該ウェブリクエストに基づくレスポンスがウェブサーバから受信される。ブロック114で、該ウェブサーバのレスポンスが処理されて脆弱性が判定される。実行された各アタック毎に、脆弱性を構成するものに関する対応するルールが存在する。典型的には、このルールは、監査エンジンによりレスポンステキストで実行することができる正規表現である。該ルールが満たされた場合、ウェブページに脆弱性が存在する。複雑な複数の監査エンジンは、レスポンスの処理が過去のアタックの成功に依存するものとなるようにかかる監査エンジンに関連する１つの状態を有することが可能である。
【００１６】
図２は、一実施形態によるウェブサーバのレスポンスを処理して脆弱性を判定するコンピュータにより実行される方法200を示すプロセスフローチャートである。監査エンジンの代わりにブラウザがレスポンスを処理する際に脆弱性を露呈させることが可能である。ブロック202で、レスポンス中のスクリプトをウェブブラウザ内で実行することが可能である。ブロック204で、DOMメソッドが実行される際に実行することができるアプリケーションコードに幾つかのDOMメソッドをフックし又はリンクすることが可能である。この場合には、該レスポンスをブラウザへ渡して、該レスポンスのスクリプトの実行時にコールすることができるアプリケーションコードに幾つかのDOMメソッドをフックすることにより、脆弱性を検出することが可能である。ブロック206で、アプリケーションコードの実行により示されるように、スクリプトの実行時にコールされた特定のDOMメソッドに基づいて脆弱性を判定することが可能である。
【００１７】
本技術は、クロスサイトスクリプティング脆弱性を検出するために使用することが可能である。例えば、ユーザが自身のプロファイル情報を編集し見ることを可能にするAjax（Asynchronous JavaScript + XML）ドリブンのウェブサイトについて考察する。プロファイル情報の編集は、JavaScriptイベントハンドラを有する「編集」ボタンをユーザがクリックした際にトリガすることが可能である。編集後、「保存」ボタンは保存のためのAJAXリクエストをウェブサーバへ送ることが可能である。更に、「表示」ボタンをクリックしてこのプロファイル情報を表示させることが可能である。表示ボタンがクリックされた際に、該サーバからプロファイルデータを取り出すための第２のAJAXリクエストを送信するJavaScriptを実行することが可能であり、このデータをDOM要素へと変換してブラウザでレンダリングすることが可能である。編集ボタン、保存ボタン、及び表示ボタンの各々は、AJAXドリブンのページの要素とすることが可能である。
【００１８】
JavaScriptイベントは、ボタンがクリックされた際、又はPOSTの前にユーザ名及びパスワード値を変更するJavaScriptが発生した際に、トリガすることが可能である。POSTは、リクエストの一部としてサーバへデータを送信するため（フォームデータをサーバへ提示する場合など）にクライアントにより使用されるウェブリクエストである。ランダムな名称を有する隠し形式の入力が各フォーム毎に生成される際にインプットサニタイゼーション（入力の浄化）が発生することが可能であり、サーバはウェブリクエストにおけるパラメータの存在をチェックする。一般に、インプットサニタイゼーションは、フォームデータ及びクッキーといったユーザ入力がウェブサーバへ送信される前に該ユーザ入力をクライアントサイドで評価することを含む。インプットサニタイゼーション技術は、クロスサイトリクエストフォージェリ（CSRF）を防止するために使用することが可能であり、及び自動エンジンによるウェブリクエストの再生を困難にすることが可能である。同じ一連のリクエストの再生がユーザを認証するものとならないからである。更に、これらの複雑なアプリケーションをアタックするために、インジェクトされる各アタック（SQLインジェクション又はクロスサイトスクリプティングなど）に先立ってユーザの状態が分かっている必要がある。
【００１９】
インプットサニタイゼーションなしでプロファイル情報がDOM要素へと変換される場合には、クロスサイトスクリプティング脆弱性が存在する可能性がある。このため、クロスサイトスクリプティング脆弱性は一般に、ユーザが見ているウェブページにアタッカーがクライアントサイドスクリプトをインジェクトすることを可能にするウェブアプリケーションで発見される。この脆弱性を検出するために、ユーザがブラウザと対話する際に発生するDOMイベントを、脆弱性が存在し得る条件を模倣するようウェブブラウザを使用して特定のシーケンスで反復することが可能である。該DOMイベントは、アタックのペイロードの実行を精確に検出すべく厳密に監視することが可能である。
【００２０】
クロスサイトスクリプティング脆弱性に通じ得るクライアントサイドイベントを記録するために、ブロック102（図１）に示すように、現在レンダリングされているウェブページのDOM並びに該DOMのベースに対する変更イベントハンドラの両方についてイベントハンドラを「フックする」ことにより、マクロを記録することが可能である。要素は一連のイベントを投げることが可能であり、このため特定の１つのイベントが投げられた際に必ず一連のイベントハンドラがコールされるように該一連のイベントハンドラを要素に「フック」することが可能となります。
【００２１】
イベントハンドラは、ウェブページとのユーザ対話がウェブブラウザ又はスキャンエンジンに対して検出された際に必ず通知を送信することが可能である。ウェブブラウザとのユーザ対話の結果として生じるイベントに基づく一連の要素を記録し次いで任意に再生してウェブブラウザとのユーザ対話をシミュレートすることが可能である。マクロは、セキュリティ評価要件を満たす質問及び回答、並びに再生セッションを成功裏に認証するためのその他情報を含むことが可能である。
【００２２】
スキャンエンジンは、ブロック104（図１）に示すように、記録されたマクロを再生するようプログラムされたウェブブラウザのインスタンスを提示することが可能である。マクロの再生中にウェブブラウザがナビゲートする際に、スキャンエンジンを用いてDOMを操作して、記録中にユーザが対話した要素と同じ要素を操作することが可能である。例えば、保存要素、編集要素、表示要素、クリック要素、ナビゲート要素、値設定要素を、実際のユーザ対話の場合と全く同様に再生中に操作することが可能である。更に、クライアントサイドJavaScriptをユーザ対話の場合と全く同様に実行することが可能である。
【００２３】
マクロの再生中にウェブブラウザからのトラフィックをインターセプトするようにプロキシサーバを構成することが可能であり、ブロック106（図１）に示すように、マクロの再生中にウェブリクエストをインターセプトすることが可能である。ブロック108（図１）に示すように、マクロの再生の進行中にプロキシサーバを用いてウェブリクエストをアタックすることが可能である。アタックのタイプに応じて、再生を停止させることが可能である。ブロック110,112（図１）に示すように、ウェブサーバは、プロキシサーバから送信されたアタックされたウェブリクエストに応答する。この時点での挙動は、該アタックを処理する監査エンジンのタイプによって異なる。ブロック114（図１）に示すように、監査エンジンは、ウェブサーバレスポンスを処理して脆弱性が存在するか否かを判定することが可能である。マクロの再生は、それが完了するまで処理されて、脆弱性の指示について各々の新たなレスポンスが検査される。
【００２４】
クロスサイトスクリプティング脆弱性が検出されると、ブロック202（図２）に示すように、ウェブブラウザは、アタックで送信されたスクリプトを実行する。このシナリオでは、該脆弱性は、クライアントサイドスクリプトで発生し、ウェブサーバへデータを送信することはできない。したがって、これらのウェブリクエストをアタックする場合には、ウェブブラウザのDOMの状態が重要である。上述のように、ウェブブラウザのDOMは、ウェブサイトのHTML及びXMLドキュメントの論理構造を定義し、及びドキュメントがアクセスされ操作される態様を制御することが可能なものである。ブロック204（図２）に示すように、ウェブブラウザのDOMにアプリケーションコードをフックすることが可能であり、該アプリケーションコードは、コールされたDOMメソッドの通知を提供することが可能である。例えば、DOMメソッドにリンクされるアプリケーションコードは、アタックで送信されたクロスサイトスクリプティングペイロードとすることが可能である。その結果として、ブロック206（図２）に示すように、脆弱性が存在する場合にコールされることが予想される特定のDOMメソッドをウェブブラウザがコールする場合に脆弱性を判定することが可能である。脆弱性の通知は、その発生時に生じさせることが可能である。その結果として、単なるトランスポート層アタックではアクセスすることができない脆弱性にアクセスすることが可能となる。
【００２５】
図３は、本技術の一実施形態による自動セキュリティ検査を提供するシステムのブロック図である。該システムは包括的に符号300により示されている。当業者には理解されるように、図３に示す機能ブロック及び装置は、回路を含むハードウェア要素、有形のマシン読み取り可能媒体に格納されたコンピュータコードを含むソフトウェア要素、又はハードウェア要素及びソフトウェア要素の組み合わせから構成することが可能である。更に、該システム300の機能ブロック及び装置は、一実施形態として実施することができる機能ブロック及び装置のほんの一例に過ぎないものである。当業者であれば、特定の電子装置のための設計上の考慮事項に基づいて特定の機能ブロックを容易に定義することが可能である。
【００２６】
該システム300は、ネットワーク304に接続された検査用コンピュータ302を含むことが可能である。図３に示すように、該検査用コンピュータ302は、バス308を介してディスプレイ310、１つ以上の入力装置314、及びプリンタ316等の出力装置へと接続することが可能な１つ以上のプロセッサ306を含むことが可能である。該入力装置314は、マウス又はタッチスクリーン等の装置を含むことが可能である。該プロセッサ306は、シングルコア、マルチコア、又はクラウドコンピューティングアーキテクチャにおけるクラスタコアを含むことが可能である。検査用コンピュータ302はまた、バス308を介してネットワークインタフェイスカード（NIC）318に接続することが可能である。該NIC318は、該検査用コンピュータ302をネットワーク304に接続することが可能である。
【００２７】
該ネットワーク304は、ローカルエリアネットワーク（LAN）、ワイドエリアネットワーク（WAN）、又はその他のネットワーク構成とすることが可能である。該ネットワーク304は、ルータ、スイッチ、モデム、又は相互接続のために使用される他の任意の種類のインタフェイス装置を含むことが可能である。該ネットワーク304は、ウェブサーバ320に接続することが可能である。図示しないが、該ウェブサーバ320は、ネットワーク304を介して様々な他のコンピュータに接続することが可能である。
【００２８】
検査用コンピュータ302は、バス308を介してプロセッサ306に動作可能な状態で接続された他の装置（ローカルプロキシサーバ322など）を有することが可能である。バス308を介してプロセッサ306に動作可能な状態で接続された他の装置は、有形のマシン読み取り可能記憶媒体（ストレージ324など）、イベントベースレコーダモジュール326、スキャンエンジン328、及び監査エンジン330を含むことが可能である。該ストレージ324は、ハードディスクドライブ、リードオンリーメモリ（ROM）、ランダムアクセスメモリ（RAM）、RAMドライブ、フラッシュドライブ、光学ドライブ、及びキャッシュメモリ等を含むことが可能である。プロキシサーバ322、イベントベースレコーダモジュール326、スキャンエンジン328、及び監査エンジン330は、検査用コンピュータ302上に存在するものとして示されているが、当業者には理解されるように、それら装置は、検査用コンピュータ302上に存在することも、該検査用コンピュータ302に接続された他の任意のコンピュータ上に存在することも可能である。
【００２９】
図４は、本技術の一実施形態による自動セキュリティ検査のためのコードを格納する持続性コンピュータ読み取り可能媒体を示すブロック図である。該持続性コンピュータ読み取り可能媒体は包括的に符号400で示されている。
【００３０】
該持続性コンピュータ読み取り可能媒体400は、プログラミングコード等のコンピュータにより実行される命令を格納する任意の一般的な記憶装置に対応し得るものである。例えば、該持続性コンピュータ読み取り可能媒体400は、不揮発性メモリ、揮発性メモリ、及び／又は１つ以上の記憶装置のうちの１つ以上を含むことが可能である。
【００３１】
不揮発性メモリの一例として、EEPROM（Electrically Erasable Programmable Read Only Memory）及びROMが挙げられる（但し、これらには限定されない）。揮発性メモリの一例として、SRAM（Static Random Access Memory）及びDRAM（Dynamic Random Access Memory）が挙げられる（但し、これらには限定されない）。記憶装置の一例として、ハードディスクドライブ、CD（Compact Disc）ドライブ、DVD（Digital Versatile Disc）ドライブ、及びフラッシュメモリデバイスが挙げられる（但し、これらには限定されない）。
【００３２】
プロセッサ402は一般に、自動セキュリティ検査のための持続性コンピュータ読み取り可能媒体400に格納されているコンピュータにより実行される命令を読み出して実行する。ブロック404で、記録モジュールは、その実行時にプロセッサにマクロを記録させる。該マクロは、ウェブページの様々な要素を含むことが可能であり、ユーザが該ウェブページと対話する際に記録される。ブロック406で、再生モジュールは、その実行時にプロセッサにマクロを実行させる。該マクロは、ウェブブラウザで再生することが可能である。ブロック408で、インターセプトモジュールが、その実行時にプロセッサにマクロの再生によるウェブリクエストをインターセプトさせる。該ウェブリクエストは、マクロの再生中にインターセプトすることが可能である。ブロック410で、アタックモジュールが、その実行時にプロセッサに該ウェブリクエストをアタックさせる。該ウェブリクエストは、該ウェブリクエスト中に悪意のあるコードをインジェクトすることによりアタックすることが可能である。ブロック412で、レスポンスモジュールが、その実行時にプロセッサに、該ウェブアタックに対するウェブサーバのレスポンスを処理することにより脆弱性の判定を行わせる。脆弱性はまた、レスポンス中のスクリプトがウェブブラウザ内で実行された際に該スクリプトの実行によりコールされた特定のDOMメソッドにより判定することが可能であり、該DOMメソッドがアプリケーションコードにフックされる。更に、レスポンス中のスクリプトはウェブブラウザ内で実行することが可能であり、DOMメソッドが実行される際に実行することができるアプリケーションコードに幾つかのDOMメソッドをフックすることが可能である。脆弱性は、該アプリケーションコードの実行により示されるスクリプトの実行中にコールされたドキュメントオブジェクトモデルメソッドに基づいて判定することが可能である。
【図１】
2014519119.tif 000003
【図２】
2014519119.tif 000004
【図３】
2014519119.tif 000005
【図４】
2014519119.tif 000006
【国際調査報告】
2014519119.tif 000007
2014519119.tif 000008