プロセッサの脆弱(ぜいじゃく)性問題を図解する:Mostly Harmless(1/2 ページ)
正月の“おとそ気分”を吹き飛ばした「プロセッサの脆弱(ぜいじゃく)性問題」。なぜ起こったのか、仕組みを図解することで読み解きます。
この記事は大越章司氏のブログ「Mostly Harmless」より転載、編集しています。
2018年、正月の“おとそ気分”を吹き飛ばしたニュースに「プロセッサの脆弱(ぜいじゃく)性問題」がありました。
その後、Intelが「この脆弱(ぜいじゃく)性はIntelだけのものではなく、他のプロセッサにも存在する」と発表したことが、混乱に拍車を掛けました。これは業界にとって相当に深刻な問題ですが、今回はその話ではなく、プロセッサの脆弱性の「仕組み」について図解してみたいと思います。
プロセッサの基礎知識
この脆弱性には、「Spectre」と呼ばれる「Variant 1」「Variant 2」の脆弱性と、「Meltdown」と呼ばれる「Variant 3」の脆弱性の3種類があります。
今回は、このうち説明のしやすいMeltdownについて説明しますが、その前に、脆弱性が起こる仕組みを理解するための、プロセッサについての基礎知識を説明します。
CPUの特権モード
現代のプロセッサには「特権モード」というのがあり、プロセスに優先度を付けています。OSやデバイスドライバなど、優先的に実行させたいプロセスに与えられるのが最高特権である「カーネルモード」、それよりも優先度が落ちるのが「ユーザーモード」です。
カーネルモードがプロテクトしているメモリエリアには、通常、ユーザーモードのプロセスはアクセスできませんが、今回の脆弱性はそれを可能にしてしまうというものです。
パイプライン処理
現代のプロセッサでは、命令の処理を同時並行して行う「パイプライン処理」が主流になっています。
昔のプロセッサは、命令を1つずつ読み込んで実行し、処理が終わると次の命令にとりかかる、というやり方をしていました。
個々の命令は、プロセッサの中でさらに細分化されます。例えば、(1)命令を解読(デコード)する(2)レジスタを参照する(3)足し算をする といった形です。
そうすると、命令をデコードした後で他の処理に移行した場合、次の命令が来るまでデコードするための回路は遊んでしまうことになります。プロセッサはさまざまな回路の集合体ですが、“ある時点でその一部しか稼働していない”ということです。
これはもったいない、ということで、それぞれの命令を整理して細分化し、前の命令の処理が終わらないうちに次の命令を始めるようになりました。ハードウェアをなるべく遊ばせない、ということですね。これがパイプライン処理です。最近では数十のステージに細分化されているそうです。
アウトオブオーダー実行
ところが、ここで問題が出てきます。命令によっては、前の命令で計算した結果を使うことがあります。そうすると、前の命令の実行が終わるまで次の命令を始められません。
そういった場合に、プログラム上の順序に関係なく、依存関係にない命令を先に実行してしまうことを「アウトオブオーダー」(順序を守らない実行)といい、これがパイプラインを効率よく実行させるために必要な仕組みになっています。
関連記事
- 連載:「Mostly Harmless」記事一覧
- Intel、プロセッサの設計変更で「Spectre」「Meltdown」の脆弱性に対応
次世代の「Xeon スケーラブル・プロセッサ」と、第8世代 Coreプロセッサーでは、プロセッサの設計を一部変更して、新たな対策を導入する。 - Intel、不具合修正の脆弱性対策パッチを追加リリース Kaby Lake以降の世代に対応
Intelは「Skylake」「Kaby Lake」「Coffee Lake」を搭載したプラットフォーム向けのマイクロコードアップデート正式版を、OEM向けにリリースした。 - プロセッサ脆弱性「Meltdown」と「Spectre」のまとめサイト開設
Intelが「他社のプロセッサも影響する」と発表したプロセッサの重大な脆弱性「Meltdown」と「Spectre」についての情報がまとまったWebサイトを、これらの脆弱性を発見したグラーツ工科大学が開設した。 - Intel、脆弱性対策パッチによるリブート増加問題やパフォーマンスへの影響について説明
「Meltdown」「Spectre」と呼ばれるCPUの脆弱性の対策パッチによってリブートが増加する問題や、サーバのパフォーマンスに及ぼす影響を調べたベンチマークの結果について報告した。 - Apple、「Spectre」の緩和策もリリース SafariとWebKitのセキュリティ対策強化
「macOS High Sierra 10.13.2補足アップデート」「iOS 11.2.2」「Safari 11.0.2」では、それぞれSpectreの脆弱性の影響を緩和するため、セキュリティ対策を改善した。
Copyright © ITmedia, Inc. All Rights Reserved.