Amazon GuardDuty Malware Protection for Amazon S3とは
Amazon GuardDuty Malware Protection for Amazon S3はS3にアップロードされたファイルのマルウエアなどの脅威の有無をチェックする機能です。
実際に機能を有効にして内容をみてみましょう。
使ってみる
ファイルアップロード用のバケット作成
S3のコンソール等でファイルアップロード用のバケット作成しましょう。
Amazon GuardDuty Malware Protection for Amazon S3有効化
「GuardDuty」コンソール→「S3のMalware Protection」を押下します。
「S3のMalware Protection」のトップ画面に遷移します。
「保護されたバケット」欄が初期では空であることを確認し、「有効にする」を押下します。
「S3バケット」に先に作成したファイルアップロード用のバケットを選択します。
プレフィックス、スキャンされたオブジェクトにタグを付ける(オブジェクトにタグを付ける)はデフォルトのままとします。
サービスアクセスのサービスロールについてもデフォルトで新しいサービスロールを作成して使用する設定になっているため、デフォルトのままとします。
「有効にする」を押下します。
「S3のMalware Protection」のトップ画面に遷移したことを確認します。
通知設定
Amazon EventBridgeと連携すると脅威を検出した際にAWSの他サービスと連携できます。
今回は、イベントパターンを以下のように設定し、メールアドレスを設定したSNSトピックをターゲットに設定します。
{ "source": ["aws.guardduty"], "detail-type": ["GuardDuty Malware Protection Object Scan Result"], "detail": { "scanResultDetails": { "scanResultStatus": ["THREATS_FOUND"] } } }
動作確認
AWS CLI等を使用し、ファイルアップロード用のバケットにファイルをアップロードします。
今回は脅威を検知させたいので、EICARテストファイルを使用します。
aws s3 cp eicar.com.txt s3://${S3バケット名}
ファイルアップロード用のバケットにアップロードされたファイルにタグが付与されたことを確認します。
Amazon EventBridgeと連携も行いましたので、メール通知されたことも確認できます。
通知をカスタマイズする
メール通知はデフォルトの状態だと見づらいので入力トランスフォーマーを使って通知をカスタマイズしてみます。
Amazon EventBridgeの設定に入力トランスフォーマーとして以下の設定を加えます。
- 入力パス
{ "Account": "$.account", "Time": "$.time", "bucketName": "$.detail.s3ObjectDetails.bucketName", "objectKey": "$.detail.s3ObjectDetails.objectKey", "region": "$.region", "scanResultDetails": "$.detail.scanResultDetails.scanResultStatus", "threats_name": "$.detail.scanResultDetails.threats[0].name" }
- 入力テンプレート
"GuardDuty は、スキャンされたオブジェクトに関連する潜在的な脅威を検出しました。" "Account ID : <Account>" "発生時間 : <Time> " "バケット名 : <bucketName>" "ファイル名 : <objectKey>" "検出理由 : <scanResultDetails>" "検出内容 : <threats_name>"
カスタマイズ後の動作確認
再度ファイルをアップロードします。
通知内容が見やすくなったことが確認できます。
おわりに
Amazon GuardDuty Malware Protection for Amazon S3は無料利用枠もあり、低コストで利用することができるので、外部からのファイルアップロードがあるケースでは活用していきましょう。