web-dev-qa-db-ja.com

実行可能ファイルのベースアドレスのみをランダム化してASLRを実行することで十分でしょうか?

Wikiによると、ASLRは、実行可能ファイルのベースやスタック、ヒープ、ライブラリの位置など、プロセスの主要なデータ領域のアドレス空間の位置をランダムに配置します。

概念的には、ASLRは、プロセスメモリアドレスレイアウトの知識に依存するバッファオーバーフローの悪用を防ぎます。ランダム化が多ければ多いほどよいことは理解していますが、実行可能ファイルのベースのみをランダム化し、残りを変更せずにそのままにしておくことは、このベースに対して有効でしょうか?攻撃者が実行可能ファイルのベースアドレスを取得できない場合、実行可能ファイルの他の領域のベースアドレスを取得できません。それとも何か不足していますか?

2
user1118764

いいえ。多くの攻撃は、ライブラリルーチンのアドレスに依存しており、実行可能ファイルがどこにロードされるかは問題ではありません。ほとんどの固定アドレスが悪用される可能性があります。

2
John Deters