#DNS Query分析の必要性:
LAN内のコンピュータが乗っ取られたり、ウイルス感染した際、それらが遠隔操作拠点(Command & Controlサーバ)に向けてDNSプロトコルで通信する場合があることが知られており、LAN内のコンピュータからのDNS Queryについて異常なものがないかどうかログを集積して分析することが、監査証跡の観点から近年推奨されてきました。
例えば、JPCERT/CCが紹介している「高度サイバー攻撃への対処におけるログの活用と分析方法」においても、高度サイバー攻撃の痕跡を見つけるためのログの分析方法としてDNS Queryの分析を推奨しています。
Windowsクライアントマシンが乗っ取られて異常なDNS Queryを発しているかどうかを知るためのログ取得には、これまでWindows OSのモニタリングツールであるMicrosoft Sysmonにその機能がなかったため、多くの場合はLAN内のDNSサーバで受けたDNS Queryを集積・分析する手法がとられてきました。しかし、2019年6月にリリースされたMicrosoft Sysmon 10になって、ようやくWindows側で発呼するDNS Queryログを取得できるようになりました。本稿では、Windowsデバイスの発するDNS Queryを確実に集積できる、Sysmon 10によるDNS Queryロギング機能を用いたこれまでより確実な方法を紹介します。
#Soliton NKで動作するWineventインジェスターを用いたDNS Query分析:
Soliton Systems社のSoliton NKは、ネットワーク上にあるノードのシステムログやネットワークに流れる通信を全て分類・集積し、総合的に分析できる強力なログ解析システムです。このSoliton NKには、Windowsログのフィルタリング・送信ツールとして、Wineventインジェスターがあります。
Wineventインジェスターを用いて、Sysmonから得られるWindowsデバイスのDNS QueryのログをSoliton NKに送信・蓄積すれば、Soliton NKによってDNS Queryを分析し、Windowsの異常な挙動を洗い出し、高度サイバー攻撃の痕跡を見出すことができるようになります。
SysmonとWinevent インジェスターを活用して、Soliton NKによってDNS Query分析するための、初期設定と基本操作を以下に紹介します。
##監視対象のWindowsデバイスの初期設定:
Windowsデバイスに、Windows OS の動作をモニタリングするSysmonと、Sysmonによって取得されたWindowsのシステムログをSoliton NKに向けて送信するWinevent インジェスターとの、2種類のソフトウェアをインストールします。
Microsoft Sysmonおよびインジェスターは、Soliton NKに付属していないので、MicrosoftのサイトおよびGravwellのサイトから取得する必要があります。
###Sysmon インストール作業;
Sysmon用設定ファイルを用意します。DNSクエリも含めてモニターするSysmon用設定は、SwiftOnSecurityが配布している設定ファイルが参照できます。
コマンドプロンプトにて次のように設定ファイルを指定してコマンドを実行してインストールします。
.\sysmon64.exe -i z-AlphaVersion.xml
ライセンス承諾画面(System Monitor License agreement)で、ライセンスを承諾します(Agreeボタンをクリック)
このようにSysmon (執筆時点でのバージョンはV10.41)を導入することによって、WindowsシステムからのDNS Queryを含むシステム状況の情報が取得可能になります。
###Winevent インジェスター インストール作業;
Winevent インジェスター(執筆時点でV3.2.5)と、その設定ファイルは以下のサイトからダウンロードします。なお、最新版Winevent インジェスターについてはWinevent ingesterのページでチェックすることができます。
gravwell_win_events_3.2.5.msiをダブルクリックにより実行してインストールを開始します。インストール途中設定ファイルが開くので、2行目のIngest-Secretの値と、と6行目のCleartext-Backend-targetの Soliton NKのIPアドレスを次の形式で入力してください
Ingest-Secret (それぞれのSoliton NKにより決まっています)
Cleartext-Backend-target=<Soliton NKのIP>:4023
また、#[EventChannel “sysmon”]以下4行について # を削除して、コメントアウトを解除してください。
[EventChannel "sysmon"]
Tag-Name=sysmon
Channel="Microsoft-Windows-Sysmon/Operational"
Max-Reachback=24h #reachback must be expressed in hours (h), minutes (m), or seconds(s)
また、9行目の#Ingest-Cache-Pathのコメントアウトを解除することでログのキャッシュを保持させ、ログのロストを防ぐことができます。
Ingest-Cache-Path="C:\\Program Files\\gravwell\\events.cache"
上記を設定したら設定ファイルを閉じてください。
このようにWinevent インジェスターをインストールすることによって、Sysmonによって取得されたWindowsのシステムログは、Winevent インジェスターによって分類され、Soliton NKに送信されてログ分析のために蓄積されるようになります。
##DNS Query分析:
Winevent インジェスターによって収集・蓄積されたSysmonイベントデータから、DNS Query(EventIDは22)の確認は、Soliton NKの操作画面上で
tag=sysmon winlog EventID==22
DNS Queryの確認結果を時刻順に表形式で表示させるには、
tag=sysmon winlog EventID==22 Image QueryName QueryResults | table TIMESTAMP Image QueryName QueryResults
とすることでできます。
DNS Queryをグラフ表示するには、
tag=sysmon winlog EventID==22 QueryName | count by QueryName | chart count by QueryName
メニューから「表示オプション」のチャート種別から表示形式を選択することでできます。
分析結果をダッシュボードでまとめるためには、メニューから「ダッシュボードに追加」の「新規ダッシュボード」を選択し、ダッシュボード名を指定して保存します。
分析結果をダッシュボードに追加していくと、これらがダッシュボードにまとめられていきます。
構成されたダッシュボードを表示するには、メニューから「ダッシュボード」を選択し、表示された一覧から作成したダッシュボードを選択することでできます。
#・おわりに
ログ分析システムであるSoliton NKによって、高度サイバー攻撃の痕跡を見つけるためのDNS Queryログ分析するための、初期設定と基本操作は以上です。
Soliton NKを評価するための無償ダウンロードは以下のSoliton NK 公式サポートサイトでお申し込み下さい。
Soliton NKによってさらに高度なログ分析をする方法の詳細について、今後記事を追加していく予定です。