アカウント名:
パスワード:
例えば、x86_64アーキテクチャでは、4つのページテーブルページのそれぞれについて、MMUによってアクセスされるオフセットを検出でき、各ページ内のオフセットは9bitのエントロピーを破壊するため、36bitのエントロピーを備えた“完全なASLR”の実装でも安全ではないとしている。
対処しづらくて厄介な問題って事はわかったが、仕組みが何度読み返してもさっぱりわからん(;´д`)
ASLRを突破した後どうやってバイナリ注入するんだろう?
ASLRが有効だと、従来のバッファオーバーフロー攻撃を防ぐことが可能。つまり従来型の攻撃を行う前にASLRを無効にしておかなければならない。ASLRを突破したからといって直ちに任意のコードを実行できるわけではない。ということなんでは。9bitのエントロピーがどうとかいう話には私もついていけませんすんません。
ここで言ってる「エントロピー」は、おおざっぱに言えばものすごく精度の良い乱数源のことです。32bitの乱数でアドレスを広範に変えていても、そのうち9bit分の答えがMMUでわかる。だから総当たりの計算時間は1/500になって現実的な攻撃になりうる。(x86_64アーキテクチャの例)
ごめんなさい、#3163880さんご指摘のとおり9bit×4ページなので36bitの完全な乱数系でも危ういことがあるという記述ですね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
誰か三行にまとめてくれ (スコア:0)
対処しづらくて厄介な問題って事はわかったが、仕組みが何度読み返してもさっぱりわからん(;´д`)
Re: (スコア:0)
ASLRを突破した後
どうやってバイナリ注入するんだろう?
Re: (スコア:0)
ASLRが有効だと、従来のバッファオーバーフロー攻撃を防ぐことが可能。つまり従来型の攻撃を行う前にASLRを無効にしておかなければならない。ASLRを突破したからといって直ちに任意のコードを実行できるわけではない。ということなんでは。
9bitのエントロピーがどうとかいう話には私もついていけませんすんません。
Re:誰か三行にまとめてくれ (スコア:1)
ここで言ってる「エントロピー」は、おおざっぱに言えばものすごく精度の良い乱数源のことです。
32bitの乱数でアドレスを広範に変えていても、そのうち9bit分の答えがMMUでわかる。
だから総当たりの計算時間は1/500になって現実的な攻撃になりうる。(x86_64アーキテクチャの例)
Re: (スコア:0)
ごめんなさい、#3163880さんご指摘のとおり9bit×4ページなので
36bitの完全な乱数系でも危ういことがあるという記述ですね。