kledgeb UbuntuやLinuxの最新情報を紹介

Ubuntu 20.04 その127 - UEFIセキュアブートを回避するBootHoleの脆弱性とUbuntuの対応方針

BootHoleの脆弱性とUbuntuの対応方針

UEFIセキュアブートを回避する「BootHole」の脆弱性とUbuntuの対応方針を紹介します。


最新情報を入手するには

「BootHole」の対応と「Ubuntu」の対応方針に関する詳細及び最新情報は、以下を参照してください。

  • GRUB2 UEFI Secure Boot Bypass (aka There’s a Hole in the Boot/BootHole) (CVE-2020-10713)
  • Mitigating BootHole – ‘There’s a hole in the boot’ – CVE-2020-10713 and related vulnerabilities

GRUB2の脆弱性

「BootHole」は「GRUB2」で発見された脆弱性です。
「GRUB2」は「Linux」で幅広く利用されているブートローダー及びブートマネージャーです。
「GRUB2」の主な役割はOSを起動することであり、「Ubuntu」などOSが起動する前に起動するソフトウェアです。

署名チェックを回避できるようになる

管理者権限を持つ攻撃者やマシン(PC)に物理的にアクセス可能な攻撃者は、本脆弱性を利用し「GRUB2」モジュールの署名チェックを回避できるようになります。
署名チェックを回避することで信頼された署名が施されていない任意の「GRUB2」モジュールを読み込めるようになり、UEFIセキュアブートによるセキュリティーの仕組みを回避することができます。

CVE

「CVE」は脆弱性を識別するための識別子です。
本脆弱性は以下の「CVE」で識別及び構成されています。

  • CVE-2020-10713
  • CVE-2020-14308
  • CVE-2020-14309
  • CVE-2020-14310
  • CVE-2020-14311
  • CVE-2020-15705
  • CVE-2020-15706
  • CVE-2020-15707

GRUB2のアップデート

すでに「GRUB2」のアップデートがリリースされています。
「ソフトウェアの更新」を起動して「GRUB2」をアップデートしてください。

  • GRUB 2にUEFIセキュアブートを回避する脆弱性(BootHole)・アップデートを

対応している各パッケージのバージョンは以下のとおりです。

OS grub2 grub2-signed
Ubuntu 20.04 LTS grub2 2.04-1ubuntu26.1 grub2-signed 1.142.3
Ubuntu 18.04 LTS grub2 2.02-2ubuntu8.16 grub2-signed 1.93.18
Ubuntu 16.04 LTS grub2 2.02~beta2-36ubuntu3.26 grub2-signed 1.66.26
Ubuntu 14.04 ESM grub2 2.02~beta2-9ubuntu1.20 grub2-signed 1.34.22

GRUB2のアップデートによりOSが起動しなくなった場合は

「GRUB2」のアップデートによりOSが起動しなくなった場合は、「grub2」と「grub2-signed」パッケージを以前のバージョンにダウングレードする方法があります。
以前のバージョンはOSのバージョンにより異なります。

OS grub2 grub2-signed
Ubuntu 20.04 LTS grub2 2.04-1ubuntu26 grub2-signed 1.142.1
Ubuntu 18.04 LTS grub2 2.02-2ubuntu8.15 grub2-signed 1.93.16
Ubuntu 16.04 LTS grub2 2.02~beta2-36ubuntu3.23 grub2-signed 1.66.23
Ubuntu 14.04 ESM grub2 2.02~beta2-9ubuntu1.17 grub2-signed 1.34.20

例えばPCを利用している場合、ライブセッション上でダウングレードを実行します。
詳細は以下リンク先の「Recovery」を参照してください。

  • GRUB2 UEFI Secure Boot Bypass (aka There’s a Hole in the Boot/BootHole) (CVE-2020-10713)

Cloud及びMAASで起動に失敗する可能性

「Cloud」及び「MAAS」向けイメージで起動に失敗する可能性があります。
不具合の内容や回避策は、以下リンク先の「Known issues」を参照してください。

  • GRUB2 UEFI Secure Boot Bypass (aka There’s a Hole in the Boot/BootHole) (CVE-2020-10713)

DBXのアップデートが必要

本脆弱性に対応するには「GRUB2」のアップデートだけでなく、「UEFI Revocation List(DBX)」のアップデートも必要です。
「DBX」のアップデートにより、本脆弱性を含む「GRUB2」の読み込みを拒否します。

Ubuntuの対応

「Ubuntu」では、本脆弱性を含む「GRUB2」の署名に使用していた2012 Canonical UEFI署名鍵を「DBX」に追加することで、その「GRUB2」の読み込みを拒否します。

本脆弱性に対応した「GRUB2」では、新しい2017 Canonical UEFI署名鍵で「GRUB2」バイナリーを署名しており、今後はこちらの鍵で検証が行われます。

DBXのアップデートはこれから実施される

