Microarchitectural Data Sampling(MDS)とUbuntuの対応方針
「Microarchitectural Data Sampling(MDS)」と「Ubuntu」の対応方針を紹介します。注意
ここで紹介する内容は、2019年5月15日時点での情報です。最新情報を確認するには、上記リンク先を参照してください。
MDS
「MDS」は、「Intel CPU」コアのマイクロアーキテクチャーバッファーに以前保存されたメモリーの内容が、悪意あるプロセスに読み取られてしまう脆弱性です。悪意あるプロセスは投機的実行サイドチャネル攻撃を利用して、自身が実行されているCPUコアからメモリーの内容を読み取ります。
他のプロセス及び様々なセキュリティーコンテキストが生成したデータを含むストアバッファーやロードポート、フィルバッファーから、以前それらに保存されていたデータに攻撃者がアクセスする可能性があります。
この結果、ユーザースペースのプロセス間や、カーネルとユーザースペース間、そして仮想マシンとホスト環境間で意図しないメモリー内容の漏洩が発生します。
「MDS」は今までの投機的実行サイドチャネル攻撃と異なり、攻撃者は特定のデータを狙い撃ちすることができません。
攻撃者は定期的にバッファー内のデータを入手できますが、データを入手時にデータが持つ意味を制御しながらデータを入手することはできません。
つまり攻撃者は入手したデータを元に意味あるデータへとデータを再構築する必要があります。
MDSの影響を受けるCPU
「Intel CPU」の一部及び、「Intel」以外のCPUは「MDS」による影響は受けないとされています。詳細は、以下を参照してください。
CVE
「MDS」に対応する「CVE(脆弱性及びその識別)」は、以下の4つになります。- CVE-2018-12126(ストアバッファー)
- CVE-2018-12127(ロードポート)
- CVE-2018-12130(フィルバッファー)
- CVE-2019-11091(キャッシュ不可メモリー)
緩和策と影響の軽減
「Intel」は「MDS」の影響を軽減するためのマイクロコードをリリースしています。またこれに対応するための「Linux Kernel」もリリースされています。
上記4つすべての問題の影響を軽減する基本的な手法は、どれも同じです。
「Linux Kernel」は、影響を受けるすべてのマイクロアーキテクチャーバッファーをクリアする特定の命令を実行します。
「Linux Kernel」は各データのサンプリングを回避するため、様々なタイミングでこの命令を実行する必要があります。
状況によってはバッファーをクリアすることで、かつて存在していたデータへのアクセスを攻撃者から防ぐことができます。
ハイパースレッディング・テクノロジー(HTT)とMDS
もしCPUがHTTをサポートしていない場合、マイクロコードと「Linux Kernel」のアップデートにより、「MDS」の問題を完全に解決することができます。もしCPUがHTTをサポートしておりHTTを有効化している場合、「MDS」の問題を完全に緩和することはできません。
信頼できない環境では、HTTの無効化を推奨
「Ubuntu」は、信頼できないコードを実行する場合や、悪意の可能性のあるコードを実行する場合は、「HTT」の無効化を推奨しています。例えば以下の状況が該当します。
悪意あるユーザーがいる可能性のあるマルチユーザーシステム
悪意あるユーザーは「MDS」を利用し、システム上の他のユーザーから機密情報を入手する可能性があります。信用できない提供元が提供するプログラムを実行するシステム
もしシステム上のユーザーが、完全に信頼が置けない個人や組織が提供する新バージョンのプログラムを利用する時に、本問題が発生する可能性があります。悪意あるソフトウェア提供者は「MDS」を利用し、システムから機密情報を入手する可能性があります。
仮想マシンをホストするシステム
完全に信頼されていない様々なセキュリティードメインやシステムの所有者が利用する仮想マシンをホストするシステムでは、仮想マシン内の悪意あるプログラムが他の仮想マシンや仮想マシンのホストから機密情報を入手する可能性があります。完全な緩和を目指して
「Linux kernel」では、「HTT」をサポートしている既存のシステムで「MDS」攻撃に対抗する完全な緩和策を実現するため、プロセススケジューリングの改良に取り組んでいます。「Ubuntu」では将来「Linux kernel」のプロセススケジューリングの改良が行われた際、「Ubuntu」向けの「Linux kernel」でもそれらの改良をサポートする可能性があります。
重要
「MDS」の影響を軽減するには、必ずそれに対応したマイクロコードにアップデートと「Linux Kernel」のアップデート、及びアップデート後のPCの再起動が必要になります。- Microarchitectural Data Sampling(MDS)の緩和策に対応したIntel Microcodeのリリース・今すぐアップデートを
- Microarchitectural Data Sampling(MDS)の緩和策や複数の脆弱性に対応したLinux kernelのリリース・今すぐアップデートを
もし現在利用している「Intel CPU」向けにマイクロコードが提供されていない場合、「MDS」の影響を軽減することはできません。
またマイクロコードが提供されていない「Intel CPU」でソフトウェア的に影響を軽減する仕組みはありません。
加えてライブパッチによる対応はサポートされていません。
どのバージョン以降のマイクロコード及び「Linux Kernel」が本件に対応しているかどうか調べるには、以下を参照してください。