Share |
Malware and antivirus software

W32/Kankan –中國IT疫情播報

Created: 2013-10-18 00:00:00

 
在今天部落格當中, 我們將向各位介紹一款軟體, ESET防毒軟體將其檢測為W32/Kankan。該軟體之所以近期引起我們的注意, 主要原因是:
  • 它能夠將自身註冊為Office外掛, 本身並不具備Office軟體功能, 只做維持續依附於電腦系統的一種方式。
  • 當Android系統手機接入電腦之後, 它能夠通過USB故障排查模式, 在Android手機上祕密安裝手機應用程式。
  • 該軟體擁有中國著名公司 - 迅雷網路科技公司的數位簽章。該公司因其所開發的BT用戶端, 成為全球用戶數量最多的下載軟體而聲名顯赫。
我們首先從說明這款程式的相關背景著手, 接著探討這一發現震驚大量中國用戶的原因, 然後再對軟體功能進行一番深入剖析, 最後討論迅雷科技公司涉嫌參與其中的證據。
 
背景
本文所講述的情況, 最早始於去年6月份, 當時中國各大論壇上相繼出現反映一家中國企業 – 迅雷網路科技公司涉嫌開發可疑程式的投訴。 這消息迅速傳播, 最終出現在許多中國網站的頭版的頭條。
為便於更好了解引起媒體關注的原因, 就有必要首先介紹相關背景知識, 其中奧妙, 恐怕多數國外讀者尚為陌生。 迅雷網路科技公司的主要業務, 就是開發迅雷用戶端軟體, 該軟體能夠幫助用戶提高各類文件的下載速率(影音、pdf檔、可執行檔等等), 其功能類似於Orbit Downloader, 但在中國非常普遍。
 
說起該軟體廣受歡迎的原因, 就不得不提起該下載工具的工作原理。 簡單來說, 迅雷用戶端能夠
建立並時時更新已知文件路徑列表, 每當用戶使用瀏覽器或BT用戶端開始下載文件時, 迅雷用戶端將根據實際網路傳輸速度, 選最佳下載來源以提升下載速率。 為優化軟體性能, 迅雷網路科技公司開發了一套頗為複雜的軟體應用環境, 在軟體內部集結了共享文件搜尋引擎、 多協定BT用戶端, 甚至自行開發了專有點對點通訊協定。 有興趣的讀者, 可點擊這裡閱讀Dhungel等人於2012年編撰的迅雷網路綜合研究報告。
 
如上所述, 該軟體中國用戶數量及其龐大。TorrentFreak網站2009年分析報告,甚至將迅雷用戶端列為世界第一的BT下載軟體, 分享用戶超過一億人, 而uTorrent最多用戶數量為9200萬人。另一方面, 由於官方網站位提供該工具英文版下載, 雖然一些業餘愛好者曾推出非官方外文版, 但中國境外幾乎沒有用戶使用。 由此我們可以推測, 迅雷公司的實際用意,  就是在中國境內發展。
 
剖析
以上背景故事, 說明了中國用戶在電腦上所發現的可疑程式, 居然由迅雷公司數位簽章時的那種驚訝。 相關數位證書, 如下圖所示。
 
 
我們接下來討論一下該軟體被列為可疑程式的原因。
安裝文件
該程式為Windows系統安裝包, 通常文件名為INPEnhSetup.exe, 基於Nullsoft腳本安裝系统編寫。
簡單來說, 該安裝程式就是一個附帶安裝腳本的壓縮檔。程式在安裝開始時, 會聯絡寫死的域名kkyouxi.stat.kankan.com, 報告安裝初始化。之後將在系統上安裝三個文件: INPEn.dll、INPEnhUD.exe与INPEnhSvc.exe。 隨後系統加載資料庫文件INPEn.dll, 並調用DllRegisterServer函數。 最後, 安裝文件再次聯絡域名kkyouxi.stat.kankan.com, 報告安裝過程結束。
 
Office外掛
INPEn.dll首先將自身複製安裝為Word、Excel與PowerPoint外掛, 文件名不變, 外掛名稱則是InputEnhance。 在安裝過程中, 安裝程式會自動新增Windows登入檔, 使Office應用程式調用INPEnh.dll資料庫文件作為外掛(詳細說明, 請點擊這裡查看)。新建的部分登入檔, 如下圖所示。
 
 
我們不難看到, LoadBehavior鍵值設置為3, 這意味著每當相關程式啟動時, 外掛將自動加載。 有趣的是, 這只是該軟體依附於系統之中, 但用戶是無法察覺奇存在的。 除此之外, 該軟體還在系統後台自動執行以下操作:
  • 獲取文件conf.kklm.n0808.com/tools.ini,其主要内容如下所示:

    該文件包含多項參數, 例如以base64編碼的安全分析工具列表以及StatServer伺服器位址,在撰寫本文時仍為kkyouxi.stat.kankan.com。
     
  • 檢查上文所提到的二進制分析工具是否已經運行: 如正在運行, 則立即停止執行Office外掛。最新解碼後的列表, 如下所是。

     
