【入門編】 メモリ上の資格情報抽出(Mimikatzの痕跡とLSASS解析) – インシデントレスポンス & フォレンジック(DFIR)防御ガイド

あなたのパスワード、メモリで丸見えかも?Mimikatzからシステムを守る!LSASS解析と防御の超入門

皆さん、こんにちは!セキュリティバイブル編集部の主筆ライター、そして現場で泥臭くサイバー攻撃と戦ってきたSOCアナリストの私がお届けする、ちょっと深掘りしたセキュリティのお話です。

「パスワード」と聞くと、玄関の鍵や銀行の暗証番号のように、大切なものを守るためのものだとピンときますよね。私たちのパソコンやスマートフォンも同じ。ログインパスワードがなければ、勝手に他人に使われたり、大切なデータを見られたりする心配があります。

でも、そのパスワード、どこで、どんな風に管理されているか、考えたことはありますか? 実は、Windowsの世界では、あなたのパスワードが「メモリ」という一時的な記憶領域に、ある瞬間、存在していることがあるんです。そして、そこを狙う非常に危険な「泥棒」がいることをご存知でしょうか?

今回は、その泥棒「Mimikatz(ミミカッツ)」の正体と、彼らが狙う「LSASS(エルエスエーエス)」というWindowsの金庫番、そして私たちのシステムをどうやって守ればいいのか、優しく丁寧に解説していきますね。

LSASSって何?パスワード管理の「秘密の金庫番」

まず、今回の主役の一人であるLSASSについてお話ししましょう。

LSASSは正式には「Local Security Authority Subsystem Service(ローカルセキュリティ機関サブシステムサービス)」という、Windowsに標準で搭載されている重要なプロセスです。ちょっと名前が長いし難しそうですよね。

これを私たちの日常生活に例えるなら、LSASSは「あなたの家の鍵や身分証明書、さらには映画のチケットまで、あらゆる認証情報を一時的に預かり、管理してくれる秘密の金庫番」のような存在なんです。

あなたがパソコンにログインする時、パスワードを入力しますよね。そのパスワードは、LSASSが受け取り、それが正しいかを確認します。そして、ログインが成功すると、そのパスワードや、それに紐づく認証情報(後述するハッシュやチケットなど)が、一時的にLSASSが使っているメモリ領域に保持されるんです。

これによって、あなたはパスワードを何度も入力することなく、様々なサービスやファイルにアクセスできるようになるわけです。とても便利ですよね。でも、この「一時的に保持される」という点が、攻撃者にとっての格好のターゲットになってしまうんです。

泥棒「Mimikatz」の登場!LSASSを狙う強力なツール

さて、便利で重要なLSASSですが、残念ながら悪意のある第三者、つまり「泥棒」もその存在を知っています。その代表格が「Mimikatz(ミミカッツ)」というツールです。

Mimikatzは、一言で言えば「Windowsのメモリ上にある認証情報を盗み出すための、非常に強力なピッキングツール」です。泥棒が特殊な道具を使って鍵を複製したり、金庫をこじ開けたりするイメージですね。

このMimikatzを使うと、LSASSのメモリから主に以下の3つの認証情報を抜き出すことができてしまいます。

1. 平文パスワード(Cleartext Passwords)

これはもう、説明不要ですよね。あなたが設定した「そのままのパスワード」です。泥棒があなたの家の鍵をそのまま手に入れた状態。これさえあれば、あなたのIDとパスワードで、どこへでも自由にログインできてしまいます。

2. NTLMハッシュ(NTLM Hashes)

「ハッシュ」というのは、パスワードを特定の計算式(ハッシュ関数)で変換した、いわば「パスワードの指紋」のようなものです。元のパスワードに戻すことは非常に難しいのですが、Windowsは認証の際にこのNTLMハッシュを使うことがあります。

例えるなら、NTLMハッシュは「鍵そのものではないけれど、これがあれば鍵の複製図面を手に入れられる設計図」のようなものです。泥棒はこのハッシュを使って、パスワードを知らなくても、あたかもパスワードを知っているかのようにシステムに認証を試みる「Pass-the-Hash(パス・ザ・ハッシュ)」という攻撃を行うことができます。

3. Kerberosチケット(Kerberos Tickets)

