タイガーチームセキュリティレポート Buffer Overflow脆弱性の動的パッチの方法 - Part 3 今回は前回紹介したSystemTapを使ってbuffer overflow脆弱性にパッチを当てる方法を実装してみます。 -基本の考え方- buffer overflowに対する攻撃は、対象となる関数の実行中にその関数の戻りアドレスを書き換えることでプログラムの実行フローを外部から変更するものなので関数の出入り口で戻りアドレスをチェックし、戻りアドレスが書き換えられていた場合にエラーとして処理すれば攻撃の成立をかなり難しくすることができます。 同様の考え方で実装されたSSP(Stack Smashing Protection)はすでに存在しており、あとで紹介するようにgcc等のコンパイラの機能として利用することができます。しかし今回は実行中のプログラムに動的にパッチをあてる方法を実装
第1回 知られざるセキュリティフレームワーク「LSM」の役割 Linuxカーネルには、バージョン2.6から「Linux Security Module」(LSM)というセキュリティフレームワークが導入されています。この連載ではLSMの仕組みを紹介するとともに、これを活用してオリジナルのセキュリティモジュールを作り上げていきます(編集部) 村上 純一 株式会社フォティーンフォティ技術研究所 研究開発部 αUnit シニア・リサーチエンジニア 2008/3/18 ITインフラを語る上でセキュリティは欠かせない要素です。Linuxにも、セキュリティを強化する「LSM」(Linux Security Module)という枠組みが用意されています。 実はこのLSMは、これまで何かと物議を醸してきました。本稿ではSELinuxやそのほかのセキュリティモジュールの紹介に始まり、Linuxカーネルに実装さ
kprobは、実行カーネル内を再コンパイルすることなく、任意のアドレスにブレイクを設定できる。そしてそのブレイクした時のデバック処理を記述することで、カーネルデバッグを行うというもの。 以下のstatic struct kprobe kpにブレイクする位置(シンボル又はアドレスの指定およびオフセット)、ブレイクした時の処理、ブレイクしたコードを実行した後の処理、必要なら、上記の処理で例外が発生した時の処理を記述して、register_kprobe()をコールするだけである。 struct kprobe { /* location of the probe point */ kprobe_opcode_t *addr; /* Allow user to indicate symbol name of the probe point */ const char *symbol_name; /*
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く