HN 日本語サマリー

← 一覧へ戻る
セキュリティ

PingCap TiDB の情報漏洩

PingCap TiDB Leaks (fulcrumsec.vg)

409 pointsby swyx71 コメント

要約

セキュリティ企業 Fulcrum Security が、分散データベースを提供する PingCAP の TiDB Cloud から 10.6 TB のデータが漏洩したことを公表しました。漏洩したデータには、顧客の制御プレーン情報、API キー、SQL 文、接続ログ、財務データ、ソースコードなどが含まれており、PingCAP のセキュリティ対策の不備が指摘されています。特に、2022年には既にマルチテナント分離の脆弱性が社内セキュリティチームによって指摘されていたにも関わらず、対策が不十分だったことが明らかになっています。

全文翻訳

THE LEAKS

← FULCRUMSEC

PingCAP Inc. / TiDB Cloud • 分散データベース • 総流出量 10.6 TB • ステージ1リリース 200 GB


総流出量 10.6 TB • ファイル数 4,901,203 件 • 本番環境のコントロールプレーンの 6 時間ごとのエクスポート 88 回、検知されず • 約 50 の GCP ストレージバケット • 5億3380万行の BigQuery ウェアハウス • 1億80046社のテナント組織 • 40万3262件のユニークメールアドレス • 11万5308件のプレーンテキスト顧客 API キー(うち 42,612 件はアクティブ) • 2064万5574件の顧客 SQL ステートメント • 1億200万3766件のゲートウェイ接続 • 503万6738件の顧客サーバーIP • 37万7446件の Jira 課題 • 43万3928件の CRM 連絡先 • 92 GB のテナントタグ付き AWS コストデータ • 413 件のプライベートソースリポジトリ

本日、PingCAP の侵害を公表します。私たちは TiDB Cloud のコントロールプレーン全体、その請求および財務情報、GCP ストレージ情報、AWS コストと請求情報、Jira、CRM、分析データ、ソースコード、および顧客が製品に接続したすべての接続の 4 年間のログ(アプリケーションサーバーの IP アドレスを含む)を保持しています。

PingCAP は、オープンソース TiDB データベースのマネージドバージョンである TiDB Cloud を販売しています。銀行、ゲームスタジオ、E コマースプラットフォームは、本番ワークロードを委ねます。PingCAP は、共有マルチテナントプラットフォームでクラスターを運用しており、そのビジネス全体は、そうすることが安全でセキュアであるという主張に基づいています。この記事の残りは、それがどちらでもないという証拠です。

まず、彼らは自社のクラウドサービスに対する可視性がゼロであるように見えます。これは、私たちが侵害する企業では残念ながら標準的であり、高価な EDR に数百万ドルを投資しても、数百の S3 バケットが外部に流出するのを放置しています。しかし、これはクラウドプロバイダーです。AWS、GCP、Atlassian / Jira、Azure といった各クラウドサービスにおける大規模で明白な侵害と流出を検知できないというのは、ひどく、ひどく無責任なことです。私たちは最初の約 8 テラバイトの流出後も、定期的に補充しながら、約 2 か月間流出を続けました。さらに、彼らのリポジトリにコミットされた認証情報(GCP サービスアカウントキーと Azure サービスプリンシパル)を使用して、自社のコントロールプレーンデータベースのレプリケーションフィードをセットアップし、そのインフラストラクチャにそれを私たちに配信させました。9 月 8 日から 9 月 30 日までのキャンペーンの最後の 22 日間、6 時間ごとに、そのパイプラインは TiDB Cloud の運用の中核(テナント、ユーザー、API キー、クラスター認証情報、チェンジフィード、マイグレーション)のすべてのテーブルを忠実に再エクスポートし、外部にプッシュしました。88 回連続のエクスポートで、検知イベントは 1 件もありませんでした。最後の実行は 9 月 30 日 06:02 UTC でした。それに含まれていたコントロールプレーンデータは、ステージ1リリースに含まれています。


