セキュアブートと dbx
UEFI のセキュアブートを有効にした PC で,攻撃者が管理者権限を奪い,EFI システムパーティション上のブートローダを,既知の脆弱性をもつ旧版のブートローダに置き換えた。旧版は db に登録された証明書で検証できる正規の署名をもち,そのハッシュ値や署名証明書は dbx に登録されていない。次回の起動時の動作と対処として,適切なものはどれか。
- ア旧版のブートローダは攻撃者が置き換えたものなので署名の検証に失敗し,ファームウェアはその起動を阻止する。
- イ署名の検証に成功して旧版のブートローダが起動する。旧版の起動を阻止する対処としては,旧版のハッシュ値などを dbx に登録する。
- ウ署名の検証には成功するが,TPM の PCR に記録される計測値が前回の起動時と異なるので,セキュアブートが起動を阻止する。
- エファームウェアは,ブートローダのバージョンが前回起動したものより古いことを検出し,ロールバックとみなして起動を阻止する。
正解と解説を見る
正解 イ
この問題の基礎知識
- UEFI のセキュアブートは,起動時に読み込むブートローダなどのイメージの署名やハッシュ値を検証し,許可されたものだけを実行する仕組みである。
- 署名データベースの db には実行を許可する証明書やハッシュ値を,dbx には禁止(失効)する証明書やハッシュ値を登録する。db で検証でき,かつ dbx に該当しないイメージの起動が許可される。
- メジャードブートは,起動した各コンポーネントの計測値を TPM の PCR に記録して後から検証できるようにする仕組みであり,起動の可否を判定するものではない。
ア旧版のブートローダは攻撃者が置き換えたものなので署名の検証に失敗し,ファームウェアはその起動を阻止する。
誰が置き換えたかは署名の検証結果に影響しない。旧版は db の証明書で検証できる正規の署名をもち,dbx にも該当しないので,検証に成功する。
イ署名の検証に成功して旧版のブートローダが起動する。旧版の起動を阻止する対処としては,旧版のハッシュ値などを dbx に登録する。正解
ファームウェアは,db のハッシュ値又は証明書で検証でき,かつ dbx に該当しないイメージの起動を許可する。旧版のハッシュ値を dbx に登録すれば,正規の署名をもっていても検証は成功しなくなり,起動を阻止できる。
ウ署名の検証には成功するが,TPM の PCR に記録される計測値が前回の起動時と異なるので,セキュアブートが起動を阻止する。
計測値を TPM の PCR に記録するのはメジャードブートであり,記録と報告が目的で起動の可否は判定しない。セキュアブートの判定は db と dbx の内容に基づいて行われる。
エファームウェアは,ブートローダのバージョンが前回起動したものより古いことを検出し,ロールバックとみなして起動を阻止する。
セキュアブートは,イメージの署名やハッシュ値を db 及び dbx と照合して起動の可否を判断する仕組みであり,前回起動したイメージとの新旧で判断するものではない。正規の署名をもつ旧版も,dbx に該当しなければ起動できる。
検証用の出典出典照合済み
UEFI Specification Version 2.10, Section 32 Secure Boot and Driver Signing / TCG PC Client Platform Firmware Profile Specification照合の根拠(5 件)
- イ(正解)・ア(誤り): db のハッシュ値又は db の証明書で検証できることが起動許可の条件であり,誰が置き換えたかは判定に関係しない
The security database db must either contain an entry with a hash value of the image (with a supported hash type), or it must contain an entry with a certificate against which an entry in the image’s certificate table can be verified.
UEFI Specification 2.10 · Section 32.5(Authorization Process: UEFI Image Validation Succeeded?)(新しいタブで開きます) - イ(正解): db で検証できても dbx に該当する記録があれば検証は成功しない(旧版は dbx に該当しないので成功する)
In either case verification must not succeed if the security database dbx contains any record with:
UEFI Specification 2.10 · Section 32.5(同上)(新しいタブで開きます) - イ(正解): イメージの SHA-256 ハッシュ値を dbx に登録すれば,db で検証できても検証は成功しない
Any entry with SignatureListType of EFI_CERT_SHA256_GUID with any SignatureData containing the SHA-256 hash of the binary.
UEFI Specification 2.10 · Section 32.5(同上 A.)(新しいタブで開きます) - ウ・エ(誤り): 起動可否の判定は db と dbx の内容に基づき,前回起動時の計測値やバージョンとの比較は条件に含まれない
Only one hash or signature is required to be present in db in order to pass validation, so long as neither the hash of the binary nor any present signature is reflected in dbx.
UEFI Specification 2.10 · Section 32.5(新しいタブで開きます) - ウ(誤り): TPM の PCR への計測値の記録は検証者による事後の照合(アテステーション)のためのもので,署名データベースによる起動判定とは別の仕組み
For example, the platform firmware may extend the device firmware measurement to TPM PCR. A verifier can get the device firmware information and compare it with the known good device integrity measurement.
UEFI Specification 2.10 · Section 32.6(Device Authentication)(新しいタブで開きます)
旧版は db の証明書で検証でき,ハッシュ値も署名証明書も dbx にないので,32.5 の判定では検証に成功する。対処としてはイメージのハッシュ値を dbx に登録する(dbx の X509_SHA256 項目と TimeOfRevocation の扱いには踏み込まない)。PCR の記述は 32 章のデバイス認証の節にあるもので,メジャードブートの一般論として引いた。