サイバー攻撃は現代社会において大きな問題である.これに対して既に幅広い対策が講じられているが,ソフトウェアの脆弱性を軽減できれば根本的で直接的な対策となる.本研究は,ソフトウェアの脆弱性の中でも影響範囲の広いバッファオーバフロー攻撃に着目し,それを完全に防止する新たな方式を提案することを目的とする.具体的には,CPUにバッファオーバフロー攻撃を検出する機能を追加し,OSがその機能を用いてセキュアコンピューティング環境を実現する.アプリケーションやライブラリなど,ユーザレベルのプログラムを変更したり再コンパイルしたりする必要は無い.本研究によって,バッファオーバフロー攻撃に対して直接的な解を与えることができるため,社会が抱える問題点を解決可能である点で意義がある. 本研究課題では,昨年度までに,提案手法をCPUエミュレータQEMU上で実現し,かつLinux OSを拡張して提案手法の基本的有効性を示した.ただし,同時に,一般的に利用されているプログラミングテクニックの中に提案手法の誤検出を誘発させるものがあることが判明した.具体的には,1.シグナルハンドラ,2.C++などの言語で用いられる例外ハンドラ(DWARF2 EH方式),3.動的リンカの遅延バインド,4.zero length call,5.大域ジャンプ(setjmp/longjmp)である. 本年度の成果は,上記の5点について,提案手法で(CPUとして)改善可能なもの,ライブラリ等共通的なソフトウェアの処理方法を変更することで改善可能なもの,ユーザアプリケーションが代替技術を使うことで改善可能なものに分類をしたうえで,その対策技術を示した点にある.また,それらを実現し,複数の実在のマルウェアを用いてバッファオーバフロー攻撃を検出できることを実証した点にある.
|