第 3 章 提案手法
3.5 アジャイルソフトウェア開発への組み込み
者の意図で決めるべきものである。また複雑なロジックを含むアプリケーション コードのモデル化には限界があり、状態遷移が追えない場合がある。テストケー ス生成についてもUATの実装パターンにバリエーションが多く、完璧な自動生成 は難しい。そこで、不明な点を洗い出し、対話的なインターフェースを通して開 発者が情報を補完することで、ツール自体の複雑化を避けるようにする。対象と なるフレームワークやアプリケーションも絶えず変化しており、本ツール自体の 保守性の確保も重要である。
3.5.2 ダッシュボードによる情報の共有
セキュリティ要求、実装、テストを一つのツールで一元管理するため、対象と するWebアプリケーションのセキュリティ保証をダッシュボードの形でまとめる ことができる。ツールがレポートした警告、モデルの状態、テストカバレッジを 表の形で提示する。結果として、開発に携わるすべてのステークホルダーがアプ リケーションのセキュリティ保証の現状を確認することができる。また、アプリ ケーションの機能拡張時には、機能拡張に専念し、その後、本ツールを用いてセ キュリティ実装の更新を行うことで、開発者に必要とされてきたセキュリティ対 策への負担の低減も実現できる。
3.5.3 外部ツールによる機能補完
提案手法は、主にアプリケーションの実装コードに関係するセキュリティの問 題に対応するが、実稼働するシステムレベルですべてのセキュリティ問題に対応 できるわけではない。そこで、実用的な外部のセキュリティテストツールと連携 することで、アジャイルソフトウェア開発におけるセキュリティ保証をより包括 的に実施できるようになる。
静的検証ツールはその警告を本ツールのモデルにマップすることで、その検証 用のテストケース生成が可能となる。また、Webアプリケーションスキャナにつ いては、本フレームワークによって管理されているアクセス制御ポリシーを利用 して、適切な認証情報や設定をWebアプリケーションスキャナに与えることで、
Webアプリケーションスキャナの実施をサポートすることが可能である。
最終的には、ダッシュボードにすべての検証結果が一覧表示され、セキュリティ 保証の現状把握が容易となる。
具体的な例は4.1.7節で詳しく解説する。
3.6 まとめ
この章ではアプリケーション・フレームワークのセキュリティに関する情報を コマンド抽象化ライブラリに集約して、実装コードからアプリケーションの振る 舞いモデルを生成することで、セキュリティ要求の抽出、静的セキュリティ解析、
動的セキュリティテストカバレッジ の計測に活用する手法を示した。次の4章で はアジャイル型開発を代表するWeb アプリケーションフレームワーク、Ruby on
Railsを対象とした セキュリティツールの開発と実験評価の詳細を示す。