タイガーチームセキュリティレポート Buffer Overflow脆弱性の動的パッチの方法 - Part 3 今回は前回紹介したSystemTapを使ってbuffer overflow脆弱性にパッチを当てる方法を実装してみます。 -基本の考え方- buffer overflowに対する攻撃は、対象となる関数の実行中にその関数の戻りアドレスを書き換えることでプログラムの実行フローを外部から変更するものなので関数の出入り口で戻りアドレスをチェックし、戻りアドレスが書き換えられていた場合にエラーとして処理すれば攻撃の成立をかなり難しくすることができます。 同様の考え方で実装されたSSP(Stack Smashing Protection)はすでに存在しており、あとで紹介するようにgcc等のコンパイラの機能として利用することができます。しかし今回は実行中のプログラムに動的にパッチをあてる方法を実装