首次在微軟商店中發現挖礦劫持軟體
1月17日,賽門鐵克在Microsoft Store上發現了幾個可能不受歡迎的應用程式(PUA),這些應用程式祕密使用受害者的CPU來挖掘加密貨幣。我們向Microsoft報告了這些應用程式,隨後他們將這些應用程式從商店中刪除。
這些應用程式包括計算機和電池優化教程、網際網路搜尋、網路瀏覽器以及視訊檢視和下載,它們來自三個開發人員:DigiDream,1clean和Findoo。總的來說,我們發現了來自這些開發人員的八個應用程式共享相同的危險行為。經過進一步調查,我們認為所有這些應用程式很可能是由同一個人或組織開發的。
圖1.在Microsoft Store上找到的八個挖礦應用程式
使用者可以通過Microsoft商店中的免費應用top列表或關鍵字搜尋這些應用。我們發現的樣本在Windows 10上執行,包括Windows 10 S。
一旦下載並啟動了應用程式,他們就會通過在其域名伺服器中觸發Google跟蹤程式碼管理器(GTM)來獲取貨幣挖掘JavaScript庫。然後,挖掘指令碼被啟用並開始使用計算機的大部分CPU來為運營商挖掘Monero。雖然這些應用提供隱私政策,但在應用商店的描述中沒有提到貨幣挖掘。
這些應用程式於2018年4月至12月期間釋出,其中大部分都是在去年年底釋出的。儘管應用程式在商店中存在的時間相對較短,但仍有大量使用者下載了這些應用程式。雖然我們無法獲得準確的下載或安裝計數,但我們可以看到這些應用程式已擁有近1,900個評級。但是,應用程式評級可能會被欺騙性地誇大,因此很難知道有多少使用者真正下載了這些應用程式。
挖礦指令碼
這些應用程式的域名在其應用程式清單檔案中硬編碼,如圖2所示。
圖2.“Fast-search.tk” – Fast-search Lite應用程式的域名 – 在應用程式的清單檔案中硬編碼
每個應用程式啟動後,將在後臺靜默訪問域名,並使用金鑰GTM-PRFLJPX觸發GTM,此金鑰在所有這八個應用程式中共享。
GTM是一個合法的工具,允許開發人員將JavaScript動態注入其應用程式。但是,GTM可能會被濫用以隱藏惡意或危險行為,因為儲存在GTM中的JavaScript連結是https://www.googletagmanager.com/gtm.js?id={GTM ID},並不表示該函式呼叫的程式碼。
圖3. GTM指令碼,應用程式訪問該指令碼以啟用挖掘指令碼
通過監控來自這些應用程式的網路流量,我們發現它們都連線到以下遠端位置,這是一個加密貨幣挖掘JavaScript庫:http://statdynamic.com/lib/crypta.js。
然後,應用程式訪問自己的GTM並激活挖掘指令碼。
Crypta.js是一個加密的JavaScript庫,如圖4所示。
圖4.加密的JavaScript庫Crypta.js
解碼之後,我們發現它是Coinhive庫的一個版本。Coinhive是一個挖掘Monero的指令碼。自從Coinhive服務於2017年9月推出以來,已有許多報道稱其在網站訪問者不知情的情況下被用於加密貨幣挖掘劫持。
我們還研究了GTM上的礦工啟用碼,關鍵原始碼如圖5所示。
圖5. 解密後的Crypta.js
我們觀察到該礦工用金鑰da8c1ffb984d0c24acc5f8b966d6f218fc3ca6bda661,該金鑰為Coinhive的錢包。
這些應用程式屬於漸進式Web應用程式類,它們作為獨立於瀏覽器執行的Windows 10應用程式安裝在獨立(WWAHost.exe程序)視窗中。
共享域名伺服器
從應用程式的網路流量中,我們找到了每個應用程式的託管伺服器。通過Whois查詢,我們發現所有這些伺服器實際上都具有相同的來源。因此,這些應用程式很可能是由使用不同域名的相同開發人員釋出的。
圖6.Whois查詢顯示應用程式的伺服器具有相同的來源
我們已向微軟和谷歌通報了這些應用的行為。 Microsoft已從其商店中刪除了這些應用程式。挖掘貨幣的JavaScript庫也已從Google跟蹤程式碼管理器中刪除。
緩解
採取以下預防措施,保護其免受線上威脅和風險的影響:
· 保持軟體是最新版本。
· 不要從不熟悉的網站下載應用程式。
· 僅從受信任的來源安裝應用程式。
· 密切關注應用程式請求的許可權。
· 密切關注計算機或裝置的CPU和記憶體使用情況。
· 安裝合適的安全應用程式(如Norton或Symantec Endpoint Protection)以保護裝置和資料。
· 經常備份重要資料。
保護
Symantec和Norton產品分別檢測應用程式和JavaScript加密貨幣挖掘程式,如下所示: