【AWS】Windows EC2にアカウントのログオン失敗を検知し、メールにアラート通知をしました

#はじめに
AWS の Windows EC2 に アカウントのログオン失敗を検知し、メールでアラーム通知をさせる手順を公開します。
システムセキュリティ監視の一環として、サーバログオン失敗の監視は欠かせないものですね。

#構成図
構成図は下記となります。
簡単に説明すると、
① EC2 に CloudWatch Agentが実装済みであることが前提です。
なお、CloudWatch Agent で Windows のセキュリティログを CloudWatch Logs へ転送させることを事前に定義しておく必要があります。
② SNSでトピックを作成し、メール宛先をサブスクリプション加入してもらいます。
③ CloudWatch Logs 上で Windows Security ログをフィルターし、ログオン失敗時のエラーコードを検知したら、SNSでメールを発砲させます。

![Untitled Diagram-Page-2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/720bd8dd-faeb-de7e-7743-0cc468f99201.png)

#１．CloudWach Agent のインストールと設定
CloudWatch Agent のインストールと設定の仕方は、下記の記事で公開しております。
当記事内に、CloudWatch Agent で Windows のセキュリティログを CloudWatch Logs へ転送させることも記載してあるので、手順に従って設定していただければと思います。

https://qiita.com/hyj624117615/items/2f2719fd34656e0df79e

設定完了後に、CloudWatch Logs で、下記のようにセキュリティログが出力されていればOKです。

![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/1865b24a-6024-05d7-2ad5-256fe8a78ba4.png)

#２．SNSでトピック作成とメール認証
SNSで、```トピックを作成```を押下します。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/94e0b964-077f-a119-d1fd-865330142e86.png)

SNSタイプを```スタンダード```に選択します。
「名前」と「表示名」を適宜に設定してください。
その他の設計項目はデフォルのままで良いので、入力完了後に「トピックの作成」を押下します。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/cf98fd96-0334-d7e6-7c6e-98ee60c4bdf7.png)

作成完了後にトピックに対し、```サブスクリプションの作成```を押下します。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/77f356ce-846a-f7d1-a4f4-e8ac3f5cc59b.png)

「トピックARN」に上記作成したトピックであるかどうかを確認します。
「プロトコル」に```Eメール```を選択します。
「エンドポイント」にメールアドレスを入力します。
上記入力し終わったら、サブスクリプションの作成を押下します。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/51dc782d-e3ec-7616-a0a5-e15197952c08.png)

しばらくすると、「AWS Notification - Subscription Confirmation」から認証メールが届きます。```Confirm subscription```を押下します。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/a0918462-44bf-0959-74f5-13f42aefda5b.png)

このような画面が表示されれば、認証成功です。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/9a88569d-1d3b-8d35-965e-fa164b0cf1ec.png)

合わせてSNSのトピック画面上でもステータスも```確認済み```と変更されました。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/072ef527-1775-4db0-55e3-e773ca2be136.png)



#３．CloudWatch 側で Windows のセキュリティログに対し、メトリクスフィルターを作成
Windows では、アカウントをログオン失敗時に、```<EventID>4625</EventID> ```が Windows のセキュリティログ内に出力されます。
Windows公式サイト上に詳しく記載されているので、リンクを貼り付けいたします。

https://docs.microsoft.com/ja-jp/windows/security/threat-protection/auditing/event-4625

つまり、Windows のセキュリティログに、```<EventID>4625</EventID> ```をフィルターをすれば、アカウントをログオン失敗の検知が出来ます。
それでは設定していきます。

CloudWatch Logs で設定しておいた Windows セキュリティログをクリックします。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/1865b24a-6024-05d7-2ad5-256fe8a78ba4.png)

「メトリクスフィルター」→「メトリクスフィルターを作成」をクリックします。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/2f98b999-58cb-a675-a247-109388756c5a.png)

「フィルターパターン」に、```"<EventID>4625</EventID>"```を入力し、「Next」を押下します。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/41690a47-7776-57dc-55f3-9858de3470d8.png)

「フィルター名」を定義しておいてください。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/a840d117-790d-9324-2629-92ef40151dd6.png)

「メトリクス名前空間」や「メトリクス名」を定義し、「メトリクス値」に```1```を入力します。
入力完了後に「Next」を押下します。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/368cebbb-077d-3542-d396-cccab4932ff2.png)

入力した内容を確認した上で、「メトリクスフィルターを作成」を押下します。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/6595e893-9d55-f32b-e97f-265415ea1212.png)

先ほど作成したメトリクスフィルターを選択の上、```アラームを作成```を押下します。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/7af5132a-f104-0179-1f71-34c915e4d588.png)

「期間」を```1分```に指定します。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/eb21e745-837c-7b71-4f9f-f9dab2d728e1.png)

「以上>=しきい値」を選んだ上、しきい値を```1```を入力した上、「次へ」をクリックします。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/67fa54f2-3930-296e-e1bb-7f4358f00ec9.png)

「SNSトピックの選択」に先ほど作成したトピックを選びます。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/978e3252-f242-ed54-4e9b-51b5891e1a8a.png)

「アラート名」を適宜に入力します。
「アラートの説明」に、日本語を入力しても良いので、適宜に入力してください。
入力し終わったら、「次へ」をクリックします。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/9722d0e3-90d0-9594-6326-c275dc3f70a1.png)

上記入力した内容を確認した上で、作成を押下します。
すると、このような画面が表示されていれば作成完了になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/826fcf02-09da-cd8f-2201-0db7eec4a038.png)

#４．検証テスト
それでは検証テストを行っていきます。
RDP（リモートデスクトップ）画面でわざとパスワードを入力し間違ってみます。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/aa7632cf-3cde-4083-77b4-e4426a11f066.png)

しばらくすると、アラートメールが届いていれば成功です。
![111.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/865613/56e26d0f-af1d-b030-a7d2-675315342571.png)

#５．まとめ
今回は Windows カウントのログオン失敗イベントを検知しました。
上記の流れを熟知していれば、さまざまなログ監視が出来るようになりますので、ぜひご活用ください。