ソース:
訳:
この記事では、私がどのようにして重大な脆弱性を発見し、サイバー攻撃者によって悪用され、データ侵害につながる可能性のある構成ミスから求職者のデータを保護したのかについて説明を。
最初の発見:
Web サイトにアクセスしたため、脆弱性の発見段階は非常に興味深いものでした Oil India Limited の 私は求職者として。
オイル・インディア・リミテッドは最近、さまざまな技術職の求人を発表したので、試験のための受験カードをダウンロードするためにサイトにアクセスし。
ダウンロード プロセス中に突然、ドキュメントがアマゾン ウェブ サービス (AWS) S3 バケットから提供されていることに気づいて。
最初に別のディレクトリにアクセスしてみましたが、うまくいかず。
ただし、S3 バケットの URL に直接アクセスすると、ページにファイルがリストされていることに気付き。
表示されたファイルの 1 つにアクセスしようとしましたが、成功し。
バケットの内容にアクセスすると、バケットがパブリックにアクセスできるように設定されていることがわかって。
の Amazon AWS Bug Bounty プログラム最近、 Bugcrowd (現在は HackerOne に移行) からプライベートな招待状を受け取り、いくつかのテストを実施しており、プライベート 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
(ブール値)リクエストに署名しないでください。 この引数が指定された場合、資格情報はロードされません。前提条件 :
取り付け後、完全に取り付けられているか確認して。
アカウントを作成し そのためには、ここで 、詳細を入力してコンソールにサインインし。
3. アクセスキーの取得
サインインした後、 https://console.aws.amazon.com/iam/ に移動し、[ユーザー] をクリックして。
- ユーザーを作成
- アクセスキーの作成
5. 脆弱な S3 バケットの確認
これで、試行できるコマンド/操作がほとんどなくなりました。
Testing Phase:
Read File:
設定ミスにより、攻撃者は S3 バケットの内容にアクセスできますが、これはユーザーの個人データやドキュメントなどの機密コンテンツにとって非常に危険です。 攻撃者はこのデータをすべて抽出し、データ侵害を引き起こす可能性があります。
再現する手順:
1. S3 バケット URL を取得し: https://edumedias.s3.amazonaws.com
2. Web ブラウザまたはコマンドライン ツール AWS CLI を使用して URL にアクセスし。
S3 バケットのコンテンツには認証を必要とせずにアクセスできることがわかり。
Command:
Request :
Response :
インパクト:
この脆弱性の影響は深刻で、機密データが不正に開示される可能性があります。
攻撃者は、公開されている S3 バケットにアクセスすることで、機密情報、個人を特定できる情報 (PII)、求職者や従業員の文書を取得し、悪用する可能性があります。
機密データの漏洩:
Proof of Concept (POC):
Remedition:
S3 バケットに機密コンテンツが含まれている場合は、パブリック アクセスを決して許可しないで。
がオンになっていることを確認し [すべてのパブリック アクセスをブロック] 。
ほなほな。