GRUB2にセキュアブートを回避可能な脆弱性
「GRUB2」にUEFIセキュアブートを回避可能な脆弱性が見つかりました。この脆弱性と「Ubuntu」の対応方針を紹介します。
最新情報を入手するには
本脆弱性と「Ubuntu」の対応状況に関する詳細及び最新の情報は、以下を参照してください。脆弱性の概要
ローカルで管理者権限を持つ攻撃者や物理的にPC(マシン)にアクセス可能な攻撃者は、「GRUB2」モジュールの署名チェックを回避し、信頼されていない任意の「GRUB2」モジュールをロードできます。これにより「UEFI」のセキュアブートを回避できます。
CVE
「CVE」は脆弱性を一意に識別する識別子です。本脆弱性では以下の「CVE」が割り当てられています。
- CVE-2020-14372
- CVE-2021-20233
- CVE-2020-25632
- CVE-2020-27779
- CVE-2021-20225
- CVE-2020-27749
- CVE-2021-3418
- CVE-2020-25647
Ubuntuの対応方針
脆弱性のある「GRUB2」をセキュアブート環境で確実に実行されないようにするため、本脆弱性の対応は複数のアップデートや手続きで構成されています。1.GRUB2のアップデート
サポート対象になっているすべての「Ubuntu」に、本脆弱性に対応した「GRUB2」がリリースされます。本脆弱性は「UEFI」上で発生する問題であり、UEFIシステム向けの「GRUB2」がアップデートの対象です。
本脆弱性に影響を受けないBIOSシステム向けの「GRUB2」はアップデートの対象外です。
このアップデートではサポート対象になっているすべての「Ubuntu」で、同一バージョンのUEFIシステム向け「GRUB2」がリリースされます。
バージョンを揃えることで対応コストを抑えられます。
2.shimのアップデート
「shim」はOSの起動プロセスにおいて「UEFI」のファームウェアと「GRUB2」を仲介する小さなプログラムです。
「shim」はMicrosoftのCAで署名されており、これがないとセキュアブート環境で「GRUB2」を起動できません。
脆弱性に対応した「DBX」及び「SBAT(Secure Boot Advanced Targeting)」に対応した「shim」がリリースされますが、作業量が多く他のアップデートよりも遅れてリリースされます。
また「shim」は「Vendor DBX」にも対応し、信用できないバイナリーを「Vendor DBX」に指定できるようになりました。
SBATとVendor DBX
「DBX」には容量に限りがあるため、影響を受けるすべての「GRUB2」を指定することができません。
そこで「SBAT」と「Vendor DBX」が考案され、影響を受ける「GRUB2」やその他OSの起動に関連するコンポーネントのロードを「SBAT」及び「Vendor DBX」で検証及び拒否する仕組みが開発されました。
注意
「GRUB2」をアップデートする前に「shim」のみアップデートしてしまうとその「GRUB2」は信用されなくなるため、UEFIセキュアブート環境でOSを起動できなくなります。3.fwupdのアップデート
「fwupd」はUEFIファームウェアなどファームウェアの管理やアップデートを実行するサービスです。「SBAT」セクションをバイナリーにアタッチするため、「fwupd」のアップデートも必要になります。
こちらも他のアップデートよりも遅れてリリースされます。
4.ディスクイメージの再作成
上記「1.」から「3.」のアップデートが出揃った後、必要に応じてディスクイメージの再作成が行われる予定です。5.失効リストの更新
上記「2.」に関連する内容ですが、影響を受ける「GRUB2」がロードされないように失効リストが更新されます。この時以前の「BootHole」も含め影響を受ける「GRUB2」の情報は「DBX」から「shim」バイナリーの「Vendor DBX」に移されます。
また「Vendor DBX」には別のセキュアブートを回避可能な脆弱性を持つ「Linux kernel」も指定されます。
GRUB2パッケージの修正バージョン
本脆弱性に対応した「GRUB2」パッケージのバージョンは以下のようになっています。OS | ベースパッケージ | 署名付き |
---|---|---|
Ubuntu 20.10 | grub2-unsigned 2.04-1ubuntu42 | grub2-signed 1.164 |
Ubuntu 20.04 LTS | grub2-unsigned 2.04-1ubuntu42 | grub2-signed 1.164 |
Ubuntu 18.04 LTS | grub2-unsigned 2.04-1ubuntu42 | grub2-signed 1.164 |
Ubuntu 16.04 LTS | grub2-unsigned 2.04-1ubuntu42 | grub2-signed 1.164 |
Ubuntu 14.04 ESM | grub2-unsigned 2.04-1ubuntu42 | grub2-signed 1.164 |
まだいずれの「GRUB2」もテスト中であり、ユーザー向けにアップデートはリリースされていません。