JP2011113315A - Program, apparatus and method for extracting verification object - Google Patents

Program, apparatus and method for extracting verification object Download PDF

Info

Publication number
JP2011113315A
JP2011113315A JP2009269165A JP2009269165A JP2011113315A JP 2011113315 A JP2011113315 A JP 2011113315A JP 2009269165 A JP2009269165 A JP 2009269165A JP 2009269165 A JP2009269165 A JP 2009269165A JP 2011113315 A JP2011113315 A JP 2011113315A
Authority
JP
Japan
Prior art keywords
display attribute
attribute item
input
message data
hidden field
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.)
Granted
Application number
JP2009269165A
Other languages
Japanese (ja)
Other versions
JP5381649B2 (en
Inventor
Yuji Yamaoka
裕司 山岡
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2009269165A priority Critical patent/JP5381649B2/en
Publication of JP2011113315A publication Critical patent/JP2011113315A/en
Application granted granted Critical
Publication of JP5381649B2 publication Critical patent/JP5381649B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To efficiently extract hidden attribute items of a Web application involving potential security issues as verification objects. <P>SOLUTION: A verification object extraction apparatus 1 extracts request parameters 24 from request data 21a and 21b and extracts hidden attribute items 23 from response data 22a and 22b. The verification object extraction apparatus 1 further extracts hidden attribute items having values which are not included in the request parameters 24 from the extracted hidden attribute items 23 as unentered hidden attribute items 25. The verification object extraction apparatus 1 then extracts duplicates between first message data 20a and second message data 20b as verification object hidden attribute items 26. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明は、構造化文書提供アプリケーションの検証対象となる非表示属性項目を抽出する検証対象抽出プログラム、検証対象抽出装置、および検証対象抽出方法に関する。   The present invention relates to a verification target extraction program, a verification target extraction apparatus, and a verification target extraction method for extracting a non-display attribute item to be verified by a structured document providing application.

ウェブアプリケーション(構造化文書提供アプリケーション)の実装にあたり、ウェブアプリケーションの脆弱性を突いた外部からの攻撃に対する備えは、欠かせない。ウェブアプリケーションを脆弱にする要因は、多岐にわたるが、その1つに構造化文書の非表示属性項目の不正操作がある。構造化文書の非表示属性の不正操作とは、たとえば、HTML(HyperText Markup Language)のhiddenフィールドの不正操作である。   In implementing a web application (structured document providing application), it is indispensable to prepare against external attacks that exploit the vulnerabilities of the web application. There are a variety of factors that make web applications vulnerable. One of them is an illegal operation of a non-display attribute item of a structured document. The illegal operation of the non-display attribute of the structured document is, for example, an illegal operation of the hidden field of HTML (HyperText Markup Language).

hiddenフィールドは、ウェブブラウザ(構造化文書閲覧アプリケーション)の画面に表示されないHTMLのフォーム項目(非表示属性項目)であり、ウェブブラウザからリクエストを送信するときにユーザの入力データなどとともにウェブサーバに送信される。hiddenフィールドの値は、通常であれば、ユーザによって書き換えられることがなく、あるページから次のページへのパラメータの受け渡しなど、複数のページにまたがった情報の保持に利用される。   The hidden field is an HTML form item (non-display attribute item) that is not displayed on the screen of the web browser (structured document viewing application), and is sent to the web server along with user input data when sending a request from the web browser. Is done. The value of the hidden field is normally not rewritten by the user, and is used for holding information across a plurality of pages, such as passing parameters from one page to the next.

ここで、hiddenフィールドがセキュリティ上の問題の要因となる場合の一例について説明する。図20は、サイト例example.comのHTMLページの一例を示す図である。例示したサイトexample.comからのレスポンスのHTMLページ95は、hiddenフィールド名96が「to」で、hiddenフィールド値97が「admin@example.com」のhiddenフィールドを含んでいる。このhiddenフィールドを含むフォームがsubmitされることによりウェブサーバから「admin@example.com」宛てにメールを送信するとする。このとき、ユーザが名前「to」の値を他の任意のメールアドレスに変更してウェブサーバにリクエストした場合、ウェブサーバは、変更後のメールアドレス宛にメールを送信してしまうかもしれない。もし、ウェブアプリケーションの仕様が変更後のメールアドレス宛てのメール送信を許していた場合、このウェブサーバは、利用制限が弱いメール送信サーバとして悪用されかねず、このような仕様はセキュリティ上好ましくない。この場合において、メールの送信先アドレスは、hiddenフィールドではなく、ウェブサーバ側が保持しておくことが妥当とされる。   Here, an example in which the hidden field causes a security problem will be described. FIG. 20 shows a site example “example. It is a figure which shows an example of the HTML page of com. The example site example. The response HTML page 95 includes a hidden field with a hidden field name 96 of “to” and a hidden field value 97 of “admin@example.com”. Assume that a mail is sent from the web server to “admin@example.com” by submitting a form including the hidden field. At this time, when the user changes the value of the name “to” to another arbitrary mail address and makes a request to the web server, the web server may transmit mail to the mail address after the change. If the specification of the web application allows mail transmission to the mail address after the change, this web server may be abused as a mail transmission server with weak usage restrictions, and such a specification is not preferable in terms of security. In this case, it is appropriate that the web server side holds the mail transmission destination address, not the hidden field.

そこで、安全なウェブアプリケーションを開発するために、セキュリティ上の問題を有する、あるいは有するおそれのあるhiddenフィールドを検出するための提案がなされている。   Therefore, in order to develop a secure web application, proposals have been made to detect hidden fields that have or may have security problems.

たとえば、ブラウザで巡回したページのhiddenフィールドの情報を収集して提示する方法がある。検査者や開発者は、提示されたhiddenフィールドからセキュリティ上の問題を有するhiddenフィールドを抽出することができる。しかし、この方法は、セキュリティ上の問題を有するhiddenフィールドの抽出作業を検査者や開発者に委ねることとなり、ブラウザが巡回対象とするページが増大すると作業負担が過大になる。   For example, there is a method of collecting and presenting information in the hidden field of a page visited by a browser. The inspector or developer can extract a hidden field having a security problem from the presented hidden field. However, this method leaves the hidden field extraction work having security problems to an inspector or a developer, and the work load becomes excessive when the number of pages to be visited by the browser increases.

また、検査者や開発者がhiddenフィールドのパラメータを変更してウェブサーバにリクエストをおこない、そのレスポンスを検証することによりセキュリティ上の問題を有するhiddenフィールドを検出する方法がある。しかし、hiddenフィールドのパラメータは、通常のブラウザ上で変更することができないため、この方法は、hiddenフィールドのパラメータを変更すること自体にも手間を要する。さらに、この方法は、変更作業を自動化すると、レスポンスからhiddenフィールドがセキュリティ上の問題を有するか否かを判定する精度が低下する。   In addition, there is a method in which an inspector or a developer changes a parameter of the hidden field, makes a request to the web server, and verifies the response to detect the hidden field having a security problem. However, since the parameter of the hidden field cannot be changed on a normal browser, this method requires time and effort to change the parameter of the hidden field itself. Further, in this method, when the change operation is automated, the accuracy of determining whether or not the hidden field has a security problem from the response decreases.

また、通信内容に含まれるセッション追跡パラメータにもとづいて、ウェブサイトの脆弱性を分析する方法がある。この方法は、通信内容に含まれる各種パラメータに優先度を付けて評価することにより、セッション追跡パラメータとして利用されている可能性の高いパラメータを抽出する。しかし、この方法は、セッションIDと比較して多様な値を取りえるとともに、個人情報との関連性が必ずしも高くないhiddenフィールドのパラメータに優先度を付ける場合に精度が低下する。   There is also a method for analyzing the vulnerability of a website based on session tracking parameters included in communication contents. This method extracts parameters that are highly likely to be used as session tracking parameters by assigning priorities to various parameters included in communication contents and evaluating them. However, this method can take various values as compared with the session ID, and the accuracy is lowered when the priority is given to the parameter of the hidden field that is not necessarily highly related to the personal information.

特許第4170243号公報Japanese Patent No. 4170243 特許第3896486号公報Japanese Patent No. 3896486

上記したように、安全なウェブアプリケーションを開発するために、hiddenフィールドのような非表示属性項目のなかからセキュリティ上の問題を有するパラメータを検出するための提案がいくつかなされている。しかし、これらの方法は、検査者や開発者などの作業者の負担が過大であったり、セキュリティ上の問題を有するパラメータを期待する精度で検出できなかったりするため、必ずしも使い勝手のよい方法とはいえなかった。   As described above, in order to develop a secure web application, some proposals have been made to detect a parameter having a security problem from hidden attribute items such as a hidden field. However, these methods are not always easy to use because the burden on workers such as inspectors and developers is excessive, and parameters with security problems cannot be detected with the expected accuracy. I couldn't.

本発明はこのような点に鑑みてなされたものであり、セキュリティ上の問題を有する、あるいは有するおそれのあるウェブアプリケーションの検証対象となる非表示属性項目を効率よく抽出可能な検証対象抽出プログラム、検証対象抽出装置、および検証対象抽出方法を提供することを目的とする。   The present invention has been made in view of such a point, and a verification target extraction program capable of efficiently extracting a non-display attribute item that is a verification target of a web application that has or may have a security problem, An object of the present invention is to provide a verification target extraction apparatus and a verification target extraction method.

上記課題を解決するために、コンピュータを、構造化文書提供アプリケーションの検証対象となる非表示属性項目を抽出する検証対象抽出装置として機能させる検証対象抽出プログラムが提供される。   In order to solve the above problem, a verification target extraction program is provided that causes a computer to function as a verification target extraction device that extracts a non-display attribute item to be verified by a structured document providing application.

検証対象抽出装置は、リクエストパラメータ抽出手段と、非表示属性項目抽出手段と、未入力非表示属性項目抽出手段と、検証対象非表示属性項目抽出手段とを備える。
リクエストパラメータ抽出手段は、第1のメッセージデータ、および第2のメッセージデータに含まれるリクエストデータからリクエストパラメータを抽出して、リクエストパラメータをリクエストパラメータ記憶手段に格納する。第1のメッセージデータは、構造化文書提供アプリケーションを実装したサーバと、サーバが提供する構造化文書の閲覧アプリケーションを実装するクライアントとの一連の通信の内容を含む。第2のメッセージデータは、第1のメッセージデータが含む一連の通信と異なるタイミングの一連の通信の内容を含む。一連の通信の内容は、クライアントからサーバへのリクエストデータと、サーバからクライアントへのレスポンスデータを含む。
The verification target extraction device includes request parameter extraction means, non-display attribute item extraction means, non-input non-display attribute item extraction means, and verification target non-display attribute item extraction means.
The request parameter extraction unit extracts the request parameter from the request data included in the first message data and the second message data, and stores the request parameter in the request parameter storage unit. The first message data includes the contents of a series of communications between the server on which the structured document providing application is installed and the client on which the structured document browsing application provided by the server is installed. The second message data includes the contents of a series of communications at a different timing from the series of communications included in the first message data. The contents of the series of communication include request data from the client to the server and response data from the server to the client.

非表示属性項目抽出手段は、第1のメッセージデータ、および第2のメッセージデータに含まれるレスポンスデータから非表示属性項目を抽出して、非表示属性項目を非表示属性項目記憶手段に格納する。   The non-display attribute item extraction unit extracts the non-display attribute item from the response data included in the first message data and the second message data, and stores the non-display attribute item in the non-display attribute item storage unit.

未入力非表示属性項目抽出手段は、非表示属性項目記憶手段が記憶する非表示属性項目のうちから、リクエストパラメータ記憶手段が記憶するリクエストパラメータに含まれていない値を有する非表示属性項目を未入力非表示属性項目として抽出する。そして、未入力非表示属性項目抽出手段は、未入力非表示属性項目を未入力非表示属性項目記憶手段に格納する。   The non-input non-display attribute item extraction unit is configured to delete a non-display attribute item having a value not included in the request parameter stored in the request parameter storage unit from among the non-display attribute items stored in the non-display attribute item storage unit. Extract as input hidden attribute item. Then, the non-input non-display attribute item extraction unit stores the non-input non-display attribute item in the non-input non-display attribute item storage unit.

検証対象非表示属性項目抽出手段は、未入力非表示属性項目記憶手段が記憶する未入力非表示属性項目のうち、第1のメッセージデータに含まれた未入力非表示属性項目と第2のメッセージデータに含まれた未入力非表示属性項目とで重複する未入力非表示属性項目を検証対象非表示属性項目として抽出する。   The verification target non-display attribute item extraction unit includes the non-input non-display attribute item included in the first message data and the second message among the non-input non-display attribute items stored in the non-input non-display attribute item storage unit. A non-input hidden attribute item that overlaps with the non-input hidden attribute item included in the data is extracted as a verification target hidden attribute item.

上記の検証対象抽出プログラム、検証対象抽出装置、および検証対象抽出方法によれば、セキュリティ上の問題を有する、あるいは有するおそれのある構造化文書提供アプリケーションの検証対象となる非表示属性項目を効率よく抽出することができる。   According to the above-described verification target extraction program, verification target extraction device, and verification target extraction method, it is possible to efficiently display hidden attribute items to be verified by a structured document providing application that has or may have a security problem. Can be extracted.

第1の実施形態の検証対象抽出装置のブロック図である。It is a block diagram of the verification object extraction device of a 1st embodiment. 第2の実施形態の検証対象抽出システムの構成例を示す図である。It is a figure which shows the structural example of the verification object extraction system of 2nd Embodiment. 第2の実施形態の検証対象抽出装置のハードウェア構成例を示す図である。It is a figure which shows the hardware structural example of the verification object extraction apparatus of 2nd Embodiment. 第2の実施形態の検証対象hiddenフィールド抽出部の機能ブロック図である。It is a functional block diagram of the verification object hidden field extraction part of 2nd Embodiment. 第2の実施形態のHTTPメッセージ列生成部の機能ブロック図である。It is a functional block diagram of the HTTP message sequence generation part of a 2nd embodiment. 第2の実施形態のブラウザ操作スクリプトのSelenese形式例を示す図である。It is a figure which shows the Example format of the browser operation script of 2nd Embodiment. 第2の実施形態のウェブアプリケーションが提供するHTML文書表示例を示す図である。It is a figure which shows the example of a HTML document display which the web application of 2nd Embodiment provides. 第2の実施形態のウェブアプリケーションが提供するHTML文書表示例を示す図である。It is a figure which shows the example of a HTML document display which the web application of 2nd Embodiment provides. 第2の実施形態のHTTPメッセージ列生成制御処理のフローチャートである。It is a flowchart of the HTTP message string generation control process of the second embodiment. 第2の実施形態のHTTPメッセージ列取得処理のフローチャートである。It is a flowchart of the HTTP message string acquisition process of 2nd Embodiment. 第2の実施形態の第1のHTTPメッセージ列の一例を示す図である。It is a figure which shows an example of the 1st HTTP message sequence of 2nd Embodiment. 第2の実施形態の第1のHTTPメッセージ列の一例を示す図である。It is a figure which shows an example of the 1st HTTP message sequence of 2nd Embodiment. 第2の実施形態の第2のHTTPメッセージ列の一例を示す図である。It is a figure which shows an example of the 2nd HTTP message sequence of 2nd Embodiment. 第2の実施形態の第2のHTTPメッセージ列の一例を示す図である。It is a figure which shows an example of the 2nd HTTP message sequence of 2nd Embodiment. 第2の実施形態の未入力hiddenフィールド解析処理のフローチャートである。It is a flowchart of the non-input hidden field analysis process of 2nd Embodiment. 第2の実施形態の未入力hiddenフィールド抽出処理のフローチャートである。It is a flowchart of the non-input hidden field extraction process of 2nd Embodiment. 第2の実施形態のリクエストパラメータ値集合の一例を示す図である。It is a figure which shows an example of the request parameter value set of 2nd Embodiment. 第2の実施形態の未入力hiddenフィールド集合の一例を示す図である。It is a figure which shows an example of the non-input hidden field set of 2nd Embodiment. 第2の実施形態の検証対象hiddenフィールド集合の一例を示す図である。It is a figure which shows an example of the verification object hidden field set of 2nd Embodiment. サイト例example.comのHTMLページの一例を示す図である。Example site example. It is a figure which shows an example of the HTML page of com.

実施の形態を説明する前に、まず、実施の形態が抽出する対象となるhiddenフィールド、すなわち、セキュリティ上問題のあるhiddenフィールドについて説明する。
たとえば、あるWebサーバは、レスポンス中のhiddenフィールドの値にサーバ管理者のメールアドレスto=admin@example.com(名前が to で、値が admin@example.com)を格納しているとする。そして、このhiddenフィールドを含むフォームをsubmitすると、サーバでadmin@example.com宛にメールが送信されるとする。このとき、パラメーター to の値を他の任意のメールアドレスに変更してリクエストすると、サーバから変更後のメールアドレス宛にメールが送られるかもしれない。もし、そのような仕組みになっていたとすると、このサーバは利用制限が弱いメール送信サーバとして悪用されかねず、セキュリティ上好ましくない。この例では、送信先メールアドレスはhiddenフィールドに設定せず、サーバ側に保持しておくのが妥当である。
Before describing the embodiment, first, a hidden field to be extracted by the embodiment, that is, a hidden field having a security problem will be described.
For example, a Web server stores the server administrator's email address to=admin@example.com (name is to and value is admin@example.com) in the hidden field value in the response. And if you submit a form that includes this hidden field, the server will send an email to admin@example.com. At this time, if you change the parameter to value to any other email address and request it, mail may be sent to the new email address from the server. If such a mechanism is used, this server may be abused as a mail transmission server with a weak usage restriction, which is not preferable in terms of security. In this example, it is reasonable to keep the destination email address on the server side, not in the hidden field.

上記のhiddenフィールドは、セキュリティ上問題のある使われ方の例であるが、妥当な使われ方も当然存在する。たとえば、利用者入力値の一時的な記憶場所として使用する場合や、ページやセッションを識別するためのIDとして使用する場合は、妥当な使われ方であると考えられる。反対に、これらと異なる使われ方をするhiddenフィールド、すなわち、初めからサーバが知っており、かつ、ブラウザに再送させる必要がない値が設定されたhiddenフィールドはセキュリティ上問題のある可能性が高いと判断できる。言い換えると、その値が過去に一度も入力(リクエスト)されておらず、かつ、いつでも同一の値が設定されるhiddenフィールドは「怪しいhiddenフィールド」とみなすことができる。開示の検証対象抽出装置は、このような怪しいhiddenフィールドを抽出するものである。   The hidden field above is an example of a usage that has security problems, but there are of course reasonable usages. For example, when used as a temporary storage location for user input values, or when used as an ID for identifying a page or session, it is considered to be an appropriate usage. On the other hand, hidden fields that are used differently from these fields, that is, hidden fields that the server knows from the beginning and set a value that does not need to be retransmitted by the browser, are likely to have a security problem. It can be judged. In other words, a hidden field in which the value has never been entered (requested) in the past and the same value is set at any time can be regarded as a “suspicious hidden field”. The disclosed verification target extraction apparatus extracts such a suspicious hidden field.

以下、実施の形態を図面を参照して説明する。
図1は、第1の実施形態の検証対象抽出装置のブロック図である。
第1の実施形態に係る検証対象抽出装置1は、第1のメッセージデータ20aと、第2のメッセージデータ20bから構造化文書提供アプリケーションの検証対象となる検証対象非表示属性項目26を抽出する。構造化文書は、たとえば、HTMLやXML(Extensible Markup Language)などのマークアップ言語で記述されたデータであり、タグや、パラメータなどからなる文字列を含む。
Hereinafter, embodiments will be described with reference to the drawings.
FIG. 1 is a block diagram of a verification target extraction apparatus according to the first embodiment.
The verification target extraction apparatus 1 according to the first embodiment extracts the verification target non-display attribute item 26 to be verified by the structured document providing application from the first message data 20a and the second message data 20b. The structured document is, for example, data described in a markup language such as HTML or XML (Extensible Markup Language), and includes a character string including tags and parameters.

第1のメッセージデータ20aは、構造化文書提供アプリケーションを実装したサーバ(たとえば、ウェブサーバ)と、サーバが提供する構造化文書の閲覧アプリケーション(たとえば、ウェブブラウザ)を実装するクライアントとの一連の通信の内容を有する。第1のメッセージデータ20aは、クライアントからサーバへのリクエストデータ21aと、サーバからクライアントへのレスポンスデータ22aを含む。第2のメッセージデータ20bは、第1のメッセージデータ20aが含む一連の通信と異なるタイミングの一連の通信の内容を有する。第2のメッセージデータ20bは、クライアントからサーバへのリクエストデータ21bと、サーバからクライアントへのレスポンスデータ22bを含む。レスポンスデータ22a、22bは、サーバが提供して、クライアントが閲覧するための構造化文書を含む。サーバとクライアントとの通信は、たとえば、HTTP(HyperText Transfer Protocol:ハイパーテキスト転送プロトコル)や、HTTPS(HyperText Transfer Protocol over Secure Sockets Layer)が用いられる。   The first message data 20a is a series of communications between a server (for example, a web server) in which a structured document providing application is implemented and a client in which a structured document viewing application (for example, a web browser) provided by the server is implemented. It has contents of. The first message data 20a includes request data 21a from the client to the server and response data 22a from the server to the client. The second message data 20b has the contents of a series of communications at different timings from the series of communications included in the first message data 20a. The second message data 20b includes request data 21b from the client to the server and response data 22b from the server to the client. The response data 22a, 22b includes a structured document provided by the server and viewed by the client. For example, HTTP (HyperText Transfer Protocol) or HTTPS (HyperText Transfer Protocol over Secure Sockets Layer) is used for communication between the server and the client.

サーバは、検証対象となる構造化文書提供アプリケーションによって構造化文書提供サービスをクライアントに提供する。検証対象非表示属性項目26は、非表示属性項目23であって、構造化文書提供アプリケーションの検証対象となるものである。非表示属性項目23は、構造化文書閲覧画面(たとえば、ウェブブラウザの画面)に表示されない項目(非表示属性項目)であり、たとえば、HTMLのhiddenフィールドである。   The server provides the structured document providing service to the client by the structured document providing application to be verified. The verification target non-display attribute item 26 is a non-display attribute item 23 and is a verification target of the structured document providing application. The non-display attribute item 23 is an item (non-display attribute item) that is not displayed on the structured document browsing screen (for example, a web browser screen), and is, for example, an HTML hidden field.

検証対象抽出装置1は、リクエストパラメータ抽出手段11と、非表示属性項目抽出手段12と、未入力非表示属性項目抽出手段15と、検証対象非表示属性項目抽出手段17とを備える。   The verification target extraction device 1 includes a request parameter extraction unit 11, a non-display attribute item extraction unit 12, a non-input non-display attribute item extraction unit 15, and a verification target non-display attribute item extraction unit 17.

リクエストパラメータ抽出手段11は、第1のメッセージデータ20a、および第2のメッセージデータ20bに含まれるリクエストデータ21a、21bからリクエストパラメータ24を抽出する。そして、リクエストパラメータ抽出手段11は、リクエストパラメータ24をリクエストパラメータ記憶手段14に格納する。リクエストパラメータ記憶手段14は、0、または1つ以上のリクエストパラメータ24を記憶することとなる。リクエストデータ21a、21bは、検証対象抽出装置1が備える図示しない記憶手段を介してリクエストパラメータ抽出手段11の入力とすることができる。なお、リクエストデータ21a、21bは、後述の外部記憶媒体108や、ネットワーク接続したコンピュータから取得することができる。また、リクエストデータ21a、21bは、検証対象抽出装置1で動作するアプリケーション(たとえば、プロキシサーバやパケットキャプチャなど)から取得することもできる。   The request parameter extraction unit 11 extracts the request parameter 24 from the request data 21a and 21b included in the first message data 20a and the second message data 20b. Then, the request parameter extraction unit 11 stores the request parameter 24 in the request parameter storage unit 14. The request parameter storage unit 14 stores zero, or one or more request parameters 24. The request data 21a and 21b can be input to the request parameter extraction unit 11 via a storage unit (not shown) provided in the verification target extraction device 1. The request data 21a and 21b can be obtained from an external storage medium 108 described later or a computer connected to the network. The request data 21a and 21b can also be obtained from an application (for example, a proxy server or a packet capture) that operates on the verification target extraction device 1.

非表示属性項目抽出手段12は、第1のメッセージデータ20a、および第2のメッセージデータ20bに含まれるレスポンスデータ22a、22bから非表示属性項目23を抽出する。そして、非表示属性項目抽出手段12は、抽出した非表示属性項目23を非表示属性項目記憶手段13に格納する。非表示属性項目記憶手段13は、0、または1つ以上の非表示属性項目23を記憶することとなる。レスポンスデータ22a、22bは、検証対象抽出装置1が備える図示しない記憶手段を介して非表示属性項目抽出手段12の入力とすることができる。なお、レスポンスデータ22a、22bは、後述の外部記憶媒体108や、ネットワーク接続したコンピュータから取得することができる。また、レスポンスデータ22a、22bは、検証対象抽出装置1で動作するアプリケーション(たとえば、プロキシサーバやパケットキャプチャなど)から取得することもできる。   The non-display attribute item extraction unit 12 extracts the non-display attribute item 23 from the response data 22a and 22b included in the first message data 20a and the second message data 20b. Then, the non-display attribute item extraction unit 12 stores the extracted non-display attribute item 23 in the non-display attribute item storage unit 13. The non-display attribute item storage unit 13 stores zero or one or more non-display attribute items 23. The response data 22a and 22b can be input to the non-display attribute item extraction unit 12 via a storage unit (not shown) included in the verification target extraction device 1. The response data 22a and 22b can be acquired from an external storage medium 108 described later or a computer connected to the network. The response data 22a and 22b can also be obtained from an application (for example, a proxy server or a packet capture) that operates on the verification target extraction apparatus 1.

未入力非表示属性項目抽出手段15は、非表示属性項目記憶手段13が記憶する非表示属性項目23のうちから、リクエストパラメータ記憶手段14が記憶するリクエストパラメータ24に含まれていない値を有する非表示属性項目を未入力非表示属性項目25として抽出する。つまり、未入力非表示属性項目25が有する値は、クライアントからサーバへのリクエストデータに含まれたことがないことを示す。   The non-input non-display attribute item extraction unit 15 has a value not included in the request parameter 24 stored in the request parameter storage unit 14 among the non-display attribute items 23 stored in the non-display attribute item storage unit 13. The display attribute item is extracted as a non-input non-display attribute item 25. That is, the value of the non-input non-display attribute item 25 indicates that it has never been included in the request data from the client to the server.

そして、未入力非表示属性項目抽出手段15は、抽出した未入力非表示属性項目25を未入力非表示属性項目記憶手段16に格納する。未入力非表示属性項目記憶手段16は、0、または1つ以上の未入力非表示属性項目25を記憶することとなる。   Then, the non-input non-display attribute item extraction unit 15 stores the extracted non-input non-display attribute item 25 in the non-input non-display attribute item storage unit 16. The non-input non-display attribute item storage unit 16 stores zero, or one or more non-input non-display attribute items 25.

検証対象非表示属性項目抽出手段17は、未入力非表示属性項目記憶手段16が記憶する未入力非表示属性項目25のうちから検証対象非表示属性項目26を抽出する。ここで抽出される検証対象非表示属性項目26は、第1のメッセージデータ20aに含まれた未入力非表示属性項目と第2のメッセージデータ20bに含まれた未入力非表示属性項目とで重複する未入力非表示属性項目である。   The verification target non-display attribute item extraction unit 17 extracts the verification target non-display attribute item 26 from the non-input non-display attribute item 25 stored in the non-input non-display attribute item storage unit 16. The verification target non-display attribute item 26 extracted here is duplicated between the non-input non-display attribute item included in the first message data 20a and the non-input non-display attribute item included in the second message data 20b. It is a non-input hidden attribute item.

このような構成によれば、検証対象非表示属性項目26は、非表示属性項目の値がリクエストされることなく、異なるタイミングであっても同一の値となる非表示属性項目となる。すなわち、検証対象非表示属性項目26は、前述したセキュリティ上の問題を有する、あるいは有するおそれのある怪しい非表示属性項目に対応している。したがって、検証対象抽出装置1は、第1のメッセージデータ20a、および第2のメッセージデータ20bからウェブアプリケーションの検証対象を効率よく抽出可能とすることができる。これにより、検査者や開発者などの作業者の負担は、軽減される。   According to such a configuration, the verification target non-display attribute item 26 is a non-display attribute item having the same value even at different timings without requesting the value of the non-display attribute item. That is, the verification target non-display attribute item 26 corresponds to the suspicious non-display attribute item having or possibly having the security problem described above. Therefore, the verification target extraction apparatus 1 can efficiently extract the verification target of the web application from the first message data 20a and the second message data 20b. This reduces the burden on workers such as inspectors and developers.

次に、第2の実施形態を詳細に説明する。図2は、第2の実施形態の検証対象抽出システムの構成例を示す図である。検証対象抽出システムは、検証対象抽出装置100、ネットワーク5を介して接続するウェブサーバ2、プロキシサーバ3、およびクライアント4を含んで構成される。   Next, the second embodiment will be described in detail. FIG. 2 is a diagram illustrating a configuration example of the verification target extraction system according to the second embodiment. The verification target extraction system includes a verification target extraction device 100, a web server 2, a proxy server 3, and a client 4 connected via a network 5.

ウェブサーバ2は、ウェブアプリケーション(構造化文書提供アプリケーション)46を実装し、クライアント4からのリクエストに応じてウェブコンテンツを提供する。クライアント4は、ウェブブラウザを実装し、ウェブサーバ2からリクエストに対応したウェブコンテンツの提供を受けてウェブブラウザに表示等をおこなう。   The web server 2 implements a web application (structured document providing application) 46 and provides web content in response to a request from the client 4. The client 4 mounts a web browser, receives a web content corresponding to the request from the web server 2, and displays it on the web browser.

ウェブサーバ2とクライアント4は、たとえば、インターネット技術を基盤とするネットワーク5で接続されて、HTTP、あるいはHTTPSで通信をおこなう。このとき、リクエストデータは、クライアント4からウェブサーバ2へのリクエストに含まれるデータである。また、レスポンスデータは、ウェブサーバ2からクライアント4へのレスポンスに含まれるデータである。そして、メッセージデータは、クライアント4とウェブサーバ2との一連の通信(たとえば、1セッション)に含まれるリクエストデータとレスポンスデータである。   For example, the web server 2 and the client 4 are connected by a network 5 based on the Internet technology, and communicate with each other using HTTP or HTTPS. At this time, the request data is data included in a request from the client 4 to the web server 2. Response data is data included in a response from the web server 2 to the client 4. The message data is request data and response data included in a series of communications (for example, one session) between the client 4 and the web server 2.

メッセージデータは、クライアント4とウェブサーバ2との一連の通信内容から取得することができるため、ウェブサーバ2、クライアント4のほかに、ウェブサーバ2とクライアント4との通信を中継するプロキシサーバ3によって取得することができる。なお、通信内容の取得は、プロキシサーバ3に限らず、ファイアーウォール、図示しないルータやスイッチなど、ウェブサーバ2とクライアント4との通信を中継する中継装置からのパケットキャプチャによってもすることができる。   Since the message data can be obtained from a series of communication contents between the client 4 and the web server 2, the proxy server 3 relays communication between the web server 2 and the client 4 in addition to the web server 2 and the client 4. Can be acquired. The communication content can be acquired not only by the proxy server 3 but also by packet capture from a relay device that relays communication between the web server 2 and the client 4 such as a firewall, a router or a switch (not shown).

なお通信プロトコルがHTTPSなど暗号化された通信の場合、プロキシサーバ3は、ウェブサーバ2とクライアント4との間のSSL(Secure Sockets Layer)のセッションを2分割することで平文の通信内容を取得することができる。   When the communication protocol is encrypted communication such as HTTPS, the proxy server 3 acquires the plain text communication content by dividing the SSL (Secure Sockets Layer) session between the web server 2 and the client 4 into two. be able to.

検証対象抽出装置100は、検証対象hiddenフィールド抽出部30と、HTTPメッセージ列生成部50を備える。検証対象抽出装置100は、HTTPメッセージ列生成部50が生成するメッセージデータを入力として、検証対象hiddenフィールド抽出部30が検証対象のhiddenフィールドを抽出する。なお、HTTPメッセージ列生成部50は、クライアント4、ウェブサーバ2、プロキシサーバ3などに備えられるようにしてもよく、その場合、検証対象抽出装置100は、クライアント4、ウェブサーバ2、プロキシサーバ3などが取得したメッセージデータを入力とすることができる。メッセージデータは、タイミングの異なる一連の通信(たとえば、タイミングの異なる2つのセッション)として少なくとも2つが取得される。   The verification target extraction apparatus 100 includes a verification target hidden field extraction unit 30 and an HTTP message string generation unit 50. In the verification target extraction apparatus 100, the message data generated by the HTTP message string generation unit 50 is input, and the verification target hidden field extraction unit 30 extracts the verification target hidden field. The HTTP message sequence generation unit 50 may be provided in the client 4, the web server 2, the proxy server 3, and the like. In this case, the verification target extraction device 100 includes the client 4, the web server 2, and the proxy server 3. The message data obtained by the above can be used as input. At least two pieces of message data are acquired as a series of communications with different timings (for example, two sessions with different timings).

なお、検証対象抽出装置100は、クライアント4、ウェブサーバ2、プロキシサーバ3のうち1つ以上の機能を兼ねるようにしてもよい。
なお、第2の実施形態では、検証対象抽出装置100がクライアント4の備えるブラウザ機能を有するものとして説明する。
Note that the verification target extraction device 100 may also function as one or more of the client 4, the web server 2, and the proxy server 3.
In the second embodiment, the verification target extraction device 100 will be described as having a browser function included in the client 4.

検証対象抽出装置100のハードウェア構成例を説明する。図3は、第2の実施形態の検証対象抽出装置のハードウェア構成例を示す図である。検証対象抽出装置100は、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス107を介してRAM(Random Access Memory)102、ハードディスクドライブ(HDD)103、通信インタフェース104、グラフィック処理装置105、および入出力インタフェース106が接続されている。   A hardware configuration example of the verification target extraction apparatus 100 will be described. FIG. 3 is a diagram illustrating a hardware configuration example of the verification target extraction apparatus according to the second embodiment. The entire verification target extraction apparatus 100 is controlled by a CPU (Central Processing Unit) 101. A random access memory (RAM) 102, a hard disk drive (HDD) 103, a communication interface 104, a graphic processing device 105, and an input / output interface 106 are connected to the CPU 101 via a bus 107.

RAM102には、CPU101に実行させるOS(Operating System)のプログラムや、メッセージデータから検証対象を抽出するためのアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。HDD103には、OSやアプリケーションプログラムが格納される。   The RAM 102 temporarily stores at least a part of an OS (Operating System) program to be executed by the CPU 101 and an application program for extracting a verification target from message data. The RAM 102 stores various data necessary for processing by the CPU 101. The HDD 103 stores an OS and application programs.

通信インタフェース104は、ネットワーク5に接続されている。通信インタフェース104は、ネットワーク5を介して、他のコンピュータとの間でデータの送受信をおこなう。   The communication interface 104 is connected to the network 5. The communication interface 104 transmits / receives data to / from other computers via the network 5.

グラフィック処理装置105には、モニタ110が接続されている。グラフィック処理装置105は、CPU101からの命令に従って、画像をモニタ110の画面に表示させる。   A monitor 110 is connected to the graphic processing device 105. The graphic processing device 105 displays an image on the screen of the monitor 110 in accordance with a command from the CPU 101.

入出力インタフェース106には、キーボード111とマウス112とが接続されている。入出力インタフェース106は、キーボード111やマウス112から送られてくる信号を、バス107を介してCPU101に送信する。また、入出力インタフェース106は、外部記憶媒体108への情報の書込み、および外部記憶媒体108への情報の読出しが可能な外部記憶媒体インタフェースと接続可能になっている。   A keyboard 111 and a mouse 112 are connected to the input / output interface 106. The input / output interface 106 transmits signals sent from the keyboard 111 and the mouse 112 to the CPU 101 via the bus 107. The input / output interface 106 can be connected to an external storage medium interface that can write information to the external storage medium 108 and read information from the external storage medium 108.

以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。なお、ネットワーク5を介して接続する他のコンピュータ(たとえば、クライアント4、ウェブサーバ2、プロキシサーバ3など)も同様のハードウェア構成で実現できる。   With the hardware configuration as described above, the processing functions of the present embodiment can be realized. Note that other computers (for example, the client 4, the web server 2, and the proxy server 3) connected via the network 5 can be realized with the same hardware configuration.

次に、第2の実施形態の検証対象抽出装置100が備える検証対象hiddenフィールド抽出部30について説明する。図4は、第2の実施形態の検証対象hiddenフィールド抽出部の機能ブロック図である。   Next, the verification target hidden field extraction unit 30 provided in the verification target extraction apparatus 100 of the second embodiment will be described. FIG. 4 is a functional block diagram of the verification target hidden field extraction unit according to the second embodiment.

検証対象hiddenフィールド抽出部30は、検証対象抽出装置100に備えられる。検証対象hiddenフィールド抽出部30は、2つのHTTPメッセージ列40、41を入力して、検証対象hiddenフィールド集合44を出力する。   The verification target hidden field extraction unit 30 is provided in the verification target extraction device 100. The verification target hidden field extraction unit 30 inputs two HTTP message strings 40 and 41 and outputs a verification target hidden field set 44.

HTTPメッセージ列40、41は、検査対象のウェブアプリケーション46を実装したウェブサーバ2とクライアント4のHTTP通信における所定のリクエストデータと、リクエストデータに対応するレスポンスデータを時系列に整列したデータである。HTTPメッセージ列40とHTTPメッセージ列41は、ウェブサーバ2とクライアント4のタイミングの異なる一連の通信(たとえば、異なるセッション)にもとづいて取得されたデータである。なお、HTTPメッセージ列40とHTTPメッセージ列41は、ウェブサーバ2に接続するクライアント4を異ならせて取得したデータであってもよい。   The HTTP message strings 40 and 41 are data in which predetermined request data in HTTP communication between the web server 2 and the client 4 in which the web application 46 to be inspected is mounted and response data corresponding to the request data are arranged in time series. The HTTP message sequence 40 and the HTTP message sequence 41 are data acquired based on a series of communications (for example, different sessions) having different timings between the web server 2 and the client 4. The HTTP message sequence 40 and the HTTP message sequence 41 may be data acquired by different clients 4 connected to the web server 2.

所定のリクエストデータは、あらかじめ決められた操作情報にもとづいてHTTPクライアントを操作した際に生じたデータである。HTTPメッセージ列40とHTTPメッセージ列41とでは、同様のリクエストデータとする。同様のリクエストデータとは、同じ操作情報にもとづいて、HTTPクライアントを操作したときに得られるリクエストデータ同士のことである。   The predetermined request data is data generated when an HTTP client is operated based on predetermined operation information. The HTTP message string 40 and the HTTP message string 41 have the same request data. Similar request data refers to request data obtained when operating an HTTP client based on the same operation information.

検証対象hiddenフィールド集合44は、レスポンスデータに含まれるhiddenフィールドのうち、ウェブアプリケーション46のセキュリティ上の問題となり得るhiddenフィールドを検証対象として抽出したデータである。   The verification target hidden field set 44 is data obtained by extracting, from the hidden fields included in the response data, the hidden field that may be a security problem of the web application 46 as the verification target.

なお、HTTPメッセージ列40とHTTPメッセージ列41は、検証対象hiddenフィールド抽出部30の実行前に確定したものであってもよいし、実行中に順次入力されるストリームデータであってもよい。   Note that the HTTP message sequence 40 and the HTTP message sequence 41 may be determined before the verification target hidden field extraction unit 30 is executed, or may be stream data sequentially input during the execution.

検証対象hiddenフィールド抽出部30は、未入力hiddenフィールド解析部31と、リクエストパラメータ解析部32と、hiddenフィールド解析部33と、重複hiddenフィールド解析部36を備える。また、検証対象hiddenフィールド抽出部30は、リクエストパラメータ値集合42を記憶するリクエストパラメータ値記憶部34と、未入力hiddenフィールド集合43を記憶する未入力hiddenフィールド記憶部35を備える。リクエストパラメータ値記憶部34と未入力hiddenフィールド記憶部35は、たとえば、RAM102で実現できる。なお、リクエストパラメータ値記憶部34と未入力hiddenフィールド記憶部35は、データを記憶可能であればRAM102に限らず、HDD103やその他の記憶装置、外部記憶媒体108、あるいはネットワーク5を介して記憶するものであってもよい。   The verification target hidden field extraction unit 30 includes a non-input hidden field analysis unit 31, a request parameter analysis unit 32, a hidden field analysis unit 33, and a duplicate hidden field analysis unit 36. Further, the verification target hidden field extraction unit 30 includes a request parameter value storage unit 34 that stores a request parameter value set 42, and an uninput hidden field storage unit 35 that stores an uninput hidden field set 43. The request parameter value storage unit 34 and the non-input hidden field storage unit 35 can be realized by the RAM 102, for example. The request parameter value storage unit 34 and the non-input hidden field storage unit 35 store the data via the HDD 103, other storage devices, the external storage medium 108, or the network 5 as long as the data can be stored. It may be a thing.

未入力hiddenフィールド解析部31は、HTTPメッセージ列40、41を順に解析し、HTTPメッセージ列40、41からリクエストデータとレスポンスデータを抽出する。未入力hiddenフィールド解析部31は、リクエストデータをリクエストパラメータ解析部32に渡す。未入力hiddenフィールド解析部31は、レスポンスデータをhiddenフィールド解析部33に渡す。   The uninput hidden field analysis unit 31 sequentially analyzes the HTTP message strings 40 and 41 and extracts request data and response data from the HTTP message strings 40 and 41. The uninput hidden field analysis unit 31 passes the request data to the request parameter analysis unit 32. The uninput hidden field analysis unit 31 passes the response data to the hidden field analysis unit 33.

リクエストパラメータ解析部32は、リクエストデータからリクエストパラメータ値を抽出して未入力hiddenフィールド解析部31に渡す。未入力hiddenフィールド解析部31は、リクエストパラメータ値記憶部34にリクエストパラメータ値をリクエストパラメータ値集合42として記憶する。リクエストパラメータ値集合42は、HTTPメッセージ列40にもとづくリクエストパラメータ値集合P1と、HTTPメッセージ列41にもとづくリクエストパラメータ値集合P2を含む。リクエストパラメータは、リクエストデータに含まれるパラメータであり、たとえば、URLのクエリーパラメータや、POSTメソッドで送信されるフォームデータパラメータ、Cookieなどを含む。   The request parameter analysis unit 32 extracts a request parameter value from the request data and passes it to the non-input hidden field analysis unit 31. The uninput hidden field analysis unit 31 stores the request parameter values in the request parameter value storage unit 34 as a request parameter value set 42. The request parameter value set 42 includes a request parameter value set P 1 based on the HTTP message sequence 40 and a request parameter value set P 2 based on the HTTP message sequence 41. The request parameter is a parameter included in the request data, and includes, for example, a URL query parameter, a form data parameter transmitted by the POST method, a cookie, and the like.

hiddenフィールド解析部33は、レスポンスデータからhiddenフィールドを抽出して未入力hiddenフィールド解析部31に渡す。未入力hiddenフィールド解析部31は、リクエストパラメータ値集合42を参照して、hiddenフィールドの値がリクエストされた履歴を有するか否かを判定する。未入力hiddenフィールド解析部31は、hiddenフィールドの値がリクエストされた履歴を有しない場合、そのhiddenフィールドは、未入力hiddenフィールドと判定される。未入力hiddenフィールド解析部31は、未入力hiddenフィールド記憶部35に未入力hiddenフィールドを未入力hiddenフィールド集合43として記憶する。未入力hiddenフィールド集合43は、HTTPメッセージ列40にもとづく未入力hiddenフィールド集合H1と、HTTPメッセージ列41にもとづく未入力hiddenフィールド集合H2を含む。   The hidden field analysis unit 33 extracts the hidden field from the response data and passes it to the uninput hidden field analysis unit 31. The uninput hidden field analysis unit 31 refers to the request parameter value set 42 and determines whether or not the value of the hidden field has a requested history. When the hidden field value does not have the requested history, the hidden field analysis unit 31 determines that the hidden field is an uninput hidden field. The non-input hidden field analysis unit 31 stores the non-input hidden field storage unit 35 in the non-input hidden field storage unit 35 as a non-input hidden field set 43. The uninput hidden field set 43 includes an uninput hidden field set H1 based on the HTTP message sequence 40 and an uninput hidden field set H2 based on the HTTP message sequence 41.

重複hiddenフィールド解析部36は、未入力hiddenフィールド解析部31が生成した未入力hiddenフィールド集合43を参照し、HTTPメッセージ列40、41で重複する未入力hiddenフィールドを抽出する。ここで、未入力hiddenフィールド集合43から抽出された未入力hiddenフィールドを検証対象hiddenフィールドとする。重複hiddenフィールド解析部36は、抽出した検証対象hiddenフィールドを検証対象hiddenフィールド集合44として出力する。   The duplicate hidden field analysis unit 36 refers to the non-input hidden field set 43 generated by the non-input hidden field analysis unit 31 and extracts a non-input hidden field duplicated in the HTTP message strings 40 and 41. Here, the non-input hidden field extracted from the non-input hidden field set 43 is set as a verification target hidden field. The duplicate hidden field analysis unit 36 outputs the extracted verification target hidden field as the verification target hidden field set 44.

これにより、検証対象hiddenフィールド抽出部30は、HTTPメッセージ列40、41で重複して、リクエストされた履歴のない値を持つhiddenフィールドを検証対象として自動的に(判断する者の予断を排除して)抽出することができる。このようなhiddenフィールドは、セキュリティ上の問題を有するおそれがあり、検査者や開発者は、抽出されたhiddenフィールドを優先的に確認することができ、安全なウェブアプリケーションを効率的に開発することができる。   As a result, the verification target hidden field extraction unit 30 automatically eliminates the decision of the person who makes the determination as a verification target for the hidden field having a value without a requested history that is duplicated in the HTTP message strings 40 and 41. E) can be extracted. Such hidden fields may have security problems, and inspectors and developers can preferentially check the extracted hidden fields and efficiently develop secure web applications. Can do.

