← 事故DB

gainsight-oauth-2025 · 公表 2025-11-20

Gainsight連携:古いOAuthトークンを顧客環境へのアクセスに悪用

攻撃者は、古い連携トークンの有効性を調べ、失効されていないものをSalesforce APIへのアクセスに使いました。トークンを最初に取得した経路は特定されていません。

認証情報原因未特定・非公表

確認範囲: 侵害を確認

侵入経路と確認できたこと

  • 公表で確認

    10月22日にトークンを検証し、11月16〜19日に顧客のSalesforce環境でAPIを呼び出したと報告しています。Gainsight環境への同時期の侵入を示すものではありません。

    [s2]Analyzing the Token Usage
  • 公表で確認

    最も新しいトークンも2023年8月発行でした。調査元は漏えい元を特定できず、失効や更新まで長期間有効な設計を問題として説明しています。

    [s2]Analyzing the Token Origin / At the Root of the Issue
  • 公表で確認

    Gainsightが公表したMandiant調査要約では、同社のログに活動中の攻撃者の証拠は見つからなかったと報告しています。過去の流出経路を特定した結果ではありません。

    [s3]冒頭の調査結論(2025-12-05時点)

時系列

  1. この事案を公表。 [s1]

公表された対応

  • 公表で確認

    全システムの資格情報を更新し、古い鍵を削除しました。連携トークンの頻繁な更新、単回使用の更新トークン、接続元制限、PKCEを導入したと公表しました。

    [s2]Immediate Remediation / OAuth Token Lifecycle Management

原因・対策の仮説

以下は編集者の仮説です。事故の確定原因や、公表された対応とは分けています。支持・反証の観測は、これから調べる項目であり、取得済みの証拠ではありません。

  1. 原因仮説 1 未検証

    古いトークン群が、過去のGainsight管理下の環境から流出した可能性があります。

    一次資料から確認した出発点

    同社は、古いトークン群の取得元を特定できず、過去の内部流出と外部環境からの取得の2候補を示しています。

    [s2]Analyzing the Token Origin / Where did these tokens come from?

    成立条件・検証の観測・限界を読む
    成立に必要な条件
    • 当該トークン群が存在した時期に、その環境から情報を取得できる経路があった場合。
    仮説を支持する観測
    • 当時の保全資料で、対象トークン群と持ち出し操作の時系列が一致する。
    仮説を見直す観測
    • 外部環境での取得が別の保全記録から確定し、内部由来という説明と矛盾する。
    判断の限界
    • 当時のログがなく、公開資料だけでは検証できません。2025年の本体侵入を示すものではありません。

    関連する点検

  2. 原因仮説 2 未検証

    古いトークン群が、Gainsightの管理外の環境・端末から取得された可能性があります。

    一次資料から確認した出発点

    同社は、古いトークン群の取得元を特定できず、過去の内部流出と外部環境からの取得の2候補を示しています。

    [s2]Where did these tokens come from?

    成立条件・検証の観測・限界を読む
    成立に必要な条件
    • 当該トークンが外部の環境や端末でも扱われ、攻撃者がそこへ到達できた場合。
    仮説を支持する観測
    • 外部環境の保全記録に当該トークンの利用と取得の痕跡があり、取得時期が合う。
    仮説を見直す観測
    • 内部環境からの持ち出しが確定する、または候補の外部環境に当該トークンが存在しなかったと証明できる。
    判断の限界
    • 候補を並べても同じ確率を意味しません。フィッシングや端末侵害という具体的手法は未特定です。

    関連する点検

  3. 対策仮説 3 未検証

    旧OAuthトークンの失効と更新時の再利用制御を検証すると、過去に漏れたトークンの再利用を抑えられる可能性があります。

    一次資料から確認した出発点

    古いトークンが未失効の顧客環境で悪用され、同社は更新頻度と単回使用の更新トークンを導入したと説明しています。

    [s2]At the Root of the Issue / OAuth Token Lifecycle Management

    成立条件・検証の観測・限界を読む
    成立に必要な条件
    • API側でも旧トークンを失効でき、更新前後の全資格情報を制御できる場合。
    仮説を支持する観測
    • 自分の隔離環境の架空トークンで、失効したaccess tokenと使用済みrefresh tokenが拒否され、接続先の失効記録とも一致する。
    仮説を見直す観測
    • 新しい鍵を発行しても旧鍵が通る、または更新トークンを再使用して新しいアクセス権を得られる。
    判断の限界
    • アプリ側の削除だけでは失効の証拠になりません。MFAやPKCEだけで窃取済みbearer tokenのAPI利用は止まりません。

    関連する点検

この事例のAI向け資料を読む ↗

当時の回避可能性を考える材料

運用・設定を点検

OAuthの有効期限、更新トークンの再利用制御、旧トークンの失効結果を確認します。漏えい元が不明でも、鍵を長期間使い続けられる範囲は点検できます。

編集上の評価。責任や過失の認定ではありません。 [s2]

未解明の点・AIの関与

AIの関与不明

参照した情報では、攻撃者によるAI利用は確認できません。AI不使用を意味しません。

漏えい元と最初の漏えい時期は不明です。古いトークンの再利用を、2025年のGainsight本体への侵入と同一視しません。

情報元

  1. [s1] Gainsight · 一次情報

    Salesforce–Gainsight Connected App Incident ↗

    公開 2025-11-20 · 確認 2026-10-10

  2. [s2] Gainsight · 一次情報

    How We Accelerated a Year of Security Work in Weeks ↗

    公開 2026-01-02 · 確認 2026-10-10

  3. [s3] Gainsight(Mandiant調査要約) · 一次情報

    Mandiant Investigation Summary ↗

    公開 2025-12-08 · 確認 2026-10-10