はじめに
Snare Windowsエージェントは、Windowsのイベントログ各種だけでなく、ファイルに書き込まれるログも含めて収集、転送できます。そのような特長を活かしながら、Windowsサーバーの機能に応じたログ収集の設定方法と主な用途について3回に分けて解説します。今回はDNSサーバー関連のログ収集についてです。
Windows ADサーバーのDNS関連ログ
Snare Windowsエージェントのよくある使い方は、ADサーバーに入れてADサーバーのイベントログを採取し転送するという使い方です。WindowsのADサーバーは、DNSサーバーとしての役割を持っており、その機能に関する監査ログはイベントログとしてSnareエージェントでも収集できます。しかし、例えば不審なサイトへのアクセスをチェックするには、デフォルトで有効となるDNSの監査ログだけでは不十分で、DNSデバッグログが必要となります。
Windows ADサーバーのDNSに関連するログとしては以下のものがあります。
<表1:DNS関連ログ一覧(ログ名と内容)>
項番 | ログ名(チャネル名 or ソース名) | 内容 |
---|---|---|
1 | Microsoft-Windows-DNSServer/Audit | DNSサーバーの監査ログ(既定で有効) |
2 | Microsoft-Windows-DNSServer/Analytical | DNSサーバーの分析ログ(既定で無効) |
3 | DNS Server (ソース:Microsoft-Windows-DNS-Server-Service) | DNSサーバーの運用ログ(既定で有効) |
4 | DNSサーバー デバッグログ | DNSパケット送受信ログ(既定で無効) |
5 | Sysmon (Event id 22) | プロセスのDNSクエリログ(Sysmon未導入) |
6 | Microsoft-Windows-DNS-Client/Operational | DNSクライアントの運用ログ(既定で無効) |
7 | システムDNS Client Events | DNS クライアントの状態/エラーログ(既定で有効) |
項番6,7はDNSクライアントに関するログです。項番2の分析ログと項番4のデバッグログとはログの内容に重複がありますが、分析ログを常時採取する設定はできません。そのためか、監査ログなどが強化された後の現在も、送受信したクエリ(問合せ)の内容をログしたいというニーズに対して、古くからあるデバッグログが今でも使われています。
このデバッグログ以外はイベントログとして採取できます。デバッグログはイベントログではなく、テキストファイルに固定フォーマットで書き出されます。Snare Windowsエージェントではそのファイルの更新部分を読み取って、ログとして送信することができます。その場合のテキストファイル書込みログのことを、Snareエージェントのユーザーガイドでは、ファイルログと呼んでいます。
他にもいくつか、Windows サーバーで記録されて役に立つファイルログがあります。このブログ連載ではそれらのWindowsサーバーのファイルログを中心に、それと関連するイベントログをSnare Windowsエージェントで採取し転送する方法について解説します。
DNSデバッグログの収集
DNSデバッグログとは
DNSサーバーのログとして、まずイベントログとは異なる「ファイルログ」であるDNSのデバッグログの採取について説明します。
DNSデバッグログには、Webサイトなど他のサイトへのリクエストに関する貴重な情報が含まれている可能性があります。例えば、マルウェアによる攻撃の過程で発生した悪意あるサイトに対する問合せの情報などです。
DNSデバッグログのフォーマットは以下の通りで、固定長カラムです。この情報は、DNSデバッグログファイルの先頭に書かれています。

このフォーマットから分かるように、デバッグログにはDNSサーバーに対するQuery(問合せ)とその返答(Response)のパケットの内容がログされます。大量のDNSリクエストを処理するサーバーの場合には、性能影響がありますので、その点は注意したほうがよいでしょう。
Microsoftのオンラインガイドの「Windows Server で DNS ログと診断を有効にする」に、デバッグログに関する詳細な説明があります。デバッグログ活用の参考にするとよいでしょう。
DNSデバッグログを有効にする
- Windows サーバーにActive Directory(AD)をインストールしドメインを設定するとDNSは自動的にインストールされます。ここではADサーバーとして、DNSがインストールされている前提で説明します。ADサーバーで、[スタート]メニューから [Windows 管理ツール] > [DNS] をクリックしてDNSマネージャーを開きます。(DNSマネージャーは、サーバー マネージャーの左のペインで DNS を選択し、表示されたサーバーを選択して右クリックしたメニューからDNSマネージャーを選択しても、開くことができます。)
- DNS マネージャーでDNSサーバーを選択して右クリックし、[プロパティ] サブメニューを選択します

