カーネル4.14.14がインストールされているLinuxシステムでSpectre retpoline機能が有効になっているかどうかを確認するには?

カーネル4.14.14がインストールされているLinuxシステムでSpectre retpoline機能が有効になっているかどうかを確認するには?

最新の安定カーネル4.14.14をインストールしました。エレポSpectreの脆弱性に対するいくつかの修正があるようです。

これ変更ログCONFIG_RETPOLINEファイルに/boot/config-4.14.14-1.el7.elrepo.x86_64Spectre緩和を有効にする内容があると言うのが私の場合は本当のようです。

しかし、私がこれを実行するとスクリプトすべての問題が解決されたことを確認した結果、4.14.13カーネルと4.14.14カーネルの出力の間に大きな違いは見られません。このリトポリン機能は実際に有効になっていますか?では、どうすれば確認できますか?

4.14.13 出力 ここに画像の説明を入力してください。

4.14.14 出力 ここに画像の説明を入力してください。

また、4.14.14以降の機能カーネルで利用可能なSpectreバリアント保護に関する情報にも興味があります。

答え1

現在、バニラ(またはElRepo)カーネルで行うことができるほとんどすべての作業を行ったようです。

リリースカーネルは、名目上以前のバージョンである可能性がありますが、まだプライマリカーネルに含まれていないパッチであるセキュリティパッチがより多く含まれる可能性が高くなります。特に企業ディストリビューションでは、現在のCPUメーカーの内部情報と自社開発リソースを活用して、修正を作業順に適用してリリースするよう努めています。この場合、最新のデフォルトカーネルは必ずしも最良の選択ではありません。

4.14.13カーネルのスクリプト出力によると、プロセッサはマイクロコードアップデートで利点を得ることができます。更新されたマイクロコードは、Spectreバリアント2を軽減する方法であるIBRSを有効にします。 IBRS を実際に使用するには、追加のカーネルパッチが必要です。このパッチは現在レビュー中で、4.15カーネルに含まれている場合と含まれない場合があります(そして、潜在的に以前のカーネルバージョンにバックポートされる可能性があります)。

4.14.14では、カーネルはCONFIG_RETPOLINEIBRSの有無にかかわらずSpectre亜種2を軽減するオプションを提供しますが、現在のバージョンを使用しています。翻訳者バージョンはまだリトポリンの全体的な効果を実現していません。しかし、現在のリトポリン状態は依然として脆弱ですが、ないよりも優れています。

Spectre バリアント 1 の軽減にはコンパイラの修正も必要です。

そのため、現在(またはElRepo)がより多くのLFENCE命令とより厳しいリトポリン実装を使用してカーネルをコンパイルできるようにするCコンパイラの更新を主に待っています。 2番目のバリアントを完全に再配置すると、一部のCPUパフォーマンスが消費される可能性がありますが、これは両方のSpectreバリアントの影響を軽減します。

第二に、IBRSを有効にするためのCPU用(バグなし)マイクロコードアップデートと、それを実際に使用できるカーネルアップデートを待っています。これは、BIOS/ファームウェアアップデートに付属しているか、Linuxが起動時にアップデートされたマイクロコードをインストールすることを可能にします。

修正する: Debian は、完全なリトポリン機能を統合する更新されたコンパイラパッケージを提供します。 Debian 8(jessie)の場合、gcc-4.9リトポリンバックポートを含むバージョンが2018年2月17日にリリースされました。 Debian 9(stretch)の場合、gcc-6リトポリンバックポートを含むバージョンが2018年2月22日にリリースされました。

array_index_mask_nospecさらに、2018年2月22日に、DebianはSpectre亜種2の完全なリトポリン軽減とSpectre亜種1の緩和を含むDebian 9用のカーネルアップデートをリリースしました。その結果、BIOS / マイクロコードの更新なしで Debian 9 で Spectre 緩和の完全なセットを使用できるようになりました。

一部のテストでは、このリトポリン緩和は、実際にはIntelが提供するマイクロコードベースの緩和よりもパフォーマンスにはるかに小さい影響を与えることがわかりました。

したがって、必要なコンパイラ機能のバックポーティングが進行中です。残念ながら、RHEL / CentOS 7の標準コンパイラバージョンは次のとおりですgcc-4.8.5。バックポートのパッチが役立ちますが、必要なコンパイラ機能を 。gcc-4.9gcc-4.8.5

2018年2月20日、Intelがリリースされました。さまざまなプロセッサモデルのマイクロコードアップデートに関する推奨事項のセット。また、1月にリリースされた後にバグがあることが判明したマイクロコードバージョンをリストし、それに応じて特定のマイクロコードバージョンの配布をお勧めします。止まらなければならない

関連情報