こんにちは、SOCアナリスト兼セキュリティバイブル主筆ライターの者です。突然ですが、みなさんのWindowsパソコン、ちゃんと「鍵」がかかっていると安心していませんか?実は、サイバー攻撃の世界では、その鍵をひっそりと複製し、あなたの知らない間に家の中を物色するような泥棒が存在するんです。
「サイバー攻撃って、なんだか遠い世界の話…」そう思っている新人IT担当者さんや、セキュリティに初めて触れる開発者さんもいるかもしれませんね。でも、ご安心ください。今日は、そんな目に見えない泥棒の手口と、それを防ぐための「最強の盾」について、身近な例えを交えながら、一歩ずつ一緒に学んでいきましょう!
—
【DFIR現場の知恵】家の鍵はどこ?Mimikatzが狙うWindowsの”金庫”LSASSと、最強の盾Credential Guard!
あなたのパスワード、どこにいるの?Windowsの「金庫番」LSASSプロセスとは?
まず最初に、皆さんがWindowsにログインする際に使うパスワード。これって、一体どこに保管されて、どのように使われているかご存知ですか?
Windows OSには、LSASS.exe (Local Security Authority Subsystem Service) という、とっても重要なプロセスが常に動いています。このLSASS、例えるならあなたの家の「金庫番」のような存在なんです。
- 役割: 皆さんがパソコンにログインする時、あるいはネットワーク上の共有フォルダにアクセスする時など、様々な認証処理をこのLSASSが担当しています。
- 重要性: ユーザー名とパスワードを照合したり、一度認証が成功した際に「あなたは確かにこのユーザーです」という証明書(Kerberosチケットなど)を発行したりと、セキュリティの心臓部と言える役割を担っています。
そして、ここが重要なんですが、LSASSはこれらの認証処理を効率的に行うため、メモリ上にユーザーの認証情報(パスワードのハッシュ値や、場合によっては平文のパスワード、Kerberosチケットなど)を一時的に保持していることがあるんです。まるで、金庫番が仕事の効率を上げるために、金庫の鍵束を腰にぶら下げているようなものですね。
悪名高き「Mimikatz」とは?メモリから鍵を盗み出す泥棒の手口
このLSASSがメモリ上に保持する認証情報。これが、悪意のある攻撃者にとっての「宝の山」になります。そして、その宝を狙う最も有名な「泥棒ツール」が、今回テーマとなるMimikatz(ミミカッツ)なんです。
Mimikatzは、一言で言えば「Windowsのメモリ上から認証情報を抽出する」ためのツールです。まるで、泥棒が金庫番の腰から鍵束をそっと抜き取り、合鍵を作るような手口ですね。
Mimikatzの泥棒手口を詳しく見てみましょう!
1. 「金庫番の記憶」を丸ごとコピーする (LSASSプロセスダンプ)
- 攻撃者はまず、管理者権限(多くの場合、既に何らかの方法でこの権限を奪取しています)を利用して、動いているLSASSプロセスのメモリ全体をファイルとして保存します。これを「LSASSプロセスのダンプ」と呼びます。
- これは、金庫番が腰にぶら下げている鍵束や、頭の中にある鍵の配置図、そしてどこにどの鍵があるかといった「記憶」を、そっくりそのままコピーするようなイメージです。
2. コピーした記憶から「使える鍵」を探し出す (認証情報抽出)
- Mimikatzは、このダンプファイルの中を解析し、平文のパスワードやNTLMハッシュ(パスワードの暗号化された形)、そしてKerberosチケット(「この人は〇〇という施設に入場して良いですよ」という身分証明書のようなもの)などを探し出します。
- 現場でMimikatzが使われると、信じられないことに、ログイン中のユーザーのパスワードがそのまま画面に表示されてしまうこともあるんですよ。ゾッとしますよね。
なぜこんなことをするのか?泥棒の目的とは
攻撃者がMimikatzを使って認証情報を盗む目的は多岐にわたりますが、代表的なのは以下の通りです。
- 横展開 (Lateral Movement): 盗んだ認証情報を使って、ネットワーク内の別のサーバーやPCにアクセスし、より重要な情報やシステムを狙います。まるで、手に入れた合鍵で隣の家にも侵入するようなものです。
- 権限昇格 (Privilege Escalation): 一般ユーザーの認証情報から、より高い権限を持つ管理者アカウントの情報を入手し、システム全体を掌握しようとします。
- 永続化 (Persistence): 盗んだ情報を使って、いつでもシステムに再侵入できるような裏口(バックドア)を仕掛けることもあります。
このような攻撃は、企業ネットワーク全体に甚大な被害をもたらす可能性があるため、DFIRの現場ではMimikatzによる痕跡がないか、常に目を光らせています。
泥棒が嫌がる「最強の盾」!Credential Guardで金庫をガチガチに守る
「え、じゃあ、うちのWindowsも危ないってこと!?」と不安に感じた方もいるかもしれませんね。ご安心ください。Microsoftも、このMimikatzのような攻撃に対して、強力な防御策を用意してくれています。それが、Credential Guard(クレデンシャルガード)です!
Credential Guardは、Windows 10 Enterprise版、Education版、Pro版、およびWindows Server 2016以降で利用できるセキュリティ機能で、Mimikatzのような攻撃からLSASSプロセスの認証情報を保護するために設計されました。
Credential Guardが「最強の盾」たる理由
Credential Guardは、例えるなら「金庫番を特別な、誰にも触れられない部屋に隔離し、しかも鍵束を一切持たせない」ような仕組みなんです。
1. 仮想化ベースのセキュリティ (VBS) による隔離:
- Credential Guardは、Windowsの「仮想化ベースのセキュリティ (Virtualization-based Security; VBS)」という技術を利用します。これは、Hyper-Vのような仮想化技術を応用し、OSのカーネルからすらアクセスできない、独立した「安全な領域」をメモリ上に作成します。
- LSASSが保持する認証情報のうち、特に重要なNTLMハッシュやKerberosキーなどは、この特別な「安全な領域」にのみ保存されます。まるで、金庫番が特別なセキュリティルームに移動し、そこでだけ重要な鍵を管理するようなものです。
2. 平文パスワードの不保持:
- さらに素晴らしいことに、Credential Guardが有効な環境では、LSASSは平文のパスワードをメモリ上に一切保持しなくなります。認証が必要な場合は、特別な領域で安全にハッシュ化された情報が利用されます。
- これは、金庫番がもう鍵束を腰にぶら下げず、必要な時にだけ、特殊な装置を使って鍵を生成し、すぐに消してしまうようなイメージです。泥棒が金庫番の記憶をコピーしても、そこには使える鍵がない、ということになります。
この仕組みにより、たとえ攻撃者が管理者権限を奪取し、LSASSプロセスのメモリダンプを試みたとしても、Mimikatzのようなツールでは「安全な領域」に隔離された認証情報にアクセスできなくなります。つまり、Mimikatzは泥棒の道具になり得なくなるわけです。これは非常に強力な防御策ですよね!
さあ、あなたのWindowsを守ろう!Credential Guardを有効にするには?
Credential Guardは、既定では無効になっていることが多いので、手動で有効にする必要があります。対応するWindowsのバージョン(Windows 10 Enterprise/Education/Pro、Windows Server 2016以降)と、ハードウェア要件(UEFIファームウェア、セキュアブート、TPM 2.0など)を満たしているか確認してから導入しましょう。
ここでは、最も一般的なグループポリシーエディターを使った設定方法と、レジストリを使った方法をご紹介します。
1. グループポリシーエディター(GPO)で有効にする方法
組織内で複数のPCを一元管理している場合、グループポリシーが最も推奨される方法です。
1. グループポリシーエディターを開く:
Win + Rを押して「ファイル名を指定して実行」ダイアログを開き、gpedit.mscと入力してEnterキーを押します。- (Windows Serverの場合は、「サーバーマネージャー」から「ツール」→「グループポリシーの管理」を開き、適切なGPOを編集します。)
2. 設定項目に移動する:
- 左側のツリービューで、以下のパスに移動します。
コンピューターの構成 → 管理用テンプレート → System → Device Guard
3. Credential Guardを有効にする:
- 右側のペインで「仮想化ベースのセキュリティを有効にする」という項目を探し、ダブルクリックして開きます。
- 設定画面で「有効」を選択します。
- オプションの「Credential Guard の構成」ドロップダウンリストで、通常は「UEFI ロックで有効」を選択するのが最も強力な保護になります。これは、Credential Guardを無効化しようとする攻撃を防ぐため、UEFIレベルでロックをかける設定です。
- 「OK」をクリックして設定を保存します。
4. ポリシーを適用する:
- コマンドプロンプトを管理者として開き、
gpupdate /forceと入力してEnterキーを押します。 - PCを再起動すると、Credential Guardが有効になります。
2. レジストリで有効にする方法(GPOが使えない場合など)
Homeエディションなど、グループポリシーエディターが使えない環境や、単体で設定したい場合に利用できます。ただし、レジストリの編集は慎重に行う必要があります。
1. レジストリエディターを開く:
Win + Rを押して「ファイル名を指定して実行」ダイアログを開き、regeditと入力してEnterキーを押します。
2. キーに移動する:
- 以下のパスに移動します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa
3. 新しいDWORD値を作成し設定する:
Lsaキーを右クリックし、「新規」→「DWORD (32ビット) 値」を選択します。- 新しい値の名前を
LsaCfgFlagsと入力します。 LsaCfgFlagsをダブルクリックし、値のデータを1に設定します(1がCredential Guard有効化を意味します)。- 重要: この設定はCredential Guardを有効化する最も基本的なもので、UEFIロックは別途設定が必要です。より強固にするには、グループポリシーの使用が推奨されます。
4. PCを再起動する:
- 設定を適用するためにPCを再起動します。
3. Credential Guardが有効になっているか確認する方法
設定が正しく適用されたか、PowerShellで簡単に確認できます。
# 管理者権限でPowerShellを開いて実行してください
# Credential Guardの状態を確認するコマンド
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
# 結果例(有効な場合):
# IsEnabled : True # Trueであれば有効
# ...
# SecurityServicesRunning : {CredentialGuard} # ここにCredentialGuardと表示されていればOK
# SecurityServicesConfigured : {CredentialGuard} # ここにもCredentialGuardと表示されていればOK
このコマンドでIsEnabledがTrueとなり、SecurityServicesRunningとSecurityServicesConfiguredのリストにCredentialGuardが含まれていれば、無事に有効化されています。
—
まとめ:セキュリティは「知っているか、知らないか」で大きく変わる!
今日は、Windowsの心臓部であるLSASSプロセスを狙うMimikatzという泥棒の手口と、それを強力にブロックするCredential Guardという「最強の盾」について深く掘り下げてみました。
セキュリティの世界は、常に攻撃者とのイタチごっこです。しかし、今日学んだように、攻撃のメカニズムを理解し、適切な防御策を知っているかどうかで、その安全性は大きく変わってきます。
新人IT担当者さん、開発者さん。難しい専門用語も出てきたかもしれませんが、「家の鍵」や「泥棒」といった身近な例えで、少しでも理解が深まったなら嬉しいです。サイバーセキュリティは、決して一部の専門家だけのものではありません。私たち一人ひとりが意識し、対策を講じることで、デジタル社会全体の安全性が向上します。
「知る」ことが最初の防御です。一歩ずつ、着実にセキュリティの知識を身につけ、あなたのシステム、そしてあなたの会社の情報を守っていきましょう!私たちがDFIRの現場で培った知見が、皆さんの日々の業務の一助となれば幸いです。
これからも、現場で役立つリアルなセキュリティ情報をお届けしていきますので、どうぞご期待ください!
コメント