なお、検証対象hiddenフィールド抽出部30は、HTTPメッセージ列40、41を入力としたが、HTTPメッセージ列40、41からそれぞれ抽出したリクエストデータ、およびレスポンデータを入力としてもよい。   The verification target hidden field extraction unit 30 receives the HTTP message strings 40 and 41 as input, but may receive request data and response data extracted from the HTTP message strings 40 and 41, respectively.

なお、HTTPメッセージ列40とHTTPメッセージ列41とで同様のリクエストデータとするとしたが、必ずしも同様でなくともよい。たとえば、HTTPメッセージ列40とHTTPメッセージ列41とのセキュリティ上問題となる可能性のあるhiddenフィールドの重複可能性が確率的に十分に大きいと判断できる場合は同様のリクエストデータとする要件を有しない。確率的に十分に大きいと判断できる場合とは、たとえば、検証対象となるウェブアプリケーションが提供するHTML文書などのリソースが検証範囲に対して十分な量で用意されている場合がある。重複可能性が十分か否かの判断は、たとえば、検証範囲に対する収集データの大きさや収集範囲を判断の閾値として設定することができる。   In addition, although it was set as the same request data by the HTTP message sequence 40 and the HTTP message sequence 41, it does not necessarily need to be the same. For example, if it can be determined that the possibility of duplication of the hidden field that may cause a security problem between the HTTP message sequence 40 and the HTTP message sequence 41 is sufficiently large in terms of probability, there is no requirement for the same request data. . The case where it can be determined that the probability is sufficiently large is, for example, a case where a sufficient amount of resources such as an HTML document provided by a web application to be verified is prepared for the verification range. For example, the determination as to whether or not the possibility of duplication is sufficient can set the size of the collected data with respect to the verification range or the collection range as a threshold for determination.

