web-dev-qa-db-ja.com

署名付きURLを通じてプライベートバケット名を公開するのは安全ではありませんか?

AWSはバケット内のオブジェクトに署名付きURLを提供します。

バックエンドでAWSに接続して、そのような署名付きURLを作成し、フロントエンドに送信できます

この署名されたURLを使用してJavaScript経由でputリクエストを作成し、それによってファイルをウェブページからバケットに直接アップロードするこの1つの使用例について説明します

https://medium.com/@khelif96/uploading-files-from-a-react-app-to-aws-s3-the-right-way-541dd6be689

しかし、署名されたURLにはバケット名が含まれていますが、バケットはプライベートです。つまり、許可された人だけがアクセスできます

しかし、署名されたURLを通じてプライベートバケット名を一般の人々に知らせることで、セキュリティを危険にさらしていますか?

ハッカーがバケット名を知った今、そのプライベートバケットにハッキングする手段を考案できる可能性はありますか?

もう1つ考えてみてください。そのようなWebページが監査を受けた場合、セキュリティへの脅威の可能性があるとしてフラグを立てることを誰かが知っている場合

2

tl/dr:バケットが一般公開されていない限り(つまり、読み取り/書き込みにアクセスキーが必要)、心配する必要はありません名前。従業員がおそらく知っていて、ハッカー/侵入テスターがバケット名のブルートフォース検索を日常的に実行しているため、非公開ではありません。また、「誰かがバケットをハッキングする方法を見つけた場合はどうなりますか?」 「CIAがすべてのコンピュータに悪意のあるファームウェアを組み込んだ場合はどうなりますか?」理論的には可能ですが、おそらく最大の懸念事項ではありません。

それはあなたが「プライベート」で何を意味するかによる。

実際にはプライベート

バケットに認証されていないユーザーからの読み取り/書き込み/アクセス権限がないことを意味している場合、署名されたURLでバケット名を公開することは重要ではありません。バケット名は機密データではないためです-キーはそうです。バケット名を非表示にしようとすることは、あいまいさによるセキュリティであり、この特定のケースではセキュリティはほとんど追加されません。署名付きURLを自由に使用してください。

単に隠された

バケットがパブリックユーザーにバケットの読み取り/書き込み/アクセスを許可していることを意味し、ユーザーがそうすることを妨げているのは、ユーザーがバケット名を知らないことだけである場合、はい、バケット名を明らかにすることは悪い考えです。もちろん、プライベート/機密データを含むバケットの場合、これはとにかくバケットを管理するためのひどい方法です。ハッカーと侵入テスターは、ブルートフォース検索を使用して、隠されたバケットを定期的に見つけます。それを簡単にするツールがあります。その結果、バケット内のデータをプライベートに保つ唯一の方法は、すべてのパブリックアクセスを拒否することです。

脅威モデリング

また、一部のハッカーがバケット名のみを知っているバケットをハッキングする方法を見つけた場合に備えて、バケット名を非表示にするかどうかも尋ねました。必要なのは 脅威モデル です。アプリケーションのすべての機能と同様に、すべてのセキュリティ対策には関連コスト(開発時間、起こりうる機能の損失、将来のメンテナンスコスト)があることを認識することが重要です。すべてのセキュリティ対策にもメリットがあります。結果として、何かが「安全」または「安全でない」という点が実際に存在することは決してありません。何かが「十分に安全」であるかどうかを判断するだけの問題であり、個々のビジネスは最終的に自分自身でそのポイントを見つける責任があります。始めるために、私はあなたが心配しているリスクに言及し、リストにいくつか追加します:

  1. 誰かがバケット名だけを知っているAmazonバケットをハッキングする方法を見つけたらどうなるでしょうか?
  2. AWSキーをコードリポジトリに保存しますか?従業員の1人がバケットのデータを盗むためにそれを使用するとどうなりますか?結局のところ、彼らはとにかくすべてをすでに知っています。
  3. 従業員の1人が署名付きURLなしでデータを利用できるようにしたいので、バケット全体を公開することに決め、プライベートデータも保存することを忘れた場合はどうなりますか?

個人的には、項目#1は私の懸念のリストの中で最低のものです。結局のところ、すべてのデータ侵害の50%のようなものは、(意図的かどうかにかかわらず)内部の従業員から始まります。バケット名だけを知っているAWSバケットをハッキングする方法を誰かが見つけた場合、それはhugeの取引になります。それは世界的な見出しを生成し、それが修正されるまでAmazonは24時間体制で人々に働きかけてもらいます。

さらに、バケット名を非公開にできると考えるのをやめるべきです。あなたは本当にできない。あなたの従業員はおそらくそれを知っていて、とにかく「ハッカー」と同じくらいリークを引き起こす可能性があります。さらに、バケットのブルートフォース検索を実行することは、ハッキングと侵入テストの両方の世界で非常に一般的な方法です。

バケット名は非公開ではありません。それは決してありません。それ以外のことを考えさせてはいけません。いずれにせよ、懸念される可能性のある事柄は無数にあり、それらすべてを修正する時間はありません。ビジネスにとって最も重要なものを決定し、それらの資産の潜在的なリスクに優先順位を付け、使用可能なリソースに従ってそれらに対処するために役立つ脅威モデリングプロセスが必要です。

5
Conor Mancone