ここから本文です

世間を騒がす「プロセッサ脆弱性」 何が本当の問題なのか

1/6(土) 12:22配信

ITmedia PC USER

 2018年の年明け早々、新たに発見された「プロセッサの脆弱(ぜいじゃく)性」に関して、さまざまな情報が飛び交い、一部では誤解や混乱を招いている。

【プロセッサ脆弱性の情報まとめサイト公開】

 始まりは、英IT情報サイトのThe Registerが公開した1月2日(現地時間)の記事だ。「Intelプロセッサのバグが発見され、ハードウェアの変更が必要であり、ソフトウェアでのセキュリティ対策はパフォーマンスの大幅な低下を引き起こす」との内容で、このニュースが駆け巡って世間を騒がせた。

 その後、Googleはこの脆弱性の情報ページを公開し、Intelが「同様の脆弱性はAMDやArmにもあり、対策で協力中」と発表。Microsoftが「セキュリティ対策による性能への影響は一般ユーザー(コンシューマー)では限定的」と報告するなど、関係各社がその影響や対策について、次々と情報を公開しており、一連の騒動の概要が判明してきた。

 今回のこの騒動で何が問題とされているのか、実際の影響はどの程度なのか、一般ユーザーはどう対応すればいいのか、という点に絞って概要をまとめたい。

●「Meltdown」「Spectre」と名付けられた脆弱性

 The Registerの報道直後、この問題を追いかけている米Googleの脆弱性調査チームProject Zeroがブログを公開し、IntelやAMD、Armの“モダン”なプロセッサに存在する潜在的な脆弱性問題を報告した。

 当初はMicrosoftがWindows向けの定例セキュリティパッチを配布している第2火曜日(1月9日)をめどに問題と対策を公表する計画だったが、前述の報道が先行したことの悪影響を鑑みて前倒して情報公開したようだ。

 報告されている脆弱性は下記の3つ。「Variant 1」と「Variant 2」については「Spectre(スペクター)」という名称が、「Variant 3」には「Meltdown(メルトダウン)」という名称がそれぞれ付与された。前述のブログには論文へのリンクも記されている。

・Variant 1(CVE-2017-5753):境界チェックのバイパス
・Variant 2(CVE-2017-5715):分岐ターゲットのインジェクション
・Variant 3(CVE-2017-5754):不正なデータのキャッシュ読み込み

 またオーストリアのグラーツ大学の研究者も同様の報告をし、関連情報のまとめサイトを開設している。

Meltdown(Intel、Arm Cortex-A75のプロセッサに影響)

 Meltdownはキャッシュメモリの挙動を利用することで、本来は実行中のアプリケーションからは見えないメモリの保護領域(例えば、同時実行されている他のアプリケーションのメモリ)へのアクセスを可能にしてしまうという脆弱性だ。

 データの改ざん等は行えないものの、メモリの内容を制限なしにのぞくことが可能になるため、個人情報やパスコードなどの重要情報を盗まれる危険性がある。

 この現象は2010年以降のIntel Coreプロセッサで確認されている他、それ以前のプロセッサでの可能性も指摘されている。一方で、AMDやArmベースのプロセッサでの現象は現時点で確認できなかったと論文では触れられている。

 このようにIntel固有の問題とみられていたMeltdownだが、Armがほぼ同じタイミングで公開した技術文書によれば、「Cortex-A75」のみ「Variant 3」に該当することが触れられている。Cortex-A75は2017年5月に発表されたCPUコアで、発売中の製品に搭載例はないので、Meltdownの影響はIntelプロセッサに限定されると言える。

 この問題はOSへのパッチ適用で対応可能だ。これを受けてIntelが公開した文書では、「将来のIntelプロセッサでハードウェア上の対策を施したものをリリースする」と表明しており、現状でソフトウェアアップデートが施されたシステムについては、大きな問題はないと考えられる。

