close

「供應鏈攻擊的本質是發現更多的攻擊面。」


大家好,我是毀三觀大人。
這次跟大家聊一下我近幾年一直在研究的方向,供應鏈攻擊方向。供應鏈攻擊近年來在業內一直非常火,很多公司也以供應鏈安全為噱頭宣傳產品。不管是國內、國外,到處充斥着供應鏈安全相關的內容。有的產品以軟件成分分析為切入點,有的以供應商管理為切入點,有的以攻擊面管理為切入點。不同的切入點對應不同的供應鏈威脅。本文側重供應鏈攻擊面搜索,將會從目標與目的、工作生命周期、攻擊面更新等幾個維度來展開討論。

01

開始

很多時候,當我們決定入侵某一個目標,都會使用一些信息收集的方法。
不管是收集域名信息、還是收集員工信息,當我們到足夠多的信息,就可以進行下一步操作。
但是有時候你會發現,信息收集到的內容並不是很多,並且很多內容好像是沒有用的,這時候你就會開始想,如果客戶/目標給了你資產該多好。有了確定的資產,開展滲透工作就很輕鬆。
但是當我們退回來看,我們可能在最開始的時候就偏離了本質。

02

攻擊面搜索

我們的目標是什麼,我們到底要做什麼,思考好這些問題,再進行信息收集才會萬無一失。


目標確定與目標具象化

首先我們要確定一下進攻的目標,這裡我們要對目標進行具象化。按照安全服務場景來講,你的目標可能就是銷售給你的一句話:「小王,這個客戶很重要,域名是kehu.customer,你看一下能搞進去不」。
現在我們就知道了,本次目標的域名是kehu.customer。對於一般人來說,可能就會要使用掃描器開始工作了。如果是那些0防護的目標,這麼做可能還是會有一些成果的。但是對於大一點的目標,基本上只會幫助他們的防守方多加幾個封禁的ip地址。
所以我們在拿到目標以後,要去思考一個問題:如何具象化這些目標、明確目的。

1. 目的是拿到權限還是竊取數據。

2. 還是證明可以被入侵。

3. 是可以訪問到特定目標的特定系統。

4. 還是證明可以竊取某個特殊文件,或是要拿到某個人的聊天記錄等等。


工作生命周期

當我們了解到具體的目的與目標以後,我們就可以對他們進行攻擊面挖掘。我平時用到最多的方法是對目標進行工作生命周期判斷。
首先先明確目標的構成情況(權限、數據等)。這裡舉一個簡單的例子,我們目標是拿到某公司的A產品設計圖紙。圖紙現在看屬於數據範疇,記錄下來。緊接着,我們就要分析一下涉及到圖紙可能出現的工作生命周期。這裡提到的分析方法大概有信息收集、實地探究等一系列社工手段(本文不講述相關技巧,如果感興趣可以閱讀《調查記者手冊》、《像間諜一樣思考》等書尋找靈感)。

一、信息側寫

試着去想一個問題,如果我們是他們,我們要怎麼做。我們會在什麼地方使用這些圖紙?在專利編寫的時候會查看這個圖紙嗎?在產品製造的過程中會使用這個圖紙嗎?這也如同在我們對企業進行進攻時,我時常會問自己,如果我是這家公司的運維,我會做什麼,我如何運維我的服務,我如何購買我的服務。
思考和調研過後,我們大概就會得出一些結論。

1. 什麼地方會存放這個圖紙(設計軟件、備份、員工電腦等)

2. 有誰能接觸到圖紙(外包、合作單位、生產人員、員工等)

二、搜索生命周期

供應鏈攻擊的本質是發現更多的攻擊面。

搜索工作生命周期是一件很有意思的事情,比如搜索黑產工作生命周期,現在試着去思考,如果你要做,你都會做什麼。
簡單梳理了一下,如果要做BC可能需要這些環節:
1. 推廣 2. 開發 3. 服務運維 4. 投放 6. 分發 7. 支付 8. 客服溝通。
繼續思考:

1. 推廣使用什麼,找誰?

2. 開發使用什麼,找誰?

3. 運維使用什麼,找誰?

4. 投放使用什麼,找誰?

5. 分發使用什麼、找誰?
這裡提到的所有環節都有對應的服務、產品、人員,以權限和數據為目標,我們就可以嘗試去攻擊這些目標。如果黑產的工作流程對你來講有一些陌生,那我們舉另外一個例子來探究工作生命周期。
例如,我們拿研發工作生命周期來舉例。對於一個普通的產品研發,大致會有這些流程:
1. 需求 2. 設計 3. 產品 4. 開發 5. 測試 6. 運維。
對應着這些流程,一般都會有相應的載體。如下所示,這是一般研發生命周期可能用到的載體和流程對應的圖表。

流程

載體

需求

郵件

項目管理

會議系統

設計

效果圖

設計工具

產品

PRD

開發

開發環境

開發工具

開發庫

測試

測試環境

測試工具

運維

監控

部署

持續更新攻擊面

那我們如何持續了解這些攻擊面那?例如,如果是大公司一般都會有供應商管理,正規一些都會進行正常的招標和供應商信息披露,我們可以通過這些內容發現他們使用了什麼供應商。如果供應商沒有披露,我們也可以使用搜索引擎「最佳實踐」+「目標」 or 「成功案例」+「目標」發現這些成功案例。

但是這些方法好像過時了。

03

新時代新的供應鏈形態

供應鏈由私有走向開放。

近些年來伴隨着互聯網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平台。
行動:我們做一個dnslog平台。

案例分析2

目的:定位黑產。
生命周期 :1. 黑產的APP不能上架官方渠道 2. 黑產會使用第三方測試APP分發渠道。
行動:我們做一個第三方測試APP分發渠道。
案例分析3
目的:收集被動域名。
生命周期:1. 域名解析會用到DNS。
行動:我們買一家DNS服務商。

04

總結

綜上,這些是本次分享的供應鏈攻擊面搜索之路的全部內容。裡邊具體的案例因為篇幅的問題不在這裡展開,有時間可能會寫一些行動指南放出來(我是說有時間)。
供應鏈安全任重道遠,還有很多我們不了解、不清楚的技術點。網絡安全領域新技術日新月異,稍不留神就可能被時代淘汰。我們時刻都要以一種初學者的心態去了解新事物,不能固步自封。

如果大家有什麼新思路,歡迎來公眾號留言,我們一起討論。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()