Kerberos(ケルベロス)は、主に企業ネットワークなどで使われる認証プロトコルです。あなたが一度ログインすると、特別な「チケット」が発行され、それを使ってネットワーク上の様々なサービス(ファイルサーバーやメールサーバーなど)にアクセスできるようになります。

このKerberosチケットは、「身分証明書付きの映画のチケット」のようなものです。Mimikatzはこのチケットを盗み出すことで、「Pass-the-Ticket(パス・ザ・チケット)」という攻撃を行い、本来アクセスできないはずのネットワークリソースに不正にアクセスできてしまうんです。

どれもこれも、盗まれてしまったら大変なことになる、重要な情報ですよね。

どうやって泥棒は侵入するのか?攻撃のメカニズム

Mimikatzがこれほど恐ろしいツールであることは分かりました。では、具体的にどのようにしてこれらの情報を盗み出すのでしょうか?

Mimikatzは、LSASSのメモリ領域にアクセスするために、システムに対する管理者権限を必要とします。泥棒はまず、あなたのパソコンで管理者権限を手に入れる必要があります。これは、マルウェア感染、脆弱性の悪用、フィッシング詐欺などで、ユーザーがうっかり不正なプログラムを実行してしまうことなどによって達成されます。

管理者権限を手に入れた攻撃者は、Mimikatzを実行します。Mimikatzは、その管理者権限を使ってLSASS.exeというプロセスにアタッチし、そのプロセスが保持しているメモリ領域を読み取ります。まるで、金庫番が作業している隙に、そっと金庫の中身を覗き見るようなものです。

そして、そのメモリの中にある特定のデータ構造(認証情報が格納されている場所)を解析し、平文パスワード、NTLMハッシュ、Kerberosチケットといった情報を抽出して表示してしまうのです。ファイルに痕跡を残さず、メモリ上から直接情報を抜き取るため、通常のファイルベースのウイルス対策ソフトでは検出が難しい場合もあります。

泥棒の痕跡を見つけよう!メモリフォレンジックの出番

もし、万が一システムが侵害されてしまった場合、Mimikatzのような攻撃が行われたかどうかをどうやって見つけ出すのでしょうか?ここで登場するのが、我々DFIRの専門家が最も得意とする「メモリフォレンジック」です。

メモリフォレンジックは、「事件現場に残された足跡や指紋、防犯カメラの映像を徹底的に解析する」ようなものです。攻撃者がシステム上で活動した痕跡は、ファイルシステムだけでなく、実行中のプログラムが利用しているメモリ上にも必ず残ります。

具体的には、以下のような手順で調査を進めます。

1. メモリダンプの取得

まず、攻撃が行われた可能性のあるシステムのメモリの状態を、丸ごとファイルとして保存します。これを「メモリダンプ」と呼びます。泥棒が逃げた直後に、現場の状況を写真に収めるようなイメージですね。時間が経てば、メモリの内容は上書きされてしまうため、迅速な取得が非常に重要です。

2. メモリ解析ツールの利用

取得したメモリダンプは、Volatility(ボラティリティ)などの専門的なメモリフォレンジックツールを使って解析します。

# Volatilityを使ってメモリダンプからプロセスリストを表示する例
# これで、どんなプログラムが動いていたかを確認します
vol.py -f memory.raw pslist

# LSASSプロセスの詳細情報を確認する例 (LSASSのPIDはpslistで確認後)
# LSASSに不審なDLLがロードされていないかなどを調べます
vol.py -f memory.raw dlllist -p <LSASS_PID_HERE>

# Mimikatzが残す可能性のある特定の痕跡を探す (Mimikatzプラグインがある場合)
# たとえば、Mimikatzが使用する特定の文字列や、プロセス間通信の痕跡などを探します
# 注意: Volatilityのバージョンやプラグインによってコマンドは異なります
vol.py -f memory.raw mimikatz # これは例です。実際のコマンドはより詳細になります。

# LSASSから認証情報をダンプする (攻撃者がMimikatzで行ったことを再現/確認する)
# これで、実際にMimikatzで抽出できた情報が何だったかを確認できます
vol.py -f memory.raw lsadump

