実行ファイルのセキュリティ機構
実行ファイルのセキュリティ機構
コンパイル時に設定可能なもの
- Stack Smash Protection BOF 対策。スタックフレームのローカル変数領域と Saved EBP の間に Canary(カナリア) と呼ばれる値を挿入。この部分の値の変更を判定。
- NX bit(No eXecute bit)
- Windows ではDEP(Data Execution Prevention) と呼ばれている
- メモリ上の実行する必要のないデータを実行不可能に設定する
- gcc -z execstack オプションをコンパイル時に指定すると、NX bit を無効にできる
- PIE (Position Independent Executable)
- 実行コード内のアドレス参照をすべて相対アドレスで行う
- ASLR では行われない実行ファイルの配置アドレスもランダム化される
- よく共有ライブラリに適用されるオプション