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

新たな「Spectre」関連の脆弱性が発見される 35

ストーリー by hylom
まだ終わらなかった 部門より
あるAnonymous Coward曰く、

CPUの投機的実行機能が原因の脆弱性「Spectre」の新たな亜種が報告された。「Spectre 1.1」「Spectre 1.2」などと名付けられており、IntelのほかAMDやARM系のプロセッサも影響を受けるという(Bleeping CcomputerITmediaSlashdot)。

Spectre 1.1では、本来プロセスがアクセスできない領域に格納されているデータを読み取れる可能性があり、現時点ではこれを使った攻撃を効率的な手段はないという。また、Spectre 1.2ではCPUメモリ上にあるリードオンリーに設定されたデータを書き換えることができるという。

  • by a2lg (36523) on 2018年07月17日 14時31分 (#3444116)

    この論文 [mit.edu]で提案されている Spectre 1.1 と 1.2 の共通点は、投機的実行パスにおいて脆弱性を“仮想的に”突くことで、本来読めないデータを読めるようにするというものです。特に Spectre 1.2 は実際にリードオンリーに設定されたデータを書き換えるというわけではなく、投機的実行パス (のみ) において読み取り専用のデータを書き換え、投機的実行パスを任意のものに置き換えることによって本来読めないメモリ等を読み取ろうとする (サンドボックス等におけるコードの制約を回避する?) 攻撃のようです。

    これが成り立つのは、オリジナルの Spectre の一部バリアントでもそうですが投機的実行パスにおいて多くの権限チェックを飛ばすことに起因しており、普通は実行できないコードが投機的には実行されてしまうことで、その結果を間接的に推測できてしまうということにあります。

    ここに返信
    • by Anonymous Coward

      ここのとこ、意味がよくわからない

      …実際にリードオンリーに設定されたデータを書き換えるというわけではなく
      投機的実行パス (のみ) において読み取り専用のデータを書き換え

      • 読み取り専用のデータを“書き換えた”コードを (少なくとも) 投機的実行パスで実行させるということです。普通に実行すると例外が発生するコードパスではありますが、投機的実行の際には幾つかのチェック (Meltdown の場合カーネル/ユーザーモードのページ権限フラグ、Spectre 1.2 の場合ページの読み取り専用フラグ) が飛ばされるため、本来実行できないはずのコードでも投機的には実行できてしまいます (しかも、秘密にすべき値に依存する投機的動作まで行ってしまう)。

        この結果は (分岐予測が外れるなどして) 実行されなければ実際の状態には表向きは反映されず、実行されたなら例外を引き起こしますが、投機的実行によって生まれたキャッシュ等の状況の差から秘密の値を読み取れてしまうというのが Spectre variant 1 系 (今回の攻撃含む) / Meltdown の大まかな説明です (間違ってたら申し訳ない)。

        • 自己レス。

          解説を Meltdown 寄りにしすぎて Spectre 1.0/1.1 の特徴を掴み損ねてましたね……。投機的実行においてハードウェア的に権限チェックをスキップすることだけではなく、(ソフトウェア的にも) 本来実行してはならないコードパスを投機的に実行した痕跡がキャッシュを通じて残ってしまうこと自体を悪用するのがだいたいの大枠と言っていいかと。

      • by Anonymous Coward

        投機実行中のプロセッサはメモリアクセスの権限チェックをさぼり、読み取り専用領域へのストアもストアバッファに格納し、ロードはそっちを優先的に参照してしまうので、投機実行中のプログラムはあたかも(書き込み禁止であるはずの)データを書き換えたかのように振る舞う
        特に分岐テーブルなどは通常は読み取り専用領域に格納されているが、これを書き換えて本来ならあり得ない先に分岐したかのように投機実行中は振る舞うことができる
        投機失敗が判明すると投機実行の痕跡は跡形もなく消去され、なにごともなかったことになる
        が、キャッシュやTLBや分岐予測器などにごくわずかな痕跡が残ってしまうので脆弱性となる

        • by Anonymous Coward

          プロセッサはどういう命令を実行すると投機実行モードに入るのかというと
          ・条件分岐命令
          ・間接分岐命令
          ・メモリアクセス例外、算術例外、特権例外などを起こす命令
          なので、整数演算以外の大半は投機実行の要因となります
          実際、プロセッサはほとんどは投機実行モードで動いているので、権限チェックをさぼって後でまとめて解決するとおいしい
          富士通のプロセッサはそこをきちんと理解した上でさぼらなかったのでしょう
          実にすばらしい

          • by Anonymous Coward

            ページング方式でメモリアクセス例外を検出するには、アクセスされる実効仮想アドレスを計算し、それに基づきページテーブルエントリを取得し、エントリの属性を見る必要がある
            ほぼすべてのOoOプロセッサはメモリアクセス命令は実効アドレスの計算とロード/ストア操作の2つのuopに分解して実行する
            セグメント方式であれば、メモリアクセス命令を修飾しアクセス対象のセグメントを指定する
            ストア命令をフェッチした時点でストア対象のセグメントの属性を取得し直ちに例外を起こすことができる
            ページングでなにもかもやろうとしたunixの汚い部分がモロに出ましたな

            • by Anonymous Coward

              unixよりはページングの方が古いんじゃないの?

              • by Anonymous Coward

                ページングは1960年代に現れたそうな。UNIX以前ね。
                そして、オリジナルのUNIX(AT&T系)はページングじゃなくてスワッピング。
                UNIX界隈でのページングはBSDが初出かな。

  • Bleeping Computer、ITmedia共AMDプロセッサに関する記述は無いようですが…。

    #スペルチェックにComputerの綴りが違うと怒られたぞいw

    ここに返信
    • by Anonymous Coward

      でかでかと

      > Bug affects Intel and ARM, most likely AMD too

      って書かれてるけど

      • by Anonymous Coward

        #3444139ですが、"most likely"じゃない、確かな情報ソースが欲しかったんですよ。

        で、自分で見つけちゃったw

        https://www.amd.com/en/corporate/security-updates [amd.com]
        にありました♪

        Spectre Mitigation Update

        7/13/18

        This week, a sub-variant of the original, Google Project (GPZ) variant 1 / Spectre security vulnerability was disclosed by MIT. Consistent with variant 1, we believe this threat can be mitigated through the operating system (OS). AMD is working with the software ecosystem to mitigate variant 1.1 through operating system updates where necessary. We have not identified any AMD x86 products susceptible to the Variant 1.2 vulnerability in our analysis to-date. Please check with your O

  • by Anonymous Coward on 2018年07月17日 15時15分 (#3444142)

    スラドですら、簡単なビット反転とか配線ミスだと思って、こんなものはパッチですぐ修正される、天下のIntel様に不可能はないって言い張ってた変な人がいたけど、もういなくなったよね。

    ここに返信
    • by Anonymous Coward

      年明けから色々見つかっているけど、
      実際のところ対策をしないとどうなの?

      今のところ何もしていないんだけど。
      実際被害に遭ったって話も聞いていないんだけど。

      • by Anonymous Coward

        既に主要OSとブラウザには性能低下パッチが何回も配布されてるよ、誰も気づいてないだけで

        • by Anonymous Coward

          Bios更新で降りてくるやつは流石に気づいてるよ

  • by Anonymous Coward on 2018年07月17日 15時19分 (#3444144)

    >これを使った攻撃を効率的な手段はないという。
    防ぐ手段がないのか、攻撃する手段がないのか

    ここに返信
  • by Anonymous Coward on 2018年07月17日 16時16分 (#3444184)

    大元のSpectreだとSPARCも引っ掛かってたんだけど
    こっちはセーフ?

    …検証されてないだけな気もするけど

    ここに返信
    • by Anonymous Coward on 2018年07月17日 18時31分 (#3444251)

      むしろメインフレームの時代です。

      富士通のケースですが、SPARC の UNIX サーバでは Spectre への対処が必要だったのに、メインフレームでは影響なかったんですよ。
      http://www.fujitsu.com/jp/products/software/resources/condition/securi... [fujitsu.com]

      「メインフレーム、UNIXサーバ、そしてスパコンで命令セットアーキテクチャは異なりますが、実は中核となるマイクロアーキテクチャは共通にしています。」
      http://journal.jp.fujitsu.com/2016/08/23/01/ [fujitsu.com]
      っていうのに脆弱性がないので、正直驚きました。

      • by Anonymous Coward

        それは読み違いだぞ。

        データの改ざんの可能性はありません。

        Spectre/Meltdownではデータを盗み取ることしかできないから、これは一般的な事実を述べているだけ。

        攻撃者が本脆弱性を突くためには悪意あるプログラムを攻撃対象の装置上で実行することが必要になりますので、外部ネットワーク(インターネット等)からリモートアクセスをするだけではメモリデータを参照する行為はできません。

        これは意地の悪い言い方をすれば「Spectre/Meltdownを使うためには、標的をウィルスに感染させる必要があります。きちんと対策をしていればそもそもウィルスに感染しませんので、関係ありません」という意味。

        これは「脆弱性はありますが、そもそも使われた時点で終わりなので、無視します」という発表であって、嘘ではないし書いてある対応にも問題はないが、
        「脆弱性はありません」という意味ではない

        • by Anonymous Coward

          IBMのメインフレームも同じようなものですが、メインフレームは設計が違うのでその趣旨を理解していないと
          ダメでしょう。PCサーバと同じと考えているようだと間違えますよ。

          余談ですが、処理速度向上のための投機的実行機能を搭載していないような昔のCPUであるとspectreのような攻撃には強いです。
          シングルスレッドのOSも強い(そもそもウイルスが侵入した後で活動するプロセス自体が存在しないので)。
          Webに依存せず、ネットワークに繋がらないシステムも強い(ネットワーク経由で潜在的な攻撃が届かないため)。
          ネットワークが独自で物理的にインターネットに繋がっていないシ

          • by nim (10479) on 2018年07月18日 10時26分 (#3444623)

            > この中の一つとしてメインフレームはPCと構造が違うので強いという話になるでしょう。

            「一つとして」は否定で受けないと意味がわからん。
            この中の一つとして、強いという話にはつながらない、ということか?

            いずれにせよ、IBMのメインフレームはTCP/IPも喋れるから、

            > Webに依存せず、ネットワークに繋がらないシステムも強い(ネットワーク経由で潜在的な攻撃が届かないため)。
            > ネットワークが独自で物理的にインターネットに繋がっていないシステムも強い(ISDN網や昔のホストなど)。

            はメインフレーム全てであたる項目ではないし、
            全てであたらなくていいなら、Windowsだって独自ネットワークだけにしかつながってないシステムはあるから、メインフレームとは関係ない話だね。

            • by Anonymous Coward

              「攻撃者である可能性のある相手から受け取ったプログラムやスクリプトを実行するようなアーキテクチャになってないから攻撃の余地がない」ってのは大体の場合に置いて真実なんだし、そんなところで噛み付くのはなんか気持ちが悪いよ。
              まぁコレはPCサーバでも結構な場合において同じことが言えるから、メインフレームに限った話ではないけどさ。

          • by Anonymous Coward

            いや? 構造は同じだよ。だからメインフレームにも脆弱性はある。

            Webに依存せず、ネットワークに繋がらないシステムも強い(ネットワーク経由で潜在的な攻撃が届かないため)。
            ネットワークが独自で物理的にインターネットに繋がっていないシステムも強い(ISDN網や昔のホストなど)。

            影響がない理由は、こっち。脆弱性はあるが、攻撃者が悪用する必要や方法がないので、理解さえしていれば放置しても何ら危険がないということ。

            ISDN網は維持したほうがいいでしょうね。

            時代が下るにつれ統合失調症が軽症化しているというのは本当なんだろうね。

            • by Anonymous Coward

              > 時代が下るにつれ統合失調症が軽症化しているというのは本当なんだろうね。

              事実ですが、今回の話とどういう関係が?
              この人 https://srad.jp/~tagga/journal/621894/ [srad.jp] のように、素人判断のレッテル貼りがしたいんでしょうか

  • by Anonymous Coward on 2018年07月17日 22時40分 (#3444426)

    作れよ

    ここに返信
    • by Anonymous Coward

      CPUが悪いのではない
      高速化手法の投機実行が悪いので
      インオーダ実行にしたら解決する

      近年でインオーダのものだと古いAtomがそうなので
      Atomの設計思想を発展していけば何とかなる(性能は酷い物になるだろうけど)

      • by Anonymous Coward

        インオーダでも投機実行はやるだろ

    • by Anonymous Coward

      IntelもAMDも新製品開発は1,2年休んでいいから、設計を根本的に見直してほしい。1,2年休まなくても、昔のように2倍3倍の性能になるわけではないんだから。

      • by Anonymous Coward

        設計を根本に見直したCPUを作るには4年ぐらいかかるらしいよ。
        RyzenがJim KellerがAMDに戻って4年半ぐらいかかってる。

        • by Anonymous Coward

          完全に見直したらWindowsが動かないしな

      • by Anonymous Coward

        こういうこと言う人って、なんでいつまでもシングルスレッドのパフォーマンスで語るんだろうか

        • by Anonymous Coward

          シングルスレッドでしかプログラム組まないから、イメージできないんだろう。
          もっとも、ここ20年くらい前から普通の環境なら 自分がシングルスレッドしか組まなくても、同じ性能のコアが並列並ぶだけでも恩恵は十二分に得られるのだけど、1アプリしか同時に使わんみたいな使い方だと、その恩恵も感じてないのかもなぁ。

        • by Anonymous Coward

          下々のものはもう何年も2コアか行っても4コアをうろうろするだけですからね。しょうがないですよ。

typodupeerror

あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー

読み込み中...