このようなツールを使って、メモリダンプの中から以下のような「泥棒の痕跡」を探し出します。

  • Mimikatz自体のプロセス実行痕跡: mimikatz.exeのようなプロセス名や、それがロードしたDLLの痕跡。
  • 特定のコマンド実行履歴: Mimikatzは内部で特定のコマンドを使います。そのコマンドを示す文字列がメモリに残っていることがあります。
  • 不審なDLLのロード: Mimikatzは、LSASSプロセスに直接悪意のあるDLLを注入して情報を抜き取ることがあります。
  • 認証情報のキャッシュ: LSASSが保持している、平文パスワードやハッシュ、チケットのデータ構造が異常な形でアクセスされたり、外部にコピーされたりした痕跡。

現場では、これらの技術的な痕跡だけでなく、システムのイベントログ、ネットワーク通信履歴、ファイルシステムに残された一時ファイルなど、あらゆる手がかりを総合的に見て、攻撃の全貌を解明していくんです。一見すると普通の挙動に見えても、その裏に隠された小さな異常を見つけ出すのが、我々アナリストの腕の見せ所ですね。

「秘密の金庫」を守るには?Mimikatzからシステムを守る防御策

Mimikatzの脅威は理解できたけど、「じゃあ、どうすればいいの!?」と焦っているかもしれませんね。ご安心ください。Windowsには、この強力な泥棒からあなたの「秘密の金庫」を守るための、いくつかの頑丈なロックや警備システムが用意されています。

さあ、一緒に一歩ずつ対策を学んでいきましょう!

1. Credential Guard(クレデンシャルガード)の導入

これは、Windows 10 Enterprise / Pro および Windows Server 2016 以降で利用できる非常に強力な防御機能です。

Credential Guardは、LSASSが管理する認証情報を、「仮想化ベースのセキュリティ」という技術を使って、他のOSプロセスから完全に隔離された特殊な領域に格納します。例えるなら、「パスワードが入った金庫を、さらに防弾ガラスでできた別の部屋に移し、二重三重のロックをかける」ようなイメージです。Mimikatzのようなツールが直接LSASSのメモリを読み取ろうとしても、この隔離された領域にはアクセスできなくなるため、情報の窃取が極めて困難になります。

設定方法(グループポリシー):

コンピューターの構成
└ 管理用テンプレート
   └ システム
      └ Device Guard
         └ 仮想化ベースのセキュリティを有効にする

            # 設定を「有効」にし、以下の項目を設定します。
            # "構成可能な資格情報ベースのセキュリティ" を "資格情報ガードでロック" に設定
            # これにより、Credential Guardが有効になり、LSASSの認証情報が保護されます。

            # "安全な起動" を "安全な起動を有効にする" に設定
            # Credential GuardはSecure Boot(安全な起動)とTPM(トラステッドプラットフォームモジュール)に依存するため、これらも有効にする必要があります。

設定方法(レジストリ – グループポリシーが推奨ですが、手動設定の場合):

Windows Registry Editor Version 5.00

; Credential Guardと仮想化ベースのセキュリティを有効化
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"LsaCfgFlags"=dword:00000001 ; 1 = Credential Guardを有効化

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard]
"EnableVirtualizationBasedSecurity"=dword:00000001 ; 1 = 仮想化ベースのセキュリティを有効化
"RequirePlatformSecurityFeatures"=dword:00000001 ; 1 = プラットフォームのセキュリティ機能を必須化

; Secure BootとTPMが有効になっていることを確認してください

2. LSA保護 (RunAsPPL) の有効化

これは、LSASSプロセスを「Protected Process Light(PPL)」という特別なモードで実行することで、不正なプロセスからのアクセスを防ぐ機能です。

例えるなら、「金庫番であるLSASSに、屈強なボディガードをつけて、許可されていない人間からの接触を完全にシャットアウトする」ようなものです。これにより、MimikatzのようなツールがLSASSのメモリに直接アクセスしたり、コードを注入したりすることが非常に難しくなります。

設定方法(グループポリシー):

コンピューターの構成
└ 管理用テンプレート
   └ システム
      └ LSA
         └ LSA保護の構成

            # 設定を「有効」にし、"LSA保護を有効にする" にチェックを入れます。
            # これにより、LSASSプロセスがPPLモードで実行され、不正アクセスから保護されます。

設定方法(レジストリ – グループポリシーが推奨ですが、手動設定の場合):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa]
"RunAsPPL"=dword:00000001 ; 1 = LSA保護 (Protected Process Light) を有効化

