ここから本文です

Windows起動前後にデバイスを守る工夫、「ルートキット」を防ぐ

7/25(火) 8:10配信

@IT

 2015年7月にリリースされたWindows 10は、セキュリティ面の強化を1つの柱とした製品だ。2016年3月のAnniversary Update、2017年4月のCreators Updateと、セキュリティ面のさらなる強化を図っている。

Windows 10で利用可能なセキュリティ対策

 Windows 10のセキュリティ対策は全体像をつかみにくい。なぜなら対策が多岐に及んでいることに加え、Windows VistaやWindows 7、Windows 8/8.1で導入されたセキュリティ対策を前提としているものが多いからだ。

●「デバイスの保護」がセキュリティの大前提

 Windows 10のセキュリティを5つのスタックに分かれている。(1)デバイスの保護、(2)脅威(攻撃)からの保護、(3)認証情報の保護、(4)情報の保護、(5)侵害の検出と対策、のうち今回は(1)について紹介しよう。

 デバイスの保護は、5つのスタックのうち、最も基本的なものであり、全てのセキュリティの基盤と言える。なぜだろうか。もしもデバイスの保護に失敗し、ルートキット(Firmware Rootkit、Bootkit、Kernel rootkit、Driver rootkitなど)が入り込んだとしよう。いわゆるルートキットは、Windowsよりも先に起動する。そのためWindowsシステムからは検知できない。当然ながら通常のアンチマルウェアソフトでも検知できない。

 デバイスを保護するためには、ファームウェアやブートローダ、ドライバなど、OSの起動前に動き始めるシステムが正統なものであることを保証しなければならない。

●起動プロセスを保証する4つの機構

 Windowsにおける代表的なデバイス保護機構として、「Windows Trusted Boot」がある。Windows Trusted Bootは、Windowsが正規のモジュールで起動されたことを保証する一連の機構で、以下の4つの機能からなる。(1)UEFI Secure Boot、(2)Trusted Boot、(3)Early Launch Anti-Malware(EALM)(4)Measured Bootだ。ルートキットを防ぎ、起動プロセスを保障するための機構は、Windows 8から取り入れられた。

 (1)UEFI Secure bootは、BIOSに替わりUEFI(Unified Extensible Firmware Interface)を実装したWindows 8/8.1/10で利用可能な機能だ。「ブートローダと呼ばれるシステムを起動するためのプログラム」が正規のものであることを、UEFIを使って保証する。

 (2)Trusted bootは、Windowsカーネルのデジタル署名を確認しロードした後に、Windowsのスタートアッププロセス、ブートドライバ、ELAMを検証する。ELAMは、「ブートドライバが信頼されたドライバリストに載っているかどうか」を検証する。いずれかのファイルが変更されていた場合、そのファイルを読み込まず、バックアップから正規のシステムに復旧した上でシステムを起動する。

 (3)UEFI Secure Bootがブートローダを保護し、Trusted BootがWindowsカーネルを保証した状況で先ほど説明したELAMが機能する。「ブートドライバとして読み込まれるマルウェア」を検出することが目的だ。通常のマルウェア対策ソフトは、ブートドライバ動作後に読み込まれるため、ブートドライバの検証を行うことができないが、ELAMならこれが可能というわけだ。このようにしてブートドライバとして稼働を試みるルートキットを阻止する。

 (4)Measured Bootは、PCが適切に起動されたかどうか、検証するために利用する機能だ。企業のネットワークにおいて、ルートキットに感染したPCがあれば、これを検出する必要がある。しかし、先に述べたように、ルートキットに感染したPCは健全なPCに見えるため、識別は困難である。

 Measured Bootは、UEFIを使ってファームウェアやブートローダ、ブートドライバなどのハッシュを記録する。そしてスタートアッププロセスの最後に、アテステーションサーバ(検証サーバ)でブートの正当性の検証を行う。アテステーションサーバは、クライアントがアクセスできる範囲の制御にも使うことができる。アテステーションの「未実装」「成功」「失敗」という3つのステータスに基づいて制御する。

●仮想化を利用してセキュリティを保証するVBS

 さまざまな攻撃手法のうち、認証情報を不正に取得する攻撃に対して、Windows 10では「Virtualization Based Security(VBS)」と呼ぶ仮想マシンを使った分離機構を導入して対策した。

 例えば、Windowsが内部に保持している認証情報(ハッシュ)を横取りして不正に認証を行う「Pass-the-Hash攻撃」は、標的型攻撃で利用されることが多い。Pass-the-Hash攻撃では、Windowsシステムの管理者権限をまず取得し、次にアクセス時に特権を必要とするシステム情報から、攻撃に必要な情報を得る。このような攻撃の流れを断ち切るのがVBSだ。

 VBSは仮想化基盤「Hyper-V」を利用している。Windows 10では、「Windowsオペレーティングシステム(以下Windows OS)」自体が仮想マシンとして動作しているが、このWindows OSと「VSM(Virtual Secure Mode)」と呼ばれる、もう1つの仮想マシンが動作している。

 VSMは、ハイパーバイザー上で動作する独立したシステムで、いわば「マイクロOS」として動作し、資格情報などをOSの処理から保護する。つまりWindows OSから完全に独立しているため、Windows OSが侵害を受け、特権を取られたとしても、VSMは侵害されない。

 VSMはこの特長を利用して、Pass-the-Hash攻撃などを防ぐ。Pass-the-Hash攻撃では、LSA(Local Security Authority)の認証情報を管理するLocal Security Authentication Serviceが攻撃されるが、VBS構成では、このLSAがVSMに格納されているため、攻撃は不可能というわけだ。

 同様にクラウドや仮想マシンでTPM(Trusted Platform Module、セキュリティチップ)を利用するためのVirtual TPM、ドライバーやカーネルモードで動作するコードの完全性を検証するためのHyper-Visor Code Integrityも、VSM内に実装されている。

 次回はWindows 10が備える5つのセキュリティスタックのうち、今回の「デバイスの保護」に続いて、2番目の「脅威(攻撃)からの保護」を解説する。

●筆者プロフィール
○高橋 正和(たかはし まさかず)
日本マイクロソフト株式会社
チーフ セキュリティ アドバイザー
1980年代初頭からミニコン、PC-98、8085、4bitマイコンなどを使った制御システムの開発などを経験。
1980年代中頃から、日本デジタル研究所株式会社で標準ライブラリの開発保守、開発環境の開発保守、独自OSからWindows NT/Windows XPへの移植、品質管理、新入社員向けのC言語の新人教育などを担当した。
標準ライブラリでは、ファイルシステムやSocketライブラリの開発・実装・保守、開発環境では、68K系のCPUにWhite Sims’s Cによるリロケータブルな実行ファイル形式という特性を使って、オーバーレイリンカー・ローダーなども開発した。
1999年にISS(現在はIBM)セキュリティに関わり、2006年から現職(日本マイクロソフト株式会社 チーフセキュリティアドバイザー)を務める。

最終更新:7/25(火) 8:10
@IT