Spectre(Intel、AMD、Armのプロセッサに影響)

 もう少し厄介な問題となるのがSpectreだ。これは比較的“モダン”な高性能プロセッサではほぼ採用されている「投機実行(Speculative Execution)」のメカニズムにある脆弱性を悪用した攻撃となる。

 テクニック的にはMeltdownの不正なデータのキャッシュ読み込みよりも悪用が難しいものの、投機実行の仕組みそのものを利用する攻撃のため、アーキテクチャにかかわらず影響範囲が非常に広い。

 実際、IntelとArmが報告している他、AMDも文書を公開して対応を促している。つまり、現状で市場に出回っているPCからサーバ、スマートフォン、各種スマートデバイスまで、そのほとんどがSpectreの潜在的な攻撃対象となり得るのだ。

 こちらはOSへのパッチの他、対策済みのアプリケーションを利用することで問題を回避できる。

 現在のところ、MeltdownもSpectreも脆弱性を悪用されたとの報告はない。ただ、Spectreについては報告済みの3社のプロセッサに加えて、各種Armコアを採用したライセンス品や、投機実行を採用した他のプロセッサアーキテクチャにも問題が存在する可能性が高く、幾分か影響範囲が広いと考えていいだろう。

●Microsoft、Apple、Googleなど各社で対応が進む

 今回のプロセッサ脆弱性の発表を受け、各社は年明けから情報公開やパッチの提供を急いでいる。ここでは代表的なところを紹介する。

 Microsoftは当初の予定(1月9日)を繰り上げて、緊急アップデートの提供を開始した。更新プログラム「KB4056890」が該当し、これによりOSやEdgeブラウザ、Internet Explorerを含むアプリケーション群の対策がなされる。

 AppleはMeltdownの緩和策(mitigation)をiOS 11.2、macOS 10.13.2、tvOS 11.2でリリース済み、Spectreの緩和策はSafariのアップデートで対処する計画だと発表した。

 GoogleはAndroidやChromeブラウザでのパッチ提供計画を発表。この問題に対策済みの最新版ブラウザ「Chrome 64」を1月23日に公開する予定だ。

 Webブラウザについては、Mozillaも対策済みブラウザ「Firefox 57.0.4」を公開している。

 Intelによれば、過去5年間にリリースされた90%のプロセッサ製品向けにアップデートの提供を終えており、1月8日の週末までにはベンダーを通じて行き渡るだろうと観測している。

 なお、オーストリアのグラーツ工科大学が開設したまとめサイトには各種発表のリンク集があり、現時点でIntel、Arm、AMD、RISC-V、Microsoft、Amazon、Google、Android、Apple、Lenovo、IBM、Mozilla、Red Hat、Debian、Ubuntu、SUSE、Fedora、Qubes、Fortinet、NetApp、LLVM、CERT、MITRE、VMWare、Citrix、Xen(表記順)の情報がある。

●ソフトウェアの対策でパフォーマンスは低下するのか

 当初The Registerの報道では「対策パッチによりパフォーマンスが最大2~3割程度低下する」と説明されたことが大きな議論を呼んだ。一般アプリケーションからOSの保護領域へのアクセスを禁止し、投機実行のメカニズムを悪用されないよう対策するためのものだが、実際にはほとんどの利用形態で影響は少ないとみられる。

 Appleによれば、前述したSpectreの緩和策の影響について、Webアプリの応答性を計測する「Speedometer」とJavaScriptの処理速度を計測する「ARES-6」では大きな影響がなく、Appleを中心に開発したHTMLレンダリングエンジンWebKitによるJavaScriptのベンチマークテスト「JetStream」では2.5%未満の影響という。

 同様の報告はMicrosoftなども行ったが、Webブラウザでのパフォーマンス低下は軽微というのは共通の意見だ。恐らく一般的なユーザーの利用形態において、ベンチマークテストのアプリケーションを利用して検証しない限りは目立った影響を感じることはないだろう。

 一方、CPUのリソースを極限まで利用するサーバ用途ではそれなりの影響がみられるという意見もある。MicrosoftとAmazon.comは、AzureとAWSでそれぞれ「(対策後の)目立つパフォーマンス低下はみられない」と報告した。ただし、一部のユーザーからパフォーマンスの低下を指摘する声もあり、この辺りはしばらく様子をみる必要がある。

 いずれにせよ、ソフトウェアのパッチ適用による対策で、一時的に若干ながらパフォーマンスの低下が起こることは避けられないものの、その度合いはワークロードの内容に完全に依存しており、ユーザーによりまちまちというのが実際だ。

 繰り返すが、少なくとも一般ユーザーは適切なソフトウェアアップデートさえしていれば、このパフォーマンス問題の影響が及ぶことはほぼない、と考えていい。

