AWS S3 Bucket Misconfiguration Exposes PII and Documents of Job Seekers から学ぶ

ソース:

infosecwriteups.com

脆弱性AWS S3

 

訳:

この記事では、私がどのようにして重大な脆弱性を発見し、サイバー攻撃者によって悪用され、データ侵害につながる可能性のある構成ミスから求職者のデータを保護したのかについて説明を。 

最初の発見:

Web サイトにアクセスしたため、脆弱性の発見段階は非常に興味深いものでした Oil India Limited の 私は求職者として。
オイル・インディア・リミテッドは最近、さまざまな技術職の求人を発表したので、試験のための受験カードをダウンロードするためにサイトにアクセスし。
ダウンロード プロセス中に突然、ドキュメントがアマゾン ウェブ サービス (AWS) S3 バケットから提供されていることに気づいて。
最初に別のディレクトリにアクセスしてみましたが、うまくいかず。
ただし、S3 バケットの URL に直接アクセスすると、ページにファイルがリストされていることに気付き。
表示されたファイルの 1 つにアクセスしようとしましたが、成功し。

バケットの内容にアクセスすると、バケットがパブリックにアクセスできるように設定されていることがわかって。
Amazon AWS Bug Bounty プログラム最近、 Bugcrowd (現在は HackerOne に移行) からプライベートな招待状を受け取り、いくつかのテストを実施しており、プライベート S3 バケットがどのようなものであるべきかを知って。

 

エデュメディア AWS S3 バケット
AWSとは何ですか ?AWSAmazon Web Services の略で、コンピューティング能力、データベース ストレージ、コンテンツ配信、その他の機能を提供する安全なクラウド サービス プラットフォームで。Amazon S3とは何ですか?Amazon S3Amazon Simple Storage Service の略で、業界をリードするスケーラビリティ、データ可用性、セキュリティ、パフォーマンスを提供するオブジェクト ストレージ サービスで。次に、理解を深めるために AWS S3 ドキュメントを読み始め。ドキュメント: https://awscli.amazonaws.com/v2/documentation/api/latest/reference/s3/index.html AWS S3 バケットの構成ミスに関する記事もたくさん見つかりました。 これらを読んだ後、テスト用の環境を準備し。 

テクニカル分析:

ACL

Amazon S3 は、事前定義されたバケットまたはオブジェクトのメンバーにアクセス許可を付与する場合、バケットまたはオブジェクト ACL をパブリックと見なし。 AllUsersまたは AuthenticatedUsersグループ。

バケットポリシー

バケットポリシーを評価するとき、Amazon S3 はポリシーがパブリックであると想定することから始め。
次に、ポリシーを評価して、非公開として適格かどうかを判断し。
非パブリックと見なされるには、バケットポリシーは、次の 1 つ以上の固定値 (ワイルドカードまたは AWS Identity and Access Management ポリシー変数を含まない値) へのアクセスのみを許可する必要があって。
  • An AWS principal, user, role, or service principal (e.g. aws:PrincipalOrgID)
  • A set of Classless Inter-Domain Routings (CIDRs), using aws:SourceIp.
  • aws:SourceArn
  • aws:SourceVpc
  • aws:SourceVpce
  • aws:SourceOwner
  • aws:SourceAccount
  • s3:x-amz-server-side-encryption-aws-kms-key-id
  • aws:userid, outside the pattern "AROLEID:*"
  • s3:DataAccessPointArn
  • s3:DataAccessPointAccount

Example : Public bucket policies

 

これらのルールでは、次のポリシー例はパブリックとみなされ。

 

 

便利な AWS CLI コマンド

ls

プレフィックスまたはすべての S3 バケットの下にある S3 オブジェクトと共通プレフィックスをリストします。 このコマンドでは、-output 引数と -no-paginate 引数は無視されることに注意してください。

CP

ローカル ファイルまたは S3 オブジェクトをローカルまたは S3 内の別の場所にコピーします。

MV

ローカル ファイルまたは S3 オブジェクトをローカルまたは S3 内の別の場所に移動します。 の mvコマンドは、ソース オブジェクトまたはファイルを指定された宛先にコピーし、ソース オブジェクトまたはファイルを削除します。

オプション

--no-sign-request(ブール値)リクエストに署名しないでください。 この引数が指定された場合、資格情報はロードされません。

前提条件 :

  1. AWS コマンドラインインターフェイスのインストール

次に、AWS CLI をインストールする必要があります。

 

 

取り付け後、完全に取り付けられているか確認して。

 

 

2. Amazon AWS アカウントの作成

アカウントを作成し そのためには、ここで 、詳細を入力してコンソールにサインインし。

3. アクセスキーの取得
サインインした後、 https://console.aws.amazon.com/iam/ に移動し、[ユーザー] をクリックして。

 

 

  • ユーザーを作成

 

  • アクセスキーの作成

 

4.AWS CLIの設定
端末に移動して入力し

 

5. 脆弱な S3 バケットの確認

 

 

これで、試行できるコマンド/操作がほとんどなくなりました。

 

Testing Phase:

Read File:

 

aws-cli 1

aws-cli 2

aws-cli 3

aws-cli 4

aws-cli 5

設定ミスにより、攻撃者は S3 バケットの内容にアクセスできますが、これはユーザーの個人データやドキュメントなどの機密コンテンツにとって非常に危険です。 攻撃者はこのデータをすべて抽出し、データ侵害を引き起こす可能性があります。

再現する手順:

1. S3 バケット URL を取得し: https://edumedias.s3.amazonaws.com

2. Web ブラウザまたはコマンドライン ツール AWS CLI を使用して URL にアクセスし。

S3 バケットのコンテンツには認証を必要とせずにアクセスできることがわかり。

Command:

Request

 

Response

インパクト:

この脆弱性の影響は深刻で、機密データが不正に開示される可能性があります。

攻撃者は、公開されている S3 バケットにアクセスすることで、機密情報、個人を特定できる情報 (PII)、求職者や従業員の文書を取得し、悪用する可能性があります。

機密データの漏洩:

 

 

Proof of Concept (POC):

Proof of Concept #1

Attendance Form, POC #2

Marksheet, POC #3

Remedition:

S3 バケットに機密コンテンツが含まれている場合は、パブリック アクセスを決して許可しないで。
がオンになっていることを確認し [すべてのパブリック アクセスをブロック]

 

 

ほなほな。