2022年3月にDebianをアップデートしている時に気になったことを調べてみることにしたのでご報告…と思ったのですが自分用のメモになってしまいました。
セキュリティアップデートを実行していると、aptからメッセージが表示されました。
結局古いPCを使っている限り、Spectre variantから完全には開放されない、ということなのかもしれません。
アップデート中のメッセージ
apt upgrade実行中に以下のメッセージが表示されました。
--------------------------------------------------------------
apt-listchanges: news
--------------------------------------------------------------
linux-latest (105+deb10u14) buster-security; urgency=high
* From Linux 4.19.232-1, the Extended Berkeley Packet Fillter (eBPF) facility is no longer enabled by default for users without the CAP_SYS_ADMIN capability (this normally means only the root user).
eBPF can be used for speculative execution side-channel attacks, and earlier attempts to mitigate this have not completely succeeded.
This can be overridden by setting the sysctl:
kernel.unprivileged_bpf_disabled=0
--------------------------------------------------------------
linux-最新(105 + deb10u14)バスター-セキュリティ; 緊急度=高
* Linux 4.19.232-1から、拡張バークレーパケットフィラー(eBPF)機能は、CAP_SYS_ADMIN機能を持たないユーザー(通常はrootユーザーのみを意味します)に対してデフォルトで有効ではなくなりました。
eBPFは、投機的実行のサイドチャネル攻撃に使用できますが、これを軽減するための以前の試みは完全には成功していません。
これは、sysctlを設定することでオーバーライドできます。
kernel.unprivileged_bpf_disabled = 0
--------------------------------------------------------------
Spectre variant 2を意味するような「speculative execution」とか「side-channel attacks」がなんだか気になります。
そこでもうちょっと詳しく調べて見ることにしました。
Debian公開の情報から確認
Debianセキュリティアドバイザリ(DSA-5096-1linux-セキュリティアップデート)
https://www.debian.org/security/2022/dsa-5096
投機的実行絡みということで「INTEL-SA-」で始まるCVEがおそらく対象とみました。
--------------------------------------------------------------
CVE-2022-0001 (INTEL-SA-00598)
Researchers at VUSec discovered that the Branch History Buffer in Intel processors can be exploited to create information side channels with speculative execution. This issue is similar to Spectre variant 2, but requires additional mitigations on some processors.
This can be exploited to obtain sensitive information from a different security context, such as from user-space to the kernel, or from a KVM guest to the kernel.
--------------------------------------------------------------
CVE-2022-0002 (INTEL-SA-00598)
This is a similar issue to CVE-2022-0001, but covers exploitation within a security context, such as from JIT-compiled code in a sandbox to hosting code in the same process.
This can be partly mitigated by disabling eBPF for unprivileged users with the sysctl: kernel.unprivileged_bpf_disabled=2. This update does that by default.
※追記
This is partly mitigated by disabling eBPF for unprivileged users with the sysctl: kernel.unprivileged_bpf_disabled=2. This is already the default in Debian 11 bullseye.
--------------------------------------------------------------
CVE-2022-0001(INTEL-SA-00598)
VUSecの研究者は、IntelプロセッサのBranch History Bufferを利用して、投機的実行を伴う情報サイドチャネルを作成できることを発見しました。この問題はSpectreバリアント2に似ていますが、一部のプロセッサで追加の緩和策が必要です。
これを利用して、ユーザースペースからカーネルへ、またはKVMゲストからカーネルへなど、さまざまなセキュリティコンテキストから機密情報を取得できます。
--------------------------------------------------------------
CVE-2022-0002(INTEL-SA-00598)
これはCVE-2022-0001と同様の問題ですが、サンドボックス内のJITコンパイル済みコードから同じプロセス内のホスティングコードまでなど、セキュリティコンテキスト内での悪用を対象としています。
これは、sysctl:kernel.unprivileged_bpf_disabled = 2を使用して、特権のないユーザーのeBPFを無効にすることで部分的に軽減できます。このアップデートはデフォルトでそれを行います。
※追記
これは、sysctl:kernel.unprivileged_bpf_disabled=2を使用して非特権ユーザーのeBPFを無効にすることで部分的に軽減されます。 これはすでにDebian11ブルズアイのデフォルトです。
--------------------------------------------------------------
「apt-listchanges: news」で「kernel.unprivileged_bpf_disabled = 0」が案内されていますが、これはaptで更新したことによってデフォルト動作がかわるということなんでしょうか。でも「INTEL-SA-」で始まるCVEだと「kernel.unprivileged_bpf_disabled=2」が軽減策だという記載が見て取れます。どっちか分からないのですが、ひとまずaptで変更されるほうを優先しておこう。
Spectre variant対策をしていると
このSpectre variant関連の対策をするたびに、「もう古いPCを使うのは止めましょう」と言われているような錯覚に陥ってしまいます。
Windows11がCPUの世代で(動作するけど)サポートを足切りしたのは、Spectre variant対策はキリがないから旧世代ハードウェアのサポートを切ってスッキリしたかった、ということなんじゃないかと。
Windowsが見捨てたハードウェアをLinuxで再生、という流れも今後変わってくるのかなぁなんて思ったり思わなかったり。たくさんの派生ディストリビューションを持つDebianのおかげで旧ハードウェアが使えているということに感謝しつつ、アップデートを日々適用しています。