●最も大きな問題になると予想されるのは?

 「CPUのようなハードウェアは完璧な製品」と考えている人は多いかもしれないが、実際にはそんなことはなく、OSなどのソフトウェア製品などと同様、発売後に何らかの問題が発見されることはある。

 重要なのは、それを可能な限り早く発見し、適切なタイミングで対策していくことだ。特に、今回のようにソフトウェアで対策が可能なものであればなおさらだ。

 その意味で、昨今のOSやアプリケーションはゼロデイ攻撃の増加もあり、定期的なアップデートを適用する仕組みが構築されつつあり、きちんと運用されているシステムであれば、ユーザーの利用に影響をほとんど及ぼさない。

 現時点ではまだアップデートの提供が開始されたばかりのタイミングで測りかねる部分もあるが、影響範囲の広さを考えても、過去数年間の取り組みの成果をあらためて振り返るきっかけとなるだろう。

 問題となるのは、こうした定期アップデートのサイクルの外にあり、きちんとメンテナンスが行われていないシステムの存在だ。

 例えば、きちんとクライアント管理が行われているPCや、クラウド上に存在して強制リブートが可能なAzureやAWSのようなシステムでは(作業自体の影響はあるが脆弱性の対策としては)問題ない。

 しかし、オンプレミスで運用されているサーバや、身近な例ではアップデートの提供が遅れがちな通信キャリア販売のAndroidスマートフォンではセキュリティ上のリスクが高まると言える。すぐに今回の問題を悪用した攻撃が一般化するとは限らないが、重要な情報が日々大量にやりとりされるサーバや、個人情報が保存される可能性の高いスマートフォンにおける脆弱性は、金銭的な喪失に直結する問題だ。

 そして今回、より大きな問題になると予想されているのが組み込み機器での対応だ。小売店でのPOS、ATM装置、KIOSK端末など、昨今のモダンなプロセッサを搭載した組み込み機器は多数存在し、これらは今回の脆弱性で問題となる個人情報やカード情報などを扱う可能性が高い。しかも、組み込み向け製品のライフサイクルはハードウェアとソフトウェアともに長く、10年を超えるケースも珍しくない。

 今回のように過去10~20年をさかのぼって問題が報告されるようなケースで、どこまでベンダーが対応できるのかというのは、ユーザーとベンダーにとっての今後の大きな試金石となる。

 仮に、古いハードウェア製品を使い続けるユーザーがいたとして、対応のソフトウェアやシステムを販売したベンダーに今回の対策アップデートを提供することは可能だろうか。明確にサポート期間が設定されているWindowsはともかく、LinuxやAndroidなど、特定のディストリビューションによらずにカスタマイズされるOSのサポートは、それを提供したベンダーの対応に依存する。

 近年、Android POSの導入機運が高まっており、アジアでは中国を中心に、欧州圏などにも波及しつつあるが、ソフトウェア側のサポートはPOSを販売するベンダーが行うことになる。今回のような問題が今後も起こる可能性を考えれば、既に利用から何年も経過したシステムのサポートはベンダーの本気度が試されると考えていい。

 直近での一般ユーザーへの影響こそ少ないものの、今回の問題の根深い部分はここにある。ベンダーからみて既に「時代遅れ(Obsolete)」なシステムをどこまでサポートするのか、これら古いシステムを使い続けるユーザーの意識はどう変わるのか、「サポート期間の長いシステム」を巡る議論はむしろこれから本格化するだろう。

[鈴木淳也(Junya Suzuki),ITmedia]

最終更新:1/6(土) 16:09
ITmedia PC USER