(57)【要約】【課題】  ｗｅｂアプリケーションのセキュリティ検査に特化したモデルを作成する。【解決手段】  モデル生成装置１の情報入力受付部１１は，検査対象のｗｅｂアプリケーションの仕様情報，セキュリティ仕様情報，環境情報など指示情報１０の入力を受け付け，モデル構築部１３は，指示情報１０をもとに，複数のリクエスト・レスポンスで構成される手順のうち，攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について，攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を実現するモデル２を構築し，モデル出力部１５は，モデル２を出力する。モデル検査装置３は，モデル２によるモデル検査を行い，検査結果４を出力する。【選択図】  図１
2008262311.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに，
ｗｅｂアプリケーションのブラウザ，サーバ，および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち，前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について，当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成処理を
実行させるための
セキュリティ検査用モデル生成プログラム。
【請求項２】
前記短縮攻撃手順の対象となる攻撃手順は，一つの攻撃手順の後に，さらにレスポンスの偽造あるいは改ざんを生じさせるクッキー強制に関する攻撃手順であること
を特徴とする
請求項１に記載のセキュリティ検査用モデル生成プログラム。
【請求項３】
前記短縮攻撃手順の対象となる攻撃手順は，前記攻撃者によって作成されたスクリプトを，前記サーバのｗｅｂページに混入させることによって，所定の情報の盗み出しを生じさせる攻撃手順であること
を特徴とする
請求項１に記載のセキュリティ検査用モデル生成プログラム。
【請求項４】
前記コンピュータに，
ユーザによって入力される，前記ｗｅｂアプリケーションの仕様情報，セキュリティ仕様情報，ならびに前記ｗｅｂアプリケーションがおかれる環境情報であって前記攻撃者が実行する攻撃の定義を含む情報を取得する入力設定情報受付処理と，
前記短縮攻撃手順作成処理において，前記仕様情報，前記セキュリティ仕様情報，および前記環境情報をもとに前記短縮攻撃手順を変更する処理とを，
実行させるための
請求項１〜請求項３のいずれか一項に記載のセキュリティ検査用モデル生成プログラム。
【請求項５】
ｗｅｂアプリケーションのセキュリティ検査用モデルを生成する装置であって，
ｗｅｂアプリケーションの仕様情報，セキュリティ仕様情報，前記ｗｅｂアプリケーションがおかれる環境情報であって前記攻撃者が実行する攻撃の定義を含む情報を取得する入力設定情報受付部と，
前記仕様情報，前記セキュリティ仕様情報，および前記環境情報をもとに，前記攻撃の結果に対応する攻撃用メッセージ識別子を作成する識別子作成部と，
前記ｗｅｂアプリケーションのブラウザ，サーバ，および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち，前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について，当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部と，
前記短縮攻撃手順のチャネル定義を設定するチャネル定義作成部と，
前記攻撃用メッセージ識別子，前記短縮攻撃手順のチャネル定義を含むセキュリティ検査用モデルを出力するモデル出力部とを
備えることを特徴とするセキュリティ検査用モデル生成装置。
【請求項６】
ｗｅｂアプリケーションのブラウザ，サーバ，および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち，前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について，当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を含むセキュリティ検査用モデルを実行する実行部と，
前記ｗｅｂアプリケーションの実行時の手順が所定結果であるかを判定する検査部とを備える
セキュリティ検査用モデル検査装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，モデル検査によってｗｅｂアプリケーションのセキュリティを検査する技術に関する。
【０００２】
モデル検査はシミュレーションの一種であり，対象システムをモデルで表現し，そのモデルの振る舞いをモデル検査装置によって再現することによって，モデルの調べたい性質，所定の条件に対する反応を検査する手法である。モデル検査は，人間が網羅的に調べることが難しいような並行・分散システムの検査に威力を発揮する。
【背景技術】
【０００３】
近年，Ｗｏｒｌｄ−Ｗｉｄｅ  ｗｅｂ  （ｗｅｂ）の技術に基づくクライアント・サーバ・アプリケーション（ｗｅｂアプリケーション）が広く利用されている。ｗｅｂアプリケーションは，ＨＴＴＰ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）プロトコルによりネットワーク上で通信を行うアプリケーションであって，ユーザに提示される画面内容（ページ）は主にＨＴＭＬ（Ｈｙｐｅｒｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述される。サーバは，ｗｅｂサイトとも呼ばれ，クライアントにはｗｅｂブラウザが主に用いられる。
【０００４】
かつてのｗｅｂは，クライアントからみて，単純に発信された情報を取得するのが主であった。しかし，最近では掲示板やウェブログ（ブログ）といった情報を掲載する処理や，ネットワークに接続された機器の管理，商品やサービスの購入といった商取引など，多くのアプリケーションがｗｅｂ技術で実現されており，社会にも浸透している。代表的なｗｅｂブラウザとして，Ｍｉｃｒｏｓｏｆｔ社のＩｎｔｅｒｎｅｔ  ＥｘｐｌｏｒｅｒやＭｏｚｉｌｌａ  ＦｏｕｎｄａｔｉｏｎのＦｉｒｅｆｏｘなどがある。
【０００５】
このような，高度なｗｅｂアプリケーションの多くでは，特定のユーザのみに情報を提供したり操作を許したりすることが求められる。このため，ＳＳＬ（Ｓｅｃｕｒｅ  Ｓｏｃｋｅｔｓ  Ｌａｙｅｒ）あるいはＴＬＳ（Ｔｒａｎｓｐｏｒｔ  Ｌａｙｅｒ  Ｓｅｃｕｒｉｔｙ）による保護を行うＨＴＴＰＳ（Ｈｙｐｅｒｔｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ  ｏｖｅｒ  ＳＳＬ）プロトコルや，ＨＴＴＰ認証といったセキュリティ機能が用意されるようになった。
【０００６】
しかし，ＨＴＴＰプロトコルはステートレスであり，プロトコル自体はリクエストとレスポンスとの複数の組の間の関連付けを行う機能を持たないため，クッキー（Ｃｏｏｋｉｅ）と呼ばれる機構が設けられている。クッキーは，サーバが指定したデータをブラウザが暗黙的に保持しておき，リクエストのたびにその値を付けて送信するという技術である。これにより，サーバは同じブラウザとやり取りしたリクエストやレスポンスの組を識別することができる。このような一連のリクエストやレスポンスの組は，しばしばセッションと呼ばれる。
【０００７】
一方で，複雑な処理を実現し，ユーザに高度な外観や機能を提供するために，ｗｅｂブラウザには，ブラウザ自身の振る舞いをサーバ側の指定で制御できる機能が設けられている。
【０００８】
このような機能の一つであるクライアント側スクリプトは，ＨＴＭＬページ内またはページから参照されるファイル内に記述できる簡易なプログラム言語であって，ｗｅｂブラウザの振る舞いをある程度制御することができる。クライアント側スクリプトの代表格として，ＪａｖａＳｃｒｉｐｔがあり，他にその亜種や類似するものとしてＥＣＭＡＳｃｒｉｐｔ，ＪＳｃｒｉｐｔ，ＶＢＳｃｒｉｐｔなどがある。ここでは，それらすべてを代表して単にスクリプトと呼称する。
【０００９】
またスクリプトを使わないＨＴＴＰとＨＴＭＬだけでも，ＨＴＭＬページ内への画像やその他のオブジェクトの埋め込み，ＨＴＴＰによるリダイレクト，ＨＴＭＬのＭＥＴＡタグによる自動更新などの機能がある。これらの機能も，ｗｅｂブラウザの振る舞いをある程度制御することができる。
【００１０】
このようなｗｅｂブラウザ制御機能は，ｗｅｂアプリケーション提供者にとって都合が良い。一方で，ｗｅｂアプリケーションのセキュリティ機能をかいくぐってセキュリティ侵害を起こそうとする攻撃者にとっても好都合である。つまり，攻撃者は，自身に都合のよいＨＴＭＬページを任意のサイトに用意し，ユーザにそのページを開かせることによって，ｗｅｂブラウザを操作して攻撃を行うことが可能となる。
【００１１】
また，このようなブラウザ誘導をさらに利用して，リクエストの中にスクリプトデータを混在させておき，それを本来のサーバがレスポンスの一部としてクライアントへ返してしまうことによって，ｗｅｂブラウザ上で本来のサーバのページと同じ領域で攻撃者の作ったスクリプトが動作してしまうクロスサイト・スクリプティング（ｃｒｏｓｓ−ｓｉｔｅ  ｓｃｒｉｐｔｉｎｇ，以下ＸＳＳと略記する）という攻撃テクニックも知られている。
【００１２】
ところで，任意のシステムに対してセキュリティやその他の性質を確認するための手法として，設計や実装のレビュー，動作テスト，シミュレーションなどの手法が一般的に用いられる。また，最近注目されているのがモデル検査と呼ばれる手法である。
【００１３】
モデル検査は，ある種のシミュレーションであり，一般には，対象のシステムを調べたい性質だけに着目して抽象化されたモデルで表現し，このモデルが実行される様子をモデル検査器と呼ばれる特殊なソフトウェアで再現する。この際，モデル検査器は，入力値や条件分岐によって生じる複数の実行経路を網羅的に探索し，対象システムが調べたい性質に反する状態に至るかどうかを調べ，もし違反状態になったら，その経路を報告する。もしくは，最後まで違反状態が見つからなければ，対象システムは調べたい性質を満たすと報告する。
【００１４】
モデル検査は，人間が網羅的に調べることが難しいような並行・分散システムの検査に威力を発揮する。しかし，システムが複雑になると探索すべき状態数が指数的に増大する，いわゆる状態爆発の課題を有する。モデル検査では，探索の効率化や無限ループ回避のために，探索済み状態を記録しておき効率良く参照する必要があるため，状態数が増えると探索時間が増加するだけでなく，物理メモリ量が不足して現実的な時間内で探索しきれなくなるという問題がしばしば生じる。
【００１５】
モデル検査手法において，具体的なモデルの表現方法はモデル検査器に依存するが，モデルはシステムを表現したものであり，実質的にソフトウェアプログラムの一種といえる。多くの場合，有限状態オートマトンの仕様，すなわち状態遷移図や制御フロー図，または命令型プログラムの一種として表現することができる。また，複数プロセスから構成されるシステムの表現やモデル検査の効率化などを実現するための特徴的な要素（例えば，通信チャネル定義，非決定的分岐など）が含まれる。
【００１６】
ｗｅｂセキュリティをモデル検査手法によって検査する場合には，ｗｅｂアプリケーション特有の前提，ｗｅｂブラウザの特殊性などをうまく取り入れたモデルを用意する必要がある。また，セキュリティ検査では，可能であるならばどのようなことでも試行するという「攻撃者」をモデルに含める必要がある。これらを踏まえた上で，効率良く検査できるモデルを用意しなければならない。
【００１７】
ｗｅｂアプリケーションを対象としたモデル検査は，研究発表などでいくつか扱われている。しかし，ｗｅｂブラウザなどの特徴や攻撃者の振る舞いをも考慮したものは数少ない。
【００１８】
Ｇｒｏｓｓらは，非特許文献１で，ブラウザの汎用的なモデルを提案している。このモデルはＨＴＴＰＳによる通信路の保護やリダイレクトといった特徴を持ち，攻撃者がネットワーク上でメッセージの盗聴・改ざんを行ったり，ブラウザのキャッシュを覗き見たりする攻撃の可能性も考慮に入れている。
【００１９】
また，Ｈａｙｄａｒらは，非特許文献２において，モデル検査を目的としたＧｒｏｓｓらのものより単純なｗｅｂシステムのモデルを提案している。
【非特許文献１】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）
【発明の開示】
【発明が解決しようとする課題】
【００２０】
非特許文献１では，セッションＩＤの保持によく使われるクッキーは，モデルに含まれていないが，クッキーを含むモデルを作成することはさほど難しくはないと考えられる。しかし，Ｇｒｏｓｓらのモデルは，推論によってセキュリティを分析するためのものであり，効率的なモデル検査に適しているとは限らない。また，非特許文献２のモデルを応用してｗｅｂシステムのセキュリティをモデル検査することは可能であろう。
【００２１】
しかし，非特許文献１および非特許文献２の技術によるモデルを，ｗｅｂシステムにおけるセキュリティ侵害に特化したモデル検査に適用すれば，モデル検査においては容易に状態爆発を起こし，非常に多くの時間やメモリを要すると予想される。
【００２２】
具体的には，ｗｅｂアプリケーションに対する攻撃，特にセッションやクッキーの弱点をつく攻撃は，部分的な攻撃テクニックの組み合わせで実現されるものが多い。個々の攻撃テクニックだけでも，数回のリクエスト・レスポンスのやりとりが必要となる。そのため，全体の攻撃手順としては，さらに増大してしまう。しかも，モデル検査では，結果的に攻撃が成功しない手順も探索の対象とするうえ，インターリーブと呼ばれる，メッセージのやりとりなどのイベントの発生順序の様々な組み合わせも考慮しなければならない。したがって，攻撃テクニックの手順の多さが状態数の増大に指数的に影響を与えてしまう。
【００２３】
具体的に例を挙げると，ｗｅｂアプリケーションの一般的な使用環境において，ユーザが安全なサイトにしかアクセスしないという前提を置くことは難しい。「ブラウザが攻撃者のｗｅｂサイトにアクセスしてしまい，そこに指定されたリダイレクトやスクリプトに操られてしまう」という事象は，何時どのようなタイミングでも発生すると考えられる。
【００２４】
そのため，モデル上では，ブラウザはいつでも攻撃者のサイトへアクセスし，そのレスポンスによって任意のサイトへアクセスしうるようにすべきである。この攻撃テクニックは，少なくとも最初のリクエストとレスポンス，その後の誘導されたレスポンスの3手順を必要とし，実際には，後の2つのレスポンスの中身は多岐にわたる。そのため，可能な3手順の組み合わせは，さらに多数となることになる。実際に，組み合わせ数は，検査対象のｗｅｂアプリケーションに対して有効なメッセージの種類に依存している。
【００２５】
別の具体例を挙げると，前記のブラウザ誘導のテクニックを利用して，攻撃者は，任意のサイト向けのクッキーをブラウザに強制・上書きすることができる。この方法によって，対象のｗｅｂサイトへリクエスト（ＨＴＴＰＳで保護されていないもの）を送信させ，攻撃者がそれを通信路上で捉えて，Ｓｅｔ−Ｃｏｏｋｉｅヘッダを含むレスポンスを偽造して返信することができる。この攻撃には，ブラウザ誘導の部分も含めて4手順を必要とする。
【００２６】
このような状態数増大の問題に対して，従来，大きく分けて二種類の対策がなされてきた。一つは，モデル検査処理の細部に関する技術であり，いかに効率良く状態空間を探索するか，一般にどのような場合に探索を省略できるかといった点を工夫する。この対策は，対象システムの性質によらず利用でき，モデル検査器の機能として実現されることが多い。例えば，ＢＤＤ（Ｂｉｎａｒｙ  Ｄｅｃｉｓｉｏｎ  Ｄｉａｇｒａｍ）によるアルゴリズムの改善，Ｐａｒｔｉａｌ  Ｏｒｄｅｒ  Ｒｅｄｕｃｔｉｏｎなどが有名である。
【００２７】
もう一つは，対象システムをモデル化する際の抽象度のレベルに関する技術であり，対象システムの特徴や検査する性質に依存した効率化を図り，例えば検査結果に影響を与えない範囲で全体の規模を小さくしたり，探索経路を省略したりする。この対策は，対象システム各々に応じて対応しなければならない。
【００２８】
本発明は，後者のアプローチに属するものであり，ｗｅｂアプリケーションのセキュリティ検査に特化したモデルであって，状態数の爆発的な増加を回避できるものを作成し，このモデルを用いて検査することを目的とするものである。
【課題を解決するための手段】
【００２９】
本発明は，ｗｅｂアプリケーションのセキュリティ検査に特化したモデルの作成を図るべく，対象のｗｅｂアプリケーションを含むｗｅｂシステムを表現するモデルで実行される状態数を削減するため，モデルに短縮された攻撃手順を設ける。モデル中の動作手順は，一般的に，命令あるいは状態遷移で表されるので，それらをまとめてステップと呼ぶと仮定すると，本発明は，ｗｅｂアプリケーションに対する特定の攻撃テクニックを，短縮攻撃手順として設定する。このような攻撃テクニックの例として，リクエスト送信強制または誘導，クッキー強制，ＸＳＳによるページ内データやクッキーの盗み出しなどが挙げられる。
【００３０】
短縮攻撃手順は，ある攻撃テクニックの手順を1ステップずつ追って実現するのではなく，攻撃の結果として起きる事象を一つあるいは少数のステップで実現したものである。このとき，短縮攻撃手順は，本来の攻撃手順を用いた検査結果と異ならないように設定される。
【００３１】
具体的には，ユーザのブラウザが任意のタイミングで攻撃者のサイトへアクセスし，その後攻撃者によるレスポンスで操られてリクエストを送る，というモデル上の動作を省略し，その結果として発生することだけをモデルに組み込む。このため，モデル上で，ブラウザがもつＨＴＴＰまたはＨＴＴＰＳによる通信機能の一部である，攻撃者サイトへアクセスする機能を削除する。その代わりに，攻撃者がリクエスト送信強制を依頼しブラウザがそれを実行する機能，さらに攻撃者がクッキーの強制を依頼しブラウザがそれを受け入れる機能などを追加する。これらの機能のモデル上での具体的な表現方法は，モデルの表現形式（言語）などに依存する。
【００３２】
本発明は，コンピュータに，ｗｅｂアプリケーションのブラウザ，サーバ，および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち，前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について，当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成処理を実行させるためのプログラムである。
【００３３】
また，本発明において，前記短縮攻撃手順の対象となる攻撃手順は，一つの攻撃手順の後に，さらにレスポンスの偽造あるいは改ざんを生じさせるクッキー強制に関する攻撃手順であってもよい。
【００３４】
もしくは，前記短縮攻撃手順の対象となる攻撃手順は，前記攻撃者によって作成されたスクリプトを，本来のサーバのｗｅｂページに混入させることによって，所定の情報の盗み出しを生じさせる攻撃手順であってもよい。
【００３５】
さらに，本発明は，前記コンピュータに，ユーザによって入力される，検査対象となるｗｅｂアプリケーションの仕様情報，セキュリティ仕様情報，ならびに前記攻撃者が実行する攻撃の定義を含むｗｅｂアプリケーションがおかれる環境情報を取得する入力設定情報受付処理と，前記短縮攻撃手順作成処理において，前記仕様情報，前記セキュリティ仕様情報，および前記環境情報をもとに前記短縮攻撃手順を変更する処理とを，実行させるためのプログラムであってもよい。
【００３６】
本発明によれば，攻撃の結果として起きる事象を一つあるいは少数のステップで実現した短縮攻撃手順を実現するモデル（セキュリティ検査用モデル）を生成することができるため，このモデルを使用するモデル検査装置による探索処理では短い手順でセキュリティが侵害された状態に到達することができ，セキュリティ上の問題を早期に発見できる可能性が高まる。
【００３７】
また，作成するモデルから，攻撃者のサイトへブラウザがアクセスし，そのレスポンスで誘導される動作や，ＸＳＳに関するリクエスト・レスポンスのやりとりの動作を表すステップを除去できるため，さらにモデル全体としての状態数を減らすことができ，問題の早期発見にさらに有効である。
【００３８】
なお，本発明にかかるプログラムは，コンピュータが読み取り可能な可搬媒体メモリ，半導体メモリ，ハードディスクなどの適当な記録媒体に格納することができ，これらの記録媒体に記録して提供され，または，通信インタフェースを介して種々の通信網を利用した送受信により提供される。
【発明の効果】
【００３９】
本発明によれば，ｗｅｂアプリケーションのセキュリティを検査する際に，短縮攻撃手順を実現するモデルを作成することができる。このモデルでは，セキュリティ上の欠陥の有無という本来調べたい検査結果には影響を与えることなく，従来技術であれば存在していた多くの遷移が省略され，その代わりに短縮攻撃手順を表現した遷移が追加される。
【００４０】
本発明によって省略された遷移には，例えば，ブラウザが攻撃者のサイトへリクエストを送る遷移，このリクエストに対する攻撃者による受信・レスポンス送信，さらに，この送信を受け取ったブラウザが誘導されてリクエストを送る遷移，さらに，本来のサーバがＸＳＳによりスクリプトを含むレスポンスを返す遷移，このレスポンスを受け取ったブラウザの振る舞いの遷移などが含まれ，その数は非常に多い。
【００４１】
したがって，本発明により作成されたモデルに対してモデル検査を行うと，攻撃が成功するまでの手順が短縮され，また，各状態から生じる遷移の種類も少なくなり，モデル全体の状態数が削減される。よって，欠陥がより早く発見できる可能性が高まり，全状態を探索し終えるまでの処理時間が短縮できる。
【００４２】
また，モデル検査においては，状態数が増大すると物理メモリ量の制限に抵触することが多い。そのため，状態数が増大してしまうと探索終了前に失敗することがあるが，これを回避することもできる。
【００４３】
このように，モデルにおける全体の状態数は，手順数（深さ）や手順の種類数（各状態で選べる遷移の幅）に対して概ね指数関数的な正の相関があるので，深さや幅を削減することの効果は非常に大きい。
【発明を実施するための最良の形態】
【００４４】
図１に，本発明の最良の実施の形態における構成例を示す。モデル生成装置１は，一般的には計算機システム上で動作するソフトウェアとして実施される。
【００４５】
モデル生成装置１は，モデル検査実施者（以下，検査者と呼ぶ）の指示に従って，対象ｗｅｂアプリケーションの仕様に基づくモデル（モデルデータ）２を生成し出力する。さらに，モデル生成装置１は，検査者の指示により，対象ｗｅｂアプリケーションのおかれる環境や前提，調べたい性質に合わせて必要な短縮攻撃手順のみを含むモデル２を生成することもできる。
【００４６】
モデル生成装置１は，情報入力受付部１１，モデル構築部１３，およびモデル出力部１５を備える。
【００４７】
情報入力受付部１１は，検査者が入力する指示情報１０を受け付ける処理手段である。
【００４８】
指示情報１０には，ｗｅｂサーバがリクエストを受け付けるサービス識別子（ＵＲＬを抽象化した情報）の集合，ｗｅｂサーバがブラウザに返却するレスポンス識別子の集合，サービス識別子ごとのｗｅｂサーバの振る舞いの記述，レスポンス識別子ごとのｗｅｂブラウザの振る舞いの記述などのｗｅｂアプリケーションの仕様情報，守らなければならないレスポンス識別子，攻撃者の事前知識などのセキュリティ仕様情報，対象のｗｅｂアプリケーションがおかれる環境情報などが含まれる。
【００４９】
モデル構築部１３は，指示情報１０をもとにモデル２を作成する処理手段である。モデル構築部１３の詳細な処理については後述する。
【００５０】
モデル出力部１５は，モデル構築部１３が作成したモデル２となるモデルデータを出力する処理手段である。
【００５１】
モデル２は，ネットワークを介して相互に通信する，対象のｗｅｂアプリケーションを実現するｗｅｂブラウザ，本来のｗｅｂサーバ，および攻撃者で構成されるｗｅｂシステムの振る舞いを表現し，ある攻撃テクニックの手順をそのまま実現するのではなく，攻撃の結果として起きる事象を一つまたは少数ステップで実現した短縮攻撃手順を実現できる機能（短縮攻撃手順実現機能）を含む。
【００５２】
なお，モデル生成装置１から出力されたモデル２は，モデル検査装置３に入力されて実行される。モデル検査装置３は，モデル２の振る舞いについて所定の検査を行い，その検査結果４を出力する。
【００５３】
本実施の形態において，モデル生成装置１は，図２に示すように，汎用的な計算機とオペレーティングシステム（ＯＳ）上で動作するアプリケーションプログラムとして実施する。
【００５４】
計算機１０１は演算装置と揮発性の物理メモリ１０２，不揮発性のディスク１０３など記憶装置，キーボード，マウス，ビデオディスプレイなどの入出力装置１０４，ネットワークＮなどとのネットワーク通信装置１０５などを備えるものとする。
【００５５】
計算機１０１上ではオペレーティングシステム（ＯＳ）と各種アプリケーションプログラムが動作し，ＯＳは前記の各種装置の機能を，プロセスの実行制御（スケジューリング），ヒープなどの短期記憶，ファイルやレジストリなどの長期記憶，テキストベースやグラフィックベースのユーザインタフェース（ＵＩ）などのシステムコールや通信ＡＰＩとしてアプリケーションプログラムに提供する。
【００５６】
ただし，本発明の実施形態は，上記の構成に限定されるものではなく，専用のハードウェアなどによって実施することもできる。
【００５７】
図３は，モデル構築部１３の処理の流れを示す図である。
【００５８】
ステップＳ１：  モデル構築部１３は，指示情報１０の仕様情報から，自明な識別子を取り出し，識別子リストを作成する。このとき，セキュリティ仕様情報に基づき各識別子に，初期状態において，ブラウザ，サーバ，攻撃者のだれがその識別子を知っているかを表す符号を付ける。
【００５９】
ステップＳ２：  次に，事前に決められた個数分だけセッション識別子を追加する。
【００６０】
ステップＳ３：  さらに，環境情報で許可された攻撃テクニックに応じて必要な攻撃者用メッセージ識別子を追加する。
【００６１】
図４に示すような識別子リストの場合に，攻撃者用メッセージ識別子は，下８つである。クッキー設定を強制するための「ｆｏｒｃｅ＿ｃｏｏｋｉｅ」と攻撃者にとっての未知情報のそれぞれについて用意された「ｌｅａｋ＿」で始まる７つの漏洩用メッセージ識別子からなる。
【００６２】
本発明または従来手法のいずれの場合でも，漏洩用メッセージ識別子は同じように必要である。しかし，従来手法の場合は，「ｆｏｒｃｅ＿ｃｏｏｋｉｅ」を用いない代わりに，さらに多くのメッセージ識別子が必要であった。すなわち，攻撃者が用意したページへのリクエストを表す少なくとも一つのメッセージ識別子，本来のサーバの各ページへの誘導や「Ｓｅｔ−Ｃｏｏｋｉｅ」のためのレスポンスを表す複数のメッセージ識別子，さらに，ＸＳＳを考慮する場合はスクリプトデータを含むリクエストとそれに対するレスポンスをそれぞれ表す複数のメッセージ識別子が必要であった。本発明では，「ｆｏｒｃｅ＿ｃｏｏｋｉｅ」を用いるが，従来手法において必要であった，このような多くのメッセージ識別子が不要である。
【００６３】
ステップＳ４：  次に，異なる種類のプロセス間で共有されるチャネル定義を，共有チャネルおよび短縮攻撃手順用チャネルのそれぞれについて，前記の識別子リストで必要なメッセージ識別子が送受信できるように定義する。ここで，必要ならばＨＴＴＰＳによる保護のフラグも送受信できるようにする。
【００６４】
短縮攻撃手順用チャネル定義は，短縮手順のない従来のモデルには不必要であり，本発明の目的達成のために追加される。
【００６５】
ステップＳ１０：  サーバの共有変数リストを作成する。図５に示すように，サーバ共有変数リストには，セッションデータを格納する変数とセッション管理用の変数が必要である。
【００６６】
ステップＳ１１：  仕様情報のサーバの動作の記述から，プロセスＳの動作を規定する情報（例えば，状態遷移グラフ）を作成する。ｗｅｂサーバの動作は，共有チャネルを介したリクエストを受信し，そこで指定されたサービス識別子およびその他の条件に応じて，仕様情報で与えられたとおりのセッション管理とレスポンス返信を行うように決定される。従来技術では，特にＸＳＳを考慮する場合にはスクリプトデータを含むリクエストの受信，および，そのリクエストに対するレスポンスの送信を意味する動作を追加する必要があったが，本発明ではそれらは不要である。
【００６７】
ステップＳ１２：  状態遷移グラフと変数リストから，プロセスＳの定義を作成する。
【００６８】
ステップＳ２０：  ブラウザの共有変数リストを作成する。図６に示すように，ブラウザ共有変数リストには，現在のクッキーの値を格納する変数を用意する。
【００６９】
ステップＳ２１，Ｓ２２：  プロセスＢ１，Ｂ２それぞれについて，動作を規定する状態遷移グラフを作成する。
【００７０】
ブラウザの動作は，サーバへ正規のリクエストを送信してレスポンスを受け取る，攻撃者に誘導されてリクエストを送信してレスポンスを受け取る，短縮攻撃者用チャネルへ攻撃者の知らない情報を漏洩させる，のいずれか一つを行うもの，および短縮攻撃者用チャネルを通じて攻撃者からクッキーを受け取るものからなる。
【００７１】
従来技術では，上記に加えて，攻撃者のサイトをリクエストする動作，攻撃者のサイトからのレスポンスを受け取る動作，そのレスポンスに含まれるリンクやスクリプトなどによって本来のサイトへ誘導される動作，およびＸＳＳがある場合に本来のサイトから攻撃者スクリプトを含むレスポンスを受け取る動作などの多くの動作を追加する必要があったが，本発明ではそれらは不要である。
【００７２】
ステップＳ２２：  状態遷移グラフと変数リストから，プロセスＢ１，Ｂ２の定義を作成する。
【００７３】
ステップＳ３０：  攻撃者知識フラグ変数リストを作成する。図７に示すように，攻撃者知識フラグ変数リストでは，初期状態で攻撃者が知らない識別子に関する知識のフラグを変数として持つ。これにはセキュリティ仕様情報で秘密または未知とされた識別子，およびセッション識別子が該当する。
【００７４】
ステップＳ３１：  プロセスＩの動作を規定する状態遷移グラフを作成する。攻撃者の動作は，基本的には知識が許す範囲で有意なリクエストおよびレスポンスを自由に作って送信するか，あるいは任意のリクエストあるいはレスポンスを受け取ってそこに含まれる新たな情報を知識に加えるというものである。さらに，短縮攻撃手順を可能にするため短縮攻撃手順用チャネルを介して，知っているセッション識別子をブラウザへ強制したり，ブラウザが情報漏洩するメッセージを受け取って知識に加えたりもする。
【００７５】
従来技術では，攻撃者が独自のサーバとして振る舞いｗｅｂブラウザからリクエストを受ける動作，それに対してリンクやスクリプトを含む誘導リクエストやさらにＸＳＳを起こすためのスクリプトデータを含む誘導リクエストを送る動作を追加する必要があったが，本発明ではそれらは不要である。
【００７６】
ステップＳ３２：  状態遷移グラフと変数リストから，プロセスＩの定義を作成する。
【００７７】
ステップＳ４０：  ステップＳ１〜Ｓ３で生成した識別子リスト，ステップＳ４で生成したチャネル定義，ステップＳ１０〜Ｓ３２で生成した各プロセス定義を統合し，モデル２（モデルデータ）として出力する。
【００７８】
なお，図３の処理フローにおいては，サーバ，ブラウザ，攻撃者の各プロセス定義を生成する処理（ステップＳ１０〜Ｓ１２，Ｓ２０〜Ｓ２３，Ｓ３０〜Ｓ３２）は，特定の順序で説明しているが，必ずしもその順に処理されなくてもよい。
【００７９】
以下に，本発明の処理の具体例を説明する。
【００８０】
ここでは，入力例として，検査者は，図８に示すような画面遷移仕様を持つｗｅｂアプリケーションを検査対象とする。図８において，四角形はブラウザに返却されるページの種類を，楕円形はブラウザからサーバへ送られるリクエストの種類を表す。矢印はリクエスト送信やページ返却の起きるべき順序を表しており，太い矢印は設計者が期待するもっとも正常な処理の過程を表す。図８に示されていないが，セッションは，クッキーにセッションＩＤを格納することで実現され，セッション管理やその他のサーバでの振る舞いも決まっているものとする。
【００８１】
なお，楕円へ向かう矢印は設計者が期待する動作を意味し，実際にはクライアント（通常ユーザのブラウザや攻撃者）は好きなときに好きな順序でリクエストを送ることが可能であるが，そのような動作は図示されていない。
【００８２】
図８に示すｗｅｂアプリケーションに関してモデル生成装置１に入力される仕様情報は，例えば，図９〜図１１に示す情報のようになる。
【００８３】
このような仕様情報は，文書に書かれ，または，設計者の記憶にある前述のようなｗｅｂアプリケーションの仕様をモデル生成装置１への入力のために書き下したものであってもよいし，図８の画面遷移仕様などをグラフィカル・ユーザ・インタフェース（ＧＵＩ）を介して入力して，自動的あるいは半自動的に生成してもよいが，既存の技術によって可能であるので詳細は省略する。
【００８４】
図９のｗｅｂアプリケーションの仕様情報は，サービス識別子，レスポンス識別子，ユーザ識別子，ユーザ識別子とパスワードの組などの情報である。
【００８５】
図１０のｗｅｂアプリケーションの仕様情報は，サービス識別子ごとのサーバの振る舞いとして，条件，レスポンス識別子，動作の内容などが記述される。
【００８６】
図１１のセキュリティの仕様情報は，秘密情報，公知情報，ユーザおよびサーバが知りえるユーザ事前知識，攻撃者およびサーバが知り得る攻撃者事前知識などの情報である。
【００８７】
図９〜図１１に示す仕様情報は，画面遷移仕様やその他の情報・知識から得られたものである。
【００８８】
図１２は，モデル生成装置１に入力される環境情報の例である。セッション最大数は，モデル中に用意されるセッション識別子およびそれに対応するセッションデータや知識のための変数であり，モデル中でのセッション処理の分岐条件などを決めるために使われる。プロセスの多重度は，各種のプロセスをいくつモデルに生成するかを決める。リクエスト強制・誘導可能フラグおよびサーバへのスクリプト混入可能フラグは，攻撃者に許される攻撃テクニックの種類を規定する。ここで許可されない攻撃テクニックに対応する手順はモデルから削除される。
【００８９】
前記の仕様情報からモデル構築部１３が作成する処理途中の中間データの例は，図４〜図７に示すとおりである。
【００９０】
図４の識別子リストは，仕様情報から直接生成できる識別子，必要な数だけ展開したセッション識別子，短縮攻撃手順に使われる攻撃者用メッセージ識別子からなる。識別子リストにおいて，括弧で示された符号はその識別子を初期状態で知っているプロセスが限られることを意味する。（Ｓ）は，サーバのみが，（Ｂ，Ｓ）は，ブラウザとサーバのみがその識別子を知っていることを意味する。符号のない識別子は公開情報である。
【００９１】
なお，すでに述べたように，従来技術ではクッキー強制用メッセージ識別子ｆｏｒｃｅ＿ｃｏｏｋｉｅの代わりに攻撃者サイトとのリクエスト・レスポンスや，それによって誘導されて引き起こされるＸＳＳのためのリクエスト・レスポンスを表す多くのメッセージ識別子を追加する必要があった。しかし，本発明の手法ではそれらは不要である。
【００９２】
図５のサーバ共有変数リストは，各セッション識別子に対応して保存されるデータのためのセッションデータ変数，および次に発行すべきセッション識別子の番号を記録するセッション管理用変数からなる。図６のブラウザ共有変数リストは，現在のクッキーの値を記録する変数を持つ。図７の攻撃者知識フラグ変数リストは，識別子リストで攻撃者が知らないと印付けされた識別子に対応して用意される。
【００９３】
モデル構築部１３によって生成されるモデル２は，チャネルを通じて通信しあうプロセス群という構造を持ち，各プロセスの振る舞いは，状態遷移グラフで表現するものとする。ただし，全状態や遷移を漏れなく記載するには非常に多くの字数・紙面を必要として現実的でないことから，振る舞いの本質が理解できるように，状態や遷移をある程度まとめたものとする。この場合，プロセス内に適当な変数群が存在し，状態遷移グラフの表現上一つの状態であっても変数群の値に応じて実際の状態は異なる。
【００９４】
図１３に，図９〜図１１で示した仕様情報から生成されるモデル２のプロセス構造の例を示す。図１３で四角形はプロセス，楕円形はチャネルを表す。ブラウザとサーバのプロセスは複数あるが，それらは同じ種類や異なる種類のプロセスが複数並行して動作することを意味する。ただし，一部の変数はプロセス間で共有され，ブラウザならクッキーの格納，サーバならセッションＩＤの使用状態やセッションデータの格納などに使われる。
【００９５】
また，図１３の例では，攻撃者プロセスは一つだが，ブラウザやサーバと同様に複数設けてもよく，その場合は，攻撃者の知識などを収める共有変数が設けられることになる。これらプロセスの並行数はモデル検査の結果や状態数に影響を与えるので，モデル生成装置１が独自に決定するだけでなく，検査者の指定に応じて変えてもよいが，その方法は自明であるのでここでは省略する。
【００９６】
また，ブラウザと攻撃者の間で短縮攻撃手順を実現するために専用のチャネルｓｈが使用されるが，チャネルｓｈの代わりに，ブラウザと攻撃者が共有できる，例えば大域変数などを用いて実現してもよい。
【００９７】
プロセスとチャネルをつなぐ線は，そのチャネルを用いて通信できることを意味し，本例では，それらはすべて送受信両方ができるものとする。ただし，このとき各プロセスは基本的な制約に従って送受信を行う。制約とは，攻撃者以外の通常のプロセスは自分宛で，ＨＴＴＰＳで保護されている場合には正当なメッセージのみを受信でき，攻撃者プロセスはＨＴＴＰＳで保護されていないすべてのメッセージを受信できる，といったものである。
【００９８】
図１４〜図１７に，上記のモデル２内の各プロセスの状態遷移グラフの例を示す。これらの状態遷移グラフにおいて，黒い丸は開始状態，白い丸（角丸の四角）は状態を表し，これらをつなぐ矢印は，状態間の遷移を表す。ただし，白い菱形は複数の遷移をまとめて書くための分岐点・合流点を意味し，それ自体はプロセスの状態ではない。
【００９９】
遷移に付された矩形中の文字列は，「[条件]イベント//動作」という形式を持つが，「[条件]」，「イベント」，「//動作」の各部分は，該当するものがなければ省略される。イベントは，その遷移を起こすイベントの名前や種類，条件は，その遷移をするための（イベント以外の）条件，動作は，遷移時にプロセスが行う動作を意味し，条件が「[else]」なら同じ分岐から発する他の条件に合致しなかった場合のみその遷移を行い得ることを意味する。遷移は，非決定的でもよく，イベントや条件を満たす遷移が複数ある分岐の場合いずれか一つが任意に選ばれる。
【０１００】
イベントにおいて，「Ｃｈ  ！  ｍｓｇ」という表記は，チャネルｃｈにメッセージｍｓｇを送信することを，「ｃｈ  ？  ｍｓｇ」は，チャネルｃｈからメッセージｍｓｇを受信することを意味する。実際には，クッキー（Ｓｅｔ−ＣｏｏｋｉｅヘッダおよびＣｏｏｋｉｅヘッダに対応）も送受信できるが，説明の簡略のために省略し，サーバプロセスは新たに発行するセッションＩＤを，ブラウザプロセスは現在記憶しているクッキー値を，攻撃者プロセスは状態遷移グラフで選ばれたクッキー値を，それぞれ暗黙のうちに追加して送っているものとする。
【０１０１】
なお，本例では，プロセスの動作を規定する情報を状態遷移グラフとして述べるが，これはモデル検査用のモデルの表現形式としては一般的かつ根幹的なものであるためである。実際にモデルの表現に使われる言語や形式はモデル検査装置３の種類によって様々であるが，いずれの言語や形式でも状態遷移グラフから容易に変換することができる。
【０１０２】
図１４は，サーバプロセスＳの状態遷移グラフである。
【０１０３】
遷移に伴う動作の「ｎｅｗ＿ｓ」は，もし受信したリクエストに有効なセッションクッキーがなければ新たなセッションを準備してセッションＩＤをクッキーとして発行することを意味し，「ｐｕｔ(Ｎ)」は，受信したリクエストに有効なセッションクッキーがあれば対応するセッションデータとして値Ｎを記録することを意味する。
【０１０４】
セッションデータは，セッションＩＤごとに区別してサーバの共有変数に記録される。また，条件の「ｇｅｔ()＝Ｎ」は，受信したリクエストに有効なセッションクッキーがあり，なおかつ対応するセッションデータが値Ｎであれば成り立つという意味である。図１４の状態遷移グラフは，リクエストを受信して，そのサービス識別子やその他の条件に応じて図９〜図１１のように振る舞うことを表したものである。
【０１０５】
なお，従来技術であれば，特にＸＳＳが可能な場合には，スクリプトデータを含むリクエストを受け付けてスクリプトを含むレスポンスを返す遷移をｒｅｃｅｉｖｅｄ状態とｗａｉｔ状態の間に複数追加しなければならない。本発明によれば，ＸＳＳによって起こる効果はサーバプロセスを介さずにブラウザと攻撃者のプロセスの間で直接実現されるので，モデル構築部１３は，モデル作成時に，サーバプロセスにそれらの遷移を追加しない。
【０１０６】
図１５は，ブラウザプロセスＢ１の状態遷移グラフである。図１５の状態遷移グラフは，ブラウザがサーバへ有意なリクエストを送信する様子を表しているが，その順序は任意である。
【０１０７】
また，図１５の状態遷移グラフには，短縮攻撃手順のための遷移が追加されている。短縮攻撃手順のための遷移とは，攻撃者しか知らない有意なリクエストの送信を強制・誘導される遷移（ｎｗ  ！  ｌｏｇｉｎ＿ｐｗｘ），および，攻撃者が混入させたスクリプトによって現在のクッキー値やｐｒｉｖａｔｅページの情報が盗まれる遷移（ｓｈ  ！  ｌｅａｋ＿(クッキー)とｓｈ  ！  ｌｅａｋ＿ｐｒｉｖａｔｅ）である。
【０１０８】
従来技術では，これらの短縮攻撃手順のための遷移の代わりに，多くの遷移を追加する必要があった。すなわち，攻撃者のサイトへリクエストを送るための遷移，攻撃者サイトからレスポンスを受け取るための遷移，さらに前記レスポンスにより誘導されたリクエストを送るための遷移，さらに前記リクエストがＸＳＳを起こすものだった場合のスクリプトを含むレスポンスを受け取る遷移，さらに前記レスポンスにより攻撃者サイトや本来のサーバへリクエストを送る遷移などである。これらのうち，リクエストする遷移はｗａｉｔ＿ａｃｔｉｏｎ状態からｗａｉｔ＿ｒｅｓｐｏｎｓｅ状態へ，レスポンスする遷移はｗａｉｔ＿ｒｅｓｐｏｎｓｅ状態からｗａｉｔ＿ａｃｔｉｏｎ状態へ，それぞれの間の遷移として追加され，直前に受け取ったレスポンスに応じた条件も設ける必要がある。受け取ったレスポンス種類によってもっと細かく途中状態を経て分岐しても構わないが，少なくとも前述のような遷移が必要となる。
【０１０９】
これに対し，本発明のモデル構築部１３は，攻撃テクニックを，リクエスト・レスポンスを介さない直接的な効果として実現できるモデルを作成する。そのため，本発明によるモデルは，上記のような多くの遷移を必要とせず，より単純な構成の状態遷移グラフとなる。
【０１１０】
図１６は，ブラウザプロセスＢ２の状態遷移グラフである。図１６の状態遷移グラフは，攻撃者からのクッキー強制を受け付けるための動作を意味し，ｆｏｒｃｅ＿ｃｏｏｋｉｅメッセージによって与えられたクッキーの値を受け入れて該当する変数に記録する。このプロセス自体が，短縮攻撃手順を実現するためのものである。
【０１１１】
従来技術では，クッキー強制は本来のサーバとの通信に攻撃者が介在したものとして実現される。そのため，プロセスＢ２は不要であるが，代わりに，プロセスＢ２の数だけ余計にプロセスＢ１が必要であった。本発明のモデル構築部１３は，複雑なプロセスＢ１のいくつかを，より単純なプロセスＢ２で置き換えたモデルを作成する。
【０１１２】
図１７は，攻撃者プロセスIの状態遷移グラフである。図１７の状態遷移のグラフは，攻撃者が知る知識の範囲内で任意のリクエストやレスポンスを送信する動作，任意のリクエストやレスポンスを受信してそれが含む情報を知識に加える動作に加え，短縮攻撃手順を実現する動作を意味する。
【０１１３】
短縮攻撃手順を実現するのは，ｗｅｂブラウザに攻撃者が知るクッキー値を強制する動作，ｗｅｂブラウザからの漏洩リクエストを受け取り，記憶へ追加する動作である。
【０１１４】
従来技術では，攻撃者プロセスＩには自身がサーバとなってｗｅｂブラウザのプロセスからリクエストを受け取ってレスポンスを返す必要があり，そうしたリクエスト・レスポンスには本来のサーバへの誘導も多数含まれるため，ｗａｉｔ状態からｗａｉｔ状態へ戻る遷移を，かなり多く追加する必要があった。本発明のモデル構築部１３は，それらの遷移を持たないモデルを作成する。
【０１１５】
モデル出力部１５が出力するモデル２の論理的構造は，以上のような状態遷移グラフで表すことができる。
【０１１６】
モデル検査装置３は，このようなモデル２を用いてモデル検査を行い，例えば，本来特定のユーザＵにしか知られるべきではない情報ｐｒｉｖａｔｅを攻撃者Ｘが知った状態（ｋｎｏｗ＿ｐｒｉｖａｔｅがｔｒｕｅとなる状態）を探索することによって，セキュリティが破られるかどうかを検査できる。
【０１１７】
なお，環境情報で，各攻撃テクニックが可能でないと設定されたなら，モデル構築部１３は，生成するモデルから，該当する遷移が起きる条件が満たされないか，あるいは該当する遷移を作成しなくてもよい。前述の状態遷移グラフでは，「スクリプト混入可能」や「リクエスト誘導可能」といった条件を持つ遷移がそれにあたる。
【０１１８】
以上，本発明をその実施の形態により説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【０１１９】
本発明の形態および実施例の特徴を列記すると以下のとおりである。
【０１２０】
（付記１）
コンピュータに，
ｗｅｂアプリケーションのブラウザ，サーバ，および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち，前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について，当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成処理を
実行させるための
セキュリティ検査用モデル生成プログラム。
【０１２１】
（付記２）
前記短縮攻撃手順の対象となる攻撃手順は，一つの攻撃手順の後に，さらにレスポンスの偽造あるいは改ざんを生じさせるクッキー強制に関する攻撃手順であること
を特徴とする
前記付記１に記載のセキュリティ検査用モデル生成プログラム。
【０１２２】
（付記３）
前記短縮攻撃手順の対象となる攻撃手順は，前記攻撃者によって作成されたスクリプトを，前記サーバのｗｅｂページに混入させることによって，所定の情報の盗み出しを生じさせる攻撃手順であること
を特徴とする
前記付記１に記載のセキュリティ検査用モデル生成プログラム。
【０１２３】
（付記４）
前記コンピュータに，
ユーザによって入力される，前記ｗｅｂアプリケーションの仕様情報，セキュリティ仕様情報，ならびに前記ｗｅｂアプリケーションがおかれる環境情報であって前記攻撃者が実行する攻撃の定義を含む情報を取得する入力設定情報受付処理と，
前記短縮攻撃手順作成処理において，前記仕様情報，前記セキュリティ仕様情報，および前記環境情報をもとに前記短縮攻撃手順を変更する処理とを，
実行させるための
前記付記１〜前記付記３のいずれか一項に記載のセキュリティ検査用モデル生成プログラム。
【０１２４】
（付記５）
ｗｅｂアプリケーションのブラウザ，サーバ，および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち，前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について，当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部を備える
セキュリティ検査用モデル生成装置。
【０１２５】
（付記６）
ｗｅｂアプリケーションのセキュリティ検査用モデルを生成する装置であって，
ｗｅｂアプリケーションの仕様情報，セキュリティ仕様情報，前記ｗｅｂアプリケーションがおかれる環境情報であって前記攻撃者が実行する攻撃の定義を含む情報を取得する入力設定情報受付部と，
前記仕様情報，前記セキュリティ仕様情報，および前記環境情報をもとに，前記攻撃の結果に対応する攻撃者用メッセージ識別子を作成する識別子作成部と，
前記ｗｅｂアプリケーションのブラウザ，サーバ，および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち，前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について，当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部と，
前記短縮攻撃手順のチャネル定義を設定するチャネル定義作成部と，
前記攻撃者用メッセージ識別子，前記短縮攻撃手順のチャネル定義を含むセキュリティ検査用モデルを出力するモデル出力部とを
備えることを特徴とするセキュリティ検査用モデル生成装置。
【０１２６】
（付記７）
ｗｅｂアプリケーションのブラウザ，サーバ，および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち，前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について，当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を含むセキュリティ検査用モデルを実行する実行部と，
前記ｗｅｂアプリケーションの実行時の手順が所定結果であるかを判定する検査部とを備える
セキュリティ検査用モデル検査装置。
【図面の簡単な説明】
【０１２７】
【図１】本発明の最良の実施の形態における構成例を示す図である。
【図２】本発明を実施するシステムの構成例を示す図である。
【図３】モデル構築部の処理の流れを示す図である。
【図４】識別子リストの例を示す図である。
【図５】サーバ共有変数リストの例を示す図である。
【図６】ブラウザ共有変数リストの例を示す図である。
【図７】攻撃者知識フラグ変数リストの例を示す図である。
【図８】ｗｅｂアプリケーションの画面遷移仕様の例を示す図である。
【図９】ｗｅｂアプリケーションの仕様情報の例を示す図である。
【図１０】ｗｅｂアプリケーションの仕様情報（サーバ動作記述）の例を示す図である。
【図１１】セキュリティの仕様情報の例を示す図である。
【図１２】環境情報の例の例を示す図である。
【図１３】モデルのプロセス構造の例を示す図である。
【図１４】サーバプロセスＳの状態遷移グラフの例を示す図である。
【図１５】ブラウザプロセスＢ１の状態遷移グラフの例を示す図である。
【図１６】ブラウザプロセスＢ２の状態遷移グラフの例を示す図である。
【図１７】攻撃者プロセスIの状態遷移グラフの例を示す図である。
【符号の説明】
【０１２８】
１  モデル生成装置
１１  情報入力受付部
１３  モデル構築部
１５  モデル出力部
２  モデル（モデルデータ）
３  モデル検査装置
４  検査結果
１０  指示情報
【図１】
2008262311.tif 000003
【図２】
2008262311.tif 000004
【図３】
2008262311.tif 000005
【図４】
2008262311.tif 000006
【図５】
2008262311.tif 000007
【図６】
2008262311.tif 000008
【図７】
2008262311.tif 000009
【図８】
2008262311.tif 000010
【図９】
2008262311.tif 000011
【図１０】
2008262311.tif 000012
【図１１】
2008262311.tif 000013
【図１２】
2008262311.tif 000014
【図１３】
2008262311.tif 000015
【図１４】
2008262311.tif 000016
【図１５】
2008262311.tif 000017
【図１６】
2008262311.tif 000018
【図１７】
2008262311.tif 000019