初稿 : 2018年11月26日
トーバルズ氏、デフォルトでは防御機能(STIBP)を無効化すると発表
先週、休暇から復帰したリーナス・トーバルズ氏は、データ漏えいの危険性を持った脆弱性「Spectre Variant 2(スペクター2)」に対応したカーネルパッチについての見解を語り、デフォルトでは防御機能を無効化することを発表した。
なぜかというと、 Intel CPU のハイパースレッディング技術を利用した場合、アプリケーションは最悪で 50% もの性能低下がみられたからだ。
ハイパースレッディングとは、 Intel CPU に組み込まれた機能で、単一のコアを2スレッドに分割する技術だ。これによって1つのコアで2つの作業を同時進行させることができる。「SMT、Simultaneous Multi-Threading (同時マルチスレッディング)」とも呼ばれている。
この技術で多大な恩恵を受けるアプリケーションもあるが、逆に苦手とするプログラムもある。
長らく指摘されていたことだが、コア内で実行されているプログラムは同コア内の他のプログラムの実行内容を覗き見ることができてしまう。Spectre シリーズはこの脆弱性を突いた攻撃のことだ。これによって本来物理的に隔離されていてアクセスできないはずのプログラムがメモリ内のパスワードや暗号鍵などを盗み取ることができてしまう。
STIBP
Spectre V2 の緩和パッチは Linux 4.20 に適用され、 4.19.2 にもバックポートされている。この機能は STIBP (Single Thread Indirect Branch Predictors)と呼ばれており、プロセッサの分岐予測エンジンをマルウェアから保護する役割を担う。
この防御メカニズムがあまりに大きく性能の足を引っ張るため、トーバルズ氏はデフォルトでは無効であるべきだと述べた。
「いくつかのプロセスで50%ものパフォーマンス低下が見られた、こうなってしまっては本当にこの機能はそれだけの価値があるのかよく考えるべきだ」また Linux メーリングリストで「セキュリティ意識が高い人がしているように、単純にSMT(ハイパースレッディング)を切ってしまったほうがマシだ。」と投稿した。
これに対し、SUSE Lab のディレクターである Jiri Korina 氏は Spectre V2 はウェブブラウザで悪意のあるコードが混じった JavaScript が実行された場合、他のタブから開かれているサイトや個人情報を盗視されてしまう可能性があることを指摘。しかし、トーバルズ氏はこれに懐疑的な見方を示した。
昨今のウェブブラウザのほとんどは Spectre に対し、独自の防御機能を備えている。このため、必死になってカーネルで対応したとしても無駄になってしまう可能性が高い。
「一般的なユーザに対し、そのような非現実的な攻撃が行われたのを見たことがああるか?」とトーバルズ氏は疑問を投げかけた。「カーネルは何を気にして開発しなければならないか。JavaScript 関連の脆弱性はブラウザが修正し、担っていくべきで、カーネルの領分ではない」と締めた。
余談
OpenBSD はセキュリティのため Intel ハイパースレッディングをデフォルトで無効化している。
コメント