FreeFix勒索針對易語言開發者發起供應鏈攻擊
前不久,360發布了FreeFix勒索軟件的詳細分析報告,并向廣大受害用戶提供免費的技術解密服務。但根據我們的數據監控發現,FreeFix依然保有著居高不下的傳播量,這也讓我們對其攻擊來源產生了極大的興趣。而隨著我們對大數據分析的進一步深入,我們發現FreeFix的各種傳播來源中,竟然還存在著更為隱蔽的供應鏈攻擊,值得進一步剖析。
在這種傳播來源中,勒索軟件通過感染易語言(EPL)生態系統中的“.ec”模塊文件,構建出了一條從開發者到終端用戶的完整攻擊鏈條。與常規的勒索軟件傳播方式不同,FreeFix采用“源頭帶毒”策略,將攻擊目標直接鎖定在了軟件開發這一環節上,讓開發者在不知情的情況下成為了惡意代碼的傳播者。
供應鏈傳播路徑分析
FreeFix的傳播者首先會通過開發者論壇、交流群等渠道分享他們的“功能模塊”或“開源項目”,而恰恰就是在這些模塊或項目中,夾帶了這份被精心構造過感染模塊文件。
而一旦有開發者加載并最終編譯了該項目,這個“帶毒模塊”就會感染當前的開發者的開發環境,并嘗試竊取開發者設備中的源代碼。
同時,當開發者在這臺被感染的設備上編譯其他的程序時,其生成的新程序也同樣會被悄悄的植入惡意代碼。也就是說,該開發者此后發布的所有程序都可能是“帶毒程序”,進而成為勒索軟件的傳播傀儡,將其惡意代碼擴散給更多的用戶。
FreeFix勒索軟件進行此類攻擊時的傳播流程示意圖如下:
圖1. FreeFix易語言供應鏈攻擊流程示意圖?
根據數據分析,我們發現的部分可能被感染的易語言“開源”項目有:
圖2. 可能被感染的部分“開源”項目?
惡意代碼分析
此次遭到供應鏈攻擊感染的.EC文件是易語言的模塊文件,也稱為易模塊。用戶可以將常用的代碼封裝起來以便在開發其他代碼時重復引用,或提供給他人使用。有時亦可用作開發大型軟件項目中的一部分,在后續軟件項目的封裝階段再將所有這些模塊編譯成為一個完整程序。這種.EC文件相當于C語言里面的.LIB文件。
帶有惡意代碼的EC模塊
通過反編譯解析出來被感染的EC模塊,可以看到植入的惡意代碼如下:
圖3. EC模塊中被植入的惡意代碼?
這部分代碼先是會檢測當前程序是否是以管理員權限被執行的,若非管理員權限則會嘗試以管理員權限重新啟動。成功后,代碼會將內置的Free_EXE 勒索軟件資源數據釋放到C:\FreeStart.exe位置,并將該程序設置為“隱藏+系統”的屬性防止被用戶發現。最后,執行這個剛剛被釋放出來的FreeStart.exe程序。而該勒索軟件的詳細分析請移步我們此前發布的FreeFix相關分析報告,本文中不再贅述。
圖4. 被感染模塊中的Free_EXE惡意代碼資源數據
感染本地編譯環境
根據測試,在被感染的環境中使用E語言隨意編寫一段代碼,只要調用了被植入惡意代碼的EC模塊,最終編譯出來的程序就會被附加上FreeFix勒索軟件功能代碼。
圖5. 易語言代碼感染測試
同時,在測試過程中分析人員也發現被添加了勒索功能模塊的測試程序,其最終編譯完成后的軟件體積也出現了明顯增大。
圖6. 被感染的測試程序軟件體積增大?
而通過分析攻擊反編譯這段被附加的功能,如檢測管理員權限、釋放并執行勒索軟件等部分邏輯代碼如下。
圖7. 反編譯出的附加勒索功能代碼
竊取用戶源碼
除了勒索功能外,分析人員還發現部分被調用的E語言模塊所編譯出來的程序還會竊取用戶設備上所有的易語言源碼文件(.e文件)和模塊文件(.ec文件)。我們捕獲到的竊取木馬在受害用戶設備中的執行進程樹如下:
圖8. 源碼竊取木馬執行進程樹?
根據分析,我們發現這部分程序會查找受害用戶設備中所有的.ec模塊文件以及.e源碼文件。
圖9. 惡意代碼查找設備中所有.e源碼文件?
圖10. 惡意代碼查找設備中所有.ec模塊文件
圖11. 源碼竊取木馬文件操作記錄?
木馬竊取到上述文件后,會將其全部回傳到一個第三方的云存儲中。而全部文件被上傳后,該云存儲還返回了供文件下載的URL等信息:
圖12. 源碼竊取木馬將文件回傳至云存儲?
這種攻擊手法不僅規避了常規安全防護機制,還利用了用戶對熟悉開發資源的信任。更值得警惕的是,此病毒具備自我復制能力,能夠感染開發者機器上的其他模塊并竊取源碼,進而進一步擴散。軟件開發人員——尤其是易語言的開發者應對本次FreeFix的攻擊格外提高警惕。
結論與防護建議
FreeFix勒索軟件供應鏈攻擊案例清晰地展示了當前網絡威脅的復雜性與隱蔽性。通過感染易語言生態系統的基礎模塊組件,攻擊者成功構建了一個自我持續、難以察覺的攻擊鏈,實現了從開發者到終端用戶的鏈式感染。這種攻擊不僅給開發者和軟件用戶都帶來了直接的數據損失,更是動搖了整個軟件供應鏈的信任基礎。
針對此類供應鏈攻擊,我們提出以下防護建議:
對易語言開發者
1.???? 模塊完整性校驗:使用哈希值校驗所有.ec模塊,確保與官方發布版本一致。
2.???? 隔離開發環境:將開發環境與日常辦公環境隔離,減少交叉感染風險。
3.???? 定期備份源碼:重要源碼應定期備份至離線存儲設備,防止被加密或竊取。
4.???? 使用可信來源:僅從官方或經過驗證的可信渠道獲取模塊和開源代碼。
5.???? 代碼審計:對引入的開源項目進行安全審計,特別關注可疑的網絡連接行為。
6.???? 謹慎添加信任:對于安全軟件報毒的程序切勿輕易添加信任繼續運行。
對軟件用戶
1.???? 嚴格軟件來源管理:僅從官方渠道下載軟件,警惕第三方分發平臺。
2.???? 更新安全軟件:確保殺毒軟件及時更新,啟用主動防護功能。
3.???? 定期備份數據:重要數據應保持3-2-1備份策略(3份拷貝、2種不同存儲介質、1份異地保存)。
4.???? 軟件行為監控:使用行為監控工具,對異常行為如批量文件操作進行警示。
對軟件生態
1.???? 建立模塊驗證機制:易語言社區應建立官方模塊簽名與驗證機制。
2.???? 威脅情報共享:加強開發社區間的威脅情報共享,及時通報可疑模塊。
3.???? 代碼透明度:鼓勵核心模塊開源,提高社區監督能力。
4.???? 安全意識培訓:定期為開發者提供供應鏈安全培訓,提高警惕性。
隨著軟件供應鏈攻擊日益增多,防護措施需要從個人、組織到整個生態系統多層面共同發力。只有構建起完整的安全防線,才能有效應對FreeFix這類精心設計的供應鏈攻擊,保障軟件開發生態的健康與安全。