注意点: Credential GuardとLSA保護は、システム環境や設定によっては競合する可能性があります。一般的には、Windows 10/Server 2016以降ではCredential Guardが推奨されており、LSA保護はその前世代のOSや、Credential Guardの要件を満たせない環境での代替策として考えられます。最新の環境ではCredential Guardを優先的に検討しましょう。

3. AS-REP Roasting対策(Kerberos事前認証の必須化)

これはKerberosチケットを狙う攻撃に対する対策です。Kerberos認証では、ユーザーが最初にチケットを要求する際にパスワードを入力する「事前認証」というステップがあります。しかし、一部の環境ではこの事前認証が必須になっていない場合があります。

事前認証が必須でないユーザーアカウントは、攻撃者にとって格好のターゲットです。攻撃者は、パスワードを知らなくても、そのアカウントのチケットを要求し、それを使ってオフラインで総当たり攻撃(ブルートフォース)を行い、パスワードを推測することができてしまいます。これを「AS-REP Roasting」と呼びます。

対策としては、全てのユーザーアカウントでKerberos事前認証を必須にすることです。これはActive Directoryのユーザー設定で変更できます。

設定方法(Active Directoryユーザーとコンピューター):

1. Active Directoryユーザーとコンピューターを開きます。
2. 対象のユーザーアカウントのプロパティを開きます。
3. 「アカウント」タブに移動します。
4. 「Kerberos事前認証を必要としない」のチェックボックスがオフになっていることを確認します。もしオンになっていたら、オフにしてください。

これは「合い言葉なしでは家に入れない」ようにすることで、泥棒がチケットを安易に手に入れるのを防ぐ対策ですね。

4. 特権昇格対策と最小権限の原則

Mimikatzは管理者権限がなければ動作しません。つまり、泥棒が「鍵屋」になって管理者権限を手に入れるのを防ぐことが最も基本的な対策になります。

  • ユーザーアカウント制御 (UAC) の適切運用: UACは、プログラムがシステムに変更を加える際にユーザーに確認を求める機能です。これを無効にせず、適切に利用しましょう。
  • 最小権限の原則: 日常業務では、必要最低限の権限しかないユーザーアカウントを使用し、管理者アカウントは本当に必要な時だけ使うように徹底しましょう。
  • パスワードの複雑性: 推測されにくい、長く複雑なパスワードを設定することが基本中の基本です。
  • 多要素認証 (MFA) の導入: パスワードが漏洩しても、もう一つの要素(スマホアプリの認証コードなど)がなければログインできないようにすることで、セキュリティを大幅に強化できます。

5. 定期的なパッチ適用とEDRの導入

  • OSやソフトウェアのアップデート: Windowsやインストールされているソフトウェアは常に最新の状態に保ちましょう。既知の脆弱性を悪用されることで、泥棒は管理者権限を手に入れてしまいます。
  • EDR (Endpoint Detection and Response) の導入: EDRは、パソコンやサーバー上での不審な挙動をリアルタイムで検知し、対応を支援するツールです。Mimikatzのようなメモリベースの攻撃も、EDRであればその挙動から異常を検知できる可能性が高まります。

まとめ:セキュリティは日々の積み重ね!

いかがでしたでしょうか? LSASSというWindowsの重要な金庫番が、Mimikatzという強力な泥棒に狙われる仕組み、そしてそれをメモリフォレンジックでどう見つけ、どう防御するかを、身近な例えを交えながら解説してきました。

セキュリティは、「これさえやっておけば大丈夫!」という銀の弾丸があるわけではありません。しかし、今回ご紹介したCredential GuardやLSA保護のような強力な防御策を導入し、普段から管理者権限の適切な運用やパスワード管理を徹底することで、Mimikatzのような高度な攻撃からあなたのシステムを守ることは十分に可能です。

難しそうに感じるかもしれませんが、一歩ずつ対策を学ぶことで、あなたのシステムは確実に強固になっていきます。今回の記事が、皆さんのセキュリティ学習の一助となれば幸いです。

これからも、現場の泥臭い知見に基づいた、リアルなセキュリティ情報をお届けしていきますので、お楽しみに!

コメント

タイトルとURLをコピーしました