Windows 10 のブート プロセスのセキュリティ保護

適用対象:

  • Windows 10
  • Windows 8.1

Windows オペレーティング システムには、マルウェアから保護するための多くの機能が用意されており、非常に効果的な結果を示しています。 企業が内部で開発して使用するアプリを除き、すべての Microsoft Store アプリは、認定されて Microsoft Store に掲載されるための一連の要件を満たしている必要があります。 この認定プロセスでは、セキュリティを含むいくつかの条件が調べられ、マルウェアの Microsoft Store への侵入を防止する有効な手段になっています。 悪意のあるアプリが入り込んだ場合でも、Windows 10 オペレーティング システムには、その影響を軽減できる一連のセキュリティ機能が含まれています。 たとえば、Microsoft Store アプリはサンド ボックス化されており、ユーザー データへのアクセスやシステム設定の変更に必要な特権がありません。

また、Windows 10 では、デスクトップ アプリとデータを複数のレベルで保護します。 Windows Defender は、シグネチャを使用して、悪意があることがわかっているアプリを検出して検疫します。 Windows Defender SmartScreen は、それがマルウェアとして認識されていない場合でも、信頼できないアプリを実行する前にユーザーに警告します。 アプリがシステムの設定を変更する前に、ユーザーは、ユーザー アカウント制御を使用して、アプリに管理者特権を付与する必要があります。

これらは、Windows 10 がユーザーをマルウェアから保護する方法の一部です。 ただし、これらのセキュリティ機能がユーザーを保護するのは、Windows 10 の起動後のみです。 最新のマルウェア (具体的にはブートキット) は、Windows より先に起動し、オペレーティング システムのセキュリティを完全に回避するため、検出されることがありません。

PC または Unified Extensible Firmware Interface (UEFI) をサポートしている PC で Windows 10 を実行している場合、PC の電源をオンにしてからマルウェア対策が開始されるまでの間、トラスト ブートがお使いの PC をマルウェアから保護します。 万一 PC がマルウェアに感染した場合でも、検出されないということはありません。トラスト ブートは、マルウェアが偽装できない方法で、インフラストラクチャに対してシステムの整合性を証明することができます。 UEFI を搭載しない PC でも、Windows 10 によって、以前のバージョンの Windows よりも起動時のセキュリティが強化されます。

最初に、ルートキットの概要とその動作について説明します。 次に、Windows 10 によってどのようにユーザーが保護されるかを説明します。

脅威: ルートキット

ルートキットは、オペレーティング システムと同じ特権を使ってカーネル モードで実行される、巧妙で危険なマルウェアです。 ルートキットは、オペレーティング システムと同じ権利を持ち、オペレーティング システムより先に起動するため、完全にそれ自身および他のアプリケーションを隠すことができます。 また、ルートキットは、ローカル ログインの回避、パスワードやキー入力の記録、機密ファイルの転送、暗号化データの収集を行うマルウェアのスイートによく含まれています。

スタートアップ プロセスのどのフェーズでルートキットが読み込まれるかは、ルートキットの種類によって異なります。

  • ファームウェア ルートキット。 これらのキットは、Windows より先にルートキットに起動できるように、PC の基本入出力システムやその他のハードウェアのファームウェアを上書きします。
  • ブートキット。 これらのキットは、PC がオペレーティング システムより先にブートキットを読み込むように、オペレーティング システムのブートローダー (オペレーティング システムを起動する小さなソフトウェア) を置き換えます。
  • カーネル ルートキット。 これらのキットは、オペレーティング システムが読み込まれるときに、ルートキットが自動的に起動できるように、オペレーティング システムのカーネルの一部を置き換えます。
  • ドライバー ルートキット。 これらのキットは、Windows が PC ハードウェアと通信するために使用する信頼済みのドライバーのいずれかを偽装します。

対策

Windows 10 では、スタートアップ プロセス中にルートキットやブートキットが読み込まれないようにする 4 つの機能をサポートしています。

  • セキュア ブート。 UEFI ファームウェアとトラステッド プラットフォーム モジュール (TPM) を搭載した PC を、信頼されたオペレーティング システム ブートローダーだけを読み込むように構成できます。
  • トラスト ブート Windows は、読み込む前に、スタートアップ プロセスのすべてのコンポーネントの整合性を確認します。
  • 起動時マルウェア対策 (ELAM)。 ELAM では、すべてのドライバーを読み込む前にテストし、承認されていないドライバーが読み込まれないようにします。
  • メジャー ブート。 PC のファームウェアでブート プロセスをログに記録し、Windows から信頼されたサーバーにそのログを送って、PC の正常性を客観的に評価できます。

