JP5082555B2 - Security inspection model generation device, security inspection model inspection device, and security inspection model generation program - Google Patents

Security inspection model generation device, security inspection model inspection device, and security inspection model generation program Download PDF

Info

Publication number
JP5082555B2
JP5082555B2 JP2007103371A JP2007103371A JP5082555B2 JP 5082555 B2 JP5082555 B2 JP 5082555B2 JP 2007103371 A JP2007103371 A JP 2007103371A JP 2007103371 A JP2007103371 A JP 2007103371A JP 5082555 B2 JP5082555 B2 JP 5082555B2
Authority
JP
Japan
Prior art keywords
attack
attacker
procedure
model
shortened
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.)
Expired - Fee Related
Application number
JP2007103371A
Other languages
Japanese (ja)
Other versions
JP2008262311A (en
Inventor
郁也 森川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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 JP2007103371A priority Critical patent/JP5082555B2/en
Publication of JP2008262311A publication Critical patent/JP2008262311A/en
Application granted granted Critical
Publication of JP5082555B2 publication Critical patent/JP5082555B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は,モデル検査によってwebアプリケーションのセキュリティを検査する技術に関する。   The present invention relates to a technique for checking the security of a web application by model checking.

モデル検査はシミュレーションの一種であり,対象システムをモデルで表現し,そのモデルの振る舞いをモデル検査装置によって再現することによって,モデルの調べたい性質,所定の条件に対する反応を検査する手法である。モデル検査は,人間が網羅的に調べることが難しいような並行・分散システムの検査に威力を発揮する。   Model checking is a kind of simulation, in which the target system is expressed by a model, and the behavior of the model is reproduced by a model checking device, thereby checking the property to be examined and the response to a predetermined condition. Model checking is very useful for checking parallel / distributed systems that are difficult for humans to examine comprehensively.

近年,World−Wide web (web)の技術に基づくクライアント・サーバ・アプリケーション(webアプリケーション)が広く利用されている。webアプリケーションは,HTTP(Hypertext Transfer Protocol)プロトコルによりネットワーク上で通信を行うアプリケーションであって,ユーザに提示される画面内容(ページ)は主にHTML(Hypertext Markup Language)形式で記述される。サーバは,webサイトとも呼ばれ,クライアントにはwebブラウザが主に用いられる。   In recent years, client-server applications (web applications) based on World-Wide web (web) technology have been widely used. The web application is an application that performs communication on a network using an HTTP (Hypertext Transfer Protocol) protocol, and screen contents (pages) presented to the user are mainly described in an HTML (Hypertext Markup Language) format. The server is also called a web site, and a web browser is mainly used as a client.

かつてのwebは,クライアントからみて,単純に発信された情報を取得するのが主であった。しかし,最近では掲示板やウェブログ(ブログ)といった情報を掲載する処理や,ネットワークに接続された機器の管理,商品やサービスの購入といった商取引など,多くのアプリケーションがweb技術で実現されており,社会にも浸透している。代表的なwebブラウザとして,Microsoft社のInternet ExplorerやMozilla FoundationのFirefoxなどがある。   In the past, the web was mainly obtained from the point of view of the client. However, recently, many applications such as processing to post information such as bulletin boards and weblogs (blogs), management of devices connected to the network, and commercial transactions such as purchase of products and services have been realized with web technology. It has also penetrated. Typical web browsers include Microsoft Internet Explorer and Mozilla Foundation Firefox.

このような,高度なwebアプリケーションの多くでは,特定のユーザのみに情報を提供したり操作を許したりすることが求められる。このため,SSL(Secure Sockets Layer)あるいはTLS(Transport Layer Security)による保護を行うHTTPS(Hypertext Transfer Protocol over SSL)プロトコルや,HTTP認証といったセキュリティ機能が用意されるようになった。   Many of such advanced web applications are required to provide information or allow an operation only to a specific user. For this reason, a security function such as an HTTPS (Hypertext Transfer Protocol over SSL) protocol for performing protection by SSL (Secure Sockets Layer) or TLS (Transport Layer Security), and HTTP authentication is provided.

しかし,HTTPプロトコルはステートレスであり,プロトコル自体はリクエストとレスポンスとの複数の組の間の関連付けを行う機能を持たないため,クッキー(Cookie)と呼ばれる機構が設けられている。クッキーは,サーバが指定したデータをブラウザが暗黙的に保持しておき,リクエストのたびにその値を付けて送信するという技術である。これにより,サーバは同じブラウザとやり取りしたリクエストやレスポンスの組を識別することができる。このような一連のリクエストやレスポンスの組は,しばしばセッションと呼ばれる。   However, since the HTTP protocol is stateless and the protocol itself does not have a function for associating a plurality of sets of requests and responses, a mechanism called a cookie is provided. Cookie is a technology in which data specified by the server is implicitly held by the browser and sent with each request. As a result, the server can identify a pair of requests and responses exchanged with the same browser. Such a series of requests and responses is often called a session.

一方で,複雑な処理を実現し,ユーザに高度な外観や機能を提供するために,webブラウザには,ブラウザ自身の振る舞いをサーバ側の指定で制御できる機能が設けられている。   On the other hand, in order to realize complicated processing and provide a user with an advanced appearance and functions, the web browser is provided with a function capable of controlling the behavior of the browser itself by designation on the server side.

このような機能の一つであるクライアント側スクリプトは,HTMLページ内またはページから参照されるファイル内に記述できる簡易なプログラム言語であって,webブラウザの振る舞いをある程度制御することができる。クライアント側スクリプトの代表格として,JavaScriptがあり,他にその亜種や類似するものとしてECMAScript,JScript,VBScriptなどがある。ここでは,それらすべてを代表して単にスクリプトと呼称する。   A client-side script, which is one of such functions, is a simple programming language that can be described in an HTML page or a file referenced from the page, and can control the behavior of a web browser to some extent. A typical client-side script is JavaScript, and other variants and similar ones are ECMAScript, JScript, VBSscript, and the like. Here, all of them are simply called scripts.

またスクリプトを使わないHTTPとHTMLだけでも,HTMLページ内への画像やその他のオブジェクトの埋め込み,HTTPによるリダイレクト,HTMLのMETAタグによる自動更新などの機能がある。これらの機能も,webブラウザの振る舞いをある程度制御することができる。   In addition, HTTP and HTML that do not use a script have functions such as embedding images and other objects in an HTML page, redirection by HTTP, and automatic updating by HTML META tags. These functions can also control the behavior of the web browser to some extent.

このようなwebブラウザ制御機能は,webアプリケーション提供者にとって都合が良い。一方で,webアプリケーションのセキュリティ機能をかいくぐってセキュリティ侵害を起こそうとする攻撃者にとっても好都合である。つまり,攻撃者は,自身に都合のよいHTMLページを任意のサイトに用意し,ユーザにそのページを開かせることによって,webブラウザを操作して攻撃を行うことが可能となる。   Such a web browser control function is convenient for the web application provider. On the other hand, it is convenient for an attacker who tries to cause a security breach through the security function of the web application. That is, an attacker can perform an attack by operating a web browser by preparing an HTML page convenient for the user at an arbitrary site and allowing the user to open the page.

また,このようなブラウザ誘導をさらに利用して,リクエストの中にスクリプトデータを混在させておき,それを本来のサーバがレスポンスの一部としてクライアントへ返してしまうことによって,webブラウザ上で本来のサーバのページと同じ領域で攻撃者の作ったスクリプトが動作してしまうクロスサイト・スクリプティング(cross−site scripting,以下XSSと略記する)という攻撃テクニックも知られている。   Furthermore, by further utilizing such browser guidance, script data is mixed in the request, and the original server returns it to the client as part of the response, so that the original on the web browser. There is also known an attack technique called cross-site scripting (hereinafter abbreviated as XSS) in which a script created by an attacker operates in the same area as a server page.

ところで,任意のシステムに対してセキュリティやその他の性質を確認するための手法として,設計や実装のレビュー,動作テスト,シミュレーションなどの手法が一般的に用いられる。また,最近注目されているのがモデル検査と呼ばれる手法である。   By the way, as a method for confirming security and other properties for an arbitrary system, methods such as design and implementation review, operation test, and simulation are generally used. Recently, a technique called model checking has attracted attention.

モデル検査は,ある種のシミュレーションであり,一般には,対象のシステムを調べたい性質だけに着目して抽象化されたモデルで表現し,このモデルが実行される様子をモデル検査器と呼ばれる特殊なソフトウェアで再現する。この際,モデル検査器は,入力値や条件分岐によって生じる複数の実行経路を網羅的に探索し,対象システムが調べたい性質に反する状態に至るかどうかを調べ,もし違反状態になったら,その経路を報告する。もしくは,最後まで違反状態が見つからなければ,対象システムは調べたい性質を満たすと報告する。   Model checking is a kind of simulation, and is generally expressed by an abstract model that focuses only on the property of interest in the target system, and this model is executed in a special model called a model checker. Reproduce with software. At this time, the model checker exhaustively searches for multiple execution paths caused by input values and conditional branches, checks whether the target system reaches a state that violates the desired property, and if a violation occurs, Report the route. Alternatively, if no violation is found until the end, the target system reports that it satisfies the desired property.

モデル検査は,人間が網羅的に調べることが難しいような並行・分散システムの検査に威力を発揮する。しかし,システムが複雑になると探索すべき状態数が指数的に増大する,いわゆる状態爆発の課題を有する。モデル検査では,探索の効率化や無限ループ回避のために,探索済み状態を記録しておき効率良く参照する必要があるため,状態数が増えると探索時間が増加するだけでなく,物理メモリ量が不足して現実的な時間内で探索しきれなくなるという問題がしばしば生じる。   Model checking is very useful for checking parallel / distributed systems that are difficult for humans to examine comprehensively. However, there is a problem of so-called state explosion, where the number of states to be searched increases exponentially as the system becomes complex. In model checking, in order to improve search efficiency and avoid infinite loops, it is necessary to record the searched state and refer to it efficiently. Therefore, not only does the search time increase as the number of states increases, but also the amount of physical memory There is often a problem that there is not enough to search in a realistic time.

モデル検査手法において,具体的なモデルの表現方法はモデル検査器に依存するが,モデルはシステムを表現したものであり,実質的にソフトウェアプログラムの一種といえる。多くの場合,有限状態オートマトンの仕様,すなわち状態遷移図や制御フロー図,または命令型プログラムの一種として表現することができる。また,複数プロセスから構成されるシステムの表現やモデル検査の効率化などを実現するための特徴的な要素(例えば,通信チャネル定義,非決定的分岐など)が含まれる。   In the model checking method, the specific model representation method depends on the model checker, but the model represents the system and can be said to be a kind of software program. In many cases, it can be expressed as a finite state automaton specification, that is, a state transition diagram, a control flow diagram, or a kind of imperative program. In addition, characteristic elements (for example, communication channel definition, non-deterministic branching, etc.) for realizing the expression of a system composed of a plurality of processes and the efficiency of model checking are included.

webセキュリティをモデル検査手法によって検査する場合には,webアプリケーション特有の前提,webブラウザの特殊性などをうまく取り入れたモデルを用意する必要がある。また,セキュリティ検査では,可能であるならばどのようなことでも試行するという「攻撃者」をモデルに含める必要がある。これらを踏まえた上で,効率良く検査できるモデルを用意しなければならない。   When checking the web security by the model checking method, it is necessary to prepare a model that properly incorporates the premise specific to the web application and the special characteristics of the web browser. Also, security checks need to include “attackers” in the model that try anything they can. Based on these, a model that can be efficiently inspected must be prepared.

webアプリケーションを対象としたモデル検査は,研究発表などでいくつか扱われている。しかし,webブラウザなどの特徴や攻撃者の振る舞いをも考慮したものは数少ない。   Several model checks for web applications are dealt with in research presentations. However, there are few that take into account the characteristics of web browsers and the behavior of attackers.

Grossらは,非特許文献1で,ブラウザの汎用的なモデルを提案している。このモデルはHTTPSによる通信路の保護やリダイレクトといった特徴を持ち,攻撃者がネットワーク上でメッセージの盗聴・改ざんを行ったり,ブラウザのキャッシュを覗き見たりする攻撃の可能性も考慮に入れている。   Gross et al. In Non-Patent Document 1 propose a general-purpose browser model. This model has features such as communication path protection and redirection using HTTPS, and also takes into consideration the possibility of attacks in which attackers wiretap and tamper with messages on the network and look into browser caches.

また,Haydarらは,非特許文献2において,モデル検査を目的としたGrossらのものより単純なwebシステムのモデルを提案している。
T. Gross, B. Pfitzmann, and A-R Sadeghi, "Browser Model for Security Analysis of Browser-Based Protocols", Proc. ESORICS 2005, LNCS 3679, pp. 489-508. Springer,2005年 (http://eprint.iacr.org/2005/127) Haydar, A. Petrenko, H. Sahraoui, "Formal Verification of web Applications Modeled by Communicating Automata", Proc. of FORTE 2004, LNCS 3235, pp. 115-132. Springer, 2004年 (http://www.crim.ca/files/documents/services/rd/publications/ASD_HayMals_Forte04.pdf)
In addition, Haydar et al. In Non-Patent Document 2 propose a simple web system model than that of Gross et al. For the purpose of model checking.
T. Gross, B. Pfitzmann, and AR Sadeghi, "Browser Model for Security Analysis of Browser-Based Protocols", Proc. ESORICS 2005, LNCS 3679, pp. 489-508. Springer, 2005 (http: // eprint. iacr.org/2005/127) Haydar, A. Petrenko, H. Sahraoui, "Formal Verification of web Applications Modeled by Communicating Automata", Proc. Of FORTE 2004, LNCS 3235, pp. 115-132. Springer, 2004 (http: //www.crim. ca / files / documents / services / rd / publications / ASD_HayMals_Forte04.pdf)

非特許文献1では,セッションIDの保持によく使われるクッキーは,モデルに含まれていないが,クッキーを含むモデルを作成することはさほど難しくはないと考えられる。しかし,Grossらのモデルは,推論によってセキュリティを分析するためのものであり,効率的なモデル検査に適しているとは限らない。また,非特許文献2のモデルを応用してwebシステムのセキュリティをモデル検査することは可能であろう。   In Non-Patent Document 1, a cookie often used for holding a session ID is not included in the model, but it is considered that it is not so difficult to create a model including a cookie. However, the model of Gross et al. Is for analyzing security by inference, and is not necessarily suitable for efficient model checking. Further, it is possible to apply a model check to the security of the web system by applying the model of Non-Patent Document 2.

しかし,非特許文献1および非特許文献2の技術によるモデルを,webシステムにおけるセキュリティ侵害に特化したモデル検査に適用すれば,モデル検査においては容易に状態爆発を起こし,非常に多くの時間やメモリを要すると予想される。   However, if the models based on the techniques of Non-Patent Document 1 and Non-Patent Document 2 are applied to model checking specialized for security breaches in the web system, the model checking easily causes a state explosion, Expected to require memory.

具体的には,webアプリケーションに対する攻撃,特にセッションやクッキーの弱点をつく攻撃は,部分的な攻撃テクニックの組み合わせで実現されるものが多い。個々の攻撃テクニックだけでも,数回のリクエスト・レスポンスのやりとりが必要となる。そのため,全体の攻撃手順としては,さらに増大してしまう。しかも,モデル検査では,結果的に攻撃が成功しない手順も探索の対象とするうえ,インターリーブと呼ばれる,メッセージのやりとりなどのイベントの発生順序の様々な組み合わせも考慮しなければならない。したがって,攻撃テクニックの手順の多さが状態数の増大に指数的に影響を与えてしまう。   Specifically, attacks against web applications, in particular attacks that have weaknesses in sessions and cookies, are often realized by a combination of partial attack techniques. Even with each attack technique alone, several requests and responses are required. Therefore, the overall attack procedure is further increased. Moreover, in model checking, procedures that do not succeed in the attack must be searched, and various combinations of event occurrence orders such as message exchange called interleaving must be considered. Therefore, the number of attack technique procedures has an exponential effect on the number of states.

具体的に例を挙げると,webアプリケーションの一般的な使用環境において,ユーザが安全なサイトにしかアクセスしないという前提を置くことは難しい。「ブラウザが攻撃者のwebサイトにアクセスしてしまい,そこに指定されたリダイレクトやスクリプトに操られてしまう」という事象は,何時どのようなタイミングでも発生すると考えられる。   To give a specific example, it is difficult to assume that a user accesses only a secure site in a general usage environment of a web application. The phenomenon that “the browser accesses the attacker's website and is manipulated by the redirect or script specified there” is considered to occur at any time.

そのため,モデル上では,ブラウザはいつでも攻撃者のサイトへアクセスし,そのレスポンスによって任意のサイトへアクセスしうるようにすべきである。この攻撃テクニックは,少なくとも最初のリクエストとレスポンス,その後の誘導されたレスポンスの3手順を必要とし,実際には,後の2つのレスポンスの中身は多岐にわたる。そのため,可能な3手順の組み合わせは,さらに多数となることになる。実際に,組み合わせ数は,検査対象のwebアプリケーションに対して有効なメッセージの種類に依存している。   Therefore, in the model, the browser should be able to access the attacker's site at any time and access any site by its response. This attack technique requires at least three steps: the first request and response, followed by the derived response, and in fact the contents of the latter two responses are diverse. Therefore, there are many more possible combinations of the three procedures. Actually, the number of combinations depends on the type of message effective for the web application to be inspected.

別の具体例を挙げると,前記のブラウザ誘導のテクニックを利用して,攻撃者は,任意のサイト向けのクッキーをブラウザに強制・上書きすることができる。この方法によって,対象のwebサイトへリクエスト(HTTPSで保護されていないもの)を送信させ,攻撃者がそれを通信路上で捉えて,Set−Cookieヘッダを含むレスポンスを偽造して返信することができる。この攻撃には,ブラウザ誘導の部分も含めて4手順を必要とする。   As another specific example, an attacker can use the browser guidance technique described above to force or overwrite a browser with a cookie for an arbitrary site. By this method, a request (not protected by HTTPS) can be sent to the target web site, and the attacker can catch it on the communication path and forge a response including the Set-Cookie header. . This attack requires four steps, including browser navigation.

このような状態数増大の問題に対して,従来,大きく分けて二種類の対策がなされてきた。一つは,モデル検査処理の細部に関する技術であり,いかに効率良く状態空間を探索するか,一般にどのような場合に探索を省略できるかといった点を工夫する。この対策は,対象システムの性質によらず利用でき,モデル検査器の機能として実現されることが多い。例えば,BDD(Binary Decision Diagram)によるアルゴリズムの改善,Partial Order Reductionなどが有名である。   Conventionally, two types of countermeasures have been taken for the problem of the increase in the number of states. One is a technique related to the details of the model checking process, which devise how efficiently the state space is searched, and generally when the search can be omitted. This measure can be used regardless of the nature of the target system and is often implemented as a model checker function. For example, the improvement of the algorithm by BDD (Binary Decision Diagram), Partial Order Reduction, etc. are famous.

もう一つは,対象システムをモデル化する際の抽象度のレベルに関する技術であり,対象システムの特徴や検査する性質に依存した効率化を図り,例えば検査結果に影響を与えない範囲で全体の規模を小さくしたり,探索経路を省略したりする。この対策は,対象システム各々に応じて対応しなければならない。   The other is a technology related to the level of abstraction when modeling the target system. The efficiency depends on the characteristics of the target system and the properties to be inspected. Reduce the scale or omit the search route. This countermeasure must be taken according to each target system.

本発明は,後者のアプローチに属するものであり,webアプリケーションのセキュリティ検査に特化したモデルであって,状態数の爆発的な増加を回避できるものを作成し,このモデルを用いて検査することを目的とするものである。   The present invention belongs to the latter approach, and a model specialized in web application security inspection that can avoid an explosive increase in the number of states is created and inspected using this model. It is intended.

本発明は,webアプリケーションのセキュリティ検査に特化したモデルの作成を図るべく,対象のwebアプリケーションを含むwebシステムを表現するモデルで実行される状態数を削減するため,モデルに短縮された攻撃手順を設ける。モデル中の動作手順は,一般的に,命令あるいは状態遷移で表されるので,それらをまとめてステップと呼ぶと仮定すると,本発明は,webアプリケーションに対する特定の攻撃テクニックを,短縮攻撃手順として設定する。このような攻撃テクニックの例として,リクエスト送信強制または誘導,クッキー強制,XSSによるページ内データやクッキーの盗み出しなどが挙げられる。   In order to reduce the number of states executed in a model representing a web system including a target web application in order to create a model specialized for security inspection of the web application, the present invention reduces an attack procedure shortened to the model. Is provided. Since the operation procedures in the model are generally represented by instructions or state transitions, assuming that they are collectively referred to as steps, the present invention sets a specific attack technique against a web application as a shortened attack procedure. To do. Examples of such attack techniques include forcing or guiding requests, forcing cookies, stealing in-page data and cookies by XSS, and the like.

短縮攻撃手順は,ある攻撃テクニックの手順を1ステップずつ追って実現するのではなく,攻撃の結果として起きる事象を一つあるいは少数のステップで実現したものである。このとき,短縮攻撃手順は,本来の攻撃手順を用いた検査結果と異ならないように設定される。   A shortened attack procedure is not a step-by-step implementation of an attack technique step by step, but an event that occurs as a result of an attack in one or a few steps. At this time, the shortened attack procedure is set so as not to differ from the inspection result using the original attack procedure.

具体的には,ユーザのブラウザが任意のタイミングで攻撃者のサイトへアクセスし,その後攻撃者によるレスポンスで操られてリクエストを送る,というモデル上の動作を省略し,その結果として発生することだけをモデルに組み込む。このため,モデル上で,ブラウザがもつHTTPまたはHTTPSによる通信機能の一部である,攻撃者サイトへアクセスする機能を削除する。その代わりに,攻撃者がリクエスト送信強制を依頼しブラウザがそれを実行する機能,さらに攻撃者がクッキーの強制を依頼しブラウザがそれを受け入れる機能などを追加する。これらの機能のモデル上での具体的な表現方法は,モデルの表現形式(言語)などに依存する。   Specifically, the behavior of the model in which the user's browser accesses the attacker's site at an arbitrary timing and is then manipulated by the attacker's response to send a request is omitted, and only occurs as a result. Is incorporated into the model. For this reason, on the model, the function of accessing the attacker site, which is a part of the communication function of the browser using HTTP or HTTPS, is deleted. Instead, a function is added in which an attacker requests to send a request and the browser executes it, and a function that an attacker requests to force a cookie and the browser accepts it. The specific expression method of these functions on the model depends on the expression form (language) of the model.

本発明は,webアプリケーションのセキュリティ検査用モデルを生成する装置であって,webアプリケーションの画面遷移仕様情報、および守らなければならないレスポンスおよび攻撃者の事前知識を含むセキュリティの重要データ配置情報を取得する入力設定情報受付部と,前記画面遷移仕様情報および前記重要データ配置情報をもとに,攻撃の結果に対応する攻撃用メッセージ識別子を作成する識別子作成部と,前記webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部と,前記短縮攻撃手順のチャネル定義を設定するチャネル定義作成部と,前記攻撃用メッセージ識別子,前記短縮攻撃手順のチャネル定義を含むセキュリティ検査用モデルを出力するモデル出力部とを備えるThe present invention is a device for generating a security check model for a web application, and obtains important data arrangement information for security including screen transition specification information of the web application and responses to be protected and prior knowledge of an attacker. An input setting information receiving unit, an identifier creating unit that creates an attack message identifier corresponding to an attack result based on the screen transition specification information and the important data arrangement information, a browser, a server of the web application, and Among the procedures composed of multiple requests and responses executed between attackers, the attack procedure that causes forcible or directed request transmission by the attacker page created by the attacker is described below. Set to occur with fewer steps A security attack model including a shortened attack procedure creating unit for creating a defined shortened attack procedure, a channel definition creating unit for setting a channel definition for the shortened attack procedure, a message identifier for attack, and a channel definition for the shortened attack procedure A model output unit for outputting .

本発明は,コンピュータに,webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成処理を実行させるためのプログラムである。The present invention provides a computer to send a request by an attacker page created by the attacker in a procedure composed of a plurality of requests and responses executed between a browser of a web application, a server, and an attacker. This is a program for executing an abbreviated attack procedure creating process for creating an abbreviated attack procedure that is defined so as to produce the effect of the attack with a smaller number of procedures.

また,本発明において,前記短縮攻撃手順の対象となる攻撃手順は,一つの攻撃手順の後に,さらにレスポンスの偽造あるいは改ざんを生じさせるクッキー強制に関する攻撃手順であってもよい。もしくは,前記短縮攻撃手順の対象となる攻撃手順は,前記攻撃者によって作成されたスクリプトを,本来のサーバのwebページに混入させることによって,所定の情報の盗み出しを生じさせる攻撃手順であってもよい。 In the present invention, the attack procedure that is the target of the shortened attack procedure may be an attack procedure related to cookie forcing that causes forgery or falsification of a response after one attack procedure. Alternatively, even if the attack procedure targeted by the shortened attack procedure is an attack procedure that causes the steal of predetermined information by mixing the script created by the attacker into the web page of the original server. Good.

さらに,本発明は,前記コンピュータに,ユーザによって入力される,検査対象となるwebアプリケーションの仕様情報,セキュリティ仕様情報,ならびに前記攻撃者が実行する攻撃の定義を含むwebアプリケーションがおかれる環境情報を取得する入力設定情報受付処理と,前記短縮攻撃手順作成処理において,前記仕様情報,前記セキュリティ仕様情報,および前記環境情報をもとに前記短縮攻撃手順を変更する処理とを,実行させるためのプログラムであってもよい。   Furthermore, the present invention provides environment information in which the web application including the specification information of the web application to be inspected, the security specification information, and the definition of the attack executed by the attacker is input to the computer. A program for executing the input setting information receiving process to be acquired and the process for changing the shortened attack procedure based on the specification information, the security specification information, and the environment information in the shortened attack procedure creating process It may be.

本発明によれば,攻撃の結果として起きる事象を一つあるいは少数のステップで実現した短縮攻撃手順を実現するモデル(セキュリティ検査用モデル)を生成することができるため,このモデルを使用するモデル検査装置による探索処理では短い手順でセキュリティが侵害された状態に到達することができ,セキュリティ上の問題を早期に発見できる可能性が高まる。   According to the present invention, it is possible to generate a model (security inspection model) that realizes a shortened attack procedure that realizes an event that occurs as a result of an attack in one or a small number of steps. In the search process by the device, it is possible to reach a state where the security has been breached in a short procedure, and the possibility that the security problem can be detected early is increased.

また,作成するモデルから,攻撃者のサイトへブラウザがアクセスし,そのレスポンスで誘導される動作や,XSSに関するリクエスト・レスポンスのやりとりの動作を表すステップを除去できるため,さらにモデル全体としての状態数を減らすことができ,問題の早期発見にさらに有効である。   In addition, since the browser can access the attacker's site from the model to be created and the steps that are guided by the response and the request / response exchange operations related to XSS can be removed, the number of states of the model as a whole is further reduced. It is more effective for early detection of problems.

なお,本発明にかかるプログラムは,コンピュータが読み取り可能な可搬媒体メモリ,半導体メモリ,ハードディスクなどの適当な記録媒体に格納することができ,これらの記録媒体に記録して提供され,または,通信インタフェースを介して種々の通信網を利用した送受信により提供される。   The program according to the present invention can be stored in an appropriate recording medium such as a portable medium memory, a semiconductor memory, or a hard disk that can be read by a computer. It is provided by transmission and reception using various communication networks via the interface.

本発明によれば,webアプリケーションのセキュリティを検査する際に,短縮攻撃手順を実現するモデルを作成することができる。このモデルでは,セキュリティ上の欠陥の有無という本来調べたい検査結果には影響を与えることなく,従来技術であれば存在していた多くの遷移が省略され,その代わりに短縮攻撃手順を表現した遷移が追加される。   According to the present invention, it is possible to create a model that realizes a shortened attack procedure when checking the security of a web application. In this model, many of the transitions that existed in the prior art are omitted without affecting the inspection results that we originally want to investigate, such as the presence or absence of security flaws. Is added.

本発明によって省略された遷移には,例えば,ブラウザが攻撃者のサイトへリクエストを送る遷移,このリクエストに対する攻撃者による受信・レスポンス送信,さらに,この送信を受け取ったブラウザが誘導されてリクエストを送る遷移,さらに,本来のサーバがXSSによりスクリプトを含むレスポンスを返す遷移,このレスポンスを受け取ったブラウザの振る舞いの遷移などが含まれ,その数は非常に多い。   Transitions omitted by the present invention include, for example, a transition in which a browser sends a request to an attacker's site, reception / response transmission by the attacker in response to this request, and a browser that receives this transmission is guided to send a request. The transition includes a transition in which the original server returns a response including a script by XSS, a transition in the behavior of the browser that has received the response, and the like, and the number thereof is very large.

したがって,本発明により作成されたモデルに対してモデル検査を行うと,攻撃が成功するまでの手順が短縮され,また,各状態から生じる遷移の種類も少なくなり,モデル全体の状態数が削減される。よって,欠陥がより早く発見できる可能性が高まり,全状態を探索し終えるまでの処理時間が短縮できる。   Therefore, when model checking is performed on a model created according to the present invention, the procedure until a successful attack is shortened, the types of transitions generated from each state are reduced, and the number of states of the entire model is reduced. The Therefore, the possibility that a defect can be found earlier increases, and the processing time until all the states are searched can be shortened.

また,モデル検査においては,状態数が増大すると物理メモリ量の制限に抵触することが多い。そのため,状態数が増大してしまうと探索終了前に失敗することがあるが,これを回避することもできる。   In model checking, when the number of states increases, the physical memory amount is often violated. Therefore, if the number of states increases, the search may fail before the end of the search, but this can be avoided.

このように,モデルにおける全体の状態数は,手順数(深さ)や手順の種類数(各状態で選べる遷移の幅)に対して概ね指数関数的な正の相関があるので,深さや幅を削減することの効果は非常に大きい。   In this way, the total number of states in the model has a generally exponential positive correlation with the number of steps (depth) and the number of types of steps (the width of transitions that can be selected in each state). The effect of reducing is very large.

図1に,本発明の最良の実施の形態における構成例を示す。モデル生成装置1は,一般的には計算機システム上で動作するソフトウェアとして実施される。   FIG. 1 shows a configuration example in the best mode of the present invention. The model generation device 1 is generally implemented as software that operates on a computer system.

モデル生成装置1は,モデル検査実施者(以下,検査者と呼ぶ)の指示に従って,対象webアプリケーションの仕様に基づくモデル(モデルデータ)2を生成し出力する。さらに,モデル生成装置1は,検査者の指示により,対象webアプリケーションのおかれる環境や前提,調べたい性質に合わせて必要な短縮攻撃手順のみを含むモデル2を生成することもできる。   The model generation device 1 generates and outputs a model (model data) 2 based on the specification of the target web application in accordance with an instruction from a model inspector (hereinafter referred to as an inspector). Furthermore, the model generation apparatus 1 can also generate a model 2 including only a necessary short attack procedure according to the environment and premise of the target web application and the property to be examined according to the inspector's instruction.

モデル生成装置1は,情報入力受付部11,モデル構築部13,およびモデル出力部15を備える。   The model generation device 1 includes an information input reception unit 11, a model construction unit 13, and a model output unit 15.

情報入力受付部11は,検査者が入力する指示情報10を受け付ける処理手段である。   The information input receiving unit 11 is processing means for receiving instruction information 10 input by the inspector.

指示情報10には,webサーバがリクエストを受け付けるサービス識別子(URLを抽象化した情報)の集合,webサーバがブラウザに返却するレスポンス識別子の集合,サービス識別子ごとのwebサーバの振る舞いの記述,レスポンス識別子ごとのwebブラウザの振る舞いの記述などのwebアプリケーションの仕様情報,守らなければならないレスポンス識別子,攻撃者の事前知識などのセキュリティ仕様情報,対象のwebアプリケーションがおかれる環境情報などが含まれる。   The instruction information 10 includes a set of service identifiers (information abstracted URLs) that the web server accepts requests, a set of response identifiers that the web server returns to the browser, a description of the behavior of the web server for each service identifier, and a response identifier Web application specification information such as a description of the behavior of each web browser, response identifiers to be protected, security specification information such as prior knowledge of attackers, environment information where the target web application is located, and the like.

モデル構築部13は,指示情報10をもとにモデル2を作成する処理手段である。モデル構築部13の詳細な処理については後述する。   The model construction unit 13 is a processing unit that creates the model 2 based on the instruction information 10. Detailed processing of the model building unit 13 will be described later.

モデル出力部15は,モデル構築部13が作成したモデル2となるモデルデータを出力する処理手段である。   The model output unit 15 is a processing unit that outputs model data to be the model 2 created by the model construction unit 13.

モデル2は,ネットワークを介して相互に通信する,対象のwebアプリケーションを実現するwebブラウザ,本来のwebサーバ,および攻撃者で構成されるwebシステムの振る舞いを表現し,ある攻撃テクニックの手順をそのまま実現するのではなく,攻撃の結果として起きる事象を一つまたは少数ステップで実現した短縮攻撃手順を実現できる機能(短縮攻撃手順実現機能)を含む。   Model 2 expresses the behavior of a web system that consists of a web browser that implements a target web application that communicates with each other over a network, an original web server, and an attacker, and the procedure of a certain attack technique is used as it is. It includes a function (shortened attack procedure realization function) that can realize a shortened attack procedure that realizes an event that occurs as a result of an attack in one or a few steps.

なお,モデル生成装置1から出力されたモデル2は,モデル検査装置3に入力されて実行される。モデル検査装置3は,モデル2の振る舞いについて所定の検査を行い,その検査結果4を出力する。   The model 2 output from the model generation device 1 is input to the model checking device 3 and executed. The model checking device 3 performs a predetermined check on the behavior of the model 2 and outputs the check result 4.

本実施の形態において,モデル生成装置1は,図2に示すように,汎用的な計算機とオペレーティングシステム(OS)上で動作するアプリケーションプログラムとして実施する。   In the present embodiment, the model generation apparatus 1 is implemented as a general-purpose computer and an application program that operates on an operating system (OS), as shown in FIG.

計算機101は演算装置と揮発性の物理メモリ102,不揮発性のディスク103など記憶装置,キーボード,マウス,ビデオディスプレイなどの入出力装置104,ネットワークNなどとのネットワーク通信装置105などを備えるものとする。   The computer 101 includes an arithmetic device, a volatile physical memory 102, a storage device such as a nonvolatile disk 103, an input / output device 104 such as a keyboard, a mouse, and a video display, a network communication device 105 with a network N, and the like. .

計算機101上ではオペレーティングシステム(OS)と各種アプリケーションプログラムが動作し,OSは前記の各種装置の機能を,プロセスの実行制御(スケジューリング),ヒープなどの短期記憶,ファイルやレジストリなどの長期記憶,テキストベースやグラフィックベースのユーザインタフェース(UI)などのシステムコールや通信APIとしてアプリケーションプログラムに提供する。   An operating system (OS) and various application programs operate on the computer 101. The OS performs the functions of the various devices described above, such as process execution control (scheduling), short-term storage such as a heap, long-term storage such as a file or registry, text It is provided to an application program as a system call or communication API such as a base or graphic-based user interface (UI).

ただし,本発明の実施形態は,上記の構成に限定されるものではなく,専用のハードウェアなどによって実施することもできる。   However, the embodiment of the present invention is not limited to the above-described configuration, and can be implemented by dedicated hardware or the like.

図3は,モデル構築部13の処理の流れを示す図である。   FIG. 3 is a diagram showing a flow of processing of the model construction unit 13.

ステップS1: モデル構築部13は,指示情報10の仕様情報から,自明な識別子を取り出し,識別子リストを作成する。このとき,セキュリティ仕様情報に基づき各識別子に,初期状態において,ブラウザ,サーバ,攻撃者のだれがその識別子を知っているかを表す符号を付ける。   Step S1: The model construction unit 13 extracts a trivial identifier from the specification information of the instruction information 10, and creates an identifier list. At this time, based on the security specification information, each identifier is given a code indicating who the browser, server, and attacker know the identifier in the initial state.

ステップS2: 次に,事前に決められた個数分だけセッション識別子を追加する。   Step S2: Next, session identifiers are added by a predetermined number.

ステップS3: さらに,環境情報で許可された攻撃テクニックに応じて必要な攻撃者用メッセージ識別子を追加する。   Step S3: Further, a necessary message identifier for an attacker is added according to the attack technique permitted by the environment information.

図4に示すような識別子リストの場合に,攻撃者用メッセージ識別子は,下8つである。クッキー設定を強制するための「force_cookie」と攻撃者にとっての未知情報のそれぞれについて用意された「leak_」で始まる7つの漏洩用メッセージ識別子からなる。   In the case of the identifier list as shown in FIG. 4, there are the following eight message identifiers for attackers. It consists of seven leakage message identifiers starting with “leak_” prepared for “force_cookie” for forcing cookie setting and unknown information for the attacker.

本発明または従来手法のいずれの場合でも,漏洩用メッセージ識別子は同じように必要である。しかし,従来手法の場合は,「force_cookie」を用いない代わりに,さらに多くのメッセージ識別子が必要であった。すなわち,攻撃者が用意したページへのリクエストを表す少なくとも一つのメッセージ識別子,本来のサーバの各ページへの誘導や「Set−Cookie」のためのレスポンスを表す複数のメッセージ識別子,さらに,XSSを考慮する場合はスクリプトデータを含むリクエストとそれに対するレスポンスをそれぞれ表す複数のメッセージ識別子が必要であった。本発明では,「force_cookie」を用いるが,従来手法において必要であった,このような多くのメッセージ識別子が不要である。   In either case of the present invention or the conventional method, the message identifier for leakage is required as well. However, in the case of the conventional method, more message identifiers are required instead of using “force_cookie”. That is, at least one message identifier representing a request to a page prepared by the attacker, a plurality of message identifiers representing responses to each page of the original server and a response for “Set-Cookie”, and XSS In order to do so, a plurality of message identifiers each representing a request including script data and a response to the request were required. In the present invention, “force_cookie” is used, but many such message identifiers required in the conventional method are unnecessary.

ステップS4: 次に,異なる種類のプロセス間で共有されるチャネル定義を,共有チャネルおよび短縮攻撃手順用チャネルのそれぞれについて,前記の識別子リストで必要なメッセージ識別子が送受信できるように定義する。ここで,必要ならばHTTPSによる保護のフラグも送受信できるようにする。   Step S4: Next, a channel definition shared between different types of processes is defined so that a necessary message identifier can be transmitted and received in the identifier list for each of the shared channel and the short attack procedure channel. Here, if necessary, an HTTPS protection flag can be transmitted and received.

短縮攻撃手順用チャネル定義は,短縮手順のない従来のモデルには不必要であり,本発明の目的達成のために追加される。   The short attack procedure channel definition is unnecessary for the conventional model without the shortening procedure, and is added to achieve the object of the present invention.

ステップS10: サーバの共有変数リストを作成する。図5に示すように,サーバ共有変数リストには,セッションデータを格納する変数とセッション管理用の変数が必要である。   Step S10: A server shared variable list is created. As shown in FIG. 5, the server shared variable list requires a variable for storing session data and a variable for session management.

ステップS11: 仕様情報のサーバの動作の記述から,プロセスSの動作を規定する情報(例えば,状態遷移グラフ)を作成する。webサーバの動作は,共有チャネルを介したリクエストを受信し,そこで指定されたサービス識別子およびその他の条件に応じて,仕様情報で与えられたとおりのセッション管理とレスポンス返信を行うように決定される。従来技術では,特にXSSを考慮する場合にはスクリプトデータを含むリクエストの受信,および,そのリクエストに対するレスポンスの送信を意味する動作を追加する必要があったが,本発明ではそれらは不要である。   Step S11: Information (for example, a state transition graph) defining the operation of the process S is created from the description of the server operation in the specification information. Web server operation is determined to receive a request via a shared channel and perform session management and response return as given in the specification information according to the service identifier and other conditions specified there. . In the prior art, particularly when XSS is considered, it is necessary to add an operation that means reception of a request including script data and transmission of a response to the request, but these are unnecessary in the present invention.

ステップS12: 状態遷移グラフと変数リストから,プロセスSの定義を作成する。   Step S12: A definition of the process S is created from the state transition graph and the variable list.

ステップS20: ブラウザの共有変数リストを作成する。図6に示すように,ブラウザ共有変数リストには,現在のクッキーの値を格納する変数を用意する。   Step S20: Create a shared variable list for the browser. As shown in FIG. 6, a variable for storing the current cookie value is prepared in the browser shared variable list.

ステップS21,S22: プロセスB1,B2それぞれについて,動作を規定する状態遷移グラフを作成する。   Steps S21 and S22: For each of the processes B1 and B2, a state transition graph that defines the operation is created.

ブラウザの動作は,サーバへ正規のリクエストを送信してレスポンスを受け取る,攻撃者に誘導されてリクエストを送信してレスポンスを受け取る,短縮攻撃者用チャネルへ攻撃者の知らない情報を漏洩させる,のいずれか一つを行うもの,および短縮攻撃者用チャネルを通じて攻撃者からクッキーを受け取るものからなる。   The browser's behavior is to send a legitimate request to the server and receive a response, to be sent by the attacker to send a request and receive a response, to leak information unknown to the attacker to the shortened attacker channel, One that does one, and one that receives a cookie from the attacker through a shortened attacker channel.

従来技術では,上記に加えて,攻撃者のサイトをリクエストする動作,攻撃者のサイトからのレスポンスを受け取る動作,そのレスポンスに含まれるリンクやスクリプトなどによって本来のサイトへ誘導される動作,およびXSSがある場合に本来のサイトから攻撃者スクリプトを含むレスポンスを受け取る動作などの多くの動作を追加する必要があったが,本発明ではそれらは不要である。   In the prior art, in addition to the above, an operation for requesting an attacker's site, an operation for receiving a response from the attacker's site, an operation guided to the original site by a link or script included in the response, and XSS In the present invention, it is necessary to add many operations such as an operation of receiving a response including an attacker script from the original site.

ステップS22: 状態遷移グラフと変数リストから,プロセスB1,B2の定義を作成する。   Step S22: Create definitions of processes B1 and B2 from the state transition graph and the variable list.

ステップS30: 攻撃者知識フラグ変数リストを作成する。図7に示すように,攻撃者知識フラグ変数リストでは,初期状態で攻撃者が知らない識別子に関する知識のフラグを変数として持つ。これにはセキュリティ仕様情報で秘密または未知とされた識別子,およびセッション識別子が該当する。   Step S30: An attacker knowledge flag variable list is created. As shown in FIG. 7, the attacker knowledge flag variable list has, as variables, knowledge flags relating to identifiers that the attacker does not know in the initial state. This includes identifiers that are secret or unknown in the security specification information, and session identifiers.

ステップS31: プロセスIの動作を規定する状態遷移グラフを作成する。攻撃者の動作は,基本的には知識が許す範囲で有意なリクエストおよびレスポンスを自由に作って送信するか,あるいは任意のリクエストあるいはレスポンスを受け取ってそこに含まれる新たな情報を知識に加えるというものである。さらに,短縮攻撃手順を可能にするため短縮攻撃手順用チャネルを介して,知っているセッション識別子をブラウザへ強制したり,ブラウザが情報漏洩するメッセージを受け取って知識に加えたりもする。   Step S31: A state transition graph that defines the operation of the process I is created. The attacker's action is basically to create and send significant requests and responses freely as permitted by knowledge, or to receive arbitrary requests or responses and add new information contained in them to knowledge. Is. Furthermore, in order to enable a shortened attack procedure, a known session identifier is forced to the browser through the shortened attack procedure channel, or a message in which the browser leaks information is received and added to the knowledge.

従来技術では,攻撃者が独自のサーバとして振る舞いwebブラウザからリクエストを受ける動作,それに対してリンクやスクリプトを含む誘導リクエストやさらにXSSを起こすためのスクリプトデータを含む誘導リクエストを送る動作を追加する必要があったが,本発明ではそれらは不要である。   In the conventional technology, it is necessary to add an operation in which an attacker behaves as an original server and receives a request from a web browser, and a guidance request including a link request and a script data for causing XSS. However, they are not necessary in the present invention.

ステップS32: 状態遷移グラフと変数リストから,プロセスIの定義を作成する。   Step S32: A process I definition is created from the state transition graph and the variable list.

ステップS40: ステップS1〜S3で生成した識別子リスト,ステップS4で生成したチャネル定義,ステップS10〜S32で生成した各プロセス定義を統合し,モデル2(モデルデータ)として出力する。   Step S40: The identifier list generated in steps S1 to S3, the channel definition generated in step S4, and the process definitions generated in steps S10 to S32 are integrated and output as model 2 (model data).

なお,図3の処理フローにおいては,サーバ,ブラウザ,攻撃者の各プロセス定義を生成する処理(ステップS10〜S12,S20〜S23,S30〜S32)は,特定の順序で説明しているが,必ずしもその順に処理されなくてもよい。   In the processing flow of FIG. 3, the processes (steps S10 to S12, S20 to S23, and S30 to S32) for generating the process definitions of the server, browser, and attacker are described in a specific order. The processing is not necessarily performed in that order.

以下に,本発明の処理の具体例を説明する。   Below, the specific example of the process of this invention is demonstrated.

ここでは,入力例として,検査者は,図8に示すような画面遷移仕様を持つwebアプリケーションを検査対象とする。図8において,四角形はブラウザに返却されるページの種類を,楕円形はブラウザからサーバへ送られるリクエストの種類を表す。矢印はリクエスト送信やページ返却の起きるべき順序を表しており,太い矢印は設計者が期待するもっとも正常な処理の過程を表す。図8に示されていないが,セッションは,クッキーにセッションIDを格納することで実現され,セッション管理やその他のサーバでの振る舞いも決まっているものとする。   Here, as an input example, the inspector sets a web application having a screen transition specification as shown in FIG. In FIG. 8, a rectangle represents the type of page returned to the browser, and an ellipse represents the type of request sent from the browser to the server. Arrows indicate the order in which requests should be sent and page returns should occur, and thick arrows indicate the most normal process expected by the designer. Although not shown in FIG. 8, it is assumed that a session is realized by storing a session ID in a cookie, and session management and other server behavior are also determined.

なお,楕円へ向かう矢印は設計者が期待する動作を意味し,実際にはクライアント(通常ユーザのブラウザや攻撃者)は好きなときに好きな順序でリクエストを送ることが可能であるが,そのような動作は図示されていない。   Note that the arrow to the ellipse means the behavior that the designer expects. In fact, the client (usually the user's browser or attacker) can send requests in any order when they want. Such an operation is not shown.

図8に示すwebアプリケーションに関してモデル生成装置1に入力される仕様情報は,例えば,図9〜図11に示す情報のようになる。   The specification information input to the model generation apparatus 1 regarding the web application shown in FIG. 8 is, for example, the information shown in FIGS.

このような仕様情報は,文書に書かれ,または,設計者の記憶にある前述のようなwebアプリケーションの仕様をモデル生成装置1への入力のために書き下したものであってもよいし,図8の画面遷移仕様などをグラフィカル・ユーザ・インタフェース(GUI)を介して入力して,自動的あるいは半自動的に生成してもよいが,既存の技術によって可能であるので詳細は省略する。   Such specification information may be written in a document, or may be the specification of the web application as described above stored in the designer's memory for writing to the model generation device 1. 8 screen transition specifications may be input via a graphical user interface (GUI) and automatically or semi-automatically generated. However, details can be omitted because they are possible with existing technology.

図9のwebアプリケーションの仕様情報は,サービス識別子,レスポンス識別子,ユーザ識別子,ユーザ識別子とパスワードの組などの情報である。   The specification information of the web application in FIG. 9 is information such as a service identifier, a response identifier, a user identifier, and a combination of a user identifier and a password.

図10のwebアプリケーションの仕様情報は,サービス識別子ごとのサーバの振る舞いとして,条件,レスポンス識別子,動作の内容などが記述される。   The specification information of the web application in FIG. 10 describes conditions, response identifiers, operation details, and the like as server behavior for each service identifier.

図11のセキュリティの仕様情報は,秘密情報,公知情報,ユーザおよびサーバが知りえるユーザ事前知識,攻撃者およびサーバが知り得る攻撃者事前知識などの情報である。   The security specification information in FIG. 11 is information such as secret information, public information, user prior knowledge that the user and the server can know, and attacker prior knowledge that the attacker and the server can know.

図9〜図11に示す仕様情報は,画面遷移仕様やその他の情報・知識から得られたものである。   The specification information shown in FIGS. 9 to 11 is obtained from screen transition specifications and other information / knowledge.

図12は,モデル生成装置1に入力される環境情報の例である。セッション最大数は,モデル中に用意されるセッション識別子およびそれに対応するセッションデータや知識のための変数であり,モデル中でのセッション処理の分岐条件などを決めるために使われる。プロセスの多重度は,各種のプロセスをいくつモデルに生成するかを決める。リクエスト強制・誘導可能フラグおよびサーバへのスクリプト混入可能フラグは,攻撃者に許される攻撃テクニックの種類を規定する。ここで許可されない攻撃テクニックに対応する手順はモデルから削除される。   FIG. 12 is an example of environment information input to the model generation device 1. The maximum number of sessions is a session identifier prepared in the model and session data and knowledge variables corresponding to the session identifier, and is used to determine a branch condition for session processing in the model. The multiplicity of processes determines how many different processes are generated in the model. The request compulsory / directable flag and the script scriptable flag to the server specify the types of attack techniques allowed for the attacker. Procedures corresponding to attack techniques not allowed here are removed from the model.

前記の仕様情報からモデル構築部13が作成する処理途中の中間データの例は,図4〜図7に示すとおりである。   Examples of intermediate data in the process of being created by the model construction unit 13 from the specification information are as shown in FIGS.

図4の識別子リストは,仕様情報から直接生成できる識別子,必要な数だけ展開したセッション識別子,短縮攻撃手順に使われる攻撃者用メッセージ識別子からなる。識別子リストにおいて,括弧で示された符号はその識別子を初期状態で知っているプロセスが限られることを意味する。(S)は,サーバのみが,(B,S)は,ブラウザとサーバのみがその識別子を知っていることを意味する。符号のない識別子は公開情報である。   The identifier list in FIG. 4 includes identifiers that can be directly generated from the specification information, session identifiers that have been expanded as many times as necessary, and message identifiers for attackers that are used in shortened attack procedures. In the identifier list, the reference sign in parentheses means that the processes that know the identifier in the initial state are limited. (S) means only the server, and (B, S) means that only the browser and the server know the identifier. An identifier without a sign is public information.

なお,すでに述べたように,従来技術ではクッキー強制用メッセージ識別子force_cookieの代わりに攻撃者サイトとのリクエスト・レスポンスや,それによって誘導されて引き起こされるXSSのためのリクエスト・レスポンスを表す多くのメッセージ識別子を追加する必要があった。しかし,本発明の手法ではそれらは不要である。   As described above, in the prior art, in place of the cookie forcing message identifier force_cookie, a number of message identifiers representing a request response with an attacker site and a request response for XSS induced by the attacker site are induced. Needed to be added. However, they are not necessary in the method of the present invention.

図5のサーバ共有変数リストは,各セッション識別子に対応して保存されるデータのためのセッションデータ変数,および次に発行すべきセッション識別子の番号を記録するセッション管理用変数からなる。図6のブラウザ共有変数リストは,現在のクッキーの値を記録する変数を持つ。図7の攻撃者知識フラグ変数リストは,識別子リストで攻撃者が知らないと印付けされた識別子に対応して用意される。   The server shared variable list in FIG. 5 includes a session data variable for data stored corresponding to each session identifier and a session management variable for recording the number of the session identifier to be issued next. The browser shared variable list in FIG. 6 has a variable for recording the current cookie value. The attacker knowledge flag variable list of FIG. 7 is prepared corresponding to the identifiers marked as unknown by the attacker in the identifier list.

モデル構築部13によって生成されるモデル2は,チャネルを通じて通信しあうプロセス群という構造を持ち,各プロセスの振る舞いは,状態遷移グラフで表現するものとする。ただし,全状態や遷移を漏れなく記載するには非常に多くの字数・紙面を必要として現実的でないことから,振る舞いの本質が理解できるように,状態や遷移をある程度まとめたものとする。この場合,プロセス内に適当な変数群が存在し,状態遷移グラフの表現上一つの状態であっても変数群の値に応じて実際の状態は異なる。   The model 2 generated by the model construction unit 13 has a structure called a process group communicating with each other through a channel, and the behavior of each process is expressed by a state transition graph. However, to describe all states and transitions without omissions, it is not practical because it requires a very large number of characters and space, so the states and transitions are summarized to some extent so that the essence of the behavior can be understood. In this case, an appropriate variable group exists in the process, and the actual state differs depending on the value of the variable group even if the state transition graph represents one state.

図13に,図9〜図11で示した仕様情報から生成されるモデル2のプロセス構造の例を示す。図13で四角形はプロセス,楕円形はチャネルを表す。ブラウザとサーバのプロセスは複数あるが,それらは同じ種類や異なる種類のプロセスが複数並行して動作することを意味する。ただし,一部の変数はプロセス間で共有され,ブラウザならクッキーの格納,サーバならセッションIDの使用状態やセッションデータの格納などに使われる。   FIG. 13 shows an example of the model 2 process structure generated from the specification information shown in FIGS. In FIG. 13, a rectangle represents a process and an ellipse represents a channel. There are multiple browser and server processes, which means that multiple processes of the same or different types operate in parallel. However, some variables are shared between processes, and are used for storing cookies for browsers, session ID usage status and session data for servers.

また,図13の例では,攻撃者プロセスは一つだが,ブラウザやサーバと同様に複数設けてもよく,その場合は,攻撃者の知識などを収める共有変数が設けられることになる。これらプロセスの並行数はモデル検査の結果や状態数に影響を与えるので,モデル生成装置1が独自に決定するだけでなく,検査者の指定に応じて変えてもよいが,その方法は自明であるのでここでは省略する。   In the example of FIG. 13, there is one attacker process, but a plurality of attacker processes may be provided as in the case of the browser and the server. In this case, a shared variable for storing the attacker's knowledge is provided. Since the parallel number of these processes affects the result of model checking and the number of states, the model generation apparatus 1 may not only decide on its own, but may change according to the designation of the inspector, but the method is self-evident. Because there are, it is omitted here.

また,ブラウザと攻撃者の間で短縮攻撃手順を実現するために専用のチャネルshが使用されるが,チャネルshの代わりに,ブラウザと攻撃者が共有できる,例えば大域変数などを用いて実現してもよい。   In addition, a dedicated channel sh is used to realize a shortened attack procedure between the browser and the attacker. However, instead of the channel sh, the browser and the attacker can share, for example, using a global variable. May be.

プロセスとチャネルをつなぐ線は,そのチャネルを用いて通信できることを意味し,本例では,それらはすべて送受信両方ができるものとする。ただし,このとき各プロセスは基本的な制約に従って送受信を行う。制約とは,攻撃者以外の通常のプロセスは自分宛で,HTTPSで保護されている場合には正当なメッセージのみを受信でき,攻撃者プロセスはHTTPSで保護されていないすべてのメッセージを受信できる,といったものである。   A line connecting a process and a channel means that communication can be performed using that channel, and in this example, all of them can be transmitted and received. However, at this time, each process transmits and receives according to basic restrictions. The restriction is that a normal process other than the attacker is addressed to him and can receive only legitimate messages when protected by HTTPS, and the attacker process can receive all messages not protected by HTTPS. It is something like that.

図14〜図17に,上記のモデル2内の各プロセスの状態遷移グラフの例を示す。これらの状態遷移グラフにおいて,黒い丸は開始状態,白い丸(角丸の四角)は状態を表し,これらをつなぐ矢印は,状態間の遷移を表す。ただし,白い菱形は複数の遷移をまとめて書くための分岐点・合流点を意味し,それ自体はプロセスの状態ではない。   14 to 17 show examples of state transition graphs of processes in the model 2 described above. In these state transition graphs, a black circle represents a start state, a white circle (rounded square) represents a state, and an arrow connecting them represents a transition between states. However, the white rhombus means a branching / merging point for writing a plurality of transitions together, and is not a process state itself.

遷移に付された矩形中の文字列は,「[条件]イベント//動作」という形式を持つが,「[条件]」,「イベント」,「//動作」の各部分は,該当するものがなければ省略される。イベントは,その遷移を起こすイベントの名前や種類,条件は,その遷移をするための(イベント以外の)条件,動作は,遷移時にプロセスが行う動作を意味し,条件が「[else]」なら同じ分岐から発する他の条件に合致しなかった場合のみその遷移を行い得ることを意味する。遷移は,非決定的でもよく,イベントや条件を満たす遷移が複数ある分岐の場合いずれか一つが任意に選ばれる。   The character string in the rectangle attached to the transition has the format "[condition] event // action", but the parts of "[condition]", "event", and "// action" are applicable. If there is no, it is omitted. The event is the name, type, and condition of the event that causes the transition, the condition (other than the event) for performing the transition, and the action means the action performed by the process at the time of transition. If the condition is "[else]" This means that the transition can be made only when other conditions originating from the same branch are not met. The transition may be non-deterministic, and any one is arbitrarily selected in the case of a branch having a plurality of transitions that satisfy an event or a condition.

イベントにおいて,「Ch ! msg」という表記は,チャネルchにメッセージmsgを送信することを,「ch ? msg」は,チャネルchからメッセージmsgを受信することを意味する。実際には,クッキー(Set−CookieヘッダおよびCookieヘッダに対応)も送受信できるが,説明の簡略のために省略し,サーバプロセスは新たに発行するセッションIDを,ブラウザプロセスは現在記憶しているクッキー値を,攻撃者プロセスは状態遷移グラフで選ばれたクッキー値を,それぞれ暗黙のうちに追加して送っているものとする。   In the event, the notation “Ch! Msg” means that the message msg is transmitted to the channel ch, and “ch? Msg” means that the message msg is received from the channel ch. Actually, cookies (corresponding to the Set-Cookie header and Cookie header) can also be sent and received, but for the sake of simplicity of explanation, the server process will store the newly issued session ID and the browser process will store the currently stored cookie. Assume that the attacker process is implicitly adding the cookie values selected in the state transition graph.

なお,本例では,プロセスの動作を規定する情報を状態遷移グラフとして述べるが,これはモデル検査用のモデルの表現形式としては一般的かつ根幹的なものであるためである。実際にモデルの表現に使われる言語や形式はモデル検査装置3の種類によって様々であるが,いずれの言語や形式でも状態遷移グラフから容易に変換することができる。   In this example, the information that defines the operation of the process is described as a state transition graph because this is a general and fundamental expression format for models for model checking. The language and format actually used to represent the model vary depending on the type of the model checking device 3, but any language and format can be easily converted from the state transition graph.

図14は,サーバプロセスSの状態遷移グラフである。   FIG. 14 is a state transition graph of the server process S.

遷移に伴う動作の「new_s」は,もし受信したリクエストに有効なセッションクッキーがなければ新たなセッションを準備してセッションIDをクッキーとして発行することを意味し,「put(N)」は,受信したリクエストに有効なセッションクッキーがあれば対応するセッションデータとして値Nを記録することを意味する。   “New_s” of the operation associated with the transition means that if there is no valid session cookie in the received request, it means that a new session is prepared and the session ID is issued as a cookie, and “put (N)” is received If there is a valid session cookie in the request, it means that the value N is recorded as the corresponding session data.

セッションデータは,セッションIDごとに区別してサーバの共有変数に記録される。また,条件の「get()=N」は,受信したリクエストに有効なセッションクッキーがあり,なおかつ対応するセッションデータが値Nであれば成り立つという意味である。図14の状態遷移グラフは,リクエストを受信して,そのサービス識別子やその他の条件に応じて図9〜図11のように振る舞うことを表したものである。   Session data is recorded for each session ID in a shared variable of the server. Further, the condition “get () = N” means that if the received request has a valid session cookie and the corresponding session data has the value N, the condition is satisfied. The state transition graph of FIG. 14 represents that a request is received and behaves as shown in FIGS. 9 to 11 in accordance with the service identifier and other conditions.

なお,従来技術であれば,特にXSSが可能な場合には,スクリプトデータを含むリクエストを受け付けてスクリプトを含むレスポンスを返す遷移をreceived状態とwait状態の間に複数追加しなければならない。本発明によれば,XSSによって起こる効果はサーバプロセスを介さずにブラウザと攻撃者のプロセスの間で直接実現されるので,モデル構築部13は,モデル作成時に,サーバプロセスにそれらの遷移を追加しない。   In the prior art, particularly when XSS is possible, a plurality of transitions that accept a request including script data and return a response including a script must be added between the received state and the wait state. According to the present invention, since the effect caused by XSS is directly realized between the browser and the attacker process without going through the server process, the model building unit 13 adds these transitions to the server process when creating the model. do not do.

図15は,ブラウザプロセスB1の状態遷移グラフである。図15の状態遷移グラフは,ブラウザがサーバへ有意なリクエストを送信する様子を表しているが,その順序は任意である。   FIG. 15 is a state transition graph of the browser process B1. The state transition graph in FIG. 15 shows a state in which the browser transmits a significant request to the server, but the order is arbitrary.

また,図15の状態遷移グラフには,短縮攻撃手順のための遷移が追加されている。短縮攻撃手順のための遷移とは,攻撃者しか知らない有意なリクエストの送信を強制・誘導される遷移(nw ! login_pwx),および,攻撃者が混入させたスクリプトによって現在のクッキー値やprivateページの情報が盗まれる遷移(sh ! leak_(クッキー)とsh ! leak_private)である。   Further, a transition for the shortened attack procedure is added to the state transition graph of FIG. Transitions for shortened attack procedures include transitions (nw! Login_pwx) that are forced / guided to send significant requests that only the attacker knows, and current cookie values and private pages by scripts mixed by the attacker The information is stolen (sh! Leak_ (cookie) and sh! Leak_private).

従来技術では,これらの短縮攻撃手順のための遷移の代わりに,多くの遷移を追加する必要があった。すなわち,攻撃者のサイトへリクエストを送るための遷移,攻撃者サイトからレスポンスを受け取るための遷移,さらに前記レスポンスにより誘導されたリクエストを送るための遷移,さらに前記リクエストがXSSを起こすものだった場合のスクリプトを含むレスポンスを受け取る遷移,さらに前記レスポンスにより攻撃者サイトや本来のサーバへリクエストを送る遷移などである。これらのうち,リクエストする遷移はwait_action状態からwait_response状態へ,レスポンスする遷移はwait_response状態からwait_action状態へ,それぞれの間の遷移として追加され,直前に受け取ったレスポンスに応じた条件も設ける必要がある。受け取ったレスポンス種類によってもっと細かく途中状態を経て分岐しても構わないが,少なくとも前述のような遷移が必要となる。   In the prior art, many transitions had to be added instead of transitions for these shortened attack procedures. That is, a transition for sending a request to the attacker's site, a transition for receiving a response from the attacker's site, a transition for sending a request induced by the response, and the request causing XSS Transition for receiving a response including the above script, and transition for sending a request to the attacker site or the original server by the response. Of these, the transition to be requested is added as a transition between the wait_action state and the wait_response state from the wait_action state, and the response transition is from the wait_response state to the wait_action state. It is also necessary to provide a condition according to the response received immediately before. Depending on the type of response received, it may be branched in a more detailed way, but at least the transition described above is required.

これに対し,本発明のモデル構築部13は,攻撃テクニックを,リクエスト・レスポンスを介さない直接的な効果として実現できるモデルを作成する。そのため,本発明によるモデルは,上記のような多くの遷移を必要とせず,より単純な構成の状態遷移グラフとなる。   On the other hand, the model construction unit 13 of the present invention creates a model that can realize the attack technique as a direct effect without request / response. Therefore, the model according to the present invention does not require many transitions as described above, and becomes a state transition graph having a simpler configuration.

図16は,ブラウザプロセスB2の状態遷移グラフである。図16の状態遷移グラフは,攻撃者からのクッキー強制を受け付けるための動作を意味し,force_cookieメッセージによって与えられたクッキーの値を受け入れて該当する変数に記録する。このプロセス自体が,短縮攻撃手順を実現するためのものである。   FIG. 16 is a state transition graph of the browser process B2. The state transition graph of FIG. 16 means an operation for accepting cookie forcing from an attacker, and accepts a cookie value given by a force_cookie message and records it in a corresponding variable. This process itself is to realize a shortened attack procedure.

従来技術では,クッキー強制は本来のサーバとの通信に攻撃者が介在したものとして実現される。そのため,プロセスB2は不要であるが,代わりに,プロセスB2の数だけ余計にプロセスB1が必要であった。本発明のモデル構築部13は,複雑なプロセスB1のいくつかを,より単純なプロセスB2で置き換えたモデルを作成する。   In the prior art, cookie enforcement is realized as an attacker intervening in communication with the original server. For this reason, the process B2 is unnecessary, but instead, the process B1 is required as many as the number of the process B2. The model construction unit 13 of the present invention creates a model in which some of the complicated processes B1 are replaced with simpler processes B2.

図17は,攻撃者プロセスIの状態遷移グラフである。図17の状態遷移のグラフは,攻撃者が知る知識の範囲内で任意のリクエストやレスポンスを送信する動作,任意のリクエストやレスポンスを受信してそれが含む情報を知識に加える動作に加え,短縮攻撃手順を実現する動作を意味する。   FIG. 17 is a state transition graph of the attacker process I. The state transition graph of FIG. 17 is shortened in addition to the operation of sending an arbitrary request or response within the knowledge range known to the attacker, the operation of receiving an arbitrary request or response and adding the information contained in the request to the knowledge. It means the action that realizes the attack procedure.

短縮攻撃手順を実現するのは,webブラウザに攻撃者が知るクッキー値を強制する動作,webブラウザからの漏洩リクエストを受け取り,記憶へ追加する動作である。   The shortened attack procedure is realized by an operation for forcing a cookie value known to the attacker to the web browser, and an operation for receiving a leak request from the web browser and adding it to the memory.

従来技術では,攻撃者プロセスIには自身がサーバとなってwebブラウザのプロセスからリクエストを受け取ってレスポンスを返す必要があり,そうしたリクエスト・レスポンスには本来のサーバへの誘導も多数含まれるため,wait状態からwait状態へ戻る遷移を,かなり多く追加する必要があった。本発明のモデル構築部13は,それらの遷移を持たないモデルを作成する。   In the prior art, the attacker process I needs to receive a request from the web browser process and return a response by itself as a server, and such a request / response includes many instructions to the original server. It was necessary to add quite a number of transitions from the wait state back to the wait state. The model construction unit 13 of the present invention creates a model that does not have those transitions.

モデル出力部15が出力するモデル2の論理的構造は,以上のような状態遷移グラフで表すことができる。   The logical structure of the model 2 output by the model output unit 15 can be represented by the state transition graph as described above.

モデル検査装置3は,このようなモデル2を用いてモデル検査を行い,例えば,本来特定のユーザUにしか知られるべきではない情報privateを攻撃者Xが知った状態(know_privateがtrueとなる状態)を探索することによって,セキュリティが破られるかどうかを検査できる。   The model checking device 3 performs model checking using such a model 2, for example, a state in which the attacker X knows information private that should be known only to a specific user U (a state in which know_private becomes true). ) To check whether security is breached.

なお,環境情報で,各攻撃テクニックが可能でないと設定されたなら,モデル構築部13は,生成するモデルから,該当する遷移が起きる条件が満たされないか,あるいは該当する遷移を作成しなくてもよい。前述の状態遷移グラフでは,「スクリプト混入可能」や「リクエスト誘導可能」といった条件を持つ遷移がそれにあたる。   If it is set in the environment information that each attack technique is not possible, the model building unit 13 does not satisfy the condition for the corresponding transition from being generated or does not create the corresponding transition from the generated model. Good. In the state transition graph described above, a transition having a condition such as “script can be mixed” or “request can be guided” corresponds to this.

以上,本発明をその実施の形態により説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。   Although the present invention has been described above with reference to the embodiments, it is obvious that the present invention can be variously modified within the scope of the gist thereof.

本発明の形態および実施例の特徴を列記すると以下のとおりである。   The features of the embodiments and examples of the present invention are listed as follows.

(付記1)
コンピュータに,
webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成処理を
実行させるための
セキュリティ検査用モデル生成プログラム。
(Appendix 1)
Computer
Of the procedures consisting of multiple requests and responses executed between the web application browser, server, and attacker, an attack that causes forcing or guiding the request transmission by the attacker page created by the attacker A security inspection model generation program that executes a shortened attack procedure creation process that creates a shortened attack procedure that defines the effect of the attack in a smaller number of steps.

(付記2)
前記短縮攻撃手順の対象となる攻撃手順は,一つの攻撃手順の後に,さらにレスポンスの偽造あるいは改ざんを生じさせるクッキー強制に関する攻撃手順であること
を特徴とする
前記付記1に記載のセキュリティ検査用モデル生成プログラム。
(Appendix 2)
The model for security inspection according to claim 1, wherein the attack procedure that is a target of the shortened attack procedure is an attack procedure related to cookie enforcement that causes forgery or falsification of a response after one attack procedure. Generation program.

(付記3)
前記短縮攻撃手順の対象となる攻撃手順は,前記攻撃者によって作成されたスクリプトを,前記サーバのwebページに混入させることによって,所定の情報の盗み出しを生じさせる攻撃手順であること
を特徴とする
前記付記1に記載のセキュリティ検査用モデル生成プログラム。
(Appendix 3)
The attack procedure that is the target of the shortened attack procedure is an attack procedure that causes the steal of predetermined information by mixing a script created by the attacker into the web page of the server. The security inspection model generation program according to Appendix 1.

(付記4)
前記コンピュータに,
ユーザによって入力される,前記webアプリケーションの仕様情報,セキュリティ仕様情報,ならびに前記webアプリケーションがおかれる環境情報であって前記攻撃者が実行する攻撃の定義を含む情報を取得する入力設定情報受付処理と,
前記短縮攻撃手順作成処理において,前記仕様情報,前記セキュリティ仕様情報,および前記環境情報をもとに前記短縮攻撃手順を変更する処理とを,
実行させるための
前記付記1〜前記付記3のいずれか一項に記載のセキュリティ検査用モデル生成プログラム。
(Appendix 4)
In the computer,
Input setting information reception processing for acquiring specification information of the web application, security specification information, and environment information in which the web application is set and information including an attack definition executed by the attacker, which is input by a user; ,
In the shortened attack procedure creation process, a process for changing the shortened attack procedure based on the specification information, the security specification information, and the environment information,
The security inspection model generation program according to any one of Supplementary Note 1 to Supplementary Note 3 for execution.

(付記5)
webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部を備える
セキュリティ検査用モデル生成装置。
(Appendix 5)
Of the procedures consisting of multiple requests and responses executed between the web application browser, server, and attacker, an attack that causes forcing or guiding the request transmission by the attacker page created by the attacker A model generation apparatus for security inspection comprising a shortened attack procedure creation unit for creating a shortened attack procedure that defines a procedure so that the effect of the attack is generated with a smaller number of procedures.

(付記6)
webアプリケーションのセキュリティ検査用モデルを生成する装置であって,
webアプリケーションの仕様情報,セキュリティ仕様情報,前記webアプリケーションがおかれる環境情報であって前記攻撃者が実行する攻撃の定義を含む情報を取得する入力設定情報受付部と,
前記仕様情報,前記セキュリティ仕様情報,および前記環境情報をもとに,前記攻撃の結果に対応する攻撃者用メッセージ識別子を作成する識別子作成部と,
前記webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部と,
前記短縮攻撃手順のチャネル定義を設定するチャネル定義作成部と,
前記攻撃者用メッセージ識別子,前記短縮攻撃手順のチャネル定義を含むセキュリティ検査用モデルを出力するモデル出力部とを
備えることを特徴とするセキュリティ検査用モデル生成装置。
(Appendix 6)
A device for generating a web application security inspection model,
web application specification information, security specification information, environment information in which the web application is placed, and an input setting information receiving unit that acquires information including a definition of an attack executed by the attacker;
An identifier creating unit for creating a message identifier for an attacker corresponding to the result of the attack based on the specification information, the security specification information, and the environment information;
Out of the procedures composed of multiple requests and responses executed between the browser, server, and attacker of the web application, the attacker sends a request to be forced or guided by the attacker page created by the attacker. For the attack procedure, a shortened attack procedure creation unit that creates a shortened attack procedure that is defined so as to produce the effect of the attack with a smaller number of procedures;
A channel definition creation unit for setting a channel definition of the shortened attack procedure;
A model generator for security inspection, comprising: a model output unit for outputting a model for security inspection including the message identifier for attacker and a channel definition of the shortened attack procedure.

(付記7)
webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を含むセキュリティ検査用モデルを実行する実行部と,
前記webアプリケーションの実行時の手順が所定結果であるかを判定する検査部とを備える
セキュリティ検査用モデル検査装置。
(Appendix 7)
Of the procedures consisting of multiple requests and responses executed between the web application browser, server, and attacker, an attack that causes forcing or guiding the request transmission by the attacker page created by the attacker An execution unit that executes a security inspection model including a shortened attack procedure that is defined so that the effect of the attack is generated with a smaller number of steps.
A security inspection model checking apparatus comprising: an inspection unit that determines whether a procedure at the time of executing the web application is a predetermined result.

本発明の最良の実施の形態における構成例を示す図である。It is a figure which shows the structural example in the best embodiment of this invention. 本発明を実施するシステムの構成例を示す図である。It is a figure which shows the structural example of the system which implements this invention. モデル構築部の処理の流れを示す図である。It is a figure which shows the flow of a process of a model construction part. 識別子リストの例を示す図である。It is a figure which shows the example of an identifier list. サーバ共有変数リストの例を示す図である。It is a figure which shows the example of a server shared variable list. ブラウザ共有変数リストの例を示す図である。It is a figure which shows the example of a browser shared variable list. 攻撃者知識フラグ変数リストの例を示す図である。It is a figure which shows the example of an attacker knowledge flag variable list. webアプリケーションの画面遷移仕様の例を示す図である。It is a figure which shows the example of the screen transition specification of a web application. webアプリケーションの仕様情報の例を示す図である。It is a figure which shows the example of the specification information of a web application. webアプリケーションの仕様情報(サーバ動作記述)の例を示す図である。It is a figure which shows the example of the specification information (server operation | movement description) of a web application. セキュリティの仕様情報の例を示す図である。It is a figure which shows the example of the specification information of security. 環境情報の例の例を示す図である。It is a figure which shows the example of the example of environmental information. モデルのプロセス構造の例を示す図である。It is a figure which shows the example of the process structure of a model. サーバプロセスSの状態遷移グラフの例を示す図である。It is a figure which shows the example of the state transition graph of the server process. ブラウザプロセスB1の状態遷移グラフの例を示す図である。It is a figure which shows the example of the state transition graph of browser process B1. ブラウザプロセスB2の状態遷移グラフの例を示す図である。It is a figure which shows the example of the state transition graph of browser process B2. 攻撃者プロセスIの状態遷移グラフの例を示す図である。6 is a diagram illustrating an example of a state transition graph of an attacker process I. FIG.

符号の説明Explanation of symbols

1 モデル生成装置
11 情報入力受付部
13 モデル構築部
15 モデル出力部
2 モデル(モデルデータ)
3 モデル検査装置
4 検査結果
10 指示情報
DESCRIPTION OF SYMBOLS 1 Model generation apparatus 11 Information input reception part 13 Model construction part 15 Model output part 2 Model (model data)
3 Model inspection device 4 Inspection result 10 Instruction information

Claims (5)

webアプリケーションのセキュリティ検査用モデルを生成する装置であって,
webアプリケーションの画面遷移仕様情報,および守らなければならないレスポンスおよび攻撃者の事前知識を含むセキュリティの重要データ配置情報を取得する入力設定情報受付部と,
前記画面遷移仕様情報および前記重要データ配置情報をもとに,攻撃の結果に対応する攻撃用メッセージ識別子を作成する識別子作成部と,
前記webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部と,
前記短縮攻撃手順のチャネル定義を設定するチャネル定義作成部と,
前記攻撃用メッセージ識別子および前記短縮攻撃手順のチャネル定義を含むセキュリティ検査用モデルを出力するモデル出力部とを
備えることを特徴とするセキュリティ検査用モデル生成装置。
A device for generating a web application security inspection model,
an input setting information receiving unit for acquiring security important data arrangement information including screen transition specification information of a web application, and responses to be protected and prior knowledge of an attacker;
An identifier creating unit that creates an attack message identifier corresponding to an attack result based on the screen transition specification information and the important data arrangement information;
Out of the procedures composed of multiple requests and responses executed between the browser, server, and attacker of the web application, the attacker sends a request to be forced or guided by the attacker page created by the attacker. For the attack procedure, a shortened attack procedure creation unit that creates a shortened attack procedure that is defined so as to produce the effect of the attack with a smaller number of procedures;
A channel definition creation unit for setting a channel definition of the shortened attack procedure;
A security check model generation device comprising: a model output unit that outputs a security check model including the attack message identifier and a channel definition of the short attack procedure.
前記短縮攻撃手順の対象となる攻撃手順は,一つの攻撃手順の後に,さらにレスポンスの偽造あるいは改ざんを生じさせるクッキー強制に関する攻撃手順であること
を特徴とする
請求項1に記載のセキュリティ検査用モデル生成装置。
The security inspection model according to claim 1, wherein the attack procedure that is a target of the shortened attack procedure is an attack procedure related to cookie enforcement that causes forgery or falsification of a response after one attack procedure. Generator.
前記短縮攻撃手順の対象となる攻撃手順は,前記攻撃者によって作成されたスクリプトを,前記サーバのwebページに混入させることによって,所定の情報の盗み出しを生じさせる攻撃手順であること
を特徴とする
請求項1に記載のセキュリティ検査用モデル生成装置。
The attack procedure that is the target of the shortened attack procedure is an attack procedure that causes the steal of predetermined information by mixing a script created by the attacker into the web page of the server. The model generation apparatus for security inspection according to claim 1.
webアプリケーションの画面遷移仕様情報,および守らなければならないレスポンスおよび攻撃者の事前知識を含むセキュリティの重要データ配置情報を取得する入力設定情報受付部と,前記画面遷移仕様情報および前記重要データ配置情報をもとに,攻撃の結果に対応する攻撃用メッセージ識別子を作成する識別子作成部と,前記webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部と,前記短縮攻撃手順のチャネル定義を設定するチャネル定義作成部と,前記攻撃用メッセージ識別子,前記短縮攻撃手順のチャネル定義を含むセキュリティ検査用モデルを出力するモデル出力部とを備えるセキュリティ検査用モデル生成装置から出力された,前記攻撃用メッセージ識別子および前記短縮攻撃手順のチャネル定義を含むセキュリティ検査用モデルを入力して実行する実行部と,
前記webアプリケーションのセキュリティ検査用モデルの実行時の手順が所定結果であるかを判定する検査部とを備える
セキュリティ検査用モデル検査装置。
An input setting information receiving unit for acquiring important data arrangement information of security including screen transition specification information of a web application, responses to be protected and prior knowledge of an attacker, and the screen transition specification information and the important data arrangement information. A procedure consisting of an identifier creation unit that creates an attack message identifier corresponding to the result of an attack, and a plurality of requests and responses executed between the browser, server, and attacker of the web application Among these, a shortened attack that creates a shortened attack procedure that is defined to cause the attack effect to be generated with a smaller number of procedures for an attack procedure that causes forced or guided transmission of a request by the attacker page created by the attacker. The procedure creation unit and the channel definition of the shortened attack procedure Output from a security inspection model generation device comprising: a channel definition creation unit to be defined; and a model output unit that outputs a security inspection model including the attack message identifier and the channel definition of the shortened attack procedure. An execution unit that inputs and executes a security inspection model including a message identifier and a channel definition of the shortened attack procedure ;
A security inspection model checking apparatus comprising: an inspection unit that determines whether a procedure at the time of executing the security inspection model of the web application is a predetermined result.
コンピュータに,
webアプリケーションの画面遷移仕様情報,および守らなければならないレスポンスおよび攻撃者の事前知識を含むセキュリティの重要データ配置情報を取得し,
前記画面遷移仕様情報および前記重要データ配置情報をもとに,攻撃の結果に対応する攻撃用メッセージ識別子を作成し,
前記webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成し,
前記短縮攻撃手順のチャネル定義を設定し,
前記攻撃用メッセージ識別子および前記短縮攻撃手順のチャネル定義を含むセキュリティ検査用モデルを出力する,処理を実行させるための
セキュリティ検査用モデル生成プログラム。
Computer
Acquire important data placement information of security including screen transition specification information of web application, response to be protected and prior knowledge of attacker,
Based on the screen transition specification information and the important data arrangement information, create an attack message identifier corresponding to the result of the attack,
Out of the procedures composed of multiple requests and responses executed between the browser, server, and attacker of the web application, the attacker sends a request to be forced or guided by the attacker page created by the attacker. For the attack procedure, create a shortened attack procedure that defines the effect of the attack with fewer steps,
Set the channel definition for the shortened attack procedure,
A security inspection model generation program for executing a process for outputting a security inspection model including the attack message identifier and a channel definition of the shortened attack procedure.
JP2007103371A 2007-04-11 2007-04-11 Security inspection model generation device, security inspection model inspection device, and security inspection model generation program Expired - Fee Related JP5082555B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007103371A JP5082555B2 (en) 2007-04-11 2007-04-11 Security inspection model generation device, security inspection model inspection device, and security inspection model generation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007103371A JP5082555B2 (en) 2007-04-11 2007-04-11 Security inspection model generation device, security inspection model inspection device, and security inspection model generation program

Publications (2)

Publication Number Publication Date
JP2008262311A JP2008262311A (en) 2008-10-30
JP5082555B2 true JP5082555B2 (en) 2012-11-28

Family

ID=39984755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007103371A Expired - Fee Related JP5082555B2 (en) 2007-04-11 2007-04-11 Security inspection model generation device, security inspection model inspection device, and security inspection model generation program

Country Status (1)

Country Link
JP (1) JP5082555B2 (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5418135B2 (en) * 2009-10-16 2014-02-19 富士通株式会社 Test program execution program, test program execution method, and test program execution apparatus
JP5640752B2 (en) * 2011-01-11 2014-12-17 富士通株式会社 Attack imitation test method, attack imitation test device, and attack imitation test program
US9135152B2 (en) * 2013-05-29 2015-09-15 International Business Machines Corporation Optimizing test data payload selection for testing computer software applications via computer networks
JP6086838B2 (en) * 2013-08-07 2017-03-01 Kddi株式会社 Web content distribution device
WO2019142335A1 (en) * 2018-01-19 2019-07-25 三菱電機株式会社 Security design device, security design method, and security design program

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000268074A (en) * 1999-03-18 2000-09-29 Toshiba Corp Device and method for automatically generating verification program and device and method for automatically generating property
JP4733885B2 (en) * 2001-09-29 2011-07-27 株式会社東芝 Vulnerability assessment program, method and system

Also Published As

Publication number Publication date
JP2008262311A (en) 2008-10-30

Similar Documents

Publication Publication Date Title
US10243679B2 (en) Vulnerability detection
Gupta et al. PHP-sensor: a prototype method to discover workflow violation and XSS vulnerabilities in PHP web applications
Gupta et al. Hunting for DOM-Based XSS vulnerabilities in mobile cloud-based online social network
KR101001132B1 (en) Method and System for Determining Vulnerability of Web Application
Shahriar et al. Client-side detection of cross-site request forgery attacks
Buchanan et al. Analysis of the adoption of security headers in HTTP
Deepa et al. DetLogic: A black-box approach for detecting logic vulnerabilities in web applications
Bozic et al. Planning-based security testing of web applications with attack grammars
EP3287930A1 (en) Javascript security testing
JP5082555B2 (en) Security inspection model generation device, security inspection model inspection device, and security inspection model generation program
Kapodistria et al. An advanced web attack detection and prevention tool
Hou et al. A dynamic detection technique for XSS vulnerabilities
Huang et al. Non-detrimental web application security scanning
Gegick et al. On the design of more secure software-intensive systems by use of attack patterns
Alidoosti et al. Evaluating the web‐application resiliency to business‐layer DoS attacks
JP6785360B2 (en) Attack string generation method and device
Cvitić et al. Defining Cross-Site Scripting Attack Resilience Guidelines Based on BeEF Framework Simulation
Basso et al. Analysis of the effect of Java software faults on security vulnerabilities and their detection by commercial web vulnerability scanner tool
Lin et al. An automatic meta-revised mechanism for anti-malicious injection
Noß et al. Finding All Cross-Site Needles in the DOM Stack: A Comprehensive Methodology for the Automatic XS-Leak Detection in Web Browsers
Soleimani et al. WAVE: Black Box Detection of XSS, CSRF and Information Leakage Vulnerabilities
Vernotte A pattern-driven and model-based vulnerability testing for web applications
Apruzzese et al. SpacePhish: The Evasion-space of Adversarial Attacks against Phishing Website Detectors using Machine Learning [Artifact]
Josip et al. Planning-based security testing of web applications with attack grammars
Hassan et al. ADT-SQLi: An Automated Detection of SQL Injection Vulnerability in Web Applications

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100119

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120501

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20120501

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120501

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120719

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120820

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150914

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees