新たな「Spectre」関連の脆弱性が発見される 35
ストーリー by hylom
まだ終わらなかった 部門より
まだ終わらなかった 部門より
あるAnonymous Coward曰く、
CPUの投機的実行機能が原因の脆弱性「Spectre」の新たな亜種が報告された。「Spectre 1.1」「Spectre 1.2」などと名付けられており、IntelのほかAMDやARM系のプロセッサも影響を受けるという(Bleeping Ccomputer、ITmedia、Slashdot)。
Spectre 1.1では、本来プロセスがアクセスできない領域に格納されているデータを読み取れる可能性があり、現時点ではこれを使った攻撃を効率的な手段はないという。また、Spectre 1.2ではCPUメモリ上にあるリードオンリーに設定されたデータを書き換えることができるという。
実際の書き換えではない (スコア:2)
この論文 [mit.edu]で提案されている Spectre 1.1 と 1.2 の共通点は、投機的実行パスにおいて脆弱性を“仮想的に”突くことで、本来読めないデータを読めるようにするというものです。特に Spectre 1.2 は実際にリードオンリーに設定されたデータを書き換えるというわけではなく、投機的実行パス (のみ) において読み取り専用のデータを書き換え、投機的実行パスを任意のものに置き換えることによって本来読めないメモリ等を読み取ろうとする (サンドボックス等におけるコードの制約を回避する?) 攻撃のようです。
これが成り立つのは、オリジナルの Spectre の一部バリアントでもそうですが投機的実行パスにおいて多くの権限チェックを飛ばすことに起因しており、普通は実行できないコードが投機的には実行されてしまうことで、その結果を間接的に推測できてしまうということにあります。
Re: (スコア:0)
ここのとこ、意味がよくわからない
…実際にリードオンリーに設定されたデータを書き換えるというわけではなく、
投機的実行パス (のみ) において読み取り専用のデータを書き換え…
Re:実際の書き換えではない (スコア:2)
読み取り専用のデータを“書き換えた”コードを (少なくとも) 投機的実行パスで実行させるということです。普通に実行すると例外が発生するコードパスではありますが、投機的実行の際には幾つかのチェック (Meltdown の場合カーネル/ユーザーモードのページ権限フラグ、Spectre 1.2 の場合ページの読み取り専用フラグ) が飛ばされるため、本来実行できないはずのコードでも投機的には実行できてしまいます (しかも、秘密にすべき値に依存する投機的動作まで行ってしまう)。
この結果は (分岐予測が外れるなどして) 実行されなければ実際の状態には表向きは反映されず、実行されたなら例外を引き起こしますが、投機的実行によって生まれたキャッシュ等の状況の差から秘密の値を読み取れてしまうというのが Spectre variant 1 系 (今回の攻撃含む) / Meltdown の大まかな説明です (間違ってたら申し訳ない)。
Re:実際の書き換えではない (スコア:1)
自己レス。
解説を Meltdown 寄りにしすぎて Spectre 1.0/1.1 の特徴を掴み損ねてましたね……。投機的実行においてハードウェア的に権限チェックをスキップすることだけではなく、(ソフトウェア的にも) 本来実行してはならないコードパスを投機的に実行した痕跡がキャッシュを通じて残ってしまうこと自体を悪用するのがだいたいの大枠と言っていいかと。
Re: (スコア:0)
投機実行中のプロセッサはメモリアクセスの権限チェックをさぼり、読み取り専用領域へのストアもストアバッファに格納し、ロードはそっちを優先的に参照してしまうので、投機実行中のプログラムはあたかも(書き込み禁止であるはずの)データを書き換えたかのように振る舞う
特に分岐テーブルなどは通常は読み取り専用領域に格納されているが、これを書き換えて本来ならあり得ない先に分岐したかのように投機実行中は振る舞うことができる
投機失敗が判明すると投機実行の痕跡は跡形もなく消去され、なにごともなかったことになる
が、キャッシュやTLBや分岐予測器などにごくわずかな痕跡が残ってしまうので脆弱性となる
Re: (スコア:0)
プロセッサはどういう命令を実行すると投機実行モードに入るのかというと
・条件分岐命令
・間接分岐命令
・メモリアクセス例外、算術例外、特権例外などを起こす命令
なので、整数演算以外の大半は投機実行の要因となります
実際、プロセッサはほとんどは投機実行モードで動いているので、権限チェックをさぼって後でまとめて解決するとおいしい
富士通のプロセッサはそこをきちんと理解した上でさぼらなかったのでしょう
実にすばらしい
Re: (スコア:0)
ページング方式でメモリアクセス例外を検出するには、アクセスされる実効仮想アドレスを計算し、それに基づきページテーブルエントリを取得し、エントリの属性を見る必要がある
ほぼすべてのOoOプロセッサはメモリアクセス命令は実効アドレスの計算とロード/ストア操作の2つのuopに分解して実行する
セグメント方式であれば、メモリアクセス命令を修飾しアクセス対象のセグメントを指定する
ストア命令をフェッチした時点でストア対象のセグメントの属性を取得し直ちに例外を起こすことができる
ページングでなにもかもやろうとしたunixの汚い部分がモロに出ましたな
Re: (スコア:0)
unixよりはページングの方が古いんじゃないの?
Re: (スコア:0)
ページングは1960年代に現れたそうな。UNIX以前ね。
そして、オリジナルのUNIX(AT&T系)はページングじゃなくてスワッピング。
UNIX界隈でのページングはBSDが初出かな。
Spectre1.1と1.2がAMDプロセッサに影響するってソースはどこ? (スコア:0)
Bleeping Computer、ITmedia共AMDプロセッサに関する記述は無いようですが…。
#スペルチェックにComputerの綴りが違うと怒られたぞいw
Re: (スコア:0)
でかでかと
> Bug affects Intel and ARM, most likely AMD too
って書かれてるけど
Re: (スコア:0)
#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
対策はない (スコア:0)
スラドですら、簡単なビット反転とか配線ミスだと思って、こんなものはパッチですぐ修正される、天下のIntel様に不可能はないって言い張ってた変な人がいたけど、もういなくなったよね。
Re: (スコア:0)
年明けから色々見つかっているけど、
実際のところ対策をしないとどうなの?
今のところ何もしていないんだけど。
実際被害に遭ったって話も聞いていないんだけど。
Re: (スコア:0)
既に主要OSとブラウザには性能低下パッチが何回も配布されてるよ、誰も気づいてないだけで
Re: (スコア:0)
Bios更新で降りてくるやつは流石に気づいてるよ
どっちだよ (スコア:0)
>これを使った攻撃を効率的な手段はないという。
防ぐ手段がないのか、攻撃する手段がないのか
Re:どっちだよ (スコア:3, すばらしい洞察)
間違えずに伝える手段がないのだと思う
SPARCの時代がくる?! (スコア:0)
大元のSpectreだとSPARCも引っ掛かってたんだけど
こっちはセーフ?
…検証されてないだけな気もするけど
Re:SPARCの時代がくる?! (スコア:1)
むしろメインフレームの時代です。
富士通のケースですが、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]
っていうのに脆弱性がないので、正直驚きました。
Re: (スコア:0)
それは読み違いだぞ。
データの改ざんの可能性はありません。
Spectre/Meltdownではデータを盗み取ることしかできないから、これは一般的な事実を述べているだけ。
攻撃者が本脆弱性を突くためには悪意あるプログラムを攻撃対象の装置上で実行することが必要になりますので、外部ネットワーク(インターネット等)からリモートアクセスをするだけではメモリデータを参照する行為はできません。
これは意地の悪い言い方をすれば「Spectre/Meltdownを使うためには、標的をウィルスに感染させる必要があります。きちんと対策をしていればそもそもウィルスに感染しませんので、関係ありません」という意味。
これは「脆弱性はありますが、そもそも使われた時点で終わりなので、無視します」という発表であって、嘘ではないし書いてある対応にも問題はないが、
「脆弱性はありません」という意味ではない。
Re: (スコア:0)
IBMのメインフレームも同じようなものですが、メインフレームは設計が違うのでその趣旨を理解していないと
ダメでしょう。PCサーバと同じと考えているようだと間違えますよ。
余談ですが、処理速度向上のための投機的実行機能を搭載していないような昔のCPUであるとspectreのような攻撃には強いです。
シングルスレッドのOSも強い(そもそもウイルスが侵入した後で活動するプロセス自体が存在しないので)。
Webに依存せず、ネットワークに繋がらないシステムも強い(ネットワーク経由で潜在的な攻撃が届かないため)。
ネットワークが独自で物理的にインターネットに繋がっていないシ
Re:SPARCの時代がくる?! (スコア:1)
> この中の一つとしてメインフレームはPCと構造が違うので強いという話になるでしょう。
「一つとして」は否定で受けないと意味がわからん。
この中の一つとして、強いという話にはつながらない、ということか?
いずれにせよ、IBMのメインフレームはTCP/IPも喋れるから、
> Webに依存せず、ネットワークに繋がらないシステムも強い(ネットワーク経由で潜在的な攻撃が届かないため)。
> ネットワークが独自で物理的にインターネットに繋がっていないシステムも強い(ISDN網や昔のホストなど)。
はメインフレーム全てであたる項目ではないし、
全てであたらなくていいなら、Windowsだって独自ネットワークだけにしかつながってないシステムはあるから、メインフレームとは関係ない話だね。
Re: (スコア:0)
「攻撃者である可能性のある相手から受け取ったプログラムやスクリプトを実行するようなアーキテクチャになってないから攻撃の余地がない」ってのは大体の場合に置いて真実なんだし、そんなところで噛み付くのはなんか気持ちが悪いよ。
まぁコレはPCサーバでも結構な場合において同じことが言えるから、メインフレームに限った話ではないけどさ。
Re: (スコア:0)
いや? 構造は同じだよ。だからメインフレームにも脆弱性はある。
Webに依存せず、ネットワークに繋がらないシステムも強い(ネットワーク経由で潜在的な攻撃が届かないため)。
ネットワークが独自で物理的にインターネットに繋がっていないシステムも強い(ISDN網や昔のホストなど)。
影響がない理由は、こっち。脆弱性はあるが、攻撃者が悪用する必要や方法がないので、理解さえしていれば放置しても何ら危険がないということ。
ISDN網は維持したほうがいいでしょうね。
時代が下るにつれ統合失調症が軽症化しているというのは本当なんだろうね。
Re: (スコア:0)
> 時代が下るにつれ統合失調症が軽症化しているというのは本当なんだろうね。
事実ですが、今回の話とどういう関係が?
この人 https://srad.jp/~tagga/journal/621894/ [srad.jp] のように、素人判断のレッテル貼りがしたいんでしょうか
もうCPUレスのOS (スコア:0)
作れよ
Re: (スコア:0)
CPUが悪いのではない
高速化手法の投機実行が悪いので
インオーダ実行にしたら解決する
近年でインオーダのものだと古いAtomがそうなので
Atomの設計思想を発展していけば何とかなる(性能は酷い物になるだろうけど)
Re: (スコア:0)
インオーダでも投機実行はやるだろ
Re: (スコア:0)
IntelもAMDも新製品開発は1,2年休んでいいから、設計を根本的に見直してほしい。1,2年休まなくても、昔のように2倍3倍の性能になるわけではないんだから。
Re: (スコア:0)
設計を根本に見直したCPUを作るには4年ぐらいかかるらしいよ。
RyzenがJim KellerがAMDに戻って4年半ぐらいかかってる。
Re: (スコア:0)
完全に見直したらWindowsが動かないしな
Re: (スコア:0)
こういうこと言う人って、なんでいつまでもシングルスレッドのパフォーマンスで語るんだろうか
Re: (スコア:0)
シングルスレッドでしかプログラム組まないから、イメージできないんだろう。
もっとも、ここ20年くらい前から普通の環境なら 自分がシングルスレッドしか組まなくても、同じ性能のコアが並列並ぶだけでも恩恵は十二分に得られるのだけど、1アプリしか同時に使わんみたいな使い方だと、その恩恵も感じてないのかもなぁ。
Re: (スコア:0)
下々のものはもう何年も2コアか行っても4コアをうろうろするだけですからね。しょうがないですよ。