アドレス空間配置のランダム化
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/03/11 08:50 UTC 版)
アドレス空間配置のランダム化(英語: address space layout randomization, ASLR)とは、重要なデータ領域 の位置(通常、プロセスのアドレス空間における実行ファイルの基底とライブラリ、ヒープ、およびスタックの位置が含まれる)を無作為に配置するコンピュータセキュリティの技術である。
- ^ On the Effectiveness of Address-Space Randomization,Shacham, H. and Page, M. and Pfaff, B. and Goh, E.J. and Modadugu, N. and Boneh, D,Proceedings of the 11th ACM conference on Computer and communications security,pp 298--307, 2004
- ^ a b RAM、ROM、フラッシュメモリなどのトランジスタメモリとキャッシュサイズおよびファイルサイズはK (10241)、M (10242)、G (10243)、…を2進接頭辞として使う。
- ^ Comparison of PaX to ExecShield and W^X
- ^ Theo De Raadt (2005年). “Exploit Mitigation Techniques (updated to include random malloc and mmap) at OpenCON 2005”. 2009年8月26日閲覧。
- ^ http://www.tomshardware.com/reviews/pwn2own-mac-hack,2254-4.html
- ^ http://msdn.microsoft.com/en-us/library/bb430720.aspx
- ^ “MS08-078 and the SDL”. The Security Development Lifecycle. Microsoft (2008年12月18日). 2009年3月21日閲覧。
- ^ Windows® Internals: Including Windows Server 2008 and Windows Vista, Fifth Edition (PRO-Developer) ISBN 978-0-735-62530-3
- ^ Ollie Whitehouse (2007年2月). “An Analysis of Address Space Layout Randomization on Windows Vista” (PDF). 2010年7月24日閲覧。
- ^ WehnTrust
- ^ Security Architects' Ozone
- ^ Address-Space Randomization for Windows Systems
- ^ アドレス空間配置のランダム化 (ASLR)
- ^ Apple - Mac OS X - Security - Keeps safe from viruses and malware Archived 2011年5月25日, at the Wayback Machine.
- ^ Quick Leopard Update | securosis.com
- ^ Matasano Chargen » A Roundup Of Leopard Security Features
- ^ Matasano Chargen » What We’ve Since Learned About Leopard Security Features
- ^ TippingPoint | DVLabs | New Leopard Security Features - Part I: ASLR
- ^ “Apple - OS X Lion - Over 250 new features. Read about all of them.”. web.archive.org (2011年6月6日). 2023年3月11日閲覧。
- ^ “OS X Mountain Lion Core Technologies Overview June 2012”. Apple. 2023年3月11日閲覧。
- ^ Pwn2Own day 2: iPhone, BlackBerry beaten; Chrome, Firefox no-shows, Ars Technica, 11 March 2011
- ^ “Android Security”. Android Developers. 2012年7月7日閲覧。
- 1 アドレス空間配置のランダム化とは
- 2 アドレス空間配置のランダム化の概要
- 3 利点
- 4 歴史
- 5 外部リンク
アドレス空間配置のランダム化
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/02/17 14:43 UTC 版)
「PaX」の記事における「アドレス空間配置のランダム化」の解説
アドレス空間配置のランダム化(ASLR)は、アドレス空間配置に関する知識を利用した攻撃に対処する技法である。それは、既存のコードをプログラマが意図しない順序で実行させる攻撃である。 PaX におけるASLRはスタック領域とヒープ領域のベースアドレスをプロセス毎に無作為に変化させる。また、オプションで mmap() や実行コード部のベースアドレスもランダム化する。これにより攻撃側が攻撃すべき位置を推測するのが難しくなる。 図2は、アドレス空間配置のランダム化を施したアドレス空間を図示したものである。点線と矢印で示された部分が仮想空間上の各領域間のランダムな空隙を示している。カーネルがプロセスを初期化するとき、これら矢印の長さが無作為に変化させられる(各領域の並び順は基本的に変わらない)。 プログラムの実行中、ヒープ領域はメモリアドレスの大きい方に成長していく。逆にスタックはアドレスの小さい方に成長していく。これらの領域を各プログラムがどれだけ必要とするかはOSには不明である。いわゆるプラグインなどの動的ライブラリを実行中にロードする場合、通常はヒープの前に置かれる。OSまたはプログラムはそれらライブラリを配置するのに適切なオフセットを選択しなければならない。PaX はアドレスのMSB側の部分をランダム化しない。これによって大まかな配置が守られ、各領域が重ならないようにする。 ランダム化の効果は CPU に依存する。32ビットのCPUでは、一般に仮想アドレスは32ビットであり、4GiB の空間にアクセス可能である。Linux は先頭 1GiB をカーネル用に使っているため、ユーザープロセスが使えるのは 3GiB である。SEGMEXEC はこれを半分に分割するので、ランダム化は 1.5GiB の範囲で行われる。ページサイズは 4KiB であり、ランダム化はページサイズ単位に行われる。MSB側の4ビットはランダム化されないので、ヒープ領域は仮想空間の先頭に、スタック領域は最後尾に配置される。このため、ヒープやスタックのランダム化される範囲は16ビット程度で表される範囲になる。 64ビットCPUでは、仮想空間はより大きくなる。従って、ランダム化はさらに大胆に行われることになり、攻撃される可能性がそれだけ少なくなると言える。
※この「アドレス空間配置のランダム化」の解説は、「PaX」の解説の一部です。
「アドレス空間配置のランダム化」を含む「PaX」の記事については、「PaX」の概要を参照ください。
固有名詞の分類
- アドレス空間配置のランダム化のページへのリンク