這次跟大家聊一下我近幾年一直在研究的方向,供應鏈攻擊方向。供應鏈攻擊近年來在業內一直非常火,很多公司也以供應鏈安全為噱頭宣傳產品。不管是國內、國外,到處充斥着供應鏈安全相關的內容。有的產品以軟件成分分析為切入點,有的以供應商管理為切入點,有的以攻擊面管理為切入點。不同的切入點對應不同的供應鏈威脅。本文側重供應鏈攻擊面搜索,將會從目標與目的、工作生命周期、攻擊面更新等幾個維度來展開討論。很多時候,當我們決定入侵某一個目標,都會使用一些信息收集的方法。不管是收集域名信息、還是收集員工信息,當我們到足夠多的信息,就可以進行下一步操作。但是有時候你會發現,信息收集到的內容並不是很多,並且很多內容好像是沒有用的,這時候你就會開始想,如果客戶/目標給了你資產該多好。有了確定的資產,開展滲透工作就很輕鬆。但是當我們退回來看,我們可能在最開始的時候就偏離了本質。我們的目標是什麼,我們到底要做什麼,思考好這些問題,再進行信息收集才會萬無一失。
首先我們要確定一下進攻的目標,這裡我們要對目標進行具象化。按照安全服務場景來講,你的目標可能就是銷售給你的一句話:「小王,這個客戶很重要,域名是kehu.customer,你看一下能搞進去不」。現在我們就知道了,本次目標的域名是kehu.customer。對於一般人來說,可能就會要使用掃描器開始工作了。如果是那些0防護的目標,這麼做可能還是會有一些成果的。但是對於大一點的目標,基本上只會幫助他們的防守方多加幾個封禁的ip地址。所以我們在拿到目標以後,要去思考一個問題:如何具象化這些目標、明確目的。1. 目的是拿到權限還是竊取數據。
2. 還是證明可以被入侵。
3. 是可以訪問到特定目標的特定系統。
4. 還是證明可以竊取某個特殊文件,或是要拿到某個人的聊天記錄等等。
當我們了解到具體的目的與目標以後,我們就可以對他們進行攻擊面挖掘。我平時用到最多的方法是對目標進行工作生命周期判斷。首先先明確目標的構成情況(權限、數據等)。這裡舉一個簡單的例子,我們目標是拿到某公司的A產品設計圖紙。圖紙現在看屬於數據範疇,記錄下來。緊接着,我們就要分析一下涉及到圖紙可能出現的工作生命周期。這裡提到的分析方法大概有信息收集、實地探究等一系列社工手段(本文不講述相關技巧,如果感興趣可以閱讀《調查記者手冊》、《像間諜一樣思考》等書尋找靈感)。一、信息側寫
試着去想一個問題,如果我們是他們,我們要怎麼做。我們會在什麼地方使用這些圖紙?在專利編寫的時候會查看這個圖紙嗎?在產品製造的過程中會使用這個圖紙嗎?這也如同在我們對企業進行進攻時,我時常會問自己,如果我是這家公司的運維,我會做什麼,我如何運維我的服務,我如何購買我的服務。1. 什麼地方會存放這個圖紙(設計軟件、備份、員工電腦等)
2. 有誰能接觸到圖紙(外包、合作單位、生產人員、員工等)
二、搜索生命周期
搜索工作生命周期是一件很有意思的事情,比如搜索黑產工作生命周期,現在試着去思考,如果你要做,你都會做什麼。1. 推廣 2. 開發 3. 服務運維 4. 投放 6. 分發 7. 支付 8. 客服溝通。1. 推廣使用什麼,找誰?
2. 開發使用什麼,找誰?
3. 運維使用什麼,找誰?
4. 投放使用什麼,找誰?
這裡提到的所有環節都有對應的服務、產品、人員,以權限和數據為目標,我們就可以嘗試去攻擊這些目標。如果黑產的工作流程對你來講有一些陌生,那我們舉另外一個例子來探究工作生命周期。例如,我們拿研發工作生命周期來舉例。對於一個普通的產品研發,大致會有這些流程:1. 需求 2. 設計 3. 產品 4. 開發 5. 測試 6. 運維。對應着這些流程,一般都會有相應的載體。如下所示,這是一般研發生命周期可能用到的載體和流程對應的圖表。流程
載體
需求
郵件
項目管理
會議系統
設計
效果圖
設計工具
產品
PRD
開發
開發環境
開發工具
開發庫
測試
測試環境
測試工具
運維
監控
部署
持續更新攻擊面
那我們如何持續了解這些攻擊面那?例如,如果是大公司一般都會有供應商管理,正規一些都會進行正常的招標和供應商信息披露,我們可以通過這些內容發現他們使用了什麼供應商。如果供應商沒有披露,我們也可以使用搜索引擎「最佳實踐」+「目標」 or 「成功案例」+「目標」發現這些成功案例。新時代新的供應鏈形態
近些年來伴隨着互聯網toB業務發展和疫情導致遠程辦公激增,SaaS、IaaS、PaaS服務越來越多被大眾所接受和使用。原來一些公司可能排斥使用Saas、IaaS、PaaS服務,但是現在他們也開始會使用這些新事物。在之前的探究中,通常都是我們知道了目標的員工會有一個習慣,會請某個公司的人來做相關圖紙的業務數據維護,那麼我們發現的攻擊面就是這家外包公司或者外包公司的人員。但是到了現在情況可能就會變了,當我們知道了目標的員工設計圖紙的過程中會使用某款SaaS平台,我們發現的攻擊面就變成了某款SaaS設計平台。這時我們就要開始關注一些使用率比較高的SaaS、IaaS、PaaS服務。例如代碼管理,原有的架構可能使用的是私有部署的Gitlab。而現在,可能使用的就是Github、xxxx公有版、xxxx.xxx、xxxx.com等平台。如果目標將自己的一些子域名解析到這些SaaS、IaaS、PaaS平台的子域名,我們還可以在常規的子域名環節發現這些目標。或者搜索引擎抓取到了一些可以關聯到目標的SaaS、IaaS、PaaS頁面的信息。根據以上信息,我們又可以得出一個研發工作生命周期的供應鏈攻擊面表格。流程
載體
SaaS
IaaS
PaaS
需求
郵件
項目管理
會議系統
設計
效果圖
設計工具
產品
PRD
開發
開發環境
開發工具
開發庫
測試
測試環境
測試工具
運維
監控
部署
不同的工作生命周期會有巨大的差距,在梳理這裡工作周期的時候可能會感到挫敗感,這都是正常的。接下來簡單介紹一些供應鏈攻擊思路(沒有攻擊過程,沒有攻擊過程,沒有攻擊過程)。案例分析1
生命周期:1. 會使用外包公司 2. 源碼存儲國內某平台 3. 會交給某三方測評。案例分析2生命周期:1. 數據存放在某平台 2. 某平台使用化名登錄 3. 某公司使用某薪酬管理軟件,同時記錄了花名。案例分析3生命周期 :1. 某人參加了某協會 2. 某協會某人的好朋友很多 3. 某協會需要贊助。
切記,漏洞利用也僅僅是我們的一種攻擊手段。我們除了入侵,還可以購買乃至於成為供應鏈。為什麼會有成為供應鏈這種想法?在一次實戰中我們攻擊了某應用使用的SaaS平台,想通過這個路徑調查某位用戶的真實信息,但是發現這個SaaS日誌記錄的不對。沒辦法使用這個信息定位。現在我們的情況就比較尷尬,我們要不要通知這個平台把日誌記錄修改一下?還是重新編寫一個後門程序,記錄這些日誌信息。當時有人就嘀咕了一句,要是這家SaaS平台是我們的就好了,想改就改。
案例分析1
生命周期 :1. 黑客有時候會使用dnslog平台。案例分析2生命周期 :1. 黑產的APP不能上架官方渠道 2. 黑產會使用第三方測試APP分發渠道。案例分析3
總結
綜上,這些是本次分享的供應鏈攻擊面搜索之路的全部內容。裡邊具體的案例因為篇幅的問題不在這裡展開,有時間可能會寫一些行動指南放出來(我是說有時間)。供應鏈安全任重道遠,還有很多我們不了解、不清楚的技術點。網絡安全領域新技術日新月異,稍不留神就可能被時代淘汰。我們時刻都要以一種初學者的心態去了解新事物,不能固步自封。如果大家有什麼新思路,歡迎來公眾號留言,我們一起討論。