目次
Amazon GuardDutyとは?
Amazon GuardDutyとは、脅威検知を行うマネージドサービスです。
CloudTrailやVPCフローログ、DNSログなどを確認し、脅威と思われるアクティビティを自動検出する事ができ、これらにより、ネットワークアクティビティ、ポートスキャン、マルウェアの侵入、不正なIAMアクセスなど、脅威を検出することができます。
Amazon GuardDutyを利用して脅威検知が可能な対象は以下となります(2023年5月現在)。
- CloudTrail
- イベントログ
- 管理イベント
- S3データイベント
- VPCフローログ
- DNSログ
- Kubernetes Audit Logs
- RDSログインアクティビティ
GuardDutyは上記の対象のログやイベントを自動で分析し、ログやイベントにリスクに応じて重要度を割り当てます。重要度を参照する事で、セキュリティアクションを判断する事が可能です。重要度の種類と説明は以下の通りです。
- 高:監視対象が侵害され、不正な目的で活発に使用されている事を示します。
- 中:通常の動作から逸脱する不信なアクティビティが確認されており、場合によってはリソースが侵害されている事を示します。
- 低:ポートスキャンや侵入失敗などの、ネットワークが侵害されなかった不審なアクティビティが試行された事を示します。
Amazon GuardDutyはリージョンレベルのサービスとなるため、対象リージョンにて有効化する必要があります。
VPCフローログやCloudTrailが存在すれば、GuardDutyを有効化すると、自動的にログやイベントの分析を開始し始めます。
料金
Amazon GuardDutyの料金は分析対象のログ/イベント及び分析量により決定します。
- AWS CloudTrail管理イベント分析:
- 100万イベントあたり4.72USD/月
- AWS CloudTrail S3データイベント分析:
- 0~5億イベント/月:100万イベントあたり1.04USD
- 5億イベント~50億イベント/月:100万イベントあたり0.52USD
- 50億イベント~/月:100万イベントあたり0.26USD
- VPCフローログの分析:
- 0~500GB/月:1GBあたり1.18USD
- 500GB~2500GB/月:1GBあたり0.59USD
- 2500GB~10000GB:1GBあたり0.29USD
- 10000GB~:1GBあたり0.17USD
- DNSクエリログ:
- 0~500GB/月:1GBあたり1.18USD
- 500GB~2500GB/月:1GBあたり0.59USD
- 2500GB~10000GB:1GBあたり0.29USD
- 10000GB~:1GBあたり0.17USD
- Amazon EKS監査ログ:
- 0~1億イベント/月:100万イベントあたり2.48USD
- 1~2億イベント/月:100万イベントあたり1.24USD
- 2億イベント~/月:100万イベントあたり0.31USD
- EBSデータボリュームのスキャン分析:
- 1GBあたり0.05USD/月
また、GuardDutyには30日間の無料期間が存在します。
ユースケース
Amazon GuadDutyの主なユースケースは以下の様になります。
- マルウェアの検出: 不審なファイルアクセスやコマンド、異常なネットワークトラフィック、および潜在的な乗っ取りなどの検出を行い、マルウェア攻撃を識別します。
- 不正なアカウントアクセスの検出 :不正なアカウントアクセスを検出することができます。アカウントの認証情報を監視し、異常なアクセスパターンや異なる地理的場所からのアクセスなどの不審なアクティビティを検出します。
- DDoS攻撃の検出 :DDoS攻撃も検出することができます。GuardDutyは、アカウント内のVPCフローログやCloudTrailログなどから、異常なネットワークトラフィックを検出し、DDoS攻撃を識別します。
- 不審なポートスキャンの検出:不審なポートスキャンを検出することができます。GuardDutyは、アカウント内のVPCフローログから、不審なポートアクセスの試行を検出し、不正なアクセスを行っているIPアドレスを識別します。
- ブルートフォース攻撃の検出 :GuardDutyは、ブルートフォース攻撃を検出することができます。GuardDutyは、アカウント内のCloudTrailログから、不審な認証トライを検出し、ブルートフォース攻撃を識別します。
ハンズオン概要
以下で実際にAmazon GuardDutyを利用していきます。
今回は、自身のIPアドレスを脅威リストに登録してEC2に通信を行い、正常に脅威として検出を行うか確認するハンズオンを実施します。
利用手順
※当ページでは2023年5月現在のGuardDutyについて解説します。クラウドサービスは頻繁にアップデートが施されるため、仕様が異なる可能性があります。
ログイン
VPCの新規作成
EC2を作成するためのVPCを準備します。
パブリックサブネットを持つ任意のVPCを作成します。
EC2の新規作成
脅威リストとなるIPアドレスからPingを送られる先のEC2を構築します。
先程作成したVPCに任意のEC2を作成します。
作成する際、基本デフォルトの設定で問題ありませんが、ネットワーク設定のパブリックIPの自動割り当てを有効化、インバウンドセキュリティグループに”すべてのICMP”を追加する必要があります。
EC2作成方法の詳細に関しては、【AWS】EC2とは?徹底解説!を参照してください。
S3バケットの新規作成
脅威リストを記載するファイルはS3バケットに配置される必要があります。
まず、S3バケットを作成します。”test-gd-bucket-yyyymmdd”のような任意のバケット名を付与し、他の設定は全てデフォルトのままバケットを作成します。尚、バケット名はネットワーク上の全てのバケットの中で一意となるような名前を付与する必要があります。
バケットを作成したら、脅威リストを記載するファイルを作成して行きます。
脅威リストには自分のPCのIPアドレスを登録します。
自分のPCのIPアドレスは、CMANインターネットサービスなどのサイトにて確認します。
確認したら、”forbidden_ip.txt”というファイルを作成し、以下のようにファイルの中に自身のIPアドレスを記載します。
ファイルを作成したら、S3の”アップロード”というボタンを押下し、作成ファイルをアップロードします。
アップロードしたら、アップロードしたオブジェクトのオブジェクトURLをコピーします(後程GuardDutyにこちらを登録しファイルを参照できるようにします)。
GuardDutyの新規作成
では、いよいよGuardDutyを作成します。
検索バーに”GuardDuty”と入力し、”GuardDuty”を選択します。
“今すぐ始める”を押下します。
次のページにて、”GuardDutyを有効にする”を押下します。
有効化すると、ダッシュボード画面へ遷移します。
GuardDutyへの脅威IPリストの登録
GuardDutyのリストタブより、先程S3にアップロードした脅威IPを記載したファイルを指定する事で、該当のIPアドレスからのアクセスが発生すると、脅威として検知する事が出来ます。
リストタブより、”脅威IPリストを追加”を押下します。
- リスト名:任意のリスト名を登録します。今回は”test-thread-ip-list”とします。
- 場所:先程コピーしたオブジェクトURLをペーストします。
- 形式:“プレーンテキスト”を選択します。
上記が完了したら、リストタブにて”アクティブ”の下にあるチェックボックスにチェックを入れます。
動作確認
では実際にEC2にPingを飛ばしてGuardDutyの検出結果を確認してみます。
“ping ${EC2のIPアドレス}”を任意のCLIで実行します。
10分程度経過した後、GuardDutyの検出結果に”UnauthorizedAccess:EC2/MaliciousIPCaller.Custom”という結果が出ていれば成功です。
関連記事