跳至主要內容
>_ITDITD網站資安平台

資安事件與漏洞

Equifax 資訊外洩事件(2017)——未修補的 Apache Struts 導致 1.47 億人外洩的原因與防禦

2017 年,信用資訊巨頭 Equifax 外洩了約 1.47 億人的個人資訊。原因是已經發布了修復修補程式的 Apache Struts 已知漏洞(CVE-2017-5638/CVSS 10.0),沒有被套用到公開系統上。更糟的是,監控設備因憑證失效而停擺,導致長達 76 天都沒能察覺資料被持續外帶。已知 CVE 被放任、資產盤點不足、偵測出現空白這三處崩塌,本文只用公開記錄的事實,講解如何用修補 SLA、資產清單、機器監控等具體手段,讓它不在你的環境裡重演。

發布於 2026-06-07 更新於 2026-06-07 閱讀時間 4 分鐘

回顧真實發生過的公開事故,不是重播新聞,而是從 「在你的環境裡如何防禦」 的視角來解讀。本文是 基於公開記錄(主管機關、官方公告、Apache Software Foundation、報導)的解說。出處在文末註明。

1.47 億
受影響人數
10.0
CVSS(最高級別)
76 天
未能偵測到的時長
$700M
和解金(美國史上最大)
事故概要 / CASE FILE
對象
Equifax(美國信用資訊巨頭)
公布
2017 年 9 月 7 日(入侵 5 月~7 月/察覺 7 月 29 日)
手法分類
利用已知 CVE(Apache Struts RCE)未套用,進行入侵與對外帶出
影響規模
美國約 1.47 億人(姓名、SSN、出生日期、住址等。部分信用卡號也在內)
根本原因
放任已知 CVE + 缺乏資產清單 + 偵測空白(憑證失效)
真正的對策
修補 SLA、資產盤點、機器監控、偵測健全性

發生了什麼(通俗版)

Equifax 營運著一個供使用者對信用資訊提出異議的線上申訴窗口。它的底層使用了一個名為 Apache Struts 的元件,而該元件被發現存在一個 可以從外部執行任意程式碼 的嚴重漏洞(CVE-2017-5638)。

修復修補程式在 漏洞公布的同一天(2017 年 3 月 7 日) 就已發布。然而,目標的申訴系統 一直沒有套用修補程式而被放任。攻擊者在兩個月後的 5 月,利用這個已知的破口入侵,並在內部網路中橫向移動,帶出了大量個人資訊。

更糟的是,監控通訊的設備 因憑證失效而長期停擺,導致異常的外帶活動 76 天 都沒能被偵測到。7 月 29 日剛更新憑證,可疑通訊便立刻顯現而被察覺——本應用來察覺的機制,竟然是停著的。

本質不是『高難度的攻擊』,而是『沒修補』

這次事故所利用的,是一個全球早已公開、修補程式也已發布的已知破口。造成損失的不是攻擊的進階程度,而是缺少『在規定時間內堵住已知危險的維運』。無論是個人開發還是組織,這都會以同樣的結構發生。

這條連鎖也是一張『防禦地圖』

重要的是,這是一條 五跳 的連鎖,而 每一跳都有可以攔下的地方。請不要把它讀成攻擊步驟,而要讀成 哪裡本可以被切斷

① 已知 CVE 公開(修復修補程式同日發布)

⊘ 攔截點:用機器監控即時偵測『與自己相關的 CVE』

② 公開系統一直未套用而被放任

不掌握 Struts 在哪裡運行,漏出了修復的網。

⊘ 攔截點:資產清單 + 修補 SLA(公開→套用的期限)

③ 透過 RCE 入侵

從未套用的破口以任意程式碼執行取得立足點。

⊘ 攔截點:最小權限・WAF 作為『輔助』並用

④ 在扁平網路中橫向移動並大量外帶

隔離薄弱,一處被攻陷便波及到廣域資料。

⊘ 攔截點:用網路隔離縮小波及範圍

⑤ 監控憑證失效,76 天無法偵測

本應用來察覺的設備停著。

⊘ 攔截點:把憑證・監控的健全性檢查養成習慣

每一段都『可以攔下』。修補、資產掌握、隔離、偵測——這些各自獨立的層,每一層都是一道保險。

已公布的時間軸

  1. 2017-03-07

    CVE-2017-5638 公布。同日發布修復修補程式。
  2. 2017-03~

    公司內部發出告警。但目標的申訴系統仍未套用。
  3. 2017-05~07

    攻擊者利用未套用的破口入侵,帶出資料。
  4. 2017-07-29

    剛更新監控設備的憑證,便偵測到可疑通訊而被察覺。
  5. 2017-09-07

    對外公布。查明約 1.47 億人受影響。
  6. 2019-07

    與 FTC・CFPB・各州以最高約 7 億美元達成和解(美國史上最大規模)。

