「#BugBounty — AWS S3 added to my “Bucket” list!」からBroken Access Controlを学ぶ

ソース:

infosecwriteups.com

脆弱性:Broken Access Control

 

訳:

100 万ドル規模の Instagram バグ セキュリティ研究者のウェス・ワインバーグInstagram 上のすべての画像とアカウントにアクセスできるようにしたことを覚えているかもしれません

これはInstagramのS3バケットにアクセスが出来たらからこそ可能であって、それはその企業がソースコードからイメージまで全てを保管していた場所で。

このブログでは、「AWS ストレージ バケットの構成を誤ると、どのように大きなセキュリティ リスクが生じる可能性があるか」について説明し

 

最近、バグハンティング中に、インドの電子商取引会社の AWS S3 バケットが誤って設定されていることに気づき。
これにより、S3 バケットへの完全なアクセスが許可され、ファイルのダウンロード、アップロード、上書きが可能になり。
これをさらに深く掘り下げて、どのようにしてそうすることができたのかを見てみましょう。

Web サイトのセキュリティ上の脆弱性を探しているときに、ユーザーが関連する求人に応募して履歴書をアップロードできるキャリア ページを見つけ。
テストを開始し、エンドポイントを見つけました (会社の名前を xyz とします)。

 

https://xyz.s3.amazonaws.com/career%2Ftest.pdf”

 

ACL 制限は設定されておらず、非認証ユーザーは任意のファイルに簡単にアクセスでき、以下はcurlリクエストで。

 

curl -XGET ‘https://xyz.s3.amazonaws.com/career/test.pdf'

 

応答は test.pdf の内容でした。 同様に、S3 バケットで「PUT」メソッドが有効になっており、任意のファイルを S3 バケットに簡単に書き込むことができ、パブリックに書き込み可能であることがわかり。

 

curl -XPUT -d 'HACKED' ' https://xyz.s3.amazonaws.com/career/test.pdf'

 

ファイル名に対してブルートフォース攻撃を実行したところ、他のユーザーの履歴書の内容を読み取ることができ。 :)
さて、これを 1 つ上のレベルに引き上げる必要があり。

次の目標は、S3 バケット上で利用可能なすべてのファイルをリストダウンして読み取ることでした。
S3コマンドラインに接続し、次のコマンドを実行し。

 

“ root@logicbomb~# aws s3 ls s3://xyz.s3.amazonaws.com

 

そして驚くべきことではありませんが、完全な s3 バケットにアクセスでき。
ユーザーのすべての履歴書/履歴書 (さらに機密データとディレクトリもありました) はパブリックにアクセスでき、読み取り可能でした :) さらにいくつかのコマンドを試し。

 

root@logicbomb:~# aws s3 rm s3://xyz.s3.amazonaws.com/career/test.pdf

 

delete: s3://xyz.s3.amazonaws.com/career/test.pdf

 

ファイルを削除することもでき。

 

結論として、S3 バケットの構成が誤っていると、組織は機密データを漏洩する可能性があり。

 

軽減策 — S3 バケットとその内容をすぐに確認して、意図しないオブジェクトをユーザーが利用できるようにしていないことを確認することをお勧めします。
参考までに、以下のリンクをご覧ください。

 

cloudacademy.com

 

ほなほな。