ARM ベースおよび Intel CPU の投機的実行の脆弱性について

  • Apple では、Meltdown の影響緩和策を盛り込んだ macOS Sierra および El Capitan 向けのセキュリティアップデートをリリースしました。

  • Apple では、Spectre 対策に効果的な iOS、macOS High Sierra、Sierra や El Capitan の Safari 向けのアップデートをリリースしました。

  • Apple Watch は Meltdown と Spectre のどちらの影響も受けません。

最近、複数のセキュリティ研究者が「Meltdown」「Spectre」という 2 つの名前で知られる脆弱性を公表しました。これらの脆弱性はすべてのモダン CPU に存在し、ほぼすべてのコンピューティングデバイスやオペレーティングシステムがその影響を受けます。Mac システムや iOS デバイスもすべて影響を受けますが、この記事の執筆時点で、これらの脆弱性が悪用されてお客様に被害が出たという例は報告されていません。多くの場合、これらの脆弱性を悪用するには Mac や iOS デバイスに悪意のある App をインストールさせる必要があるため、ソフトウェアをダウンロードする際には、App Store などの信頼できるソース以外はご利用にならないようお勧めします。

Apple では、iOS 11.2、macOS 10.13.2、tvOS 11.2 においてすでに Meltdown の影響緩和策をリリースしています。macOS Sierra および OS X El Capitan 向けのセキュリティアップデートにも Meltdown の影響緩和策が組み込まれています。Spectre 対策として、Apple は iOS 11.2.2、macOS High Sierra 10.13.2 追加アップデート、macOS Sierra および OS X El Capitan 用の Safari 11.0.2 にて影響緩和策をリリースしています。Apple Watch は Meltdown と Spectre のどちらの影響も受けません。

これらの脆弱性については今後もさらに影響緩和策を開発・検証していきます。

背景

Meltdown と Spectre という 2 つの脆弱性は、「投機的実行」と呼ばれるモダン CPU のパフォーマンス向上機能を利用します。投機的実行は、複数の命令を同時に (おそらく CPU への入力とは異なる順序で) 実行することにより処理を高速化します。パフォーマンスを向上するため、CPU は最も可能性が高いと思われる分岐先を予測し、その予測に基づいて命令処理を前もって (つまり実際に分岐する前に、いわば投機的に) 実行します。予測が間違っていた場合は、この投機的実行がソフトウェアには見えないような形でロールバックされます。

Meltdown と Spectre ではこの投機的実行が悪用され、権限が制限されたメモリ (カーネルメモリも含む) に、より権限の低いユーザプロセス (デバイス上で実行される悪意のある App など) からアクセスされるおそれがあります。

Meltdown

Meltdown は、CVE-2017-5754 (「rogue data cache load」) として知られる脆弱性に付けられた名称です。Meltdown が悪用されると、ユーザプロセスからカーネルメモリが読み取られる可能性があります。Apple の解析によれば、この脆弱性は悪用される可能性が最も高いことが判明しています。Apple では、iOS 11.2、macOS 10.13.2、tvOS 11.2、さらに macOS Sierra 向けセキュリティアップデート 2018-001 と OS X El Capitan 向けセキュリティアップデート 2018-001 において、Meltdown の影響緩和策をすでにリリースしています。watchOS には影響緩和策は必要ありません。

公開ベンチマークを使った当社の検証では、GeekBench 4 ベンチマークや一般的な Web ブラウジングベンチマーク (Speedometer、JetStream、ARES-6 など) による測定では、2017 年 12 月のアップデートにおける修正後の macOS および iOS のパフォーマンスには測定可能な低下が見られませんでした。

Spectre

Spectre は複数の異なる脆弱性の総称で、この記事の執筆時点では、CVE-2017-5753 (「bounds check bypass」)、CVE-2017-5715 (「branch target injection」)、CVE-2018-3639 (「speculative bounds bypass」) が該当します。これらが悪用されると、CPU がメモリアクセス呼び出しの有効性をチェックする際の時間の遅れが悪用され、ユーザプロセスからカーネルメモリのアイテムにアクセスされるおそれがあります。

これらの脆弱性について解析した結果、悪用は (Mac や iOS デバイス上でローカルに実行される App であっても) きわめて難しいものの、Web ブラウザで実行される JavaScript を悪用される可能性があることが判明しました。Apple は 1 月 8 日付けで、こうしたタイミングを悪用した攻撃の影響緩和策を macOS や iOS の Safari 向けのアップデートとしてリリースしました。Safari の影響緩和策のリリース時に行った検証によると、影響緩和策の適用後のパフォーマンス低下については、Speedometer や ARES-6 のテストでは測定可能な影響はなく、JetStream ベンチマークでも 2.5% 未満の影響しかありません。Spectre 脆弱性については、オペレーティングシステム内で今後もさらに影響緩和策を開発・検証していく予定です。watchOS は Spectre の影響を受けません。

Apple が製造していない製品に関する情報や、Apple が管理または検証していない個々の Web サイトについては、推奨や承認なしで提供されています。Apple は他社の Web サイトや製品の選択、性能、使用に関しては一切責任を負いません。Apple は他社の Web サイトの正確性や信頼性についてはいかなる表明もいたしません。詳しくは各メーカーや開発元にお問い合わせください。

公開日: