脅威リストを使ったGuardDutyの検出テスト

Amazon GuardDuty は、CloudTrail、VPCフローログ、DNSログを分析し、悪意のある操作や不正な検出します。 「本当に検出されるか不安だな。。。」そんな疑問が浮かんだ方に、脅威リスト機能を使った検出テスト方法をご案内します。

脅威リストを使った検出テスト

GuardDutyには"脅威リスト"の機能があります。 ユーザー側で、既知の悪意のあるIPアドレスのリストを登録できます。 脅威リストに自分のIPを登録し、本当にイベントが発生するのか、どのように検出するのかを見ていきます。

脅威リストの登録

脅威リストは、IPアドレスまたはネットワークアドレスを1行に1つ記載します。 ファイル名は、UntrustIP.txtなどわかりやすいにすると良いでしょう。 内容は以下のような形です。

54.20.175.217
205.0.0.0/8

https://checkip.amazonaws.com/で自分が利用中のIPアドレスを確認、記載し、ファイルをS3にアップロードします。 バケットポリシーなどは特に設定しませんでした。 GuardDutyコンソールでS3にアップしたファイルパスを指定し、有効化します。

詳しい手順は信頼できる IP リストと脅威リストの使用をご覧ください。

Pingなどを検出できる

手元のPCからEC2にpingを送信してみます。 数分すると、"結果"が作成されました。結果はGuardDutyで検知した結果のことです。 UnauthorizedAccess:EC2/MaliciousIPCaller.CustomはEC2が脅威リストのIPアドレスと通信していることを示します。

プロトコルがICMP、送信元(Actor)のIPアドレス、検知した時間などを確認できます。 Organizationにはインターネットプロバイダの情報が表示されました。 手元のPCからEC2にpingを送信したため、Locationは東京になっています。

AWSコンソールへの接続を検出できる

手元のPCからEC2コンソールに接続してみます。 15時54分にEC2コンソールに接続したところ、16時9分に結果が作成されました。 Recon:IAMUser/MaliciousIPCaller.CustomはAPIが脅威リストのIPから呼び出されたことを示します。

先ほどと同じように、送信元(Actor)のIPアドレス、検知した時間などを確認できます。

EC2コンソールに接続すると裏では、各種APIが実行されます。 DescribeAddresses、DescribeInstanceStatusなどのAPIが実行されたことがわかります。

おわりに

脅威リストを使ったGuardDutyの検出テストについて、ご紹介しました。 意図的に結果を作成する方法として、結果サンプルもあります。 結果サンプルは通知用SNSやLambdaのテストに使いやすいかと思います。 GuardDutyでテストが必要になった時は、脅威リストや結果サンプルを使ってみてください。

参考