大家好,我是TIMEWELL的濱本隆太。
2026年10月9日,日本一家社群營運SaaS公告,因未經授權存取,約30.7萬人(推估)的會員資料外洩。導入該平台的企業與地方政府,也陸續公布自家會員受到的影響。對於用外部SaaS來經營會員社群或粉絲網站的公司來說,這不是別人家的事。
這篇文章先把已公布的事實與尚不清楚的部分分開,再依據OWASP與RFC 8725,整理SaaS營運方與導入使用的一方,各自該檢視的項目。這不是要找特定公司的過失。願意公布事實的公司,以及立刻向自家會員發出通知的導入企業,他們的作法有很多值得學習的地方。
已公布的事實,與尚不清楚的部分
| 時間 | 發生的事 |
|---|---|
| 10月5日 下午6點左右 | 未經授權存取開始 |
| 10月6日 | 營運公司偵測到,封鎖通訊並採取防護措施。晚上9點左右,把所有社群切換為維護模式 |
| 10月7日 下午1點17分至2點36分 | 第二次外洩:利用維護期間仍留著的通訊路徑,進行未經授權的會員註冊與檢視 |
| 10月7日 下午2點58分 | 封鎖該通訊路徑 |
| 10月8日 | 在採取外部存取的防護措施後,陸續恢復服務 |
| 10月9日 | 公告。外洩的會員約30.7萬人(推估) |
已公布的手法有兩項。其一,不當取得非公開社群的邀請連結,並以一般會員的身分註冊。其二,在此之後冒充管理員,檢視、取得會員資料,並覆寫資料。營運公司把原因說明為「被攻擊者利用了系統的缺失」。1
外洩的會員中,含電子郵件的資料約12.6萬人(包含員工與測試帳號約4.2萬人份),不含電子郵件的資料約18.1萬人。項目包括顯示名稱、自我介紹、非公開群組的隸屬等,依社群與會員而異。有144人的密碼,在本人沒有操作的情況下被改成暫時密碼,但密碼本身的外洩並未確認。12
營運公司列出的對應包括:修正被利用的缺失、更新登入用的簽署金鑰、封鎖未經授權的通訊路徑並拒絕來自不當IP位址的存取、讓攻擊者建立的帳號退會。依報導,資料已回溯到10月6日下午6點的狀態。回溯的結果,私訊與新註冊等預計不會復原。2
導入方也公布了自己的應對。有一家導入企業表示,營運公司向它說明「委外廠商網站的管理員帳號遭不當使用」,並寫出營運公司在10月6日停止服務、7日向該企業報告,該企業在8日向個人情報保護委員會通報。3
另一方面,也有未公布的事項。
- 最初的入侵,是經由哪個缺失發生的。在我能確認的公告與報導中,沒有寫出初次入侵路徑的細節。1
- 邀請連結是怎麼被取得的。
- 冒充管理員是靠什麼機制成立的。對應措施中列有更新簽署金鑰,但金鑰如何牽涉其中,從官方說明無法判讀。
- 各組織所公布的人數,與約30.7萬人之間的關係。報導也提醒,各組織的數字不能單純相加。2
我最在意的是第二次外洩。第一步的因應,是把所有社群切換為維護模式,但維護期間仍留著的通訊路徑,還是被利用了。以為關上的入口,其實是開著的。這個教訓,後面再談。
營運方該檢視的5個項目
以下是SaaS營運方,也就是託管其他公司會員資料的一方,可以檢視的5個項目。接下來是一般性的背景說明,並不是對這起事件原因的推測。
1. 不要讓邀請連結取代身分確認。
邀請連結是「只要知道就能用的祕密網址」。它會被轉寄、出現在螢幕分享裡、被貼進聊天室,最後落到沒人預期的人手上。要讓連結外流時的損害變小,就需要這些設計:設定有效期限、限制使用次數或人數、加入需經管理員核准、能隨時讓連結失效。尤其是非公開的社群,值得檢視「只要知道連結就能成為會員」這個設計是否恰當。
2. 把管理員權限,與一般功能分開。
OWASP的API安全Top 10,把「功能層級授權失效」列為API5:管理功能與一般功能的界線模糊,導致能碰到本不該碰的功能。4 如果能冒充管理員,檢視、取得會員資料與覆寫資料,就能一次完成。需要這些防範:對管理員的操作要求額外驗證(多因素驗證或重新驗證)、限制能授予管理員權限的路徑、管理員的操作一定要留在稽核紀錄裡。
3. 依用途與租戶,把簽署與金鑰分開。
許多服務會對代表登入狀態的權杖,使用數位簽章。權杖標準JWT的最佳實務(RFC 8725)提到:要驗證發行者(iss)與主體(sub)、要包含並驗證對象(aud)、不同種類的權杖可以使用不同的金鑰。5 同一個發行者為多個使用方發行權杖時,要求務必驗證aud。
在SaaS裡,如果多個社群(租戶)共用同一把簽署金鑰,一把金鑰被破解,影響就會擴及全體。這起事件中金鑰如何牽涉其中,目前並不清楚。不過,依租戶與用途分開簽署金鑰,是把損害侷限在局部的一般想法。更新金鑰的程序,也要在平時就先決定好。
4. 在伺服器端守住租戶的界線。
OWASP列為API1的「物件層級授權失效」,是指處理使用者所指定ID的程序,授權確認不足,導致能碰到別人的資料。4 在多租戶的SaaS中,最重要的界線,就是某個社群的管理員碰不到別的社群的資料。要確認的不只是「管理員」這個頭銜,而是「哪個社群的管理員」。
5. 在作業手冊中,定義「已停止」的意思。
這次,營運公司在10月6日把所有社群切換為維護模式。但在7日,維護期間仍留著的通訊路徑,還是被利用了。1 事故發生時,「停止」並不是讓畫面上的顯示停下來,而是關上所有入口:API、管理畫面、批次作業、外部串接、舊版本的端點。平時就先做好入口清單,並在封鎖程序中加入「確認清單上所有項目都已關閉」這一項。OWASP在API9所指的、缺少API盤點的問題,在這個時候也會發揮作用。4
導入使用SaaS的一方,該準備的4件事
使用SaaS來經營自家會員社群的公司,可以準備4件事。
把託付的資料,限縮在必要的欄位。 會員的暱稱、自我介紹、隸屬群組。放進社群的欄位,對營運的目的來說,真的都有必要嗎?託付的欄位越少,委外廠商發生事故時的影響就越小。把電子郵件這類聯絡所需的欄位,與其他欄位分開思考。
在合約中訂好通知的條件。 委外廠商知道事故之後,要在多久內通知導入企業、通知的內容、調查結果的共享、由誰判斷是否停止服務。把這些寫進合約或營運約定,處理速度就會加快。有一家導入企業的公告,附上日期寫出了從廠商停止服務、收到報告,到向個人情報保護委員會通報的流程。3 如果有事先的約定,這個流程還能縮得更短。
準備好停止服務的程序,與對會員的通知文案。 事故發生時,要很快決定是否停止社群。誰能按下停止鈕、停止期間的公告貼在哪裡、恢復的條件是什麼。事先決定好。對會員的通知,要包含4點:發生了什麼事、哪些資料是對象、希望會員做什麼、洽詢窗口。導入企業Unirita就警告,可能會收到趁這起事件而來的詐騙郵件,並請會員不要開啟可疑的連結與附件。3
決定向個人情報保護委員會通報的負責人與期限。 須通報的事態分成4類:含需特別留意的個人資訊、有財產損害之虞、有惡意目的之虞、超過1,000人。符合時,要盡速提出快報,一般以3至5日內為參考;並在30日內(疑有惡意目的時為60日內)提出確報。6 要事先與委外廠商約定好,由誰來通報。
該告訴會員與員工的事
事故之後,會員可能需要重新登入社群,或重設密碼。這次也是所有會員都被登出,恢復服務後需要重新登入,密碼被改成暫時密碼的會員,則需要重設。2 操作步驟的說明,要明確寫出請透過官方網站進行。
員工也要告知同樣的事。經營社群的員工,其管理員帳號要開啟多因素驗證,且不要與其他服務使用相同的密碼。讓營運的負責人知道,管理員帳號被接管時,會員資料就能被一次看光,這是最好的準備。
總結
已公布的是:不當取得非公開社群的邀請連結、冒充管理員,以及經由維護期間仍留著的通訊路徑發生的第二次外洩。最初入侵的入口,以及冒充的機制,目前還沒有公布。
營運方可以檢視的,是邀請連結的設計、管理員權限的分離、簽署金鑰的劃分方式、租戶的界線,以及「已停止」的定義。導入使用的一方可以準備的,是縮減託付的欄位、約定好通知方式、為停止服務與通知做準備,以及決定誰在何時前通報。
我認為,差距最大的是導入之前的確認。選擇委外廠商時,在簽約之前,先確認事故時的通知方式與資料的保管方式。有後續報導時,我會更新這篇文章。如果想討論公司內部的檢查,或委外廠商的管理,歡迎透過WARP SECURITY的個別諮詢與我們聯絡。至於會回傳會員資料的API該怎麼檢查,從Sourcenext事件學到的文章也可以參考。
參考資料
Footnotes
-
日本社群營運服務遭未經授權存取,推估約30萬人個人資料外洩(報導,日文)— INTERNET Watch(Impress)— 2026年10月 ↩ ↩2 ↩3 ↩4 ↩5
-
日本社群營運服務遭未經授權存取彙整,以及受影響的組織(報導,日文)— Security Measures Lab — 2026年10月 ↩ ↩2 ↩3 ↩4 ↩5
-
【重要公告】因外部委外廠商遭未經授權存取,導致本公司社群會員資料外洩(日文)— Unirita — 2026年10月13日 ↩ ↩2 ↩3
-
RFC 8725 JSON Web Token Best Current Practices — IETF — 2020年 ↩






