BOF攻撃 とは†
- Buffer Over Flow攻撃
- バッファオーバーフロー攻撃
- C言語、C++言語で開発したプログラムのバグが原因の脆弱性に対する攻撃
- 引数のサイズをチェックしない関数で発生する
- 対策が必要な関数と対策は「C++」参照
- BOF攻撃により、攻撃を受けたコンピュータ上に不正なデータが書き込まれ、それがプログラムのの場合は不正なプログラムが実行されてroot権限の取得などが行われる
- 不正なプログラムは、攻撃対象のサービスと同じ権限で実行される
- 権限の乗っ取り
- 権限昇格
BOF攻撃の種類†
return-to-libc†
- メモリ上にロードされているlibc ランタイムを呼び出す攻撃
- DEPによる防止機能を回避するBOF攻撃手法
- 解放済のメモリーを使って任意のコードが実行される脆弱性を狙った攻撃
整数オーバーフロー攻撃†
- 所有者がroot、setuid属性やsetgid属性が設定されたプログラムにBOFを発生させてroot権限を取得する
BOF攻撃の対策†
BOF攻撃を防止する機能(WindowsなどのOSに実装されている機能)†
- DEP
- Data Execution Prevention
- データ実行防止機能
- 指定されたメモリ領域での処理実行を禁止する
- ASLR
- Address Space Layout Randomization
- アドレス空間配置ランダム化
- return-to-libc によるBOF攻撃の成立を抑止する技術・仕組み
- PIE
- Position Independent Executable
- ASLRによるアドレス空間に加え、テキスト領域のアドレスもランダム化する技術
関連用語†