JP6338073B2 - コンピュータ・ネットワークを用いてコンピュータ・ソフトウェア・アプリケーションをテストするための方法、システム及びコンピュータ・プログラム - Google Patents

コンピュータ・ネットワークを用いてコンピュータ・ソフトウェア・アプリケーションをテストするための方法、システム及びコンピュータ・プログラム Download PDF

Info

Publication number
JP6338073B2
JP6338073B2 JP2016516264A JP2016516264A JP6338073B2 JP 6338073 B2 JP6338073 B2 JP 6338073B2 JP 2016516264 A JP2016516264 A JP 2016516264A JP 2016516264 A JP2016516264 A JP 2016516264A JP 6338073 B2 JP6338073 B2 JP 6338073B2
Authority
JP
Japan
Prior art keywords
computer
copy
software
test data
payload
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016516264A
Other languages
English (en)
Other versions
JP2016530587A (ja
Inventor
ベスクロブニー、エフゲニー
トリップ、オマル
ランダ、アレキサンダー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2016530587A publication Critical patent/JP2016530587A/ja
Application granted granted Critical
Publication of JP6338073B2 publication Critical patent/JP6338073B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3696Methods or tools to render software testable
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Description

本発明は、一般に、コンピュータ・ソフトウェアのテストに関する。
動的解析ツールは、コンピュータ・ソフトウェア・アプリケーションをテストするためにコンピュータ・ソフトウェア開発者によって使用されることが多く、典型的には、まず、コンピュータ・ソフトウェア・アプリケーションを探索して、例えばデータをアプリケーションに提供できるインターフェースを含む、アプリケーションのインターフェースを見つけ、次にアプリケーションのインターフェースと対話を行って、そうした対話に対するアプリケーションの応答を監視することにより、コンピュータ・ソフトウェア・アプリケーションをテストする。1つのタイプの動的解析においては、既知の悪意のある特性を有するテストデータをアプリケーションに与え、次にアプリケーションの動作を観察することによって、セキュリティ脆弱性についてコンピュータ・ソフトウェア・アプリケーションをテストする。例えば、動的解析は、コンピュータ・ネットワークを介してHTTP要求を別のコンピュータがホストするウェブ・アプリケーションに送る1つのコンピュータ上で動作している「ブラック・ボックス・テスタ(black-box tester)」を用いることによって、インターネットなどのコンピュータ・ネットワークにわたってアクセスされるウェブ・アプリケーションをテストするために用いることができる。HTTP要求は、SQLインジェクション(SQL injection)、クロスサイト・スクリプティング(cross-site scripting)及びコマンド・インジェクション(command injection)などのセキュリティ脆弱性(security vulnerability)についてテストするように設計されたテストデータ・ペイロードのライブラリから引き出される、悪意のあるテストデータを有するように構成される。
ブラック・ボックス・テスタは、可能性のある全てのテストデータ・ペイロードをコンピュータ・ソフトウェア・アプリケーションに送って、可能性のある全てのセキュリティ脆弱性についてテストすることができる。しかしながら、時間及び帯域幅の点で、コンピュータ・ネットワークを介して多くのHTTP要求を送るコストは高いため、一般に、コンピュータ・ネットワークを介してウェブ・アプリケーションをテストする市販のブラック・ボックス・テスタでは、そのようなコストを低く抑えるために、テストされるHTTPパラメータ当たり、数十個のテストペイロードだけしか送らない。残念なことに、これは多くの場合、幾つかのセキュリティ脆弱性が検出されずにいることを意味する。
コンピュータ・ソフトウェア・アプリケーションをテストするための方法、システム及びコンピュータ・プログラムを提供する。
第1の態様によると、コンピュータ・ソフトウェア・アプリケーションをテストするための方法が提供され、この方法は、第2のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションによって使用されるデータチェック・ソフトウェアのコピーを実行するように、第1のコンピュータを構成することと、第1のコンピュータにおいてデータチェック・ソフトウェアを用いて、関連したセキュリティ脆弱性についてテストするように構成されたテストデータ・ペイロードの第1のコピーを処理することと、テストデータ・ペイロードの第1のコピーが、さらなる処理のために第1のコンピュータにおいてデータチェック・ソフトウェアによりエンドースされると判断することと、脅威を処理するために、テストデータ・ペイロードの第2のコピーを、コンピュータ・ネットワークを用いて第2のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションに送ることとを含む。
好ましくは、この方法は、コンピュータ・ソフトウェア・アプリケーションによって使用されるデータチェック・ソフトウェアを識別することをさらに含む。より好ましくは、識別することは、データチェック・ソフトウェアがサニタイザ及びバリデータのいずれかであると判断することを含む。さらにより好ましくは、この方法は、識別することを実行するようにコンピュータ・ソフトウェア・アプリケーションを装備することをさらに含む。
好ましくは、テストデータ・ペイロードは、第1のコンピュータに格納される。より好ましくは、テストデータ・ペイロードは、セキュリティ脆弱性を利用するように設計された悪意のあるペイロードを含む。さらにより好ましくは、判断することは、テストデータ・ペイロードの第1のコピーが、第1のコンピュータにおいてデータチェック・ソフトウェアにより処理された後にその関連したセキュリティ脆弱性についてテストするように構成可能であると判断することを含む。さらにより好ましくは、構成すること、処理すること、判断すること、及び送ることが実行され、コンピュータ・ソフトウェア・アプリケーションは、ウェブ・アプリケーションを含む。
第2の態様によると、コンピュータ・ソフトウェア・アプリケーションをテストするためのシステムが提供され、このシステムは、第2のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションによって使用されるデータチェック・ソフトウェアのコピーを実行するように、第1のコンピュータを構成し、第1のコンピュータにおいてデータチェック・ソフトウェアを用いて、関連したセキュリティ脆弱性についてテストするように構成可能なテストデータ・ペイロードの第1のコピーを処理し、テストデータ・ペイロードの第1のコピーが、さらなる処理のために第1のコンピュータにおいてデータチェック・ソフトウェアによりエンドースされると判断するように構成可能なペイロード・テスタと、脅威を処理するために、テストデータ・ペイロードの第2のコピーを、コンピュータ・ネットワークを用いて第2のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションに送るように構成可能なアプリケーション・テスタとを含む。
第3の態様によると、コンピュータ・ソフトウェア・アプリケーションをテストするためのコンピュータ・プログラム製品が提供され、このコンピュータ・プログラム製品は、非一時的コンピュータ可読ストレージ媒体と、コンピュータ可読ストレージ媒体内に具体化されたコンピュータ可読プログラム・コードとを含み、コンピュータ可読プログラム・コードは、第2のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションによって使用されるデータチェック・ソフトウェアのコピーを実行するように、第1のコンピュータを構成し、第1のコンピュータにおいて、データチェック・ソフトウェアを用いて、関連したセキュリティ脆弱性についてテストするように構成可能なテストデータ・ペイロードの第1のコピーを処理し、テストデータ・ペイロードの第1のコピーが、さらなる処理のために第1のコンピュータにおいてデータチェック・ソフトウェアによりエンドースされると判断し、脅威を処理するために、テストデータ・ペイロードの第2のコピーを、コンピュータ・ネットワークを用いて第2のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションに送るように構成可能である。
ここで、単なる例として、以下の図面を参照して、本発明の好ましい実施形態を説明する。
本発明の1つの実施形態に従って構成され、動作する、コンピュータ・アプリケーションをテストするためのシステムの簡単化された概念図である。 本発明の1つの実施形態に従って構成され、動作する、図1のシステムの動作の例示的な方法の簡単化されたフローチャート図である。 本発明の1つの実施形態に従って構成され、動作する、コンピューティング・システムの例示的なハードウェア実装の簡単化されたブロック図である。
ここで、1つ又は複数の実施形態の文脈内で本発明を説明するが、この説明は、本発明を全体として例証することを意図したものであり、本発明を示される実施形態に限定するものと解釈すべきではない。当業者であれば、種々の変更を思い付くことができ、それらの変更は、本明細書に具体的に示されないが、それにもかかわらず、本発明の範囲内にあることが認識されるであろう。
当業者により認識されるように、本発明の態様は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形態をとることができ、本明細書においては、これらは全て、一般的に「回路」、「モジュール」又は「システム」と呼ぶことがある。さらに、本発明の態様は、コンピュータ可読プログラム・コードが組み込まれた1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形態をとることができる。
1つ又は複数のコンピュータ可読媒体のいずれの組み合わせを用いることもできる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、これらに限定されるものではないが、電子、磁気、光、電磁気、赤外線、又は半導体のシステム、装置、若しくはデバイス、又は上記のいずれかの適切な組み合わせとすることができる。コンピュータ可読ストレージ媒体のより具体的な例(非網羅的なリスト)として、1つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能プログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、光記憶装置、磁気記憶装置、又は上記のもののいずれかの適切な組み合わせが挙げられる。本文書の文脈において、コンピュータ可読ストレージ媒体は、命令実行システム、装置若しくはデバイスによって又はこれらと関連して用いるためのプログラムを収容又は格納することができるいずれかの有形媒体とすることができる。
コンピュータ可読信号媒体は、コンピュータ可読プログラム・コードが、例えばベースバンド内に、又は搬送波の一部としてその中に具体化された、伝搬データ信号を含むことができる。このような伝搬信号は、これらに限定されるものではないが、電磁気、光又はこれらのいずれかの適切な組み合わせを含む、種々の異なる形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、装置若しくはデバイスによって又はこれらと関連して用いるためのプログラムを通信、伝搬、又は搬送することができる、いずれかのコンピュータ可読媒体とすることができる。
コンピュータ可読媒体上に具体化されたプログラム・コードは、これらに限定されるものではないが、無線、有線、光ファイバ・ケーブル、RF等、又は上記のもののいずれかの適切な組み合わせを含む、いずれかの適切な媒体を用いて伝送することができる。
本発明の態様のための動作を実行するためのコンピュータ・プログラム・コードは、Java、Smalltalk、C++等のようなオブジェクト指向型プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語のいずれかの組み合わせで記述することができる。プログラム・コードは、完全にユーザのコンピュータ上で実行される場合もあり、スタンドアロンのソフトウェア・パッケージとして、一部がユーザのコンピュータ上で実行される場合もあり、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行される場合もあり、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合もある。後者のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続される場合もあり、又は外部コンピュータへの接続がなされる場合もある(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)。
本発明の態様は、本発明の実施形態に記載されるような方法、装置(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して以下に説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装できることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えてマシンを製造し、それにより、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するための手段を作り出すようにすることができる。
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイスを特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、それにより、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を製造するようにすることができる。
コンピュータ・プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上にロードして、一連の動作ステップをコンピュータ、他のプログラム可能データ処理装置、又は他のデバイス上で行わせてコンピュータ実施のプロセスを生成し、それにより、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実行するためのプロセスを提供するようにすることもできる。
ここで、本発明の1つの実施形態に従って構成され、動作する、コンピュータ・ソフトウェア・アプリケーションをテストするためのシステムの簡単化された概念図である、図1を参照する。図1のシステムにおいて、コンピュータ102によりホストされるコンピュータ・ソフトウェア・アプリケーション100が示され、ここでコンピュータ・ソフトウェア・アプリケーション100は、コンピュータ・ネットワークを介してアクセスされるように設計することができる。コンピュータ・ソフトウェア・アプリケーション100は、例えば、Hypertext Markup Language(HTML)によってコード化されたウェブページを含む「ウェブ」アプリケーションとすることができ、コンピュータ102は、ウェブ・アプリケーション・サーバとして働く。コンピュータ・ソフトウェア・アプリケーション100は、エバリュエータ(evaluator)104によって評価を行い、従来の「グラスボックス(glass box)」テスト技術を用いることなどによって、コンピュータ・ソフトウェア・アプリケーション100によって使用されるデータチェック・ソフトウェアを識別することができ、「グラスボックス」テスト技術では、コンピュータ・ソフトウェア・アプリケーション100は、そうしたデータチェック・ソフトウェアを識別するソフトウェア命令を装備している。データチェック・ソフトウェアは、例えば「サニタイザ(sanitizer)」とすることができ、サニタイザは、ユーザ提供入力を、典型的にはコンピュータ・ソフトウェア・アプリケーション100によるさらなる処理のために入力文字列を出力文字列にマッピングするミューテーション基準の対象とすることによって、コンピュータ・ソフトウェア・アプリケーション100によるさらなる処理のために入力をエンドースする。代替的に、データチェック・ソフトウェアは、「バリデータ(validator)」とすることができ、バリデータは、ユーザ提供入力を、典型的にはコンピュータ・ソフトウェア・アプリケーション100により入力をさらに処理できるかどうかを示すブール値に入力文字列をマッピングする検証基準の対象とすることによって、コンピュータ・ソフトウェア・アプリケーション100によるさらなる処理のために入力をエンドースする。そうしたデータチェック・ソフトウェアの幾つかの例として、入力パラメータについてのカスタム・バリデータが宣言的に定義されるフレームワーク構成ファイルが挙げられる。例えば、カリフォルニア州ロサンゼルス所在のApache Software Foundationから市販されているApache Struts 2(商標)においては、ユーザは、構成ファイル内で、所定のパラメータについてのユーザ提供入力と照合される正規表現;サニタイザ及び/又はバリデータを含むものとして知られる市販のセキュリティ・ライブラリ;入力として文字列を受け取り、出力として文字列を返す、又は入力として文字列を受け取り、ブール値を返す、又は複数のソースから要求を受信するデータフロー・ボトルネックである、静的方法などのサニタイザ又はバリデータの特性を有する方法;Javaにおけるjava.util.regexパッケージ(Java及び全てのJavaベースの商標及びロゴは、Oracle及び/又は系列会社の商標及び登録商標である)などの正規表現ライブラリを指定することができる。
エバリュエータ104は、コンピュータ・ソフトウェア・アプリケーション100によって使用されるデータチェック・ソフトウェアの記述を、コンピュータ108におけるペイロード・テスタ106に提供することができ、選択的に、データチェック・ソフトウェア自体のコピーをペイロード・テスタ106に提供することもできる。ペイロード・テスタ106は、コンピュータ108を設定してコンピュータ・ソフトウェア・アプリケーション100によって使用されるデータチェック・ソフトウェアのコピー110を実行するように構成することができる。ペイロード・テスタ106は、テストデータ・ペイロードのコピーを処理のためにデータチェック・ソフトウェアのコピー110に提供することによって、1つ又は複数のテストデータ・ペイロードのコピーを処理することができる。テストデータ・ペイロードを所定のテストデータ・ペイロードのライブラリ112に入れてコンピュータ108に格納することができ、所定のテストデータ・ペイロードは、各テストデータ・ペイロードが、セキュリティ脆弱性を利用するように設計された悪意のあるペイロードを含む場合などに、SQLインジェクション、クロスサイト・スクリプティング及びコマンド・インジェクションなどの1つ又は複数の既知のセキュリティ脆弱性についてテストするように構成することができる。ペイロード・テスタ106は、データチェック・ソフトウェアのコピー110により処理される各テストデータ・ペイロード・コピーが、さらなる処理のためにデータチェック・ソフトウェアのコピー110によりエンドースされるかどうかを判断するように構成することができる。テストデータ・ペイロード・コピーは、データチェック・ソフトウェアによる処理中にミューテーションを経ることがあるので、処理されたテストデータ・ペイロード・コピーがその悪意のある特性を十分に保持していると判断することなどによって、データチェック・ソフトウェアのコピー110による処理の後に、テストデータ・ペイロード・コピーがその関連したセキュリティ脆弱性についてテストするように構成されたままであるとペイロード・テスタ106が判断した場合に、いずれのテストデータ・ペイロード・コピーもエンドースするように、ペイロード・テスタ106を構成することもできる。従って、例えば、データチェック・ソフトウェアがバリデータである場合には、ペイロード・テスタ106は、データチェック・ソフトウェアのコピー110により処理されるテストデータ・ペイロード・コピーがさらなる処理のために許容可能であることを、データチェック・ソフトウェアにより判断できるかどうかを決定する。同様に、データチェック・ソフトウェアがサニタイザである場合には、ペイロード・テスタ106は、データチェック・ソフトウェアのコピー110により処理されるテストデータ・ペイロード・コピーのミューテート・バージョンが、テストデータ・ペイロードと関連したセキュリティ脆弱性についてテストできるかどうかを決定することができる。
データチェック・ソフトウェアのコピー110による処理の後、上述のようにさらに処理するためにエンドースされるいずれのテストデータ・ペイロード・コピーについても、処理のために、テストデータ・ペイロードのコピーをコンピュータ・ネットワーク116を介してコンピュータ102におけるコンピュータ・ソフトウェア・アプリケーション100に送るように、コンピュータ108におけるアプリケーション・テスタ114を構成することができる。逆に、データチェック・ソフトウェアのコピー110による処理の後、上述のようにさらに処理するためにエンドースされないいずれのテストデータ・ペイロード・コピーについても、アプリケーション・テスタ114は、処理のために、テストデータ・ペイロードのコピーを、コンピュータ・ネットワーク116を介してコンピュータ102におけるコンピュータ・ソフトウェア・アプリケーション100に送ることはできない。このように、アプリケーション・テスタ114は、単に、ライブラリ112内の可能性のある全てのテストデータ・ペイロードを、コンピュータ・ネットワーク116を介してコンピュータ・ソフトウェア・アプリケーション100に送って可能性のある全てのセキュリティ脆弱性をテストするのではなく、また、任意に減少させたテストデータ・ペイロードのセットをコンピュータ・ネットワーク116を介してコンピュータ・ソフトウェア・アプリケーション100に送るのでもなく、コンピュータ・ソフトウェア・アプリケーション100におけるセキュリティ脆弱性を明らかにする可能性が最も大きいテストデータ・ペイロードだけを送ることができる。
図1に示される要素のいずれも、コンピュータ・ハードウェアにおいて、及び/又は従来技術による非一時的コンピュータ可読媒体に具体化されたコンピュータ・ソフトウェアにおいて実装することができる。
ここで、本発明の1つの実施形態に従って動作する、図1のシステムの動作の例示的な方法の簡単化されたフローチャート図である、図2を参照する。図2の方法において、第1のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションによって使用されるデータチェック・ソフトウェアを識別することができる(ステップ200)。第2のコンピュータは、識別されたデータチェック・ソフトウェアのコピーを実行するように構成することができる(ステップ202)。第2のコンピュータに格納された1つ又は複数のテストデータ・ペイロード・コピーを、処理のために第2のコンピュータにおける識別されたデータチェック・ソフトウェアのコピーに与えることができ(ステップ204)、テストデータ・ペイロードは、1つ又は複数の既知のセキュリティ脆弱性についてテストするように構成することができる。処理されたテストデータ・ペイロード・コピーが、さらなる処理のためにエンドースされた場合には(ステップ206)、テストデータ・ペイロードのコピーを、処理のために、コンピュータ・ネットワークを介して第1のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションに送ることができ(ステップ208)、そうでない場合には、テストデータ・ペイロードのコピーを、処理のために、コンピュータ・ネットワークを介して第1のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションに送ることはできない(ステップ208)。
図1のシステム及び図2の方法を、以下の例の文脈において示すことができ、ここでエバリュエータ104は、IBM AppScanを用いて実装することができる(AppScanは、インターナショナル・ビジネス・マシーンズ・コーポレーションの登録商標である)。例えばコンピュータ102において、エバリュエータ104によって検出されるものとしてサニタイザ及びバリデータを識別するように、コンピュータ102によってホストされるコンピュータ・ソフトウェア・アプリケーション100を装備することができる。エバリュエータ104は、識別されたサニタイザ及びバリデータを、ニューヨーク州アーモンク所在のIBMコーポレーションから市販されているIBM AppScan Enterprise Editionを用いて実装することができるペイロード・テスタ106に報告する。ペイロード・テスタ106は、識別されたサニタイザ及びバリデータのコピーを実行するように、コンピュータ108を構成することができる。ペイロード・テスタ106は、以下のテストデータ・ペイロードのコピー

Figure 0006338073

を以下のサニタイザ

Figure 0006338073

などのコンピュータ108上で実行されている識別されたサニタイザのコピーに与え、このサニタイザは、テストデータ・ペイロード・コピーを

Figure 0006338073

にミューテートさせる。
テストデータ・ペイロードは、クロスサイト・スクリプティング(XSS)脆弱性についてテストするように構成することができる。ミューテーションが、サニタイザのコピーによる処理の後にセキュリティ脆弱性についてテストするように構成されたままであることを、ペイロード・テスタ106が判断すると、アプリケーション・テスタ114は、処理のために、テストデータ・ペイロードのコピーを、コンピュータ・ネットワーク116を介してコンピュータ102におけるコンピュータ・ソフトウェア・アプリケーション100に送ることができる。
ペイロード・テスタ106はまた、以下のテストデータ・ペイロードのコピー

Figure 0006338073

を、コンピュータ108上で実行されている識別されたバリデータのコピーにも与える。テストデータ・ペイロードは同様に、クロスサイト・スクリプティング(XSS)脆弱性についてテストするように構成することができる。バリデータは、テストデータ・ペイロード・コピーを、さらなる処理のためにテストデータ・ペイロードを利用できないことをバリデータの文脈において示すブール値「偽」にマッピングするので、ペイロード・テスタ106は、バリデータのコピーによる処理後にセキュリティ脆弱性についてテストするために、テストデータ・ペイロードを用いることができないと判断することがある。従って、アプリケーション・テスタ114は、テストデータ・ペイロード・コピーを、処理のために、コンピュータ・ネットワーク116を介してコンピュータ102におけるコンピュータ・ソフトウェア・アプリケーション100に送ることはできない。
ここで図3を参照すると、ブロック図300は、本発明の1つの実施形態に説明されるような、本発明の1つ又は複数のコンポーネント/手段(例えば、図1〜図2との関連で説明されるコンポーネント/手段)を実装できるコンピュータ・システムの例示的なハードウェア実装を示す。
図示されるように、少なくとも1つのリソースへのアクセスを制御するための技術は、コンピュータ・バス318又は代替的な接続構成を介して結合されたプロセッサ310、メモリ312、I/Oデバイス314、及びネットワーク・インターフェース316によって実装することができる。
本明細書で用いられる場合、用語「プロセッサ」は、例えば、CPU(中央演算処理ユニット)及び/又は他の処理回路を含むものなど、任意の処理デバイスを含むように意図されること認識されたい。さらに、用語「プロセッサ」は、1つより多い処理デバイスを指すことができること、及び、処理デバイスと関連した種々の要素を他の処理デバイスにより共有できることも理解されたい。
本明細書で用いられる場合、用語「メモリ」は、例えば、RAM、ROM、固定メモリ・デバイス(例えばハード・ドライブ)、取り外し可能メモリ・デバイス(例えば、ディスケット)、フラッシュ・メモリ等のような、プロセッサ又はCPUと関連したメモリを含むことを意図している。そうしたメモリは、コンピュータ可読ストレージ媒体と考えることができる。
さらに、本明細書で用いられる場合、語句「入力/出力デバイス」又は「I/Oデバイス」は、例えば、データを処理ユニットに入力するための1つ又は複数の入力デバイス(例えば、キーボード、マウス、スキャナ等)、及び/又は処理ユニットと関連した結果を提示するための1つ又は複数の出力デバイス(例えば、スピーカ、ディスプレイ、プリンタ等)を含むことを意図している。
図中のフローチャート及びブロック図は、本発明の種々の実施形態に記載されるような、システム、方法及びコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能及び動作を示す。これに関して、フローチャート及びブロック図中の各ブロックは、モジュール、セグメント、又はコードの部分を表すことができ、これは、指定された論理機能を実施するための1つ又は複数の実行可能命令を含む。また、幾つかの代替的な実施において、ブロック内に示された機能は、図中に示された順序とは異なる順序で行い得ることにも留意されたい。例えば、連続して示される2つのブロックを、実際には、実質的に同時に実行することができ、又は場合により、関与する機能に応じて、ブロックを逆の順番で実行することもできる。また、ブロック図及び/又はフローチャート図中の各プロック、並びにブロック図及び/又はフローチャート図中のブロックの組み合わせは、指定された機能又は動作を実行する専用のハードウェア・ベースのシステム、又は専用のハードウェアとコンピュータ命令の組み合わせによって実施できることにも留意されたい。
上述の要素のいずれも、磁気又は光ストレージ媒体上に格納された、又はコンピュータ・ハードウェア内に埋め込まれたコンピュータ・プログラム命令の形態のような、コンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品として実装することができ、かつ、コンピュータによって実行すること又は他の方法でコンピュータにアクセスすることができることが認識されるであろう。
本明細書での方法及び装置は、特定のコンピュータ・ハードウェア又はソフトウェアに関連して説明された場合も又は説明されなかった場合もあるが、本明細書で説明される方法及び装置は、従来の技術を用いてコンピュータ・ハードウェア又はソフトウェアで容易に実装できることが認識される。
本発明が、1つ又は複数の特定の実施形態を参照して説明されたが、この説明は、全体として本発明を例証することを意図したものであり、本発明を示される実施形態に限定するものと解釈すべきではない。当業者であれば、種々の変更を思い付くことができ、それらの変更は、本明細書に具体的に示されないが、それにも関わらず、本発明の範囲内にあることが認識されるであろう。
100:コンピュータ・ソフトウェア・アプリケーション
102、108:コンピュータ
104:エバリュエータ
106:ペイロード・テスタ
110:データチェック・ソフトウェアのコピー
112:ペイロード・ライブラリ
114:アプリケーション・テスタ
116:コンピュータ・ネットワーク

Claims (24)

  1. コンピュータにより実施される、コンピュータ・ソフトウェア・アプリケーションをテストするための方法であって、
    第2のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションによって使用されるデータチェック・ソフトウェアのコピーを実行するように、第1のコンピュータを設定することと、
    前記第1のコンピュータにおいて前記データチェック・ソフトウェアの前記コピーを用いて、テストデータ・ペイロードに関連したセキュリティ脆弱性についてテストするように構成された前記テストデータ・ペイロードの第1のコピーを処理することと、
    前記テストデータ・ペイロードの前記第1のコピーが、さらなる処理のために前記第1のコンピュータにおいて前記データチェック・ソフトウェアの前記コピーにより保証されることを判断することと、
    前記テストデータ・ペイロードの前記第1のコピーが保証されると判断した場合に、前記テストデータ・ペイロードの第2のコピーを、コンピュータ・ネットワークを用いて前記第2のコンピュータにおける前記コンピュータ・ソフトウェア・アプリケーションに送ることと、
    を含む方法。
  2. 前記コンピュータ・ソフトウェア・アプリケーションによって使用される前記データチェック・ソフトウェアを識別することをさらに含む、請求項1に記載の方法。
  3. 前記識別することは、前記データチェック・ソフトウェアがサニタイザ及びバリデータのいずれかであると判断することを含む、請求項2に記載の法。
  4. 前記識別することを実行するように、前記コンピュータ・ソフトウェア・アプリケーションを計装することをさらに含む、請求項2に記載の方法。
  5. 前記テストデータ・ペイロードは、前記第1のコンピュータに格納される、請求項1から請求項4までのいずれか1項に記載の方法。
  6. 前記テストデータ・ペイロードは、前記セキュリティ脆弱性を利用するように設計された悪意のあるペイロードを含む、請求項1から請求項5までのいずれか1項に記載の方法。
  7. 前記テストデータ・ペイロードの前記第1のコピーが、さらなる処理のために前記第1のコンピュータにおいて前記データチェック・ソフトウェアの前記コピーにより保証されることを判断することは、前記テストデータ・ペイロードの前記第1のコピーが、前記第1のコンピュータにおいて前記データチェック・ソフトウェアの前記コピーにより処理された後に前記テストデータ・ペイロードに関連したセキュリティ脆弱性についてテストするように構成されていることを判断することを含む、請求項1から請求項6までのいずれか1項に記載の方法。
  8. 前記コンピュータ・ソフトウェア・アプリケーションは、ウェブ・アプリケーションを含む、請求項1から請求項7までのいずれか1項に記載の方法。
  9. コンピュータ・ソフトウェア・アプリケーションをテストするためのシステムであって、
    第2のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションによって使用されるデータチェック・ソフトウェアのコピーを実行するように、第1のコンピュータを設定し、
    前記第1のコンピュータにおいて前記データチェック・ソフトウェアの前記コピーを用いて、テストデータ・ペイロードに関連したセキュリティ脆弱性についてテストするように構成された前記テストデータ・ペイロードの第1のコピーを処理し、
    前記テストデータ・ペイロードの前記第1のコピーが、さらなる処理のために前記第1のコンピュータにおいて前記データチェック・ソフトウェアの前記コピーにより保証されることを判断する、
    ように構成されたペイロード・テスタと、
    前記ペイロード・テスタが前記テストデータ・ペイロードの前記第1のコピーが保証されると判断した場合に、前記テストデータ・ペイロードの第2のコピーを、コンピュータ・ネットワークを用いて前記第2のコンピュータにおける前記コンピュータ・ソフトウェア・アプリケーションに送るように構成されたアプリケーション・テスタと、
    を含むシステム。
  10. 前記コンピュータ・ソフトウェア・アプリケーションによって使用される前記データチェック・ソフトウェアを識別するように構成されたエバリュエータをさらに含む、請求項9に記載のシステム。
  11. 前記データチェック・ソフトウェアは、サニタイザ及びバリデータのいずれかである、請求項10に記載のシステム。
  12. 前記コンピュータ・ソフトウェア・アプリケーションが前記コンピュータ・ソフトウェア・アプリケーションによって使用される前記データチェック・ソフトウェアを識別するように計装される、請求項10に記載のシステム。
  13. 記テストデータ・ペイロードは、前記第1のコンピュータに格納される、請求項9から請求項12までのいずれか1項に記載のシステム。
  14. 前記テストデータ・ペイロードは、前記セキュリティ脆弱性を利用するように設計された悪意のあるペイロードを含む、請求項9から請求項13までのいずれか1項に記載のシステム。
  15. 前記ペイロード・テスタは、前記テストデータ・ペイロードの前記第1のコピーが、前記第1のコンピュータにおいて前記データチェック・ソフトウェアの前記コピーにより処理された後に前記テストデータ・ペイロードに関連したセキュリティ脆弱性についてテストするように構成されていることを判断するように構成されたものである、請求項9から請求項14までのいずれか1項に記載のシステム。
  16. 前記コンピュータ・ソフトウェア・アプリケーションは、ウェブ・アプリケーションを含む、請求項9から請求項15までのいずれか1項に記載のシステム。
  17. コンピュータ・ソフトウェア・アプリケーションをテストするためのコンピュータ・プログラムであって、第1のコンピュータにおいて実行されたときに、
    第2のコンピュータにおけるコンピュータ・ソフトウェア・アプリケーションによって使用されるデータチェック・ソフトウェアのコピーを実行するように、前記第1のコンピュータを設定し、
    前記第1のコンピュータにおいて前記データチェック・ソフトウェアの前記コピーを用いて、テストデータ・ペイロードに関連したセキュリティ脆弱性についてテストするように構成された前記テストデータ・ペイロードの第1のコピーを処理し、
    前記テストデータ・ペイロードの前記第1のコピーが、さらなる処理のために前記第1のコンピュータにおいて前記データチェック・ソフトウェアの前記コピーにより保証されることを判断し、
    前記テストデータ・ペイロードの前記第1のコピーが保証されると判断した場合に、前記テストデータ・ペイロードの第2のコピーを、コンピュータ・ネットワークを用いて前記第2のコンピュータにおける前記コンピュータ・ソフトウェア・アプリケーションに送る、
    ように前記第1のコンピュータを動作させるように構成された、コンピュータ・プログラム。
  18. 前記第1のコンピュータによって実行されたときに、前記コンピュータ・ソフトウェア・アプリケーションによって使用される前記データチェック・ソフトウェアを識別するように、前記第1のコンピュータを動作させるように構成された、請求項17に記載のコンピュータ・プログラム。
  19. 前記データチェック・ソフトウェアは、サニタイザ及びバリデータのいずれかである、請求項18に記載のコンピュータ・プログラム。
  20. 記コンピュータ・ソフトウェア・アプリケーションが前記コンピュータ・ソフトウェア・アプリケーションによって使用される前記データチェック・ソフトウェアを識別するように計装される、請求項18に記載のコンピュータ・プログラム。
  21. 記テストデータ・ペイロードは、前記第1のコンピュータに格納される、請求項17から請求項20までのいずれか1項に記載のコンピュータ・プログラム。
  22. 前記テストデータ・ペイロードは、前記セキュリティ脆弱性を利用するように設計された悪意のあるペイロードを含む、請求項17から請求項21までのいずれか1項に記載のコンピュータ・プログラム。
  23. 前記第1のコンピュータによって実行されたときに、前記テストデータ・ペイロードの前記第1のコピーが、前記第1のコンピュータにおいて前記データチェック・ソフトウェアの前記コピーにより処理された後に前記テストデータ・ペイロードに関連したセキュリティ脆弱性についてテストするように構成されていることを判断するように、前記第1のコンピュータを動作させるように構成された、請求項17から請求項22までのいずれか1項に記載のコンピュータ・プログラム。
  24. 前記コンピュータ・ソフトウェア・アプリケーションは、ウェブ・アプリケーションを含む、請求項17から請求項23までのいずれか1項に記載のコンピュータプログラム。
JP2016516264A 2013-05-29 2014-03-24 コンピュータ・ネットワークを用いてコンピュータ・ソフトウェア・アプリケーションをテストするための方法、システム及びコンピュータ・プログラム Active JP6338073B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/904,523 2013-05-29
US13/904,523 US9135152B2 (en) 2013-05-29 2013-05-29 Optimizing test data payload selection for testing computer software applications via computer networks
PCT/IB2014/060098 WO2014191847A1 (en) 2013-05-29 2014-03-24 Optimizing test data payload selection for testing computer software applications using computer networks

Publications (2)

Publication Number Publication Date
JP2016530587A JP2016530587A (ja) 2016-09-29
JP6338073B2 true JP6338073B2 (ja) 2018-06-06

Family

ID=51986583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016516264A Active JP6338073B2 (ja) 2013-05-29 2014-03-24 コンピュータ・ネットワークを用いてコンピュータ・ソフトウェア・アプリケーションをテストするための方法、システム及びコンピュータ・プログラム

Country Status (4)

Country Link
US (2) US9135152B2 (ja)
JP (1) JP6338073B2 (ja)
CN (1) CN105164691B (ja)
WO (1) WO2014191847A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10423793B2 (en) * 2014-06-19 2019-09-24 Entit Software Llc Install runtime agent for security test
CN105046113B (zh) * 2015-06-10 2018-01-05 国家计算机网络与信息安全管理中心 基于随机性检验的Android软件加固检测方法
CN105094906B (zh) * 2015-07-22 2019-11-19 网易(杭州)网络有限公司 一种游戏服务器热更新方法、装置与系统
CN106874767B (zh) * 2015-12-14 2019-10-01 阿里巴巴集团控股有限公司 一种程序漏洞的检测方法、终端及服务器
US10872157B2 (en) * 2017-12-22 2020-12-22 Royal Bank Of Canada Reinforcement-based system and method for detecting system vulnerabilities
US11023590B2 (en) 2018-11-28 2021-06-01 International Business Machines Corporation Security testing tool using crowd-sourced data
CN110275828B (zh) * 2019-06-06 2022-11-22 江西理工大学 一种计算机软件优化测试数据有效载荷的方法
US11899798B2 (en) 2020-05-08 2024-02-13 Hcl Technologies Limited System and method for verifying a regex sanitizer and a validator
CN113836031B (zh) * 2021-09-29 2024-05-10 长江存储科技有限责任公司 用于嵌入式系统测试的系统、方法、设备以及介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7975296B2 (en) * 2002-02-07 2011-07-05 Oracle International Corporation Automated security threat testing of web pages
JP2006227958A (ja) 2005-02-18 2006-08-31 Nomura Research Institute Ltd テストデータ生成システム及びテストデータ生成方法
US7849448B2 (en) 2005-06-01 2010-12-07 Crosscheck Networks Technique for determining web services vulnerabilities and compliance
US8789187B1 (en) * 2006-09-28 2014-07-22 Whitehat Security, Inc. Pattern tracking and capturing human insight in a web application security scanner
JP4961949B2 (ja) 2006-10-30 2012-06-27 富士通株式会社 生成プログラム、検査プログラム、生成装置、および生成方法
WO2008060517A2 (en) 2006-11-14 2008-05-22 Wms Gaming Inc. Wagering game machine with three-dimensional wagering game effects
JP5082555B2 (ja) 2007-04-11 2012-11-28 富士通株式会社 セキュリティ検査用モデル生成装置,セキュリティ検査用モデル検査装置,およびセキュリティ検査用モデル生成プログラム
US8051486B2 (en) * 2007-05-24 2011-11-01 Oracle International Corporation Indicating SQL injection attack vulnerability with a stored value
US8650651B2 (en) 2008-02-08 2014-02-11 International Business Machines Corporation Method and apparatus for security assessment of a computing platform
KR101001132B1 (ko) 2008-02-22 2010-12-15 엔에이치엔비즈니스플랫폼 주식회사 웹 어플리케이션의 취약성 판단 방법 및 시스템
US9264443B2 (en) 2008-08-25 2016-02-16 International Business Machines Corporation Browser based method of assessing web application vulnerability
CN101551842A (zh) * 2009-05-05 2009-10-07 天津大学 一种基于模型驱动的安全测试方法
US8365290B2 (en) 2009-05-15 2013-01-29 Frederick Young Web application vulnerability scanner
WO2011073982A1 (en) * 2009-12-15 2011-06-23 Seeker Security Ltd. Method and system of runtime analysis
US8458798B2 (en) * 2010-03-19 2013-06-04 Aspect Security Inc. Detection of vulnerabilities in computer systems
CN101814053B (zh) * 2010-03-29 2013-03-13 中国人民解放军信息工程大学 一种基于功能模型的二进制代码漏洞发现方法
US9300677B2 (en) * 2010-10-13 2016-03-29 International Business Machines Corporation Data security system
US9747187B2 (en) 2010-10-27 2017-08-29 International Business Machines Corporation Simulating black box test results using information from white box testing
US8769696B2 (en) 2011-09-29 2014-07-01 International Business Machines Corporation Automated detection of flaws and incompatibility problems in information flow downgraders

Also Published As

Publication number Publication date
CN105164691A (zh) 2015-12-16
CN105164691B (zh) 2017-11-21
US20140359370A1 (en) 2014-12-04
WO2014191847A1 (en) 2014-12-04
US9135153B2 (en) 2015-09-15
US20140359779A1 (en) 2014-12-04
JP2016530587A (ja) 2016-09-29
US9135152B2 (en) 2015-09-15

Similar Documents

Publication Publication Date Title
JP6338073B2 (ja) コンピュータ・ネットワークを用いてコンピュータ・ソフトウェア・アプリケーションをテストするための方法、システム及びコンピュータ・プログラム
US9838412B2 (en) Computer software application self-testing
US9201769B2 (en) Progressive black-box testing of computer software applications
US8695098B2 (en) Detecting security vulnerabilities in web applications
US9262309B2 (en) Optimizing test data payload selection for testing computer software applications that employ data sanitizers and data validators
US9747187B2 (en) Simulating black box test results using information from white box testing
US10061682B2 (en) Detecting race condition vulnerabilities in computer software applications
US10019581B2 (en) Identifying stored security vulnerabilities in computer software applications
US9442829B2 (en) Detecting error states when interacting with web applications
JP5852676B2 (ja) 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム
US11005877B2 (en) Persistent cross-site scripting vulnerability detection
US20160188443A1 (en) Testing application internal modules with instrumentation
US20150095891A1 (en) Eliminating redundant interactions when testing computer software applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170228

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171102

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180403

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20180403

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180424

R150 Certificate of patent or registration of utility model

Ref document number: 6338073

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250