BIOSのガーディアンが必要とされる理由

By Alex Matrosov

以前のブログ記事では、Intel Boot Guardテクノロジーの詳細をいくつか説明しました。また、この内容については、Black Hat USAで登壇して発表しています。Dellも実装に関して詳細情報の一部を共有しています。

今回の記事では、引き続きBIOS防御テクノロジーを取り上げて、この調査の重要性を説明します。調査を通じて、プラットフォームのブートプロセスを初期段階から適切に防御することはなぜ重要なのかという点を共有し、セキュアブートの改善に本当に必要なことは何か(オペレーティングシステムローダに備えて)、UEFIファームウェアの最新のブートステージがどのようにそれらに対応しているのか考えたいと思います。

このブログ記事では、私が Black Hatで発表した調査の重要性について、 いくつか事実を 紹介します。

最新のルートキットの進化

今日 、興味深い ルートキットやブートキットを目にすることはほとんどありません。マルウェアの脅威の大半はユーザーモードに移行しています。この傾向は、最新のオペレーティングシステムのセキュリティテクノロジーの進化と直接結びついています。

たとえば、Microsoft Windowsは、この数年で、カーネルモードドライバのカーネルに多くのセキュリティ変更を加えました。現在、ドライバ署名ポリシーの影響で、カーネルは署名のないドライバをロードできません。カーネルモードのコード変更では、Patch Guardによって多くのことが制限されています。MS Windows 10の仮想保護モード(VSM)とDevice Guardにより、カーネルモードルートキット開発が複雑になり、しきいが上がりました。

図1

UEFIへの移行とセキュアブートスキームの拡大は、ブートキットを取り巻く環境を変えました。それに伴い、セキュリティの専門家はBIOSファームウェアへの注目を高めています。また、これらの変化により、カーネルモードルートキットおよびブートキット開発のコストが増加しています。これはすでに起こっていることですが、そこに大きく影響しているのがコード署名ポリシーです。署名済みドライバやWindowsカーネルモードコンポーネントの脆弱性を利用してユーザーモードから防御機能を迂回する多くの方法と比べると、ブートキット開発プロセスは非常に低コストでした。

現在、攻撃者の観点から見てより合理的であるのは、1つ下のソフトウェアスタックのレベルに移行することです。ブートコードの後ろ、それがBIOSへの道です。

図2

BIOSレベルの永続性は、ほかと大きく異なります。ファームウェアインプラントやルートキットは、オペレーティングシステムの再インストールやハードディスク全体の変更後にもそのまま残ります。永続性の度合いがまったく異なり、感染したハードウェアを使用するサイクル全体において、ルートキットの感染が有効なまま維持されます。ファームウェアは、ハードウェアを直接操作するためにあります。BIOSは、ブートプロセスの初期段階で ハードウェアセットアップを実施するのが、まさにそれです。

Black Hat Asiaの講演で使用したタイムラインを紹介します。実際に見つかったBIOSの脅威の検出と、関連するセキュリティ専門家の活動を示しています。

図3

BIOSファームウェアは、情報が不足しており、ブートプロセス中に実行用の新しいコードを追加してBIOSを変更したり計測したりすることが困難であるため、専門家にとっては課題の多いターゲットです。しかし2013年以降、セキュリティ専門家コミュニティでは、新たな侵入方法の発見と、最近導入されたセキュリティ機能(セキュアブートなど)の弱点や攻撃のデモンストレーションにおいて多くの取り組みが見られました。

ただし、ファームウェア攻撃は非合法のサイバー犯罪の一般的な戦術ではありません。従来は、ほぼすべての既知のファームウェア侵害のインシデントが標的型攻撃に関連していました。

マトリョーシカ型ファームウェア更新

UEFIファームウェア更新の手順は通常、メインファームウェアであるBIOSの更新を指しています。しかし同時に、通常のBIOS更新では、マザーボードやCPUも対象に、内部のさまざまなハードウェアユニットに多種多様の「埋め込み」ファームウェアが実装されます。BIOS更新イメージの認証を迂回するBIOSのあらゆる脆弱性を通じて、悪意のあるコンポーネントの侵入を許す扉が開かれます。ただし、他の問題によって、認証なし、あるいは完全に迂回して、いずれかの「埋め込み」ファームウェア更新をインストールできる場合、扉はBIOSインプラントインストール以外にも開かれます。

基本的にそれぞれのファームウェアが、攻撃者がコードを格納したり実行したりできる場となり、悪意のあるインプラントの機会を与えます。では、普段使用されている最新のハードウェアには、どのくらいの数のファームウェアが含まれているのでしょうか。これは重要なポイントです。最新のデスクトップおよびノートパソコンのほとんどには、次の種類のファームウェアが含まれます。

図4

たとえば、Intelマネジメントエンジン(ME)がBIOSからMEメモリ領域に対する読み書きアクセスを許可した場合、技量のある攻撃者によってこの蓋然性の利用が試される可能性があります。私の調査では、最近のGigabyteハードウェアに同様の問題点を発見しました。Boot Guardの構成の弱点とこの問題点を合わせて利用すると、このハードウェアのIntel Boot Guardの実装を迂回できます。

この問題点はすでにベンダーによってパッチ対応、確認済みです。Black Hatの講演でこの問題点の詳細について登壇しました。

IntelベースUEFIファームウェア向けのBIOSガーディアン

以前のブログ記事でSPIフラッシュ防御と設定ミスの問題を取り上げました。今回は、すべての防御機能を1つにまとめてみます(ただしランタイムエクスプロイトに対する緩和策は含みません )。

- SPIフラッシュ不正書き込み保護用BIOSコントロールビット(BLE、BIOS_WE、SMM_BWP)

- SPIフラッシュメモリアクセスポリシー(PRx)

- BIOS更新認証(署名、BIOS Guard)

- ハードウェア管理による早期ブートプロセス認証および検証(Boot Guard)

- ハードウェア管理によるBIOS更新認証およびSPIフラッシュへのアクセスポリシー(BIOS Guard)

図5

なお、すべての防御機能が1つのハードウェアで有効になっていることはほとんどありません。たとえば、Intel Boot GuardおよびBIOS Guardテクノロジーは、vProテクノロジーを使用した非常に高価なCPUのバージョンでのみ使用されます。

ガーディアンが機能しないケース - Black Hatの講演

明らかになった以下の6種類の問題について、Black Hatの講演で登壇しました。

· ASUS VivoMini(CVE-2017-11315)- SMM権限のエスカレーション(リング0からリング-2)

· Lenovo ThinkCentre(CVE-2017-3753)- SMM権限のエスカレーション(リング0からリング-2)

· MSI Cubi 2(CVE-2017-11312、CVE-2017-11316)- SMM権限のエスカレーション(リング0からリング-2)

· Gigabyte BRIX(CVE-2017-11313、CVE-2017-11314)- Intel Boot Guardの迂回

2017年5月、所定の開示方法を通じて、すべてのベンダーに通知しました。一部のベンダーはすでにパッチをリリースしていますが、まだリリースしていないベンダーもあります。

本ブログの著書Alex Matrosovは、高度で巧妙なサイバー攻撃からの防御に活用できるテクニックやツールを解説した『Rootkits and Bootkits: Reversing Modern Malware and Next Generation Threats』の共同執筆者です。

Tags: