TAAなどIntel CPUの脆弱性とUbuntuでの対応方針
最近公表された「TSX Asynchronous Abort(TAA)」の脆弱性など一連の「Intel CPU」の脆弱性と「Ubuntu」での対応方針を紹介します。最新情報を入手するには
「Intel CPU」の脆弱性及び「Ubuntu」での対応方針は、以下を参照してください。TSX Asynchronous Abort(TAA)
「Intel CPU」コアのバッファーに保存されたメモリーの内容が、そのCPUコアで動作している悪意あるプロセスによって漏洩する脆弱性です。この脆弱性は以前公表された「Microarchitectural Data Sampling(MDS)」と似た脆弱性です。
メモリー内容の漏洩
悪意あるプロセスは「Intel Transactional Synchronization Extensions(Intel TSX)」を通じて攻撃します。この脆弱性により意図しないメモリー内容の漏洩が、ユーザースペースのプロセス間や、カーネル及びユーザースペース間、仮想マシン間、そして仮想マシンとホスト環境間で可能になります。
Intel TSXをサポートしたCPUのみ影響を受ける
本脆弱性は「Intel TSX」をサポートした「Intel CPU」でのみ影響を受けます。CVE
本脆弱性には以下の「CVE(脆弱性の識別子)」が割り当てられています。以前MDSの影響を受けていたCPUでは
「Intel TSX」をサポートし「MDS」の影響を受けていた「Intel CPU」では、すでに提供されている「MDS」の影響を軽減する緩和策により、「TAA」による影響も軽減されます。そのためこの条件に該当するCPUでは、追加の緩和策は必要ありません。
以前MDSの影響を受けていなかったCPUでは
「Intel TSX」をサポートし「MDS」の影響を受けていなかった「Intel CPU」では、「Intel TSX」を無効化することで「TAA」による影響を軽減します。「Intel TSX」が必要な環境では、以下のオプションをカーネルの起動オプションに指定することで「Intel TSX」を有効にできます。
tsx=on
この場合「MDS」の影響を軽減する緩和策を利用し、「TAA」による影響を軽減します。
脆弱性の詳細は
「TAA」の詳細は、以下の「Intel」のレポートを参照してください。また「Linux kernel」における本脆弱性の詳細や対応は、以下を参照してください。
Intel Processor Machine Check Error(MCEPSC/iTLB multihit)
「Translation Lookaside Buffer(TLB)」において4Kサイズのページを2MBや大きいページサイズに変換する際、「Machine Check Exception(MCE)」が発生する可能性があります。「MCE」の発生によりシステムがフリーズしたり、予期せずシステムがシャットダウンします。
基本的にAtomを除く「Extended Page Tables(EPT)」をサポートする「Intel CPU」が影響を受けます。
DoS
悪意ある仮想マシンはこれを利用して「MCE」を発生させ、ホストOSやその他すべての仮想マシンで「DoS」を発生させることができます。現状仮想化が使用されていない時にこの脆弱性を利用した攻撃は明らかになっていません。
CVE
本脆弱性には以下の「CVE(脆弱性の識別子)」が割り当てられています。Linux kernelによる影響の軽減
本脆弱性はアップデートされた「Linux kernel」により影響を軽減します。脆弱性の詳細は
本脆弱性の詳細は、以下の「Intel」のレポートを参照してください。また「Linux kernel」における本脆弱性の詳細や対応は、以下を参照してください。
Intel i915 GPUの脆弱性
「Intel i915 GPU」では2種類の脆弱性が見つかっています。CVE
本脆弱性には以下の「CVE(脆弱性の識別子)」が割り当てられています。CVE-2019-0154
GPUが特定の省電力モードになっている時、ユーザースペースがGT MMIOからデータを読み取るとハングする脆弱性です。この脆弱性はGPUのファームウェアのアップデート及びアップデートされた「Linux kernel」により影響を軽減します。
CVE-2019-0155
「Blitter Command Streamer」や「Linux kernel」の公開されたメモリー情報からMMIOへの書き込みを経由し、ページテーブルエントリーをユーザースペースから変更可能な脆弱性です。この脆弱性は権限の昇格や情報の漏洩に繋がります。
この脆弱性はアップデートされた「Linux kernel」により影響を軽減します。
Linux kernelとマイクロコードのアップデート
これら脆弱性の影響を軽減するため、アップデートされた「Linux kernel」及びIntelのマイクロコード(intel-microcode)がリリースされています。ユーザーはソフトウェアをアップデートしてPCを再起動してください。
これら脆弱性に対応した「Linux kernel」及びIntelのマイクロコード(intel-microcode)のバージョンについては、以下を参照してください。
TAAの影響を受けるかどうか調べるには
「Linux kernel」のアップデート後、「TAA」の影響を受けるかどうか調べることができます。「端末」で以下のコマンドを実行し、出力結果からシステムの状態を確認できます。
cat /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
「TAA」の影響を受けないシステムなら、「Not affected」と出力されます。
$ cat /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
Not affected
Not affected
マイクロコードがアップデートされていないか、PCに搭載されているCPU向けにマイクロコードが提供されていない場合、「Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable」と出力されます。
$ cat /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable
Vulnerable: Clear CPU buffers attempted, no microcode; SMT vulnerable
緩和策として「TSX」が無効化されているなら「Mitigation: TSX disabled」と出力されます。
$ cat /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
Mitigation: TSX disabled
Mitigation: TSX disabled
「TSX」を無効化できないか「TSX」を意図的に有効にしており、かつ、CPUの「Hyper-Threading」が有効になっている場合は、以下のように出力されます。
$ cat /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
Mitigation: Clear CPU buffers; SMT vulnerable
Mitigation: Clear CPU buffers; SMT vulnerable
「TSX」を無効化できないか「TSX」を意図的に有効にしており、かつ、CPUが「Hyper-Threading」をサポートしていないか、「Hyper-Threading」が無効になっている場合は、以下のように出力されます
$ cat /sys/devices/system/cpu/vulnerabilities/tsx_async_abort
Mitigation: Clear CPU buffers; SMT disabled
Mitigation: Clear CPU buffers; SMT disabled
その他出力例は、以下を参照してください。
MCEPSCの影響を受けるかどうか調べるには
「MCEPSC(Intel Processor Machine Check Error)」の影響を受けるかどうか調べるには 、「端末」で以下のコマンドを実行し、出力結果からシステムの状態を確認します。
cat /sys/devices/system/cpu/vulnerabilities/itlb_multihi
「MCEPSC」の影響を受けない場合、以下のように出力されます。
$ cat /sys/devices/system/cpu/vulnerabilities/itlb_multihit
Not affected
Not affected
「MCEPSC」の緩和が有効になっている場合、以下のように出力されます。
$ cat /sys/devices/system/cpu/vulnerabilities/itlb_multihit
KVM: Mitigation: Split huge pages
KVM: Mitigation: Split huge pages
「MCEPSC」の緩和が無効になっている場合、以下のように出力されます。
$ cat /sys/devices/system/cpu/vulnerabilities/itlb_multihit
KVM: Vulnerable
KVM: Vulnerable
その他出力例は、以下を参照してください。