「DBX」のアップデートは「secureboot-db」パッケージのアップデートにより、「DBX」がアップデートされます。
現在「secureboot-db」のテストが実施されており、「secureboot-db」のアップデートは後日リリースされる予定です。

自分でアップデートする場合は

「secureboot-db」のアップデートが待てない場合は、「UEFI Revocation List File」を以下から入手し「DBX」を自分でアップデートすることも可能です。

  • UEFI Revocation List File

OSを複数インストールしている場合は

OSを複数インストールし、デュアルブート/マルチブート環境を構築している場合は、「DBX」のアップデートに注意が必要です。

上記で紹介したように以前の署名鍵が無効化されるため、無効化された署名鍵で署名された「GRUB2」及びOSは起動できなくなります。
「UEFI」の設定は全OSで共有される設定であるため、インストールしたOSのアップデート状況及び本件に関する対応状況を事前に把握しておく必要があります。
基本は事前にOSを最新の状態にアップデートしておくことです。

Ubuntu 16.04 LTSについて

「Ubuntu 16.04 LTS」が提供する「grub2」及び「grub2-signed」は、「FIPS」向け「Linux kernel」が署名されていないため、署名の検証を行っていません。
今後「FIPS」向け「Linux kernel」でも署名が行われ、「Ubuntu 16.04 LTS」が提供する「grub2」及び「grub2-signed」でも署名による検証が実施されるようになる予定です。

「FIPS」向け「Linux kernel」を利用しセキュアブートを有効にしている環境では、「FIPS」向け「Linux kernel」のアップデートが提供されるまで「grub2」及び「grub2-signed」のアップデートを抑制するため、「FIPS」リポジトリーをピン留めしておく方法が推奨されます。

$ cat <<EOF | sudo tee /etc/apt/preferences.d/ubuntu-fips
Package: *
Pin: release o=LP-PPA-ubuntu-advantage-fips, n=xenial
Pin-Priority: 1001
EOF
$ sudo apt-get update

Ubuntu
スポンサー
コメント
コメントポリシー
コメントをする前に UbuntuのCode of Conduct(CoC/行動規範) を確認し、CoCに沿ったコメントをお願いします。
コメントの使い方は、コメントの使い方を参照してください。
同一カテゴリーの記事
SNS
人気の記事
  • Ubuntu 22.04 その79 - 画面ロックの有効・無効を設定するには・画面ロック時の設定をカスタマイズするには
    画面ロックの有効・無効を設定するには 一定時間ユーザーによる操作がない時に、自動的に画面をロックしパスワードで保護したり、画面をブランク状態にできます。
  • VirtualBox その125 - ゲストOSのUbuntuにLinux Guest Additionsをインストールするには
    ゲストOSのUbuntuにLinux Guest Additionsをインストールするには 仮想マシンにインストールしたゲストOSの「Ubuntu」に、「Linux Guest Additions」をインストールする方法です。
  • Ubuntu nano その5 - 文字列を検索する
    文字列を検索する(Where Is)   文字列の検索は、部分一致と正規表現による検索が可能です。 検索の開始始点   現在カーソルのある位置から検索を行います。   もし、テキストの最後まで検索して文字が見つからない場合、   nanoはテキストの先頭から検索...
  • Ubuntu 26.04 その42 - Ubuntu 26.04.1 LTS のリリーススケジュール
    Ubuntu 26.04.1 LTSのリリーススケジュール Ubuntu 26.04.1 LTS のリリーススケジュールを紹介します。
  • Linux その386 - Arch Linux の AUR パッケージで悪意あるコミットが続く・今度はソースコードの難読化か
    Arch Linux の AUR パッケージで悪意あるコミットが続く Arch Linux の AUR パッケージで悪意あるコミット(マルウェア)が続いています。
  • Ubuntu 22.04 その120 - UbuntuのブートローダーをBoot Repairで修復するには・Ubuntuが起動しないトラブルを解決
    UbuntuのブートローダーをBoot Repairで修復するには 「Boot Repair」はOSのブートローダーに起因するOSが起動しない問題を簡単に解決してくれるアプリです。
  • Ubuntu 26.10 その14 - dbus-daemon から dbus-broker へ移行・dbus-broker へ移行する理由と目的
    dbus-daemon から dbus-broker へ移行 Ubuntu 26.10 で dbus-daemon から dbus-broker へ移行します。
  • Linux その383 - Arch Linux の AUR で 1,500 以上のパッケージがマルウェアに影響を受ける
    1,500 以上のパッケージが影響を受ける Arch Linux の AUR で 1,500 以上のパッケージがマルウェアに影響を受けました。
  • Ubuntu 22.04 その95 - ディスプレイサーバーを切り替えるには・XorgとWayland
    ディスプレイサーバーを切り替えるには 「Ubuntu」はデフォルトで2種類のディスプレイサーバーを提供しています。
  • Windows その29 - Windows 向け Coreutils 登場・Coreutils のインストールやコマンドの一覧など
    Windows 向け Coreutils 登場 Windows 向け Coreutils が登場しました。
記事のピックアップ
オプション