2015 年 7 月,駭客 Phineas Fisher 傾倒了義大利監控廠商 Hacking Team 約 400 GB 的資料,其中包括內部電子郵件。卡巴斯基實驗室的 Costin Raiu 在其中發現一段 2013 年的洽談,漏洞販售者 Vitaliy Toropov 向 Hacking Team 兜售一個 Silverlight 零日漏洞,稱其「寫於 2.5 年前」,且「未來數年仍有很大機會繼續存活」——這是一項證據,顯示一個既無修補程式、也無公開細節的漏洞,可能仍在感染系統,只要卡巴斯基能找到它。

零日漏洞通常是意外發現的,往往是在入侵事件後的鑑識過程中。Raiu 嘗試了相反的做法:剖析作者。他取出 Toropov 在 2011 至 2013 年間、也就是其公開揭露停止之前,發布到漏洞賞金計畫的概念驗證漏洞,並注意到有三個除錯字串在這些檔案中反覆出現——這是開發者經常在無意間留在編譯後程式碼裡的殘餘物。7 月,他把這些字串寫進一條 YARA 規則,推送到卡巴斯基的自動漏洞防護工具及其客戶共享的遙測網路,然後等待。

數月過去,毫無動靜。接著在 2015 年 11 月 25 日,中東一台客戶機器出現匹配:一個 Silverlight 遠端程式碼執行漏洞,建立在 Toropov 所發布的計算機概念驗證程式碼之上。數小時後,第二個樣本出現在 VirusTotal 上,由寮國上傳,編譯於 7 月 21 日——也就是外洩電子郵件上線的兩週後。卡巴斯基通報了該漏洞,微軟則於 2016 年 1 月針對 Silverlight BinaryReader 漏洞發布了「重大」修補程式。

你可以追獵一個你從未見過的漏洞:為作者建立指紋,而非為樣本建立指紋——他公開發表的概念驗證程式帶有除錯字串,而這些字串可能被其私下作品繼承。

這份外洩資料被重新利用為一套早期預警系統:一份被竊的推銷文件告訴防禦者哪個未見的漏洞存在、大約有多舊,以及是誰打造了它。

作者身分就是一種簽名:漏洞作者會重複使用自己的程式庫,而除錯程式碼往往會留存到編譯後的二進位檔中,因此公開發表的概念驗證程式可以為其私下的後續作品建立指紋。

感測器網路早已存在:一條套用到卡巴斯基選擇加入遙測的 YARA 規則,把數千台客戶機器變成絆線,無須部署任何新東西。

防禦禮儀留下了痕跡:Toropov 多年來負責任地向賞金計畫揭露漏洞——並附上公開發表的概念驗證程式——這些年成了他未公開漏洞的指紋。

攻擊歸因也可以反向運作:作者的習慣就是一種簽名。當你找不到實際產物時,就從他們已公開發表的內容來建模其製作者,並讓你的感測器等待匹配。

卡巴斯基未再發現其他樣本,顯示買家是精準地使用該漏洞;Raiu 估計它在零日漏洞市場上價值 2 萬至 4 萬美元。Toropov 在檢視程式碼後告訴《WIRED》,該漏洞「不是我的」,但他確認其中概念驗證程式的部分是他的。Raiu 稱這是他的團隊首次成功抓到原本就計畫追獵的目標,並指出這項技術如今可以轉而用在其他販售者的公開程式碼上。微軟的修補程式移除了這項特定威脅;而這套方法——為作者建立指紋,然後等待——則留在了工具箱裡。

追溯依據

參考來源

  1. Hacking Team's Leak Helped Researchers Hunt Down a Zero-Day WIRED · wired.com ·