【debian10】MDS CPU bug present and SMT on, data leak possible.

dmesgでカーネルログを見ると以下のメッセージが表示された。

dmesg | grep bug
[ 0.458806] MDS CPU bug present and SMT on, data leak possible. See https://www.kernel.org/doc/html/latest/admin-guide/hw-vuln/mds.html for more details.


Intel製CPUには「Microarchitectural Data Sampling」という脆弱性があるらしい。
システムがmdsの影響を受けるか調べるには以下を実行する。
cat /sys/devices/system/cpu/vulnerabilities/mds
Mitigation: Clear CPU buffers; SMT vulnerable ←vulunerableと出力された場合、mdsの影響を受ける。
この脆弱性を回避するには、脆弱性対策オプションをカーネルパラメータに与える。

/etc/default/grubに以下の赤字を追記する
GRUB_CMDLINE_LINUX_DEFAULT="quiet mds=full,nosmt"

GRUBの設定を反映させるには以下のコマンドを実施する。
sudo update-grub2

mds=fullはmds対策を有効にする。fullと表現するには正確にはmds緩和をできるだけ実施するということらしいので、このオプションを有効にしたからと言ってmdsの脆弱性が100%回避できるわけではないらしい。そしてこの対策を有効にするとcpuのパフォーマンスが低下する。
nosmtはハイパースレッディングを無効にする。ハイパースレッディングオフにしたほうがより厳密にmdsを対策できるらしい。理由はよくわからん。ちなみに自分の環境ではmds=full,nosmtと両方有効にしないと、カーネルログの警告が消えなかった。

<参考文献:MDS攻撃への対応>
https://gihyo.jp/admin/clip/01/ubuntu-topics/201905/17


次にintel cpuのmicro codeもアップデートする。
micro codeは最新のものを使いたいので、buster-backportsをapt-sourceに追加する。
/etc/apt/sources.listに以下を追加。

deb http://ftp.jp.debian.org/debian buster-backports main contrib non-free

その後、apt updateを行い、以下のコマンドでmicro codeパッケージをインストールする。
sudo apt install -t buster-backports intel-microcode


次にMDS脆弱性チェックツールをインストールする。
apt install spectre-meltdown-checker

MDS脆弱性チェックツールを実行
sudo spectre-meltdown-checker

チェッカーツールの結果をmds=full有り無しで比較したら、SMTのオンオフしか差分がでなかったのでカーネルオプションはmds=nosmtだけで良いかも。micro codeをアップデートしたお陰かな?