奪取したもの
  • コントロールプレーン。 metadb を完全にレプリケートしました:180,046 件のテナント組織、292,276 件のユーザーレコード(うち 166,108 件は実名)、403,262 件のユニークメールアドレス、388,861 件のプロジェクト、3,448,054 件のサーバーレスクラスター、16,299 件の専用クラスター、115,308 件のコンソール API キーペア(プレーンテキストで保存、うち 42,612 件はアクティブ。最新のものは 9 月 30 日 04:46 に発行されたもので、我々がタップを閉じる数時間前でした)、顧客のマイグレーションジョブからの 1,809 件の外部データベースエンドポイント(顧客の MySQL/Aurora ホストのルートおよび管理者アカウント)に加え、VPC ピアリングレコードから 290 件の顧客 AWS アカウント ID と 85 件の GCP プロジェクト ID。
  • 顧客自身の SQL。 SQL エディターと Chat2Query からキャプチャされた 20,645,574 件の生 SQL ステートメント。これには、数千のテナントのアプリケーションスキーマ、テーブルデザイン、ビジネスロジックが含まれ、組織、プロジェクト、クラスター ID でキー付けされています。あるステートメントは医療専門家のテーブル(usuario, nombre_usuario, contrasena)を作成し、別のステートメントはブラジルのクリニックの患者名簿を挿入します。これは、製品自体によってキャプチャされ、PingCAP のパイプラインによって私たちに送信された顧客データベースの内容です。
  • ターゲティングマップ。 ゲートウェイアクセスログは、データベース企業のインストールベースディレクトリです。各顧客の接続量、アプリサーバーの IP アドレス、クライアントプログラム(Rails 0.46M 接続、ProxySQL、MySQL Workbench、langgenius/dify)、クラスター ID が含まれています。TiDB Cloud の顧客へのさらなるアクセスを計画している者は、ここから始めます。23,651 件の日次ファイルすべてが 09_gateway_logs.tar.gz に含まれています。
  • 資金。 CUR コーパスと resource_tags_user_tenant を組み合わせることで、顧客ごとのコストサーブがスプレッドシート結合になります。57 か月の AWS 支出合計 $107,195,238.42、EDP 割引 -$10,362,705.51、プライベートレート -$8,829,018.11(リスト価格の約 47% オフ)、us-east-1 のクロス AZ 転送だけでも $16,509,714.87。財務 DB スナップショット(テナントごとの純料金、monthly_cloud_order、AR テーブル、880万行の dbaas_billing)と ARR ライターログを組み合わせると、TiDB Cloud の粗利益が、顧客名ごと、製品ファミリーごとに SQL クエリでわかります。
  • 商取引記録。 HubSpot:433,928 件の連絡先、191,187 社の企業、名目総額 $5億5200万のディール(Wetech $7470万、PayPay $4520万、Atlassian $2580万、SBI $2020万、AEON $1070万、TOPPAN $970万)。Stripe:8,428 件すべての有料テナント(livemode)、8,301 件のテナント ID が Stripe アカウントに結合されています。NetSuite の収益元帳は 584 社の顧客名が含まれています。AWS Marketplace:861 件の購入者住所、48,991 件のサブスクライバー契約。中国の元帳:総額 3億5310万円の 12,262 件の収益認識行、顧客には Bank of China、Ministry of Science and Technology、China Life が含まれます。
  • ソースコード。 413 件のリポジトリ。検証されていない X-ACCOUNT-USER-ID ヘッダーを信頼する請求エンジン。アカウントサービスでは、admin がテナント ID であり、なりすましがオーナーロールで組織チェックをバイパスします。共有暗号ライブラリ pkgv2:キープレフィックスから派生した IV(静的 IV)を持つ AES-CBC、単一のサーバーワイド SaltSecret でインスタンス化されています。プラットフォームに暗号化された顧客の下流データベースパスワードはすべて、プレーンテキストから 1 つの設定秘密で保護されています。
  • アイデンティティグラフ。 1億882万828イベントにわたる 1362万173件の GA4 デバイス識別子。ハッシュ化されたユーザー ID をメールアドレスと雇用主テナント ID に結合する cloud_users クロスウォーク(290,458 行)。ログインした ID とクッキーの追跡をリンクする 295万308行。3,552 件のフルネームプロファイルを含む Mixpanel エクスポート。PingCAP が購入した reo.dev 開発者インテリジェンスグラフからの 24,932 件の個人メールと LinkedIn および GitHub プロファイル(購入意欲でランク付けされた Tencent の 3,327 人の最もアクティブなエンジニア、Huawei の 2,726 人、ByteDance の 2,475 人)。

レコード内の顧客

テナント ID は匿名ではありません。PingCAP 自身の運用監査トレースがそれらをマッピングしています:

顧客テナント ID / 詳細
Booking.comtenant 1372813089189081313
Shopeetenant 1372813089191241283
CAPCOM CO., LTDtenant 1372813089188871292, TiDB v6.1.1, ap-northeast-1
Colopltenant 1326455380288475136, TiDB v6.1.0
TOPPAN INC.prod-1372813089204501289, aws-ap-northeast-1
Catalyst Softwareprod-1372813089188151289, aws-us-east-1
SB Payment Serviceprod-1372813089206331321, aws-ap-northeast-1

