スタックスマッシング攻撃に対する防御を目的として、攻撃の検出機構を備えたマイクロプロセッサアーキテクチャを提案した。本アーキテクチャの特徴は、通常のプロセッサ(メインプロセッサ;MP)とは別に攻撃検出のための専用プロセッサ(リターンアドレス管理プロセッサ;RAMP)を設け、RAMP上で動作するソフトウェアを用いて攻撃検出を行う構成にある。RAMPは、MPから分岐命令の実行に関する情報を得て、MPで実行しているプログラムの関数呼び出し状態を管理する。また、バッファオーバフローによって関数からの戻り番地が書き換えられていれば、これを検出してMPに割り込み信号を送出する。MPは、システムコール命令を実行する際に、RAMPからの攻撃検出割り込みが発生していないことを確認することにより、攻撃による被害を未然に防ぐことができる。 また、本方式は、C言語のlongjmp関数やC++の例外処理などの非局所分岐に対しても誤検出することなく、スタックスマッシング攻撃を正確に検出することが可能であるため、十分な実用性を備えている。 シミュレーションによる性能評価の結果、本方式の適用によるプログラム実行の性能低下は最大でも4.85%に抑えられることを確認した。今日、一般に、セキュリティのために性能を犠牲にするのは止むを得ないとする風潮も見られるが、本研究では、その犠牲を非常に小規模なハードウェア機構であるRAMPの実現コストに求めることにより、セキュリティを維持しながらもプログラム実行の性能低下やソフトウェアの生産性低下を回避することを可能とした。
|