ウィルス検知したら、メールを発報させましょう。
何もしないよりマシ?!
Windows Serverのウイルス対策では、OS機能の「Windowsセキュリティ ウィルスの脅威と防止」(要は Windows Defender)によって行っています。
この Windows Defenderですが、ウィルスを検知すると画面右下に通知を出してくれますので、リアルタイムに感染したことが分かるようになっています。
(見たことが無い人が多いと思います)
PCみたいに常に誰かが操作しているのならそれで良いのですが、基本的に無人で稼働するサーバーで感染の通知を画面に上げてくれても誰も見ていないので誰も気付きません。
ウィルスに感染しているのに誰も気づかないのは困ります。
ウィルス感染したら管理者にメールを通知をすれば…ということで、ここではその仕組みを仕込んでみます。
スタートメニューから [Windows セキュリティ] を開くとこの画面になりますので [ウィルスの脅威と防止] をクリックします。
こういう画面になります。
ここで、テスト用の偽ウィルス「eicar(エイカー)」を仕込みます。
私はいつもカスペルスキーのこのページから取ってきています。
EICAR テストファイルとは?
ここに載っている文字列をテキストファイルにして保存すると、ウィルス感染状態を作り出すことができます。
私は [D:¥eicar.txt] というファイルを作ってみました。
保存してすぐに画面右下にメッセージが出ます。
[ウィルスの脅威と防止] の画面の方にも出ます。
この後、当該ファイルはポリシーに従った処理(削除)をされます。
画面でオペレーションしてたらこれで終わりかも知れませんが、どこかに記録はないのか?というと、以下にあります。
スタートメニューから [Windows 管理ツール] - [イベント ビューアー] を選択します。
画面左にあるツリーで [イベントビューアー(ローカル)] - [アプリケーションとサービスログ] - [Microsoft] - [Windows] - [Windows Defender] - [Operational] と辿ります。
そうすると先程 [Eicar]を検出したログが出てきます。(青反転行)
イベントの詳細はこんな感じです。
ログの名前: Microsoft-Windows-Windows Defender/Operational
ソース: Microsoft-Windows-Windows Defender
日付: 2022/10/24 10:54:21
イベント ID: 1117
タスクのカテゴリ: なし
レベル: 情報
キーワード:
ユーザー: SYSTEM
コンピューター: Win2022
説明:
Microsoft Defender ウイルス対策 により、マルウェアまたは他の望ましくない可能性のあるソフトウェアからこのコンピューターを保護する操作が実行されました。
詳細については、次を参照してください:
https://go.microsoft.com/fwlink/?linkid=37020&name=Virus:DOS/EICAR_Test_File&threatid=2147519003&enterprise=0
名前: Virus:DOS/EICAR_Test_File
ID: 2147519003
重大度: 重大
カテゴリ: ウイルス
パス: file:_D:\eicar.txt
検出元の場所: ローカル コンピューター
検出の種類: コンクリート
検出元: リアルタイム保護
ユーザー: NT AUTHORITY\SYSTEM
プロセス名: C:\Windows\System32\notepad.exe
操作: 検疫
操作の状態: No additional actions required
エラー コード: 0x00000000
エラーの説明: この操作を正しく終了しました。
セキュリティ インテリジェンスのバージョン: AV: 1.377.700.0, AS: 1.377.700.0, NIS: 1.377.700.0
エンジンのバージョン: AM: 1.1.19700.3, NIS: 1.1.19700.3
イベント XML:
〜〜〜 XMLは省略 〜〜〜
こちらにWindows Defender のイベントコード(例えば上のモノだと 1117)についての説明があります。
Microsoft Defender ウイルス対策ソフトウェアの問題をトラブルシューティングするため、イベント ログとエラー コードをレビューする
どうやら上のイベント(1117)または、検出時のイベント(1116)が書かれた時にメールを出せれば良いようです。
ではメールを送信する設定をしてみます。
上の画面で青反転している行で右クリックするとメニューが出ますので、[このイベントにタスクを設定] を選択します。
次へを押します。
次へを押します。
ここにメール送信する選択肢があるのですが非推奨というので使わず、Powershellスクリプトでメールを出すことにします。
[プログラムの開始] を選択して次へを押します。
このようなPowershellスクリプトを用意し、[D:¥work¥VirusCheck.ps1] というファイル名で作りました。
$Param = @{
SmtpServer = "Rocky-1";
From = "administrator@Win2022.localdomain";
To = "subro@Rocky-1.localdomain";
Subject = "ウィルスを検知しました!!!!"
Body = "超ヤバいっス。すぐに対応して下さい、パイセン!。"
Encoding = [System.Text.Encoding]::UTF8
}
Send-MailMessage @Param
で、これに代わる新しいコマンドレットは何?というとないようです。
マイクロソフトは時々こういうことをしてくれるので困ります。
今後の事を考えると、Powershellではなく Pythonなどにシフトしておいたほうが良いのかも知れません。
[プログラム/スクリプト] に [powershell.exe] を、
[引数の追加] に上のスクリプト [D:¥work¥VirusCheck.ps1]ファイルを入力し、
次へを押します。
完了を押します。
OKを押します。
これで仕込みは完了です。
改めてコレを [D:¥eicar.txt] という名前で保存します。
こんなメールが届きました。
何もしないより、とりあえずコレくらいの仕込みはしておくのが良いと思います。
今回はメール送信のコマンドレットを使いましたが、Invoke-WebRequestコマンドレットを使えば、Slackや Teamsに通知なんてことも可能でしょう。
特定のイベント発生をトリガに何かしら実行できるということを知っておけば、通知の方法は色々使えるでしょうから、あとは工夫次第ですね。