AWSのS3の意図せぬ情報漏えいをCSPMで防止する
こんにちは、大元です。
今回はAWSのセキュリテイインシデントでも注目度の高い、S3のアクセス権限ミスによる意図せぬ情報漏えいをCSPMを利用して、防止出来るか?を試してみたいと思います。
S3の情報漏えい自体はニュースも非常に多く報道されているため、割愛させて頂きます。
■解決したい課題
S3のアクセス権限ミスによる意図せぬ情報漏えいを検出し、自動的に修復したい。
■利用するツール
AWSのS3の情報漏えい対策として利用するソリューションは、以下の通りです。
・CSPM
McAfee社製CSPMのMvision Cloud for CSPM
検証時点のバージョン : v5.4.1
・AWS
■MVC for CSPMの設定
MVC for CSPMには、脆弱な設定になっているAWS用の設定監査ポリシーがv5.4.1時点で348個準備されています。
このうちS3に関する設定を監査するポリシーは10個準備されています。
今回はアクセス権限が全世界に向けて公開されてしまっているS3を検出する監査ポリシーを利用してみます。
1) ポリシーテンプレートにてS3用の監査ポリシーを検索し「Create Policy」をクリックします。
2) Configuration Auditにて、先程テンプレートから作成した監査ポリシーの内容を確認します。
Bucket Permissionsの箇所で、S3のACLが「Read」または「READ_ACP」となっている場合に、ポリシー違反となる設定であることが読み取れます。
デフォルトの設定ではここまでですが、今回は更に「ポリシー違反が検出された場合に、自動的に修正する」機能も有効化してみましょう。
そのためには、Responsesの「Edit」をクリックして、「Remove public read access」を指定します。
設定が正しく登録されたことを確認して「Done」をクリックします。
3) ポリシーを追加しただけでは設定監査は有効化されませんので、作成した監査ポリシーを選択して「Activate」します。これで、「S3のアクセス権限ミスによる意図せぬ情報漏えい」を検出及び自動修正出来るようになりました。
■AWS側でS3のACLを変更する
MVC for AWSが正しく動作するかを確認するために、AWSにて全世界に向けてアクセス権限を許可する設定のS3を作成します。
AWSのS3のACLの設定にて「全員」に対するアクセス許可の「リスト」と「読み込み」にチェックを入れます。これでこのS3バケットにはAWSへのアクセス権限の有無に関わらずアクセス出来る状態になりました。
検証の準備が出来ましたので、MVCが設定を検出するまで待機します。
■MVC側での検出・修正状況を確認する
MVCでは連携しているAWSのユーザアクティビティを確認することが可能です。
ユーザアクティビティから、10:33分にユーザによりS3のACLが変更され、その後MVCによって11:17分に修正されたことがわかります。
AWS側でS3バケットのACLがどうなっているかも確認してみましょう。
先程設定したパブリックアクセスの「リスト」と「書き込み」のチェックが外れていることが確認出来ました。
これで、このS3バケットはインターネットからの不特定多数のユーザからは参照不可となりました。
MVC for CSPMを用いれば、「S3のアクセス権限ミスによる意図せぬ情報漏えいを検出し、自動的に修復したい。」といった課題に対応可能であることが確認出来ました。