ASLR

読み:エイエスエルアー
外語:ASLR: Address Space Layout Randomization 英語
品詞:名詞

実行プログラムの命令やデータ、ヒープスタック等の配列を無作為に変更する技術。アドレス空間配置のランダム化。OpenBSDLinuxWindows Vistaなどで対応している。

目次

バッファーオーバーフロー脆弱性への対抗技術の一つ。

オペレーティングシステムごとにアプローチは若干違うが、命令、ヒープ、スタックといった各領域について、メモリー領域への配列をランダム化する。実行ごとに無作為に配列されるため、バッファーオーバーフローを利用する不正な命令が、他の命令、文字列、あるいは共有ライブラリ等を(不正に)呼び出すことが難しくなり、もって攻撃を受けにくくでき、セキュリティが向上する。

ASLRがない(従来の)状態では、同じようなシステムで同一のプログラムを実行すれば、命令や文字列などは同じ配置となる。この状態だと、バッファーオーバーフローによる攻撃がしやすい。

OpenBSD

何よりもセキュリティを重視するOpenBSDが、ASLR的な機能を有効にした最初のOSとなった。

この機能はW^Xと呼ばれているが、これはASLRとほぼ同じものである。パクリ疑惑まであるらしい。

Linux

ASLRという語は元々、PaXというLinux向けの実装開発プロジェクトによる造語であった。

Linuxでは、PaXやExec Shieldといったセキュリティ向上パッチを導入することで、アプリケーションのバッファーオーバーフローに対抗することにした。

PaXは、NXビットを併用したセキュリティ向上を目指した実装である。コード領域とデータ領域を明確にページ分けし、その上で、データ用ページは実行不可に、コード用ページは書き込み不可にするとともに、無作為な配置を実施する。これにより、プログラムに対し、正しい実行以外を出来ないようにするものである。

Microsoft Windows

Windows Vista以降では、専用にASLRに対応するようにリンクされた実行ファイルに限り、ASLRが利用できるようになった。

DEPを併用することで、上述したLinuxのPaXやExec Shield相当以上のセキュリティが実現される。

WindowsのASLRは、スタック、ヒープの他に、プロセス環境ブロック(PEB)などの配列も無作為に変更されるとしている。

Microsoftの説明によれば、ASLRはDEP/GSなど他の防御壁を突破して動作したコードの正常な実行を妨げることで、不正なプログラムの侵入防止をするもの、としている。

関連する用語
DEP
/GS

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club