JP2008262311A - セキュリティ検査用モデル生成プログラム,装置,およびセキュリティ検査用モデル検査装置 - Google Patents

セキュリティ検査用モデル生成プログラム,装置,およびセキュリティ検査用モデル検査装置 Download PDF

Info

Publication number
JP2008262311A
JP2008262311A JP2007103371A JP2007103371A JP2008262311A JP 2008262311 A JP2008262311 A JP 2008262311A JP 2007103371 A JP2007103371 A JP 2007103371A JP 2007103371 A JP2007103371 A JP 2007103371A JP 2008262311 A JP2008262311 A JP 2008262311A
Authority
JP
Japan
Prior art keywords
attack
attacker
model
security
procedure
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2007103371A
Other languages
English (en)
Other versions
JP5082555B2 (ja
Inventor
Ikuya Morikawa
郁也 森川
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/ja
Publication of JP2008262311A publication Critical patent/JP2008262311A/ja
Application granted granted Critical
Publication of JP5082555B2 publication Critical patent/JP5082555B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 webアプリケーションのセキュリティ検査に特化したモデルを作成する。
【解決手段】 モデル生成装置1の情報入力受付部11は,検査対象のwebアプリケーションの仕様情報,セキュリティ仕様情報,環境情報など指示情報10の入力を受け付け,モデル構築部13は,指示情報10をもとに,複数のリクエスト・レスポンスで構成される手順のうち,攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を実現するモデル2を構築し,モデル出力部15は,モデル2を出力する。モデル検査装置3は,モデル2によるモデル検査を行い,検査結果4を出力する。
【選択図】 図1

Description

本発明は,モデル検査によってwebアプリケーションのセキュリティを検査する技術に関する。
モデル検査はシミュレーションの一種であり,対象システムをモデルで表現し,そのモデルの振る舞いをモデル検査装置によって再現することによって,モデルの調べたい性質,所定の条件に対する反応を検査する手法である。モデル検査は,人間が網羅的に調べることが難しいような並行・分散システムの検査に威力を発揮する。
近年,World−Wide web (web)の技術に基づくクライアント・サーバ・アプリケーション(webアプリケーション)が広く利用されている。webアプリケーションは,HTTP(Hypertext Transfer Protocol)プロトコルによりネットワーク上で通信を行うアプリケーションであって,ユーザに提示される画面内容(ページ)は主にHTML(Hypertext Markup Language)形式で記述される。サーバは,webサイトとも呼ばれ,クライアントにはwebブラウザが主に用いられる。
かつてのwebは,クライアントからみて,単純に発信された情報を取得するのが主であった。しかし,最近では掲示板やウェブログ(ブログ)といった情報を掲載する処理や,ネットワークに接続された機器の管理,商品やサービスの購入といった商取引など,多くのアプリケーションがweb技術で実現されており,社会にも浸透している。代表的なwebブラウザとして,Microsoft社のInternet ExplorerやMozilla FoundationのFirefoxなどがある。
このような,高度なwebアプリケーションの多くでは,特定のユーザのみに情報を提供したり操作を許したりすることが求められる。このため,SSL(Secure Sockets Layer)あるいはTLS(Transport Layer Security)による保護を行うHTTPS(Hypertext Transfer Protocol over SSL)プロトコルや,HTTP認証といったセキュリティ機能が用意されるようになった。
しかし,HTTPプロトコルはステートレスであり,プロトコル自体はリクエストとレスポンスとの複数の組の間の関連付けを行う機能を持たないため,クッキー(Cookie)と呼ばれる機構が設けられている。クッキーは,サーバが指定したデータをブラウザが暗黙的に保持しておき,リクエストのたびにその値を付けて送信するという技術である。これにより,サーバは同じブラウザとやり取りしたリクエストやレスポンスの組を識別することができる。このような一連のリクエストやレスポンスの組は,しばしばセッションと呼ばれる。
一方で,複雑な処理を実現し,ユーザに高度な外観や機能を提供するために,webブラウザには,ブラウザ自身の振る舞いをサーバ側の指定で制御できる機能が設けられている。
このような機能の一つであるクライアント側スクリプトは,HTMLページ内またはページから参照されるファイル内に記述できる簡易なプログラム言語であって,webブラウザの振る舞いをある程度制御することができる。クライアント側スクリプトの代表格として,JavaScriptがあり,他にその亜種や類似するものとしてECMAScript,JScript,VBScriptなどがある。ここでは,それらすべてを代表して単にスクリプトと呼称する。
またスクリプトを使わないHTTPとHTMLだけでも,HTMLページ内への画像やその他のオブジェクトの埋め込み,HTTPによるリダイレクト,HTMLのMETAタグによる自動更新などの機能がある。これらの機能も,webブラウザの振る舞いをある程度制御することができる。
このようなwebブラウザ制御機能は,webアプリケーション提供者にとって都合が良い。一方で,webアプリケーションのセキュリティ機能をかいくぐってセキュリティ侵害を起こそうとする攻撃者にとっても好都合である。つまり,攻撃者は,自身に都合のよいHTMLページを任意のサイトに用意し,ユーザにそのページを開かせることによって,webブラウザを操作して攻撃を行うことが可能となる。
また,このようなブラウザ誘導をさらに利用して,リクエストの中にスクリプトデータを混在させておき,それを本来のサーバがレスポンスの一部としてクライアントへ返してしまうことによって,webブラウザ上で本来のサーバのページと同じ領域で攻撃者の作ったスクリプトが動作してしまうクロスサイト・スクリプティング(cross−site scripting,以下XSSと略記する)という攻撃テクニックも知られている。
ところで,任意のシステムに対してセキュリティやその他の性質を確認するための手法として,設計や実装のレビュー,動作テスト,シミュレーションなどの手法が一般的に用いられる。また,最近注目されているのがモデル検査と呼ばれる手法である。
モデル検査は,ある種のシミュレーションであり,一般には,対象のシステムを調べたい性質だけに着目して抽象化されたモデルで表現し,このモデルが実行される様子をモデル検査器と呼ばれる特殊なソフトウェアで再現する。この際,モデル検査器は,入力値や条件分岐によって生じる複数の実行経路を網羅的に探索し,対象システムが調べたい性質に反する状態に至るかどうかを調べ,もし違反状態になったら,その経路を報告する。もしくは,最後まで違反状態が見つからなければ,対象システムは調べたい性質を満たすと報告する。
モデル検査は,人間が網羅的に調べることが難しいような並行・分散システムの検査に威力を発揮する。しかし,システムが複雑になると探索すべき状態数が指数的に増大する,いわゆる状態爆発の課題を有する。モデル検査では,探索の効率化や無限ループ回避のために,探索済み状態を記録しておき効率良く参照する必要があるため,状態数が増えると探索時間が増加するだけでなく,物理メモリ量が不足して現実的な時間内で探索しきれなくなるという問題がしばしば生じる。
モデル検査手法において,具体的なモデルの表現方法はモデル検査器に依存するが,モデルはシステムを表現したものであり,実質的にソフトウェアプログラムの一種といえる。多くの場合,有限状態オートマトンの仕様,すなわち状態遷移図や制御フロー図,または命令型プログラムの一種として表現することができる。また,複数プロセスから構成されるシステムの表現やモデル検査の効率化などを実現するための特徴的な要素(例えば,通信チャネル定義,非決定的分岐など)が含まれる。
webセキュリティをモデル検査手法によって検査する場合には,webアプリケーション特有の前提,webブラウザの特殊性などをうまく取り入れたモデルを用意する必要がある。また,セキュリティ検査では,可能であるならばどのようなことでも試行するという「攻撃者」をモデルに含める必要がある。これらを踏まえた上で,効率良く検査できるモデルを用意しなければならない。
webアプリケーションを対象としたモデル検査は,研究発表などでいくつか扱われている。しかし,webブラウザなどの特徴や攻撃者の振る舞いをも考慮したものは数少ない。
Grossらは,非特許文献1で,ブラウザの汎用的なモデルを提案している。このモデルはHTTPSによる通信路の保護やリダイレクトといった特徴を持ち,攻撃者がネットワーク上でメッセージの盗聴・改ざんを行ったり,ブラウザのキャッシュを覗き見たりする攻撃の可能性も考慮に入れている。
また,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)
非特許文献1では,セッションIDの保持によく使われるクッキーは,モデルに含まれていないが,クッキーを含むモデルを作成することはさほど難しくはないと考えられる。しかし,Grossらのモデルは,推論によってセキュリティを分析するためのものであり,効率的なモデル検査に適しているとは限らない。また,非特許文献2のモデルを応用してwebシステムのセキュリティをモデル検査することは可能であろう。
しかし,非特許文献1および非特許文献2の技術によるモデルを,webシステムにおけるセキュリティ侵害に特化したモデル検査に適用すれば,モデル検査においては容易に状態爆発を起こし,非常に多くの時間やメモリを要すると予想される。
具体的には,webアプリケーションに対する攻撃,特にセッションやクッキーの弱点をつく攻撃は,部分的な攻撃テクニックの組み合わせで実現されるものが多い。個々の攻撃テクニックだけでも,数回のリクエスト・レスポンスのやりとりが必要となる。そのため,全体の攻撃手順としては,さらに増大してしまう。しかも,モデル検査では,結果的に攻撃が成功しない手順も探索の対象とするうえ,インターリーブと呼ばれる,メッセージのやりとりなどのイベントの発生順序の様々な組み合わせも考慮しなければならない。したがって,攻撃テクニックの手順の多さが状態数の増大に指数的に影響を与えてしまう。
具体的に例を挙げると,webアプリケーションの一般的な使用環境において,ユーザが安全なサイトにしかアクセスしないという前提を置くことは難しい。「ブラウザが攻撃者のwebサイトにアクセスしてしまい,そこに指定されたリダイレクトやスクリプトに操られてしまう」という事象は,何時どのようなタイミングでも発生すると考えられる。
そのため,モデル上では,ブラウザはいつでも攻撃者のサイトへアクセスし,そのレスポンスによって任意のサイトへアクセスしうるようにすべきである。この攻撃テクニックは,少なくとも最初のリクエストとレスポンス,その後の誘導されたレスポンスの3手順を必要とし,実際には,後の2つのレスポンスの中身は多岐にわたる。そのため,可能な3手順の組み合わせは,さらに多数となることになる。実際に,組み合わせ数は,検査対象のwebアプリケーションに対して有効なメッセージの種類に依存している。
別の具体例を挙げると,前記のブラウザ誘導のテクニックを利用して,攻撃者は,任意のサイト向けのクッキーをブラウザに強制・上書きすることができる。この方法によって,対象のwebサイトへリクエスト(HTTPSで保護されていないもの)を送信させ,攻撃者がそれを通信路上で捉えて,Set−Cookieヘッダを含むレスポンスを偽造して返信することができる。この攻撃には,ブラウザ誘導の部分も含めて4手順を必要とする。
このような状態数増大の問題に対して,従来,大きく分けて二種類の対策がなされてきた。一つは,モデル検査処理の細部に関する技術であり,いかに効率良く状態空間を探索するか,一般にどのような場合に探索を省略できるかといった点を工夫する。この対策は,対象システムの性質によらず利用でき,モデル検査器の機能として実現されることが多い。例えば,BDD(Binary Decision Diagram)によるアルゴリズムの改善,Partial Order Reductionなどが有名である。
もう一つは,対象システムをモデル化する際の抽象度のレベルに関する技術であり,対象システムの特徴や検査する性質に依存した効率化を図り,例えば検査結果に影響を与えない範囲で全体の規模を小さくしたり,探索経路を省略したりする。この対策は,対象システム各々に応じて対応しなければならない。
本発明は,後者のアプローチに属するものであり,webアプリケーションのセキュリティ検査に特化したモデルであって,状態数の爆発的な増加を回避できるものを作成し,このモデルを用いて検査することを目的とするものである。
本発明は,webアプリケーションのセキュリティ検査に特化したモデルの作成を図るべく,対象のwebアプリケーションを含むwebシステムを表現するモデルで実行される状態数を削減するため,モデルに短縮された攻撃手順を設ける。モデル中の動作手順は,一般的に,命令あるいは状態遷移で表されるので,それらをまとめてステップと呼ぶと仮定すると,本発明は,webアプリケーションに対する特定の攻撃テクニックを,短縮攻撃手順として設定する。このような攻撃テクニックの例として,リクエスト送信強制または誘導,クッキー強制,XSSによるページ内データやクッキーの盗み出しなどが挙げられる。
短縮攻撃手順は,ある攻撃テクニックの手順を1ステップずつ追って実現するのではなく,攻撃の結果として起きる事象を一つあるいは少数のステップで実現したものである。このとき,短縮攻撃手順は,本来の攻撃手順を用いた検査結果と異ならないように設定される。
具体的には,ユーザのブラウザが任意のタイミングで攻撃者のサイトへアクセスし,その後攻撃者によるレスポンスで操られてリクエストを送る,というモデル上の動作を省略し,その結果として発生することだけをモデルに組み込む。このため,モデル上で,ブラウザがもつHTTPまたはHTTPSによる通信機能の一部である,攻撃者サイトへアクセスする機能を削除する。その代わりに,攻撃者がリクエスト送信強制を依頼しブラウザがそれを実行する機能,さらに攻撃者がクッキーの強制を依頼しブラウザがそれを受け入れる機能などを追加する。これらの機能のモデル上での具体的な表現方法は,モデルの表現形式(言語)などに依存する。
本発明は,コンピュータに,webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成処理を実行させるためのプログラムである。
また,本発明において,前記短縮攻撃手順の対象となる攻撃手順は,一つの攻撃手順の後に,さらにレスポンスの偽造あるいは改ざんを生じさせるクッキー強制に関する攻撃手順であってもよい。
もしくは,前記短縮攻撃手順の対象となる攻撃手順は,前記攻撃者によって作成されたスクリプトを,本来のサーバのwebページに混入させることによって,所定の情報の盗み出しを生じさせる攻撃手順であってもよい。
さらに,本発明は,前記コンピュータに,ユーザによって入力される,検査対象となるwebアプリケーションの仕様情報,セキュリティ仕様情報,ならびに前記攻撃者が実行する攻撃の定義を含むwebアプリケーションがおかれる環境情報を取得する入力設定情報受付処理と,前記短縮攻撃手順作成処理において,前記仕様情報,前記セキュリティ仕様情報,および前記環境情報をもとに前記短縮攻撃手順を変更する処理とを,実行させるためのプログラムであってもよい。
本発明によれば,攻撃の結果として起きる事象を一つあるいは少数のステップで実現した短縮攻撃手順を実現するモデル(セキュリティ検査用モデル)を生成することができるため,このモデルを使用するモデル検査装置による探索処理では短い手順でセキュリティが侵害された状態に到達することができ,セキュリティ上の問題を早期に発見できる可能性が高まる。
また,作成するモデルから,攻撃者のサイトへブラウザがアクセスし,そのレスポンスで誘導される動作や,XSSに関するリクエスト・レスポンスのやりとりの動作を表すステップを除去できるため,さらにモデル全体としての状態数を減らすことができ,問題の早期発見にさらに有効である。
なお,本発明にかかるプログラムは,コンピュータが読み取り可能な可搬媒体メモリ,半導体メモリ,ハードディスクなどの適当な記録媒体に格納することができ,これらの記録媒体に記録して提供され,または,通信インタフェースを介して種々の通信網を利用した送受信により提供される。
本発明によれば,webアプリケーションのセキュリティを検査する際に,短縮攻撃手順を実現するモデルを作成することができる。このモデルでは,セキュリティ上の欠陥の有無という本来調べたい検査結果には影響を与えることなく,従来技術であれば存在していた多くの遷移が省略され,その代わりに短縮攻撃手順を表現した遷移が追加される。
本発明によって省略された遷移には,例えば,ブラウザが攻撃者のサイトへリクエストを送る遷移,このリクエストに対する攻撃者による受信・レスポンス送信,さらに,この送信を受け取ったブラウザが誘導されてリクエストを送る遷移,さらに,本来のサーバがXSSによりスクリプトを含むレスポンスを返す遷移,このレスポンスを受け取ったブラウザの振る舞いの遷移などが含まれ,その数は非常に多い。
したがって,本発明により作成されたモデルに対してモデル検査を行うと,攻撃が成功するまでの手順が短縮され,また,各状態から生じる遷移の種類も少なくなり,モデル全体の状態数が削減される。よって,欠陥がより早く発見できる可能性が高まり,全状態を探索し終えるまでの処理時間が短縮できる。
また,モデル検査においては,状態数が増大すると物理メモリ量の制限に抵触することが多い。そのため,状態数が増大してしまうと探索終了前に失敗することがあるが,これを回避することもできる。
このように,モデルにおける全体の状態数は,手順数(深さ)や手順の種類数(各状態で選べる遷移の幅)に対して概ね指数関数的な正の相関があるので,深さや幅を削減することの効果は非常に大きい。
図1に,本発明の最良の実施の形態における構成例を示す。モデル生成装置1は,一般的には計算機システム上で動作するソフトウェアとして実施される。
モデル生成装置1は,モデル検査実施者(以下,検査者と呼ぶ)の指示に従って,対象webアプリケーションの仕様に基づくモデル(モデルデータ)2を生成し出力する。さらに,モデル生成装置1は,検査者の指示により,対象webアプリケーションのおかれる環境や前提,調べたい性質に合わせて必要な短縮攻撃手順のみを含むモデル2を生成することもできる。
モデル生成装置1は,情報入力受付部11,モデル構築部13,およびモデル出力部15を備える。
情報入力受付部11は,検査者が入力する指示情報10を受け付ける処理手段である。
指示情報10には,webサーバがリクエストを受け付けるサービス識別子(URLを抽象化した情報)の集合,webサーバがブラウザに返却するレスポンス識別子の集合,サービス識別子ごとのwebサーバの振る舞いの記述,レスポンス識別子ごとのwebブラウザの振る舞いの記述などのwebアプリケーションの仕様情報,守らなければならないレスポンス識別子,攻撃者の事前知識などのセキュリティ仕様情報,対象のwebアプリケーションがおかれる環境情報などが含まれる。
モデル構築部13は,指示情報10をもとにモデル2を作成する処理手段である。モデル構築部13の詳細な処理については後述する。
モデル出力部15は,モデル構築部13が作成したモデル2となるモデルデータを出力する処理手段である。
モデル2は,ネットワークを介して相互に通信する,対象のwebアプリケーションを実現するwebブラウザ,本来のwebサーバ,および攻撃者で構成されるwebシステムの振る舞いを表現し,ある攻撃テクニックの手順をそのまま実現するのではなく,攻撃の結果として起きる事象を一つまたは少数ステップで実現した短縮攻撃手順を実現できる機能(短縮攻撃手順実現機能)を含む。
なお,モデル生成装置1から出力されたモデル2は,モデル検査装置3に入力されて実行される。モデル検査装置3は,モデル2の振る舞いについて所定の検査を行い,その検査結果4を出力する。
本実施の形態において,モデル生成装置1は,図2に示すように,汎用的な計算機とオペレーティングシステム(OS)上で動作するアプリケーションプログラムとして実施する。
計算機101は演算装置と揮発性の物理メモリ102,不揮発性のディスク103など記憶装置,キーボード,マウス,ビデオディスプレイなどの入出力装置104,ネットワークNなどとのネットワーク通信装置105などを備えるものとする。
計算機101上ではオペレーティングシステム(OS)と各種アプリケーションプログラムが動作し,OSは前記の各種装置の機能を,プロセスの実行制御(スケジューリング),ヒープなどの短期記憶,ファイルやレジストリなどの長期記憶,テキストベースやグラフィックベースのユーザインタフェース(UI)などのシステムコールや通信APIとしてアプリケーションプログラムに提供する。
ただし,本発明の実施形態は,上記の構成に限定されるものではなく,専用のハードウェアなどによって実施することもできる。
図3は,モデル構築部13の処理の流れを示す図である。
ステップS1: モデル構築部13は,指示情報10の仕様情報から,自明な識別子を取り出し,識別子リストを作成する。このとき,セキュリティ仕様情報に基づき各識別子に,初期状態において,ブラウザ,サーバ,攻撃者のだれがその識別子を知っているかを表す符号を付ける。
ステップS2: 次に,事前に決められた個数分だけセッション識別子を追加する。
ステップS3: さらに,環境情報で許可された攻撃テクニックに応じて必要な攻撃者用メッセージ識別子を追加する。
図4に示すような識別子リストの場合に,攻撃者用メッセージ識別子は,下8つである。クッキー設定を強制するための「force_cookie」と攻撃者にとっての未知情報のそれぞれについて用意された「leak_」で始まる7つの漏洩用メッセージ識別子からなる。
本発明または従来手法のいずれの場合でも,漏洩用メッセージ識別子は同じように必要である。しかし,従来手法の場合は,「force_cookie」を用いない代わりに,さらに多くのメッセージ識別子が必要であった。すなわち,攻撃者が用意したページへのリクエストを表す少なくとも一つのメッセージ識別子,本来のサーバの各ページへの誘導や「Set−Cookie」のためのレスポンスを表す複数のメッセージ識別子,さらに,XSSを考慮する場合はスクリプトデータを含むリクエストとそれに対するレスポンスをそれぞれ表す複数のメッセージ識別子が必要であった。本発明では,「force_cookie」を用いるが,従来手法において必要であった,このような多くのメッセージ識別子が不要である。
ステップS4: 次に,異なる種類のプロセス間で共有されるチャネル定義を,共有チャネルおよび短縮攻撃手順用チャネルのそれぞれについて,前記の識別子リストで必要なメッセージ識別子が送受信できるように定義する。ここで,必要ならばHTTPSによる保護のフラグも送受信できるようにする。
短縮攻撃手順用チャネル定義は,短縮手順のない従来のモデルには不必要であり,本発明の目的達成のために追加される。
ステップS10: サーバの共有変数リストを作成する。図5に示すように,サーバ共有変数リストには,セッションデータを格納する変数とセッション管理用の変数が必要である。
ステップS11: 仕様情報のサーバの動作の記述から,プロセスSの動作を規定する情報(例えば,状態遷移グラフ)を作成する。webサーバの動作は,共有チャネルを介したリクエストを受信し,そこで指定されたサービス識別子およびその他の条件に応じて,仕様情報で与えられたとおりのセッション管理とレスポンス返信を行うように決定される。従来技術では,特にXSSを考慮する場合にはスクリプトデータを含むリクエストの受信,および,そのリクエストに対するレスポンスの送信を意味する動作を追加する必要があったが,本発明ではそれらは不要である。
ステップS12: 状態遷移グラフと変数リストから,プロセスSの定義を作成する。
ステップS20: ブラウザの共有変数リストを作成する。図6に示すように,ブラウザ共有変数リストには,現在のクッキーの値を格納する変数を用意する。
ステップS21,S22: プロセスB1,B2それぞれについて,動作を規定する状態遷移グラフを作成する。
ブラウザの動作は,サーバへ正規のリクエストを送信してレスポンスを受け取る,攻撃者に誘導されてリクエストを送信してレスポンスを受け取る,短縮攻撃者用チャネルへ攻撃者の知らない情報を漏洩させる,のいずれか一つを行うもの,および短縮攻撃者用チャネルを通じて攻撃者からクッキーを受け取るものからなる。
従来技術では,上記に加えて,攻撃者のサイトをリクエストする動作,攻撃者のサイトからのレスポンスを受け取る動作,そのレスポンスに含まれるリンクやスクリプトなどによって本来のサイトへ誘導される動作,およびXSSがある場合に本来のサイトから攻撃者スクリプトを含むレスポンスを受け取る動作などの多くの動作を追加する必要があったが,本発明ではそれらは不要である。
ステップS22: 状態遷移グラフと変数リストから,プロセスB1,B2の定義を作成する。
ステップS30: 攻撃者知識フラグ変数リストを作成する。図7に示すように,攻撃者知識フラグ変数リストでは,初期状態で攻撃者が知らない識別子に関する知識のフラグを変数として持つ。これにはセキュリティ仕様情報で秘密または未知とされた識別子,およびセッション識別子が該当する。
ステップS31: プロセスIの動作を規定する状態遷移グラフを作成する。攻撃者の動作は,基本的には知識が許す範囲で有意なリクエストおよびレスポンスを自由に作って送信するか,あるいは任意のリクエストあるいはレスポンスを受け取ってそこに含まれる新たな情報を知識に加えるというものである。さらに,短縮攻撃手順を可能にするため短縮攻撃手順用チャネルを介して,知っているセッション識別子をブラウザへ強制したり,ブラウザが情報漏洩するメッセージを受け取って知識に加えたりもする。
従来技術では,攻撃者が独自のサーバとして振る舞いwebブラウザからリクエストを受ける動作,それに対してリンクやスクリプトを含む誘導リクエストやさらにXSSを起こすためのスクリプトデータを含む誘導リクエストを送る動作を追加する必要があったが,本発明ではそれらは不要である。
ステップS32: 状態遷移グラフと変数リストから,プロセスIの定義を作成する。
ステップS40: ステップS1〜S3で生成した識別子リスト,ステップS4で生成したチャネル定義,ステップS10〜S32で生成した各プロセス定義を統合し,モデル2(モデルデータ)として出力する。
なお,図3の処理フローにおいては,サーバ,ブラウザ,攻撃者の各プロセス定義を生成する処理(ステップS10〜S12,S20〜S23,S30〜S32)は,特定の順序で説明しているが,必ずしもその順に処理されなくてもよい。
以下に,本発明の処理の具体例を説明する。
ここでは,入力例として,検査者は,図8に示すような画面遷移仕様を持つwebアプリケーションを検査対象とする。図8において,四角形はブラウザに返却されるページの種類を,楕円形はブラウザからサーバへ送られるリクエストの種類を表す。矢印はリクエスト送信やページ返却の起きるべき順序を表しており,太い矢印は設計者が期待するもっとも正常な処理の過程を表す。図8に示されていないが,セッションは,クッキーにセッションIDを格納することで実現され,セッション管理やその他のサーバでの振る舞いも決まっているものとする。
なお,楕円へ向かう矢印は設計者が期待する動作を意味し,実際にはクライアント(通常ユーザのブラウザや攻撃者)は好きなときに好きな順序でリクエストを送ることが可能であるが,そのような動作は図示されていない。
図8に示すwebアプリケーションに関してモデル生成装置1に入力される仕様情報は,例えば,図9〜図11に示す情報のようになる。
このような仕様情報は,文書に書かれ,または,設計者の記憶にある前述のようなwebアプリケーションの仕様をモデル生成装置1への入力のために書き下したものであってもよいし,図8の画面遷移仕様などをグラフィカル・ユーザ・インタフェース(GUI)を介して入力して,自動的あるいは半自動的に生成してもよいが,既存の技術によって可能であるので詳細は省略する。
図9のwebアプリケーションの仕様情報は,サービス識別子,レスポンス識別子,ユーザ識別子,ユーザ識別子とパスワードの組などの情報である。
図10のwebアプリケーションの仕様情報は,サービス識別子ごとのサーバの振る舞いとして,条件,レスポンス識別子,動作の内容などが記述される。
図11のセキュリティの仕様情報は,秘密情報,公知情報,ユーザおよびサーバが知りえるユーザ事前知識,攻撃者およびサーバが知り得る攻撃者事前知識などの情報である。
図9〜図11に示す仕様情報は,画面遷移仕様やその他の情報・知識から得られたものである。
図12は,モデル生成装置1に入力される環境情報の例である。セッション最大数は,モデル中に用意されるセッション識別子およびそれに対応するセッションデータや知識のための変数であり,モデル中でのセッション処理の分岐条件などを決めるために使われる。プロセスの多重度は,各種のプロセスをいくつモデルに生成するかを決める。リクエスト強制・誘導可能フラグおよびサーバへのスクリプト混入可能フラグは,攻撃者に許される攻撃テクニックの種類を規定する。ここで許可されない攻撃テクニックに対応する手順はモデルから削除される。
前記の仕様情報からモデル構築部13が作成する処理途中の中間データの例は,図4〜図7に示すとおりである。
図4の識別子リストは,仕様情報から直接生成できる識別子,必要な数だけ展開したセッション識別子,短縮攻撃手順に使われる攻撃者用メッセージ識別子からなる。識別子リストにおいて,括弧で示された符号はその識別子を初期状態で知っているプロセスが限られることを意味する。(S)は,サーバのみが,(B,S)は,ブラウザとサーバのみがその識別子を知っていることを意味する。符号のない識別子は公開情報である。
なお,すでに述べたように,従来技術ではクッキー強制用メッセージ識別子force_cookieの代わりに攻撃者サイトとのリクエスト・レスポンスや,それによって誘導されて引き起こされるXSSのためのリクエスト・レスポンスを表す多くのメッセージ識別子を追加する必要があった。しかし,本発明の手法ではそれらは不要である。
図5のサーバ共有変数リストは,各セッション識別子に対応して保存されるデータのためのセッションデータ変数,および次に発行すべきセッション識別子の番号を記録するセッション管理用変数からなる。図6のブラウザ共有変数リストは,現在のクッキーの値を記録する変数を持つ。図7の攻撃者知識フラグ変数リストは,識別子リストで攻撃者が知らないと印付けされた識別子に対応して用意される。
モデル構築部13によって生成されるモデル2は,チャネルを通じて通信しあうプロセス群という構造を持ち,各プロセスの振る舞いは,状態遷移グラフで表現するものとする。ただし,全状態や遷移を漏れなく記載するには非常に多くの字数・紙面を必要として現実的でないことから,振る舞いの本質が理解できるように,状態や遷移をある程度まとめたものとする。この場合,プロセス内に適当な変数群が存在し,状態遷移グラフの表現上一つの状態であっても変数群の値に応じて実際の状態は異なる。
図13に,図9〜図11で示した仕様情報から生成されるモデル2のプロセス構造の例を示す。図13で四角形はプロセス,楕円形はチャネルを表す。ブラウザとサーバのプロセスは複数あるが,それらは同じ種類や異なる種類のプロセスが複数並行して動作することを意味する。ただし,一部の変数はプロセス間で共有され,ブラウザならクッキーの格納,サーバならセッションIDの使用状態やセッションデータの格納などに使われる。
また,図13の例では,攻撃者プロセスは一つだが,ブラウザやサーバと同様に複数設けてもよく,その場合は,攻撃者の知識などを収める共有変数が設けられることになる。これらプロセスの並行数はモデル検査の結果や状態数に影響を与えるので,モデル生成装置1が独自に決定するだけでなく,検査者の指定に応じて変えてもよいが,その方法は自明であるのでここでは省略する。
また,ブラウザと攻撃者の間で短縮攻撃手順を実現するために専用のチャネルshが使用されるが,チャネルshの代わりに,ブラウザと攻撃者が共有できる,例えば大域変数などを用いて実現してもよい。
プロセスとチャネルをつなぐ線は,そのチャネルを用いて通信できることを意味し,本例では,それらはすべて送受信両方ができるものとする。ただし,このとき各プロセスは基本的な制約に従って送受信を行う。制約とは,攻撃者以外の通常のプロセスは自分宛で,HTTPSで保護されている場合には正当なメッセージのみを受信でき,攻撃者プロセスはHTTPSで保護されていないすべてのメッセージを受信できる,といったものである。
図14〜図17に,上記のモデル2内の各プロセスの状態遷移グラフの例を示す。これらの状態遷移グラフにおいて,黒い丸は開始状態,白い丸(角丸の四角)は状態を表し,これらをつなぐ矢印は,状態間の遷移を表す。ただし,白い菱形は複数の遷移をまとめて書くための分岐点・合流点を意味し,それ自体はプロセスの状態ではない。
遷移に付された矩形中の文字列は,「[条件]イベント//動作」という形式を持つが,「[条件]」,「イベント」,「//動作」の各部分は,該当するものがなければ省略される。イベントは,その遷移を起こすイベントの名前や種類,条件は,その遷移をするための(イベント以外の)条件,動作は,遷移時にプロセスが行う動作を意味し,条件が「[else]」なら同じ分岐から発する他の条件に合致しなかった場合のみその遷移を行い得ることを意味する。遷移は,非決定的でもよく,イベントや条件を満たす遷移が複数ある分岐の場合いずれか一つが任意に選ばれる。
イベントにおいて,「Ch ! msg」という表記は,チャネルchにメッセージmsgを送信することを,「ch ? msg」は,チャネルchからメッセージmsgを受信することを意味する。実際には,クッキー(Set−CookieヘッダおよびCookieヘッダに対応)も送受信できるが,説明の簡略のために省略し,サーバプロセスは新たに発行するセッションIDを,ブラウザプロセスは現在記憶しているクッキー値を,攻撃者プロセスは状態遷移グラフで選ばれたクッキー値を,それぞれ暗黙のうちに追加して送っているものとする。
なお,本例では,プロセスの動作を規定する情報を状態遷移グラフとして述べるが,これはモデル検査用のモデルの表現形式としては一般的かつ根幹的なものであるためである。実際にモデルの表現に使われる言語や形式はモデル検査装置3の種類によって様々であるが,いずれの言語や形式でも状態遷移グラフから容易に変換することができる。
図14は,サーバプロセスSの状態遷移グラフである。
遷移に伴う動作の「new_s」は,もし受信したリクエストに有効なセッションクッキーがなければ新たなセッションを準備してセッションIDをクッキーとして発行することを意味し,「put(N)」は,受信したリクエストに有効なセッションクッキーがあれば対応するセッションデータとして値Nを記録することを意味する。
セッションデータは,セッションIDごとに区別してサーバの共有変数に記録される。また,条件の「get()=N」は,受信したリクエストに有効なセッションクッキーがあり,なおかつ対応するセッションデータが値Nであれば成り立つという意味である。図14の状態遷移グラフは,リクエストを受信して,そのサービス識別子やその他の条件に応じて図9〜図11のように振る舞うことを表したものである。
なお,従来技術であれば,特にXSSが可能な場合には,スクリプトデータを含むリクエストを受け付けてスクリプトを含むレスポンスを返す遷移をreceived状態とwait状態の間に複数追加しなければならない。本発明によれば,XSSによって起こる効果はサーバプロセスを介さずにブラウザと攻撃者のプロセスの間で直接実現されるので,モデル構築部13は,モデル作成時に,サーバプロセスにそれらの遷移を追加しない。
図15は,ブラウザプロセスB1の状態遷移グラフである。図15の状態遷移グラフは,ブラウザがサーバへ有意なリクエストを送信する様子を表しているが,その順序は任意である。
また,図15の状態遷移グラフには,短縮攻撃手順のための遷移が追加されている。短縮攻撃手順のための遷移とは,攻撃者しか知らない有意なリクエストの送信を強制・誘導される遷移(nw ! login_pwx),および,攻撃者が混入させたスクリプトによって現在のクッキー値やprivateページの情報が盗まれる遷移(sh ! leak_(クッキー)とsh ! leak_private)である。
従来技術では,これらの短縮攻撃手順のための遷移の代わりに,多くの遷移を追加する必要があった。すなわち,攻撃者のサイトへリクエストを送るための遷移,攻撃者サイトからレスポンスを受け取るための遷移,さらに前記レスポンスにより誘導されたリクエストを送るための遷移,さらに前記リクエストがXSSを起こすものだった場合のスクリプトを含むレスポンスを受け取る遷移,さらに前記レスポンスにより攻撃者サイトや本来のサーバへリクエストを送る遷移などである。これらのうち,リクエストする遷移はwait_action状態からwait_response状態へ,レスポンスする遷移はwait_response状態からwait_action状態へ,それぞれの間の遷移として追加され,直前に受け取ったレスポンスに応じた条件も設ける必要がある。受け取ったレスポンス種類によってもっと細かく途中状態を経て分岐しても構わないが,少なくとも前述のような遷移が必要となる。
これに対し,本発明のモデル構築部13は,攻撃テクニックを,リクエスト・レスポンスを介さない直接的な効果として実現できるモデルを作成する。そのため,本発明によるモデルは,上記のような多くの遷移を必要とせず,より単純な構成の状態遷移グラフとなる。
図16は,ブラウザプロセスB2の状態遷移グラフである。図16の状態遷移グラフは,攻撃者からのクッキー強制を受け付けるための動作を意味し,force_cookieメッセージによって与えられたクッキーの値を受け入れて該当する変数に記録する。このプロセス自体が,短縮攻撃手順を実現するためのものである。
従来技術では,クッキー強制は本来のサーバとの通信に攻撃者が介在したものとして実現される。そのため,プロセスB2は不要であるが,代わりに,プロセスB2の数だけ余計にプロセスB1が必要であった。本発明のモデル構築部13は,複雑なプロセスB1のいくつかを,より単純なプロセスB2で置き換えたモデルを作成する。
図17は,攻撃者プロセスIの状態遷移グラフである。図17の状態遷移のグラフは,攻撃者が知る知識の範囲内で任意のリクエストやレスポンスを送信する動作,任意のリクエストやレスポンスを受信してそれが含む情報を知識に加える動作に加え,短縮攻撃手順を実現する動作を意味する。
短縮攻撃手順を実現するのは,webブラウザに攻撃者が知るクッキー値を強制する動作,webブラウザからの漏洩リクエストを受け取り,記憶へ追加する動作である。
従来技術では,攻撃者プロセスIには自身がサーバとなってwebブラウザのプロセスからリクエストを受け取ってレスポンスを返す必要があり,そうしたリクエスト・レスポンスには本来のサーバへの誘導も多数含まれるため,wait状態からwait状態へ戻る遷移を,かなり多く追加する必要があった。本発明のモデル構築部13は,それらの遷移を持たないモデルを作成する。
モデル出力部15が出力するモデル2の論理的構造は,以上のような状態遷移グラフで表すことができる。
モデル検査装置3は,このようなモデル2を用いてモデル検査を行い,例えば,本来特定のユーザUにしか知られるべきではない情報privateを攻撃者Xが知った状態(know_privateがtrueとなる状態)を探索することによって,セキュリティが破られるかどうかを検査できる。
なお,環境情報で,各攻撃テクニックが可能でないと設定されたなら,モデル構築部13は,生成するモデルから,該当する遷移が起きる条件が満たされないか,あるいは該当する遷移を作成しなくてもよい。前述の状態遷移グラフでは,「スクリプト混入可能」や「リクエスト誘導可能」といった条件を持つ遷移がそれにあたる。
以上,本発明をその実施の形態により説明したが,本発明はその主旨の範囲において種々の変形が可能であることは当然である。
本発明の形態および実施例の特徴を列記すると以下のとおりである。
(付記1)
コンピュータに,
webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成処理を
実行させるための
セキュリティ検査用モデル生成プログラム。
(付記2)
前記短縮攻撃手順の対象となる攻撃手順は,一つの攻撃手順の後に,さらにレスポンスの偽造あるいは改ざんを生じさせるクッキー強制に関する攻撃手順であること
を特徴とする
前記付記1に記載のセキュリティ検査用モデル生成プログラム。
(付記3)
前記短縮攻撃手順の対象となる攻撃手順は,前記攻撃者によって作成されたスクリプトを,前記サーバのwebページに混入させることによって,所定の情報の盗み出しを生じさせる攻撃手順であること
を特徴とする
前記付記1に記載のセキュリティ検査用モデル生成プログラム。
(付記4)
前記コンピュータに,
ユーザによって入力される,前記webアプリケーションの仕様情報,セキュリティ仕様情報,ならびに前記webアプリケーションがおかれる環境情報であって前記攻撃者が実行する攻撃の定義を含む情報を取得する入力設定情報受付処理と,
前記短縮攻撃手順作成処理において,前記仕様情報,前記セキュリティ仕様情報,および前記環境情報をもとに前記短縮攻撃手順を変更する処理とを,
実行させるための
前記付記1〜前記付記3のいずれか一項に記載のセキュリティ検査用モデル生成プログラム。
(付記5)
webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部を備える
セキュリティ検査用モデル生成装置。
(付記6)
webアプリケーションのセキュリティ検査用モデルを生成する装置であって,
webアプリケーションの仕様情報,セキュリティ仕様情報,前記webアプリケーションがおかれる環境情報であって前記攻撃者が実行する攻撃の定義を含む情報を取得する入力設定情報受付部と,
前記仕様情報,前記セキュリティ仕様情報,および前記環境情報をもとに,前記攻撃の結果に対応する攻撃者用メッセージ識別子を作成する識別子作成部と,
前記webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部と,
前記短縮攻撃手順のチャネル定義を設定するチャネル定義作成部と,
前記攻撃者用メッセージ識別子,前記短縮攻撃手順のチャネル定義を含むセキュリティ検査用モデルを出力するモデル出力部とを
備えることを特徴とするセキュリティ検査用モデル生成装置。
(付記7)
webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を含むセキュリティ検査用モデルを実行する実行部と,
前記webアプリケーションの実行時の手順が所定結果であるかを判定する検査部とを備える
セキュリティ検査用モデル検査装置。
本発明の最良の実施の形態における構成例を示す図である。 本発明を実施するシステムの構成例を示す図である。 モデル構築部の処理の流れを示す図である。 識別子リストの例を示す図である。 サーバ共有変数リストの例を示す図である。 ブラウザ共有変数リストの例を示す図である。 攻撃者知識フラグ変数リストの例を示す図である。 webアプリケーションの画面遷移仕様の例を示す図である。 webアプリケーションの仕様情報の例を示す図である。 webアプリケーションの仕様情報(サーバ動作記述)の例を示す図である。 セキュリティの仕様情報の例を示す図である。 環境情報の例の例を示す図である。 モデルのプロセス構造の例を示す図である。 サーバプロセスSの状態遷移グラフの例を示す図である。 ブラウザプロセスB1の状態遷移グラフの例を示す図である。 ブラウザプロセスB2の状態遷移グラフの例を示す図である。 攻撃者プロセスIの状態遷移グラフの例を示す図である。
符号の説明
1 モデル生成装置
11 情報入力受付部
13 モデル構築部
15 モデル出力部
2 モデル(モデルデータ)
3 モデル検査装置
4 検査結果
10 指示情報

