A Study on Dynamic Detection of Web Application Vulnerabilities

(邦訳:動的解析によるWebアプリケーションの脆弱性検出手法に関する研究)

小菅 祐史
(株)Everforth CTO


[背景]Web関連技術の発達に従い,Webアプリケーションが大規模・複雑化
[問題]動的解析技術を用いたWebアプリケーションの脆弱性検出の精度が低い
[貢献]対象ごとに攻撃コードを自動作成することで,検出精度を向上

Web関連技術の発達により,Webアプリケーションは動的にコンテンツを生成することによってショッピングサイトやソーシャルネットワークサイトなど,高機能なサービスを提供している.その一方,Webアプリケーションは大規模化と構造の複雑化により,脆弱性が混入しやすくなっている.WhiteHat Securityによると,83%のWebアプリケーションに少なくとも1つの脆弱性が存在する.脆弱性を検出する手段として,動的解析技術を用いた手法が近年多く利用されている.この手法では,まず無害なHTTPリクエストに悪意ある文字列(攻撃コード)を挿入し,Webアプリケーションに送信する.そして,HTTPレスポンスなどの出力を解析することにより,実際に攻撃が成功したか判断することで脆弱性の有無を判定する.動的解析を用いた既存の脆弱性検出手法では,攻撃コードはあらかじめ定義されており,どのWebアプリケーションに対しても同じ攻撃コードを用いて攻撃を実行する.そのため,Webアプリケーションによっては必要な攻撃が不足する場合や無駄な攻撃を実行してしまう場合があり,検出精度が低いことが問題となっている.

本論文では,Webアプリケーションごとに攻撃コードを自動生成することで,精度の高い脆弱性検出手法を提案した.攻撃を成功させるために有効な攻撃コードは,Webアプリケーションの出力の中で攻撃コードが現れる箇所の構文によって異なる.そこで本提案手法では,出力の構文解析によって攻撃コードが現れる箇所の構文を調べ,その構文に合わせて攻撃コードを自動生成する.攻撃コードは,本手法で用意した攻撃コード生成規則を参照して自動生成する.攻撃コード生成規則は,攻撃手法ごとに用意しており,構文に応じて有効な攻撃コードを生成するための文字列の組み合わせ方法を定義している.本提案機構は,2種類の攻撃手法に対する脆弱性検出手法を実現し,既存の評価の高い脆弱性検出ツールと検出能力の比較を行うことで有効性を示した.また,実際に使用されているWebアプリケーションやオープンソースのWebアプリケーションに対して本提案機構を利用することで,これまでに131件の脆弱性を検出した.

また,次々と出現する攻撃に対して脆弱性検出手法を容易に実装することができるように,プラグインによって機能拡張が可能な脆弱性検出用フレームワークであるAmberateを提案した.Amberateは動的解析を用いた脆弱性検出手法に共通する機能を隠蔽し,各攻撃手法に依存する処理を独自にプラグインとして実装することができる.機能拡張が可能な従来の脆弱性検出ツールに対し,Amberateの脆弱性検出用プラグインと同様の機能を実装したところ,Amberateの方が500行少ないコード数(比較対象の82%の実装量)でプラグインを実装することができた.
 


個々のWebアプリケーションに合わせた脆弱性検出手法

 (2012年8月24日受付)
 
取得年月日:2011年9月
学位種別 :博士(工学)
大  学 :慶應義塾大学

推薦文:(システムソフトウェアとオペレーティングシステム研究会)


本学位論文では,ウェブアプリケーションの脆弱性検出を支援する拡張可能フレームワークを提案している.アプリケーション開発時に使用することを想定し,ウェブアプリケーションの内部構造に依存した手の込んだ脆弱性検知が可能である.開発したソフトウェアの品質も高く,基礎研究としてだけではなく高い実用性も備えた研究成果である.

著者からの一言


博士課程在学中に行った研究活動では,研究室の教授や仲間をはじめ,学内外のさまざまな方のご指導や助言をいただくことができ,大変感謝しております.今後は,研究成果として得られた知見や成果物を元に,次々と現れる新種の攻撃手法にも有効な対策手法を実現し,世の中に還元できればと考えております.