S3 バケットの ACL ミスコンフィグで 25万人分の PII が漏洩:Rockerbox で発生したインシデントとは?

Rockerbox Data Leak – 245,949 User Records Exposed Including SSNs and Driver’s Licenses

2025/07/11 CyberSecurityNews — 2025年7月の初旬に、Rockerbox における情報漏洩が、脅威インテリジェンスのレーダーに急浮上した。パブリックなインターネット上でインデックス化されている、暗号化されていない 286.9 GB のクラウド・リポジトリが発見されたが、そこには極めて機密性の高い 24万5,949件の記録が含まれていたという。この調査により判明したのは、テキサス州ダラスに拠点を置く、税額控除コンサルタント企業 Rockerbox に、一連のデータが帰属することだ。同社は、全米の雇用主を対象にサービスを提供している企業である。問題のリポジトリ内には、運転免許証/DD214軍歴証明書/給与税関連書類/平文の社会保障番号 (SSN) などが含まれており、単なる HTTP GET リクエストで、誰もが容易に取得できる状態にあったという。

この不正な公開が報告された数時間後に、同社はアクセスを遮断したが、露出から遮断までのフォレンジックな時間枠は不明であり、その間にクローラやクレデンシャル・スタッフィング・スクリプトによる、データの抽出が行われた可能性は否定できない。

さらなる懸念点は、これらの記録を悪用する、攻撃者たちの手口である。大量の PII (個人識別情報) を悪用する攻撃者は、実在する SSN/住所/雇用履歴などの組み合わせにより、マネーミュール用の合成 ID を生成できる。このような ID が、信用枠の開設や不正な税還付申請に利用されると、簡易なKYC (顧客確認) 検査がバイパスされる。

VPNMentor のアナリストたちによると、ディレクトリ構造自体が情報を漏洩していたという。それぞれのファイル・パスには、雇用主名/申請者の姓名/数値トークン/PDFフォーム番号などが埋め込まれており、ソーシャル・エンジニアリングを展開する攻撃者にとって、偵察マップとなり得る構造であった。

さらに悪いことに、一部のディレクトリではダイレクトなダウンロードが許可される一方で、他のフォルダは 403 エラーが返されるという、ACL (Access Control List) の設定が一貫していない状態にあり、高度な攻撃者がクラウド環境全体への足掛かりとして悪用する、典型的パターンを呈していた。

Rockerbox のサービス・スタックには。マルウェア・ドロッパーの兆候は見られなかったが、このインシデントが象徴するのは、ミスコンフィグされたオブジェクト・ストレージが、マルウェアの着地ポイントとなり得るという、現代的な感染ベクターのあり様である。それにより、悪意のメール・ペイロードを必要とすることなく、感染が成立していく可能性が生じる。

Identification documents that were stored in the database (Source – VPNMentor)

S3 パブリック・エンドポイントに対して、脅威アクターたちは一般的な偵察ボットを仕向けるだけで、豊富な個人情報の種を収穫できる。このような情報が悪用される形態としては、クレデンシャル・フィッシング/マクロ付き給与明細/多態的な税申告型トロイの木馬などが挙げられる。それらの手口は、単純なバイナリ実行ファイルだけを検査する、ゲートウェイ・フィルタをすり抜けていく。

S3バケットのミスコンフィグを突く攻撃

この漏洩インシデントの核心は、きわめて典型的な DevOps 上の見落としにある。S3 バケットの ACL が “Everyone” に対して、READ/LIST 権限を与えているため、認証を必要としないディレクトリ走査が可能になっていた。

このようなミスコンフィグを、自動スクリプトで悪用する攻撃者は、世界中の読み取り可能なバケットを列挙し、内容を採取し、価値の高い標的オブジェクトとして、外部へ流出させていく。

以下のような、簡素な Python クローラでも、そのプロセスを再現できる:

pythonCopyEditimport boto3, botocore, csv, datetime
s3 = boto3.client('s3', config=botocore.client.Config(signature_version='unsigned'))
bucket = 'rockerbox-public'
paginator = s3.get_paginator('list_objects_v2')
with open('loot-map.csv','w',newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['Key','Size(bytes)','LastModified'])
    for page in paginator.paginate(Bucket=bucket):
        for obj in page.get('Contents', []):
            writer.writerow([obj['Key'], obj['Size'], obj['LastModified']])
            if obj['Key'].lower().endswith('.pdf'):
                s3.download_file(bucket, obj['Key'], obj['Key'])

この CSV 出力では、予測可能なファイル命名規則が示され、自動ターゲティングの容易さを裏付けている。

Exposed data (Source – VPNMentor)

目的の PDF ファイルを取得した攻撃者は、プレーン・テキストのメタデータを解析して、さらなる侵害へと結びつけることが可能になる。たとえば、WOTC 受理通知書と雇用主の EIN を関連付けることで、州の労働機関を装うかたちでの、フィッシング誘導の精度を高められる。

ACL SettingReal-World EffectExploit Potential
Everyone: READAnonymous listing & downloadFull bulk exfiltration
AuthenticatedUsers: WRITEAny AWS user uploads objectsMalware seeding via rogue files
BucketPolicy: Allow *Overrides IAM controlsLateral cloud movement

この問題に対する、適切な緩和策として求められるのは、”deny-all, allow-by-exception” を基本とするポリシーの徹底である。セキュリティ・チームとして義務化すべきは、S3 ACL スキャンを CI/CD パイプラインに組み込み、オブジェクト単位のラベルと連動した KMS キーによる暗号化である。それにより、将来においてパブリック ACL が再設定されたとしても情報漏洩は防げる。

さらに、AWS Config Rules や CloudCustodian などの監視ツールにより、パブリック・アクセス状態への遷移を、リアルタイムで検出/遮断する体制を整えるべきだ。

このインシデントを受けた Rockerbox にとって必要なことは、再発の防止だけに留まらず、FTC Safeguards Rule や、各州の情報漏洩通知法への対応である。このインシデントが示すのは、一件のミスコンフィグが、高度なマルウェア・キャンペーンと同等の規模と影響力を持ち得ることである。