パスワードを忘れた? アカウント作成
10146 story

ハイパースレッディングに深刻な脆弱性が報告される 123

ストーリー by GetSet
エンコ時以外は切るかな 部門より

cck曰く、"ITmediaニュースの記事によれば、 FreeBSDプロジェクトでセキュリティを担当するコリン・バーシバル氏より、ハイパースレッディング(HT)の脆弱性に関する論文がオタワで開催された「BSDCan 2005」に提出された、とのことだ。(参考:Hyper-Threading Considered Harmful)
具体的には、HTの脆弱性が原因でローカル情報が流出する可能性があり、権限を持たないユーザがRSA非公開鍵を盗み出せてしまうのだとか。
この問題について、現時点でIntelからの情報は無いとのことだ。"

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • 2003年に発見済 (スコア:4, すばらしい洞察)

    by brake-handle (5065) on 2005年05月14日 11時16分 (#734966)

    FreeBSD-securityに流れたメール [freebsd.org]にありますが、Sunは2003年の時点で、SMTに対して本質的にこの手口による攻撃が可能なことを発見しています。また、キャッシュの挙動によっては、SMTを使用していなくても攻撃可能だそうです。

    何だか、「CPUにキャッシュが載っているために、どこを実行しているかがバレてしまう」ことがガンのように思えてきました。これが正しければ、およそ今の世の中に出ているCPUは全てアウトなんですが...

    • by Anonymous Coward on 2005年05月14日 13時16分 (#735015)
      既知ではあっても、これまでは現実的ではありませんでした。

      従来からSMPやUPでも可能ではあったが、HTTではそれが「理論的にはできる可能性がある」から「確実に盗聴できる」と実現可能性が昇格してしまったことが問題のようです。

      The fundamental trouble is that HTT makes the spying far more efficient than it is with SMP or even UP (I think we are talking in the order of a million times more efficient).

      That takes the attack from the "if you were really lucky" to the "almost always in first try" category.
      親コメント
    • Re:2003年に発見済 (スコア:4, すばらしい洞察)

      by tt (2867) on 2005年05月14日 11時26分 (#734972) 日記
      そんなことはありません。キャッシュ操作関数のうち、重要なものをいわゆる保護モードでしか使えないようにすればよいのです。

      もっともそうなると今のCPUとの互換性はどうすんねんという話になるわけですが。

      あとどうでもいいけど、タレコミ文の

      >権限を持たないユーザがRSA非公開鍵を盗み出せてしまう

      ってのは

      自分以外の、権限を持たないユーザにRSA秘密鍵などの重要な情報を盗み見られてしまう

      のほうがよい気がした。
      --
      -- Takehiro TOMINAGA // may the source be with you!
      親コメント
      • Re:2003年に発見済 (スコア:2, 参考になる)

        by brake-handle (5065) on 2005年05月14日 11時40分 (#734977)

        Kernelにexploitを仕込まれたらゲームオーバーじゃないですか? 攻撃するだけなら別にuserlandにこだわる必要はないんだし。

        phkが言っている

        The fundamental trouble is that HTT makes the spying far more efficient than it is with SMP or even UP (I think we are talking in the order of a million times more efficient).

        ってのを防ぐには... 彼自身は「HTTは同一プロセス内でのみ使用する」と考えてますが、in-kernelなcrypto codeを使用していると(IPsec等)、やはり甘そうです。CPUの実行ユニット間でキャッシュを共有するという考え方がそもそもの欠陥なのでは? 基本設計に落とし穴があるのであれば、互換性は二の次でも良さそうですけど。

        親コメント
        • Re:2003年に発見済 (スコア:1, 参考になる)

          by Anonymous Coward on 2005年05月14日 12時43分 (#734998)
          > 彼自身は「HTTは同一プロセス内でのみ使用する」と考えてますが、in-kernelなcrypto codeを使用していると(IPsec等)、やはり甘そうです。

          すみません、これもう少し詳しく説明してもらえないでしょうか?

          このHTT holeは同時に走るhyperthreadの片方が、もう一方のhyperthreadの走行によって起きるキャッシュ内容の変動を(自分の発行する命令の実行時間によって)間接的に調べることができる。そして、キャッシュに残されている変動パターンは相手が実行した命令によってそれぞれ異なる、というのがベースになっているものだと思いますが、違うでしょうか?であれば同じ owner/process の下にあるhyperthreadが同時走行するように変更することで解決するのでは?

          http://www.daemonology.net/papers/htt.pdf
          親コメント
          • by Anonymous Coward
            別のACです。
            「in-kernelなcrypto code」の条件では、FreeBSDは危険でも、NetBSDは安全ということですか?
        • Re:2003年に発見済 (スコア:1, すばらしい洞察)

          by Anonymous Coward on 2005年05月14日 16時44分 (#735113)
          > Kernelにexploitを仕込まれたらゲームオーバーじゃないですか?
          Kernelにexploitを仕込まれるような状況になった時点ですでにゲームオーバーだと思いますが
          親コメント
  • Intel 迷走中? (スコア:4, すばらしい洞察)

    by Anonymous Coward on 2005年05月14日 11時52分 (#734982)
    ここ数年 Intel は迷走を続けてますね。

    RDRAM導入失敗あたりから始まって、数々のリコール、スピードグレード導入、64bit拡張での敗北、偽デュアルコア、そしてHTTセキュリティホールと散々。

    > The correct (technical) workaround (IMO) is to restrict HTT to be used only for threads from the same process.
    >
    > The political problem is that if all operating systems do that, Intel has a pretty dud feature on their hands, and they are not particularly eager to accept that fact.

    この辺 [freebsd.org] を見て思ったんですが、元々Intelの技術的戦略は

    - アプリケーションにはスレッド化してもらい
    - スレッド実行効率を高めて
    - 各スレッドを高速実行できるようにクロックを上げ
    - それに対応して高速なメモリ規格を導入

    をセットで行うことで対 AMD 戦やってたはずですが、ほぼ全面的に敗北かケチがついた状況に見えます。

    Intel の強いところは切り替えの速さ(PentiumM とか)と生産能力と周辺チップ・規格含めた部分まで展開・マーケティングができる点なので市場での地位は揺るいでないものの、CPU/chipset に関してはx86 互換メーカ + サードパーティ chipset ベンダ連合が互角の地位まで完全に上がってきましたね。かつては

      AMD はオフィスアプリでは互角でも総合的に Intel に劣る

    とか

      AMD の CPU はよくても chipset が屑

    とかいわれてたもんですが…
    • by huixteng (22050) on 2005年05月14日 14時53分 (#735065)
      ただ、そういった技術的なものとは裏腹に
      AMD とか Transmeta とかはパチモンという
      多数派の評価は動かない。

      Intel マーケティングの勝利。

      でも中に何が入っているのか知らない、
      というか、知りたくもないユーザが
      増えればこれも変わってくるでしょうね。
      --
      閾値は 0 で
      親コメント
      • by genzin (23225) on 2005年05月14日 15時22分 (#735080) 日記
        昔々、AMDからIntelに乗り換えた口ですが
        理由がFPUを使う計算の重要度が上がったからで
        した。
         昔は、オフィスアプリなどでは問題ないけど、
        計算をさせると速度が段違い(に遅い)という評判
        でしたが、最近は浮動小数点計算も同じレベルくら
        い速くなってるんでしょうか?

         これもまた、過去実績による、イメージですね。
        親コメント
        • Re:Intel 迷走中? (スコア:1, 参考になる)

          by Anonymous Coward on 2005年05月15日 0時10分 (#735276)
          >最近は浮動小数点計算も同じレベルくらい
          >速くなってるんでしょうか?
          初代のAthlon(K7)の時点で、FPU性能はPentiumIIIを抜いてます。
          SSE2の使用を主眼に置いた設計故ですけど、FPUに関して言えばPentium4はPentiumIIIから退化していますね。

          >これもまた、過去実績による、イメージですね
          K7の登場が99年ですから、ちょっと引きずってるイメージが古すぎますね。
          親コメント
        • by mworld (19014) on 2005年05月15日 10時27分 (#735369) 日記
          たしかK7はFPU2命令を同時処理できるはずなので
          マルチプロセッサにすると差が出るかも。
          親コメント
      • by Anonymous Coward on 2005年05月14日 23時43分 (#735264)
        というか、中身に関心のない人々が、IntelのブランドというかCM戦略に
        まんまと乗せられて上っ面で選んできた結果が
        まさにその 「Intel マーケティングの勝利」 なのではないでしょうか。
        親コメント
  • そういえば、P6以降のIntel CPUにはFDIVバグの反省から、多少の不具合ならマイクロコードにパッチを当てて直す機能がありますけど、今回はSMTの本質的な部分も関わっているような気もするので、難しいかもしれませんね。
    まあ、本当にそれで直したら、立派だけど。
  • CELLでは (スコア:2, 参考になる)

    by kcg (26566) on 2005年05月14日 21時44分 (#735213) ホームページ 日記
    ああ、そうか。CELLではメモリを共有せずにコアをプロテクトするモードがあるとか言ってたのは、こういう問題に対する処置だったのかぁ。
  • by Anonymous Coward on 2005年05月14日 11時10分 (#734965)
    クライアントな皆さんはとりあえず騒ぐ必要はナサゲ。
    それよりも論文にはaffect systemとして FreeBSD/amd64が
    あがっているのが不安。Intelだけじゃないのか?

    SCOは対応早くてgood job!

    #部門名からすると、サーバでエンコという発想のひともいるんだね
    • > それよりも論文にはaffect systemとして FreeBSD/amd64が
      > あがっているのが不安。Intelだけじゃないのか?

      FreeBSDではamd64というアーキテクチャ名でEM64Tに対応しています。
      OpteronやAthlon 64にこの脆弱性があるということではないと思います。
      親コメント
    • "シングルユーザーシステム"といえるOSは現役ではほぼ皆無でしょう。Windows2000やWindowsXPは"マルチユーザー"です。
      一人で使ってればシングルユーザーだとは言えません。なぜなら、別のユーザーの権限で動いてるプログラムも存在しないとは言えないからです。
      もしその別ユーザー権限で動いてるプログラムにリモートから実行可能な脆弱性があれば、今回の脆弱性を利用して"ローカルから"攻撃を仕掛ける事が可能です。

      ローカルからしか攻撃できない脆弱性でも、他のリモート攻撃可能な脆弱性と組み合わされば、それも実質リモート攻撃可能な脆弱性になるということです。

      しかしハードウェアに脆弱性って……どういうことなのか、どう対処すればいいのかよくわからんな……。
      親コメント
  • by Anonymous Coward on 2005年05月14日 14時14分 (#735049)
    この脆弱性は複数のスレッドがキャッシュを共有することが本質的な問題だと思いますが、だとするとキャッシュ共有のマルチコアプロセッサにも同じ脆弱性がありませんか?デュアルコアのOpteronやPentiumは今のところL2キャッシュを共有しないですが、IBMのPOWER4はデュアルコアでL3を共有してます。(POWER5はL3も独立)
    • by ef (25263) on 2005年05月14日 15時56分 (#735094)
      キャッシュ コヒーレンシーを保つ必要から他プロセッサのメモリアクセスパターンが自プロセッサのメモリアクセスのレイテンシに変化を与えるのは(メモリを共有する限り)不可避だと思います。
      #都度キャッシュクリアすれば良いのでしょうが、そのことで別の形のヒントを与えないかを検証する必要があります。
      またデュアルコアや SMT でなくても Hyper Transport を介して継った複数の Opteron の様にローカルのキャッシュミスよりはリモートのキャッシュヒットの方は速い場合は、キャッシュの使われ具合を他プロセッサから推定される可能性は出てくると思います。

      今回の脆弱性を観ると、CELL の設計って暗号向きですね。

      親コメント
  • by Anonymous Coward on 2005年05月15日 6時13分 (#735353)
    シマンテックをはじめとした『セキュリティソフト会社』が
    今回の問題の対策ソフトをリリースできる可能性はあるので
    しょうか?
    そんなレベルの問題ではないのでしょうか。
    • FreeBSDのパッチを見る限り、sysctlで本当にHTTを有効にするか
      というのを追加してるようですね。
      このパッチにより、通常のシステムではHTTが無効になります。
      本当にシングルユーザでしか動かさず、
      ネットワークにつながっていないことが保証されるのであれば、
      sysctlでHTTを有効にするということも出来ます。

      ソフトで出来ることと言えば、このハードウェア(HTT)を使うとまずいということなので、
      ソフト側から認識せず、有効化しないということでしょうね。
      ハードウェアの"管理"はOS=kernelのお仕事ですから、kernel側での
      対処しかできないと思います。
      userlandのシマンテックには何も出来ませんね。

      # さてマイクロソフトはどう出るのか
      親コメント
  • もし今回の脆弱性(ローカルへの情報漏洩)を深刻とランク付けるなら、 『リモートからの』『任意コードの実行』は一体何と表現しましょう?

    # 脆弱性の危険度の修飾語彙(深刻、とか潜在的な、とか)には、
    # それ固有のイメージがある、と思うのですが、どんなもんでしょう?

  • by Anonymous Coward on 2005年05月14日 14時54分 (#735066)
    どうやらコンシューマレベルでは役に立つ?使い道が…
    2chスレ [2ch.net]より。
    #きじゃくせいてのは脆弱性の2ch用語な。
    • by Anonymous Coward on 2005年05月15日 0時18分 (#735281)
      ふとおもったのですが、CPUエミュレーションを行えば
      秘密鍵を盗むこともできてDRMも回避できてしまうのでしょうか?

      例えばCellはセキュリティを保持するためにコアとローカルキャッシュだけで閉じた
      演算を行うことができるという話を聞いたことがありますが
      Cell自体のエミュレーションを行われたら
      仮想Cellとめて仮想ローカルキャッシュ覗き放題?

      だれか、世の中そんなに甘くないと言って下さい。
      親コメント
    • なんともポジティブシンキングな方々ですね。
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...