[アップデート] Amazon GuardDuty で S3 への不審なアクティビティを脅威検出できるようになりました!
AWS コンソールを見ていたところ Amazon GuardDuty が S3 データアクセスイベントの脅威検出に対応していました。
まだ公式ドキュメント等が更新されていないようで、これ以上の情報がありません。。ひとまず「速報」としてシェアいたします。
2020.08.01
・公式ブログが公開されましたので追記しました
あわせて、公式ドキュメントも更新されています。
何がうれしいのか
これまで S3 データアクセスに対する脅威検出は Amazon Macie を利用する必要がありましたが、旧バージョンの Amazon Macie(現在の Amazon Macie Classic)が利用できるリージョンはバージニアとオレゴンのみでした。
また、先日 Amazon Macie は新バージョンになり東京リージョンで GA されていますが、新バージョンの Amazon Macie では Amazon Macie Classic でサポートされていた S3 データアクセスイベント(CloudTrail)に対する脅威検出機能は含まれていませんでした。
Amazon Macie のブログでさらっと紹介されていた、以下の部分が今回のアップデートのようですね!
The anomaly detection features monitoring S3 data access activity previously available in Macie are now in private beta as part of Amazon GuardDuty, and have been enhanced to include deeper capabilities to protect your data in S3.
で、何ができるの?
冒頭の管理コンソールのメッセージを要約すると、S3 保護機能ではアカウント内のすべてのバケットのデータアクセスイベントを継続的に監視することで、以下のような悪意のある不審なアクティビティを検出することができます。
- Tor ノードや異常なジオロケーションからの S3 データへのアクセス
- バケットを公開する API コール
- S3 ブロックパブリックアクセスなどの無効化
- 誤った S3 バケットのパーミッションを発見しようとする API コール
ブロックパブリックアクセスの無効化は、以前から Policy:IAMUser/S3BlockPublicAccessDisabled
という検出項目で提供されていましたが、2 ヶ月ほどまでに Policy:S3/BucketBlockPublicAccessDisabled
に変更されているようです。
検出タイプ
2020.08.01
・検出タイプを追記しました
今回のアップデートで追加された S3 保護のための検出タイプは、以下のとおりです。
検出タイプ | 説明 |
---|---|
Discovery:S3/BucketEnumeration.Unusual | IAMエンティティがネットワーク内のS3バケットを検出するために使用されるS3 APIを呼び出し |
Discovery:S3/MaliciousIPCaller.Custom | カスタムの脅威リストのIPアドレスからS3 APIを呼び出し |
Discovery:S3/TorIPCaller | TorノードのIPアドレスからS3 APIを呼び出し |
Exfiltration:S3/ObjectRead.Unusual | IAMエンティティが不審な方法でS3 APIを呼び出し |
Impact:S3/PermissionsModification.Unusual | IAMエンティティがAPIを呼び出して、1つ以上のS3リソースの権限を変更した |
Impact:S3/ObjectDelete.Unusual | IAMがS3バケット内のデータを削除するために使用したAPIを呼び出し |
PenTest:S3/KaliLinux | Kali LinuxマシンからS3 APIを呼び出し |
PenTest:S3/ParrotLinux | Parrot Security LinuxマシンからS3 APIを呼び出し |
PenTest:S3/PentooLinux | Pentoo LinuxマシンからS3 APIを呼び出し |
Policy:S3/AccountBlockPublicAccessDisabled | IAMエンティティがアカウントのS3ブロックパブリックアクセスを無効にするために使用されるAPIを呼び出し |
(既存)Policy:S3/BucketBlockPublicAccessDisabled | IAMエンティティがバケット上のS3ブロックのパブリックアクセスを無効にするために使用されるAPIを呼び出し |
Policy:S3/BucketAnonymousAccessGranted | IAMプリンシパルがバケットポリシーまたはACLを変更することで、インターネットへのS3バケットへのアクセスを許可した |
Policy:S3/BucketPublicAccessGranted | IAMプリンシパルがバケットポリシーまたはACLを変更することで、すべてのAWSユーザーにS3バケットへのパブリックアクセスを許可した |
Stealth:S3/ServerAccessLoggingDisabled | バケットに対してS3サーバーのアクセスログが無効になっていた |
UnauthorizedAccess:S3/MaliciousIPCaller.Custom | カスタムの脅威リストのIPアドレスからS3 APIが起動された |
UnauthorizedAccess:S3/TorIPCaller | TorノードのIPアドレスからS3 APIを呼び出し |
やってみる
まだ詳細情報がありませんが、とりあえず試してみましょう。
S3 保護
GuardDuty のコンソールから [S3 保護] を開きます。最初は以下のように 「このアカウントでは S3 保護が有効になっていません」と表示されていますので 有効化
をクリックします。
(まだ価格設定などが更新されていないため不明ですが、30 日間の無料トライアルという言葉を信じて有効化しました)
続いて S3 保護を有効化
をクリックします。
設定はこれだけのようですね。
今回のアカウントでは既に GuardDuty が有効であったため、S3 保護を有効化する必要がありましたが、今後は新たに GuardDuty を有効化する際はデフォルトで S3 保護が有効になっています。100万イベントあたり $1.04
の課金が発生しますので、もし、S3 保護を利用したくない場合は無効化が必要となります。
ブロックパブリックアクセスの無効化
ブロックパブリックアクセスを設定している S3 バケットの設定をオフにしてみると、Policy:S3/BucketBlockPublicAccessDisabled
として検出されました。これは従来の Policy:IAMUser/S3BlockPublicAccessDisabled
がリネームされたものですね。
バケットをパブリック公開
1 つのバケットをパブリック公開できるようにバケットポリシーを書き換えてみると、 Policy:S3/BucketAnonymousAccessGranted
として検出されました。
異常アクセス検出
個人的に一番試したかった S3 への異常アクセス検出ですが、執筆時点ではうまく検出できていません。有効化して直ぐだから判断できないのか、個別にオブジェクトレベルのロギング設定が必要なのかなど、設定方法等が公式ドキュメントに公開されましたら改めて検証、追記したいと思います。
2020.08.01
・ユーザー側でのログ設定は不要であることを追記しました
公式ブログによると、S3 保護によるアクセス分析の利用においてユーザー側でオブジェクトレベルのロギング設定をする必要ない!とのことです。VPC フローログなど同様ですね。これはありがたい!
In this way, you don’t need to manually enable or configure S3 data event logging in AWS CloudTrail to take advantage of this new capability.
Tor Browser で AWS コンソールにログインし、S3 バケットの操作を行ったところ Discovery:S3/TorIPCaller
として検出されることが確認できました!
料金
執筆時点において、まだ価格ページが更新されていないので、どのような料金設定か判りませんが、[使用状況] をみると、[S3 データイベント] として別項目が設けられているので、従来と異なる料金設定となりそうですね。
2020.08.01
・価格表を追記しました
以下、東京リージョンでの価格です。
AWS CloudTrail S3データイベント分析 | 料金 |
---|---|
最初の5億イベント/月 | 100万イベントあたり$1.04 |
次の45億イベント/月 | 100万イベントあたり$0.52 |
50億以上のイベント/月 | 100万イベントあたり$0.26 |
さいごに
まだ価格や設定方法等を含めた情報が公開されていないので、あまり詳細な検証が出来ませんでしたが、ひとまず速報ということでご紹介しました!
これまで S3 の不正アクセス検出をしたい、という相談はたくさんいただいていたので、このアップデートは大注目しています!公式の追加情報を待ちましょう!
以上!大阪オフィスの丸毛(@marumo1981)でした!