6

説を聞いたことがあります。アドレス空間の場所のランダム化は、ライブラリを取得し、仮想アドレス空間のランダム化された場所にロードするため、ハッカーがプログラムに穴を見つけた場合でも、return-to-libc 攻撃を実行するための既知のアドレスを持っていません。たとえば反対。しかし、数秒間考えてみると、防御策としては意味がありません。

仮想の TargetLib (libc またはハッカーが探しているその他のもの) が、決定論的なアドレスではなく、ランダム化されたアドレスにロードされているとしましょう。ハッカーは、TargetLib とその中のルーチンがどこにあるかを事前に知りませんが、アプリケーション コードも知りません。TargetLib 内のルーチンを見つけるために、バイナリのどこかにある種のルックアップ テーブルが必要であり、それは決定論的な場所にある必要があります。(または、他の何かによって指されているランダムな場所。必要な数の間接参照を追加できますが、最終的には既知の場所から開始する必要があります。)

これは、攻撃コードを TargetLib の既知の場所に向ける代わりに、ハッカーが行う必要があるのは、アプリケーションのルックアップ テーブルの TargetLib のエントリに攻撃コードを向け、そのポインターをターゲット ルーチンへ逆参照することだけであり、攻撃は妨げられずに進行することを意味します。

ASLR の仕組みについて理解できないことはありますか? 説明したように、セキュリティのイメージを提供するだけで実際の内容を提供するスピード バンプ以上のものであることがわかりません。何か不足していますか?

4

2 に答える 2

2

共有ライブラリのベースアドレスが変わるので効果があると思います。共有ライブラリからインポートされた関数は、ロード時に実行可能イメージにパッチされることを思い出してください。したがって、テーブル自体は存在せず、プログラムのコード全体に散在するデータとコードを指す特定のアドレスのみが存在します。

単純なバッファ オーバーラン (スタック上の戻りアドレスを設定できる場所) を、オーバーランに正しい場所を特定するためのコードが含まれている必要がある場所に作成し、そこに jmp するため、効果的な攻撃のハードルが高くなります。おそらく、これはそれを難し​​くするだけです。

Windows の事実上すべての DLL は、実行される可能性が低く、とにかく移動されるベース アドレス用にコンパイルされますが、コア Windows のものは、再配置が不要になるようにベース アドレスが最適化される傾向があります。

于 2010-10-03T21:42:14.850 に答える
1

正しく質問されているかわかりませんが、ASLR が有効な場合と無効な場合について説明します。

app.exe と TargetLib.dll があるとします。app.exe は TargetLib.dll を使用 (リンク) しています。説明を簡単にするために、仮想アドレス空間にはこれら 2 つのモジュールのみがあると仮定します。

両方で ALSR が有効になっている場合、app.exe のベース アドレスは不明です。ロード時にいくつかの関数呼び出しアドレスを解決する可能性がありますが、攻撃者は関数がどこにあるのか、解決された変数がどこにあるのかわかりません。TargetLib.dll が読み込まれると、同じことが起こります。app.exe にはルックアップ テーブルがありますが、攻撃者はそのテーブルがどこにあるかを知りません。

攻撃者は特定のアドレスの内容を知ることができないため、固定アドレス情報を使用せずにアプリケーションを攻撃する必要があります。スタック オーバーフロー、ヒープ オーバーフロー、use-after-free などの通常の攻撃方法を使用すると、通常はより困難になります。

一方、app.exe で ASLR が有効になっていない場合は、攻撃者がアプリケーションを悪用するのははるかに簡単です。app.exe 内の特定のアドレスに興味深い API への関数呼び出しが存在する可能性があり、攻撃者はそのアドレスをターゲット アドレスとして使用してジャンプする可能性があるためです。(通常、アプリケーションへの攻撃は、任意のアドレスへのジャンプから始まります。)

補足: もうお分かりかもしれませんが、一つだけはっきりさせておきたいと思います。攻撃者がメモリ破損などの脆弱性によってアプリケーションを悪用する場合、通常はfixed address jump instruction. 彼らはrelative address jump命令を悪用することはできません。これが、ALSR がこのようなエクスプロイトに対して非常に効果的である理由です。

于 2014-07-23T08:41:07.173 に答える