ア | イ | ウ | エ | オ |
カ | キ | ク | ケ | コ |
サ | シ | ス | セ | ソ |
タ | チ | ツ | テ | ト |
ナ | ニ | ヌ | ネ | ノ |
ハ | ヒ | フ | ヘ | ホ |
マ | ミ | ム | メ | モ |
ヤ | ユ | ヨ | ||
ラ | リ | ル | レ | ロ |
ワ | ヰ | ヴ | ヱ | ヲ |
ン |
A | B | C | D | E |
F | G | H | I | J |
K | L | M | N | O |
P | Q | R | S | T |
U | V | W | X | Y |
Z | 数字 | 記号 |
実行プログラムの命令やデータ、ヒープ、スタック等の配列を無作為に変更する技術。アドレス空間配置のランダム化。OpenBSD、Linux、Windows Vistaなどで対応している。
バッファーオーバーフロー脆弱性への対抗技術の一つ。
オペレーティングシステムごとにアプローチは若干違うが、命令、ヒープ、スタックといった各領域について、メモリー領域への配列をランダム化する。実行ごとに無作為に配列されるため、バッファーオーバーフローを利用する不正な命令が、他の命令、文字列、あるいは共有ライブラリ等を(不正に)呼び出すことが難しくなり、もって攻撃を受けにくくでき、セキュリティが向上する。
ASLRがない(従来の)状態では、同じようなシステムで同一のプログラムを実行すれば、命令や文字列などは同じ配置となる。この状態だと、バッファーオーバーフローによる攻撃がしやすい。
何よりもセキュリティを重視するOpenBSDが、ASLR的な機能を有効にした最初のOSとなった。
この機能はW^Xと呼ばれているが、これはASLRとほぼ同じものである。パクリ疑惑まであるらしい。
ASLRという語は元々、PaXというLinux向けの実装開発プロジェクトによる造語であった。
Linuxでは、PaXやExec Shieldといったセキュリティ向上パッチを導入することで、アプリケーションのバッファーオーバーフローに対抗することにした。
PaXは、NXビットを併用したセキュリティ向上を目指した実装である。コード領域とデータ領域を明確にページ分けし、その上で、データ用ページは実行不可に、コード用ページは書き込み不可にするとともに、無作為な配置を実施する。これにより、プログラムに対し、正しい実行以外を出来ないようにするものである。
コメントなどを投稿するフォームは、日本語対応時のみ表示されます