第 2 章 技術背景及び関連研究
2.4 モデル駆動開発とセキュリティ保証
図 2.5: モデル駆動開発の開発フロー
ならない。特にアジャイルソフトウェア開発ではモデルと実装との間に一貫性の 問題が発生する。
Xuらは モデル駆動でアクセス制御ポリシーのテストケースを自動生成する手法 を提案している[69]。Lebeauらは モデル駆動でWebアプリケーションの脆弱性 検査のテストケースを自動生成する手法を提案している[47]。
表2.9: モデル駆動設計とセキュリティ保証に関する研究
著者(年) 内容
Jurjens(2004)[42] UMLでセキュリティを扱うUMLsecの提案 Jurjens(2005)[43]
Jurjens(2008)[44] UMLsec + MBST
Halle(2010)[37] 状態遷移図によるNavigation Errorの検出
Xu(2012)[69] モデルを用いたアクセス制御のテスト
Lebeau(2013)[47] MBST、アクセス制御のテスト
図2.6: MBST: Model-based Security Testingの開発フロー
2.4.3 Web アプリケーションのモデル化に関する関連研究
Webアプリケーションのモデリングに関しては、Andrewsらが状態遷移図を用 いてWebアプリケーションの挙動をモデル化する手法、FSMWebを提案してい
る[12][13]。これは作成した状態遷移図を用いて機能テストケースを生成する事
が主な目的である。
モデル駆動開発自体の課題については、Forwardらがサーベイを実施し報告し ている[35]。モデリングは開発初期には利用されるが、実際の開発においてはコー ドの開発が主体であることが指摘されている。これはアジャイルソフトウェア開 発において、モデル駆動設計が継続して活用できない事を意味している。これは、
モデルとコードの一貫性を保つ事が難しく、コードのみが保守されるためである。
そして、現在のWebアプリケーション開発においても同様であるといえる。
この課題に答える方法は、1)モデルからコードの自動生成、2)コードからモデ ルの自動生成である。1)をサポートする開発環境は限られる。特にアジャイルソ フトウェア開発で用いるアプリケーション・フレームワークではツールが存在しな い。2)については様々なWebアプリケーションのモデル生成の自動化手法が提案 されている。AlalfiらはWebアプリケーションのモデル化とテストについて、既存 手法を大きく4つのタイプに分類している[7]。ナビゲーションモデリングでは、
Webアプリケーションの振る舞い(ページ遷移)をモデル化する。初期のWebア プリケーションは静的な構造であったが、現在では動的なページ生成が主流であ る。相互作用挙動のモデリングでは、Webアプリケーションの(ブラウザ側の)挙
動をモデル化する。コンテンツモデリングでは、ページの静的な構造をモデル化 する。モデル生成はソースコードから行われるものと、実際の動作から行われる もの、双方を利用するものの3つのアプローチが存在する。これは、扱うWebア プリケーションの実装方式に依存する。
アジャイルソフトウェア開発で用いるアプリケーション・フレームワークでは、
アプリケーション実装のためのコード記述が少ないことが特徴である。つまり、ア プリケーションの振る舞いレベルでコードは記述されるため、コードから適切な モデルを生成する手法が有効であると考えられる。