當前位置:
首頁 > 最新 > 淺談軟體供應鏈攻擊與內網防禦

淺談軟體供應鏈攻擊與內網防禦

隨著軟體供應鏈攻擊的越來越多,相信大家已經對這種攻擊方式有所了解了,修改軟體下載源頭的軟體代碼,植入惡意,誘導下載使用是這種攻擊的主要特徵。Xshell 就是典型的供應鏈攻擊,不過 Xshell 是其官網網站的程序包被放入修改後的惡意 dll 導致,因為是官方下載源所以範圍更廣。但擴展看,其實各下載網站、網盤、甚至 im 群工具共享等一切提供下載或更新的互聯網上的存儲位置,都可以作為供應鏈劫持的原始受害者和攻擊方。Xcode 就是利用用戶討厭蘋果官網下載 Xcode 緩慢的情緒,誘導大家從百度網盤中下載修改版的 Xcode,最終導致逐步擴散開來。

如果全民軟體qq、微信出現軟體供應鏈攻擊。。。後果,不敢想!

那怎麼避免自己的內網終端成為軟體供應鏈攻擊的受害者呢?分析軟體供應鏈攻擊者的思路,他的目的是誘導下載運行,通過內置的竊密代碼竊取並外傳回敏感數據,當然也有搞殭屍的。站在這個目的的基礎上,我們來思考下。其實解決方向很簡單,但是實現細節需要我們進一步抉擇。

一、從根源出發,只用自己的

建立自研軟體庫,全部工具軟體,甚至娛樂軟體均自行實現,可見這種方法成本高的可怕,估計只有少數大鱷企業可以,如google。

分析員工的軟體使用習慣,從360的全民應用的軟體分類中總結下:

1、可用瀏覽器替代的:

1)各類視頻播放器,音頻播放器

2)遊戲類、手游電腦版。ps:上班玩什麼遊戲!

3)其他,如:下載工具、圖形圖像、閱讀翻譯、網路應用(雲盤等)、主題壁紙、教育學習


1)辦公軟體,office系列、wps系列等,可用瀏覽器訪問的雲辦公替代,如google的雲辦公、微軟的office系列

2)輸入法,qq拼音輸入法、google輸入法、搜狗輸入法等,可用雲輸入法代替,例如谷歌雲輸入法


1)系統工具,一般都是些優化系統類的,員工使用必要性不大;

2)手機數碼,一般為手機管理等軟體,且手機會自動給電腦安裝軟體,所以不建議員工在公司使用;

3)股票網銀,這類軟體比較特殊,自行開發涉及到隱私,可禁止員工在公司使用或用瀏覽器代替;


1)瀏覽器程序,這個肯定是必須的;

2)刻錄工具可提供專門的it服務,壓縮必須自我開發實現;

3)編程開發,如vs、ecslipes等,可用開源的審計後修改使用,當然也可以自己開發


1)行業軟體,這類就是大型的專業軟體了,可根據工作需要自行開發,或以擔保方式購買

綜上,瀏覽器程序、辦公軟體、輸入法類、壓縮、編程開發類等是必須自研開發的,顯而易見google都實現了,如果你夠牛,你也可以參考,雖然成本巨大,但是徹底擺脫了軟體供應鏈攻擊。

二、建立安全軟體庫,進行安全審計、及時更新

建立自己的安全軟體庫,軟體庫中的軟體均經過安全人員審計,並及時推動更新,保證軟體更新性。

這是常規的思路,也就是把從互聯網下載的軟體審查一遍,確定安全性後放入公司內部的軟體庫。因為絕大部分都是閉源軟體,所以基本思路如下:


1)多殺軟檢測環境搭建。一般僅包括卡巴斯基、賽門鐵克、微軟等幾大主流廠商,小廠經常跟風報毒、過度依賴啟發式等問題,誤報大,不建議作為衡量標準

2)多引擎,如virustotal,這裡需要上傳全部需要檢測的文件,畢竟 md5 檢測存在很多不存在md5的情況,寫批量上傳的腳本工具,請參考 https://www.virustotal.com/en/documentation/public-api/,當然也可以用virustotal 提供的工具 VirusTotal Windows Uploader ,右鍵全選多個文件後進行手工上傳,如:

上傳後瀏覽器會自動打開對應數量的結果頁面,且會以sha256標識


然後分析確認是否存在黑ioc。


這個取決於分析能力,一般利用虛擬機運行軟體,然後分析主機日誌、網路日誌、進程、服務、啟動項等等ioc。方法與安全監控沒有本質卻別,只是日誌更多。


當前熱的一塌糊塗。提取數據、定義特徵,使用聚類等分析方法確定正常軟體和非正常軟體。但據了解安全監測應用大數據分析還不是很成熟,但也算是一個方案吧。

