最近、Vrije大学のSystems and Network Security Group(VUSec)の学者が、IntelプロセッサのCrossTalkまたはSRBDS(CVE-2020-0543)の脆弱性に関する詳細を公開しました。 CrossTalkの脆弱性により、あるCPUコアで実行されている攻撃者が制御するコードが、別のコアで実行されている他のソフトウェアから機密データを漏洩する可能性があります。この記事では、サーバーを再起動せずにこのIntelCPUの脆弱性を軽減する方法を紹介します。
クロストークとは何ですか?
CrossTalkの脆弱性は、Spectre、Meltdown、またはZombieloadに似た、一種のMDS(マイクロアーキテクチャデータサンプリング)攻撃です。マシンが機密データにアクセスしている間、機密データを公開して盗むことができます。 MDS攻撃は、CPUとそれに接続されている多くのシステムの内部に存在するため、一時的な状態でユーザーデータを標的にします。
SRBDS / CrossTalkの脆弱性は、一時的な実行の脆弱性です。 Intelによって「特殊レジスタバッファデータサンプリング」またはSRBDS(CVE-2020-0543)と名付けられ、攻撃者が制御するコードを1つのCPUコアで実行できるため、別のコアで実行されている被害者のソフトウェアから機密データが漏洩する可能性があります。
図1:VUSecの厚意により、CrossTalkの命令プロファイリングステージの設計
Intel CPUを使用しているシステムは、この脆弱性の影響を受ける可能性があります。 CPUが影響を受けているかどうかはこちらを確認してください。
SRBDS(CVE-2020-0543)の脆弱性の再起動なしの軽減
Intelは、2020年6月9日火曜日にソフトウェアベンダーに配布されたマイクロコードアップデートでSRBDS脆弱性の緩和策を実装しました。この緩和策には、最新のLinuxカーネルパッチとマイクロコードアップデートのインストールが必要です。どちらの操作も、従来は再起動時に実行されます。
いくつかのサーバーを再起動することは問題のようには聞こえませんが、500台以上のサーバーを管理しているSysAdminであれば、問題はありません。サーバーフリート全体を再起動するには、通常、徹底的なメンテナンスウィンドウの計画が必要です。幸い、ライブパッチ技術により、マイクロコード更新とLinuxカーネルパッチアプリケーションの両方で、再起動せずにCrossTalkに対してシステムのセキュリティ更新を適用できます。
Canonical、Red Hate、およびその他のディストリビューションベンダーは、サポートされているすべてのUbuntuディストリビューション、Debian、CentOS、Red HatEnterpriseLinuxのセキュリティパッチをリリースしました。また、CanonicalとRed Hatには、再起動せずに脆弱性にパッチを適用する独自のソリューションがありますが、SRBDS / CrossTalkの場合は、更新後にデスクトップまたはサーバーを再起動する必要があります。
KernelCareチームは、CrossTalk / SRBDSの再起動なしの緩和策を作成しました。これにより、サーバーを再起動してパッチを適用する必要がなくなります。以下の手順を見つけてください:
A)ハードウェアで実行している場合は、再起動せずにサーバーをCrossTalk/SRBDSの脆弱性から保護するために3つの手順を実行します。
ステップ1:KernelCareの無料試用ライセンスにサインアップする
KernelCareは、すべてのサーバーで30日間無料で使用でき、試用版にサインアップするためにクレジットカードは必要ありません。また、2020年の残りの期間は医療機関は無料で、非営利団体は永久に無料です。
ステップ2: 再起動せずにマイクロコードを更新する
例:RHELでのマイクロコードの更新
これは、RHELでの再起動なしのマイクロコード更新の例です。 Debian、Ubuntu、CentOS、およびその他のディストリビューションの手順は、KernelCareのドキュメントに記載されています。
RHELベースのディストリビューションの場合、microcode_ctlユーティリティを使用してマイクロコードを更新できます。
開始する前に、ディストリビューションのパッチの準備ができているかどうかをここで確認してください。ページは1時間ごとに更新されます。
1。 microcode_ctl を更新して、最新のマイクロコードを取得します パッケージ
yum update microcode_ctl
2。 force-late-intel–06–4f–01を作成します ファームウェアディレクトリ内。
touch /lib/firmware/`uname -r`/force-late-intel-06-4f-01
3。マイクロコードの更新を実行する
/ usr / libexec / microcode_ctl / update_ucode
4。カーネルに新しいマイクロコードをロードさせる
エコー1>/sys / devices / system / cpu / microcode / reload
5。新しいマイクロコードを確認してください
dmesg | grep microcode
[ 2.254717] microcode: sig=0x306a9, pf=0x10, revision=0x12
[ 2.254820] microcode: Microcode Update Driver: v2.01 <[email protected]>, Peter Oruba
[ 1483.494573] platform microcode: firmware: direct-loading firmware intel-ucode/06-3a-09
[ 1483.495985] microcode: updated to revision 0x21, date = 2019-02-13
[ 1483.496012] platform microcode: firmware: direct-loading firmware intel-ucode/06-3a-09
[ 1483.496698] platform microcode: firmware: direct-loading firmware intel-ucode/06-3a-09
[ 1483.497391] platform microcode: firmware: direct-loading firmware intel-ucode/06-3a-09
6。 (オプション)新しいマイクロコードバージョン(コアごとのリビジョン)を再確認します
cat /proc/cpuinfo | grep -e microcode
microcode : 0x21
microcode : 0x21
microcode : 0x21
microcode : 0x21
ステップ3:KernelCareパッチを適用する
次に、Linuxカーネルを更新して、ローカルユーザーがCPUで実行しているデータを読み取れないようにする必要があります。 KernelCareを使用すると、再起動せずにそれを行うことができます。ステップ1でトライアルにサインアップした場合、これですべての準備が整い、他に何もする必要はありません。
B)VMで実行している場合:
VM内のLinuxカーネルにパッチを適用するだけで済みます。ホストノードも更新されていることを確認してください。これは通常、サービスプロバイダーによって行われます。
KernelCareを使用している場合-パッチはKernelCareによって自動的に配信され、特別なことをする必要はありません。そうでない場合-30日間の無料トライアルに登録 。