パスワードを忘れた? アカウント作成
13163883 story
セキュリティ

JavaScriptでASLRを無効化する攻撃「AnC」 6

ストーリー by headless
整列 部門より
あるAnonymous Coward 曰く、

x86/ARM CPUの多くが行っているメモリ管理の仕組みを悪用し、アドレス空間配置のランダム化 (ASLR)をJavaScriptから無効化する攻撃が公表された(PC Watchの記事)。

ASLRはアドレス予測を困難にすることで攻撃を防ぐという技術で、2000年代前半から実装が進んでいる。ローカルからの攻撃により無効化する手法も発見されているが、Webブラウザーの脆弱性緩和などには有効な対策と考えられていた。記事によれば、CPUのキャッシュ階層を利用した「ASLR⊕Cache (AnC)」と名付けられた攻撃により、100秒未満という短い時間でアドレスのランダム化が解除されてしまったという。AnCはハードウェアの仕組みを使用した攻撃のため、ユーザー側では対処不能としている。

正直タレコミ子には説明が難しすぎて理解不能なのだが、技術レベルの高い攻撃者であれば公開された論文を元に数週間程度で攻撃コードが再現できるという事なので、今後はメモリ周りの脆弱性に一層注意が必要かもしれない。

AnCはソフトウェアの弱点を利用するものではないため修正は容易ではないが、CPU/OS/ブラウザーベンダーに対しては公表前に短期的・長期的な緩和策が通知されている。実際にAppleはiOS 10.2.1でWebKitの強化を行ったとのこと。ユーザーレベルでは信頼できないソースからのスクリプト実行をブロックするといった対策しかできないが、有効な攻撃を行うためには別途ブラウザーの脆弱性を利用することになるため、セキュリティ更新プログラム適用の重要性も増しているといえるだろう(VUSecの記事The Registerの記事Ars Technicaの記事)。

  • by Anonymous Coward on 2017年02月19日 16時26分 (#3163800)

    例えば、x86_64アーキテクチャでは、4つのページテーブルページのそれぞれについて、MMUによってアクセスされるオフセットを検出でき、各ページ内のオフセットは9bitのエントロピーを破壊するため、36bitのエントロピーを備えた“完全なASLR”の実装でも安全ではないとしている。

    対処しづらくて厄介な問題って事はわかったが、仕組みが何度読み返してもさっぱりわからん(;´д`)

    ここに返信
    • by Anonymous Coward on 2017年02月19日 16時41分 (#3163804)

      ただの引き算でしょ。

      テーブルページのオフセットが判れば9bit分の確定ができる。
      ASLRの能力が36bit分あっても、36-9=25で25bit分しかないのと同じことになる。
      25bit程度では、現代では安全ではない。

      • by Anonymous Coward

        ごめん引き算を間違えた。もう俺の脳は破壊されているかも

        • by Anonymous Coward

          このページには人の脳を攻撃するスクリプトが含まれている!

    • by Anonymous Coward

      ASLRを突破した後
      どうやってバイナリ注入するんだろう?

      • by Anonymous Coward

        もうすでにブラウザ上、あるいは何かしらの方法で、native code を実行可能な段階なんでしょ。exploit があっても、ASLR があるから破壊行動ができなかった。でも今は Browser (というか JavaScript)の手助けがあれば、今まで悪用不能だった Exploit が悪用できるようになる、ということと、俺は理解した。

typodupeerror

UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア

読み込み中...