スペクターとメルトダウンの脆弱性とは何ですか?

2010年代に最も公表された2つの脆弱性は、互いに非常に密接に関連していました。 SpectreとMeltdownは、ソフトウェアのセキュリティの脆弱性ではなく、CPUの基本設計の脆弱性であり、問​​題の解決をより困難にします。 問題自体は特に深刻であり、他のアプリケーションやオペレーティングシステムからのメモリ開示を可能にします。

概要

CPUは、非常に高度な設計を使用して、投機的実行や分岐予測などの手法を含む最高のパフォーマンスを実現します。 投機的実行とは、CPUが必要かどうかを知る前にプロセスの実行を開始し、必要であると判断したときに時間を節約することです。 分岐予測は、プロセスの結果を予測してから予測を試みる投機的実行のサブセットです。 その予測値に基づいて次のステップの計算を開始し、CPUがから一連の命令を実行できるようにします。 注文。

Spectreの脆弱性は、これら2つの機能の実装に起因します。 これにより、アプリケーションは、パスワードや暗号化キーなどの秘密を含むメモリの開示を可能にする最新のソフトウェアに組み込まれているメモリ分離技術に違反することができます。 Spectreの問題の1つは、悪意のあるプログラムのみが必要なため、セキュリティの脆弱性がないアプリケーションからデータにアクセスできることです。

Meltdownの脆弱性は、上記の投機的実行システムだけでなく、いくつかのメモリ技術に基づいています。 プロセスの実行と特権チェックの間の「競合状態」を利用して、悪意のあるプログラムが他のアプリケーションやオペレーティングシステムのメモリにアクセスできるようにします。

ヒント:「競合状態」とは、あるタスクが別のタスクに依存することになっているが、正しい実行順序が適用されていないという問題です。 これにより、「2番目の」プロセスが最初に実行され、「最初の」プロセスの結果が含まれているはずの初期化されていないメモリが使用され、そのメモリの以前の内容がリークする可能性があります。 この特定のケースでは、アクセス許可チェックで許可されていることを確認するまでプロセスを実行しないでください。ただし、パフォーマンスの最適化により、アクセス許可チェックが2番目に実行される可能性があります。

効果

2017年半ば、複数のチームが独自にMeltdownとSpectreの両方を発見し、パッチを開発したCPUメーカーに非公開で報告しました。 パフォーマンスの最適化を対象としたパッチが原因で、CPUのパフォーマンスが最大で低下することになりました。 最悪のシナリオでは30%、パフォーマンスの2〜14%の低下は、人々の代表的なものです。 経験。

この脆弱性は、多くのx86 CPU、IBM POWER CPU、および一部のARMベースのCPUに影響を及ぼしました。 メルトダウンは、パーソナルコンピュータやクラウドサーバーに通常見られるハードウェアに影響を与えます。 Spectreは、パーソナルコンピューター、クラウドサーバー、およびモバイルデバイスに影響を与えます。 1995年から2018年半ばまでのすべてのIntelCPUは、この問題に対して脆弱でした(2013年以前のItaniumおよびAtomラインを除く)。 AMD CPUはMeltdownの影響を受けませんでしたが、Spectreに対して脆弱でした。

ソフトウェア軽減パッチは、問題の大部分を解決するオペレーティングシステムプロバイダーを通じて開発およびリリースされました。 2018年半ば以降、IntelはCPU設計を更新して、問題のハードウェア緩和策を追加しました。

どちらの問題も、巧妙に細工されたJavaScriptを使用した悪意のあるWebページを介して悪用される可能性があるため、 パフォーマンスが低下する場合でも、セキュリティパッチがすべてのシステムにインストールされていることを確認してください。 ひどい。 残念ながら、これらの問題は非常に複雑な問題であり、1つのパッチで修正することはできません。 ハードウェアへの統合により、セキュリティパッチは、新しいバリアントが 発見した。