2009 Fiscal Year Annual Research Report
Project/Area Number |
21500028
|
Research Institution | University of Tsukuba |
Principal Investigator |
南出 靖彦 University of Tsukuba, 大学院・システム情報工学研究科, 准教授 (50252531)
|
Keywords | ソフトウェア工学 / 情報基礎 / ソフトウェア検証 |
Research Abstract |
文字列解析の精度を向上する研究,脆弱性の検出の研究,文字列解析をRubyプログラムに適用する基礎研究を行った. スクリプト言語で記述されたサーバサイドプログラムでは,正規表現を用いた文字列のマッチングや置換が重要な役割を果たす.そのような演算を用いたプログラムを高い精度で解析するため,マッチングや置換を正確に解析する研究を行った.具体的には,正規表現を用いた演算の操作的意味論を構築し,その意味論に基づき先読み付きトランスデューサでその動作を正確に表現できることを示した.この先読み付きトランスデューサを文字列解析に用いることで解析の精度を改善できる. 文字列解析によりクロスサイトスクリプティング脆弱性を検出する研究を行った.特に,検出した脆弱性を示す反例HTML文書を唯一の文字列を生成する文脈自由文法(Straight Line Program)として生成し,反例のどの部分がプログラムのどの部分で生成されたかインタラクティブに調べられるようにした.これにより文字列解析によって検出された脆弱性が真の脆弱性かを効率的に確かめられるようになった. Rubyの操作的意味論及び制御フロー解析の研究を行った.クラスやメソッドの定義,イテレータブロック,大域脱出など,主要な言語機能を含むサブセットに対し,操作的意味論を与えた.さらに,文字列解析などの高度なプログラム解析の基礎となる,動的なメソッド定義を精密に解析する制御フロー解析を開発した.制御フロー解析の結果に大きな影響を与えるメソッド定義について,フロー依存な解析を行うことで高い精度の解析を可能にした.この制御フロー解析の健全性を,操作的意味論に基づき証明した.
|