次に、第2の実施形態の検証対象抽出装置100が備えるHTTPメッセージ列生成部50について説明する。図5は、第2の実施形態のHTTPメッセージ列生成部の機能ブロック図である。   Next, the HTTP message string generation unit 50 provided in the verification target extraction apparatus 100 according to the second embodiment will be described. FIG. 5 is a functional block diagram of an HTTP message string generation unit according to the second embodiment.

HTTPメッセージ列生成部50は、検証対象抽出装置100に備えられる。HTTPメッセージ列生成部50は、ブラウザ操作スクリプト45と、ウェブアプリケーション46が提供するリソース(レスポンスデータ)を入力して、HTTPメッセージ列40、41を検証対象hiddenフィールド抽出部30に出力する。そして、検証対象hiddenフィールド抽出部30は、HTTPメッセージ列40、41を入力して、検証対象hiddenフィールド集合44を出力する。したがって、検証対象抽出装置100は、ブラウザ操作スクリプト45とウェブアプリケーション46を入力して、検証対象hiddenフィールド集合44を出力する。   The HTTP message string generation unit 50 is provided in the verification target extraction device 100. The HTTP message string generation unit 50 receives the browser operation script 45 and the resource (response data) provided by the web application 46, and outputs the HTTP message strings 40 and 41 to the verification target hidden field extraction unit 30. The verification target hidden field extraction unit 30 receives the HTTP message strings 40 and 41 and outputs a verification target hidden field set 44. Therefore, the verification target extraction apparatus 100 inputs the browser operation script 45 and the web application 46 and outputs the verification target hidden field set 44.

ここで、まず、ブラウザ操作スクリプト45とウェブアプリケーション46について、説明する。ブラウザ操作スクリプト45は、ブラウザの操作内容のリストであり、所定の規則で記述される。ブラウザ操作スクリプト45は、たとえば、図6に示すような、Selenium RCの入力主形態となるSelenese形式と基礎URL(Uniform Resource Locator)を含んで構成される。Selenese形式は、ブラウザの操作内容を記述したリストである。基礎URLは、検査対象のウェブサーバとの通信プロトコル(scheme)、検査対象のウェブサーバ名(authority)を含み、たとえば、http://example.com/となる。なお、Selenium RCについては、たとえば、http://selenium-rc.openqa.org/に開示されている。   Here, first, the browser operation script 45 and the web application 46 will be described. The browser operation script 45 is a list of browser operation contents, and is described according to a predetermined rule. The browser operation script 45 is configured to include, for example, a Selenium format as a main input form of Selenium RC and a basic URL (Uniform Resource Locator) as shown in FIG. The series format is a list describing the operation contents of the browser. The basic URL includes a communication protocol (scheme) with the web server to be inspected and a web server name (authority) to be inspected, for example, http: // example. com /. The Selenium RC is disclosed in, for example, http://selenium-rc.openqa.org/.

図6は、第2の実施形態のブラウザ操作スクリプトのSelenese形式例を示す図である。ブラウザ操作スクリプト例70に示すブラウザ操作スクリプト45は、command、target、valueを要素とする。ブラウザ操作スクリプト例70は、ブラウザ操作71、72、73の操作順序が時系列に整列されたリストである。   FIG. 6 is a diagram illustrating an example of a browser format of the browser operation script according to the second embodiment. The browser operation script 45 shown in the browser operation script example 70 includes command, target, and value as elements. The browser operation script example 70 is a list in which the operation order of the browser operations 71, 72, 73 is arranged in time series.

ブラウザ操作71(open,/form1, )は、「URI(Uniform Resource Identifier)が“/form1”であるページをリクエストし、ページが読み込まれるまで待つ」という意味になる。   The browser operation 71 (open, / form1,) means “request a page whose URI (Uniform Resource Identifier) is“ / form1 ”and wait until the page is read”.

