インテルは2017年11月にCPUの不具合から遠隔操作される脆弱性を公表、その解決に取り組んでいます。しかし今度はインテル製CPUだけでなくARMやAMDなどのCPU製品にまで影響するセキュリティ上の問題が見つかりました。

これはCPUが備える先読み命令実行機能の問題を突くことで、OSが直接使用するカーネルメモリーとして保護されるはずの領域に、一般のプログラムからある程度アクセスできてしまうというもの。インテルだけでなく、ARMやAMDといった各社のプロセッサーでに影響があると報告されており、特にインテル製CPUの場合は約20年前から問題が存在していたとされます。この問題が報道された当初は、インテル製CPUの脆弱性として取り扱われました。しかし、インテルは問題に関する声明で「この問題が悪用され、データを破損、改ざん、または削除されるような可能性はない」としました。また、この問題は「インテル製品に固有だとする報道は間違い」だと主張しました。

この問題は、CPUが次に実行する命令を先読み実行することで処理速度を上げる"投機的実行"と呼ばれる処理を突くことで発生するため、インテルのCPUに限らず、他メーカーのCPUでも同様のことが起こりえます。そしてこの問題によって、カーネルメモリーに格納されるパスワードやセキュリティキー、キャッシュファイルといった機密情報に一般プログラムからアクセスでき、最悪はクラウド上で実行されるプログラムから、カーネルメモリー内の機密情報を読み出せてしまう可能性があります。

インテルの声明を受け、ARM HoldingsはCortex-A系列のチップがこの問題の影響を受けることを確認したものの、主にIoT製品に使われるCortex-M系列には影響がないことを公表しました。一方、AMDは「アーキテクチャが異なることから、現時点でAMDプロセッサにおけるリスクはほぼゼロ」だと述べています。

ZDNetはGoogleのセキュリティ調査チーム「Project Zero」の研究者が発見したとする、投機的実行の問題を突く2つの脆弱性"Meltdown" および "Spectre" を紹介、Meltdownはインテル製CPUのみに影響するもののセキュリティパッチで対応できること、SpectreはARMやAMD製品にも影響し対策にはCPUを設計から変更する必要があるが、悪用するのは難しいことを報告しています。

具体的な修正は、OSがカーネルメモリーと通常のプロセスを完全に分離するよう処理を変更することで対応できるとされます。しかしこの処理によってシステムコールやハードウェア割り込み要求のたびに2つのメモリアドレス空間を切り替える手間が生じます。

修正の適用が一般のPCユーザーが使うウェブブラウジングやゲームなどにどれほど影響するかはわかっていません。しかし、タスクとCPUモデルによっては最大30%ものパフォーマンス低下の可能性があると予想され、とくにAmazon EC2やGoogle Compute Engineといった仮想化システムへの影響が懸念されます。

なお、問題が公になる前からインテルはマイクロソフトやLinuxカーネル開発者らに情報を共有しており、すでにWindows 10やLinuxにはこの問題に関連するパッチが提供され始めています。一方、OSカーネルに詳しい専門家のAlex Ionescu氏によると、アップルは12月6日に公開されたmacOS 10.13.2ですでにこの問題への対応を開始しており、macOS 10.13.3でさらに修正を加えるとされます。

The RegisterはAmazon Web Service(AWS)が米国時間1月5日に、Microsoft Azureクラウドサービスが1月10日に修正適用を実施するだろうと伝えています。またGoogleはAndroid向けのパッチを提供予定ではあるものの「Androidデバイスでこの脆弱性を悪用するのは難しい」としており、スマートフォン各社が自社製品のためにパッチを提供するかは微妙なところかもしれません。Googleはこのほかにも各種サービスの対応情報をまとめてブログに報告しています。

今回の問題を突かれて実害が発生したという報告はまだないものの、ほとんどすべてのインテル製CPUが影響を受けるというのは深刻な話です。商用のクラウドサービスにとっても、パッチ適用でパフォーマンスが落ちるとなると、場合によっては設備増強など然るべき対策が必要になるかもしれません。

一方、われわれユーザーができることは、つねにPCのOSとパッチを最新に保つことしかありません。たとえパフォーマンス低下があるにしても、パッチを当てるだけで良いなら何らかのセキュリティ被害を被るよりははるかにましなはずです。