根本原因不只是『一處未套用』

如果停留在「忘了修補」上,就會重演。實際上,本質是 多個層連續崩塌

崩塌的組態(事故時)

  • 放任已知 CVE(修復已發布,卻沒套用到公開系統)
  • 缺乏資產清單(不掌握元件在哪裡運行)
  • 扁平網路(允許橫向移動、資料波及)
  • 偵測空白(監控設備因憑證失效而長期停擺)

守住的組態(防止重演)

  • 修補 SLA:定下從公開到套用的時限,優先處理 KEV/高 CVSS
  • 資產清單:用機器掌握相依套件與運行位置,不讓它漏出修復的網
  • 網路隔離:縮小被攻陷後的波及範圍
  • 偵測健全性:定期確認憑證・監控的存活

『修補』不是一次性作業,而是維運

關鍵不是「將來某天修」,而是要有「在公開後 N 小時/天以內修好」的時限(SLA)。並且,為了不遺漏該修補的對象,需要讓機器掌握哪裡在運行什麼。一旦依賴人的記憶,就會像 Equifax 那樣留下『僅有一台』漏網。

在你的環境裡防止重演

下面是不論規模都有效、按優先順序排列的對策。把「不放任已經公開的 CVE」這一點,用機制來保證。

1

擁有資產清單(哪裡在運行什麼)

把自己的相依套件,以及它們在哪些服務・容器上運行,列成清單。Equifax 最大的絆腳石就是「漏掉了目標系統」。要點在於以 實際正在運行的版本 來掌握。

2

定下修補 SLA(公開→套用的期限)

先定下「重大 CVE 在公開後 N 天以內套用」的期限。尤其要把 KEV(正在被實際利用)與高 CVSS 放在最優先。有了期限,『放任』才會被可視化。

3

讓機器去監控(不靠人力追蹤)

靠人力追蹤 CVE 是不可能的。用 Dependabot(GitHub)或 osv-scanner 檢查鎖定檔,只對與自己相依套件相關的 CVE 自動通知。相依套件的機器監控該怎麼搭建裡有具體步驟。

4

準備隔離與偵測(被踩中之後的保險)

隔離網路以抑制橫向移動,並能偵測異常的大量外帶。把監控與憑證『是否還活著』的確認也納入維運——用來察覺的機制停著的話,就毫無意義。

本站自身也在實踐同樣的對策

本站自身也按這裡所寫的,把自己的相依套件納入 CVE 監控的對象。Equifax 的教訓——用人不會疏漏的機制堵住已知的破口——被我們轉化為產品的說服力。把「將來某天修」換成「在期限內、藉助機器修好」,正是這次事故真正的收穫。

出處(公開記錄)

本文的事實基於以下公開資訊。不涉及攻擊的重現步驟或酬載,只聚焦於防禦的教訓

  • Apache Software Foundation「Media Alert: Equifax Data Breach Due to Failure to Install Patches」(2017) — news.apache.org
  • Equifax 官方公告「Releases Details on Cybersecurity Incident」(2017) — investor.equifax.com
  • CFPB/FTC/各州 和解公告 (2019) — consumerfinance.gov
  • CSO Online「Equifax data breach FAQ」— csoonline.com

接下來閱讀

FAQ

QEquifax 事故的根本原因是什麼?
A

不是某種新型的進階攻擊,而是『把已經發布了修復修補程式的已知漏洞(Apache Struts 的 CVE-2017-5638/CVSS 10.0)沒有套用到公開系統上』。再加上沒有掌握那個元件究竟在哪些系統上運行,監控設備又因憑證失效而停擺,導致長達 76 天都沒能察覺資料被外帶。

Q明明有修補程式,為什麼沒套用?
A

據公開記錄,修復在漏洞公布的同一天(2017 年 3 月 7 日)就已發布。公司內部也發出了告警,但目標的線上申訴系統始終沒有套用修補程式而被放任。『那個元件究竟在哪裡運行』的資產清單不健全,使它漏出了修復的網,這是很大的原因。

Q像我這樣的小規模開發也有教訓嗎?
A

有。無論規模大小,『不放任已知 CVE』『掌握自己的相依套件裡是否含有那個元件』『讓機器去監控以消除疏漏』這三點都是一樣的。靠人力追蹤 CVE 是不可能的,所以讓 Dependabot 或 osv-scanner 替你盯著才是現實的解法。