タイトルは「イベントログを可視化」になってるけど今回(次回も?)はちょっと違うのでスミマセン。
企業などで社内の全Windows端末を集中監視できるウイルス対策ソリューションを導入しているということであればそのウイルス検知監視アプリを使えば良いんだろうけど、(中)小企業だとその手のソリューションを採用していないということもある筈。最近のWindowsはマルウエアの検知という部分だけについていえばDefenderが優秀なので検知はそれにまかせて、集中監視についてはElastic Stackを使うという方法もある。
前回WinlogbeatをWindowsにインストールしたので引き続きそれを利用する。
C:\Program Files\winlogbeat-6.4.0\winlogbeat.yml (追記など)
1 2 3 4 5 6 | winlogbeat.event_logs:
- name: Application
- name: Security
- name: System
- name: Microsoft-Windows-Windows Defender/Operational #←追加
include_xml: true #←追加
|
YAMLファイルは行頭の字下げが階層を示すのでデタラメに下げたり行頭の空白を除去しない。
Winlogbeatのサービスを再起動する。またはWindowsを再起動。
とりあえず、マルウエアの検体として EICARのテストファイルを使う。もちろん、テキストファイルの擬似ウイルスなので安全で、多くの(全ての?)ウイルス対策ソフトと同様にWindows Defenderでも「ウイルス」という扱いで検知される。EICARのテスト文字列をエディタに貼ってファイルとして保存しようとすると「ウイルス」として検知される。(おそらく保存はできない筈)
または、EICARのテストファイルをウェブで配布しているところからブラウザで「ファイルとして保存」をしようとすると「ウイルス」として検知される 。(おそらく保存はできない筈)
あちこちで配布されているけど例としてトレンドマイクロの「各製品共通テストウイルス」を挙げておく。
しばらく動かして、またはマルウエア(EICARテストファイル)を検知してからKibanaの左列のManagementから右列のIndex Patternsを選択し、左上のWinlogbeat-*を選択して、右上の(インデックスパターンの更新)をクリックする。(重要)
Windowsでマルウエアを検知したらその時刻を元にKibanaのDiscoverでWinlogbeat-*のインデックスを表示する。
マルウエアを検知したログが届いていることがわかる。
ログの詳細を見たところ、以下の項目に注目するとマルウエアの検知履歴を作成できそうなことがわかる。
- event_data.Threat Name: 検知したマルウエアの名称
- event_data.Category Name: 検知したマルウエアのカテゴリ
- beat.hostname: ログを出力したホスト名
- event_data.Detection User: ログを出力したホスト名とWindowsのユーザー名
- event_data.Error Description: 説明(どのように処理されたか等)
- event_data.Detection Time: ログの発生日時(UTC) 月日が短い形式
- @timestamp: ログの発生日時(ローカル時刻) 月日が長い形式
- log_name: Microsoft-Windows-Windows Defender/Operationalのログで絞り込む(フィルター)
今回は1, 2, 3, 7, 8を使用することにする。
なお、4はマルウエア検知のときのWindowsユーザーも表示してくれるのが良さそうなのだが、検知以外のログでその項目が存在しないことがあり、そうするとそのログが抽出されない原因になるので今回はホスト名だけを利用することにした。
Visualizeで可視化する。今回は履歴を作るということでData Tableを使用することにした。
左メニューでVisualizeをクリック。
新規作成の をクリック。
[Data Table]をクリック。
まず、フィルタを作成する。左上の方の[Add a filter ]をクリック。
[log_name] [is] [Microsoft-Windows-Windows Defender/Operational]を指定して[Save]。
Metricsの指定はAggregationにCountを選択。
以下Buckets。今回はBucketsはSplit Rowsで4つ。
1つめのSplit RowsはAggregationでTermsを選択。Fieldsにevent_data.Threat Nameを指定。
2つめのSplit RowsはAggregationでTermsを選択。Fieldsにevent_data.Category Nameを指定。
3つめのSplit RowsはAggregationでTermsを選択。Fieldsに@timestampを指定。
4つめのSplit RowsはAggregationでTermsを選択。Fieldsにbeat.hostnameを指定。
上部の (Apply Changes)をクリック。
気に入ったら最上部の[Save]でVisualizeを保存。
社内のWindows端末にWinlogbeatをインストールすることでマルウエアの検知やWindows Defenderの挙動をElastic Stackで集中監視できそうね。(触りだけだが)
Elastic Stackに通知機能を追加すれば例えばマルウエアを検知したら管理者にメールで知らせるようなこともできる(筈)。(有料X-Pack Watcher・無料ElastAlertなど)
- Tiny 11をMicrosoftと通信させない名前解決変更
- TelegrafでElasticsearchにメトリクス送信+Kibanaで可視化 (後編)
- TelegrafでElasticsearchにメトリクス送信+Kibanaで可視化 (中編)
- TelegrafでElasticsearchにメトリクス送信+Kibanaで可視化 (前編)
- Metricbeatで収集したメトリクスデータをKibanaで可視化する
- Kibanaを操作する前にユーザーを作成する
- Metricbeat 8.6.0のインストールと設定
- Elastic Stack 8系をFreeBSDにインストール
- マイクロソフト PCマネージャというアプリを触ってみた
- Windows 11のシステム要件を満たさないPCでWindows11の大型アップデートを適用
- Windows 11でWindows Updateの自動更新を停止する
- Windows 11でWindows Updateによる更新を手動で停める (後編)
- Windows 11でWindows Updateによる更新を手動で停める (前編)
- Windows 11のシステム要件を満たさないPCでWindows10からWindows11にアップグレード
- WindowsでもUnbound (Remote controlの準備)
- Windows 11リリース (例のごとくシステム要件を満たさないPCにインストール)
- Androidスマホ画面をWindowsで表示 (ワイヤレスディスプレイ プロジェクション)
- Windows 11上で「このPCは現在、Windows 11システム要件を満たしていません」
- MS公式誰でもDLできるWindows 11 インサイダー版を古いPCにインストールと休止無効化設定
- Windows IMEで半角/全角キーの割り当てをIMEオフだけに変更(Linuxも)
- Windows 11システム要件に満たないPCにISOファイル無改造でインストール
- Windows 11上で「このPCではWindows 11を実行できません」
- Windows 11を9年前の超非力なノートPCにインストールしてみた
- 情報セキュリティ Windows 10でUSBメモリの自動実行を不可にする
- 情報セキュリティ Windows 10でUSBメモリの読み書きを不可にする
- Windows 10を旧型ノートPCにクリーンインストールしてみた
- Elastic Stack 6.4.2への更新 FreeBSD ports用メモ
- DVDFab 11がリリースされた
- WinlogbeatでWindowsイベントログを可視化 後編
- WinlogbeatでWindowsイベントログを可視化 中編