本研究は、ソフトウェア変更がその安全性(脆弱性)の増減にどのような影響を与えるのかを、ソースコード解析技術に基づき明らかにすることを目的としている。平成22年度は、主に2つの研究を実施した。 1. ソースコード変更として、その手順が明確なリファクタリングを取り上げ、リファクタリングによる脆弱性の混入を検出する手法の実装を進めた。まず、アクセス修飾子の変化と情報フローの概念を組み合わせた評価基準に基づくリファクタリング支援ツールの構築を21年度から継続した。次に、本ツールが検出可能な脆弱性の混入が実際のソフトウェア開発において発生する場面(パターン)を見つけ出し、ツールが有用であることを示した。さらに、実際のオープンソース・プロジェクトを用いて脆弱性混入検出の精度に関する評価実験を行った。実験を通して、検出精度を向上させるためには、(a)プログラム解析の正確さの向上、(b)情報フローに関する十分な対応、(c)アクセスレベル基準の形式化に関する洗練を達成する必要があることが明らかになった。また、検出時間を短縮させるために、内部データの形式を再検討する必要があることも分かった。 2. ソースコード変更と脆弱性の混入との関係を明確にするという観点から、ソースコードの変更履歴を細粒度で記録するツールの構築を進めた。同時に、脆弱性の増減に関わる変更パターンの収集が迅速に実施できるように、記録した編集操作を再生(リプレイ)するツールの開発を行った。このツールでは、過去の編集における特定の範囲を俯瞰的に表示するハイライト機能を提供する。このハイライトは、保守者により柔軟にカスタマイズ可能となっている。このようなハイライトを用いることで、特定の条件を満たすプログラム変更だけを、膨大な履歴から探し出すことが容易になる。
|