值得一提的是, 該列表包含Windows任務管理器、OllyDebugger等在內的分析工具與一個WiFi網路管理工具, 並不包含任何防毒產品。因此, 該程式的目的是躲避安全檢測設備。
  • 通過嘗試聯絡一些中國境內常見域名, 例如baidu.com與qq.com等, 檢查是否存在有效網路連接。設備未連網時, 該程式將轉入循環模式, 定期檢查是否存在網路連接。
     
  • 當以上檢查項目全部通過後, 該外掛將StatServer伺服器發送Windows系统版本與應用程式(例如WINWORD.exe)名稱等訊息, 然後執行INPEnhUD.exe。
     
  • 最後進入任務管理循環模式, 這一環節中的相關任務由另一程式完成, 因此我們稍後說明。
更新
接下來繼續執行INPEnhUD.exe, 其作用大致相當於更新工具, 尤其是能夠獲取寫死的網址
update.kklm.n0808.com/officeaddinupdate.xml,其最新數據如下圖所示。
 
該XML文件包含文件地址列表以及MD5雜湊值。更新程式會逐各下載文件, 校驗雜湊值開在確認符合後執行。
留意的讀者應該已經注意到上圖中的網址指向Uninstall.exe程式, 這一問題留待我們稍後討論。
最後一步, 更新程式執行所生的文件INPEnhSvc.exe。
 
服務
INPEnhSvc.exe文件, 是三程式架構的核心。該服務像針對Office外掛中的分析工具運行同樣測試之後, 將獲取一個XML配置文件, 其中包含七項指令, 每項指令均附帶一系列參數。 相關指令可大致可劃分為兩類:
  • 本機指令:scanreg、scandesktop、scanfavorites
  • 外部指令:installpcapp、installphoneapp、setdesktopshortcut、addfavorites、setiestartpage
正如指令名稱所示,本機指令由服務向直接執行:scanreg用以搜尋特定登入檔,向StatServer伺服器反饋是否存在或缺失;scandesktop與scanfavorites分别用來在桌面與收藏夾中搜尋快捷方式檔(擴展名.lnk)與網路連結檔(.url)。
 
另一方面,當程式接收到外部指令之後,會與Office外掛溝通,由後者負責執行相關指令。通訊通過配置文件tasklist.ini進行,分為三欄位:正在執行、已完成與完成日期。此外,兩者均包含毒有的標示代碼(GUID),並分别與任務相關連。更確切的說, 整个溝通過程如下:
  • 當外掛接收到外部指令之後,服務項目會在正在通訊一欄寫入附屬GUID與參數(網址等)。
  • 在任務管理循環環節,Office外掛讀取GUID之後,檢查文件tasklist.ini中已完成或完成日期一欄是否缺少該GUID。如只要正在執行一欄存在GUID,則開始執行相關編碼函數。
  • 運行完畢後,Office外掛會在已完成一欄中寫入GUID。此外,還在完成日期一欄中寫入installpcapp與installphoneapp指令的GUID。這樣做的目的,可能是需要定期重新執行相關指令。
整個架構可以歸納如下, 藍色矩形代表過程, 黃色則代表文件。
 
 
 
讀取需運行任務GUID。任務執行完畢,寫入GUID。 Office外掛INPEnh.dll 獲取
配置文件
Tools.ini
    執行  
本地任務文件tasklist.ini 更新程式INPEnhUD.exe 獲取
更新文件
Officeaddinupdate.xml
    執行  
寫入任務GUID 服務項目INPEnhSvc.exe 獲取
命令文件
Config.xml
 
 
外部指令名稱一目了然,無需詳細說明,當然出人意料的installphoneapp指令不在此限
 
手機應用程式
如名稱所示,installphoneapp指令是通過Office外掛下載Android系统程式(APK文件),當任何Android系统的手機接入電腦後實現自動安裝。首先,服務項目下載AndroidAndroid故障連接埠(ADB)二進制文件,即Android系统SDK安裝包的一部分,以及程式所需的資料庫文件。接下来,Office外掛將根據XML指令文件所提供的網址,下載APK文件。最後,再借助ADB命令devices列明接入電腦的Android設備,並通過install命令,在每一台連入的手機設備上安裝相關APK文件。
 
儘管如此,該安裝方式僅在相關Android設備啟用了USB故障排查模式後方為有效,該模式可通過手機設定選項進行設置。系统開發商之所以集結此功能,是便於系统開發目的而設, 但特定類别的應用程式往往需要此功能方可正常工作(例如截屏類軟體),Android手機根目錄權限破解或安裝用户自定義ROM,也需要用到該功能。值得注意的是,通過該方式安裝程式時,手機螢幕上並不顯示通常安裝軟體時的Android系统權限界面,因此用户對安裝過程毫不知情。換而言之,但凡啟用USB故障排查模式的Android手機,一旦接入電腦,相關應用程式將自動完成後台安装,並不给出任何提示。
 