ブラウザ操作72(type,name,諸葛亮)は、「名前が“name”である入力欄に“諸葛亮”を入力する」という意味になる。
ブラウザ操作73(clickAndWait,//input[@value=‘送信’], )は、「“value”属性を持つ“input”タグを探し、これをクリックしてページが読み込まれるまで待つ」という意味になる。
The browser operation 72 (type, name, Ryo Kuzuru) has the meaning of “input“ Zoro Kyo Ryo ”in the input field whose name is“ name ””.
The browser operation 73 (clickAndWait, // input [@ value = 'send'],) means "look for an" input "tag with the" value "attribute and click it to wait until the page is read" Become.

ウェブアプリケーション46は、クライアントからの要求に応じてウェブサーバがHTML文書などのリソースを提供するためのアプリケーションである。ウェブアプリケーション46について、図7、図8を用いて説明する。図7、図8は、第2の実施形態のウェブアプリケーションが提供するHTML文書表示例を示す図である。   The web application 46 is an application for the web server to provide resources such as an HTML document in response to a request from the client. The web application 46 will be described with reference to FIGS. 7 and 8 are diagrams showing examples of HTML document display provided by the web application according to the second embodiment.

ウェブアプリケーション46が提供するリソースは、たとえば、HTML文書であり、ブラウザで閲覧するとHTML文書表示例74、76のようになる。HTML文書表示例74は、URL http://example.com/form1を開き、人物名の入力欄に“諸葛亮”と入力した様子を示す。HTML文書表示例76は、HTML文書表示例74の画面で送信ボタンを押下した後のレスポンスとして得られた表示画面の様子である。   The resource provided by the web application 46 is, for example, an HTML document, and when viewed with a browser, HTML document display examples 74 and 76 are obtained. An HTML document display example 74 includes URL http: // example. com / form1 is opened and “Ryozo Morozuka” is entered in the input field for the person name. The HTML document display example 76 is a display screen obtained as a response after the transmission button is pressed on the screen of the HTML document display example 74.

hiddenフィールド75は、HTML文書表示例74に設定され、ブラウザ上に表示されないデータである。このとき、hiddenフィールド75は、たとえば、“id=1E4DC00D476ABDF1”という値を持つ。   The hidden field 75 is data that is set in the HTML document display example 74 and is not displayed on the browser. At this time, the hidden field 75 has a value of “id = 1E4DC00D476ABDF1”, for example.

hiddenフィールド77は、HTML文書表示例76に設定され、ブラウザ上に表示されないデータである。このとき、hiddenフィールド77は、たとえば、“id=1E4DC00D476ABDF1”、“name=諸葛亮”、“to=admin@example.com”という値を持つ。   The hidden field 77 is data that is set in the HTML document display example 76 and is not displayed on the browser. At this time, the hidden field 77 has values of “id = 1E4DC00D476ABDF1,” “name = Ryo Kazuka,” “to=admin@example.com”, for example.

このように、ウェブアプリケーション46は、hiddenフィールドを含むHTML文書等のリソースをHTTPメッセージ列生成部50に提供する。
ここで、図5に戻り、HTTPメッセージ列生成部50について説明する。HTTPメッセージ列生成部50は、制御部51、ブラウザ操作部52、ブラウザ53、HTTPメッセージ列取得部54、HTTPメッセージ列記憶部55を備える。
As described above, the web application 46 provides resources such as an HTML document including a hidden field to the HTTP message string generation unit 50.
Here, returning to FIG. 5, the HTTP message string generation unit 50 will be described. The HTTP message sequence generation unit 50 includes a control unit 51, a browser operation unit 52, a browser 53, an HTTP message sequence acquisition unit 54, and an HTTP message sequence storage unit 55.

制御部51は、HTTPメッセージ列生成部50を統括的に制御して、受け付けたブラウザ操作スクリプト45にもとづくHTTPメッセージ列40、41を検証対象hiddenフィールド抽出部に受け渡す。   The control unit 51 comprehensively controls the HTTP message sequence generation unit 50 and transfers the HTTP message sequences 40 and 41 based on the received browser operation script 45 to the verification target hidden field extraction unit.

ブラウザ操作部52は、制御部51が受け付けたブラウザ操作スクリプト45にしたがいブラウザ53を操作する。ブラウザ操作部52は、たとえば、Selenium RCとすることができる。Selenium RCは、Selenese形式と基礎URLによるブラウザ操作スクリプト45を解釈してブラウザ53を操作する。   The browser operation unit 52 operates the browser 53 according to the browser operation script 45 received by the control unit 51. The browser operation unit 52 can be, for example, Selenium RC. The Selenium RC operates the browser 53 by interpreting the browser operation script 45 in the Selene format and the basic URL.

ブラウザ53は、ウェブアプリケーション46により提供されるリソースを閲覧するためのアプリケーションである。ブラウザ53は、ウェブアプリケーション46を実装するウェブサーバにリクエストを送信し、リクエストを受け付けたウェブサーバからレスポンスを受け取る。ブラウザ53は、ブラウザ操作部52によって操作可能であればよく、たとえば、Mozilla Firefoxを用いることができる。なお、ここでいうブラウザは、ウェブアプリケーション46にリクエストをしてレスポンスを処理可能なHTTPクライアントであればよく、視覚系のユーザエージェントなど狭義のブラウザ(たとえば、ウェブブラウザ)に限るものではない。   The browser 53 is an application for browsing resources provided by the web application 46. The browser 53 transmits a request to a web server that implements the web application 46, and receives a response from the web server that received the request. The browser 53 only needs to be operable by the browser operation unit 52, and for example, Mozilla Firefox can be used. Note that the browser here may be an HTTP client that can process the response by making a request to the web application 46, and is not limited to a narrowly defined browser (for example, a web browser) such as a visual user agent.

HTTPメッセージ列取得部54は、ブラウザ53とウェブアプリケーション46の通信経路中に位置し、ブラウザ53とウェブアプリケーション46との通信からHTTPメッセージを取得する。HTTPメッセージ列取得部54は、取得したHTTPメッセージをHTTPメッセージ列記憶部55に格納する。HTTPメッセージ列取得部54は、たとえば、HTTPプロキシサーバとして実現できる。また、HTTPメッセージ列記憶部55は、ブラウザ53とウェブアプリケーション46のセッションをHTTPプロキシサーバの前後2つのセッションに分割することで、HTTPS等の暗号化通信から平文を取得することができる。また、HTTPメッセージ列取得部54は、たとえば、パケットキャプチャによっても実現できる。   The HTTP message string acquisition unit 54 is located in the communication path between the browser 53 and the web application 46 and acquires an HTTP message from communication between the browser 53 and the web application 46. The HTTP message string acquisition unit 54 stores the acquired HTTP message in the HTTP message string storage unit 55. The HTTP message string acquisition unit 54 can be realized as, for example, an HTTP proxy server. Further, the HTTP message string storage unit 55 can acquire plain text from encrypted communication such as HTTPS by dividing the session of the browser 53 and the web application 46 into two sessions before and after the HTTP proxy server. Further, the HTTP message string acquisition unit 54 can be realized by packet capture, for example.

このように、HTTPメッセージ列生成部50は、用意されたブラウザ操作スクリプト45を受け付けることにより、ブラウザ操作スクリプト45で巡回範囲とされたページをブラウザ53が取得する際の、通信に含まれるリクエストデータとレスポンスデータを含むHTTPメッセージ列を取得することができる。HTTPメッセージ列生成部50は、このようなHTTPメッセージ列を2組(HTTPメッセージ列40、41)生成する。   As described above, the HTTP message string generation unit 50 receives the prepared browser operation script 45, and the request data included in the communication when the browser 53 acquires the page set as the circulation range by the browser operation script 45. And an HTTP message string including response data. The HTTP message string generation unit 50 generates two sets of such HTTP message strings (HTTP message strings 40 and 41).

こうして生成されたHTTPメッセージ列40、41は、検証対象hiddenフィールド抽出部30に受け渡される。検証対象hiddenフィールド抽出部30は、HTTPメッセージ列40、41から、セキュリティ上の問題を有する、あるいは有するおそれのある検証対象hiddenフィールド集合44を抽出する。   The HTTP message strings 40 and 41 generated in this way are passed to the verification target hidden field extraction unit 30. The verification target hidden field extraction unit 30 extracts the verification target hidden field set 44 having or possibly having a security problem from the HTTP message strings 40 and 41.

なお、HTTPメッセージ列生成部50は、検証対象hiddenフィールド抽出部30を備える検証対象抽出装置100とは、別のコンピュータに備えられるようにしてもよい。たとえば、HTTPメッセージ列生成部50は、図2で説明したウェブサーバ2、プロキシサーバ3、クライアント4に備えることができる。HTTPメッセージ列生成部50が生成したHTTPメッセージ列40、41は、ネットワーク5を介して検証対象hiddenフィールド抽出部30を備える検証対象抽出装置100に受け渡すことができる。あるいは、HTTPメッセージ列40、41は、外部記憶媒体108を介して検証対象抽出装置100に受け渡すことができる。   Note that the HTTP message string generation unit 50 may be provided in a computer separate from the verification target extraction apparatus 100 including the verification target hidden field extraction unit 30. For example, the HTTP message sequence generation unit 50 can be provided in the web server 2, the proxy server 3, and the client 4 described in FIG. The HTTP message sequences 40 and 41 generated by the HTTP message sequence generation unit 50 can be transferred to the verification target extraction apparatus 100 including the verification target hidden field extraction unit 30 via the network 5. Alternatively, the HTTP message strings 40 and 41 can be transferred to the verification target extraction apparatus 100 via the external storage medium 108.

次に、制御部51が実行するHTTPメッセージ列生成制御処理についてフローチャートを用いて詳細に説明する。図9は、第2の実施形態のHTTPメッセージ列生成制御処理のフローチャートである。HTTPメッセージ列生成制御処理は、制御部51が実行する処理であり、たとえば、操作者からの実行指示を受けて実行される。   Next, the HTTP message string generation control process executed by the control unit 51 will be described in detail using a flowchart. FIG. 9 is a flowchart of HTTP message string generation control processing according to the second embodiment. The HTTP message string generation control process is a process executed by the control unit 51, and is executed in response to an execution instruction from an operator, for example.

[ステップS11]制御部51は、ブラウザ操作スクリプト45の入力を受け付ける。
[ステップS12]制御部51は、HTTPメッセージ列取得部54が取得するHTTPメッセージ列を、第1のHTTPメッセージ列(HTTPメッセージ列40)の記憶領域(第1のHTTPメッセージ列記憶領域)に記憶するようHTTPメッセージ列取得部54に指示する。第1のHTTPメッセージ列記憶領域は、HTTPメッセージ列記憶部55に設定される。
[Step S11] The control unit 51 receives an input of the browser operation script 45.
[Step S12] The control unit 51 stores the HTTP message sequence acquired by the HTTP message sequence acquisition unit 54 in the storage area (first HTTP message sequence storage area) of the first HTTP message sequence (HTTP message sequence 40). The HTTP message string acquisition unit 54 is instructed to do so. The first HTTP message string storage area is set in the HTTP message string storage unit 55.

[ステップS13]制御部51は、ブラウザ53とウェブアプリケーション46との通信がHTTPメッセージ列取得部54を経由するように指示する。たとえば、制御部51は、ブラウザ53のプロキシサーバの設定をおこなう。そして、制御部51は、ブラウザ操作部52にブラウザ操作スクリプト45の実行を指示する。   [Step S <b> 13] The control unit 51 instructs the communication between the browser 53 and the web application 46 to pass through the HTTP message string acquisition unit 54. For example, the control unit 51 sets a proxy server for the browser 53. Then, the control unit 51 instructs the browser operation unit 52 to execute the browser operation script 45.

[ステップS14]制御部51は、ブラウザ操作スクリプト45にもとづく一連のブラウザ操作の終了を監視して、第1のHTTPメッセージ列の記憶の終了をHTTPメッセージ列取得部54に指示する。   [Step S14] The control unit 51 monitors the end of a series of browser operations based on the browser operation script 45, and instructs the HTTP message sequence acquisition unit 54 to end the storage of the first HTTP message sequence.

[ステップS15]制御部51は、HTTPメッセージ列取得部54が取得するHTTPメッセージ列を、第2のHTTPメッセージ列(HTTPメッセージ列41)の記憶領域(第2のHTTPメッセージ列記憶領域)に記憶するようHTTPメッセージ列取得部54に指示する。第2のHTTPメッセージ列記憶領域は、HTTPメッセージ列記憶部55に設定される。   [Step S15] The control unit 51 stores the HTTP message sequence acquired by the HTTP message sequence acquisition unit 54 in the storage area (second HTTP message sequence storage area) of the second HTTP message sequence (HTTP message sequence 41). The HTTP message string acquisition unit 54 is instructed to do so. The second HTTP message string storage area is set in the HTTP message string storage unit 55.

[ステップS16]制御部51は、ブラウザ53とウェブアプリケーション46との通信がHTTPメッセージ列取得部54を経由するように指示する。たとえば、制御部51は、ブラウザ53のプロキシサーバの設定をおこなう。そして、制御部51は、ブラウザ操作部52にブラウザ操作スクリプト45の実行を指示する。   [Step S <b> 16] The control unit 51 instructs the communication between the browser 53 and the web application 46 to pass through the HTTP message string acquisition unit 54. For example, the control unit 51 sets a proxy server for the browser 53. Then, the control unit 51 instructs the browser operation unit 52 to execute the browser operation script 45.

[ステップS17]制御部51は、ブラウザ操作スクリプト45にもとづく一連のブラウザ操作の終了を監視して、第2のHTTPメッセージ列の記憶の終了をHTTPメッセージ列取得部54に指示する。   [Step S17] The control unit 51 monitors the end of a series of browser operations based on the browser operation script 45, and instructs the HTTP message sequence acquisition unit 54 to end the storage of the second HTTP message sequence.

[ステップS18]制御部51は、第1のHTTPメッセージ列の記憶領域と第2のHTTPメッセージ列の記憶領域を、検証対象hiddenフィールド抽出部30に通知して、HTTPメッセージ列40、41の入力を指示する。制御部51は、HTTPメッセージ列生成制御処理を終了する。   [Step S18] The control unit 51 notifies the verification target hidden field extraction unit 30 of the storage area of the first HTTP message sequence and the storage area of the second HTTP message sequence, and inputs the HTTP message sequences 40 and 41. Instruct. The control unit 51 ends the HTTP message string generation control process.

次に、HTTPメッセージ列取得部54が実行するHTTPメッセージ列取得処理についてフローチャートを用いて詳細に説明する。図10は、第2の実施形態のHTTPメッセージ列取得処理のフローチャートである。HTTPメッセージ列取得処理は、HTTPメッセージ列取得部54が実行する処理であり、制御部51の指示を受けて実行される。   Next, the HTTP message sequence acquisition process executed by the HTTP message sequence acquisition unit 54 will be described in detail using a flowchart. FIG. 10 is a flowchart of HTTP message string acquisition processing according to the second embodiment. The HTTP message string acquisition process is a process executed by the HTTP message string acquisition unit 54 and is executed in response to an instruction from the control unit 51.

[ステップS21]HTTPメッセージ列取得部54は、制御部51からHTTPメッセージ列を記憶する記憶領域の指示を受け付ける。
[ステップS22]HTTPメッセージ列取得部54は、制御部51から終了指示がない限りステップS22からステップS29までの処理を繰り返す。
[Step S <b> 21] The HTTP message sequence acquisition unit 54 receives an instruction from the control unit 51 for a storage area for storing the HTTP message sequence.
[Step S22] The HTTP message string acquisition unit 54 repeats the processing from step S22 to step S29 unless there is an end instruction from the control unit 51.

[ステップS23]HTTPメッセージ列取得部54は、ウェブアプリケーション46へのリクエストをブラウザ53から受け付ける。
[ステップS24]HTTPメッセージ列取得部54は、制御部51からの指示にもとづいてHTTPメッセージ列記憶部55にHTTPメッセージ列記憶領域を確保する。
[Step S <b> 23] The HTTP message string acquisition unit 54 receives a request for the web application 46 from the browser 53.
[Step S24] The HTTP message sequence acquisition unit 54 secures an HTTP message sequence storage area in the HTTP message sequence storage unit 55 based on an instruction from the control unit 51.

[ステップS25]HTTPメッセージ列取得部54は、ブラウザ53からウェブアプリケーション46へのリクエストを確保したHTTPメッセージ列記憶領域に記憶する。
[ステップS26]HTTPメッセージ列取得部54は、プロキシサーバとしてブラウザ53から受け付けたリクエストを加工(たとえば、Connection ヘッダフィールドの変更)してウェブアプリケーション46に送信する。また、HTTPメッセージ列取得部54は、ウェブアプリケーション46から受け付けたレスポンスを加工(たとえば、Connection ヘッダフィールドの変更)する。
[Step S25] The HTTP message string acquisition unit 54 stores the request from the browser 53 to the web application 46 in the HTTP message string storage area.
[Step S26] The HTTP message string acquisition unit 54 processes the request received from the browser 53 as a proxy server (for example, changes the Connection header field) and transmits it to the web application 46. Further, the HTTP message string acquisition unit 54 processes the response received from the web application 46 (for example, changes the Connection header field).

[ステップS27]HTTPメッセージ列取得部54は、確保したHTTPメッセージ列記憶領域に、ブラウザ53へのレスポンスと、レスポンスを受け付けた時刻を記憶する。   [Step S27] The HTTP message string acquisition unit 54 stores the response to the browser 53 and the time at which the response was received in the reserved HTTP message string storage area.

[ステップS28]HTTPメッセージ列取得部54は、加工したレスポンスをブラウザ53に送信する。
[ステップS29]HTTPメッセージ列取得部54は、制御部51から終了指示がなければステップS22にすすみ、制御部51から終了指示があればHTTPメッセージ列取得処理の実行を終了する。
[Step S28] The HTTP message string acquisition unit 54 transmits the processed response to the browser 53.
[Step S29] If there is no termination instruction from the control unit 51, the HTTP message string acquisition unit 54 proceeds to step S22, and if there is an termination instruction from the control unit 51, the HTTP message sequence acquisition processing ends.

HTTPメッセージ列取得部54は、HTTPメッセージ列40、41のそれぞれの取得について、HTTPメッセージ列取得処理を実行する。制御部51の指示にもとづくHTTPメッセージ列取得処理の2回の実行により、第1のHTTPメッセージ列は、第1のHTTPメッセージ列記憶領域に記憶され、第2のHTTPメッセージ列は、第2のHTTPメッセージ列記憶領域に記憶される。これにより、HTTPメッセージ列取得部54は、HTTPメッセージ列40、41を取得する。   The HTTP message string acquisition unit 54 executes an HTTP message string acquisition process for each acquisition of the HTTP message strings 40 and 41. By executing the HTTP message sequence acquisition process twice based on the instruction of the control unit 51, the first HTTP message sequence is stored in the first HTTP message sequence storage area, and the second HTTP message sequence is stored in the second HTTP message sequence. Stored in the HTTP message string storage area. Thereby, the HTTP message string acquisition unit 54 acquires the HTTP message strings 40 and 41.

次に、HTTPメッセージ列取得部54が取得したHTTPメッセージ列40(第1のHTTPメッセージ列)、HTTPメッセージ列41(第2のHTTPメッセージ列)について図11から図14を用いて説明する。図11、図12は、第2の実施形態の第1のHTTPメッセージ列の一例を示す図である。図13、図14は、第2の実施形態の第2のHTTPメッセージ列の一例を示す図である。   Next, the HTTP message sequence 40 (first HTTP message sequence) and the HTTP message sequence 41 (second HTTP message sequence) acquired by the HTTP message sequence acquisition unit 54 will be described with reference to FIGS. FIGS. 11 and 12 are diagrams illustrating an example of the first HTTP message string according to the second embodiment. FIGS. 13 and 14 are diagrams illustrating an example of the second HTTP message string according to the second embodiment.

HTTPメッセージ列78は、第1のHTTPメッセージ列の一例である。HTTPメッセージ列78は、記憶領域ID(記憶領域識別子)、リクエストと、レスポンスと、時刻をアクセス単位(リクエストと、そのリクエストに対するレスポンスの対)で列挙する。HTTPメッセージ列78は、2つのアクセス単位を列挙し、1つ目のアクセス単位は記憶領域IDを“M1−A”、2つ目のアクセス単位は記憶領域IDを“M1−B”とする。各アクセス単位は、記憶領域IDに対応する記憶領域に記憶される。なお、HTTPメッセージ列に含まれるアクセス単位の数は、例示した2つに限らず任意の値を取ることができる。   The HTTP message sequence 78 is an example of a first HTTP message sequence. The HTTP message string 78 lists a storage area ID (storage area identifier), a request, a response, and a time in an access unit (a pair of a request and a response to the request). The HTTP message string 78 lists two access units. The first access unit has a storage area ID “M1-A”, and the second access unit has a storage area ID “M1-B”. Each access unit is stored in a storage area corresponding to the storage area ID. Note that the number of access units included in the HTTP message string is not limited to the two illustrated, and can take any value.

HTTPメッセージ列78の1つ目のアクセス単位に含まれるリクエストは、一部を省略記載するが、リクエストパラメータを含まない。HTTPメッセージ列78の1つ目のアクセス単位に含まれるレスポンスは、hiddenフィールド情報79を含む。HTTPメッセージ列78の1つ目のアクセス単位の時刻は、レスポンスに記録された時刻をISO8601形式で表す。   The request included in the first access unit of the HTTP message string 78 is partially omitted, but does not include a request parameter. The response included in the first access unit of the HTTP message string 78 includes hidden field information 79. The time of the first access unit in the HTTP message string 78 represents the time recorded in the response in the ISO8601 format.

HTTPメッセージ列78の2つ目のアクセス単位に含まれるリクエストは、一部を省略記載するが、リクエストパラメータ値80、81を含む。HTTPメッセージ列78の2つ目のアクセス単位に含まれるレスポンスは、hiddenフィールド情報82、83、84を含む。HTTPメッセージ列78の2つ目のアクセス単位の時刻は、レスポンスに記録された時刻をISO8601形式で表す。   The request included in the second access unit of the HTTP message string 78 includes request parameter values 80 and 81, although a part of the request is omitted. The response included in the second access unit of the HTTP message string 78 includes hidden field information 82, 83, 84. The time of the second access unit in the HTTP message string 78 represents the time recorded in the response in the ISO8601 format.

HTTPメッセージ列85は、第2のHTTPメッセージ列の一例である。HTTPメッセージ列85は、記憶領域ID、リクエストと、レスポンスと、時刻をアクセス単位で列挙する。HTTPメッセージ列85は、2つのアクセス単位を列挙し、1つ目のアクセス単位は記憶領域IDを“M2−A”、2つ目のアクセス単位は記憶領域IDを“M2−B”とする。各アクセス単位は、記憶領域IDに対応する記憶領域に記憶される。   The HTTP message sequence 85 is an example of a second HTTP message sequence. The HTTP message string 85 lists storage area IDs, requests, responses, and times in units of access. The HTTP message sequence 85 lists two access units. The first access unit has a storage area ID “M2-A”, and the second access unit has a storage area ID “M2-B”. Each access unit is stored in a storage area corresponding to the storage area ID.

HTTPメッセージ列85の1つ目のアクセス単位に含まれるリクエストは、一部を省略記載するが、リクエストパラメータを含まない。HTTPメッセージ列85の1つ目のアクセス単位に含まれるレスポンスは、hiddenフィールド情報86を含む。HTTPメッセージ列85の1つ目のアクセス単位の時刻は、レスポンスに記録された時刻をISO8601形式で表す。   The request included in the first access unit of the HTTP message string 85 is partially omitted, but does not include a request parameter. The response included in the first access unit of the HTTP message sequence 85 includes hidden field information 86. The time of the first access unit in the HTTP message sequence 85 represents the time recorded in the response in the ISO8601 format.

HTTPメッセージ列85の2つ目のアクセス単位に含まれるリクエストは、一部を省略記載するが、リクエストパラメータ値87、88を含む。HTTPメッセージ列85の2つ目のアクセス単位に含まれるレスポンスは、hiddenフィールド情報89、90、91を含む。HTTPメッセージ列85の2つ目のアクセス単位の時刻は、レスポンスに記録された時刻をISO8601形式で表す。   The request included in the second access unit of the HTTP message sequence 85 is partially omitted, but includes request parameter values 87 and 88. The response included in the second access unit of the HTTP message sequence 85 includes hidden field information 89, 90, 91. The time of the second access unit in the HTTP message sequence 85 represents the time recorded in the response in ISO8601 format.

なお、複数のリクエストを受ける順序とリクエストに対応するレスポンスを返す順序とが必ずしも同じであるとは限らないので、順序が異なる場合には、HTTPメッセージ列取得部54が時刻順に整列して記憶することができる。   Note that the order in which a plurality of requests are received and the order in which responses corresponding to the requests are returned are not necessarily the same. Therefore, if the order is different, the HTTP message string acquisition unit 54 stores them in time order. be able to.

次に、HTTPメッセージ列40、41を入力とする検証対象hiddenフィールド抽出部30の未入力hiddenフィールド解析部31が実行する処理を図15、図16を用いて詳細に説明する。図15は、第2の実施形態の未入力hiddenフィールド解析処理のフローチャートである。図16は、第2の実施形態の未入力hiddenフィールド抽出処理のフローチャートである。   Next, processing executed by the uninput hidden field analysis unit 31 of the verification target hidden field extraction unit 30 that receives the HTTP message strings 40 and 41 will be described in detail with reference to FIGS. 15 and 16. FIG. 15 is a flowchart of a non-input hidden field analysis process according to the second embodiment. FIG. 16 is a flowchart of the uninput hidden field extraction process according to the second embodiment.

まず、未入力hiddenフィールド解析処理について説明する。未入力hiddenフィールド解析処理は、HTTPメッセージ列40、41を入力として、未入力hiddenフィールド集合を出力とする。   First, the uninput hidden field analysis process will be described. In the uninput hidden field analysis process, the HTTP message strings 40 and 41 are input, and an uninput hidden field set is output.

[ステップS31]未入力hiddenフィールド解析部31は、相互に比較対象となる2つのHTTPメッセージ列40、41の各記憶領域を受け付ける。
[ステップS32]未入力hiddenフィールド解析部31は、HTTPメッセージ列40(第1のHTTPメッセージ列)を解析対象として指定する。
[Step S31] The uninput hidden field analysis unit 31 receives the storage areas of the two HTTP message strings 40 and 41 to be compared with each other.
[Step S32] The uninput hidden field analysis unit 31 designates the HTTP message string 40 (first HTTP message string) as an analysis target.

[ステップS33]未入力hiddenフィールド解析部31は、HTTPメッセージ列40を解析対象として、未入力hiddenフィールド抽出処理を実行する。未入力hiddenフィールド抽出処理の詳細は、図16を用いて後で説明する。   [Step S33] The uninput hidden field analysis unit 31 executes an uninput hidden field extraction process using the HTTP message string 40 as an analysis target. Details of the uninput hidden field extraction process will be described later with reference to FIG.

[ステップS34]未入力hiddenフィールド解析部31は、HTTPメッセージ列41(第2のHTTPメッセージ列)を解析対象として指定する。
[ステップS35]未入力hiddenフィールド解析部31は、HTTPメッセージ列41を解析対象として、未入力hiddenフィールド抽出処理を実行する。
[Step S34] The uninput hidden field analysis unit 31 designates an HTTP message string 41 (second HTTP message string) as an analysis target.
[Step S35] The uninput hidden field analysis unit 31 performs an uninput hidden field extraction process on the HTTP message string 41 as an analysis target.

これにより、HTTPメッセージ列40、41から、未入力hiddenフィールド集合が生成される。
なお、HTTPメッセージ列40、あるいは、HTTPメッセージ列41を入力とする未入力hiddenフィールド抽出処理を直列的に実行する場合について説明したが、2つの処理を同時並行的に実行するようにしてもよい。
As a result, a non-input hidden field set is generated from the HTTP message strings 40 and 41.
In addition, although the case where the non-input hidden field extraction process which inputs the HTTP message string 40 or the HTTP message string 41 is executed in series has been described, the two processes may be executed simultaneously in parallel. .

次に、未入力hiddenフィールド抽出処理について説明する。未入力hiddenフィールド抽出処理は、HTTPメッセージ列40、41を入力して、未入力hiddenフィールド集合44を出力する。   Next, a non-input hidden field extraction process will be described. In the uninput hidden field extraction process, HTTP message strings 40 and 41 are input, and an uninput hidden field set 44 is output.

[ステップS41]未入力hiddenフィールド解析部31は、指定されたHTTPメッセージ列に対応する記憶領域に、リクエストパラメータ値集合と未入力hiddenフィールド集合を用意する。   [Step S41] The uninput hidden field analysis unit 31 prepares a request parameter value set and an uninput hidden field set in a storage area corresponding to the designated HTTP message string.

たとえば、指定されたHTTPメッセージ列がHTTPメッセージ列40のとき、未入力hiddenフィールド解析部31は、リクエストパラメータ値集合P1と未入力hiddenフィールド集合H1を用意する。リクエストパラメータ値記憶部34は、リクエストパラメータ値集合P1をリクエストパラメータ値集合42の部分集合として記憶する。未入力hiddenフィールド記憶部35は、未入力hiddenフィールド集合H1を未入力hiddenフィールド集合43の部分集合として記憶する。また、指定されたHTTPメッセージ列がHTTPメッセージ列41のとき、未入力hiddenフィールド解析部31は、リクエストパラメータ値集合P2と未入力hiddenフィールド集合H2を用意する。リクエストパラメータ値記憶部34は、リクエストパラメータ値集合P2をリクエストパラメータ値集合42の部分集合として記憶する。未入力hiddenフィールド記憶部35は、未入力hiddenフィールド集合H2を未入力hiddenフィールド集合43の部分集合として記憶する。このとき、リクエストパラメータ値集合P1、P2、未入力hiddenフィールド集合H1、H2は、空集合となる。   For example, when the designated HTTP message sequence is the HTTP message sequence 40, the uninput hidden field analysis unit 31 prepares a request parameter value set P1 and an uninput hidden field set H1. The request parameter value storage unit 34 stores the request parameter value set P1 as a subset of the request parameter value set 42. The non-input hidden field storage unit 35 stores the non-input hidden field set H 1 as a subset of the non-input hidden field set 43. When the designated HTTP message string is the HTTP message string 41, the uninput hidden field analysis unit 31 prepares a request parameter value set P2 and an uninput hidden field set H2. The request parameter value storage unit 34 stores the request parameter value set P2 as a subset of the request parameter value set 42. The non-input hidden field storage unit 35 stores the non-input hidden field set H2 as a subset of the non-input hidden field set 43. At this time, the request parameter value sets P1 and P2 and the uninput hidden field sets H1 and H2 are empty sets.

[ステップS42]未入力hiddenフィールド解析部31は、HTTPメッセージ列に含まれるアクセス単位の数だけステップS42からステップS52までの処理を繰り返し実行する。HTTPメッセージ列78の例では、記憶領域IDが“M1−A”のアクセス単位と、記憶領域IDが“M1−B”のアクセス単位について、未入力hiddenフィールド解析部31は、2回の繰り返し処理を実行する。   [Step S42] The uninput hidden field analysis unit 31 repeatedly executes the processing from step S42 to step S52 by the number of access units included in the HTTP message string. In the example of the HTTP message string 78, the uninput hidden field analysis unit 31 performs the iterative process twice for the access unit with the storage area ID “M1-A” and the access unit with the storage area ID “M1-B”. Execute.

[ステップS43]未入力hiddenフィールド解析部31は、解析対象のHTTPメッセージ列をHTTPメッセージ列記憶部55から読み込む。HTTPメッセージ列78の例では、未入力hiddenフィールド解析部31は、1回目の繰り返し処理で記憶領域IDが“M1−A”のアクセス単位のHTTPメッセージ列を読み込む。そして、未入力hiddenフィールド解析部31は、2回目の繰り返し処理で記憶領域IDが“M1−B”のアクセス単位のHTTPメッセージ列を読み込む。   [Step S43] The uninput hidden field analysis unit 31 reads the HTTP message sequence to be analyzed from the HTTP message sequence storage unit 55. In the example of the HTTP message sequence 78, the uninput hidden field analysis unit 31 reads the HTTP message sequence of the access unit whose storage area ID is “M1-A” in the first iteration. Then, the non-input hidden field analysis unit 31 reads the HTTP message string of the access unit whose storage area ID is “M1-B” in the second repetition process.

[ステップS44]未入力hiddenフィールド解析部31は、読み込んだメッセージ列を指定して、リクエストパラメータ解析部32にリクエストパラメータ値の抽出を指示する。リクエストパラメータ解析部32は、指定されたメッセージ列からリクエストパラメータ値を抽出する。記憶領域IDが“M1−A”のアクセス単位のHTTPメッセージ列の例ではリクエストパラメータ値が1つも含まれないため、リクエストパラメータ値は、抽出されない(図11参照)。   [Step S44] The uninput hidden field analysis unit 31 designates the read message string and instructs the request parameter analysis unit 32 to extract the request parameter value. The request parameter analysis unit 32 extracts a request parameter value from the specified message string. In the example of the HTTP message string of the access unit with the storage area ID “M1-A”, no request parameter value is included, and therefore the request parameter value is not extracted (see FIG. 11).

[ステップS45]未入力hiddenフィールド解析部31は、リクエストパラメータ解析部32が抽出したリクエストパラメータ値をリクエストパラメータ値記憶部34に記憶するリクエストパラメータ値集合42に追加する。記憶領域IDが“M1−A”のアクセス単位のHTTPメッセージ列の例ではリクエストパラメータ値が1つも含まれないため、リクエストパラメータ値は、追加されない。   [Step S45] The uninput hidden field analysis unit 31 adds the request parameter value extracted by the request parameter analysis unit 32 to the request parameter value set 42 stored in the request parameter value storage unit 34. In the example of the HTTP message string in the access unit with the storage area ID “M1-A”, no request parameter value is included, and therefore no request parameter value is added.

[ステップS46]未入力hiddenフィールド解析部31は、読み込んだメッセージ列を指定して、hiddenフィールド解析部33にhiddenフィールド情報の抽出を指示する。hiddenフィールド解析部33は、指定されたメッセージ列からhiddenフィールド情報を抽出する。記憶領域IDが“M1−A”のアクセス単位のHTTPメッセージ列の例ではhiddenフィールド情報79が含まれるため、hiddenフィールド情報79が抽出される(図11参照)。より具体的には、hiddenフィールド情報79は、“id=1E4DC00D476ABDF1”として抽出される。   [Step S46] The uninput hidden field analysis unit 31 designates the read message string and instructs the hidden field analysis unit 33 to extract hidden field information. The hidden field analysis unit 33 extracts hidden field information from the specified message string. In the example of the HTTP message string of the access unit with the storage area ID “M1-A”, the hidden field information 79 is included, so that the hidden field information 79 is extracted (see FIG. 11). More specifically, the hidden field information 79 is extracted as “id = 1E4DC00D476ABDF1”.

[ステップS47]未入力hiddenフィールド解析部31は、ステップS46で抽出したhiddenフィールド情報のうち、未選択のhiddenフィールド情報がなくなるまでステップS47からステップS51までの処理を繰り返し実行する。記憶領域IDが“M1−A”のアクセス単位のHTTPメッセージ列から抽出したhiddenフィールド情報の例では、hiddenフィールド情報79が1つだけ含まれるためステップS47からステップS51までの処理が1回だけ実行される。   [Step S47] The uninput hidden field analysis unit 31 repeatedly executes the processing from step S47 to step S51 until there is no unselected hidden field information in the hidden field information extracted in step S46. In the example of hidden field information extracted from the HTTP message string of the access unit with the storage area ID “M1-A”, only one hidden field information 79 is included, so the processing from step S47 to step S51 is executed only once. Is done.

[ステップS48]未入力hiddenフィールド解析部31は、ステップS46で抽出したhiddenフィールド情報のうち、未選択のhiddenフィールド情報を選択する。記憶領域IDが“M1−A”のアクセス単位のHTTPメッセージ列から抽出したhiddenフィールド情報の例では、hiddenフィールド情報79が選択される。   [Step S48] The uninput hidden field analysis unit 31 selects unselected hidden field information from the hidden field information extracted in step S46. In the example of hidden field information extracted from the HTTP message string of the access unit having the storage area ID “M1-A”, hidden field information 79 is selected.

[ステップS49]未入力hiddenフィールド解析部31は、選択したhiddenフィールド情報の値がリクエストパラメータ値集合42に含まれているか否かを判定する。選択したhiddenフィールド情報の値がリクエストパラメータ値集合42に含まれている場合、未入力hiddenフィールド解析部31は、ステップS51にすすむ。一方、選択したhiddenフィールド情報の値がリクエストパラメータ値集合42に含まれていない場合、未入力hiddenフィールド解析部31は、ステップS50にすすむ。hiddenフィールド情報79の例では、リクエストパラメータ値集合42の部分集合であるリクエストパラメータ値集合P1にhiddenフィールド情報79の値が含まれないため、未入力hiddenフィールド解析部31は、ステップS50にすすむ。   [Step S49] The uninput hidden field analysis unit 31 determines whether or not the value of the selected hidden field information is included in the request parameter value set 42. When the value of the selected hidden field information is included in the request parameter value set 42, the uninput hidden field analysis unit 31 proceeds to step S51. On the other hand, when the value of the selected hidden field information is not included in the request parameter value set 42, the uninput hidden field analysis unit 31 proceeds to step S50. In the example of the hidden field information 79, since the value of the hidden field information 79 is not included in the request parameter value set P1 that is a subset of the request parameter value set 42, the uninput hidden field analysis unit 31 proceeds to step S50.

[ステップS50]未入力hiddenフィールド解析部31は、未だリクエストされた履歴のないhiddenフィールド情報を、未入力hiddenフィールド記憶部35に記憶する未入力hiddenフィールド集合43に追加する。hiddenフィールド情報79の例では、hiddenフィールド情報79は、未入力hiddenフィールド記憶部35に記憶する未入力hiddenフィールド集合43の部分集合である未入力hiddenフィールド集合H1に追加される。これにより、未入力hiddenフィールド集合H1は、{id=1E4DC00D476ABDF1(M1−A)}となる。なお、未入力hiddenフィールド集合の要素は、“M1−A”のようにアクセス単位を識別する情報を付加するようにしてもよい。   [Step S50] The uninput hidden field analysis unit 31 adds the requested hidden field information without a history to the uninput hidden field set 43 stored in the uninput hidden field storage unit 35. In the example of the hidden field information 79, the hidden field information 79 is added to an uninput hidden field set H 1 that is a subset of the uninput hidden field set 43 stored in the uninput hidden field storage unit 35. As a result, the uninput hidden field set H1 becomes {id = 1E4DC00D476ABDF1 (M1-A)}. Note that information for identifying an access unit such as “M1-A” may be added to the element of the uninput hidden field set.

[ステップS51]未入力hiddenフィールド解析部31は、未選択のhiddenフィールド情報がなければステップS52にすすみ、未選択のhiddenフィールド情報があればステップS47にすすむ。   [Step S51] If there is no unselected hidden field information, the uninput hidden field analysis unit 31 proceeds to step S52, and if there is unselected hidden field information, proceeds to step S47.

[ステップS52]未入力hiddenフィールド解析部31は、未読のHTTPメッセージ列があればステップS42にすすみ、未読のHTTPメッセージ列がなければ未入力hiddenフィールド抽出処理を終了する。   [Step S52] If there is an unread HTTP message string, the uninput hidden field analysis unit 31 proceeds to step S42, and if there is no unread HTTP message string, the uninput hidden field extraction process is terminated.

HTTPメッセージ列78の例では、記憶領域IDが“M1−A”のアクセス単位についてステップS42からステップS52の処理を実行した後、記憶領域IDが“M1−B”のアクセス単位についてもステップS42からステップS52の処理を実行する。このとき、未入力hiddenフィールド解析部31は、ステップS43(2回目の繰り返し処理)で、記憶領域IDが“M1−B”のアクセス単位のHTTPメッセージ列を読み込む。そして、リクエストパラメータ解析部32は、ステップS44で、記憶領域IDが“M1−B”のアクセス単位のHTTPメッセージ列からリクエストパラメータ値80、81を抽出する(図12参照)。より具体的には、リクエストパラメータ値80は、“id=1E4DC00D476ABDF1”として抽出される。そして、リクエストパラメータ値81は、“name=%E8%AB%B8%E8%91%9B%E4%BA%AE”として抽出される。   In the example of the HTTP message string 78, after the processing from step S42 to step S52 is executed for the access unit having the storage area ID “M1-A”, the access unit having the storage area ID “M1-B” is also started from step S42. The process of step S52 is executed. At this time, the uninput hidden field analysis unit 31 reads the HTTP message string of the access unit having the storage area ID “M1-B” in step S43 (second repetition process). In step S44, the request parameter analysis unit 32 extracts the request parameter values 80 and 81 from the HTTP message string of the access unit having the storage area ID “M1-B” (see FIG. 12). More specifically, the request parameter value 80 is extracted as “id = 1E4DC00D476ABDF1”. The request parameter value 81 is extracted as “name =% E8% AB% B8% E8% 91% 9B% E4% BA% AE”.

抽出されたリクエストパラメータ値80、81は、リクエストパラメータ値集合42に追加される。このとき、第1のHTTPメッセージ列にもとづくリクエストパラメータ値80、81は、リクエストパラメータ値集合42の部分集合となるリクエストパラメータ値集合P1に追加される。また、エンコードされているリクエストパラメータ値は、デコードされて追加する。より具体的には、エンコードされた値“%E8%AB%B8%E8%91%9B%E4%BA%AE”は、デコードされた値“諸葛亮”として追加される。これにより、リクエストパラメータ値集合P1は、{1E4DC00D476ABDF1、諸葛亮}となる。なお、リクエストパラメータ値集合42へのリクエストパラメータ値の追加は、エンコードされている値としてもよいし、エンコードされた値とデコードされた値の両方としてもよい。   The extracted request parameter values 80 and 81 are added to the request parameter value set 42. At this time, the request parameter values 80 and 81 based on the first HTTP message string are added to the request parameter value set P1 which is a subset of the request parameter value set 42. The encoded request parameter value is decoded and added. More specifically, the encoded value “% E8% AB% B8% E8% 91% 9B% E4% BA% AE” is added as a decoded value “Shoraku Ryo”. As a result, the request parameter value set P1 becomes {1E4DC00D476ABDF1, Ryo Kutsuka}. The addition of the request parameter value to the request parameter value set 42 may be an encoded value, or may be both an encoded value and a decoded value.

未入力hiddenフィールド解析部31は、ステップS46で、記憶領域IDが“M1−B”のアクセス単位のHTTPメッセージ列を指定して、hiddenフィールド解析部33にhiddenフィールド情報の抽出を指示する。hiddenフィールド解析部33は、hiddenフィールド情報82、83、84を抽出する(図12参照)。より具体的には、hiddenフィールド情報82は、“id=1E4DC00D476ABDF1”として抽出される。hiddenフィールド情報83は、“name=諸葛亮”として抽出される。hiddenフィールド情報84は、“to=admin@example.com”として抽出される。未入力hiddenフィールド解析部31は、抽出したhiddenフィールド情報82、83、84についてステップS47からステップS51までの処理を繰り返し実行する。   In step S46, the uninput hidden field analysis unit 31 designates an HTTP message string of an access unit whose storage area ID is “M1-B” and instructs the hidden field analysis unit 33 to extract hidden field information. The hidden field analysis unit 33 extracts hidden field information 82, 83, and 84 (see FIG. 12). More specifically, the hidden field information 82 is extracted as “id = 1E4DC00D476ABDF1”. The hidden field information 83 is extracted as “name = Ryo Kazuka”. The hidden field information 84 is extracted as “to=admin@example.com”. The uninput hidden field analysis unit 31 repeatedly executes the processing from step S47 to step S51 for the extracted hidden field information 82, 83, and 84.

未入力hiddenフィールド解析部31は、ステップS48で、たとえば、hiddenフィールド情報82を選択する。未入力hiddenフィールド解析部31は、ステップS49で、hiddenフィールド情報82の値“1E4DC00D476ABDF1”がリクエストパラメータ値集合P1に含まれているかを判定する。hiddenフィールド情報82の値“1E4DC00D476ABDF1”は、リクエストパラメータ値集合P1に含まれているので、未入力hiddenフィールド解析部31は、ステップS51にすすむ。hiddenフィールド情報82は、未入力hiddenフィールド集合H1に追加されない。同様にして、hiddenフィールド情報83の値“諸葛亮”は、未入力hiddenフィールド集合H1に追加されず、hiddenフィールド情報84の値“admin@example.com”は、未入力hiddenフィールド集合H1に追加される。これにより、未入力hiddenフィールド集合H1は、{id=1E4DC00D476ABDF1(M1−A)、to=admin@example.com(M1−B)}となる。   The uninput hidden field analysis unit 31 selects, for example, hidden field information 82 in step S48. In step S49, the uninput hidden field analysis unit 31 determines whether the value “1E4DC00D476ABDF1” of the hidden field information 82 is included in the request parameter value set P1. Since the value “1E4DC00D476ABDF1” of the hidden field information 82 is included in the request parameter value set P1, the uninput hidden field analysis unit 31 proceeds to step S51. The hidden field information 82 is not added to the uninput hidden field set H1. In the same manner, the value “Ryo Shizukuri” of the hidden field information 83 is not added to the uninput hidden field set H1, and the value “admin@example.com” of the hidden field information 84 is added to the uninput hidden field set H1. The Thus, the uninput hidden field set H1 is {id = 1E4DC00D476ABDF1 (M1-A), to = admin @ example. com (M1-B)}.

HTTPメッセージ列78、85の例について、未入力hiddenフィールド解析処理を実行した結果を、図17から図19に示す。図17は、第2の実施形態のリクエストパラメータ値集合の一例を示す図である。図18は、第2の実施形態の未入力hiddenフィールド集合の一例を示す図である。図19は、第2の実施形態の検証対象hiddenフィールド集合の一例を示す図である。   FIG. 17 to FIG. 19 show the results of executing the uninput hidden field analysis processing for the examples of the HTTP message strings 78 and 85. FIG. 17 is a diagram illustrating an example of a request parameter value set according to the second embodiment. FIG. 18 is a diagram illustrating an example of an uninput hidden field set according to the second embodiment. FIG. 19 is a diagram illustrating an example of a verification target hidden field set according to the second embodiment.

リクエストパラメータ値集合92は、部分集合であるリクエストパラメータ値集合P1(識別名P1)と、部分集合であるリクエストパラメータ値集合P2(識別名P2)を含む。リクエストパラメータ値集合P1は、第1のHTTPメッセージ列にもとづくリクエストパラメータ値の集合であり、集合データ{1E4DC00D476ABDF1、諸葛亮}を含む。リクエストパラメータ値集合P2は、第2のHTTPメッセージ列にもとづくリクエストパラメータ値の集合であり、集合データ{2A100D3C84BC6E92、諸葛亮}を含む。なお、各集合要素にいずれのHTTPメッセージ列に含まれたのかを識別する識別情報を付加することで、リクエストパラメータ値集合P1、P2を1つの集合としてもよい。   The request parameter value set 92 includes a request parameter value set P1 (identification name P1) that is a subset and a request parameter value set P2 (identification name P2) that is a subset. The request parameter value set P1 is a set of request parameter values based on the first HTTP message string, and includes set data {1E4DC00D476ABDF1, Ryo Kutsuka}. The request parameter value set P2 is a set of request parameter values based on the second HTTP message string, and includes set data {2A100D3C84BC6E92, Ryo Kutsuka}. The request parameter value sets P1 and P2 may be combined into one set by adding identification information for identifying which HTTP message sequence is included in each set element.

未入力hiddenフィールド集合93は、部分集合である未入力hiddenフィールド集合H1(識別名H1)と、部分集合である未入力hiddenフィールド集合H2(識別名H2)を含む。未入力hiddenフィールド集合H1は、第1のHTTPメッセージ列にもとづく未入力hiddenフィールド情報の集合である。未入力hiddenフィールド集合H1は、集合データ{id=1E4DC00D476ABDF1(M1−A)、to=admin@example.com(M1−B)}を含む。未入力hiddenフィールド集合H2は、第2のHTTPメッセージ列にもとづく未入力hiddenフィールド情報の集合である。未入力hiddenフィールド集合H2は、集合データ{id=2A100D3C84BC6E92(M2−A)、to=admin@example.com(M2−B)}を含む。なお、各集合要素にいずれのHTTPメッセージ列に含まれたのかを識別する識別情報を付加することで、未入力hiddenフィールド集合H1、H2を1つの集合としてもよい。   The uninput hidden field set 93 includes an uninput hidden field set H1 (identification name H1) that is a subset and an uninput hidden field set H2 (identification name H2) that is a subset. The uninput hidden field set H1 is a set of uninput hidden field information based on the first HTTP message string. The uninput hidden field set H1 includes set data {id = 1E4DC00D476ABDF1 (M1-A), to = admin @ example. com (M1-B)}. The uninput hidden field set H2 is a set of uninput hidden field information based on the second HTTP message string. The uninput hidden field set H2 includes set data {id = 2A100D3C84BC6E92 (M2-A), to = admin @ example. com (M2-B)}. Note that the uninput hidden field sets H1 and H2 may be combined into one set by adding identification information identifying which HTTP message sequence is included in each set element.

なお、リクエストパラメータ値集合92と未入力hiddenフィールド集合93は、必ずしも数学的な意味の集合でなくてもよい。たとえば、リクエストパラメータ値集合92と未入力hiddenフィールド集合93、同一のデータの重複を許すリストや、データ群などであってもよい。また、リクエストパラメータ値集合92を記憶するリクエストパラメータ値記憶部34と、未入力hiddenフィールド集合93を記憶する未入力hiddenフィールド記憶部35を区別せず、データに識別情報を付加して共通の記憶部に記憶するようにしてもよい。   The request parameter value set 92 and the non-input hidden field set 93 do not necessarily have a mathematical meaning set. For example, the request parameter value set 92 and the non-input hidden field set 93 may be a list that allows duplication of the same data, a data group, or the like. Further, the request parameter value storage unit 34 for storing the request parameter value set 92 and the non-input hidden field storage unit 35 for storing the non-input hidden field set 93 are not distinguished from each other. You may make it memorize | store in a part.

このようにして生成されたリクエストパラメータ値集合92と未入力hiddenフィールド集合93を重複hiddenフィールド解析部36が参照して、検証対象hiddenフィールド集合94が抽出される。重複hiddenフィールド解析部36は、未入力hiddenフィールド集合H1、H2で重複するhiddenフィールド(積集合){to=admin@example.com}を検証対象hiddenフィールドとして抽出する。なお、例示したリクエストパラメータ値集合92は、1つの要素しか含まないが、入力データによっては、当然に複数の要素を有し得る。   The duplicate hidden field analysis unit 36 refers to the request parameter value set 92 and the uninput hidden field set 93 generated in this manner, and the verification target hidden field set 94 is extracted. The duplicate hidden field analysis unit 36 includes a hidden field (product set) that overlaps in the uninput hidden field sets H1 and H2, {to = admin @ example. com} is extracted as a verification target hidden field. The illustrated request parameter value set 92 includes only one element, but may naturally have a plurality of elements depending on input data.

重複hiddenフィールド解析部36は、hiddenフィールドの検証の便宜のために付加情報を併せて出力する。付加情報は、該当する(検証対象hiddenフィールドの抽出元となる)HTTPメッセージの記憶場所を特定する情報(たとえば、“M1−B”、“M2−B”)を含む。HTTPメッセージの記憶場所を特定する情報は、HTTPメッセージを特定する識別情報などであってもよい。また、付加情報は、該当するHTTPリクエストのメソッドとURI(たとえば、“GET http://example.com/form1”)を含むことができる。該当するHTTPリクエストのメソッドとURIは、記憶されているHTTPメッセージから取得することができる。   The duplicate hidden field analysis unit 36 also outputs additional information for the convenience of verifying the hidden field. The additional information includes information (for example, “M1-B”, “M2-B”) that specifies the storage location of the corresponding HTTP message (from which the verification target hidden field is extracted). The information specifying the storage location of the HTTP message may be identification information specifying the HTTP message. Further, the additional information can include the method and URI (for example, “GET http://example.com/form1”) of the corresponding HTTP request. The method and URI of the corresponding HTTP request can be acquired from the stored HTTP message.

また、重複hiddenフィールド解析部36は、検証対象hiddenフィールドを検証対象とする優先度情報を付加情報としてもよい。優先度情報は、検証対象として提示された検証対象hiddenフィールド集合44を後段の処理が実際に検証対象として採用するか否かの判断に用いるための情報である。検証対象hiddenフィールド集合44の抽出後におこなうhiddenフィールドの検証は、検証対象hiddenフィールド集合44の各要素に付加された優先度情報を参照することで、資源に制約がある場合に、より効率化される。   In addition, the duplicate hidden field analysis unit 36 may use priority information whose verification target is the verification target hidden field as additional information. The priority information is information for use in determining whether or not the subsequent processing is actually adopted as the verification target by the verification target hidden field set 44 presented as the verification target. The hidden field verification performed after extraction of the verification target hidden field set 44 is more efficient when resources are constrained by referring to the priority information added to each element of the verification target hidden field set 44. The

優先度情報は、たとえば、検証対象hiddenフィールドの名前や値など検証対象hiddenフィールドが含む情報を評価して得られる情報である。たとえば、重複hiddenフィールド解析部36は、あらかじめ文字列(狭義の文字列に限定されず、数その他の情報を含む)と、文字列の評価値とを登録する評価基準情報を備える。重複hiddenフィールド解析部36は、検証対象hiddenフィールドに含まれる文字列を評価基準情報に登録してある文字列を探索して評価値を算出する。より具体的な評価基準情報の一例を以下に挙げる。   The priority information is information obtained by evaluating information included in the verification target hidden field such as the name and value of the verification target hidden field, for example. For example, the duplicate hidden field analysis unit 36 includes evaluation criterion information for registering a character string (not limited to a narrowly defined character string but including numbers and other information) and an evaluation value of the character string in advance. The duplicate hidden field analysis unit 36 searches for a character string in which the character string included in the verification target hidden field is registered in the evaluation criterion information, and calculates an evaluation value. An example of more specific evaluation standard information is given below.

(1)hiddenフィールド情報が名前に“from”、“to”、“host”、“port”、“file”、“PATH”、“COMMAND”、“CMD”、“QUERY”、“SQL”を含む場合は、評価値を1加算する。なお、名前に所定の文字または文字列を含むかどうかの判定では大文字と小文字は区別しない。   (1) The hidden field information includes “from”, “to”, “host”, “port”, “file”, “PATH”, “COMMAND”, “CMD”, “QUERY”, “SQL” in the name. In this case, 1 is added to the evaluation value. Note that uppercase and lowercase letters are not distinguished in determining whether a name includes a predetermined character or character string.

(2)hiddenフィールド情報が名前に“id”を含む場合は、評価値を1減算する。なお、名前に所定の文字または文字列を含むかどうかの判定では大文字と小文字は区別しない。   (2) When the hidden field information includes “id” in the name, 1 is subtracted from the evaluation value. Note that uppercase and lowercase letters are not distinguished in determining whether a name includes a predetermined character or character string.

(3)hiddenフィールド情報が値に“.(ドット)”、“/(スラッシュ)”、“¥(円記号、バックスラッシュ)”を含む場合は、1加算する。
これにより、たとえば、検証対象hiddenフィールド{to=admin@example.com}は、名前に“to”を含み、“id”を含まず、値に“.”を含むので、2加算して評価値「2」の優先度を得る。これにより、評価値「2」の優先度を有するhiddenフィールドは、評価値「−1」、「0」、「1」の優先度を有するhiddenフィールドよりも優先して検証対象に取り上げる判断がされ得る。
(3) If the hidden field information includes “. (Dot)”, “/ (slash)”, “¥ (yen symbol, backslash)” in the value, 1 is added.
Thereby, for example, the verification target hidden field {to = admin @ example. com} includes “to” in the name, does not include “id”, and includes “.” in the value, and therefore adds 2 to obtain the priority of the evaluation value “2”. As a result, the hidden field having the priority of the evaluation value “2” is judged to be taken up as a verification target in preference to the hidden field having the priority of the evaluation values “−1”, “0”, and “1”. obtain.

なお、評価基準情報は、ユーザにより評価対象文字列の追加、削除、変更を可能とし、また、評価値を設定可能であってよい。これにより、時間、人などの資源に限りがあるときに、セキュリティ上の問題を有するおそれのあるウェブアプリケーションの検証対象を効率よく検証することができる。   Note that the evaluation criterion information may allow the user to add, delete, and change the evaluation target character string, and may set an evaluation value. Thereby, when resources such as time and people are limited, it is possible to efficiently verify a verification target of a web application that may have a security problem.

なお、上記の処理機能は、コンピュータによって実現することができる。その場合、検証対象抽出装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。磁気記録装置には、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープなどがある。光ディスクには、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM、CD−R(Recordable)/RW(ReWritable)などがある。光磁気記録媒体には、MO(Magneto-Optical disk)などがある。   The above processing functions can be realized by a computer. In that case, a program describing the processing content of the function that the verification target extraction apparatus should have is provided. By executing the program on a computer, the above processing functions are realized on the computer. The program describing the processing contents can be recorded on a computer-readable recording medium. Examples of the computer-readable recording medium include a magnetic recording device, an optical disk, a magneto-optical recording medium, and a semiconductor memory. Examples of the magnetic recording device include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape. Optical discs include DVD (Digital Versatile Disc), DVD-RAM, CD-ROM, CD-R (Recordable) / RW (ReWritable), and the like. Magneto-optical recording media include MO (Magneto-Optical disk).

プログラムを流通させる場合には、たとえば、そのプログラムが記録されたDVD、CD−ROMなどの外部記憶媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。   When distributing the program, for example, an external storage medium such as a DVD or a CD-ROM in which the program is recorded is sold. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.

プログラムを実行するコンピュータは、たとえば、外部記憶媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムにしたがった処理を実行する。なお、コンピュータは、外部記憶媒体から直接プログラムを読み取り、そのプログラムにしたがった処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムにしたがった処理を実行することもできる。   The computer that executes the program stores, for example, the program recorded in the external storage medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read a program directly from an external storage medium and execute processing according to the program. Further, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.

なお、上述の実施の形態は、実施の形態の要旨を逸脱しない範囲内において種々の変更を加えることができる。
さらに、上述の実施の形態は、多数の変形、変更が当業者にとって可能であり、説明した正確な構成および応用例に限定されるものではない。
Note that various modifications can be made to the above-described embodiment without departing from the gist of the embodiment.
Further, the above-described embodiments can be modified and changed by those skilled in the art, and are not limited to the exact configurations and application examples described.

以上説明した実施の形態の主な技術的特徴は、以下の付記の通りである。
(付記1) コンピュータを、
構造化文書提供アプリケーションを実装するサーバと、前記サーバが提供する構造化文書の閲覧アプリケーションを実装するクライアントとの一連の通信の内容を含む第1のメッセージデータ、および前記一連の通信と異なるタイミングの一連の通信の内容を含む第2のメッセージデータに含まれるリクエストデータからリクエストパラメータを抽出して、前記リクエストパラメータをリクエストパラメータ記憶手段に格納するリクエストパラメータ抽出手段、
前記第1のメッセージデータ、および前記第2のメッセージデータに含まれるレスポンスデータから非表示属性項目を抽出して、前記非表示属性項目を非表示属性項目記憶手段に格納する非表示属性項目抽出手段、
前記非表示属性項目記憶手段が記憶する前記非表示属性項目のうちから、前記リクエストパラメータ記憶手段が記憶する前記リクエストパラメータに含まれていない値を有する前記非表示属性項目を未入力非表示属性項目として抽出して、前記未入力非表示属性項目を未入力非表示属性項目記憶手段に格納する未入力非表示属性項目抽出手段、
前記未入力非表示属性項目記憶手段が記憶する前記未入力非表示属性項目のうち、前記第1のメッセージデータに含まれた前記未入力非表示属性項目と前記第2のメッセージデータに含まれた前記未入力非表示属性項目とで重複する前記未入力非表示属性項目を検証対象非表示属性項目として抽出する検証対象非表示属性項目抽出手段、
として機能させることを特徴とする検証対象抽出プログラム。
The main technical features of the embodiment described above are as follows.
(Appendix 1)
First message data including the contents of a series of communications between a server that implements a structured document providing application and a client that implements a structured document viewing application provided by the server, and at a timing different from the series of communications. A request parameter extracting unit that extracts a request parameter from request data included in the second message data including a series of communication contents, and stores the request parameter in a request parameter storage unit;
Non-display attribute item extraction means for extracting non-display attribute items from response data included in the first message data and the second message data, and storing the non-display attribute items in non-display attribute item storage means ,
Among the non-display attribute items stored by the non-display attribute item storage unit, the non-input non-display attribute item that has a value not included in the request parameter stored by the request parameter storage unit. Uninput non-display attribute item extracting means for storing the non-input non-display attribute item in the non-input non-display attribute item storage means,
Among the non-input non-display attribute items stored by the non-input non-display attribute item storage means, the non-input non-display attribute items included in the first message data and the second message data included A verification target non-display attribute item extracting means for extracting the non-input non-display attribute item overlapping with the non-input non-display attribute item as a verification target non-display attribute item;
The verification object extraction program characterized by making it function as.

(付記2) 前記コンピュータを、さらに、
前記サーバと前記クライアントとの通信の内容から前記第1のメッセージデータ、および前記第2のメッセージデータを取得して、メッセージデータ記憶手段に格納する通信内容取得手段、
として機能させることを特徴とする付記1記載の検証対象抽出プログラム。
(Supplementary note 2)
Communication content acquisition means for acquiring the first message data and the second message data from the content of communication between the server and the client, and storing them in message data storage means;
The verification target extraction program according to appendix 1, wherein the verification target extraction program is made to function as:

(付記3) 前記コンピュータを、さらに、
前記構造化文書の前記閲覧アプリケーションを操作する閲覧アプリケーション操作手段、
として機能させることを特徴とする付記2記載の検証対象抽出プログラム。
(Supplementary note 3)
A browsing application operating means for operating the browsing application of the structured document;
The verification target extraction program according to supplementary note 2, wherein the verification target extraction program is made to function as:

(付記4) 前記閲覧アプリケーション操作手段は、あらかじめ用意された閲覧アプリケーション操作の操作スクリプトにもとづいて、前記閲覧アプリケーションを操作することを特徴とする付記3記載の検証対象抽出プログラム。   (Additional remark 4) The said browsing application operation means operates the said browsing application based on the operation script of the browsing application operation prepared beforehand, The verification object extraction program of Additional remark 3 characterized by the above-mentioned.

(付記5) 前記通信内容取得手段は、前記クライアントの代理サーバとして、前記サーバと前記クライアントとの通信の内容を取得することを特徴とする付記2記載の検証対象抽出プログラム。   (Additional remark 5) The said communication content acquisition means acquires the content of communication between the said server and the said client as a proxy server of the said client, The verification object extraction program of Additional remark 2 characterized by the above-mentioned.

(付記6) 前記未入力非表示属性項目抽出手段は、
前記第1のメッセージデータにもとづく前記非表示属性項目のうちから、前記第1のメッセージデータにもとづく前記リクエストパラメータに含まれていない値を有する前記非表示属性項目を前記第1のメッセージデータにもとづく前記未入力非表示属性項目として抽出し、
前記第2のメッセージデータにもとづく前記非表示属性項目のうちから、前記第2のメッセージデータにもとづく前記リクエストパラメータに含まれていない値を有する前記非表示属性項目を前記第2のメッセージデータにもとづく前記未入力非表示属性項目として抽出することを特徴とする付記1または付記2に記載の検証対象抽出プログラム。
(Additional remark 6) The said non-input non-display attribute item extraction means,
Of the non-display attribute items based on the first message data, the non-display attribute item having a value not included in the request parameter based on the first message data is based on the first message data. Extracted as the non-input hidden attribute item,
Of the non-display attribute items based on the second message data, the non-display attribute item having a value not included in the request parameter based on the second message data is based on the second message data. 3. The verification object extraction program according to appendix 1 or appendix 2, wherein the verification target extraction item is extracted as the non-input non-display attribute item.

(付記7) 前記コンピュータを、さらに、
抽出した前記検証対象非表示属性項目の検証の優先度を評価する評価手段、
として機能させ、
前記検証対象非表示属性項目抽出手段は、前記検証対象非表示属性項目に前記評価を付加することを特徴とする付記1または付記2に記載の検証対象抽出プログラム。
(Supplementary note 7)
Evaluation means for evaluating the priority of verification of the extracted verification target hidden attribute item,
Function as
The verification target extraction program according to appendix 1 or appendix 2, wherein the verification target non-display attribute item extraction unit adds the evaluation to the verification target non-display attribute item.

(付記8) 前記評価手段は、あらかじめ定めた文字列と、前記文字列の評価値とを登録した評価基準情報を備え、前記検証対象非表示属性項目に前記文字列が含まれる場合に、前記評価値にもとづいて前記検証対象非表示属性項目を評価することを特徴とする付記7記載の検証対象抽出プログラム。   (Additional remark 8) The said evaluation means is provided with the evaluation reference | standard information which registered the predetermined character string and the evaluation value of the said character string, and the said character string is contained in the said verification object non-display attribute item, The verification object extraction program according to appendix 7, wherein the verification target non-display attribute item is evaluated based on an evaluation value.

(付記9) 構造化文書提供アプリケーションの検証対象となる非表示属性項目を抽出する検証対象抽出装置において、
前記構造化文書提供アプリケーションを実装するサーバと、前記サーバが提供する構造化文書の閲覧アプリケーションを実装するクライアントとの一連の通信の内容を含む第1のメッセージデータ、および前記一連の通信と異なるタイミングの一連の通信の内容を含む第2のメッセージデータに含まれるリクエストデータからリクエストパラメータを抽出して、前記リクエストパラメータをリクエストパラメータ記憶手段に格納するリクエストパラメータ抽出手段と、
前記第1のメッセージデータ、および前記第2のメッセージデータに含まれるレスポンスデータから非表示属性項目を抽出して、前記非表示属性項目を非表示属性項目記憶手段に格納する非表示属性項目抽出手段と、
前記非表示属性項目記憶手段が記憶する前記非表示属性項目のうちから、前記リクエストパラメータ記憶手段が記憶する前記リクエストパラメータに含まれていない値を有する前記非表示属性項目を未入力非表示属性項目として抽出して、前記未入力非表示属性項目を未入力非表示属性項目記憶手段に格納する未入力非表示属性項目抽出手段と、
前記未入力非表示属性項目記憶手段が記憶する前記未入力非表示属性項目のうち、前記第1のメッセージデータに含まれた前記未入力非表示属性項目と前記第2のメッセージデータに含まれた前記未入力非表示属性項目とで重複する前記未入力非表示属性項目を検証対象非表示属性項目として抽出する検証対象非表示属性項目抽出手段と、
を備えることを特徴とする検証対象抽出装置。
(Supplementary Note 9) In a verification target extraction apparatus that extracts a non-display attribute item to be verified by a structured document providing application,
First message data including the contents of a series of communications between a server that implements the structured document providing application and a client that implements a structured document browsing application provided by the server, and timings different from the series of communications Request parameter extraction means for extracting request parameters from request data included in the second message data including the contents of a series of communication, and storing the request parameters in the request parameter storage means;
Non-display attribute item extraction means for extracting non-display attribute items from response data included in the first message data and the second message data, and storing the non-display attribute items in non-display attribute item storage means When,
Among the non-display attribute items stored by the non-display attribute item storage unit, the non-input non-display attribute item that has a value not included in the request parameter stored by the request parameter storage unit. Un-input non-display attribute item extraction means for storing the non-input non-display attribute item in the non-input non-display attribute item storage means;
Among the non-input non-display attribute items stored by the non-input non-display attribute item storage means, the non-input non-display attribute items included in the first message data and the second message data included A verification target non-display attribute item extracting means for extracting the non-input non-display attribute item overlapping with the non-input non-display attribute item as a verification target non-display attribute item;
A verification object extraction apparatus comprising:

(付記10) 構造化文書提供アプリケーションの検証対象となる非表示属性項目を抽出する検証対象抽出装置の検証対象抽出方法において、
前記検証対象抽出装置が、
前記構造化文書提供アプリケーションを実装するサーバと、前記サーバが提供する構造化文書の閲覧アプリケーションを実装するクライアントとの一連の通信の内容を含む第1のメッセージデータ、および前記一連の通信と異なるタイミングの一連の通信の内容を含む第2のメッセージデータに含まれるリクエストデータからリクエストパラメータを抽出して、前記リクエストパラメータをリクエストパラメータ記憶手段に格納し、
前記第1のメッセージデータ、および前記第2のメッセージデータに含まれるレスポンスデータから非表示属性項目を抽出して、前記非表示属性項目を非表示属性項目記憶手段に格納し、
前記非表示属性項目記憶手段が記憶する前記非表示属性項目のうちから、前記リクエストパラメータ記憶手段が記憶する前記リクエストパラメータに含まれていない値を有する前記非表示属性項目を未入力非表示属性項目として抽出して、前記未入力非表示属性項目を未入力非表示属性項目記憶手段に格納し、
前記未入力非表示属性項目記憶手段が記憶する前記未入力非表示属性項目のうち、前記第1のメッセージデータに含まれた前記未入力非表示属性項目と前記第2のメッセージデータに含まれた前記未入力非表示属性項目とで重複する前記未入力非表示属性項目を検証対象非表示属性項目として抽出することを特徴とする検証対象抽出方法。
(Additional remark 10) In the verification object extraction method of the verification object extraction apparatus which extracts the non-display attribute item used as the verification object of a structured document provision application,
The verification object extraction device is
First message data including the contents of a series of communications between a server that implements the structured document providing application and a client that implements a structured document browsing application provided by the server, and timings different from the series of communications A request parameter is extracted from the request data included in the second message data including the contents of a series of communication, and the request parameter is stored in the request parameter storage unit,
Extracting a non-display attribute item from response data included in the first message data and the second message data, and storing the non-display attribute item in a non-display attribute item storage unit;
Among the non-display attribute items stored by the non-display attribute item storage unit, the non-input non-display attribute item that has a value not included in the request parameter stored by the request parameter storage unit. And the non-input non-display attribute item is stored in the non-input non-display attribute item storage means,
Among the non-input non-display attribute items stored by the non-input non-display attribute item storage means, the non-input non-display attribute items included in the first message data and the second message data included A verification target extraction method, wherein the non-input non-display attribute item overlapping with the non-input non-display attribute item is extracted as a verification target non-display attribute item.

1 検証対象抽出装置
11 リクエストパラメータ抽出手段
12 非表示属性項目抽出手段
13 非表示属性項目記憶手段
14 リクエストパラメータ記憶手段
15 未入力非表示属性項目抽出手段
16 未入力非表示属性項目記憶手段
17 検証対象非表示属性項目抽出手段
20a メッセージデータ
20b メッセージデータ
21a リクエストデータ
21b リクエストデータ
22a スポンスデータ
22b レスポンスデータ
23 非表示属性項目
24 リクエストパラメータ
25 未入力非表示属性項目
26 検証対象非表示属性項目
DESCRIPTION OF SYMBOLS 1 Verification object extraction apparatus 11 Request parameter extraction means 12 Non-display attribute item extraction means 13 Non-display attribute item storage means 14 Request parameter storage means 15 Non-input non-display attribute item extraction means 16 Non-input non-display attribute item storage means 17 Verification object Non-display attribute item extraction means 20a Message data 20b Message data 21a Request data 21b Request data 22a Response data 22b Response data 23 Non-display attribute item 24 Request parameter 25 Non-input non-display attribute item 26 Verification target non-display attribute item

Claims (7)

コンピュータを、
構造化文書提供アプリケーションを実装するサーバと、前記サーバが提供する構造化文書の閲覧アプリケーションを実装するクライアントとの一連の通信の内容を含む第1のメッセージデータ、および前記一連の通信と異なるタイミングの一連の通信の内容を含む第2のメッセージデータに含まれるリクエストデータからリクエストパラメータを抽出して、前記リクエストパラメータをリクエストパラメータ記憶手段に格納するリクエストパラメータ抽出手段、
前記第1のメッセージデータ、および前記第2のメッセージデータに含まれるレスポンスデータから非表示属性項目を抽出して、前記非表示属性項目を非表示属性項目記憶手段に格納する非表示属性項目抽出手段、
前記非表示属性項目記憶手段が記憶する前記非表示属性項目のうちから、前記リクエストパラメータ記憶手段が記憶する前記リクエストパラメータに含まれていない値を有する前記非表示属性項目を未入力非表示属性項目として抽出して、前記未入力非表示属性項目を未入力非表示属性項目記憶手段に格納する未入力非表示属性項目抽出手段、
前記未入力非表示属性項目記憶手段が記憶する前記未入力非表示属性項目のうち、前記第1のメッセージデータに含まれた前記未入力非表示属性項目と前記第2のメッセージデータに含まれた前記未入力非表示属性項目とで重複する前記未入力非表示属性項目を検証対象非表示属性項目として抽出する検証対象非表示属性項目抽出手段、
として機能させることを特徴とする検証対象抽出プログラム。
Computer
First message data including the contents of a series of communications between a server that implements a structured document providing application and a client that implements a structured document viewing application provided by the server, and at a timing different from the series of communications. A request parameter extracting unit that extracts a request parameter from request data included in the second message data including a series of communication contents, and stores the request parameter in a request parameter storage unit;
Non-display attribute item extraction means for extracting non-display attribute items from response data included in the first message data and the second message data, and storing the non-display attribute items in non-display attribute item storage means ,
Among the non-display attribute items stored by the non-display attribute item storage unit, the non-input non-display attribute item that has a value not included in the request parameter stored by the request parameter storage unit. Uninput non-display attribute item extracting means for storing the non-input non-display attribute item in the non-input non-display attribute item storage means,
Among the non-input non-display attribute items stored by the non-input non-display attribute item storage means, the non-input non-display attribute items included in the first message data and the second message data included A verification target non-display attribute item extracting means for extracting the non-input non-display attribute item overlapping with the non-input non-display attribute item as a verification target non-display attribute item;
The verification object extraction program characterized by making it function as.
前記コンピュータを、さらに、
前記サーバと前記クライアントとの通信の内容から前記第1のメッセージデータ、および前記第2のメッセージデータを取得して、メッセージデータ記憶手段に格納する通信内容取得手段、
として機能させることを特徴とする請求項1記載の検証対象抽出プログラム。
Said computer further
Communication content acquisition means for acquiring the first message data and the second message data from the content of communication between the server and the client, and storing them in message data storage means;
The verification target extraction program according to claim 1, wherein the verification target extraction program is executed as follows.
前記未入力非表示属性項目抽出手段は、
前記第1のメッセージデータにもとづく前記非表示属性項目のうちから、前記第1のメッセージデータにもとづく前記リクエストパラメータに含まれていない値を有する前記非表示属性項目を前記第1のメッセージデータにもとづく前記未入力非表示属性項目として抽出し、
前記第2のメッセージデータにもとづく前記非表示属性項目のうちから、前記第2のメッセージデータにもとづく前記リクエストパラメータに含まれていない値を有する前記非表示属性項目を前記第2のメッセージデータにもとづく前記未入力非表示属性項目として抽出することを特徴とする請求項1または請求項2に記載の検証対象抽出プログラム。
The non-input non-display attribute item extraction means includes
Of the non-display attribute items based on the first message data, the non-display attribute item having a value not included in the request parameter based on the first message data is based on the first message data. Extracted as the non-input hidden attribute item,
Of the non-display attribute items based on the second message data, the non-display attribute item having a value not included in the request parameter based on the second message data is based on the second message data. The verification target extraction program according to claim 1 or 2, wherein the non-input non-display attribute item is extracted.
前記コンピュータを、さらに、
抽出した前記検証対象非表示属性項目の検証の優先度を評価する評価手段、
として機能させ、
前記検証対象非表示属性項目抽出手段は、前記検証対象非表示属性項目に前記評価を付加することを特徴とする請求項1または請求項2に記載の検証対象抽出プログラム。
Said computer further
Evaluation means for evaluating the priority of verification of the extracted verification target hidden attribute item,
Function as
The verification object extraction program according to claim 1 or 2, wherein the verification target non-display attribute item extraction unit adds the evaluation to the verification target non-display attribute item.
前記評価手段は、あらかじめ定めた文字列と、前記文字列の評価値とを登録した評価基準情報を備え、前記検証対象非表示属性項目に前記文字列が含まれる場合に、前記評価値にもとづいて前記検証対象非表示属性項目を評価することを特徴とする請求項4記載の検証対象抽出プログラム。   The evaluation means includes evaluation reference information in which a predetermined character string and an evaluation value of the character string are registered, and when the verification target non-display attribute item includes the character string, the evaluation means is based on the evaluation value. 5. The verification object extraction program according to claim 4, wherein the verification target non-display attribute item is evaluated. 構造化文書提供アプリケーションの検証対象となる非表示属性項目を抽出する検証対象抽出装置において、
前記構造化文書提供アプリケーションを実装するサーバと、前記サーバが提供する構造化文書の閲覧アプリケーションを実装するクライアントとの一連の通信の内容を含む第1のメッセージデータ、および前記一連の通信と異なるタイミングの一連の通信の内容を含む第2のメッセージデータに含まれるリクエストデータからリクエストパラメータを抽出して、前記リクエストパラメータをリクエストパラメータ記憶手段に格納するリクエストパラメータ抽出手段と、
前記第1のメッセージデータ、および前記第2のメッセージデータに含まれるレスポンスデータから非表示属性項目を抽出して、前記非表示属性項目を非表示属性項目記憶手段に格納する非表示属性項目抽出手段と、
前記非表示属性項目記憶手段が記憶する前記非表示属性項目のうちから、前記リクエストパラメータ記憶手段が記憶する前記リクエストパラメータに含まれていない値を有する前記非表示属性項目を未入力非表示属性項目として抽出して、前記未入力非表示属性項目を未入力非表示属性項目記憶手段に格納する未入力非表示属性項目抽出手段と、
前記未入力非表示属性項目記憶手段が記憶する前記未入力非表示属性項目のうち、前記第1のメッセージデータに含まれた前記未入力非表示属性項目と前記第2のメッセージデータに含まれた前記未入力非表示属性項目とで重複する前記未入力非表示属性項目を検証対象非表示属性項目として抽出する検証対象非表示属性項目抽出手段と、
を備えることを特徴とする検証対象抽出装置。
In the verification target extraction device that extracts the non-display attribute item to be verified by the structured document providing application,
First message data including the contents of a series of communications between a server that implements the structured document providing application and a client that implements a structured document browsing application provided by the server, and timings different from the series of communications Request parameter extraction means for extracting request parameters from request data included in the second message data including the contents of a series of communication, and storing the request parameters in the request parameter storage means;
Non-display attribute item extraction means for extracting non-display attribute items from response data included in the first message data and the second message data, and storing the non-display attribute items in non-display attribute item storage means When,
Among the non-display attribute items stored by the non-display attribute item storage unit, the non-input non-display attribute item that has a value not included in the request parameter stored by the request parameter storage unit. Un-input non-display attribute item extraction means for storing the non-input non-display attribute item in the non-input non-display attribute item storage means;
Among the non-input non-display attribute items stored by the non-input non-display attribute item storage means, the non-input non-display attribute items included in the first message data and the second message data included A verification target non-display attribute item extracting means for extracting the non-input non-display attribute item overlapping with the non-input non-display attribute item as a verification target non-display attribute item;
A verification object extraction apparatus comprising:
構造化文書提供アプリケーションの検証対象となる非表示属性項目を抽出する検証対象抽出装置の検証対象抽出方法において、
前記検証対象抽出装置が、
前記構造化文書提供アプリケーションを実装するサーバと、前記サーバが提供する構造化文書の閲覧アプリケーションを実装するクライアントとの一連の通信の内容を含む第1のメッセージデータ、および前記一連の通信と異なるタイミングの一連の通信の内容を含む第2のメッセージデータに含まれるリクエストデータからリクエストパラメータを抽出して、前記リクエストパラメータをリクエストパラメータ記憶手段に格納し、
前記第1のメッセージデータ、および前記第2のメッセージデータに含まれるレスポンスデータから非表示属性項目を抽出して、前記非表示属性項目を非表示属性項目記憶手段に格納し、
前記非表示属性項目記憶手段が記憶する前記非表示属性項目のうちから、前記リクエストパラメータ記憶手段が記憶する前記リクエストパラメータに含まれていない値を有する前記非表示属性項目を未入力非表示属性項目として抽出して、前記未入力非表示属性項目を未入力非表示属性項目記憶手段に格納し、
前記未入力非表示属性項目記憶手段が記憶する前記未入力非表示属性項目のうち、前記第1のメッセージデータに含まれた前記未入力非表示属性項目と前記第2のメッセージデータに含まれた前記未入力非表示属性項目とで重複する前記未入力非表示属性項目を検証対象非表示属性項目として抽出することを特徴とする検証対象抽出方法。
In the verification target extraction method of the verification target extraction device that extracts the non-display attribute item to be verified by the structured document providing application,
The verification object extraction device is
First message data including the contents of a series of communications between a server that implements the structured document providing application and a client that implements a structured document browsing application provided by the server, and timings different from the series of communications A request parameter is extracted from the request data included in the second message data including the contents of a series of communication, and the request parameter is stored in the request parameter storage unit,
Extracting a non-display attribute item from response data included in the first message data and the second message data, and storing the non-display attribute item in a non-display attribute item storage unit;
Among the non-display attribute items stored by the non-display attribute item storage unit, the non-input non-display attribute item that has a value not included in the request parameter stored by the request parameter storage unit. And the non-input non-display attribute item is stored in the non-input non-display attribute item storage means,
Among the non-input non-display attribute items stored by the non-input non-display attribute item storage means, the non-input non-display attribute items included in the first message data and the second message data included A verification target extraction method, wherein the non-input non-display attribute item overlapping with the non-input non-display attribute item is extracted as a verification target non-display attribute item.
JP2009269165A 2009-11-26 2009-11-26 Verification target extraction program, verification target extraction device, and verification target extraction method Active JP5381649B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009269165A JP5381649B2 (en) 2009-11-26 2009-11-26 Verification target extraction program, verification target extraction device, and verification target extraction method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009269165A JP5381649B2 (en) 2009-11-26 2009-11-26 Verification target extraction program, verification target extraction device, and verification target extraction method

Publications (2)

Publication Number Publication Date
JP2011113315A true JP2011113315A (en) 2011-06-09
JP5381649B2 JP5381649B2 (en) 2014-01-08

Family

ID=44235603

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009269165A Active JP5381649B2 (en) 2009-11-26 2009-11-26 Verification target extraction program, verification target extraction device, and verification target extraction method

Country Status (1)

Country Link
JP (1) JP5381649B2 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004310269A (en) * 2003-04-03 2004-11-04 Nec Corp Contents distributing system, method, program, and one time url managing device
JP2006338146A (en) * 2005-05-31 2006-12-14 Fuji Xerox Co Ltd Information presentation system
WO2008047351A2 (en) * 2006-10-19 2008-04-24 Checkmarx Ltd. Locating security vulnerabilities in source code
JP2008135029A (en) * 2006-11-17 2008-06-12 Hewlett-Packard Development Co Lp Web application assessment based on intelligent generation of attack string
JP2008171139A (en) * 2007-01-10 2008-07-24 Hitachi Computer Peripherals Co Ltd Testing device and testing method for storage system
JP2009053740A (en) * 2007-08-23 2009-03-12 Internatl Business Mach Corp <Ibm> System, method, and computer program for recording operation log
JP2009134725A (en) * 1999-07-01 2009-06-18 F5 Networks Inc Method and system for extracting application protocol characteristics

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009134725A (en) * 1999-07-01 2009-06-18 F5 Networks Inc Method and system for extracting application protocol characteristics
JP2004310269A (en) * 2003-04-03 2004-11-04 Nec Corp Contents distributing system, method, program, and one time url managing device
JP2006338146A (en) * 2005-05-31 2006-12-14 Fuji Xerox Co Ltd Information presentation system
WO2008047351A2 (en) * 2006-10-19 2008-04-24 Checkmarx Ltd. Locating security vulnerabilities in source code
JP2008135029A (en) * 2006-11-17 2008-06-12 Hewlett-Packard Development Co Lp Web application assessment based on intelligent generation of attack string
JP2008171139A (en) * 2007-01-10 2008-07-24 Hitachi Computer Peripherals Co Ltd Testing device and testing method for storage system
JP2009053740A (en) * 2007-08-23 2009-03-12 Internatl Business Mach Corp <Ibm> System, method, and computer program for recording operation log

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AMANDA ANDRESS, 実践 情報セキュリティ 第1版, vol. 第1版, JPN6013042986, 25 February 2005 (2005-02-25), pages 264 - 265, ISSN: 0002619756 *

Also Published As

Publication number Publication date
JP5381649B2 (en) 2014-01-08

Similar Documents

Publication Publication Date Title
US10567407B2 (en) Method and system for detecting malicious web addresses
US7343559B1 (en) Computer-readable recorded medium on which image file is recorded, device for producing the recorded medium, medium on which image file creating program is recorded, device for transmitting image file, device for processing image file, and medium on which image file processing program is recorded
US8554740B2 (en) Recording a log of operations
CA2695819C (en) Method and system to selectively secure the display of advertisements on web browsers
US20160247070A1 (en) Comprehensive human computation framework
US20180131779A1 (en) Recording And Triggering Web And Native Mobile Application Events With Mapped Data Fields
US10347286B2 (en) Displaying session audit logs
US8606912B1 (en) Statistics overlay
JP2001188738A (en) System and method for providing information and device for adding identification information and computer readable recording medium stored with the same program and information providing server device and computer readable recording medium stored with the same program and information terminal and computer readable recording medium with information using program and charging device
US11356433B2 (en) System and method for detecting unauthorized activity at an electronic device
JP2009181459A (en) Access analyzing device and access analyzing method and access analyzing program
US8418058B2 (en) Graphical indication of signed content
US8316103B2 (en) Method for acquiring long data by GET method
JP5082555B2 (en) Security inspection model generation device, security inspection model inspection device, and security inspection model generation program
US8127314B2 (en) Method for using information in another domain, program for using information in another domain, and information transfer program
JP5381649B2 (en) Verification target extraction program, verification target extraction device, and verification target extraction method
JP5966076B1 (en) Information processing apparatus, information processing method, and program
JP2017117255A (en) Information processing device, information processing method, and program
JP2004310267A (en) Inspection equipment for web site
JP6105797B1 (en) Information processing apparatus, information processing method, and program
US11669588B2 (en) Advanced data collection block identification
JP6105792B1 (en) Information processing apparatus, information processing method, and program
JP6063593B1 (en) Information processing apparatus, information processing method, and program
Hooshmand Efficient Reconstruction of User Sessions from HTTP traces for Rich Internet Applications
JP2011170531A (en) Traffic data separation method and program

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120815

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130814

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: 20130903

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130916

R150 Certificate of patent or registration of utility model

Ref document number: 5381649

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150