- [プロパティ] ポップアップ ウィンドウが画面に表示されます
- [デバッグのログ] タブを開き [デバッグのためにパケットのログを記録する(L)] のチェックボックスをオンにします
- [着信]、[UDP]、[クエリ/転送]、および [要求] チェックボックスがオンになっていることを確認します
- [ファイルへのパスと名前]ボックスにログパスと名前を指定します。注意: サーバのドライブ容量を超えないようにするには、最大ファイルサイズが 500 MB から 1 GB の十分なスペースがあるドライブにファイルを配置することをお薦めします

- [OK]をクリックします
Snare Windows エージェントのDNSデバッグログ採取設定
Snare WindowsエージェントのWeb GUIにログインします。(以下の説明はv5.9.xの画面構成に基づいておりますが、5.7.0~5.8.1でもほぼ同様なので、簡単に該当の設定箇所が見つけられるでしょう)
ログファイル(Log Files)設定
- 左側のペインのメニューから [Log Sources] > [Log Files] (エージェントのv5.8.1までは、[Log Configuration])を選択します
- [Add] ボタンを選択します
- [Select the Log Type] のドロップダウンメニューから、[Microsoft DNS server logs] を選択します
- DNSデバッグログは1つのレコードが複数行からなっています。[Multi-Line Format]では[Line separating events (case sensitive)]のラジオボタンを選択します。その下のには、レコード区切り文字として \r\n\r\n (キャリッジリターンと改行×2)を入力します
- [Log File or Directory]フィールドで、書き込み先の DNS ログを設定する場所を指定します。ここには、デバッグログの[ファイルへのパスと名前]の指定と同じものを指定することになります

- 赤い[Change Configuration] をクリックします
- 左のメニューの[Apply Configuration & Restart Service]をクリックして、設定を反映してサービスを再起動させます
- Web GUIに入りなおして、変更した設定が反映されていることを確認します
ログフィルター(Log Files Filters)設定
既定のログフィルターが1つ設定されており、そのままでもすべてのファイルログが収集されます。Syslogフォーマットの場合はアラートレベルがWarningに設定されているので、適切なレベルに設定を変更したほうがよいでしょう。設定を追加もしくは変更する手順は以下の通りです。
- 左側のペインのメニューから [Log Sources] > [Log Files Filters] (v5.8.1までは[Log Filter Configuration])を選択します
- フィルターを追加する場合赤い[Add]ボタンを、変更する場合は既存のフィルターの[Modify]をクリックします
- ここで、フィルター処理のために[Include]または[Exclude]のラジオボタンを選択し、[General Search Term]にフィルターする文字列を入力します。デフォルトでは[Include]でかつ、[General Search Term]に”*”が入っています。このフィルター設定は、上記のLog Filesの設定で設定されるDNS以外のファイルログについても共通であることに注意してください
- アラートレベルの選択。[Select the Alert Level]で、このフィルターで選択されたログのログ送信フォーマットごとのアラートレベルを選択します

- 赤い[Change Configuration] をクリックします
- 左のメニューで [Apply Configuration & Restart Service] をクリックします
- Web GUIに入りなおして、変更した設定が反映されていることを確認します
Snare Windows エージェントユーザーガイドの「5.4 ログファイル(Log Files)」と「5.5 ログ ファイル フィルター(Log Files Filter)」に更に詳しい説明があります。実際の作業に際してはこちらも参照することをお薦めします。
DNSデバッグログ採取動作の確認
Snare Windows エージェントのWeb GUIにログインします。左側のペインのメニューで[Latest Event]を選択します。横に並んだボタンの中から[Log Audit]を選択した状態にします。先ほど指定したDNSデバッグログの出力テキストファイルにログが書き込まれると、この[Log Events]にTypeがMSDNSServerのログが表示されることを確認します。更に、先ほど登録したDNSデバッグログのファイルの内容とここの表示が一致していることを確認します。

