spmd
新年早々に、ほぼすべての人が影響を受ける脆弱性のニュースが飛び込んできました。 初報は「IntelのCPUに緊急を要する脆弱性」だったのが、Intelが一番大きな脆弱性があるけども、他の会社のCPUにも同じ問題があると分かり大変なことになりました。対象はPCだけでなくスマートフォン・タブレットなどにも及びます。 それぞれ「Meltdown」「Spectre」と名付けられたのですが、簡単な内容説明と対処を報告します。



まず、何がそんなにニュースになるほどの問題なのかというと、Windowsやその上で動くドライバなどのソフトウェアの問題ではなく、ハードウェアであるCPUの中の問題であり、直接の修正が難しいこと、そして保護されているメモリ領域の中身を読み取ることができてしまう脆弱性であることが大問題となっているのです。



2つ名前が付いていますが、それぞれやり方が違うだけで、権限のないメモリを「投機的実行」を悪用して読み取る点で良く似ています。

現在のCPUはとても高速なので、命令を実行している間の空き時間で、その結果がYESのときはこういう処理が必要になるだろう、NOのときはこういう処理が必要になるだろうという、分岐後の2つの後処理について、先に計算しています。「投機的実行」と呼ばれる高速化技術です。
ここに保護されたメモリ領域から別の場所に保持してしまう脆弱性がありました。

この脆弱性を悪用するためには、通常のウィルスと同じく、対象のPC内に入って、さらに実行されないといけないので敷居は高いのですが、その結果得られる情報が保護メモリ内のものだったため、急ピッチでアップデートが配信されています。

例えば、投機的実行をやめてしまえば、この脆弱性に対応できます。これは修正の効かないハードウェアに対してソフトウェアでパッチを当てられます。
実際には、どのレベルのものを投機的実行させないかなど、詳細に対応しているようですが、部分的に高速化技術を捨てるということになりますので、数パーセントから数十パーセントの性能低下が起こります。
ということで、人によっては体感できるレベルで遅くなりますが、必要なパッチとして仕方ないと割り切るしかないようです。


説明が長々となってしまいましたが、結局のところ、Windowsアップデートや、スマホ、タブレットのアップデートをやる、ウィルス対策ソフトを使用する、というだけの対処になります。

そしてそれによって性能が低下しますが、それを回避する手段はないので、対策された新しいCPUが出たら購入するという方法しか私達にはないようです。