但雖然我們做了這麼多,但是這裡有幾個問題無法避免

a、審查無法排除100%的問題,這涉及到安全人員的技術水平和業內攻擊的手段更新情況,尤其是0day的漏洞根本是無法檢測出。所以無法做到較高的安全性。

b、軟體更新頻繁,需要大量人力複雜,運營成本高。

c、 存儲環境也需很完備,尤其是批量拉取更新等,機器性能重要

三、開放下載

開放下載的同時要建立網路封閉的軟體運行環境,禁止任何未授權的軟體外聯行為,解決黑客竊取敏感數據的關鍵點。

這個思路比較獨特,黑客供應鏈攻擊的目的是控制終端,無論是竊取敏感數據還是控制機器都需要軟體外聯,那其實除了更新我們不需要讓軟體做任何外聯行為,甚至我可以不讓它自動更新,僅允許去官網主動下載。

那麼問題的難點就演變成,區分進程和網路行為的對應關係。這個可以開發程序實現,如果懶得寫代碼也可以用一些工具(如cports等)記錄日誌獲得,也可用主機防火牆日誌,這個方法還是挺多,大家任意發揮即可。聯網控制具體做法如下:


想分析出每個外聯請求的原因是難度係數極高的事情,加密網路協議、加密內容、混淆內容、私有協議包裝等讓分析人員無法判定外聯發出的請求包內容,無法判定外聯目的,如下:沒人能肯定軟體為什麼外聯,也許官方說我在上報狀態,我在更新,我在傳輸報錯數據,那你就真的可以相信嗎?google的chrome瀏覽器最近不是爆出因為bug上傳個人下載文件元數據的事情嘛。

這裡可以像作者一樣用工具監控程序外聯進行分析,當然也可以通過網路層日誌+主機日誌等分析程序外聯共性等。


可以用windows防火牆,也可以用一些第三方的防火牆,筆者直接用火絨屏蔽了聯網。當然這個屏蔽不是很全面,例如我用powershell的wget操作就沒有攔截,火絨的內置策略我沒深入研究。還是建議用專業的防火牆,似乎毛豆個人防火牆不錯,只是配置似乎很複雜。

此外,實現公司級別網路策略控制還需要考慮很多

1)統一控制是必要的

讓員工自行屏蔽外聯是不可能的,比較靠譜的辦法是域策略、出口防火牆等,在此不再細說,相信大家這方面都了解很多了。

2)軟體模塊更新或組件下載

例如eclipse這類工具,需要下載很多模塊,一般都是要聯網下載的,用戶手工觸發或自動更新。這裡很難排除下載的模塊是否被更改,但下載地址可配置(區分配置地址和分析出真實下載地址,建立員工申請開通流程)。

我們僅開通此部分下載源的外聯,其他不開放。下載後的模塊和宿主程序作為一體對待,禁止其他外聯(內網通信不禁止,解決聯調、聯合開發等問題)。

3)用戶主動外聯

如github同步等問題,如不允許外聯則會造成無法同步等問題。好在地址是可分析後提前開通的。

雖然做了這麼多,但是這裡有幾個問題無法避免或者說需要進一步優化

a、放開互聯網下載,那麼瀏覽器下載、迅雷下載、bit下載等工具的外聯是完全放開的,如果這些工具被利用,如供應鏈攻擊、注入、漏洞等,這裡就需要結合上面提到的軟體審計定義標準軟體,還要使用Emet等工具防止注入和漏洞利用。當然0day的問題沒法完全避免,但因為阻止了其他程序外聯,那麼黑客想成功的條件就變成:當前版本下載工具的0day+利用當前下載工具作惡,但其實一般都是0day後下載大馬,獨立運作,如果不獨立運作,作惡大馬因為體量大,注入到當前版本下載工具無法利用0day漏洞注入,常規注入也會被Emet發現。這個安全風險就大大降低了。

b、這種方式容易造成員工抵觸,例如很多工具無法使用,如網銀、遊戲等工具,這就需要對外聯地址進行大範圍分析,不過外聯地址都很固定,分析量不會巨大,但因為軟體版本更新、新增熱門遊戲等問題,我們需要多關注軟體連通性中斷的問題,實時監控,聯動響應分析開通,最大限度降低員工抵觸。

綜上,對抗軟體供應鏈攻擊還是很複雜的,每一種方法都有其優缺點,從根本解決成本太大,正所謂沒有絕對的安全,只有不斷的對抗!

最後,雖然講了很多方面,但因為個人的能力有限,無法全面覆蓋,歡迎各位大牛私信探討,謝謝!!!

*本文作者:ChuanFile,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

Harpoon:OSINT威脅情報工具
對不起,我是音樂人:探索音樂密碼學

TAG:FreeBuf |