Claims (6)

  1. コンピュータに,
    webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成処理を
    実行させるための
    セキュリティ検査用モデル生成プログラム。
  2. 前記短縮攻撃手順の対象となる攻撃手順は,一つの攻撃手順の後に,さらにレスポンスの偽造あるいは改ざんを生じさせるクッキー強制に関する攻撃手順であること
    を特徴とする
    請求項1に記載のセキュリティ検査用モデル生成プログラム。
  3. 前記短縮攻撃手順の対象となる攻撃手順は,前記攻撃者によって作成されたスクリプトを,前記サーバのwebページに混入させることによって,所定の情報の盗み出しを生じさせる攻撃手順であること
    を特徴とする
    請求項1に記載のセキュリティ検査用モデル生成プログラム。
  4. 前記コンピュータに,
    ユーザによって入力される,前記webアプリケーションの仕様情報,セキュリティ仕様情報,ならびに前記webアプリケーションがおかれる環境情報であって前記攻撃者が実行する攻撃の定義を含む情報を取得する入力設定情報受付処理と,
    前記短縮攻撃手順作成処理において,前記仕様情報,前記セキュリティ仕様情報,および前記環境情報をもとに前記短縮攻撃手順を変更する処理とを,
    実行させるための
    請求項1〜請求項3のいずれか一項に記載のセキュリティ検査用モデル生成プログラム。
  5. webアプリケーションのセキュリティ検査用モデルを生成する装置であって,
    webアプリケーションの仕様情報,セキュリティ仕様情報,前記webアプリケーションがおかれる環境情報であって前記攻撃者が実行する攻撃の定義を含む情報を取得する入力設定情報受付部と,
    前記仕様情報,前記セキュリティ仕様情報,および前記環境情報をもとに,前記攻撃の結果に対応する攻撃用メッセージ識別子を作成する識別子作成部と,
    前記webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を作成する短縮攻撃手順作成部と,
    前記短縮攻撃手順のチャネル定義を設定するチャネル定義作成部と,
    前記攻撃用メッセージ識別子,前記短縮攻撃手順のチャネル定義を含むセキュリティ検査用モデルを出力するモデル出力部とを
    備えることを特徴とするセキュリティ検査用モデル生成装置。
  6. webアプリケーションのブラウザ,サーバ,および攻撃者それぞれの間で実行される複数のリクエスト・レスポンスで構成される手順のうち,前記攻撃者によって作成された攻撃者ページによるリクエスト送信の強制または誘導を生じる攻撃手順について,当該攻撃の効果をより少ない手順数で生じさせるように定義した短縮攻撃手順を含むセキュリティ検査用モデルを実行する実行部と,
    前記webアプリケーションの実行時の手順が所定結果であるかを判定する検査部とを備える
    セキュリティ検査用モデル検査装置。
