実行ファイルのセキュリティ機構

実行ファイルのセキュリティ機構

コンパイル時に設定可能なもの

  • Stack Smash Protection BOF 対策。スタックフレームのローカル変数領域と Saved EBP の間に Canary(カナリア) と呼ばれる値を挿入。この部分の値の変更を判定。
  • NX bit(No eXecute bit)
  • PIE (Position Independent Executable)
    • 実行コード内のアドレス参照をすべて相対アドレスで行う
    • ASLR では行われない実行ファイルの配置アドレスもランダム化される
    • よく共有ライブラリに適用されるオプション

OS側で設定可能なもの

  • ASLR(Address Space Layout Randomization) OS 側で設定可能 スタックやヒープ、共有ライブラリなどをメモリに配置するときに アドレスの一部をランダム化。 OS 側で設定できるようだ。 確かWindows でもレジストリを変更することで無効化できた。
    • 有効: sudo sysctl -w kernel.randomize_va_space=2
    • 無効: sudo sysctl -w kernel.randomize_va_space=0