作者:360威脅情報中心
一、綜述
2017年9月18日,Piriform 官方發布安全公告,公告稱該公司開發的 CCleaner version 5.33.6162 和 CCleaner Cloud version 1.07.3191 中的 32 位應用程序被植入了惡意代碼。被植入後門代碼的軟件版本被公開下載了一個月左右,導致百萬級別的用戶受到影響,泄露機器相關的敏感信息甚至極少數被執行了更多的惡意代碼。
CCleaner 是獨立的軟件工作室 Piriform 開發的系統優化和隱私保護工具,目前已經被防病毒廠商 Avast 收購,主要用來清除 Windows 系統不再使用的垃圾文件,以騰出更多硬盤空間,它的另一大功能是清除使用者的上網記錄。自從2004年2月發布以來,CCleaner 的用戶數目迅速增長而且很快成為使用量第一的系統垃圾清理及隱私保護軟件。而正是這樣一款隱私保護軟件卻被爆出在官方發布的版本中被植入惡意代碼,且該惡意代碼具備執行任意代碼的功能。
這是繼 Xshell 被植入後門代碼事件后,又一起嚴重的軟件供應鏈攻擊活動。360威脅情報中心通過對相關的技術細節的進一步分析,推測這是一個少見的基於編譯環境污染的軟件供應鏈攻擊,值得分享出來給安全社區討論。
二、後門技術細節分析
惡意代碼功能
被植入了惡意代碼的 CCleaner 版本主要具備如下惡意功能:
- 攻擊者在CRT初始化函數
__scrt_get_dyn_tls_init_callback()
中插入了一個函數調用,並將此函數調用指向執行另一段惡意代碼。 - 收集主機信息(主機名、已安裝軟件列表、進程列表和網卡信息等)加密編碼后通過HTTPS協議的POST請求嘗試發送到遠程IP:216.126.225.148:443,且偽造HTTP頭的HOST字段為:
speccy.piriform.com
,並下載執行第二階段的惡意代碼。 - 若IP失效,則根據月份生成DGA域名,並再次嘗試發送同樣的信息,如果成功則下載執行第二階段的惡意代碼。
植入方式推測
根據360威脅情報中心的分析,此次事件極有可能是攻擊者入侵開發人員機器后污染開發環境中的 CRT 靜態庫函數造成的,導致的後果為在該開發環境中開發的程序都有可能被自動植入惡意代碼,相應的證據和推論如下:
1、被植入的代碼位於用戶代碼 main 函數之前