JP2007103371A 2007-04-11 2007-04-11 セキュリティ検査用モデル生成装置,セキュリティ検査用モデル検査装置,およびセキュリティ検査用モデル生成プログラム Expired - Fee Related JP5082555B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007103371A JP5082555B2 (ja) 2007-04-11 2007-04-11 セキュリティ検査用モデル生成装置,セキュリティ検査用モデル検査装置,およびセキュリティ検査用モデル生成プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007103371A JP5082555B2 (ja) 2007-04-11 2007-04-11 セキュリティ検査用モデル生成装置,セキュリティ検査用モデル検査装置,およびセキュリティ検査用モデル生成プログラム

Publications (2)

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

Family

ID=39984755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007103371A Expired - Fee Related JP5082555B2 (ja) 2007-04-11 2007-04-11 セキュリティ検査用モデル生成装置,セキュリティ検査用モデル検査装置,およびセキュリティ検査用モデル生成プログラム

Country Status (1)

Country Link
JP (1) JP5082555B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011086201A (ja) * 2009-10-16 2011-04-28 Fujitsu Ltd テストプログラム、テスト方法、およびテスト装置
JP2012146100A (ja) * 2011-01-11 2012-08-02 Fujitsu Ltd 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム
WO2014191847A1 (en) * 2013-05-29 2014-12-04 International Business Machines Corporation Optimizing test data payload selection for testing computer software applications using computer networks
JP2015032299A (ja) * 2013-08-07 2015-02-16 Kddi株式会社 Webコンテンツ配信装置
WO2019142335A1 (ja) * 2018-01-19 2019-07-25 三菱電機株式会社 セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000268074A (ja) * 1999-03-18 2000-09-29 Toshiba Corp 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法
JP2003108521A (ja) * 2001-09-29 2003-04-11 Toshiba Corp 脆弱性評価プログラム、方法及びシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000268074A (ja) * 1999-03-18 2000-09-29 Toshiba Corp 検証プログラム自動生成装置および方法並びにプロパティ自動生成装置および方法
JP2003108521A (ja) * 2001-09-29 2003-04-11 Toshiba Corp 脆弱性評価プログラム、方法及びシステム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011086201A (ja) * 2009-10-16 2011-04-28 Fujitsu Ltd テストプログラム、テスト方法、およびテスト装置
JP2012146100A (ja) * 2011-01-11 2012-08-02 Fujitsu Ltd 攻撃模倣テスト方法、攻撃模倣テスト装置及び攻撃模倣テストプログラム
WO2014191847A1 (en) * 2013-05-29 2014-12-04 International Business Machines Corporation Optimizing test data payload selection for testing computer software applications using computer networks
US9135153B2 (en) 2013-05-29 2015-09-15 International Business Machines Corporation Optimizing test data payload selection for testing computer software applications via computer networks
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
JP2016530587A (ja) * 2013-05-29 2016-09-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation コンピュータ・ネットワークを用いてコンピュータ・ソフトウェア・アプリケーションをテストするための方法、システム及びコンピュータ・プログラム
JP2015032299A (ja) * 2013-08-07 2015-02-16 Kddi株式会社 Webコンテンツ配信装置
WO2019142335A1 (ja) * 2018-01-19 2019-07-25 三菱電機株式会社 セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム
JP6608569B1 (ja) * 2018-01-19 2019-11-20 三菱電機株式会社 セキュリティ設計装置、セキュリティ設計方法およびセキュリティ設計プログラム

