説明

ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタするデータ処理システム、方法、およびコンピュータ・プログラム

【課題】コンピュータ実装方法、データ処理システム、およびコンピュータ使用可能なプログラム・コードにブラック・ボックス・ウェッブ・アプリケーション・セキュリティ走査をモニタさせるコンピュータ使用可能な記録可能型の媒体が提供される。
【解決手段】ウェッブ・アプリケーションのブラック・ボックス走査が開始される。ブラック・ボックス走査がウェッブ・アプリケーションの複数のウェッブ・アプリケーション入力にテストが送られるようにする。ランタイム解析がウェッブ・アプリケーションのブラック・ボックス走査の際に行われる。ブラック・ボックス走査のランタイム解析に基づいて、ブラック・ボックス走査が修正される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は概略、コンピュータで実行される方法、データ処理システムおよびコンピュータ・プログラムに関する。より具体的には本発明は、先進ウエブ・アプリケーション・セキュリティ・テストのためのアプリケーション入力のカバレッジを測定するためのコンピュータで実行される方法、データ処理システムおよびコンピュータ・プログラムに関する。
【背景技術】
【0002】
コード網羅率すなわちコード・カバレッジは、テスト手順中にソース・コードが及ぼしている度合いを記述するためのソフトウエア・テストで用いられる尺度である。コード・カバレッジの測定は、ソース・コードの知識が必要とされるホワイトボックス・テストの形態を取る。
【0003】
典型的なホワイトボックス・コード・カバレッジの測定(measurements) はソフトウエア・エンジニアがプログラムの行ごとのプログラムの実行についてデータを得るのを許容する。それはまたソフトウエア・エンジニアが、プログラム変数に保持されているデータ値を行ごとに調べるのを許容することを可能にする。
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、典型的なホワイトボックス・コード・カバレッジ測定は、解析されたコードが大きくなりすぎるとき、あるいはソフトウエア・エンジニアがソース・コードの基礎的な知識を持たないとき、実際的でなくなる。ソース・コードの基礎的な知識がなければ、典型的にはソフトウエア・エンジニアがブラックボックス・テスト手順に頼らなければならない。ブラックボックス・テストはテストケースを引出すようテスト・オブジェクトの外部からの見地(external perspective)を取る。テスト・デザイナは有効な入力と無効な入力とを選択し、正しい出力を決定する。テスト・オブジェクトの内部構造の知識はない。即ち、ソフトウエア・エンジニアは正しい出力が与えられたか決定することのみをできる。ブラックボックス・テストでは、所与の出力でそのプログラムがどのようにして届けられたかについての直接的な知識をソフトウエア・エンジニアは持たない。
【0005】
ブラックボックス・テストはアプリケーション入力にテストを送ることによって機能する。ホワイトボックス・テストがその仕様の導入していない部分を明らかにすることができるが、ソフトウエア・エンジニアはコードの全ての実在する経路がテストされるのを確認することはできない。
【課題を解決するための手段】
【0006】
本発明の実施例によれば、コンピュータで実施される方法、データ処理システムおよびコンピュータが使用できるプログラム・コードを有するコンピュータが使用できる記録可能なタイプの媒体がブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタする。ウエブ・アプリケーションのブラックボックス走査が開始される。このブラックボックス走査がウエブ・アプリケーションの複数のウエブ・アプリケーション入力へのテストを送る。ランタイム解析はウエブ・アプリケーションのブラックボックス走査上で実行される。ブラックボックス走査のランタイム解析に基づいて、ブラックボックス走査が修正される。
【発明を実施するための形態】
【0007】
当業者には理解されるように、本発明はシステム、方法、またはコンピュータ・プログラムとして実施されることができる。従って、本発明は完全にハードウエアの実施例、完全にソフトウエアの実施例(ファームウエア、常駐ソフトウエア、マイクロコード等を含む)、またはソフトウエアおよびハードウエアの側面を組み合わせた実施例といった形態をとることができる。そしてこれらはすべて一般的に「回路」、「モジュール」または「システム」とここで称することがある。更に、本発明は媒体に含まれるコンピュータ使用可能なプログラム・コードを有する表現よりなる、任意の有体物に取り込まれることも可能なコンピュータ・プログラムの形態をとることもできる。
【0008】
1個以上のコンピュータ可用媒体もしくはコンピュータ可読媒体が使用されてもよい。コンピュータ可用媒体もしくはコンピュータ可読媒体は、例えば、以下に限定されるものではないが、電子的、磁気的、光学的、電磁気的、赤外線の、または半導体のシステム、装置、デバイス、または伝播媒体であってよい。コンピュータ可読媒体のもっと具体的な例(限定的なリスト)は、以下を含む。1本もしくはそれ以上のワイヤ、ポータブル・コンピュータ・ディスケット、ハードディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、消去可能なプログラマブル読出し専用メモリ(EPROMまたはフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読出し専用メモリ(CDROM)、光ストレージ・デバイス、インターネットまたはイントラネットをサポートするものなどの伝送媒体、あるいは磁気ストレージ・デバイスを含む。コンピュータ可用媒体またはコンピュータ可読媒体というのは、プログラムがプリントされた用紙または他の適当な媒体であってよいことに留意されたい。例えば用紙または他の媒体の光学的な走査を介してプログラムが電子的に捕捉され、それからコンパイルされ、翻訳され、あるいは必要なら他の適当な態様で処理され、そしてコンピュータ・メモリにストアされ得るからである。この文書のコンテキストでは、コンピュータ可用媒体もしくはコンピュータ可読媒体というのは、命令実行システム、装置またはデバイスにより使用されもしくはそれと関係づけられるようなプログラムを含み、ストアし、通信し、伝播し、搬送することができるような任意の媒体であってよい。コンピュータ可用媒体は、それに含まれるコンピュータの使用可能なプログラム・コードとともにベースバンドにおいてもしくは搬送波の一部として伝播されるデータ信号を含んでいてもよい。コンピュータの使用可能なプログラム・コードは、以下に限定されるわけではないが、無線、有線、光ファイバー・ケーブル、RF(ラジオ周波数)などを含む任意の適当な媒体を用いて伝送されてもよい。
【0009】
本発明の動作を実行するコンピュータ・プログラム・コードは、Java(登録商標)、Smalltalk(登録商標)、C++などのオブジェクト指向プログラミング言語と、Cプログラミング言語もしくは類似のプログラミング言語など、従来からある手続きプログラミング言語を含む1個もしくはそれ以上の任意の組み合わせのプログラミング言語で書かれても良い。このプログラム・コードはユーザーのコンピュータ上で完全に実行されてもよいし、一部はユーザーのコンピュータで、スタンドアローンのソフトウエア・パッケージとして、あるいは一部はユーザーのコンピュータ上、かつ一部は遠隔のコンピュータ上で、というのでもよいし、遠隔のコンピュータまたはサーバー上で完全に実行されるのでもよい。後者のシナリオでは、遠隔のコンピュータがユーザーのコンピュータに任意の型のネットワーク、例えばローカル・エリア・ネットワーク(LAN)、ワイド・エリア・ネットワーク(WAN)を介して接続されていてもよい。あるいは外部コンピュータ(例えば、インターネット・サービス・プロバイダを用いるインターネットを介して)その接続がなされていてもよい。
【0010】
本発明は、本発明の実施例による方法、装置(システム)およびコンピュータ・プログラムのフローチャートの説明および/もしくはブロック図に沿って以下で説明される。フローチャートの説明および/もしくはブロック図の各ブロックおよびその複数のブロックの組み合わせコンピュータ・プログラム命令によって実施されることができることは理解されたい。
【0011】
これらのコンピュータ・プログラム命令は、そのような命令がコンピュータもしくは他のプログラム可能なデータ処理装置を介して実行し、フローチャートおよび/もしくはブロック図の1個もしくは複数個のブロックで特定される機能ないし動作を実施するための手段を生じるというようなマシンを生じるため、汎用のコンピュータ、特定目的のコンピュータ、もしくは他のプログラム可能なデータ・プロセシング装置のプロセッサに提供されてもよい。これらのコンピュータ・プログラム命令はまたコンピュータ可読媒体にストアされていてもよく、これがコンピュータもしくは他のプログラム可能データ処理装置に特定の態様で、例えばコンピュータ可読媒体にストアされている命令がフローチャートおよび/もしくはブロック図の1個もしくは複数個の命令で特定される機能ないし動作を実施する命令手段を含む製品(an article ofmanufacture)を生じるような態様で機能するよう命令することができる。
【0012】
コンピュータ・プログラム命令はまた、コンピュータもしくは他のプログラム可能なデータ処理装置上にロードされてもよく、これによって当該コンピュータもしくはプログラム可能な装置上で行われるべき一連の動作ステップが、コンピュータもしくは他のプログラム可能装置上で実行する命令がが、フローチャートおよび/もしくはブロック図の1個もしくは複数個のブロックで特定される機能ないし動作を実施するためのプロセスを提供するように コンピュータ実施プロセスを生じさせる。
【0013】
ここで図面の、特に図1ないし図2に沿って説明すると、図示の実施例が導入され得るようなデータ処理環境の例示的な図が提供される。図1ないし2が例示的なものであり、異なる環境が導入され得るような環境に関して何らかの制限があることを主張したり暗示したりする意図がないことを認めて然るべきである。図示の環境に何らかの修正がなされてもよい。
【0014】
図1は実施例が導入され得るデータ処理システムのネットワークを図式的に表わす図である。ネットワーク・データ処理システム100は実施例が導入され得るコンピュータのネットワークである。ネットワーク・データ処理システム100は、ネットワーク・データ処理システム100内で一緒に結合されたコンピュータおよび装置の間に通信リンクを提供するのに使用される媒体であるネットワーク102を含む。ネットワーク102は有線、無線のリンク、または光ファイバー・ケーブルなどの接続を含むことができる。
【0015】
図示の例では、サーバー104およびサーバー106がストレージ・ユニット108とともにネットワーク102に接続する。更にクライアント110、112および114がネットワーク102に接続する。クライアント110、112および114は、例えばパーソナル・コンピュータまたはネットワーク・コンピュータにであってもよい。図示の例では、サーバー104がクライアント110、112および114にブートファイルのようなデータ、オペレーティング・システム・イメージおよびアプリケーションを提供する。クライアント110、112および114は、この例ではサーバー104に対するクライアントである。ネットワーク・データ処理システム100は追加のサーバー、クライアントおよび他の装置(図示せず)を含んでもよい。
【0016】
ネットワーク・データ処理システム100中に位置するプログラム・コードはコンピュータ記録可能ストレージ媒体上にストアされ、そしてデータ処理システムまたは他の装置に使用のためダウンロードされてもよい。例えば、サーバー104上のプログラム・コードはコンピュータ 記録可能ストレージ媒体にストアされ、クライアント110上での使用のためネットワーク102上のクライアント110にダウンロードされてもよい。
【0017】
図示の例では、ネットワーク・データが、相互に通信するためのプロトコルのTCP/IP(Transmission ControlProtocol/Internet Protocol)プロトコル・スイートを用いるネットワークおよびゲートウエイの世界的な集合体を表すネットワーク102を備えたインターネットである。インターネットの中心にあるのは主要なノード相互間もしくはホスト・コンピュータ相互間の高速データ通信線の基幹回線であり、データおよびメッセージをルート付ける何千もの商業上の、政府関係、教育関係の、および他のコンピュータ ・システムを含む。勿論、ネットワーク・データ処理システム100はまた、例えばイントラネット、ローカル・エリア・ネットワーク(LAN)または広域ネットワーク(WAN)などの多数の異なるタイプのネットワークとして実装されてもよい。 図1は一例と考えられ、異なる図示の実施例のための限定とは考えられていない。
【0018】
ここで図2に言及すると、データ処理システムが図解され、そこに実施例が説明されている。データ処理システム200は図1のサーバー104やクライアント110など、コンピュータの一例であり、その中にコンピュータ可用プログラム・コードまたはそのプロセスを実装している命令がその説明の実施例のために置かれていてもよい。この実施例では、データ処理システム200が通信ファブリック202を含み、これがプロセッサ・ユニット204、メモリ206、恒久ストレージ208、通信ユニット210、入出力(I/O)ユニット212及びディスプレイ214間の通信を提供する。
【0019】
プロセッサ・ユニット204はメモリ206の中にロードされてもよいソフトウエアのための命令を実行する働きがある。プロセッサ・ユニット204は1個以上のプロセッサであってもよいし、特定の実装例次第でマルチプロセッサ・コアであってもよい。更に単一のチップ上に二次プロセッサを備えたメインプロセッサがある1個以上の異種プロセッサ・システムを用いてプロセッサ・ユニット204が実装されてもよい。他の実施例のように、プロセッサ・ユニット204が、同じタイプの複数のプロセッサを含む対称マルチプロセッサ・システムであってもよい。
【0020】
メモリ206及び恒久ストレージ208がストレージ装置の例である。ストレージ装置は一時的および/もしくは恒久的に情報をストアすることのできる任意の一片のハードウエアである。メモリ206は、これらの例では、例えばランダム・アクセス・メモリまたは任意の他の適当な揮発性もしくは不揮発性のストレージ装置であってよい。恒久ストレージ208は特定の実装例に依存する様々な形態をとることができる。例えば、恒久ストレージ208は1個以上のコンポーネントもしくは装置を含んでもよい。例えば、恒久ストレージ208はハード・ドライブ、フラッシュ・メモリ、再書込み可能光ディスク、再書込み可能磁気テープ、あるいはそれらの何らかの組み合わせであってよい。恒久ストレージ208によって使用される媒体はまた取外し可能であってよい。例えば、恒久ストレージ208用に取外し可能ハード・ドライブが使用されてもよい。
【0021】
通信ユニット210は、これらの例では、他のデータ処理装置との通信を提供する。これらの例では、通信ユニット210がネットワーク・インターフェース・カードである。通信ユニット210は物理的なもしくは無線の、あるいはその両方の通信リンクの使用を通じて通信を提供してもよい。
【0022】
I/Oユニット212はデータ処理システム200に接続される他の装置とのデータの入出力を許容する。例えば、I/Oユニット212はキーボード、マウスを介してのユーザー入力の接続を提供してもよい。更に、I/Oユニット212がプリンタへの出力を送信してもよい。ディスプレイ214はユーザーに情報を表示するための機構を提供する。
【0023】
オペレーティング・システム及びアプリケーションまたはプログラムのための命令が恒久ストレージ208上にある。これらの命令はプロセッサ・ユニット204による実行のためメモリ206にロードされてもよい。異なる実施例のプロセッサが、プロセッサ・ユニット204によって行われてもよい。これはコンピュータに実装された命令を用いてであるが、その命令はメモリ206などのメモリに置かれていてもよい。これらの命令はプログラム・コード、コンピュータ 可用プログラム・コード、もしくはコンピュータ可読プログラム・コードと呼ばれ、プロセッサ・ユニット204中のプロセッサによって読み出され実行されることができる。異なる実施例におけるこのプログラム・コードは、メモリ206または恒久ストレージ208などの物理的もしくは有体のコンピュータ 可読媒体上で実施されてもよい。
【0024】
プログラム・コード216は、選択的に取外し可能で、かつプロセッサ・ユニット204による実行のためにデータ処理システム200上にロードされ、もしくは転送され得るというように機能的な態様でコンピュータ可読媒体218上に置かれる。プログラム・コード216およびコンピュータ可読媒体218はこれらの例ではコンピュータ・プログラム製品220を構成する。一例で、コンピュータ可読媒体218は、恒久ストレージ208の一部であるハード・ドライブのようなストレージ装置上にプログラム・コード216を転送するため恒久ストレージ208の一部であるドライブまたは他の装置中に挿入されもしくは設置される、光ディスクまたは磁気ディスクのような有形の形式であってもよい。有形の形式では、コンピュータ可読媒体218はまたハード・ドライブ、サム・ドライブ、またはデータ処理システム200に接続されたフラッシュ・メモリのような恒久ストレージの形態をとってもよい。コンピュータ可読媒体218という有形の形式はまたコンピュータ 記録可能ストレージ媒体とも呼ばれる。幾つかの例ではコンピュータ可読媒体218が取外し可能ではない。
【0025】
代わりに、プログラム・コード216はコンピュータ可読媒体218からデータ処理システム200に転送されてもよいが、詳細には通信リンクを介して通信ユニット210に、および/もしくは接続部を介してI/Oユニット212にと転送されてもよい。その 通信リンクおよび/または接続部は実施例では物理的なものであったり、無線であったりする。コンピュータ可読媒体は、そのプログラム・コードを含む通信リンクもしくは無線伝送などの有形でない媒体の形式をとってもよい。
【0026】
幾つかの実施例で、プログラム・コード216は、データ処理システム200中で使用されるよう恒久ストレージ208に他の装置からもしくはデータ処理システムからネットワークを介してダウンロードされてもよい。例えば、サーバー・データ処理システム中のコンピュータ 可読ストレージ媒体にストアされるプログラム・コードはサーバーからデータ処理システム200にネットワークを介してダウンロードされてもよい。プログラム・コード216を提供するデータ処理システムはサーバー・コンピュータ 、クライアント・コンピュータ、またはプログラム・コード216をストアし転送することのできる幾つかの他の装置であってよい。
【0027】
データ処理システム200用として図示された異なるコンポーネントは、異なる実施例が実装されてもよい態様にアーキテクチャ的な限定を与えることを意味しない。この異なる図示の実施例はデータ処理システム200のために説明されたものに加えたコンポーネントまたはその代わりのコンポーネントを含むデータ処理システムにおいて実装されてもよい。図2に示される他のコンポーネントは図示のものとは異なるものであってもよい。
【0028】
この異なる実施例はプログラム・コードを実行することのできる任意のハードウエア装置もしくはシステムを用いて実装されてもよい。一例として、データ処理システムは、有機のコンポーネントと統合された無機のコンポーネントを含んでもよいし、あるいは人間を除く有機のコンポーネントから完全になるものであってもよい。例えば、ストレージ装置は有機の半導体からなっていてもよい。
【0029】
他の例として、データ処理システム200中のストレージ装置はデータをストアすることができる任意のハードウエア装置である。メモリ206、恒久ストレージ208、およびコンピュータ可読媒体218は有形の形式でのストレージ装置の例である。
【0030】
他の例では、バス・システムが通信ファブリック202を実装するのに使用されてもよく、またシステム・バスまたは入出力バスなど、1個以上のバスよりなっていてもよい。もちろん、そのバス・システムは、そのバス・システムに取り付けられた異なるコンポーネントもしくは装置相互間のデータを転送するために提供された適当なタイプのアーキテクチャを用いて実装されていてもよい。更に、通信ユニットは、モデムまたはネットワーク・アダプタなどのデータを転送し受け取るのに使用される1個以上の装置を含んでもよい。更にメモリは、例えば、通信ファブリック202にあってもよいメモリ・コントローラ・ハブおよびインターフェースに見出されるようなキャッシュまたはメモリ206であってもよい。
【0031】
ここで説明する実施例は、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査を改良するために、ランタイム解析から情報を集めるようコンピュータで実施する方法、コンピュータ ・プログラムおよびデータ処理システムである。セキュリティの観点から興味深いと考えられるコード上での生のコード・カバレッジの計測を用いる代わりに、説明の実施例はアプリケーションへのどの入力がブラックボックス走査の過程中実行されるかを決定するためランタイム解析を用いる。
【0032】
ブラックボックス・ウエブ・アプリケーション・セキュリティ・テスト中にそのテストの過程でアプリケーション入力が実行されるか、されないかについての情報が収集される。この情報はブラックボックス走査を改良し精緻化するのに有益である。アプリケーション入力にテストを送ることによってブラックボックス・テストが機能する。従って、アプリケーション入力がテスト過程中実行されなかったことについての情報が直接に実行可能である。アプリケーション入力がテストを受けない筈であることが既知であるとき、実行される入力ブラックボックス走査構成が、実行される入力としてのそのアプリケーション入力を含むために精緻化することができる。反復される走査およびフィードバックを通じて、そのブラックボックス走査がウエブ・アプリケーションの複数のアプリケーション入力のそれぞれをカバーするように最適化されることができる。フィードバック制御は、従って最適に構成されたブラックボックス・ウエブ・アプリケーション・セキュリティ走査を有効にする。最適のブラックボックス走査をフィードバック制御なしに構成化することは行きあたりばったりであり、完全なコード・カバレッジを生じるとは考えにくい。
【0033】
コンピュータ で使用することができプログラム・コードを有する、コンピュータ で実施される方法、データ処理システムおよびコンピュータを使用することのできる記録可能なタイプの媒体が、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタする。ウエブ・アプリケーションのブラックボックス走査が開始される。テストを送るブラックボックス走査がウエブ・アプリケーションの複数のウエブ・アプリケーション入力に送られる。ランタイム解析がウエブ・アプリケーションのブラックボックス走査上で行なわれる。ブラックボックス走査のランタイム解析に基づき、ブラックボックス走査が修正される。
【0034】
ここで図3に言及すると、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査のランタイム解析のデータ・フロー図が実施例に従って示されている。データ処理システム310は図1のクライアント110、112および114のうちの一つのようなデータ処理システムである。ウエブ・サーバー312は、図1のサーバー104およびサーバー106のうちの一つのようなサーバーである。
【0035】
一実施例では、データ処理システム310及びウエブ・サーバー312は一つのデータ処理システムであり得る。そのような実施例で、データ処理システム310上に示されるコンポーネントならびにウエブ・サーバー312上に示されるコンポーネントは全て一つのデータ処理システム上に実装されていてもよい。
【0036】
データ処理システム310はウエブ・サーバー312からウエブ・アプリケーション314をアクセスする。ウエブ・アプリケーション314は、以下に限定されるわけではないがハイパーテキスト・マークアップ言語、JavaScriptおよびJavaのような、ブラウザーによりサポートされる言語においてコード化される。ウエブ・アプリケーション314はウエブ・サーバー312上の情報のためにユーザーによりハイパーテキスト・マークアップ言語を呼び出す簡単な対話式ウエブ・ページであってよい。
【0037】
データ処理システム310はブラックボックス走査器318を含む。ブラックボックス走査器318はウエブ・アプリケーション314のブラックボックス・セキュリティ走査を行うことのできるソフトウエア・アプリケーションである。一実施例では、ブラックボックス走査器318は市販されているブラックボックス・ウエブ・アプリケーション走査器、例えば、以下に限定されないが、インターナショナル・ビジネス・マシーンズ・コーポレーションから入手できる「Rational AppScan 」であり得る。「Rational」および「AppScan」はともにインターナショナル・ビジネス・マシーンズ・コーポレーションの米国の登録商標である。
【0038】
ブラックボックス走査器318は、ウエブ・アプリケーション314を横断して共通のセキュリティ問題、例えばクロスサイト・スクリプティング、SQLインジェクション(構造化問い合わせ(クエリ)言語注入)、ディレクトリ横断、間違い構成、遠隔コマンド実行脆弱性、および可能なセキュリティ問題などをチェックする。ブラックボックス走査器318はウエブ・アプリケーション314における脆弱性を識別するためにウエブ・アプリケーション314を組織的に這いまわり、そこからの出力を構文解析する。
【0039】
データ処理システムは更にランタイム・アナライザ320を含む。ランタイム・アナライザ320は別個に実行するアプリケーション上でランタイム解析を行うことのできるソフトウエア・アプリケーションである。 一実施例では、ランタイム・アナライザ320は、例えばインターナショナル・ビジネス・マシーンズ・コーポレーションから入手できるがこれに限定されるものでない「Rational PureCoverage」など、市販されているランタイム解析ソフトウエア・アプリケーション、あるいはエクリプス・コーポレーションから入手できるがこれに限定されるものでない「Eclipse Test and Performance Tools Platformance」など、自由に配布されているランタイム解析ソフトウエア・アプリケーションであってもよい。
【0040】
ランタイム・アナライザ320はウエブ・アプリケーション314の実行をモニタする。一実施例では、ランタイム・アナライザ320はウエブ・アプリケーション314への全ての潜在的入力をモニタする。ブラックボックス走査器318がウエブ・アプリケーション314のブラックボックス・テストを行っている間、ランタイム・アナライザ320はこれらのウエブ・アプリケーション入力のうちのどれが、到来するデータを受け取ることにより実行されたか、どれが実行されなかったかを決定するためにウエブ・アプリケーション314の様々な入力をモニタする。
【0041】
ブラックボックス走査器318がウエブ・アプリケーション314のテストを実行し終えたとき、ランタイム・アナライザ320がウエブ・アプリケーション入力のカバレッジ(網羅率)についての情報を用意する。ランタイム・アナライザ320は、実行された全てのアプリケーション入力の割合といった情報を提供し、実行されなかったアプリケーション入力のリストが提供される。ランタイム・アナライザ320はまた、独特のフェーズにおいてというよりもむしろ、連続したフィードバック・ループにおけるブラックボックス走査の過程でウエブ・アプリケーション314のカバレッジについての情報を用意することができた。
【0042】
ランタイム・アナライザ320により提供される情報がフィードバック制御322中への入力となる。フィードバック制御322はブラックボックス走査器318によるテスト・ランを精緻化するソフトウエア・プロセスである。フィードバック制御322はブラックボックス走査のその後のランが、ウエブ・アプリケーション314の実行されなかったアプリケーション入力をカバーするようにブラックボックス走査を精緻化する。即ち、ブラックボックス走査器318によるテストの第一のランは 、アプリケーション入力の全体の不完全なテストによる不完全なコード・カバレッジになりがちである。フィードバック制御322はブラックボックス走査器318により行われるブラックボックス走査を、そのブラックボックス走査の後続のランが以前の実行されなかったアプリケーション入力をカバーするように修正する。
【0043】
反復される走査およびフィードバックを通して、ブラックボックス走査がウエブ・アプリケーション314の各アプリケーション入力をカバーするように最適化されることができる。フィードバック制御322は従って最適に構成化されたブラックボックス・ウエブ・アプリケーション・セキュリティ走査を可能にする。フィードバック制御322なしに最適のブラックボックス走査を構成化するのは行きあたりばったりであり、完全なコード・カバレッジを生じそうもない。
【0044】
ここで図4に言及すると、ウエブ・アプリケーションのブラックボックス・セキュリティ走査を提供するフローチャートが、図示の実施例に従って示される。プロセス400はソフトウエア・プロセスであり、図3の318のようなソフトウエア・コンポーネントを実行する。
【0045】
プロセス400はウエブ・アプリケーションを横断することによって開始する(ステップ410)。このウエブ・アプリケーションは図4のウエブ・サーバー314であり得る。プロセス400は、以下に限定するものではないが、例えばクロスサイト・スクリプティング、SQLインジェクション(構造化問い合わせ(クエリ)言語注入)、ディレクトリ横断、間違い構成、および遠隔コマンド実行脆弱性など共通のセキュリティ問題をチェックするようにウエブ・アプリケーションを横断する。
【0046】
プロセス400はテストを発生し、ウエブ・アプリケーションに送る(ステップ420)。ウエブ・アプリケーションに送られるテストはウエブ・アプリケーションにおける共通の脆弱性に基づくエラーを論理的に導き出すようなテストであり得る。そのようなテストは、以下に限定するものではないが、例えばクロスサイト・スクリプティング、SQLインジェクション、ディレクトリ横断、間違い構成、および遠隔コマンド実行脆弱性を含むことができる。ブラックボックス走査中、プロセス400はウエブ・アプリケーションを系統的に這いまわり、テストをそのアプリケーションに送り、そこからの出力を構文解析して、ウエブ・アプリケーションにおける脆弱性を識別する。
【0047】
テストを発生し、ウエブ・アプリケーションに送るのに応答して、プロセス400は、可能性のある脆弱性を識別するためにウエブ・アプリケーション応答を処理する(ステップ430)。ウエブ・アプリケーション応答はそのウエブ・アプリケーションに送られるテストに応答して遭遇する何らかのエラー・メッセージを含んでもよい。可能性のある脆弱性は、ウエブ・アプリケーションによる疑わしい出力から識別されることができる。例えば、もしJavaスクリプト・コードがテスト中のアプリケーションに送られるなら、そしてその後そのウエブ・アプリケーションからの応答において同じJavaスクリプト・コードが戻されるなら、クロスサイト・スクリプティング脆弱性が恐らくは存在する。
【0048】
プロセス400はそれから青の可能性のある脆弱性のレポートを発生し(ステップ440)、その後そのプロセスを終了する。ソフトウエア・エンジニアはそのウエブ・アプリケーション中の疑われた脆弱性を尋ね当てるためそのログ・ファイル中のその構文解析された疑わしい出力を使用することができる。
【0049】
ここで図5に言及すると、これには実行しているウエブ・アプリケーションのランタイム解析を提供するフローチャートが、図示の実施例に従って示されている。プロセス500はソフトウエア・プロセスであり、図3のランタイム・アナライザ320のようなソフトウエア・コンポーネント上で実行する。
【0050】
プロセス500はブラックボックス・セキュリティ走査中のウエブ・アプリケーション入力をモニタすることから開始する(ステップ510)。プロセス500はウエブ・アプリケーションのランタイム中のウエブ・アプリケーションへの全ての潜在的な入力をモニタする。図4に示すブラックボックス走査器318のようにブラックボックス走査器がウエブ・アプリケーションのブラックボックス・テストをランしている間、プロセス500はこれらのウエブ・アプリケーションへの様々な入力をモニタする。これはこれらのウエブ・アプリケーション入力のうちどれが、到来するデータの受け取りによって実行されたのか、そしてどれが実行されなかったのかを決定するためである。
【0051】
それからプロセス500は、実行されなかったウエブ・アプリケーション入力、およびブラックボックス走査のコード・カバレッジを識別する(ステップ520)。セキュリティの観点から興味深いと思われるコード上の生のコード・カバレッジの計測を用いる代わりに、プロセス500のランタイム解析がブラックボックス走査の過程中にどのウエブ・アプリケーション入力が実行されるかを識別する。そこでそのウエブ・アプリケーションへの各々の可能性のある入力が既知であるとき、ブラックボックス走査の過程で実行されないウエブ・アプリケーション入力を迅速に識別することができる。
【0052】
そこでプロセス500はブラックボックス走査を更新するためにフィードバック制御への少なくともその実行されなかったアプリケーション入力をフォワードし(ステップ530)その後そのプロセスを終了する。このフィードバック制御は図3のフィードバック制御322であり得る。ブラックボックス走査器によるテストのうちの1回目のランは、アプリケーション入力の全体の不完全なテストにより、不完全なコード・カバレッジという結果になりがちである。実行されなかったアプリケーション入力の反復される走査およびフィードバックを通じて、そのブラックボックス走査はウエブ・アプリケーションの各アプリケーション入力をカバーするように最適化されることができる。フィードバック制御なしの最適ブラックボックス走査を構成するのは行きあたりばったりであり、完全なコード・カバレッジを生じるとは考えられない。
【0053】
第6図に言及すると、図示の実施例に従って、実行しているウエブ・アプリケーションのランタイム解析フィードバックに基づくブラックボックス走査を更新するフローチャートが示されている。プロセス600はソフトウエア・プロセスであり、図3のフィードバック制御322のようなソフトウエア・コンポーネント上で実行する。
【0054】
プロセス600はブラックボックス走査を更新するために、実行されないアプリケーション入力を受取ることによって開始する(ステップ610)。ブラックボックス走査器によるテストの1回目のランはアプリケーション入力の全体の不完全なテストにより不完全なコード・カバレッジという結果になりがちである。その実行されないアプリケーション入力の反復される走査およびフィードバックを通じて、そのブラックボックス走査はウエブ・アプリケーションの各アプリケーション入力をカバーするように最適化されることができる。フィードバック制御なしの最適化ブラックボックス走査を構成するのは行きあたりばったりであり、完全なコード・カバレッジを生じるとは考えられない。実行されないアプリケーション入力はブラックボックス・テストを受けて来なかったウエブ・アプリケーション・コードのセクションを示す。
【0055】
実行されないアプリケーション入力を受取るのに応答して、プロセス600はその実行されないアプリケーション入力がそのブラックボックス走査の後続のランにおいてそのブラックボックス走査器からのテスト入力を受取るようブラックボックス走査を再構成し(ステップ620)、その後そのプロセスが終了する。プロセス600は、そのブラックボックス走査の後続のランがそれ以前の実行されなかったアプリケーション入力をカバーするように、ブラックボックス走査器により行われるブラックボックス走査を修正する。反復される走査およびフィードバックを通じて、ブラックボックス走査がウエブ・アプリケーションの各アプリケーション入力をカバーするように最適化されることができる。従って、プロセス600は最適に構成化されたブラックボックス・ウエブ・アプリケーション・セキュリティ走査を有効にする。
【0056】
ここで説明する実施例は、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査を改良するために、ランタイム解析から意味のある情報を集めるようコンピュータで実施する方法、コンピュータ ・プログラムおよびデータ処理システムである。セキュリティの観点から興味深いと考えられるコード上での生のコード・カバレッジの計測を用いる代わりに、説明の実施例はアプリケーションへのどの入力がブラックボックス走査の過程中実行されるかを決定するためにランタイム解析を用いる。
【0057】
ブラックボックス・ウエブ・アプリケーション・セキュリティ・テストの過程中、アプリケーション入力が実行されること、および実行されないことについての情報はブラックボックス走査を精緻化し改良するために、はるかに有益である。テストをアプリケーション入力に送ることによってブラックボックス・テストが機能する。従って、テスト過程中に実行されなかったアプリケーション入力についての情報は直接実行可能である。アプリケーション入力がテストを受けない予定であるということが既知であれば、実行された入力としてそのアプリケーション入力を含めるためにブラックボックス走査構成が精緻化されることができる。
【0058】
このように本発明の実施例は、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタするようコンピュータが使用できるプログラム・コードを有する、コンピュータが使用できる記録可能なタイプの媒体、コンピュータで実施される方法、ならびにデータ処理システムを提供する。ウエブ・アプリケーションのブラックボックス走査が開始される。テストを送るこのブラックボックス走査がウエブ・アプリケーションの複数のウエブ・アプリケーション入力に送られる。ランタイム解析はウエブ・アプリケーションのブラックボックス走査上で実行される。ブラックボックス走査のランタイム解析に基づいて、ブラックボックス走査が修正される。
【0059】
反復される走査およびフィードバックを通じて、ブラックボックス走査はウエブ・アプリケーションの各アプリケーション入力をカバーするように最適化されることができる。従ってフィードバック制御は最適に構成化されたブラックボックス・ウエブ・アプリケーション・セキュリティ走査を有効にする。フィードバック制御なしに最適のブラックボックス走査を構成するのは行きあたりばったりであり、完全なコード・カバレッジを生じるとは考えられない。
【0060】
図のフローチャートおよびブロック図は、本発明のいろいろな実施例に従うシステム、方法およびコンピュータ・プログラムの可能な導入例のアーキテクチャ、機能および動作を説明している。この点で、フローチャートまたはブロック図が、モジュール、セグメント、または特定の論理機能を実装するための1個以上の実行可能命令を含むコードの部分を表してもよい。代替実施例ではそのブロックに示された機能が、図に示された順序から外れて生じてもよいことに留意されたい。例えば、連続して示されている2個のブロックが、そこに含まれる機能によっては、実際はほぼ同時に実行されたり、それらのブロックがときには逆の順序で実行されたりする。ブロック図および/もしくはフローチャートの説明の各ブロック、およびブロック図および/もしくはフローチャートの説明のブロックの組み合わせが、特定目的のハードウエアおよびコンピュータ 命令の機能もしくは動作またはその組み合わせを実行する特定目的のハードウエアをベースにするシステムによって実装され得ることにも留意されたい。
【0061】
ここで使用される用語は特定の実施例のみを説明するためであり、本発明を限定する意図はない。ここで用いられるように、特にコンテキストが他のことを明確に示していない限り、単数形は複数形も含む。更に、「含む」という用語はこの明細書で用いられるとき、記述された特徴、整数、ステップ、動作、要素および/もしくはコンポーネントを特定し、1個以上の他の特徴、整数、ステップ、動作、要素、コンポーネントおよび/もしくはそのグループの存在ないし付加を除外しないことを理解されたい。
【0062】
特許請求の範囲における全てのミーンズ(手段)・プラス・ファンクションまたはステップ・プラス・ファンクションの要素の対応する構造、材料、動作または等価物は、具体的に請求したような他の請求の要素と組み合わされた機能を実行するための任意の構造、材料または動作を含むことを意図している。本発明の記述は説明および記述のために提供されているが、開示した形態での発明に限定される意図はない。本発明の趣旨及び精神から離れずに、当業者には多くの修正例や変形例が明らかである。ここでの実施例は本発明の原理をもっともよく説明するために選択され記述されたものであり、他の当業者が特定の使用目的に合ったいろいろな修正を加えたいろいろな実施例を理解するのを容易にしている。
【0063】
本発明は完全にハードウエアの実施例、完全にソフトウエアの実施例、あるいはハードウエアおよびソフトウエアの要素を組み合わせた実施例といった形態をとることができる。好適な実施例では、本発明は、以下に限定されるものではないが、ファームウエア、常駐ソフトウエア、マイクロコードなどを含むソフトウエアで実施される。
【0064】
また本発明は、コンピュータまたは任意の命令実行システムにより、またはそれに関連して使用されるプログラム・コードを提供する、コンピュータ可用媒体またはコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形態をとることができる。この説明の目的上、コンピュータ可用媒体またはコンピュータ可読媒体は、命令実行システム、装置もしくはデバイスにより、またはそれに関連して使用されるプログラムを含み、ストアし、通信し、伝播し、あるいは移送することができる任意の有形の装置であってよい。
【0065】
この媒体は、電子的、磁気的、光学的、電磁的、赤外線の、もしくは半導体のシステム(もしくは装置、デバイス)或いは伝送媒体であってよい。コンピュータ可読媒体の例は半導体もしくは固体素子のメモリ、磁気テープ、取り外し可能なフレキシブル・ディスク、ランダム・アクセス・メモリ(RAM)、読出し専用メモリ(ROM)、磁気ハードディスクおよび光ディスクを含む。今日の光ディスクの例は、CD−ROM(コンパクト・ディスク読出し専用メモリ)、CD−R/W(コンパクト・ディスク読出し書込み)およびDVDを含む。
【0066】
プログラム・コードをストアしたり、実行したりするのに適するデータ処理システムは、メモリ素子にシステム・バスを介して直接的または間接的に結合された少なくとも一個のプロセッサを含む。メモリ素子は、プログラム・コードの実際の実行中に用いられるローカル・メモリ、大容量ストレージ、ならびに少なくとも幾つかのプログラム・コードの一時的なストレージを提供するキャッシュ・メモリを含むことができる。そのキャッシュ・メモリは実行中にコードを大容量ストレージから何回も取り出す必要性を少なくするためのものである。
【0067】
入出力装置即ちI/O装置(以下に制限されるものではないが、キーボード、ディスプレイ、ポインティング・デバイスなどを含む)をこのシステムに直接的にあるいはI/Oコントローラを介して結合することができる。
【0068】
ネットワーク・アダプタはまた、他のデータ処理システム、遠隔のプリンタ、ストレージ装置などに私的なまたは公的なネットワークを介して結合することができるようにこのシステムに結合されてもよい。モデム、ケーブル・モデムおよびEthernetカードが、現在利用できる型のネットワーク・アダプタのほんの一例である。
【0069】
本発明の記述は説明目的で行われたものであり、ここに開示した特定の形態に本発明を制限する意図はない。多くの修正例や変形例が当業者には容易に考えられるであろう。実施例は本発明の原理、実用的な応用例をもっとも良く示すために選んで記述した。これはまたこの分野の他の当業者が特定の使用目的に合わせていろいろな修正を加えたいろいろな実施例を理解できるようにするためである。
【図面の簡単な説明】
【0070】
【図1】ある実施態様が導入されたデータ処理システムのネットワークの図式的表示である。
【図2】実施態様が実施されるデータ処理システムのブロック図である。
【図3】ある実施態様によるブラックボックスのウエブ・アプリケーション・セキュリティ走査のランタイム解析のデータ・フローチャートである。
【図4】ある実施態様によるウエブ・アプリケーションのブラックボックス・セキュリティ走査を提供するフローチャートである。
【図5】実行するウエブ・アプリケーションのランタイム解析を提供するためのフローチャートを或る実施態様に従って示す。
【図6】或る実施例に従って実行するウエブ・アプリケーションのランタイム解析フィードバックに基づいてブラックボックス走査を更新するためのフローチャートである。
【符号の説明】
【0071】
100 ネットワーク・データ処理システム
102 ネットワーク
104、106 サーバー
108 ストレージ・ユニット
110、112、114 クライアント
200 データ処理システム
202 通信ファブリック
204 プロセッサ・ユニット
206 メモリ
208 恒久ストレージ
210 通信ユニット
212 I/Oユニット
214 ディスプレイ
216 プログラム・コード
218 コンピュータ可読媒体
220 コンピュータ・プログラム製品
310 データ処理システム
312 ウエブ・サーバー
314 ウエブ・アプリケーション
318 ブラックボックス走査器
320 ランタイム・アナライザ
322 フィードバック制御

【特許請求の範囲】
【請求項1】
ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタするための方法であって、
ウエブ・アプリケーションの複数のウエブ・アプリケーション入力にテストが送られて、前記ウエブ・アプリケーションのブラックボックス走査を開始するステップと、
前記ウエブ・アプリケーションの前記ブラックボックス走査のランタイム解析を行うステップと、
前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するステップと
をコンピュータに実行させる方法。
【請求項2】
前記テストからデータを受け取る、実行されたウエブ・アプリケーション入力を、前記ウエブ・アプリケーションの前記ブラックボックス走査の前記ランタイム解析を行うステップに応答して、前記複数のウエブ・アプリケーション入力から識別するステップ
を更に含む、請求項1に記載のコンピュータ実行方法。
【請求項3】
前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するステップが更に、前記テストからデータを受取らなかった、実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの後続のブラックボックス走査により実行されるようにする、
請求項2に記載のコンピュータ実行方法。
【請求項4】
前記複数のウエブ・アプリケーション入力のカバレッジの情報であって、実行される前記複数のウエブ・アプリケーション入力の割合、および実行されない前記複数のウエブ・アプリケーション入力の割合を含む前記情報を用意するステップ

更に含む、請求項3に記載のコンピュータ実行方法。
【請求項5】
前記複数のウエブ・アプリケーション入力の前記カバレッジの情報を用意するステップに応答して、フィードバック制御に前記情報をフォワードするステップを更に含み、
前記修正するステップは、
前記テストからのデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、前記フィードバック制御に前記情報をフォワードするステップに応答して、前記ブラックボックス走査を前記フィードバック制御でもって修正する、
請求項4に記載のコンピュータ実行方法。
【請求項6】
前記フィードバック制御がフィードバック制御ループであり、
前記テストからデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、前記フィードバック制御に前記情報をフォワードするのに応答して、前記ブラックボックス走査をランタイム中前記フィードバック制御でもって修正する、
請求項5に記載のコンピュータ実行方法。
【請求項7】
前記テストが複数のウエブ・アプリケーション入力に送られる前記ウエブ・アプリケーションのブラックボックス走査を開始するステップにおいて、前記テストはクロスサイト・スクリプティング、SQLインジェクション、ディレクトリ横断、間違い構成、および遠隔コマンド実行脆弱性よりなるグループから選択される、
請求項3に記載のコンピュータ実行方法。
【請求項8】
バスと、
前記バスに接続され、ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタするためのコンピュータ使用可能コードを含むストレージ装置と、
前記バスに接続された通信ユニットと、
前記バスに接続された処理ユニットであって、
ウエブ・アプリケーションの複数のウエブ・アプリケーション入力にテストが送られて、前記ウエブ・アプリケーションのブラックボックス走査を開始し、
前記ウエブ・アプリケーションの前記ブラックボックス走査のランタイム解析を行い、そして前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するよう、前記コンピュータ使用可能コードを実行する前記処理ユニットと
を含むデータ処理システム。
【請求項9】
前記テストからデータを受け取る、実行されたウエブ・アプリケーション入力を、前記ウエブ・アプリケーションの前記ブラックボックス走査の前記ランタイム解析を行うのに応答して、前記複数のウエブ・アプリケーション入力から識別するよう、
前記コンピュータ使用可能コードを前記処理ユニットが更に実行する、
請求項8に記載のデータ処理システム。
【請求項10】
前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するために前記コンピュータ使用可能コードを実行する前記処理ユニットが更に、前記テストからデータを受取らなかった、実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの後続のブラックボックス走査により実行されるよう、
前記コンピュータ使用可能コードを実行する、
請求項9に記載のデータ処理システム。
【請求項11】
前記複数のウエブ・アプリケーション入力のカバレッジの情報であって、実行される前記複数のウエブ・アプリケーション入力の割合、および実行されない前記複数のウエブ・アプリケーション入力の割合を含む前記情報を用意するよう、
前記コンピュータ使用可能コードを実行する、請求項10に記載のデータ処理システム。
【請求項12】
前記複数のウエブ・アプリケーション入力の前記カバレッジの情報を用意するのに応答して、フィードバック制御に前記情報をフォワードし、
前記テストからのデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、前記フィードバック制御に前記情報をフォワードするのに応答して、前記ブラックボックス走査を前記フィードバック制御でもって修正するよう、
前記コンピュータ使用可能コードを実行する、請求項11に記載のデータ処理システム。
【請求項13】
前記フィードバック制御がフィードバック制御ループであり、
前記テストからデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、前記フィードバック制御に前記情報をフォワードするのに応答して、前記ブラックボックス走査をランタイム中前記フィードバック制御でもって修正するよう、
前記コンピュータ使用可能コードを実行する、請求項12に記載のデータ処理システム。
【請求項14】
前記ウエブ・アプリケーションの前記複数のウエブ・アプリケーション入力に送られるテストが、
クロスサイト・スクリプティング、SQLインジェクション、ディレクトリ横断、間違い構成、および遠隔コマンド実行脆弱性よりなるグループから選択されるテストである、
請求項10に記載のデータ処理システム。
【請求項15】
ブラックボックス・ウエブ・アプリケーション・セキュリティ走査をモニタするためのコンピュータ・プログラムであって、
ウエブ・アプリケーションの複数のウエブ・アプリケーション入力にテストが送られて、前記ウエブ・アプリケーションのブラックボックス走査を開始するステップと、
前記ウエブ・アプリケーションの前記ブラックボックス走査のランタイム解析を行うステップと、
前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するステップと
をコンピュータに実行させることが可能なコンピュータ・プログラム。
【請求項16】
前記テストからデータを受け取る、実行されたウエブ・アプリケーション入力を、前記ウエブ・アプリケーションの前記ブラックボックス走査の前記ランタイム解析を行うステップに応答して、前記複数のウエブ・アプリケーション入力から識別するステップ
を更にコンピュータに実行させることが可能な、請求項15に記載のコンピュータ・プログラム。
【請求項17】
前記ブラックボックス走査の前記ランタイム解析に基づき前記ブラックボックス走査を修正するステップが更に、前記テストからデータを受取らなかった、実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの後続のブラックボックス走査により実行されるようにする、
請求項16に記載のコンピュータ・プログラム。
【請求項18】
前記複数のウエブ・アプリケーション入力のカバレッジの情報であって、実行される前記複数のウエブ・アプリケーション入力の割合、および実行されない前記複数のウエブ・アプリケーション入力の割合を含む前記情報を用意するステップ
を更にコンピュータに実行させることが可能な、請求項17に記載のコンピュータ・プログラム。
【請求項19】
前記複数のウエブ・アプリケーション入力の前記カバレッジの情報を用意するステップに応答して、フィードバック制御に前記情報をフォワードするステップを更に含み、
前記テストからのデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、かつ
前記フィードバック制御に前記情報をフォワードするステップに応答して、前記ブラックボックス走査を前記フィードバック制御でもって修正するように、
コンピュータに実行させることのできる、請求項18に記載のコンピュータ・プログラム。
【請求項20】
前記フィードバック制御がフィードバック制御ループであり、
前記テストからデータを受け取らなかった、前記実行されないウエブ・アプリケーション入力が前記ウエブ・アプリケーションの前記後続のブラックボックス走査により実行されるように、前記フィードバック制御に前記情報をフォワードするのに応答して、前記ブラックボックス走査をランタイム中前記フィードバック制御でもって修正するように、
コンピュータに実行させることのできる、請求項19に記載のコンピュータ・プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2010−157211(P2010−157211A)
【公開日】平成22年7月15日(2010.7.15)
【国際特許分類】
【出願番号】特願2009−243103(P2009−243103)
【出願日】平成21年10月22日(2009.10.22)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.ETHERNET
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】