バッファオーバフローによるスタックスマッシュ攻撃を正確に検出するためのプロセッサアーキテクチャの検討を行なった。 ます、命令レベルにおいて、関数呼び出しと関数からの戻りを正確に検出し、それらをモニタリングすることで関数呼び出しの論理的な関係を把握する方式を提案した。C言語のlongimp関数やC++における例外処理(try~throw~catch)に対しても正確に関数呼び出し状況を把握するため、専用のマシン命令を設ける。これにより、誤検出を完全に防ぐことができるので、実際の使用において十分な適用性を有する。また、ピープ領域でバッファオーバフローを発生させて攻撃を行なう場合に備えて、変数領域のメモリへの割り当てのランダム化とその管理方式の検討を行なった。 システムアーキテクチャ設計のための予備評価として、一般の応用プログラムを対象に、バッファオーバフローによって問題となり得る分岐命令から最初にシステムコールを行うまでの時間的猶予(具体的には動的な命令数)について、シミュレーションによる評価・調査を行った。
|