AWSサポートからの連絡
AWSからCloudWatchで単日3,000~4,000$ほど計上している。
その他のサービスは目立って不審な点なし。
と連絡をお客様がもらい調査及び修正のお仕事の依頼がありました。
AWSアカウントにログインし状況を確認
まずは請求書情報を確認から始めます。
2020年8月の概算合計が$25,899.92となっている…
2020年7月は$478.34だったので桁がぜんぜん違う状態…
AWS請求情報の確認
前月からの料金の差分としては、
CloudWatch->US East (N. Virginia)-> AmazonCloudWatch PutLogEvents
45,739.644 GBで$22,869.82
Lambda-> US East (N. Virginia) ->AWS Lambda - Total Compute - US East (Northern Virginia)
5,875,597.125 secondsで$197.89
Lambda-> US East (N. Virginia) ->AWS Lambda - Total Requests - US East (Northern Virginia)
499,810,573.000 Requestsで$99.96
これはやばい…
CloudTrailでAWSアカウントのアクティビティのログを確認
CreateLogStreamをクリックして遷移して確認すると、
発信元IPアドレスはアメリカの複数のIPからリクエストがあった。
このAWSのシステムはどうやら
Route53->CloudFront->S3
というような一般的なサイトになっているようです。
ソースの確認
Lambda Functionの中身を確認するとNode.jsでBasic認証をかけているようだ。
CloudFront経由でLambdaのBasic認証を確認してCloudWatchに書き込む流れになっており、
大量なアクセスをBasic認証が弾いているもののログの書き込みで大量な金額になってしまったのだろう…
ちなみに添付ファイル100MB超えの添付ファイル付きでリクエストされていた。
ちなみにCloudFrontのWAFは設定されていなかった。
WAFの対応
取り急ぎの対応としてはAWS WAFで海外からのアクセスを防ぐ。
Geo (地理的) 一致条件の使用
https://docs.aws.amazon.com/ja_jp/waf/latest/developerguide/classic-web-acl-geo-conditions.html
※日本からの不正アクセスもあるかもしれないので恒久対応は考えなくては…
Basic認証をかけるくらいのサイトであればCloudFront使わないでEC2に移動したほうがいい。
調査完了・報告
お客様に上記の状態を報告しAWSのサポートを受けるように連絡
1. 私の AWS アカウントが侵害を受けた可能性があります(対処法)
https://aws.amazon.com/jp/premiumsupport/knowledge-center/potential-account-compromise/2.コンソールからサポートケースを作成し、AWSサポートへ状況をご報告
https://docs.aws.amazon.com/ja_jp/awssupport/latest/user/getting-started.html
まとめ
CloudWatchのPutLogEventsが他のサービスに比べて高かった。
CloudFrontからLambdaは気をつけないといけないですね。
不正アクセスではあるがWAFの未設定や監視不足ではあるので請求された金額はどうなるのか…