見落としているかもしれないAmazon S3の重大な脆弱性3つ
2020年5月21日
0 分で読めます編集者注
このブログ記事は、もともとfugue.coに掲載されていました。Fugueは2022年にSnykの一員となり、Snyk IaCの重要な構成要素となっています。
Amazon Web Services(AWS)に関わるデータ侵害が発生した場合、その多くはオブジェクトストレージサービスのAmazon S3が関係しています。S3は非常に広く利用されています。クラウドが何かを知る人もほとんどいなかった2006年に登場したS3は、高い拡張性と信頼性を備え、使いやすいサービスです。しかし、S3のセキュリティを適切に設定し、その状態を維持することは、今も多くのAWSユーザーを悩ませています。
15年近く利用されている人気のクラウドサービスなら想像できるように、S3には次々と機能が追加され、数多くの変更が加えられてきました。S3の機能が拡張されるにつれ、クラウドセキュリティポスチャ管理(CSPM)で考慮すべきセキュリティの階層も複雑になっています。
近日開催のCloud Security MasterclassでS3セキュリティの各階層を詳しく解説する前に(こちらから登録)、AWSユーザーが気付かないうちにS3のデータを危険にさらしてしまう、よくある3つのケースを簡単に見ていきましょう。
脆弱性1:コンピューティングリソースの一覧表示権限
攻撃者がクラウド環境に侵入すると、まず盗む価値のあるものがないか、状況を把握しようとします。残念ながら、AWSユーザーはEC2インスタンスやコンテナに一覧表示権限を付与していることがよくあります。付与されている権限によっては、攻撃者がアカウント内の他のAWSリソースや、それらにアクセスするために引き受けられるIAMロールを確認できてしまいます。
EC2インスタンスに一覧表示権限を付与する必要があるケースはほとんどありません。これを禁止するポリシーを適用すべきです。
脆弱性2:データ窃取の防止をIAMに過度に依存する
AWS Identity and Access Management(IAM)サービスは、あらゆるAWS環境においてセキュリティ上極めて重要なリソースと見なすべきです。IAMの設定には細心の注意を払い、変更があった場合は必ず通知を受け取るようにしましょう。
最小権限の原則に従ってIAMリソースを安全に設定していても、悪意ある攻撃者が保護を回避し、S3からデータを盗み出す方法はあります。IAMを適切に設定したからといって、S3バケットの設定をおろそかにしてよいわけではありません。
IAMの適切な設定だけに頼るのではなく、S3バケットポリシーを使ってバケット自体へのアクセスを制限しましょう。
脆弱性3:公開されていないS3バケットに公開オブジェクトが含まれている
S3のセキュリティについて考えるとき、まず思い浮かぶのは、S3バケットのパブリックアクセスが許可されているか、ブロックされているかでしょう。機密情報をS3バケットに保存するなら、パブリックアクセスを無効にするはずだと思うかもしれません。しかし、多くのAWSユーザーがこの点で誤りを犯しています。
「Screaming in the Cloud」ポッドキャストのホストであり、「Last Week in AWS」メールニュースレターを発行するCorey Quinn氏は、定期的にS3 Bucket Negligence Awardsを授与しています。AWSも、バケットでパブリックアクセスが許可されていることを知らせるアラートをコンソールに追加しています。
S3バケットへのパブリックアクセスを許可する正当な理由はあります(多くのWebサイトがS3でホストされています)が、ほとんどのS3バケットではパブリックアクセスを許可すべきではありません。まずはこの設定を確認しましょう。ただし、公開されていないS3バケットに公開オブジェクトを含めることは可能です。AWSの手順はこちらで確認できます。
しかし、この操作は誤って行われることがよくあります。その結果、本来は安全なS3バケット内の機密データが公開され、そこに保存したすべてのデータが安全だという誤った安心感につながります。
Amazon S3のセキュリティを適切に管理する
Amazon S3は非常に柔軟で使いやすい一方、セキュリティは複雑です。適切に設定するには、S3のセキュリティオプションの階層と、固有のクラウド利用ケースの全体像を深く理解する必要があります。
開発者のために設計されたIaCセキュリティ
Snykは、統合されたポリシー・アズ・コードエンジンにより、SDLCからクラウドでの実行時までInfrastructure as Codeを保護します。すべてのチームが安全に開発、デプロイ、運用できるよう支援します。