この項は、Snare Windows エージェントユーザーガイドの「4 最新イベント(Latest Events)」に詳細な記述がありますので、参考にしてください。
その他のDNS関連ログ
DNSサーバーのイベントログ
Snare Windowsエージェントは、Windowsシステム上のDNS設定へのすべてのアクセスと変更を表1の項番1のDNSサーバー監査ログで追跡できます。
この監査ログに含まれるイベントIDをタスク(カテゴリ名)ごとにまとめると以下の表2のようになります。タスク(カテゴリ)名称はSnareやSYSLOG(RFC3164)フォーマットでは、CategoryStringのフィールドに入ります。
<表2:DNSサーバー監査ログのカテゴリとイベントID>
タスク(カテゴリ名) | イベントID (+コメント) |
---|---|
ZONE_OP | 512,513,514,515,516,517,518,522,523,559,560,561,562,563,564,565,566,567,573 ゾーン ファイルのメジャー更新および一部変更の可能性あり |
DYNAMIC_UPDATE | 519,520 |
AGEING | 521 |
OnlineSigning | 525,526,527 |
DNSSEC_OP | 528,529,530,531,533,534,535,544,545,546,547,558,568,569,570,571,572 ロールオーバー、EXPORT/IMPORT、トラストアンカーおよびゾーン署名の変更 |
CACHE_OP | 536 |
Configuration | 537,540,541,542,543 システム変更の可能性あり |
SERVER_OP | 548,549,550,551,552,553,554,555,556,557 |
POLICY_OP | 574,575,576,577,578,579,580,581,582,583,584,585,586,587,588,589 |
RRL_OP | 590,591,592,593 |
VIRTUALIZATION_OP | 594,595,596 |
表1の項番2分析ログは、DNSトランザクションの詳細(クエリ、応答、処理結果)に関するログです。クエリのされたドメイン名や使われたプロトコルやポートの情報、XID、Flagsなどは先のDNSデバッグログとどちらでも確認できますが、更なる詳細な両者のログの内容は異なります。例えば、返信されるIPアドレスのデータは、デバッグログにはありますが、分析ログにはありません。
DNSサーバーの稼働状況、安定性、障害に関するイベントログは表1の項番3のDNSサーバーのログで確認できます。
Windows ServerにAD DSとDNSをインストールするとDNSサーバー関連のイベントログは、表1の項番2分析ログを除いて有効になります。
DNSクライアントのイベントログ
一方、DNSクライアントのログは、表1の項番6のクライアントの運用ログ(名前解決履歴)と項番7のシステムの状態やエラーに関連するログがあります。
項番6のDNSクライアントの運用ログは、イベントビューアーで見ると[アプリケーションとサービスログ]のMicrosoft > Windows > DNS Client Events/Operationalにあります。チャネルの名称は、Microsoft-Windows-DNS-Client/Operationalです。以下DNS-Client/Operationalと略します。
項番7のDNSクライアントの状態/システムのログは、WindowsログのシステムのチャネルにDNS Client Eventsとして報告されます。
前者のログは既定で有効ですが、一般の動作に関する項番6のログは既定では無効となっています。
DNSクライアントのログ(DNS-Client/Operational)を有効にする
このDNS-Client/Operationalのログを有効にする方法は次のとおりです。
- Windows-R を使用して、システムの実行ボックスを開きます
- eventvwr.mscと入力し、Enterキーを押下してイベントビューアーを開きます
- アプリケーションとサービス ログ > Microsoft > Windows > DNS Client Events > Operational を開きます
- [Operational] を右クリックし、[ログの有効化] を選択します

Snare WindowsエージェントによるDNSイベントログの収集
Snare Windowsエージェントのデフォルトの設定で、Windowsとして既定で有効なDNSサーバーおよびクライアントのログは収集・転送されます。Snare WindowsエージェントのWeb GUIで、Log Sources > Audit Policies でデフォルト設定の一番下のポリシーを開くと以下のようになっています。
ここで赤枠の箇所が、DNSサーバー/クライアントのイベントログ収集に必要な設定です。他のEvent ID Search Term等は、個別のイベントがフィルターされるか否かに関係します。詳細は、ユーザーガイドの「5.1.1 イベントログ監査ポリシー設定」をお読みください。

