研究概要 |
現実世界の攻撃者(ハッカー,クラッカー)の行動や技術について調査を行い,調査結果に基づいて,攻撃者の能力をどのように整理・記述するべきかについて検討した.また,検討結果に基づいて攻撃のゴール木の記述方法を提案した.提案するゴール木は,攻撃目的に対し,攻撃分類-攻撃方法-攻撃ターゲットの3つのレイヤー構造を持つ.このようなゴール木を記述するにあたってのガイドラインについて検討を行うとともに,攻撃防御の方法として,動的名前解決を用いた名前難読化法,及び,拡張プログラムカムフラージュ法を提案した.動的名前解決は,プログラム中の名前使用部分をあらかじめ暗号化しておき,実行時に名前を復号して当該処理を実行する方式である.名前使用部分は典型的な攻撃ターゲットとなるのでその防御手段が必要である.提案手法では,オブジェクト指向言語のリフレクション機構を用いて,クラスの参照,メソッド呼び出し,フィールドの参照・代入に現れる任意の名前を動的解決する方法を実現した.提案手法をJavaプログラム用に実装し評価実験を行った.ある実用プログラムへの適用では,約4倍の性能劣化でプログラム中のすべてのクラス名,メソッド名,フィールド名を難読化できることがわかった.また,拡張プログラムカムフラージュ法では,攻撃者に知られたくない命令の内容変更や削除を高級言語のレベルで具体手に指定可能とすることで,攻撃のターゲットを直接的に隠蔽することを可能とした.ゴール木の構築によって攻撃ターゲットを明確化した後に,拡張プログラムカムフラージュ法によってターゲットを隠蔽することで,攻撃を困難にできると期待される.
|