研究概要 |
本研究では,OSによるバッファオーバーフロー攻撃の防止手法として,主に3種類の手法を用いたシステムに関する研究をおこなった.一番目はSegmentShieldと呼ぶシステムである.このシステムの手法では,「ポインタごまかし型」と呼ばれる新しい種類の攻撃の防止を目的として,Intel社のプロセッサ・アーキテクチャであるIA-32 (Intel x86)に搭載されているセグメント機構を活用することで,ポインタごまかしによるリターンアドレスの書き換えを確実に防止しつつも,オーバーヘッドを低く抑えることに成功している.本手法は,25^<th> IEEE Symposium on Reliable Distributed Systems (SRDS 2006)に論文が採択され,研究成果の発表をおこなった. 二番目はNXShieldと呼ぶシステムである.このシステムの手法では,多くの近代的プロセッサに搭載されているメモリの実行禁止属性(AMD社のNXbit, Intel社のXDbit,など)による保護機構を回避して任意のコードを実行可能にする「連鎖型return-into-libc攻撃」と呼ばれる攻撃の防止を目的として,OSのアクセス制御機構によりメモリの実行禁止属性が不正に解除されることを防止する手法を実現した.本手法は,情報処理学会の第34回CSEC研究発表会にて発表をおこなった. 三番目はSpaceShieldと呼ぶ手法である.このシステムの手法では,「ポインタごまかし型」及び「連鎖型return-into-libc攻撃」などの新しい攻撃手法を包括的に防止しつつも,オーバーヘッドが極めて低い保護機構の実現を目的として,アドレス空間分割という手法を提案している.プログラムの仮想アドレス空間を,ポインタ空間とデータ空間の2つに分割することにより,バッファオーバーフローによるポインタの書き換えを防止しつつ,既存のプログラムにおける命令コード中のアドレスのオフセットだけを書き換えて新たな命令の追加を不要にすることにより,極めてオーバーヘッドの低い保護機構の実現が可能になる.本手法は,日本ソフトウェア科学会の第10回プログラミング及び応用のシステムに関するワークショップ(SPAX)にて発表をおこなった.
|