ホームページ » の仕方 » ASLRとは何ですか、またどのようにしてコンピュータを安全に保ちますか?

    ASLRとは何ですか、またどのようにしてコンピュータを安全に保ちますか?

    ASLR(Address Space Layout Randomization)は、2001年に最初に実装されたオペレーティングシステムで使用されているセキュリティ技術です。現在のバージョンのすべての主要オペレーティングシステム(iOS、Android、Windows、macOS、およびLinux)はASLR保護を備えています。しかし、先週、ASLRを迂回する新しい方法が発見されました。だから、あなたは心配する必要があります?

    低レベルのプログラミング経験がない人にとって、ASLRは混乱を招く可能性があります。それを理解するには、まず仮想メモリを理解する必要があります.

    仮想メモリとは?

    仮想メモリは多くの利点を持つメモリ管理手法ですが、プログラミングを容易にするために主に作成されました。 4 GBのRAMを搭載したコンピュータで、Google Chrome、Microsoft Word、その他のプログラムをいくつか開いているとします。全体として、このコンピューターのプログラムは4 GB以上のRAMを使用しています。ただし、すべてのプログラムが常にアクティブになるわけではなく、そのRAMに同時にアクセスする必要もありません。.

    オペレーティングシステムは、呼び出されたプログラムに大量のメモリを割り当てます。 ページ数. 一度にすべてのページを保存するのに十分なRAMがない場合は、必要性が最も低いと思われるページを低速の(ただしより広い)ハードドライブに保存します。保存されたページが必要になると、現在RAMにある必要の少ないページでスペースを切り替えます。このプロセスはページングと呼ばれ、Windows上のpagefile.sysファイルにその名前を貸します。.

    仮想メモリは、プログラムが自分自身のメモリを管理するのを容易にし、またそれらをより安全にします。プログラムは、他のプログラムがどこにデータを格納しているのか、あるいはどれだけのRAMが残っているのかを心配する必要はありません。必要に応じて、オペレーティングシステムに追加のメモリを要求する(または未使用のメモリを返す)ことができます。プログラムが見るのは、仮想アドレスと呼ばれる、その独占使用のための単一の連続したメモリアドレスの塊です。プログラムは他のプログラムのメモリを見ることはできません.

    プログラムがメモリにアクセスする必要があるとき、それはオペレーティングシステムに仮想アドレスを与えます。オペレーティングシステムは、CPUのメモリ管理ユニット(MMU)にアクセスします。 MMUは仮想アドレスと物理アドレスを変換し、その情報をオペレーティングシステムに返します。プログラムはRAMと直接対話しません。.

    ASLRとは?

    ASLR(Address Space Layout Randomization)は、主にバッファオーバーフロー攻撃から保護するために使用されます。バッファオーバーフローでは、攻撃者は可能な限り多くのジャンクデータを関数に渡し、その後に悪質なペイロードが続きます。ペイロードは、プログラムがアクセスしようとしているデータを上書きします。コード内の別のポイントにジャンプするための命令は一般的なペイロードです。たとえば、有名なJailbreakMeのiOS 4を脱獄する方法では、バッファオーバーフロー攻撃を使用し、AppleにiOS 4.3にASLRを追加するよう促していました。.

    バッファオーバーフローでは、攻撃者はプログラムの各部分がメモリのどこにあるのかを知る必要があります。これを理解するのは、通常、試行錯誤の難しいプロセスです。それを決定した後、彼らはペイロードを作成し、それを注入するのに適した場所を見つけなければなりません。攻撃者が自分のターゲットコードがどこにあるのかわからない場合、それを悪用することは困難または不可能です。.

    ASLRは仮想メモリ管理と連携して、メモリ内のプログラムのさまざまな部分の場所をランダムにします。プログラムが実行されるたびに、コンポーネント(スタック、ヒープ、ライブラリを含む)は仮想メモリ内の別のアドレスに移動されます。アドレスは毎回異なるため、攻撃者は試行錯誤を通じて自分のターゲットがどこにあるかを知ることができなくなります。一般に、アプリケーションはASLRサポートでコンパイルする必要がありますが、これがデフォルトになりつつあり、Android 5.0以降でも必要になります。.

    だからASLRはまだあなたを保護しますか?

    先週の火曜日に、SUNY Binghamtonとカリフォルニア大学リバーサイド校の研究者らは、Jump Over ASLR:ASLRを回避するためのブランチプレディクタの攻撃という論文を発表しました。この論文はBranch Target Buffer(BTB)を攻撃する方法を詳しく述べています。 BTBは、結果を予測することによってifステートメントを高速化するプロセッサの一部です。作者の方法を使用して、実行中のプログラム内の既知の分岐命令の位置を決定することが可能です。問題の攻撃はIntel Haswellプロセッサ(2013年に最初にリリースされた)を搭載したLinuxマシンで行われましたが、最近のどのオペレーティングシステムおよびプロセッサにも適用される可能性があります。.

    それは言った、あなたは必ずしも絶望するべきではありません。このホワイトペーパーでは、ハードウェアおよびオペレーティングシステムの開発者がこの脅威を軽減する方法をいくつか紹介しました。新しい、よりきめ細かいASLR技術は攻撃者により多くの努力を必要とするでしょう、そしてエントロピーの量(ランダム性)の増加はジャンプオーバー攻撃を実行不可能にすることができます。おそらく、新しいオペレーティングシステムやプロセッサはこの攻撃の影響を受けないでしょう。.

    だから何のために残されている 君は やる? Jump Overバイパスは新しいもので、まだ実際には発見されていません。攻撃者がそれを悪用すると、この欠陥により、攻撃者がデバイスに与える可能性のある損害が増大します。このレベルのアクセスはかつてないほどです。マイクロソフトとアップルは、2007年以降にリリースされたオペレーティングシステムにのみASLRを実装しました。この種の攻撃が一般的になっても、Windows XPの時代に戻ったときよりも悪くなることはありません。.

    攻撃者がまだ害を及ぼすためにあなたのデバイス上で彼らのコードを入手しなければならないことを覚えておいてください。この欠陥はあなたに感染するための追加の方法を彼らに提供しません。いつものように、セキュリティのベストプラクティスに従うべきです。ウイルス対策を使用し、大ざっぱなWebサイトやプログラムから離れて、ソフトウェアを最新の状態に保ちます。これらの手順に従って悪意のある行為者をコンピュータから遠ざけることで、これまでと同じように安全になります。.

    画像クレジット:スティーブ/フリッカー