表1の項番3.DNSサーバーの運用(DNS-Server-Service)ログは、[Identify log sources to capture events from …]でイベントソースの[DNS Server]を選択することによって送付されます。
それ以外の1.DNSサーバーの監査(DNSServer/Audit)ログと、6.DNS Clientの運用(DNS-Client/Operational)ログは、カスタムログ(Custom Event Log)としてSnare Agentによって収集されます。したがって、この二つはCustom Event Logが選択されており、Source Search Termでログソース名称がマッチしている必要があります。(Includeで”*”であれば問題ありません。)
表1の項番2.DNSサーバーの分析(DNSServer/Analytical)ログは、Snare Windowsエージェントで採取・転送することはできません。
DNS ログ エンリッチメントに Sysmon を使用する
Microsoft Sysinternals Sysmon は、ユーザー アクティビティとプロセスの実行に関する追加情報をログに記録するのに役立つ貴重なツールです。Sysmon は Windows サーバーにサービスとしてインストールされ、アクティビティをカスタム Windows イベント ログ([アプリケーションとサービスログ])に記録します。Sysmonのインストールや使い方は、Microsoft のページを見てください。
Sysmonのログはカスタム イベント ログの場所にあり、標準の操作(Operational)のイベント ログであるため、Snare Windows エージェントは、既定のポリシー設定で収集できます。Sysmon が提供するイベントの種類は約 24 種類あります。イベント ID 22 は、DNS Queryです。このイベントは、プロセスが DNS クエリを実行するときに、結果が成功するか失敗するか、キャッシュされているかどうかに関係なく生成されます。
SysmonによるDNSイベントログの収集は、クライアント クエリ ログのみです。このログにより、DNSサーバーでクエリを実行しているアプリケーションの名前とパスが分かり、DNSサーバーおよびデバッグログからの情報を補完できます。ネットワーク上で実行されているほぼすべてのWindowsクライアントソフトウェア、つまりChromeなどのWebブラウザ、マルウェアペイロードからのDNSクエリを監視できます。しかし、nslookup、ssh、ping、tracertのようなコマンドではイベントID 22は発生しません。代わりに、イベントID 1 が発生し、次のように使用されているパラメータを表示します。
nslookup intersectalliance.com 実行時のSysmon Event ID 1のログ:SYSLOG(RFC3164)形式
<14>Oct 07 13:45:55 ws-2019-01.jtc.local MSWinEventLog 6,Microsoft-Windows-Sysmon/Operational,23190,Tue Oct 07 13:45:54 2025,1,Microsoft-Windows-Sysmon,NT AUTHORITY\SYSTEM,N/A,Information,WS-2019-01.jtc.local,Process Create (rule: ProcessCreate),,Process Create: RuleName: - UtcTime: 2025-10-07 04:45:54.601 ProcessGuid: {e80fa474-9b02-68e4-1c01-000000009000} ProcessId: 1380 Image: C:\Windows\System32\nslookup.exe FileVersion: 10.0.17763.292 (WinBuild.160101.0800) Description: nslookup Product: Microsoft® Windows® Operating System Company: Microsoft Corporation OriginalFileName: nslookup.exe CommandLine: nslookup intersectalliance.com CurrentDirectory: C:\Users\Administrator\ User: ADSERVERX\Administrator LogonGuid: {e80fa474-796c-68e4-1972-1a0000000000} LogonId: 0x1A7219 TerminalSessionId: 1 IntegrityLevel: High Hashes: MD5=AD20D425C3012EE191535AD65E56DEBB,SHA256=54DAF167F8DBE7FE0F23B37A600BD8D9D16B756D3B83F0804B5037CBBE895EB6,IMPHASH=F9A02896E71DF610AF20835CEAEF5BE9 ParentProcessGuid: {e80fa474-9628-68e4-1401-000000009000} ParentProcessId: 2080 ParentImage: C:\Windows\System32\cmd.exe ParentCommandLine: "C:\Windows\system32\cmd.exe" ParentUser: ADSERVERX\Administrator,527
Sysmon のログを構成するための優れたリソースは、こちらにあります。参考にするとよいでしょう。
このGitHubにあるSysmonの構成ファイルのDNS クエリのイベント ID 22 に対する 885 行目から始まるサンプル構成で、基本的なフィルター処理を含む設定ができます。この設定をそのまま適用することも、特定のネットワークに合わせて調整して他のドメインを除外することもできます。
新しい構成 XML ファイルは、以下のコマンドでインストールします。
> sysmon64.exe -c config.xml
構成XMLのインストール後、イベント ID 22 が発生し始めると、Snare エージェントが収集して ログサーバーやSIEM に転送します。DNS イベント ID 22 には、クエリが成功したか失敗したか、キャッシュの有無が表示されます。イベントには、ドメイン名解決の詳細と、DNSにクエリを実行していたユーザーとコマンドが表示されます。 これらのイベントのフィルタリングは、エージェントの監査設定でカスタムイベントのソースにSysmonを指定して、イベント IDやイベント内の文字列を使用して除外設定することで実行できます。
DNS関連ログのまとめ
このブログで紹介したDNS関連のログについて、代表的な内容と使用例をまとめると以下の表3のようになります。項番の付け方は表1と同じです。
<表3:DNS関連ログのまとめ(ログ名、内容、使用例)>
項番 | ログ名(略称※) 既定の状態 | 主な内容 | 使用例 |
---|---|---|---|
1 | DNSServer/Audit 有効 | ゾーン・レコード変更履歴 | セキュリティ監査、変更履歴の追跡(改ざん検出)、DNSSECの鍵管理 |
2 | DNSServer/Analytical 無効(手動で有効化が必要) | DNSクエリ・応答の詳細 | 高精度なDNSトラフィック分析、SIEM連携(Event Tracingの転送が必要)、DNSトンネリング検出 |
3 | DNS Server 有効 | DNSサーバー動作状況の監視 | サーバーの稼働状況、安定性や障害調査 |
4 | DNSデバッグログ 無効(手動で有効化が必要) | DNSパケット送受信記録 | 手動解析、マルウェア通信の検出、SIEM連携、トラブル調査 |
5 | Sysmon/Operational (Event ID 22) 無効(Sysmon未導入) | プロセス単位DNSクエリの詳細 | マルウェアのC2通信検出、不審なプロセスの監視、SIEMアラート |
6 | DNS-Client/Operational 無効(手動で有効化が必要) | クライアントの名前解決履歴 | 名前解決の履歴、キャッシュ、失敗原因の確認、不審なドメインアクセス検出(限定的) |
7 | システムDNS Client Events 有効 | OSレベルのDNSクライアントサービスの状態やエラー | ネットワーク障害の初期診断、DNSサーバーの応答不良の検出 |
おわりに
Windows ADサーバーのDNSサーバーの機能に関係するログの内容と、Snare Windows エージェントによる収集方法についてご紹介しました。デバッグログやDNS-Clientのログ、更にはSysmonのID 22は、デフォルトの設定では採取できないログです。少々手間はかかりますが、不審なアクセスの監視に役立ちます。これを機に採取してみてはいかがでしょうか。
リファレンス
このブログは開発元の作成したDNSログの集め方の記事をベースに、日本のお客様のことを念頭に翻訳し大幅に改変したものです。以下のリンク集は、その記事の他、本文でもリンクをつけたドキュメントの一覧です。
- Snare Windows エージェントユーザーガイド(日本語)
- 開発元のDNSログ収集の記事 How to Collect DNS Logs(英語)
- Microsoft – Windows Server で DNS ログと診断を有効にする(日本語)
- Microsoft – Sysmon – Sysinternals のガイド(日本語)
- GitHub – SwiftOnSecurity/sysmon-config: デフォルトの高品質イベントトレースを備えた Sysmon 構成ファイルテンプレート(英語)
お問合せ
30日無償で利用いただける評価版を以下のダウンロードリンクに用意しております。簡単に検証が開始できますので、ぜひお気軽にお試しください。