…さらに、同じ 42 組織のテーブルと、eda_service リポジトリに含まれる 94 エントリの請求辞書にも、Mercari、PayPay、Fujitsu、SoftBank、DMM、AEON、Square Enix、Konami、BANDAI NAMCO、Delhivery、Flipkart、Quincus、Nylas、Airbnb、Pinterest、Databricks、bitget、Pionex、DigiPlus、NFTscan、Baidu、SES-imagotag、Persona、Transsion、ZOZO、gumi、iret、Classmethod、Wetech、Atlassian、Cygames、SBI、LINE、Chainbase、PatSnap が含まれています。それらの VPC CIDR も含まれており、クラスターバージョンとエンドポイントホスト名も含まれています。サポートチケットに貼り付けられた不運な顧客については、認証情報も含まれています。


Jira にはすでに警告があった

PingCAP のセキュリティチームは、2022 年に自社製品のマルチテナント分離に何が問題だったかを正確に文書化していました。内部セキュリティトラッカーの SECURITY-22 には、彼らの言葉で次のように書かれています。

要約:「クラスターのルートパスワードは無条件にリセット可能」

「組織内のすべてのロール(オーナー、監査管理者、請求管理者、メンバーを含む)は、組織内のすべてのクラスターのルートパスワードを無条件にリセットできます。これにより、組織内のすべてのユーザーがクラスターのルートパスワードをリセットし、その後、ユーザーはルートとしてクラスターに接続し、クラスターの状態を変更し、クラスターデータにアクセスできるようになります。」

「クラスターのルートアカウントは非常に高い権限を持つため、これは重大なセキュリティリスクにつながります。」

私たちが侵入する 4 年前に、彼ら自身のセキュリティチームは、顧客組織のメンバー(請求のみのロールを含む)であれば、その組織内のすべてのクラスターをルートとして乗っ取ることができると文書化していました。チケットの日付は 2022-08 です。侵害は 2026 年 9 月まで続いていました。データベース企業です。


「サポートオペレーション」はクロステナント開示エンジンとして機能

PingCAP のエンジニアは、顧客の本番環境の認証情報を Jira チケットに貼り付けます。最もひどい 3 つのログはリリースにそのまま含まれており(02_customer_credential_logs)、チケット自体は 05_jira_issues に含まれています。

GTOC-5812、2023-02-01、チケット内コメント(流出時 LIVE):

AWS_ACCESS_KEY_ID=AKIAYM5Y2YXDRDJD2IOM
AWS_SECRET_ACCESS_KEY=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
aws s3 ls s3://pingcap-logs-pinterest/

APID-11182、添付ファイル 81543_tidb-log.txt、2025-05-02 に [email protected] によって投稿されたもの。TiDB BR バックアップ設定行(bucket:"cdx-crs-tidb-backup")内:

AKIA2VMQLYWL3LJEHQFC : D7kJLJ2qIcdrjHrusWh5VTygW82hWN1ILirDosS7

ARN arn:aws:iam::733131556247:user/DEVOPS — AdministratorAccess + AmazonS3FullAccess を 258 件のバケットに対して付与。これには cdx-exp-npci-vault-snapshot, cdx-dev-npci-los-loandoc, cdx-dev-pci-sftp, cdx-sit-npci-lgc-smarttax-cloudhsm, cdx-dev-crs-silverlake-misc-binaries が含まれます。これらのいずれも PingCAP のものではありませんでした。

APID-12036、サポートチケットに添付された 314 MB の顧客本番環境スロークエリログ(添付ファイル 106965、リリースに全文掲載)。UPDATE ステートメントには、顧客のユーザーごとの認証情報ストアが含まれています:8,027 件の異なる値 — 7,485 件の AWS STS セッションキーセット(ユーザーごとのサンドボックスリポジトリにスコープ)、345 件の GitHub ユーザーからサーバーへのトークン、192 件の AI プラットフォーム API キー(OpenAI、Anthropic、Gemini、ElevenLabs、xAI、OpenRouter)、1 件の AWS ルートキーペア、1 件の GitHub 個人アクセストークン(1,701 件のリポジトリに対する 24 件の管理スコープ、うち 843 件はプライベート) — これらは、まだ有効な他社の認証情報のみをカウントしています。これらの顧客は PingCAP の過失の犠牲者であり、特に GitHub 管理者およびルート AWS 認証情報が PingCAP によって漏洩した不幸な企業はそうです。これらの 2 社の侵害は、クラウドプロバイダーの選択ミスに起因するものであり、同情はしますが、すぐに連絡を取ることになります。

APID-11887、1,825 件の異なる本番環境接続文字列に埋め込まれたユーザー名とパスワード。そのうちの 1 つはそのまま:

mysql://3QqgLjKpGPJ9jgG.root:[email protected]:4000/6nyf9vDx56DJcbNfYFeWX6?ssl={