BOF攻撃

2023-03-02 (木) 23:04:15

BOF攻撃 とは

名称

  • Buffer Over Flow攻撃
  • バッファオーバーフロー攻撃

概要

  • C言語、C++言語で開発したプログラムのバグが原因の脆弱性に対する攻撃
    • 引数のサイズをチェックしない関数で発生する
    • 対策が必要な関数と対策は「C++」参照
  • BOF攻撃により、攻撃を受けたコンピュータ上に不正なデータが書き込まれ、それがプログラムのの場合は不正なプログラムが実行されてroot権限の取得などが行われる
    • 不正なプログラムは、攻撃対象のサービスと同じ権限で実行される
    • 権限の乗っ取り
    • 権限昇格

BOF攻撃の種類

return-to-libc

  • メモリ上にロードされているlibc ランタイムを呼び出す攻撃
  • DEPによる防止機能を回避するBOF攻撃手法

Use-After-Free を悪用したBOF攻撃

  • 解放済のメモリーを使って任意のコードが実行される脆弱性を狙った攻撃

整数オーバーフロー攻撃

  • 整数オーバーフローの脆弱性を狙った攻撃

setuid/setgid属性を狙った攻撃

  • 所有者が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によるアドレス空間に加え、テキスト領域のアドレスもランダム化する技術

関連用語