あめがえるのITブログ

頑張りすぎない。ほどほどに頑張るブログ。

AWS CloudTrail Insightsを使ってみた


CloudTrail Insightsとは

アカウント内のAPIアクティビティを記録し、通常と異なる動作を検知しログ出力からSNSなどと連携して通知を行える。
グローバルではなく1つのリージョンで発生するイベントを分析する。

通常と異なるとは

過去データを通常とし、現在発生したAPIイベントと比較する。

GuardDutyとの違い

 目的:
  CloudTrail Insights:クラウド環境における異常なAPIアクティビティの検出
  GuardDuty:クラウド環境における脅威検出
 機能:
  CloudTrail Insights:CloudTrailのデータを分析し、通常の動作から外れる異常なAPIコールパターンを特定する。これには、異常に高いリソース作成や削除、急激な権限変更などが含まれる。
  GuardDuty:機械学習や異常検出技術を用いて、AWSアカウント内の潜在的な脅威をリアルタイムで検出する。ネットワークアクティビティ、AWS管理コンソールへの不正アクセス、IAM権限の不正使用などの異常を検出する。
 データソース:
  CloudTrail Insights:AWS CloudTrailログ
  GuardDuty:VPC Flow Logs、AWS CloudTrail、DNSログなど
 主な用途:
  CloudTrail Insights:異常なAPIアクティビティの検出、運用上の問題のトラブルシューティングセキュリティインシデントの発見
  GuardDuty:自動脅威検出、セキュリティイベントの監視、異常行動の分析

やること

CloudTrail Insightsを有効化し、EventBridgeでログを検知し、SNSでメールを通知する。

前提

CloudTrailの証跡が作成されていること。
※作成されていない場合下記を実施する。
AWS CloudTrail 証跡を有効化してみた - あめがえるのITブログ
通知用SNSトピックを作成していること。

実践!

1.CloudTrail Insights有効化
1-1.[AWS] - [CloudTrail]

1-2.[証跡] - 証跡を選択

1-3.Insightsイベントの[編集]

1-4.下記をチェック
 Insights イベント:✅
 API コールレート:✅
 API エラー率:✅

1-5.[変更の保存]

2.EventBridge設定
2-1.[AWS] - [EventBridge] - [ルール]

2-2.[ルールを作成]

2-3.下記を選択
 名前:ルール名
 説明 - オプション:任意
 イベントパス:default
 選択したイベントパスでルールを有効にする:✅
 ルールタイプ:イベントパターンを持つルール:✅

2-4.[次へ]

2-5.下記を選択
 イベントソース:その他
 メソッド:カスタムパターン(JSONエディタ)
 イベントパターン:

{
  "detail": {
    "eventType": ["AwsCloudTrailInsight"]
  }
}



2-6.[次へ]

2-7.下記を選択
 ターゲットタイプ:AWSのサービス
 ターゲットを選択:SNS トピック
 トピック:事前に作成しているSNSトピック

2-8.[次へ]

2-9.[次へ]

2-10.[ルールの作成]

3.動作確認
3-1.CloudShellで通常では発生しないAPIを発生させる
 3-1-1.[CloudShell]
 3-1-2.下記を実行
  ※存在しないEC2インスタンスの詳細を10回確認する

for i in {1..10}; do aws ec2 describe-instances --instance-ids i-xxxxxxxxxx; done


 3-1-3.APIレート異常のメールを受信すること
  ※設定を有効にしてから通知されるまで最大36時間かかるので気長に待ちましょう。
  ※下記が受信するメール。分かりづらいので後でカスタマイズします。

3-2.CloudTrail Insightsイベント確認
 ※詳細はこちらのほうが見やすい
 3-2-1.[AWS] - [CloudTrail] - [Insights]



感想

よほど安定している本番環境などにはよさどうだが検証・開発環境などのよく操作される環境では誤検知が多そう。