(57)【要約】【課題】コンピュータ実装方法、データ処理システム、およびコンピュータ使用可能なプログラム・コードにブラック・ボックス・ウェッブ・アプリケーション・セキュリティ走査をモニタさせるコンピュータ使用可能な記録可能型の媒体が提供される。【解決手段】ウェッブ・アプリケーションのブラック・ボックス走査が開始される。ブラック・ボックス走査がウェッブ・アプリケーションの複数のウェッブ・アプリケーション入力にテストが送られるようにする。ランタイム解析がウェッブ・アプリケーションのブラック・ボックス走査の際に行われる。ブラック・ボックス走査のランタイム解析に基づいて、ブラック・ボックス走査が修正される。【選択図】図３
2010157211.tif 000002
【特許請求の範囲】
【請求項１】
ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタするための方法であって、
ウエブ・アプリケーションの複数のウエブ・アプリケーション入力にテストが送られて、前記ウエブ・アプリケーションのブラックボックス走査を開始するステップと、
前記ウエブ・アプリケーションの前記ブラックボックス走査のランタイム解析を行うステップと、
前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するステップと
をコンピュータに実行させる方法。
【請求項２】
前記テストからデータを受け取る、実行されたウエブ・アプリケーション入力を、前記ウエブ・アプリケーションの前記ブラックボックス走査の前記ランタイム解析を行うステップに応答して、前記複数のウエブ・アプリケーション入力から識別するステップ
を更に含む、請求項１に記載のコンピュータ実行方法。
【請求項３】
前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するステップが更に、前記テストからデータを受取らなかった、実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの後続のブラックボックス走査により実行されるようにする、
請求項２に記載のコンピュータ実行方法。
【請求項４】
前記複数のウエブ・アプリケーション入力のカバレッジの情報であって、実行される前記複数のウエブ・アプリケーション入力の割合、および実行されない前記複数のウエブ・アプリケーション入力の割合を含む前記情報を用意するステップ
を
更に含む、請求項３に記載のコンピュータ実行方法。
【請求項５】
前記複数のウエブ・アプリケーション入力の前記カバレッジの情報を用意するステップに応答して、フィードバック制御に前記情報をフォワードするステップを更に含み、
前記修正するステップは、
前記テストからのデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、前記フィードバック制御に前記情報をフォワードするステップに応答して、前記ブラックボックス走査を前記フィードバック制御でもって修正する、
請求項４に記載のコンピュータ実行方法。
【請求項６】
前記フィードバック制御がフィードバック制御ループであり、
前記テストからデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、前記フィードバック制御に前記情報をフォワードするのに応答して、前記ブラックボックス走査をランタイム中前記フィードバック制御でもって修正する、
請求項５に記載のコンピュータ実行方法。
【請求項７】
前記テストが複数のウエブ・アプリケーション入力に送られる前記ウエブ・アプリケーションのブラックボックス走査を開始するステップにおいて、前記テストはクロスサイト・スクリプティング、ＳＱＬインジェクション、ディレクトリ横断、間違い構成、および遠隔コマンド実行脆弱性よりなるグループから選択される、
請求項３に記載のコンピュータ実行方法。
【請求項８】
バスと、
前記バスに接続され、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタするためのコンピュータ使用可能コードを含むストレージ装置と、 
前記バスに接続された通信ユニットと、
前記バスに接続された処理ユニットであって、
ウエブ・アプリケーションの複数のウエブ・アプリケーション入力にテストが送られて、前記ウエブ・アプリケーションのブラックボックス走査を開始し、
前記ウエブ・アプリケーションの前記ブラックボックス走査のランタイム解析を行い、そして前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するよう、前記コンピュータ使用可能コードを実行する前記処理ユニットと
を含むデータ処理システム。
【請求項９】
前記テストからデータを受け取る、実行されたウエブ・アプリケーション入力を、前記ウエブ・アプリケーションの前記ブラックボックス走査の前記ランタイム解析を行うのに応答して、前記複数のウエブ・アプリケーション入力から識別するよう、
前記コンピュータ使用可能コードを前記処理ユニットが更に実行する、
請求項８に記載のデータ処理システム。
【請求項１０】
前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するために前記コンピュータ使用可能コードを実行する前記処理ユニットが更に、前記テストからデータを受取らなかった、実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの後続のブラックボックス走査により実行されるよう、
前記コンピュータ使用可能コードを実行する、
請求項９に記載のデータ処理システム。
【請求項１１】
前記複数のウエブ・アプリケーション入力のカバレッジの情報であって、実行される前記複数のウエブ・アプリケーション入力の割合、および実行されない前記複数のウエブ・アプリケーション入力の割合を含む前記情報を用意するよう、
前記コンピュータ使用可能コードを実行する、請求項１０に記載のデータ処理システム。
【請求項１２】
前記複数のウエブ・アプリケーション入力の前記カバレッジの情報を用意するのに応答して、フィードバック制御に前記情報をフォワードし、
前記テストからのデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、前記フィードバック制御に前記情報をフォワードするのに応答して、前記ブラックボックス走査を前記フィードバック制御でもって修正するよう、
前記コンピュータ使用可能コードを実行する、請求項１１に記載のデータ処理システム。
【請求項１３】
前記フィードバック制御がフィードバック制御ループであり、
前記テストからデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、前記フィードバック制御に前記情報をフォワードするのに応答して、前記ブラックボックス走査をランタイム中前記フィードバック制御でもって修正するよう、
前記コンピュータ使用可能コードを実行する、請求項１２に記載のデータ処理システム。
【請求項１４】
前記ウエブ・アプリケーションの前記複数のウエブ・アプリケーション入力に送られるテストが、
クロスサイト・スクリプティング、ＳＱＬインジェクション、ディレクトリ横断、間違い構成、および遠隔コマンド実行脆弱性よりなるグループから選択されるテストである、
請求項１０に記載のデータ処理システム。
【請求項１５】
ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタするためのコンピュータ・プログラムであって、
ウエブ・アプリケーションの複数のウエブ・アプリケーション入力にテストが送られて、前記ウエブ・アプリケーションのブラックボックス走査を開始するステップと、
前記ウエブ・アプリケーションの前記ブラックボックス走査のランタイム解析を行うステップと、
前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するステップと
をコンピュータに実行させることが可能なコンピュータ・プログラム。
【請求項１６】
前記テストからデータを受け取る、実行されたウエブ・アプリケーション入力を、前記ウエブ・アプリケーションの前記ブラックボックス走査の前記ランタイム解析を行うステップに応答して、前記複数のウエブ・アプリケーション入力から識別するステップ
を更にコンピュータに実行させることが可能な、請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するステップが更に、前記テストからデータを受取らなかった、実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの後続のブラックボックス走査により実行されるようにする、
請求項１６に記載のコンピュータ・プログラム。
【請求項１８】
前記複数のウエブ・アプリケーション入力のカバレッジの情報であって、実行される前記複数のウエブ・アプリケーション入力の割合、および実行されない前記複数のウエブ・アプリケーション入力の割合を含む前記情報を用意するステップ
を更にコンピュータに実行させることが可能な、請求項１７に記載のコンピュータ・プログラム。
【請求項１９】
前記複数のウエブ・アプリケーション入力の前記カバレッジの情報を用意するステップに応答して、フィードバック制御に前記情報をフォワードするステップを更に含み、
前記テストからのデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、かつ
前記フィードバック制御に前記情報をフォワードするステップに応答して、前記ブラックボックス走査を前記フィードバック制御でもって修正するように、
コンピュータに実行させることのできる、請求項１８に記載のコンピュータ・プログラム。
【請求項２０】
前記フィードバック制御がフィードバック制御ループであり、
前記テストからデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、前記フィードバック制御に前記情報をフォワードするのに応答して、前記ブラックボックス走査をランタイム中前記フィードバック制御でもって修正するように、
コンピュータに実行させることのできる、請求項１９に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は概略、コンピュータで実行される方法、データ処理システムおよびコンピュータ・プログラムに関する。より具体的には本発明は、先進ウエブ・アプリケーション・セキュリティ・テストのためのアプリケーション入力のカバレッジを測定するためのコンピュータで実行される方法、データ処理システムおよびコンピュータ・プログラムに関する。
【背景技術】
【０００２】
コード網羅率すなわちコード・カバレッジは、テスト手順中にソース・コードが及ぼしている度合いを記述するためのソフトウエア・テストで用いられる尺度である。コード・カバレッジの測定は、ソース・コードの知識が必要とされるホワイトボックス・テストの形態を取る。
【０００３】
典型的なホワイトボックス・コード・カバレッジの測定(measurements) はソフトウエア・エンジニアがプログラムの行ごとのプログラムの実行についてデータを得るのを許容する。それはまたソフトウエア・エンジニアが、プログラム変数に保持されているデータ値を行ごとに調べるのを許容することを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、典型的なホワイトボックス・コード・カバレッジ測定は、解析されたコードが大きくなりすぎるとき、あるいはソフトウエア・エンジニアがソース・コードの基礎的な知識を持たないとき、実際的でなくなる。ソース・コードの基礎的な知識がなければ、典型的にはソフトウエア・エンジニアがブラックボックス・テスト手順に頼らなければならない。ブラックボックス・テストはテストケースを引出すようテスト・オブジェクトの外部からの見地(external perspective)を取る。テスト・デザイナは有効な入力と無効な入力とを選択し、正しい出力を決定する。テスト・オブジェクトの内部構造の知識はない。即ち、ソフトウエア・エンジニアは正しい出力が与えられたか決定することのみをできる。ブラックボックス・テストでは、所与の出力でそのプログラムがどのようにして届けられたかについての直接的な知識をソフトウエア・エンジニアは持たない。
【０００５】
ブラックボックス・テストはアプリケーション入力にテストを送ることによって機能する。ホワイトボックス・テストがその仕様の導入していない部分を明らかにすることができるが、ソフトウエア・エンジニアはコードの全ての実在する経路がテストされるのを確認することはできない。
【課題を解決するための手段】
【０００６】
本発明の実施例によれば、コンピュータで実施される方法、データ処理システムおよびコンピュータが使用できるプログラム・コードを有するコンピュータが使用できる記録可能なタイプの媒体がブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタする。ウエブ・アプリケーションのブラックボックス走査が開始される。このブラックボックス走査がウエブ・アプリケーションの複数のウエブ・アプリケーション入力へのテストを送る。ランタイム解析はウエブ・アプリケーションのブラックボックス走査上で実行される。ブラックボックス走査のランタイム解析に基づいて、ブラックボックス走査が修正される。
【発明を実施するための形態】
【０００７】
当業者には理解されるように、本発明はシステム、方法、またはコンピュータ・プログラムとして実施されることができる。従って、本発明は完全にハードウエアの実施例、完全にソフトウエアの実施例（ファームウエア、常駐ソフトウエア、マイクロコード等を含む）、またはソフトウエアおよびハードウエアの側面を組み合わせた実施例といった形態をとることができる。そしてこれらはすべて一般的に「回路」、「モジュール」または「システム」とここで称することがある。更に、本発明は媒体に含まれるコンピュータ使用可能なプログラム・コードを有する表現よりなる、任意の有体物に取り込まれることも可能なコンピュータ・プログラムの形態をとることもできる。
【０００８】
１個以上のコンピュータ可用媒体もしくはコンピュータ可読媒体が使用されてもよい。コンピュータ可用媒体もしくはコンピュータ可読媒体は、例えば、以下に限定されるものではないが、電子的、磁気的、光学的、電磁気的、赤外線の、または半導体のシステム、装置、デバイス、または伝播媒体であってよい。コンピュータ可読媒体のもっと具体的な例（限定的なリスト）は、以下を含む。１本もしくはそれ以上のワイヤ、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、消去可能なプログラマブル読出し専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読出し専用メモリ（ＣＤＲＯＭ）、光ストレージ・デバイス、インターネットまたはイントラネットをサポートするものなどの伝送媒体、あるいは磁気ストレージ・デバイスを含む。コンピュータ可用媒体またはコンピュータ可読媒体というのは、プログラムがプリントされた用紙または他の適当な媒体であってよいことに留意されたい。例えば用紙または他の媒体の光学的な走査を介してプログラムが電子的に捕捉され、それからコンパイルされ、翻訳され、あるいは必要なら他の適当な態様で処理され、そしてコンピュータ・メモリにストアされ得るからである。この文書のコンテキストでは、コンピュータ可用媒体もしくはコンピュータ可読媒体というのは、命令実行システム、装置またはデバイスにより使用されもしくはそれと関係づけられるようなプログラムを含み、ストアし、通信し、伝播し、搬送することができるような任意の媒体であってよい。コンピュータ可用媒体は、それに含まれるコンピュータの使用可能なプログラム・コードとともにベースバンドにおいてもしくは搬送波の一部として伝播されるデータ信号を含んでいてもよい。コンピュータの使用可能なプログラム・コードは、以下に限定されるわけではないが、無線、有線、光ファイバー・ケーブル、ＲＦ（ラジオ周波数）などを含む任意の適当な媒体を用いて伝送されてもよい。
【０００９】
本発明の動作を実行するコンピュータ・プログラム・コードは、Ｊａｖａ（登録商標）、Ｓｍａｌｌｔａｌｋ（登録商標）、Ｃ＋＋などのオブジェクト指向プログラミング言語と、Ｃプログラミング言語もしくは類似のプログラミング言語など、従来からある手続きプログラミング言語を含む１個もしくはそれ以上の任意の組み合わせのプログラミング言語で書かれても良い。このプログラム・コードはユーザーのコンピュータ上で完全に実行されてもよいし、一部はユーザーのコンピュータで、スタンドアローンのソフトウエア・パッケージとして、あるいは一部はユーザーのコンピュータ上、かつ一部は遠隔のコンピュータ上で、というのでもよいし、遠隔のコンピュータまたはサーバー上で完全に実行されるのでもよい。後者のシナリオでは、遠隔のコンピュータがユーザーのコンピュータに任意の型のネットワーク、例えばローカル・エリア・ネットワーク（ＬＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）を介して接続されていてもよい。あるいは外部コンピュータ（例えば、インターネット・サービス・プロバイダを用いるインターネットを介して）その接続がなされていてもよい。
【００１０】
本発明は、本発明の実施例による方法、装置（システム）およびコンピュータ・プログラムのフローチャートの説明および／もしくはブロック図に沿って以下で説明される。フローチャートの説明および／もしくはブロック図の各ブロックおよびその複数のブロックの組み合わせコンピュータ・プログラム命令によって実施されることができることは理解されたい。
【００１１】
これらのコンピュータ・プログラム命令は、そのような命令がコンピュータもしくは他のプログラム可能なデータ処理装置を介して実行し、フローチャートおよび／もしくはブロック図の１個もしくは複数個のブロックで特定される機能ないし動作を実施するための手段を生じるというようなマシンを生じるため、汎用のコンピュータ、特定目的のコンピュータ、もしくは他のプログラム可能なデータ・プロセシング装置のプロセッサに提供されてもよい。これらのコンピュータ・プログラム命令はまたコンピュータ可読媒体にストアされていてもよく、これがコンピュータもしくは他のプログラム可能データ処理装置に特定の態様で、例えばコンピュータ可読媒体にストアされている命令がフローチャートおよび／もしくはブロック図の１個もしくは複数個の命令で特定される機能ないし動作を実施する命令手段を含む製品（an article ofmanufacture）を生じるような態様で機能するよう命令することができる。
【００１２】
コンピュータ・プログラム命令はまた、コンピュータもしくは他のプログラム可能なデータ処理装置上にロードされてもよく、これによって当該コンピュータもしくはプログラム可能な装置上で行われるべき一連の動作ステップが、コンピュータもしくは他のプログラム可能装置上で実行する命令がが、フローチャートおよび／もしくはブロック図の１個もしくは複数個のブロックで特定される機能ないし動作を実施するためのプロセスを提供するように コンピュータ実施プロセスを生じさせる。
【００１３】
ここで図面の、特に図１ないし図２に沿って説明すると、図示の実施例が導入され得るようなデータ処理環境の例示的な図が提供される。図１ないし２が例示的なものであり、異なる環境が導入され得るような環境に関して何らかの制限があることを主張したり暗示したりする意図がないことを認めて然るべきである。図示の環境に何らかの修正がなされてもよい。
【００１４】
図１は実施例が導入され得るデータ処理システムのネットワークを図式的に表わす図である。ネットワーク・データ処理システム１００は実施例が導入され得るコンピュータのネットワークである。ネットワーク・データ処理システム１００は、ネットワーク・データ処理システム１００内で一緒に結合されたコンピュータおよび装置の間に通信リンクを提供するのに使用される媒体であるネットワーク１０２を含む。ネットワーク１０２は有線、無線のリンク、または光ファイバー・ケーブルなどの接続を含むことができる。
【００１５】
図示の例では、サーバー１０４およびサーバー１０６がストレージ・ユニット１０８とともにネットワーク１０２に接続する。更にクライアント１１０、１１２および１１４がネットワーク１０２に接続する。クライアント１１０、１１２および１１４は、例えばパーソナル・コンピュータまたはネットワーク・コンピュータにであってもよい。図示の例では、サーバー１０４がクライアント１１０、１１２および１１４にブートファイルのようなデータ、オペレーティング・システム・イメージおよびアプリケーションを提供する。クライアント１１０、１１２および１１４は、この例ではサーバー１０４に対するクライアントである。ネットワーク・データ処理システム１００は追加のサーバー、クライアントおよび他の装置（図示せず）を含んでもよい。
【００１６】
ネットワーク・データ処理システム１００中に位置するプログラム・コードはコンピュータ記録可能ストレージ媒体上にストアされ、そしてデータ処理システムまたは他の装置に使用のためダウンロードされてもよい。例えば、サーバー１０４上のプログラム・コードはコンピュータ 記録可能ストレージ媒体にストアされ、クライアント１１０上での使用のためネットワーク１０２上のクライアント１１０にダウンロードされてもよい。
【００１７】
図示の例では、ネットワーク・データが、相互に通信するためのプロトコルのＴＣＰ／ＩＰ（Transmission ControlProtocol/Internet Protocol）プロトコル・スイートを用いるネットワークおよびゲートウエイの世界的な集合体を表すネットワーク１０２を備えたインターネットである。インターネットの中心にあるのは主要なノード相互間もしくはホスト・コンピュータ相互間の高速データ通信線の基幹回線であり、データおよびメッセージをルート付ける何千もの商業上の、政府関係、教育関係の、および他のコンピュータ ・システムを含む。勿論、ネットワーク・データ処理システム１００はまた、例えばイントラネット、ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）などの多数の異なるタイプのネットワークとして実装されてもよい。 図１は一例と考えられ、異なる図示の実施例のための限定とは考えられていない。
【００１８】
ここで図２に言及すると、データ処理システムが図解され、そこに実施例が説明されている。データ処理システム２００は図１のサーバー１０４やクライアント１１０など、コンピュータの一例であり、その中にコンピュータ可用プログラム・コードまたはそのプロセスを実装している命令がその説明の実施例のために置かれていてもよい。この実施例では、データ処理システム２００が通信ファブリック２０２を含み、これがプロセッサ・ユニット２０４、メモリ２０６、恒久ストレージ２０８、通信ユニット２１０、入出力（Ｉ／Ｏ）ユニット２１２及びディスプレイ２１４間の通信を提供する。
【００１９】
プロセッサ・ユニット２０４はメモリ２０６の中にロードされてもよいソフトウエアのための命令を実行する働きがある。プロセッサ・ユニット２０４は１個以上のプロセッサであってもよいし、特定の実装例次第でマルチプロセッサ・コアであってもよい。更に単一のチップ上に二次プロセッサを備えたメインプロセッサがある１個以上の異種プロセッサ・システムを用いてプロセッサ・ユニット２０４が実装されてもよい。他の実施例のように、プロセッサ・ユニット２０４が、同じタイプの複数のプロセッサを含む対称マルチプロセッサ・システムであってもよい。
【００２０】
メモリ２０６及び恒久ストレージ２０８がストレージ装置の例である。ストレージ装置は一時的および／もしくは恒久的に情報をストアすることのできる任意の一片のハードウエアである。メモリ２０６は、これらの例では、例えばランダム・アクセス・メモリまたは任意の他の適当な揮発性もしくは不揮発性のストレージ装置であってよい。恒久ストレージ２０８は特定の実装例に依存する様々な形態をとることができる。例えば、恒久ストレージ２０８は１個以上のコンポーネントもしくは装置を含んでもよい。例えば、恒久ストレージ２０８はハード・ドライブ、フラッシュ・メモリ、再書込み可能光ディスク、再書込み可能磁気テープ、あるいはそれらの何らかの組み合わせであってよい。恒久ストレージ２０８によって使用される媒体はまた取外し可能であってよい。例えば、恒久ストレージ２０８用に取外し可能ハード・ドライブが使用されてもよい。
【００２１】
通信ユニット２１０は、これらの例では、他のデータ処理装置との通信を提供する。これらの例では、通信ユニット２１０がネットワーク・インターフェース・カードである。通信ユニット２１０は物理的なもしくは無線の、あるいはその両方の通信リンクの使用を通じて通信を提供してもよい。
【００２２】
Ｉ／Ｏユニット２１２はデータ処理システム２００に接続される他の装置とのデータの入出力を許容する。例えば、Ｉ／Ｏユニット２１２はキーボード、マウスを介してのユーザー入力の接続を提供してもよい。更に、Ｉ／Ｏユニット２１２がプリンタへの出力を送信してもよい。ディスプレイ２１４はユーザーに情報を表示するための機構を提供する。
【００２３】
オペレーティング・システム及びアプリケーションまたはプログラムのための命令が恒久ストレージ２０８上にある。これらの命令はプロセッサ・ユニット２０４による実行のためメモリ２０６にロードされてもよい。異なる実施例のプロセッサが、プロセッサ・ユニット２０４によって行われてもよい。これはコンピュータに実装された命令を用いてであるが、その命令はメモリ２０６などのメモリに置かれていてもよい。これらの命令はプログラム・コード、コンピュータ 可用プログラム・コード、もしくはコンピュータ可読プログラム・コードと呼ばれ、プロセッサ・ユニット２０４中のプロセッサによって読み出され実行されることができる。異なる実施例におけるこのプログラム・コードは、メモリ２０６または恒久ストレージ２０８などの物理的もしくは有体のコンピュータ 可読媒体上で実施されてもよい。
【００２４】
プログラム・コード２１６は、選択的に取外し可能で、かつプロセッサ・ユニット２０４による実行のためにデータ処理システム２００上にロードされ、もしくは転送され得るというように機能的な態様でコンピュータ可読媒体２１８上に置かれる。プログラム・コード２１６およびコンピュータ可読媒体２１８はこれらの例ではコンピュータ・プログラム製品２２０を構成する。一例で、コンピュータ可読媒体２１８は、恒久ストレージ２０８の一部であるハード・ドライブのようなストレージ装置上にプログラム・コード２１６を転送するため恒久ストレージ２０８の一部であるドライブまたは他の装置中に挿入されもしくは設置される、光ディスクまたは磁気ディスクのような有形の形式であってもよい。有形の形式では、コンピュータ可読媒体２１８はまたハード・ドライブ、サム・ドライブ、またはデータ処理システム２００に接続されたフラッシュ・メモリのような恒久ストレージの形態をとってもよい。コンピュータ可読媒体２１８という有形の形式はまたコンピュータ 記録可能ストレージ媒体とも呼ばれる。幾つかの例ではコンピュータ可読媒体２１８が取外し可能ではない。
【００２５】
代わりに、プログラム・コード２１６はコンピュータ可読媒体２１８からデータ処理システム２００に転送されてもよいが、詳細には通信リンクを介して通信ユニット２１０に、および／もしくは接続部を介してＩ／Ｏユニット２１２にと転送されてもよい。その 通信リンクおよび／または接続部は実施例では物理的なものであったり、無線であったりする。コンピュータ可読媒体は、そのプログラム・コードを含む通信リンクもしくは無線伝送などの有形でない媒体の形式をとってもよい。
【００２６】
幾つかの実施例で、プログラム・コード２１６は、データ処理システム２００中で使用されるよう恒久ストレージ２０８に他の装置からもしくはデータ処理システムからネットワークを介してダウンロードされてもよい。例えば、サーバー・データ処理システム中のコンピュータ 可読ストレージ媒体にストアされるプログラム・コードはサーバーからデータ処理システム２００にネットワークを介してダウンロードされてもよい。プログラム・コード２１６を提供するデータ処理システムはサーバー・コンピュータ 、クライアント・コンピュータ、またはプログラム・コード２１６をストアし転送することのできる幾つかの他の装置であってよい。
【００２７】
データ処理システム２００用として図示された異なるコンポーネントは、異なる実施例が実装されてもよい態様にアーキテクチャ的な限定を与えることを意味しない。この異なる図示の実施例はデータ処理システム２００のために説明されたものに加えたコンポーネントまたはその代わりのコンポーネントを含むデータ処理システムにおいて実装されてもよい。図２に示される他のコンポーネントは図示のものとは異なるものであってもよい。
【００２８】
この異なる実施例はプログラム・コードを実行することのできる任意のハードウエア装置もしくはシステムを用いて実装されてもよい。一例として、データ処理システムは、有機のコンポーネントと統合された無機のコンポーネントを含んでもよいし、あるいは人間を除く有機のコンポーネントから完全になるものであってもよい。例えば、ストレージ装置は有機の半導体からなっていてもよい。
【００２９】
他の例として、データ処理システム２００中のストレージ装置はデータをストアすることができる任意のハードウエア装置である。メモリ２０６、恒久ストレージ２０８、およびコンピュータ可読媒体２１８は有形の形式でのストレージ装置の例である。
【００３０】
他の例では、バス・システムが通信ファブリック２０２を実装するのに使用されてもよく、またシステム・バスまたは入出力バスなど、１個以上のバスよりなっていてもよい。もちろん、そのバス・システムは、そのバス・システムに取り付けられた異なるコンポーネントもしくは装置相互間のデータを転送するために提供された適当なタイプのアーキテクチャを用いて実装されていてもよい。更に、通信ユニットは、モデムまたはネットワーク・アダプタなどのデータを転送し受け取るのに使用される１個以上の装置を含んでもよい。更にメモリは、例えば、通信ファブリック２０２にあってもよいメモリ・コントローラ・ハブおよびインターフェースに見出されるようなキャッシュまたはメモリ２０６であってもよい。
【００３１】
ここで説明する実施例は、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査を改良するために、ランタイム解析から情報を集めるようコンピュータで実施する方法、コンピュータ ・プログラムおよびデータ処理システムである。セキュリティの観点から興味深いと考えられるコード上での生のコード・カバレッジの計測を用いる代わりに、説明の実施例はアプリケーションへのどの入力がブラックボックス走査の過程中実行されるかを決定するためランタイム解析を用いる。
【００３２】
ブラックボックス・ウエブ・アプリケーション・セキュリティ・テスト中にそのテストの過程でアプリケーション入力が実行されるか、されないかについての情報が収集される。この情報はブラックボックス走査を改良し精緻化するのに有益である。アプリケーション入力にテストを送ることによってブラックボックス・テストが機能する。従って、アプリケーション入力がテスト過程中実行されなかったことについての情報が直接に実行可能である。アプリケーション入力がテストを受けない筈であることが既知であるとき、実行される入力ブラックボックス走査構成が、実行される入力としてのそのアプリケーション入力を含むために精緻化することができる。反復される走査およびフィードバックを通じて、そのブラックボックス走査がウエブ・アプリケーションの複数のアプリケーション入力のそれぞれをカバーするように最適化されることができる。フィードバック制御は、従って最適に構成されたブラックボックス・ウエブ・アプリケーション・セキュリティ走査を有効にする。最適のブラックボックス走査をフィードバック制御なしに構成化することは行きあたりばったりであり、完全なコード・カバレッジを生じるとは考えにくい。
【００３３】
コンピュータ で使用することができプログラム・コードを有する、コンピュータ で実施される方法、データ処理システムおよびコンピュータを使用することのできる記録可能なタイプの媒体が、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタする。ウエブ・アプリケーションのブラックボックス走査が開始される。テストを送るブラックボックス走査がウエブ・アプリケーションの複数のウエブ・アプリケーション入力に送られる。ランタイム解析がウエブ・アプリケーションのブラックボックス走査上で行なわれる。ブラックボックス走査のランタイム解析に基づき、ブラックボックス走査が修正される。
【００３４】
ここで図３に言及すると、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査のランタイム解析のデータ・フロー図が実施例に従って示されている。データ処理システム３１０は図１のクライアント１１０、１１２および１１４のうちの一つのようなデータ処理システムである。ウエブ・サーバー３１２は、図１のサーバー１０４およびサーバー１０６のうちの一つのようなサーバーである。
【００３５】
一実施例では、データ処理システム３１０及びウエブ・サーバー３１２は一つのデータ処理システムであり得る。そのような実施例で、データ処理システム３１０上に示されるコンポーネントならびにウエブ・サーバー３１２上に示されるコンポーネントは全て一つのデータ処理システム上に実装されていてもよい。
【００３６】
データ処理システム３１０はウエブ・サーバー３１２からウエブ・アプリケーション３１４をアクセスする。ウエブ・アプリケーション３１４は、以下に限定されるわけではないがハイパーテキスト・マークアップ言語、ＪａｖａＳｃｒｉｐｔおよびＪａｖａのような、ブラウザーによりサポートされる言語においてコード化される。ウエブ・アプリケーション３１４はウエブ・サーバー３１２上の情報のためにユーザーによりハイパーテキスト・マークアップ言語を呼び出す簡単な対話式ウエブ・ページであってよい。
【００３７】
データ処理システム３１０はブラックボックス走査器３１８を含む。ブラックボックス走査器３１８はウエブ・アプリケーション３１４のブラックボックス・セキュリティ走査を行うことのできるソフトウエア・アプリケーションである。一実施例では、ブラックボックス走査器３１８は市販されているブラックボックス・ウエブ・アプリケーション走査器、例えば、以下に限定されないが、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手できる「Ｒａｔｉｏｎａｌ  ＡｐｐＳｃａｎ 」であり得る。「Ｒａｔｉｏｎａｌ」および「ＡｐｐＳｃａｎ」はともにインターナショナル・ビジネス・マシーンズ・コーポレーションの米国の登録商標である。
【００３８】
ブラックボックス走査器３１８は、ウエブ・アプリケーション３１４を横断して共通のセキュリティ問題、例えばクロスサイト・スクリプティング、ＳＱＬインジェクション（構造化問い合わせ（クエリ）言語注入）、ディレクトリ横断、間違い構成、遠隔コマンド実行脆弱性、および可能なセキュリティ問題などをチェックする。ブラックボックス走査器３１８はウエブ・アプリケーション３１４における脆弱性を識別するためにウエブ・アプリケーション３１４を組織的に這いまわり、そこからの出力を構文解析する。
【００３９】
データ処理システムは更にランタイム・アナライザ３２０を含む。ランタイム・アナライザ３２０は別個に実行するアプリケーション上でランタイム解析を行うことのできるソフトウエア・アプリケーションである。 一実施例では、ランタイム・アナライザ３２０は、例えばインターナショナル・ビジネス・マシーンズ・コーポレーションから入手できるがこれに限定されるものでない「Ｒａｔｉｏｎａｌ  ＰｕｒｅＣｏｖｅｒａｇｅ」など、市販されているランタイム解析ソフトウエア・アプリケーション、あるいはエクリプス・コーポレーションから入手できるがこれに限定されるものでない「Ｅｃｌｉｐｓｅ  Ｔｅｓｔ  ａｎｄ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｔｏｏｌｓ  Ｐｌａｔｆｏｒｍａｎｃｅ」など、自由に配布されているランタイム解析ソフトウエア・アプリケーションであってもよい。
【００４０】
ランタイム・アナライザ３２０はウエブ・アプリケーション３１４の実行をモニタする。一実施例では、ランタイム・アナライザ３２０はウエブ・アプリケーション３１４への全ての潜在的入力をモニタする。ブラックボックス走査器３１８がウエブ・アプリケーション３１４のブラックボックス・テストを行っている間、ランタイム・アナライザ３２０はこれらのウエブ・アプリケーション入力のうちのどれが、到来するデータを受け取ることにより実行されたか、どれが実行されなかったかを決定するためにウエブ・アプリケーション３１４の様々な入力をモニタする。
【００４１】
ブラックボックス走査器３１８がウエブ・アプリケーション３１４のテストを実行し終えたとき、ランタイム・アナライザ３２０がウエブ・アプリケーション入力のカバレッジ（網羅率）についての情報を用意する。ランタイム・アナライザ３２０は、実行された全てのアプリケーション入力の割合といった情報を提供し、実行されなかったアプリケーション入力のリストが提供される。ランタイム・アナライザ３２０はまた、独特のフェーズにおいてというよりもむしろ、連続したフィードバック・ループにおけるブラックボックス走査の過程でウエブ・アプリケーション３１４のカバレッジについての情報を用意することができた。
【００４２】
ランタイム・アナライザ３２０により提供される情報がフィードバック制御３２２中への入力となる。フィードバック制御３２２はブラックボックス走査器３１８によるテスト・ランを精緻化するソフトウエア・プロセスである。フィードバック制御３２２はブラックボックス走査のその後のランが、ウエブ・アプリケーション３１４の実行されなかったアプリケーション入力をカバーするようにブラックボックス走査を精緻化する。即ち、ブラックボックス走査器３１８によるテストの第一のランは 、アプリケーション入力の全体の不完全なテストによる不完全なコード・カバレッジになりがちである。フィードバック制御３２２はブラックボックス走査器３１８により行われるブラックボックス走査を、そのブラックボックス走査の後続のランが以前の実行されなかったアプリケーション入力をカバーするように修正する。
【００４３】
反復される走査およびフィードバックを通して、ブラックボックス走査がウエブ・アプリケーション３１４の各アプリケーション入力をカバーするように最適化されることができる。フィードバック制御３２２は従って最適に構成化されたブラックボックス・ウエブ・アプリケーション・セキュリティ走査を可能にする。フィードバック制御３２２なしに最適のブラックボックス走査を構成化するのは行きあたりばったりであり、完全なコード・カバレッジを生じそうもない。
【００４４】
ここで図４に言及すると、ウエブ・アプリケーションのブラックボックス・セキュリティ走査を提供するフローチャートが、図示の実施例に従って示される。プロセス４００はソフトウエア・プロセスであり、図３の３１８のようなソフトウエア・コンポーネントを実行する。
【００４５】
プロセス４００はウエブ・アプリケーションを横断することによって開始する（ステップ４１０）。このウエブ・アプリケーションは図４のウエブ・サーバー３１４であり得る。プロセス４００は、以下に限定するものではないが、例えばクロスサイト・スクリプティング、ＳＱＬインジェクション（構造化問い合わせ（クエリ）言語注入）、ディレクトリ横断、間違い構成、および遠隔コマンド実行脆弱性など共通のセキュリティ問題をチェックするようにウエブ・アプリケーションを横断する。
【００４６】
プロセス４００はテストを発生し、ウエブ・アプリケーションに送る（ステップ４２０）。ウエブ・アプリケーションに送られるテストはウエブ・アプリケーションにおける共通の脆弱性に基づくエラーを論理的に導き出すようなテストであり得る。そのようなテストは、以下に限定するものではないが、例えばクロスサイト・スクリプティング、ＳＱＬインジェクション、ディレクトリ横断、間違い構成、および遠隔コマンド実行脆弱性を含むことができる。ブラックボックス走査中、プロセス４００はウエブ・アプリケーションを系統的に這いまわり、テストをそのアプリケーションに送り、そこからの出力を構文解析して、ウエブ・アプリケーションにおける脆弱性を識別する。
【００４７】
テストを発生し、ウエブ・アプリケーションに送るのに応答して、プロセス４００は、可能性のある脆弱性を識別するためにウエブ・アプリケーション応答を処理する（ステップ４３０）。ウエブ・アプリケーション応答はそのウエブ・アプリケーションに送られるテストに応答して遭遇する何らかのエラー・メッセージを含んでもよい。可能性のある脆弱性は、ウエブ・アプリケーションによる疑わしい出力から識別されることができる。例えば、もしＪａｖａスクリプト・コードがテスト中のアプリケーションに送られるなら、そしてその後そのウエブ・アプリケーションからの応答において同じＪａｖａスクリプト・コードが戻されるなら、クロスサイト・スクリプティング脆弱性が恐らくは存在する。
【００４８】
プロセス４００はそれから青の可能性のある脆弱性のレポートを発生し（ステップ４４０）、その後そのプロセスを終了する。ソフトウエア・エンジニアはそのウエブ・アプリケーション中の疑われた脆弱性を尋ね当てるためそのログ・ファイル中のその構文解析された疑わしい出力を使用することができる。
【００４９】
ここで図５に言及すると、これには実行しているウエブ・アプリケーションのランタイム解析を提供するフローチャートが、図示の実施例に従って示されている。プロセス５００はソフトウエア・プロセスであり、図３のランタイム・アナライザ３２０のようなソフトウエア・コンポーネント上で実行する。
【００５０】
プロセス５００はブラックボックス・セキュリティ走査中のウエブ・アプリケーション入力をモニタすることから開始する（ステップ５１０）。プロセス５００はウエブ・アプリケーションのランタイム中のウエブ・アプリケーションへの全ての潜在的な入力をモニタする。図４に示すブラックボックス走査器３１８のようにブラックボックス走査器がウエブ・アプリケーションのブラックボックス・テストをランしている間、プロセス５００はこれらのウエブ・アプリケーションへの様々な入力をモニタする。これはこれらのウエブ・アプリケーション入力のうちどれが、到来するデータの受け取りによって実行されたのか、そしてどれが実行されなかったのかを決定するためである。
【００５１】
それからプロセス５００は、実行されなかったウエブ・アプリケーション入力、およびブラックボックス走査のコード・カバレッジを識別する（ステップ５２０）。セキュリティの観点から興味深いと思われるコード上の生のコード・カバレッジの計測を用いる代わりに、プロセス５００のランタイム解析がブラックボックス走査の過程中にどのウエブ・アプリケーション入力が実行されるかを識別する。そこでそのウエブ・アプリケーションへの各々の可能性のある入力が既知であるとき、ブラックボックス走査の過程で実行されないウエブ・アプリケーション入力を迅速に識別することができる。
【００５２】
そこでプロセス５００はブラックボックス走査を更新するためにフィードバック制御への少なくともその実行されなかったアプリケーション入力をフォワードし（ステップ５３０）その後そのプロセスを終了する。このフィードバック制御は図３のフィードバック制御３２２であり得る。ブラックボックス走査器によるテストのうちの１回目のランは、アプリケーション入力の全体の不完全なテストにより、不完全なコード・カバレッジという結果になりがちである。実行されなかったアプリケーション入力の反復される走査およびフィードバックを通じて、そのブラックボックス走査はウエブ・アプリケーションの各アプリケーション入力をカバーするように最適化されることができる。フィードバック制御なしの最適ブラックボックス走査を構成するのは行きあたりばったりであり、完全なコード・カバレッジを生じるとは考えられない。
【００５３】
第６図に言及すると、図示の実施例に従って、実行しているウエブ・アプリケーションのランタイム解析フィードバックに基づくブラックボックス走査を更新するフローチャートが示されている。プロセス６００はソフトウエア・プロセスであり、図３のフィードバック制御３２２のようなソフトウエア・コンポーネント上で実行する。
【００５４】
プロセス６００はブラックボックス走査を更新するために、実行されないアプリケーション入力を受取ることによって開始する（ステップ６１０）。ブラックボックス走査器によるテストの１回目のランはアプリケーション入力の全体の不完全なテストにより不完全なコード・カバレッジという結果になりがちである。その実行されないアプリケーション入力の反復される走査およびフィードバックを通じて、そのブラックボックス走査はウエブ・アプリケーションの各アプリケーション入力をカバーするように最適化されることができる。フィードバック制御なしの最適化ブラックボックス走査を構成するのは行きあたりばったりであり、完全なコード・カバレッジを生じるとは考えられない。実行されないアプリケーション入力はブラックボックス・テストを受けて来なかったウエブ・アプリケーション・コードのセクションを示す。
【００５５】
実行されないアプリケーション入力を受取るのに応答して、プロセス６００はその実行されないアプリケーション入力がそのブラックボックス走査の後続のランにおいてそのブラックボックス走査器からのテスト入力を受取るようブラックボックス走査を再構成し（ステップ６２０）、その後そのプロセスが終了する。プロセス６００は、そのブラックボックス走査の後続のランがそれ以前の実行されなかったアプリケーション入力をカバーするように、ブラックボックス走査器により行われるブラックボックス走査を修正する。反復される走査およびフィードバックを通じて、ブラックボックス走査がウエブ・アプリケーションの各アプリケーション入力をカバーするように最適化されることができる。従って、プロセス６００は最適に構成化されたブラックボックス・ウエブ・アプリケーション・セキュリティ走査を有効にする。
【００５６】
ここで説明する実施例は、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査を改良するために、ランタイム解析から意味のある情報を集めるようコンピュータで実施する方法、コンピュータ ・プログラムおよびデータ処理システムである。セキュリティの観点から興味深いと考えられるコード上での生のコード・カバレッジの計測を用いる代わりに、説明の実施例はアプリケーションへのどの入力がブラックボックス走査の過程中実行されるかを決定するためにランタイム解析を用いる。
【００５７】
ブラックボックス・ウエブ・アプリケーション・セキュリティ・テストの過程中、アプリケーション入力が実行されること、および実行されないことについての情報はブラックボックス走査を精緻化し改良するために、はるかに有益である。テストをアプリケーション入力に送ることによってブラックボックス・テストが機能する。従って、テスト過程中に実行されなかったアプリケーション入力についての情報は直接実行可能である。アプリケーション入力がテストを受けない予定であるということが既知であれば、実行された入力としてそのアプリケーション入力を含めるためにブラックボックス走査構成が精緻化されることができる。
【００５８】
このように本発明の実施例は、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタするようコンピュータが使用できるプログラム・コードを有する、コンピュータが使用できる記録可能なタイプの媒体、コンピュータで実施される方法、ならびにデータ処理システムを提供する。ウエブ・アプリケーションのブラックボックス走査が開始される。テストを送るこのブラックボックス走査がウエブ・アプリケーションの複数のウエブ・アプリケーション入力に送られる。ランタイム解析はウエブ・アプリケーションのブラックボックス走査上で実行される。ブラックボックス走査のランタイム解析に基づいて、ブラックボックス走査が修正される。
【００５９】
反復される走査およびフィードバックを通じて、ブラックボックス走査はウエブ・アプリケーションの各アプリケーション入力をカバーするように最適化されることができる。従ってフィードバック制御は最適に構成化されたブラックボックス・ウエブ・アプリケーション・セキュリティ走査を有効にする。フィードバック制御なしに最適のブラックボックス走査を構成するのは行きあたりばったりであり、完全なコード・カバレッジを生じるとは考えられない。
【００６０】
図のフローチャートおよびブロック図は、本発明のいろいろな実施例に従うシステム、方法およびコンピュータ・プログラムの可能な導入例のアーキテクチャ、機能および動作を説明している。この点で、フローチャートまたはブロック図が、モジュール、セグメント、または特定の論理機能を実装するための１個以上の実行可能命令を含むコードの部分を表してもよい。代替実施例ではそのブロックに示された機能が、図に示された順序から外れて生じてもよいことに留意されたい。例えば、連続して示されている２個のブロックが、そこに含まれる機能によっては、実際はほぼ同時に実行されたり、それらのブロックがときには逆の順序で実行されたりする。ブロック図および／もしくはフローチャートの説明の各ブロック、およびブロック図および／もしくはフローチャートの説明のブロックの組み合わせが、特定目的のハードウエアおよびコンピュータ 命令の機能もしくは動作またはその組み合わせを実行する特定目的のハードウエアをベースにするシステムによって実装され得ることにも留意されたい。
【００６１】
ここで使用される用語は特定の実施例のみを説明するためであり、本発明を限定する意図はない。ここで用いられるように、特にコンテキストが他のことを明確に示していない限り、単数形は複数形も含む。更に、「含む」という用語はこの明細書で用いられるとき、記述された特徴、整数、ステップ、動作、要素および／もしくはコンポーネントを特定し、１個以上の他の特徴、整数、ステップ、動作、要素、コンポーネントおよび／もしくはそのグループの存在ないし付加を除外しないことを理解されたい。
【００６２】
特許請求の範囲における全てのミーンズ（手段）・プラス・ファンクションまたはステップ・プラス・ファンクションの要素の対応する構造、材料、動作または等価物は、具体的に請求したような他の請求の要素と組み合わされた機能を実行するための任意の構造、材料または動作を含むことを意図している。本発明の記述は説明および記述のために提供されているが、開示した形態での発明に限定される意図はない。本発明の趣旨及び精神から離れずに、当業者には多くの修正例や変形例が明らかである。ここでの実施例は本発明の原理をもっともよく説明するために選択され記述されたものであり、他の当業者が特定の使用目的に合ったいろいろな修正を加えたいろいろな実施例を理解するのを容易にしている。
【００６３】
本発明は完全にハードウエアの実施例、完全にソフトウエアの実施例、あるいはハードウエアおよびソフトウエアの要素を組み合わせた実施例といった形態をとることができる。好適な実施例では、本発明は、以下に限定されるものではないが、ファームウエア、常駐ソフトウエア、マイクロコードなどを含むソフトウエアで実施される。
【００６４】
また本発明は、コンピュータまたは任意の命令実行システムにより、またはそれに関連して使用されるプログラム・コードを提供する、コンピュータ可用媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形態をとることができる。この説明の目的上、コンピュータ可用媒体またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスにより、またはそれに関連して使用されるプログラムを含み、ストアし、通信し、伝播し、あるいは移送することができる任意の有形の装置であってよい。
【００６５】
この媒体は、電子的、磁気的、光学的、電磁的、赤外線の、もしくは半導体のシステム（もしくは装置、デバイス）或いは伝送媒体であってよい。コンピュータ可読媒体の例は半導体もしくは固体素子のメモリ、磁気テープ、取り外し可能なフレキシブル・ディスク、ランダム・アクセス・メモリ（ＲＡＭ）、読出し専用メモリ（ＲＯＭ）、磁気ハードディスクおよび光ディスクを含む。今日の光ディスクの例は、ＣＤ−ＲＯＭ（コンパクト・ディスク読出し専用メモリ）、ＣＤ−Ｒ／Ｗ（コンパクト・ディスク読出し書込み）およびＤＶＤを含む。
【００６６】
プログラム・コードをストアしたり、実行したりするのに適するデータ処理システムは、メモリ素子にシステム・バスを介して直接的または間接的に結合された少なくとも一個のプロセッサを含む。メモリ素子は、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量ストレージ、ならびに少なくとも幾つかのプログラム・コードの一時的なストレージを提供するキャッシュ・メモリを含むことができる。そのキャッシュ・メモリは実行中にコードを大容量ストレージから何回も取り出す必要性を少なくするためのものである。
【００６７】
入出力装置即ちＩ／Ｏ装置（以下に制限されるものではないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む）をこのシステムに直接的にあるいはＩ／Ｏコントローラを介して結合することができる。
【００６８】
ネットワーク・アダプタはまた、他のデータ処理システム、遠隔のプリンタ、ストレージ装置などに私的なまたは公的なネットワークを介して結合することができるようにこのシステムに結合されてもよい。モデム、ケーブル・モデムおよびＥｔｈｅｒｎｅｔカードが、現在利用できる型のネットワーク・アダプタのほんの一例である。
【００６９】
本発明の記述は説明目的で行われたものであり、ここに開示した特定の形態に本発明を制限する意図はない。多くの修正例や変形例が当業者には容易に考えられるであろう。実施例は本発明の原理、実用的な応用例をもっとも良く示すために選んで記述した。これはまたこの分野の他の当業者が特定の使用目的に合わせていろいろな修正を加えたいろいろな実施例を理解できるようにするためである。
【図面の簡単な説明】
【００７０】
【図１】ある実施態様が導入されたデータ処理システムのネットワークの図式的表示である。
【図２】実施態様が実施されるデータ処理システムのブロック図である。
【図３】ある実施態様によるブラックボックスのウエブ・アプリケーション・セキュリティ走査のランタイム解析のデータ・フローチャートである。
【図４】ある実施態様によるウエブ・アプリケーションのブラックボックス・セキュリティ走査を提供するフローチャートである。
【図５】実行するウエブ・アプリケーションのランタイム解析を提供するためのフローチャートを或る実施態様に従って示す。
【図６】或る実施例に従って実行するウエブ・アプリケーションのランタイム解析フィードバックに基づいてブラックボックス走査を更新するためのフローチャートである。
【符号の説明】
【００７１】
１００  ネットワーク・データ処理システム
１０２  ネットワーク
１０４、１０６  サーバー
１０８  ストレージ・ユニット
１１０、１１２、１１４  クライアント
２００  データ処理システム
２０２  通信ファブリック
２０４  プロセッサ・ユニット
２０６  メモリ
２０８  恒久ストレージ
２１０  通信ユニット
２１２  Ｉ／Ｏユニット
２１４  ディスプレイ
２１６  プログラム・コード
２１８  コンピュータ可読媒体
２２０  コンピュータ・プログラム製品
３１０  データ処理システム
３１２  ウエブ・サーバー
３１４  ウエブ・アプリケーション
３１８  ブラックボックス走査器
３２０  ランタイム・アナライザ
３２２  フィードバック制御
【図１】
2010157211.tif 000003
【図２】
2010157211.tif 000004
【図３】
2010157211.tif 000005
【図４】
2010157211.tif 000006
【図５】
2010157211.tif 000007
【図６】
2010157211.tif 000008