図 1 は、Windows 10 のスタートアップ プロセスを示します。

Windows 10 のスタートアップ プロセス

図 1. セキュア ブート、トラスト ブート、メジャー ブートによってすべてのステージでマルウェアをブロック

セキュア ブートとメジャー ブートは、UEFI 2.3.1 と TPM チップを搭載した PC でのみ実行できます。 幸いなことに、Windows ハードウェア互換性プログラムの要件を満たすすべての Windows 10 PC にはこれらのコンポーネントが搭載されており、以前のバージョンの Windows 向けに設計された多くの PC も同様です。

以降のセクションでは、セキュア ブート、トラスト ブート、ELAM、メジャー ブートについて説明します。

セキュア ブート

PC は、起動するときに、最初にオペレーティング システム ブートローダーを検索します。 セキュア ブートを実行していない PC では、PC のハード ドライブにあるブートローダーが実行されます。 信頼されているオペレーティング システムとルートキットを PC で区別する方法はありません。

UEFI が搭載された PC を起動する場合、PC は最初にファームウェアがデジタル署名されていることを確認し、ファームウェアのルートキットのリスクを減らします。 セキュア ブートが有効になっている場合、ファームウェアはブートローダーのデジタル署名を検証して、ファームウェアが変更されていないことを確認します。 ブートローダーが変更されていないときは、ファームウェアは、次の条件のいずれかに該当する場合にのみ、ブートローダーを開始します。

  • ブートローダーが信頼された証明書を使用して署名されている。 Windows 10 用に認定された PC の場合、Microsoft® 証明書は信頼されています。
  • ユーザーが手動でブートローダーのデジタル署名を承認している。 これにより、ユーザーは Microsoft 以外のオペレーティング システムの読み込むことができます。

x86 ベースの Windows 10 認定済み PC はすべて、セキュア ブートに関連するいくつかの要件を満たす必要があります。

  • 既定でセキュア ブートを有効にしておく必要があります。
  • Microsoft の証明書 (つまり Microsoft が署名したすべてのブートローダー) を信頼する必要があります。
  • ユーザーが他のブートローダーを信頼できるようにするため、セキュア ブートを構成できる必要があります。
  • ユーザーがセキュア ブートを完全に無効にできる必要があります。

これらの要件により、ユーザーは、任意のオペレーティング システムを実行しながら、ルートキットから守られます。 Microsoft 以外のオペレーティング システムを実行する場合、次の 3 つのオプションがあります。

  • 認定済みのブートローダーを備えたオペレーティング システムを使う。 すべての Windows 10 認定済み PC では、Microsoft の証明書を信頼する必要があるため、Microsoft では、すべての Windows 10 認定済み PC で信頼されるように、Microsoft 以外のブートローダーを分析し、署名するサービスを提供します。 実際に、Linux を読み込むことができるオープン ソースのブートローダーが既に提供されています。 証明書を取得するプロセスを開始するには、https://partner.microsoft.com/dashboard にアクセスしてください。
  • カスタム ブートローダーを信頼するように UEFI を構成します。 すべての Windows 10 認定済み PC で、UEFI データベースに署名を追加することによって、非認定のブートローダーを信頼して、自作のオペレーティング システムを含む、すべてのオペレーティング システムを実行できます。
  • セキュア ブートを無効にする。 すべての Windows 10 認定済み PC では、すべてのソフトウェアを実行できるように、セキュア ブートをオフにすることができます。 ただし、これによりブートキットから守られなくなります。

マルウェアがこれらのオプションを悪用できないようにするため、ユーザーは UEFI ファームウェアを手動で構成し、非認定のブートローダーを信頼するか、セキュア ブートを無効にする必要があります。 ソフトウェアではセキュア ブート設定を変更できません。

ほとんどのモバイル デバイスと同様に、ARM ベースの Windows RT 認定デバイス (Microsoft Surface RT デバイスなど) は、Windows 8.1 のみを実行するよう設計されています。 したがって、セキュア ブートをオフにすることはできず、別のオペレーティング システムを読み込むことはできません。 幸いなことに、その他のオペレーティング システムを実行するように設計された ARM デバイスには大規模な市場があります。

トラスト ブート

セキュア ブートの後、トラスト ブートに引き継がれます。 ブートローダーは、Windows 10 カーネルのデジタル署名を検証してから読み込みます。 その後、Windows 10 カーネルは、ブート ドライバー、スタートアップ ファイル、および ELAM 含む、Windows スタートアップ プロセスの他のすべてのコンポーネントを検証します。 ファイルが変更されている場合、ブートローダーは問題を検出し、破損したコンポーネントの読み込みを拒否します。 多くの場合、Windows 10 は破損したコンポーネントを自動的に修復して、Windows の整合性を復元し、PC が正常に起動できるようにします。

