<p><!-- style_prompt: active_directory_ntds_protection_v1 -->
本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">Active Directoryの心臓部『NTDS.dit』を狙う正規ツール悪用攻撃とその多層防御策</h1>
<h2 class="wp-block-heading">【脅威の概要と背景】</h2>
<p>Active Directory(AD)の全ユーザー情報とハッシュ化されたパスワードを保持するデータベース「NTDS.dit」を、<code>ntdsutil.exe</code>や<code>vssadmin</code>等の正規ツールを用いて窃取し、オフラインで解析する攻撃が再燃しています。特定の脆弱性(CVE)を突くだけでなく、正規の管理者権限を奪取した後の「権限昇格後のルーチン」として定着しており、ドメイン全体の完全掌握を狙う極めて深刻な脅威です。</p>
<h2 class="wp-block-heading">【攻撃シナリオの可視化】</h2>
<p>攻撃者はドメイン管理者権限(またはDCのローカル管理者権限)を奪取した後、以下のキルチェーンを実行します。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
graph TD
A["攻撃元: 侵害済み端末"] -->|正規RDP/WMI等で接続| B["ドメインコントローラー"]
B -->|ntdsutil / vssadmin実行| C["ボリュームシャドウコピー作成"]
C -->|NTDS.dit / SYSTEMレジストリ抽出| D["一時フォルダへのコピー"]
D -->|正規ツール/SMB経由で搬出| E["攻撃者端末"]
E -->|Hashcat / Secretsdump等| F["全ユーザーの認証情報奪取"]
F -->|Golden Ticket作成| G["ドメインの永続的掌握"]
</pre></div>
<h2 class="wp-block-heading">【安全な実装と設定】</h2>
<p>NTDS.ditの抽出を防ぐには、コードの書き換えよりも「OS設定の要塞化」と「実行制限」が重要です。以下に、攻撃者が多用する手法と、それを封じ込めるための対策を対比します。</p>
<h3 class="wp-block-heading">1. 不適切な運用(攻撃者が悪用する例)</h3>
<p>攻撃者はPowerShellから隠密にボリュームシャドウコピーを作成し、ファイルをコピーします。</p>
<div class="codehilite">
<pre data-enlighter-language="generic"># 脆弱な運用(監視・制限がない状態)
vssadmin create shadow /for=C:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\temp\ntds.jif
reg save HKLM\SYSTEM C:\temp\system.hiv
</pre>
</div>
<h3 class="wp-block-heading">2. 安全な代替案(防御側での制限と監視)</h3>
<p>正規のバックアップ用途以外での<code>ntdsutil</code>や<code>vssadmin</code>の実行を制限し、実行時にはアラートを発報する構成を構築します。</p>
<p><strong>AppLocker/WDACによる実行制限(ポリシー例)</strong></p>
<div class="codehilite">
<pre data-enlighter-language="generic"><!-- 許可されたバックアップオペレーター以外によるツールの実行を禁止 -->
<FilePublisherRule Id="..." Action="Deny" UserOrGroupSid="S-1-1-0">
<Conditions>
<PublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="MICROSOFT® WINDOWS® OPERATING SYSTEM">
<BinaryVersionRange LowSection="0.0.0.0" HighSection="*" />
</PublisherCondition>
</Conditions>
<FileNameCondition Name="ntdsutil.exe" />
</FilePublisherRule>
</pre>
</div>
<p><strong>監視用PowerShellスクリプト(SIEMへの転送用)</strong></p>
<div class="codehilite">
<pre data-enlighter-language="generic"># 特定のプロセス生成をイベントログから監視するロジック(概念)
$TargetProcesses = @("ntdsutil.exe", "vssadmin.exe", "diskshadow.exe")
Get-WinEvent -LogName "Security" -FilterXPath "*[System[(EventID=4688)]]" | Where-Object {
$_.Properties[5].Value -in $TargetProcesses -and $_.Properties[8].Value -notmatch "BackupUser"
} | ForEach-Object {
Write-Warning "Critical: Unauthorized NTDS-related tool execution detected by $($_.Properties[1].Value)"
}
</pre>
</div>
<h2 class="wp-block-heading">【検出と緩和策】</h2>
<h3 class="wp-block-heading">検出ポイント</h3>
<ul class="wp-block-list">
<li><p><strong>イベントID 4688(プロセス作成)</strong>: <code>ntdsutil</code> の引数に <code>ac i ntds</code> (activate instance ntds) や <code>ifm</code> (Install From Media) が含まれている場合、高確率で攻撃です。</p></li>
<li><p><strong>イベントID 4799</strong>: セキュリティが有効なローカルグループのメンバーシップの確認(<code>Administrators</code>グループの列挙)。</p></li>
<li><p><strong>ディレクトリサービスへの異常なアクセス</strong>: NTDS.ditファイル自体への直接アクセス試行。</p></li>
</ul>
<h3 class="wp-block-heading">緩和策</h3>
<ul class="wp-block-list">
<li><p><strong>Tiered Administration (階層型管理者モデル)</strong>: ドメイン管理者が一般端末にログインすることを厳格に禁止し、認証情報の窃取を防ぐ。</p></li>
<li><p><strong>EDRのカスタムルール</strong>: <code>ntdsutil.exe</code> が子プロセスとして <code>cmd.exe</code> や <code>powershell.exe</code> を生成する挙動をブロック。</p></li>
<li><p><strong>特権アクセスの分離</strong>: ドメインコントローラーへのログインには、専用の特権管理端末(PAW)のみを許可する。</p></li>
</ul>
<h2 class="wp-block-heading">【実務上の落とし穴】</h2>
<ul class="wp-block-list">
<li><p><strong>誤検知(False Positive)</strong>: 正規のバックアップソフト(Veeam, Commvault等)が内部的に <code>vssadmin</code> や <code>ntdsutil</code> を使用します。これらをホワイトリスト化する際、実行ユーザーのSIDやパスを厳密に指定しないと、攻撃者にその「穴」を突かれるリスクがあります。</p></li>
<li><p><strong>可用性への影響</strong>: DC上で過度に強力なEDRの遮断設定を行うと、レプリケーションやパッチ適用時のバックアップ処理が失敗し、復旧困難な状況を招く恐れがあります。</p></li>
</ul>
<h2 class="wp-block-heading">【まとめ】</h2>
<p>組織として直ちに実施すべき3つの優先事項:</p>
<ol class="wp-block-list">
<li><p><strong>実行監視</strong>: SIEM/EDRで <code>ntdsutil</code>, <code>vssadmin</code>, <code>diskshadow</code> の引数付き実行を即時アラート化する。</p></li>
<li><p><strong>階層化の徹底</strong>: 管理者権限を「ドメイン管理」と「一般端末管理」で完全に分離し、DCにログインできる経路を最小化する。</p></li>
<li><p><strong>オフラインバックアップの保護</strong>: NTDS.ditがコピーされたとしても、そのコピー先となる一時フォルダやネットワーク共有の監視を強化する。</p></li>
</ol>
<h3 class="wp-block-heading">参考文献</h3>
<ul class="wp-block-list">
<li><p><a href="https://www.jpcert.or.jp/magazine/security/ad-attack.html">JPCERT/CC: 侵害調査におけるADデータベース窃取の検知</a></p></li>
<li><p><a href="https://learn.microsoft.com/ja-jp/windows-server/identity/ad-ds/plan/security-best-practices/privileged-access-strategy">Microsoft: Active Directory の管理階層の保護</a></p></li>
<li><p><a href="https://attack.mitre.org/techniques/T1003/003/">MITRE ATT&CK: OS Credential Dumping (T1003.003)</a></p></li>
</ul>
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。
Active Directoryの心臓部『NTDS.dit』を狙う正規ツール悪用攻撃とその多層防御策
【脅威の概要と背景】
Active Directory(AD)の全ユーザー情報とハッシュ化されたパスワードを保持するデータベース「NTDS.dit」を、ntdsutil.exeやvssadmin等の正規ツールを用いて窃取し、オフラインで解析する攻撃が再燃しています。特定の脆弱性(CVE)を突くだけでなく、正規の管理者権限を奪取した後の「権限昇格後のルーチン」として定着しており、ドメイン全体の完全掌握を狙う極めて深刻な脅威です。
【攻撃シナリオの可視化】
攻撃者はドメイン管理者権限(またはDCのローカル管理者権限)を奪取した後、以下のキルチェーンを実行します。
graph TD
A["攻撃元: 侵害済み端末"] -->|正規RDP/WMI等で接続| B["ドメインコントローラー"]
B -->|ntdsutil / vssadmin実行| C["ボリュームシャドウコピー作成"]
C -->|NTDS.dit / SYSTEMレジストリ抽出| D["一時フォルダへのコピー"]
D -->|正規ツール/SMB経由で搬出| E["攻撃者端末"]
E -->|Hashcat / Secretsdump等| F["全ユーザーの認証情報奪取"]
F -->|Golden Ticket作成| G["ドメインの永続的掌握"]
【安全な実装と設定】
NTDS.ditの抽出を防ぐには、コードの書き換えよりも「OS設定の要塞化」と「実行制限」が重要です。以下に、攻撃者が多用する手法と、それを封じ込めるための対策を対比します。
1. 不適切な運用(攻撃者が悪用する例)
攻撃者はPowerShellから隠密にボリュームシャドウコピーを作成し、ファイルをコピーします。
# 脆弱な運用(監視・制限がない状態)
vssadmin create shadow /for=C:
copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\NTDS.dit C:\temp\ntds.jif
reg save HKLM\SYSTEM C:\temp\system.hiv
2. 安全な代替案(防御側での制限と監視)
正規のバックアップ用途以外でのntdsutilやvssadminの実行を制限し、実行時にはアラートを発報する構成を構築します。
AppLocker/WDACによる実行制限(ポリシー例)
<!-- 許可されたバックアップオペレーター以外によるツールの実行を禁止 -->
<FilePublisherRule Id="..." Action="Deny" UserOrGroupSid="S-1-1-0">
<Conditions>
<PublisherCondition PublisherName="O=MICROSOFT CORPORATION, L=REDMOND, S=WASHINGTON, C=US" ProductName="MICROSOFT® WINDOWS® OPERATING SYSTEM">
<BinaryVersionRange LowSection="0.0.0.0" HighSection="*" />
</PublisherCondition>
</Conditions>
<FileNameCondition Name="ntdsutil.exe" />
</FilePublisherRule>
監視用PowerShellスクリプト(SIEMへの転送用)
# 特定のプロセス生成をイベントログから監視するロジック(概念)
$TargetProcesses = @("ntdsutil.exe", "vssadmin.exe", "diskshadow.exe")
Get-WinEvent -LogName "Security" -FilterXPath "*[System[(EventID=4688)]]" | Where-Object {
$_.Properties[5].Value -in $TargetProcesses -and $_.Properties[8].Value -notmatch "BackupUser"
} | ForEach-Object {
Write-Warning "Critical: Unauthorized NTDS-related tool execution detected by $($_.Properties[1].Value)"
}
【検出と緩和策】
検出ポイント
イベントID 4688(プロセス作成): ntdsutil の引数に ac i ntds (activate instance ntds) や ifm (Install From Media) が含まれている場合、高確率で攻撃です。
イベントID 4799: セキュリティが有効なローカルグループのメンバーシップの確認(Administratorsグループの列挙)。
ディレクトリサービスへの異常なアクセス: NTDS.ditファイル自体への直接アクセス試行。
緩和策
Tiered Administration (階層型管理者モデル): ドメイン管理者が一般端末にログインすることを厳格に禁止し、認証情報の窃取を防ぐ。
EDRのカスタムルール: ntdsutil.exe が子プロセスとして cmd.exe や powershell.exe を生成する挙動をブロック。
特権アクセスの分離: ドメインコントローラーへのログインには、専用の特権管理端末(PAW)のみを許可する。
【実務上の落とし穴】
誤検知(False Positive): 正規のバックアップソフト(Veeam, Commvault等)が内部的に vssadmin や ntdsutil を使用します。これらをホワイトリスト化する際、実行ユーザーのSIDやパスを厳密に指定しないと、攻撃者にその「穴」を突かれるリスクがあります。
可用性への影響: DC上で過度に強力なEDRの遮断設定を行うと、レプリケーションやパッチ適用時のバックアップ処理が失敗し、復旧困難な状況を招く恐れがあります。
【まとめ】
組織として直ちに実施すべき3つの優先事項:
実行監視: SIEM/EDRで ntdsutil, vssadmin, diskshadow の引数付き実行を即時アラート化する。
階層化の徹底: 管理者権限を「ドメイン管理」と「一般端末管理」で完全に分離し、DCにログインできる経路を最小化する。
オフラインバックアップの保護: NTDS.ditがコピーされたとしても、そのコピー先となる一時フォルダやネットワーク共有の監視を強化する。
参考文献
ライセンス:本記事のテキスト/コードは特記なき限り
CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。
コメント