LoginSignup
5
4

More than 3 years have passed since last update.

PIEとASLRについて

Last updated at Posted at 2019-05-29

linux のセキュリティについて

ASLRについて

通常、同じプログラムであれば、関数のアドレスや、変数の格納先アドレス等、何度実行しても変化することはない。これを利用して任意のアドレスを実行することが可能となってしまう。

そこでASLRは、heap領域以降のアドレスをランダム化(アドレス空間配置のランダム化)することで、これらの攻撃を防ぐのが目的。
ASLRだと起動するたびにheap領域以降のアドレスが変化する。

ただし、ランダム化されるのheap領域以降と限定されるため、アドレスが固定化されている部分を利用した攻撃に対するリスクは残っている。

通常のheapの開始アドレスは、0x0804XXXXとかになるが、ASLRだと0xfXXXXXXXで始まるアドレスになる。

PIEについて

ASLRが有効な場合、スタック領域・ヒープ領域や共有ライブラリが置かれるアドレスは一定の範囲の中でランダムに決められる。
一方、実行ファイルそのものが置かれるアドレスは基本的には固定であるが、PIE (Position-Independent Executables) となるようにコンパイル・リンクすることでランダムなアドレスに置けるようにできる。
ASLRでは行われない実行ファイルの配置アドレスもランダム化されるようになる

PIEが有効になっている場合

image.png
アドレスが小さな値をとっている。これは相対アドレスとしてリンクされるため

PIEが無効になっている場合

image.png
アドレスが大きな値をとっている。これは絶対アドレスで指定されているため

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4