駭客是如何利用你的瀏覽器進行挖礦的?
0×1 概述
近期,千里目安全實驗室監測到了一大批網站系統被惡意植入了網頁挖礦木馬,只要訪問者透過瀏覽器瀏覽被惡意植入了網頁挖礦木馬站點,瀏覽器會即刻執行挖礦指令,從而淪為殭屍礦機,無償的為網頁挖礦木馬植入者提供算力,間接為其生產虛擬貨幣,這是一種資源盜用攻擊。由於網頁挖礦木馬存在很廣的傳播面和很不錯的經濟效益,因此、廣受黑產團體的追捧,讓我們對它防不勝防!
0×2 千里百科
區塊:在區塊鏈網路上承載交易資料的資料包。它會被標記上時間戳和之前一個區塊的獨特標記。區塊頭經過雜湊運算後會生成一份工作量證明,從而驗證區塊中的交易。有效的區塊經過全網路的共識後會被追加到主區塊鏈中。
區塊鏈:狹義來講,是一種按照時間序列將資料區塊以順序相連的方式組合成的一種鏈式資料結構,並以密碼學方式保證的不可篡改和不可偽造的分散式賬本。
礦機:礦機是挖礦機器的簡稱,就是用於賺取數字貨幣的計算機,這類計算機一般有專業的挖礦晶片,多采用燒顯示卡的方式工作,耗電量較大。個人計算機可以透過挖礦軟體來執行特定的演算法產生算力(俗稱挖礦)來獲得相應數字貨幣。
礦池:由於單一礦機想挖到一個塊的機率是非常小的,透過礦機聯合挖礦以提高几率。一個礦池的算力是很多礦機算力的集合,礦池每挖到一個塊,便會根據你礦機的算力佔礦池總算力的百分比,發相應的獎勵給到個體,也不會存在不公平的情況。
挖礦:挖礦是反覆嘗試不同的隨機數對未打包交易進行雜湊,直到找到一個隨機數可以符合工作證明的條件的隨機數,以構建區塊。如果一個礦工走運併產生一個有效的區塊的話,會被授予的一定數量的幣作為獎勵。
錢包:錢包指儲存數字貨幣地址和私鑰的軟體,可以用它來接受、傳送、儲存你的數字貨幣。
0×3 家族樣本分析
千里目安全實驗室透過持續對全網進行安全監測,發現近期有如下十種家族的網頁挖礦木馬的傳播比較活躍。詳情分析如下所示:
1、Coinhive家族網頁挖礦木馬介紹:
Coinhive是一個專門提供挖礦程式碼的JS引擎,在被攻擊網站的網頁內嵌一段JS挖礦程式碼,只要有人訪問被攻擊的網站,JS挖礦程式碼就會透過瀏覽器上執行挖礦請求,佔用大量的系統資源,導致CPU資源利用率突然大幅度提升,甚至100%。在這過程中網站只是第一個受害目標,而網站的訪問者才是最終的受害目標。
1.1、Coinhive家族網頁挖礦木馬程式碼,如下所示:
1.2、執行JS挖礦程式碼前後的效果,如下圖所示:
1.3、透過快捷鍵(Shift+ESC)來檢視瀏覽器的工作管理員,發現正是剛開啟的“XMR Mining Page”網站頁面佔用了98.4%的資源,正在瘋狂的挖礦。如下圖所示:
2、JSEcoin家族網頁挖礦木馬介紹:
JSEcoin是與Coinhive類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦程式碼,利用訪客的計算機CPU資源來挖掘數字貨幣進行牟利。但是與後者不同的是,JSECoin會將CPU使用率限制在15%至25%之間,並且始終顯示隱私宣告,為使用者提供退出選項(可選擇不提供運算服務)。
2.1、JSEcoin家族網頁挖礦指令碼程式碼,如下所示:
2.2、透過對JSEcoin挖礦程式碼進行除錯,發現執行完挖礦程式碼後會持續接收到需要運算的任務,如下圖所示:
2.3、透過進一步跟蹤運算過程,發現其透過WSS協議來獲取區塊的計算任務,然後將結果進行回傳效驗,校驗透過的會顯示OK標記。如下圖所示:
3、CryptoLoot家族網頁挖礦木馬介紹:
CryptoLoot是與Coinhive類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦程式碼,利用訪客的計算機CPU資源來挖掘數字貨幣進行牟利。不過CryptoLoot平臺的佣金比Coinhive平臺的佣金低很多,這可以大大降低以挖礦為盈利目標的黑色產業鏈成本。
3.1、CryptoLoot網頁挖礦指令碼程式碼,如下所示:
3.2、CryptoLoot網頁挖礦指令碼程式碼引數介紹,如下所示:
miner.min.js:為JS挖礦指令碼。
85e693dfe57edbdf8f53640b4c0b0d257513a504c503:為SiteKey,可以理解為JS挖礦引擎識別站點的唯一標識。
threads(value):指挖礦運算所啟用的執行緒數量。這裡的值為3,即表示啟用3個執行緒進行挖礦運算。
autoThreads(value):這裡的Value可以設定為true和false,當設定為true時,表示自動檢測使用者計算機上可用的CPU核心數量。
throttle(value):這裡的value是設定執行緒閒置時間比例的。如果值為0,即表示不進行節流(即進行CPU滿載運算)。這裡的值為0.2即表示將在20%的時間內保持空閒狀態。
4、DeepMiner家族網頁挖礦木馬介紹:
DeepMiner是一個開源的JS挖礦專案,也是在有訪問量的網站中嵌入一段網頁挖礦程式碼,利用訪客的計算機CPU資源來挖掘數字貨幣進行牟利。
4.1、DeepMiner網頁挖礦指令碼程式碼,如下所示:
4.2、DeepMiner網頁挖礦指令碼同源分析:
DeepMiner是一個已經被開源了的專案,透過分析,發現上面的挖礦指令碼程式碼為此開源專案修改而來(開源專案地址為:)。
5、Webmine家族網頁挖礦木馬介紹:
Webmine也是一個與Coinhive類似的JS挖礦引擎,在有訪問量的網站中嵌入一段網頁挖礦程式碼,利用訪客的計算機CPU資源來挖掘數字貨幣進行牟利。
5.1、Webmine網頁挖礦指令碼程式碼,如下所示:
5.2、訪問JS挖礦站點時,發現CPU使用率劇增,隨後退出對JS挖礦站點的訪問,發現CPU的使用率一下子就降下來了。如下圖所示:
6、AuthedMine家族網頁挖礦木馬介紹:
AuthedMine也是一個與Coinhive類似的JS挖礦引擎,在有訪問量的網站中嵌入一段網頁挖礦程式碼,利用訪客的計算機CPU資源來挖掘數字貨幣進行牟利。
6.1、AuthedMine網頁挖礦指令碼程式碼,如下所示:
6.2、 AuthedMine網頁挖礦指令碼與之前的幾種相比有比較大的改進,大致如下3點:
設定了執行緒閒置時間比例,這樣不容易被礦機受害者發現和察覺。
設定了挖礦裝置型別,只對非移動裝置進行挖礦運算,防止手持終端裝置被卡死。
設定了挖礦運算時間,只挖礦4小時,避免長時間CPU過高而遭暴露。
7、BrowserMine家族網頁挖礦木馬介紹:
BrowserMine是一個與DeepMiner類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦程式碼,利用訪客的計算機CPU資源來挖掘數字貨幣進行牟利。
7.1、BrowserMine網頁挖礦指令碼程式碼,如下所示:
7.2、 執行JS挖礦程式碼前後的效果,如下圖所示:
8、Coinimp家族網頁挖礦木馬介紹:
Coinimp是與Coinhive類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦程式碼,利用訪客的計算機CPU資源來挖掘數字貨幣進行牟利。稍有不同的是Coinimp的平臺費用基本免費,而且JS挖礦指令碼可以重置為任意名字存放在本地,偽裝性更高。
8.1、Coinimp網頁挖礦指令碼程式碼,如下所示:
8.2、Coinimp網頁挖礦指令碼程式碼與之前的幾個有一個明顯的區別就是SiteKey值變成了64位,同時,JS挖礦程式碼可以儲存到本地儲存了,訪問引數與JS指令碼名稱可以自行定義。
9、CryptoWebMiner家族網頁挖礦木馬介紹:
CryptoWebMiner是與Coinhive類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦程式碼,利用訪客的計算機CPU資源來挖掘數字貨幣進行牟利。不過CryptoWebMiner平臺的佣金比Coinhive平臺的佣金低很多,這可以大大降低以挖礦為盈利目標的黑色產業鏈成本。
9.1、CryptoWebMiner網頁挖礦指令碼程式碼,如下所示:
9.2、CryptoWebMiner網頁挖礦指令碼程式碼結構與Coinhive很類似,但支援的幣種比較多,主要有BTC、ETH、ZEC、ETN、XMR。另外,它支援的平臺也很多,分別為手機端挖礦、PC端挖礦、WEB端挖礦,可見傳播面很廣。
10、PPoi家族網頁挖礦木馬介紹:
PPoi是與Coinhive類似的JS挖礦引擎,也是在有訪問量的網站中嵌入一段網頁挖礦程式碼,利用訪客的計算機CPU資源來挖掘數字貨幣進行牟利。
10.1、PPoi網頁挖礦指令碼程式碼,如下所示:
10.2、透過訪問PPoi平臺官方地址,發現已經被Google GSB加入黑名單了。如下所示:
0×4 趨勢分析與統計
1、我們透過對分析過的網頁挖礦木馬程式碼特徵,使用FOFA對全球所有線上Web應用系統進行統計,發現有60742892個Web應用被惡意掛載了網頁挖礦木馬。如下為全球TOP10地域的網頁挖礦木馬感染量和分佈情況。詳情如下所示:
統計資料來自於FOFA平臺
2、進一步透過這些網頁挖礦木馬的程式碼特徵來對中國境內所有線上Web應用系統進行分析和統計,發現有4557546個Web應用被惡意掛載了網頁挖礦木馬。如下為中國境內TOP N地域的網頁挖礦木馬感染量和分佈情況。詳情如下所示:
統計資料來自於FOFA平臺
0×5 安全建議
ü 定期對伺服器中的資料做備份,看到類似以上10種形態的可疑指令碼程式碼,需提高警惕(這很可能意味著我們的站點和服務被入侵了 ),找專業的安全人員來做分析和處理。
ü 如在中發現存在可疑的後門或惡意程式碼,需做全域性的排查和清理,然後再做安全加固工作。
ü 定期主動對伺服器及伺服器中的應用進行安全評估,及時發現潛在的風險,並及時處置和修復。
0×6 IOCs
C2:
URL:
/lib/coinhive.min.js
/lib/coinhive.min.js
/lib/miner.min.js
/lib/miner.min.js
/lib/authedmine.min.js
/lib/projectpoi.min.js
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31510736/viewspace-2155388/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 那個用你CPU挖礦的COINHIVE線上挖礦平臺要倒閉了Hive
- 瀏覽器是如何解析html的?瀏覽器HTML
- [URL轉碼]瀏覽器如何給URL進行轉碼的瀏覽器
- hello world 是如何輸出到瀏覽器的瀏覽器
- 動畫: 一個瀏覽器是如何工作的?動畫瀏覽器
- js如何判斷當前瀏覽器是否是谷歌瀏覽器JS瀏覽器谷歌
- 火狐瀏覽器是如何又變快起來的?瀏覽器
- 瀏覽器定位是如何實現的?為什麼會有瀏覽器定位失敗的情況?瀏覽器
- 如何判斷是否是360瀏覽器瀏覽器
- 瀏覽器是如何渲染網頁的《學如逆水行舟,不進則退》瀏覽器網頁
- Web 應用安全性: 瀏覽器是如何工作的Web瀏覽器
- edge是什麼瀏覽器 microsoft edge是ie瀏覽器嗎瀏覽器ROS
- emoji在瀏覽器中是如何傳遞給伺服器的瀏覽器伺服器
- 判斷瀏覽器版本並且對使用低版本瀏覽器的使用者進行提示瀏覽器
- 重學瀏覽器(1)-多程式多執行緒的瀏覽器瀏覽器執行緒
- 幾種可以對瀏覽器進行核心攻擊的方法瀏覽器
- js如何判斷是否是IE瀏覽器JS瀏覽器
- ABAP的語法高亮是如何在瀏覽器裡顯示的瀏覽器
- microsoft edge是ie瀏覽器嗎 edge瀏覽器和ie瀏覽器一樣嗎ROS瀏覽器
- [譯]現代瀏覽器是如何提升效能的:網路層瀏覽器
- Web開發學習筆記——瀏覽器是如何工作的Web筆記瀏覽器
- 這十二行程式碼是如何讓瀏覽器爆炸的?行程瀏覽器
- 瀏覽器呼叫攝像頭進行拍照程式瀏覽器
- 【譯】瀏覽器如何工作:在現代web瀏覽器場景的之下瀏覽器Web
- 如何在瀏覽器中執行 VS Code?瀏覽器
- 瀏覽器是怎麼看閉包的。瀏覽器
- 如何判斷IE瀏覽器的版本瀏覽器
- 如何查詢瀏覽器的User Agent瀏覽器
- 如何刪除瀏覽器的快取瀏覽器快取
- 如何判斷瀏覽器是否是IE11瀏覽器IE11
- 超3萬臺印度路由器遭挖礦軟體劫持:利用瀏覽器產出門羅幣路由器瀏覽器
- [譯] 如何根據瀏覽器的現代、過時進行包的分發瀏覽器
- 瀏覽器執行原理瀏覽器
- 瀏覽器執行緒瀏覽器執行緒
- js 判斷是什麼瀏覽器、是否為谷歌瀏覽器JS瀏覽器谷歌
- 微信跳轉瀏覽器提示,微信瀏覽器中直接跳轉手機預設瀏覽器是怎麼實現的瀏覽器
- 瀏覽器-解決火狐瀏覽器總是提示Adobe Flash更新的問題瀏覽器
- 瀏覽器是怎樣渲染網頁的呢?瀏覽器網頁