起動時マルウェア対策

セキュア ブートはブートローダーを保護し、トラスト ブートは Windows カーネルを保護しているため、マルウェアの次の攻撃は、Microsoft 以外のブート ドライバーに感染することです。 従来のマルウェア対策アプリは、ブート ドライバーが読み込まれるまで起動しないため、ルートキットをドライバーに偽装して実行できる可能性があります。

起動時マルウェア対策 (ELAM) は、Microsoft 以外のすべてのブート ドライバーとアプリケーションよりも先に Microsoft または Microsoft 以外のマルウェア対策ドライバーを読み込むことができるため、セキュア ブートとトラスト ブートによって確立された信頼チェーンが維持されます。 オペレーティング システムがまだ起動していないうえに、Windows をできる限り短時間で起動する必要があるため、ELAM はすべてのブート ドライバーを調べ、信頼されたドライバーの一覧に含まれているかどうかを確認するという単純なタスクを実行します。 信頼されていないドライバーは読み込まれません。

ELAM ドライバーは、フル機能のマルウェア対策ソリューションではありません。それはブート プロセスで後ほど読み込みます。 Windows 10 の Windows Defender では、Microsoft System Center 2012 Endpoint Protection や Microsoft 以外のいくつかのマルウェア対策アプリのように ELAM がサポートされます。

メジャー ブート

組織内の PC がルートキットに感染した場合、それを認識する必要があります。 エンタープライズのマルウェア対策アプリは、IT 部門にマルウェアの感染を報告できますが、存在を隠して潜んでいるルートキットでは適切に機能しません。 つまり、それが正常かどうかを通知するクライアントを信頼することはできません。

この結果、ルートキットに感染している従来の PC は、マルウェア対策が稼働していても正常に見えます。 マルウェアに感染した PC は、エンタープライズ ネットワークに接続し続けて、膨大な機密データへのアクセスをルートキットに提供し、潜在的にルートキットが内部ネットワーク全体に拡散できるようにします。

TPM と Microsoft 以外のソフトウェアを使用する場合、Windows 10 のメジャー ブートによって、ネットワーク上の信頼されたサーバーが Windows スタートアップ プロセスの整合性を検証することができます。 メジャー ブートでは、次の手順を使用します。

  1. PC の UEFI ファームウェアは、マルウェア対策アプリの前に読み込まれるファームウェア、ブートローダー、ブート ドライバー、その他のすべてのハッシュを TPM に格納します。
  2. スタートアップ プロセスの最後に、Windows は、Microsoft 以外のリモート構成証明クライアントを起動します。 信頼された構成証明サーバーが、一意のキーをクライアントに送信します。
  3. TPM は、一意のキーを使用して、UEFI によって記録されたログにデジタル署名します。
  4. クライアントはサーバーにログを送信します。他のセキュリティ情報も送信される場合があります。

実装と構成に応じて、サーバーは、クライアントが正常な状態かどうかを判断し、制限付きの検疫ネットワークまたはネットワーク全体へのアクセスをクライアントに付与します。

図 2 に、メジャー ブートとリモート構成証明プロセスを示します。

メジャー ブートとリモート構成証明プロセス

図 2. メジャー ブートはリモート サーバーに PC の正常性を証明する

Windows 10 にはメジャー ブートをサポートするために必要なアプリケーション プログラミング インターフェイスが含まれていますが、リモート構成証明クライアントと信頼された構成証明サーバーを実装してそれを活用するには、Microsoft 以外のツールが必要です。 このようなツールの例としては、Microsoft Research から TPM Platform Crypto-Provider Toolkit をダウンロードするか、Microsoft Enterprise Security MVP である Dan Griffin の Measured Boot Tool をダウンロードしてください。

メジャー ブートは、UEFI、TPM、Windows 10 の機能を使って、ネットワーク全体のクライアント PC の信頼性を確実に評価する方法を提供します。

まとめ

セキュア ブート、トラスト ブートし、メジャー ブートは、根本的にブートキットやルートキットに対して抵抗力のあるアーキテクチャを作成します。 Windows 10 では、これらの機能によって、ネットワークからカーネル レベルのマルウェアを除去することができます。 これは、Windows で最も革新的なマルウェア対策ソリューションであり、他のどのソリューションよりも飛躍的に進歩しています。 Windows 10 では、オペレーティング システムの整合性を本当に信頼することができます。

その他のリソース