在我們分析之時,Android應用程式已不再自動下載,具體原因本文末尾將予以說明,但其中的四款軟體在一些中國安全論壇上可以下載。相關應用程式的主界面,如下圖所示。
 
據我們分析, 所有這些程式均能夠為用戶提供真實功能。其中有三款是Android市場, 供用戶下載各類Android應用程式。我們在這些軟件中沒有發現明顯惡意功能, 但值得一提的是, 其編碼非常模糊不清。
 
最後一款軟體, 在我們編寫本文的時候, Google Play仍提供下載, 允許用戶以優惠費率撥打電話。但是該軟體有一些可疑的功能, 例如與Android系統廣告推送網站進行周期性通知。ESET防毒軟體將其偵測為Android/SMSreg.BT變種, 這是一種不良應用程式。
 
總體而言, 推送安裝相關手機應用程式的動機尚不明確。
 
後記: 迅雷網路科技公司告白
我們最後需要探討的問題, 是迅雷網路科技公司在其中所扮演的腳色。 不僅因為該二進制程式擁有迅雷公司的數位簽章, 其所指向的域名kankan.com以及其下用做StatServer的二級域名, 也同屬迅雷公司線上影音點播網站。 因此, 該公司參與此款軟體開發, 是不言而喻的。
 
去年八月, 因用戶反應強烈, 迅雷公司官方在新聞發布會上正式承認, 旗下部分員工利用公司資源開發並推廣了本程式。該公司解釋說, 軟體是公司屬下某個部門開發的, 並未經過公司同意。迅雷公司表示, 已經解聘了相關負責人, 並做出了公開道歉。
 
正是由於這個原因, 從八月初開始, 迅雷公司提供了由其簽名的卸載程式。 軟體內的更新功能, 會將卸載程式自動下載到所有染毒的電腦上。 據我們分析, 卸載程式工作正常, 能夠清除該軟體的所有殘留文件。 此外, 所有指向域名仍正常在線上並以最低工作量運行, 以確保卸載程式能夠執行。Kankan外掛所有指向域名仍正常在線上並以最低工作量運行,以確保卸載程式能夠執行。Kankan外掛的傳播過程,通過ESET系列防毒軟體八九月份間的檢測統計結果可見一斑,詳見下圖。
 
標題: Win32/Kankan當日檢測統計結果
 
由此可見, 該程式的傳播在8月8日左右達到巔峰值後迅速衰減(卸載程式的數位簽章日期為8月9日)。根據ESET疫情雷達系统所採集的統計數據, 該程式的感染地區分布圖如下所示。
 
不出意料,中國是大量受該軟體感染的唯一國家。
 
結論
假冒Office外掛、常駐程式,背景模式安裝Android手機程式以及其所具備的相關後門功能, 證實了許多中國用戶的疑慮, 同時也是ESET系列防毒軟體將該程式偵測為Win32/Kankan惡意程式的原因所在。
 
目前仍存在一些遺留問題需要探討, 例如最初的傳播途徑以及強制安裝Android的具體原因。 畢竟, 外部人士很難講清楚迅雷網路科技公司的實際參與程度。另外, 令我們略為驚訝的是, 就我們所知還沒有任何一家中國境外的網站報導過這一事件。
 
鳴謝
感謝Jean-Ian Boutin、Sieng Chye Oh與Alexis Dorais-Joncas參與分析此款惡意程式。
 
分析文件
 
文件下載器
A059D6851013523CDC052A03A91D71D3246A14C2 DB59E003D9F5EBF84EB895B2EE7832AF94D0C93E 722773145CB38249E96CC6A7F0FBC7955ACC5D56
 
Office外掛
688B5B319F0E2F5DCD2EDE7BBE39FAE29B5ED83F B221B71CF14E14FEBC4636DE624A2C6CEE3CE725 089A3BB51C5D5218DF47831489F1D8227E73F4B3
 
更新程式
1EFD454130A658DB83A171A8DCB944CAEADC8D8F 4F29B2A9778C02F6FDB63F9041DC4D2F4668B484
 
服務項目
1C223DA59F4BE7907A2FB00FF756083342166A5B 2D00B2DF8B1CEE7411B2D7B8201B382E2896708C
 
Android應用程式
A439B1EA45769EC2FA0EFC4098EC263662EF40AE(Android市場) 693E15A00B4934EE21A6423DE62C4A01947CE06A (Android市場) 0A1813FB3D1DD8B871D0575B15124543FF2313E1 (Android市場) C6013DE01EC260DC5584FAA2A35EF0580B3BDC89 (電話呼叫)