リンカ・ローダと実行形式
ASLR(アドレス空間配置のランダム化)の目的として正しいものはどれか。
- Aスタックやヒープ、ライブラリなどの番地を実行のたびに変え、攻撃者が狙う番地を予測しにくくする
- Bメモリの番地をランダムに選んで、キャッシュのヒット率を上げる
- C使っていないメモリをランダムに解放して、空き容量を増やす
答えと解説を見る
正解:A. スタックやヒープ、ライブラリなどの番地を実行のたびに変え、攻撃者が狙う番地を予測しにくくする
バッファオーバーフローなどを悪用する攻撃では、ライブラリの関数やスタック上のデータの番地を知っていることが重要です。ASLRは、プロセスを起動するたびにスタック、ヒープ、共有ライブラリ、実行ファイルを置く番地をずらし、攻撃者が番地を決め打ちできないようにします。単独で完全に防げるわけではなく、書き込みと実行の分離などほかの対策と組み合わせて使います。
- A. 正しい。攻撃を難しくする対策です。
- B. 性能のための仕組みではありません。
- C. メモリを解放する仕組みではありません。