Also Published As

Publication number Publication date
JP5082555B2 (ja) 2012-11-28

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 (ko) 웹 어플리케이션의 취약성 판단 방법 및 시스템
Shahriar et al. Client-side detection of cross-site request forgery attacks
Deepa et al. DetLogic: A black-box approach for detecting logic vulnerabilities in web applications
EP3287930A1 (en) Javascript security testing
Bozic et al. Planning-based security testing of web applications with attack grammars
JP5082555B2 (ja) セキュリティ検査用モデル生成装置,セキュリティ検査用モデル検査装置,およびセキュリティ検査用モデル生成プログラム
Hou et al. A dynamic detection technique for XSS vulnerabilities
Kapodistria et al. An advanced web attack detection and prevention tool
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
Liu et al. A XSS vulnerability detection approach based on simulating browser behavior
Bozic et al. Planning-based security testing of web applications
JP6785360B2 (ja) 攻撃文字列生成方法および装置
Cvitić et al. Defining Cross-Site Scripting Attack Resilience Guidelines Based on BeEF Framework Simulation
Lin et al. An automatic meta-revised mechanism for anti-malicious injection
Hassan et al. ADT-SQLi: An Automated Detection of SQL Injection Vulnerability in Web Applications
Noß et al. Finding All Cross-Site Needles in the DOM Stack: A Comprehensive Methodology for the Automatic XS-Leak Detection in Web Browsers
Vernotte A pattern-driven and model-based vulnerability testing for web applications
Soleimani et al. WAVE: Black Box Detection of XSS, CSRF and Information Leakage Vulnerabilities
Nanda et al. Web application attack prevention for tiered internet services
Josip et al. Planning-based security testing of web applications with attack grammars
Alves MockingPot: Generate and Integrate Honeypots Into Existing 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