アカウント名:
パスワード:
例えば、x86_64アーキテクチャでは、4つのページテーブルページのそれぞれについて、MMUによってアクセスされるオフセットを検出でき、各ページ内のオフセットは9bitのエントロピーを破壊するため、36bitのエントロピーを備えた“完全なASLR”の実装でも安全ではないとしている。
対処しづらくて厄介な問題って事はわかったが、仕組みが何度読み返してもさっぱりわからん(;´д`)
ただの引き算でしょ。
テーブルページのオフセットが判れば9bit分の確定ができる。ASLRの能力が36bit分あっても、36-9=25で25bit分しかないのと同じことになる。25bit程度では、現代では安全ではない。
x86_64ならPGD PUD PMD PTEと4つのページテーブルをたどる1つ辺り9bitが確定できるから、9*4で36bit確定できるよって、36bitでは意味がないってことだろ
36bitでは意味がないっていうか、36bitが4分割されてて、それぞれを攻撃可能だから9bitのエントロピーを4回破壊、つまり11bitのエントロピーの破壊でできたってことで、そこがミソなのかなと。
ごめん引き算を間違えた。もう俺の脳は破壊されているかも
このページには人の脳を攻撃するスクリプトが含まれている!
ASLRを突破した後どうやってバイナリ注入するんだろう?
もうすでにブラウザ上、あるいは何かしらの方法で、native code を実行可能な段階なんでしょ。exploit があっても、ASLR があるから破壊行動ができなかった。でも今は Browser (というか JavaScript)の手助けがあれば、今まで悪用不能だった Exploit が悪用できるようになる、ということと、俺は理解した。
正確に言えばASLRによって無効になった脆弱性がASLRを無効化する攻撃手法が発明されたので再度使えるようになったと。ガンダムみたいな話ですな。問題点はこれがソフトウェアではなくハードウェアに起因する脆弱性ってこと?
ASLRが有効だと、従来のバッファオーバーフロー攻撃を防ぐことが可能。つまり従来型の攻撃を行う前にASLRを無効にしておかなければならない。ASLRを突破したからといって直ちに任意のコードを実行できるわけではない。ということなんでは。9bitのエントロピーがどうとかいう話には私もついていけませんすんません。
ここで言ってる「エントロピー」は、おおざっぱに言えばものすごく精度の良い乱数源のことです。32bitの乱数でアドレスを広範に変えていても、そのうち9bit分の答えがMMUでわかる。だから総当たりの計算時間は1/500になって現実的な攻撃になりうる。(x86_64アーキテクチャの例)
ごめんなさい、#3163880さんご指摘のとおり9bit×4ページなので36bitの完全な乱数系でも危ういことがあるという記述ですね。
3行にまとめてもらったところで仕組みがさっぱりわからんのは変わらんでしょ _(:3 」∠)_
ASLRの話や昔、プログラミングi80386を読んだお陰か、纏めてくださったものを見て、そういう事なのかぁ~と何となくわかった気がしてます。ありがとうございます。
MMU回りは昔イミフでしたが、読んでてよかった感。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ研究家
誰か三行にまとめてくれ (スコア:0)
対処しづらくて厄介な問題って事はわかったが、仕組みが何度読み返してもさっぱりわからん(;´д`)
Re:誰か三行にまとめてくれ (スコア:1)
ただの引き算でしょ。
テーブルページのオフセットが判れば9bit分の確定ができる。
ASLRの能力が36bit分あっても、36-9=25で25bit分しかないのと同じことになる。
25bit程度では、現代では安全ではない。
Re:誰か三行にまとめてくれ (スコア:1)
x86_64ならPGD PUD PMD PTEと4つのページテーブルをたどる
1つ辺り9bitが確定できるから、9*4で36bit確定できる
よって、36bitでは意味がない
ってことだろ
Re:誰か三行にまとめてくれ (スコア:1)
36bitでは意味がないっていうか、36bitが4分割されてて、それぞれを攻撃可能だから
9bitのエントロピーを4回破壊、つまり11bitのエントロピーの破壊でできたってことで、
そこがミソなのかなと。
Re: (スコア:0)
ごめん引き算を間違えた。もう俺の脳は破壊されているかも
Re: (スコア:0)
このページには人の脳を攻撃するスクリプトが含まれている!
Re: (スコア:0)
ASLRを突破した後
どうやってバイナリ注入するんだろう?
Re: (スコア:0)
もうすでにブラウザ上、あるいは何かしらの方法で、native code を実行可能な段階なんでしょ。exploit があっても、ASLR があるから破壊行動ができなかった。でも今は Browser (というか JavaScript)の手助けがあれば、今まで悪用不能だった Exploit が悪用できるようになる、ということと、俺は理解した。
Re: (スコア:0)
正確に言えばASLRによって無効になった脆弱性がASLRを無効化する攻撃手法が発明されたので再度使えるようになったと。
ガンダムみたいな話ですな。
問題点はこれがソフトウェアではなくハードウェアに起因する脆弱性ってこと?
Re: (スコア:0)
ASLRが有効だと、従来のバッファオーバーフロー攻撃を防ぐことが可能。つまり従来型の攻撃を行う前にASLRを無効にしておかなければならない。ASLRを突破したからといって直ちに任意のコードを実行できるわけではない。ということなんでは。
9bitのエントロピーがどうとかいう話には私もついていけませんすんません。
Re:誰か三行にまとめてくれ (スコア:1)
ここで言ってる「エントロピー」は、おおざっぱに言えばものすごく精度の良い乱数源のことです。
32bitの乱数でアドレスを広範に変えていても、そのうち9bit分の答えがMMUでわかる。
だから総当たりの計算時間は1/500になって現実的な攻撃になりうる。(x86_64アーキテクチャの例)
Re: (スコア:0)
ごめんなさい、#3163880さんご指摘のとおり9bit×4ページなので
36bitの完全な乱数系でも危ういことがあるという記述ですね。
Re: (スコア:0)
3行にまとめてもらったところで仕組みがさっぱりわからんのは変わらんでしょ _(:3 」∠)_
Re:誰か三行にまとめてくれ (スコア:1)
ASLRの話や
昔、プログラミングi80386を読んだお陰か、
纏めてくださったものを見て、
そういう事なのかぁ~と何となくわかった気がしてます。
ありがとうございます。
MMU回りは昔イミフでしたが、読んでてよかった感。