0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Microsoft Defender Antivirusイベントログをメール通知させる方法

Posted at

はじめに

業務でMicrosoft Defender Antivirusがメール通知できるかを調査するタスクがあったため、内容を備忘録的にまとめてみました。

概要

Microsoft Defender Antivirusとは、Windows OSに標準搭載されているウイルス・マルウェア対策ソフトウェアです。
リアルタイムで脅威を検出し、ウイルスやスパイウェアなどからシステムを保護する機能を備えています。
今回、Microsoft Defender Antivirusを利用してウイルス検知時にアラートを受信する仕組みを検討しましたが、標準機能だけでは直接メール通知を行う方法が存在しないことが分かりました。
そのため、AWSのCloudWatchとSNS(Simple Notification Service)を活用して、Microsoft Defender Antivirusが出力するイベントログをもとにメール通知する方法について調査・整理を行いました。

実施手順

1.EC2インスタンスを起動する

適当なEC2(WindowsServer)を起動します。
testという名前でEC2を作成しました。
AMIはWindowsなら何でもいいのですが、業務で使用するWindows Server 2019を選択します。

2.IAMロール作成

CloudWatchのロググループへの書き込み権限を付与したIAMロールを作成します。
CloudWatchLogsFullAccessのポリシーを付与したIAMロールを作成し、EC2にアタッチします。
これをやらないとMicrosoft Defender Antivirusイベントログがロググループに書き込まれません。

3.ロググループ作成

事前にロググループを作成しておきます。
名前は適当にtest-loggroupとしておきます。
後でMicrosoft Defender Antivirusのイベントログがこのロググループに書き込まれるようにします。

4.CloudWatch Agentをインストール

EC2にリモートデスクトップ接続します。
Windows PowerShellを起動後、以下のコマンドを実行し、CloudWatch Agentのインストールを行います。
※インターネット接続できるようにしておかないとコマンドを使用できないため注意

Invoke-WebRequest -Uri "https://amazoncloudwatch-agent.s3.amazonaws.com/windows/amd64/latest/amazon-cloudwatch-agent.msi" -OutFile "amazon-cloudwatch-agent.msi"

image.png

パッケージがあるディレクトリに移動し、以下のコマンドを実行します。

msiexec /i amazon-cloudwatch-agent.msi

インストールに成功するとAmazonCloudWatchAgentのフォルダが作成されます。
image.png

amazon-cloudwatch-agent.jsonをAmazonCloudWatchAgentフォルダ内に作成します。
"log_group_name"に事前作成したロググループtest-loggroupを記述
"log_stream_name"にWindows ServerのインスタンスIDを記述

amazon-cloudwatch-agent.json
{
  "logs": {
    "logs_collected": {
      "windows_events": {
        "collect_list": [
          {
            "event_name": "Microsoft-Windows-Windows Defender/Operational",
            "event_levels": ["ERROR", "WARNING", "INFORMATION"],
            "log_group_name": "test-loggroup",
            "log_stream_name": "{instance_id}"
          }
        ]
      }
    }
  }
}

amazon-cloudwatch-agent.jsonを作成したらAmazonCloudWatchAgentフォルダに移動します。

cd "C:\Program Files\Amazon\AmazonCloudWatchAgent"

以下のコマンドを実行し、設定を反映させます。

.\amazon-cloudwatch-agent-ctl.ps1 -a fetch-config -m ec2 -c file:"amazon-cloudwatch-agent.json" -s

CloudWatch Agentが起動しているか確認し、Runningになっていれば起動しています。

Get-Service AmazonCloudWatchAgent

image.png

5.Microsoft Defender Antivirusイベントログがロググループに書き込まれるか確認します。

EICARテストファイルというものを作成し、意図的にMicrosoft Defender Antivirusのイベントを発生させます。
メモ帳を開き以下の文字列をeicar.txtというテキスト名でデスクトップに保存します

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

メモ帳保存後にMicrosoft Defender Antivirusのイベントが発生し、test-loggroupにログが書き込まれれば成功です。
image.png

6.メトリクスフィルター作成

ロググループでメトリクスフィルターを作成します。
マルウェア検知の場合のメトリクスを取得したいので、ログ内のMicrosoft Defender Antivirus has detected malwareをフィルターパターンとします。
フィルターパターンとメトリクス値以外は適当で大丈夫です。

フィルター名:test-filter
フィルターパターン:Microsoft Defender Antivirus has detected malware
メトリクス名前空間:Custom/Defender
メトリクス名:Malware
メトリクス値:1

これでマルウェア検知イベントのメトリクスを取得することができます。
image.png

7.SNS作成

SNSトピックとサブスクリプションを作成し、CloudWatch Alarmに設定します。
※サブスクリプションを作成するとAWSから認証メールが届くため、メール内のリンクを踏んで事前に認証しておきます。

8.CloudWatch Alarm作成

CloudWatch Alarmを作成します。
メトリクスフィルター作成後、もう一度Microsoft Defender Antivirusイベントを発生させると以下画像のように名前空間が作成されその中にメトリクスが作成されるのでこれを利用してアラームを作成します。
SNSトピックに先ほど作成したものを設定しておきます。
image.png
image.png

結果

アラームが発報された場合にSNS通知がされるか確認します。
もう一度Microsoft Defender Antivirusイベントを発生させて、設定したアドレスにメールが通知されたら成功です。
image.png

まとめ

Microsoft Defender Antivirusのメール通知方法に関しては他にも色々な方法があるみたいですが、今回はAWSを使用したメール通知についてまとめました。
今回の例だとCloudWatchでMicrosoft Defender Antivirusイベントログを取得できる点がメリットだと思いました。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?