跳到主要內容區塊

ntuccepaper2019

專題報導

探討挖礦資安事件
  • 卷期:v0048
  • 出版日期:2019-03-20

作者:林宜進 / 臺灣大學計資中心北區學術資訊安全維運中心 李美雯 / 臺灣大學計算機及資訊網路中心


近年因挖礦行為有利可圖,有心人士試圖透過此種方式牟利,此舉不僅大量消耗電腦資源,造成電力的浪費,亦可透過挖礦程式竊取使用者的機敏資料。
本文從介紹虛擬貨幣開始,透過說明挖礦事件的演變,敘述與資安事件的關聯,並提供挖礦事件案例分析成果,最後提供建議處理措施。

 

虛擬貨幣介紹

虛擬貨幣是一種透過運算(挖礦)而獲得、可購買商品的交易媒介,而且現在虛擬貨幣也可以與實體貨幣做兌換。世界上第一個虛擬貨幣是比特幣,在2008年由中本聰提出,並在隔年發行。經過多年來的發展,現今出現在人們眼前虛擬貨幣多了無數種類,例如:門羅幣、瑞波幣、萊特幣及乙太幣等等。

 

虛擬貨幣與勒索病毒

2017年5月爆發大規模的Wannacry勒索病毒資安事件,駭客組織利用攻擊程式「永恆之藍」入侵主機植入勒索病毒,導致主機被加密上鎖,需支付虛擬貨幣比特幣才得以解密,如圖一所示。

 


圖一:勒索病毒的中毒畫面

 

同時期也有部份人士利用「永恆之藍」入侵主機植入挖礦程式,利用主機管理者不知情下進行挖礦,以賺取虛擬貨幣比透過勒索病毒獲利更多。

 

挖礦型態的演變

勒索病毒事件爆發後,不論是軟體公司或是資安公司都提供對應的補救措施,希望遏止勒索病毒持續擴散,之後出現的勒索病毒變種也都能在短時間內被控制住。另一方面,當時正好趕上虛擬貨幣的熱潮,持續有人開發新的挖礦程式,有的隨著木馬或病毒程式一起執行;也有跟著正常程式安裝於主機。還有一種是透過瀏覽器開啟某些網頁就自動協助挖礦,是目前最常見的挖礦型態。 


2017年下半年,CoinHive網站建立一個專案,利用門羅幣相關演算法,開發出可藉由瀏覽網頁挖礦的API,寫成JavaScript的腳本指令(如圖二所示)。當時該專案被大力推廣,不少部落客或網站管理者透過此方式獲利。後續被有心人士利用此手法入侵有弱點的網站植入挖礦腳本,並調整機制降低被使用者發現的機率,例如:降低挖礦時CPU的使用率,或者開啟新視窗放在使用者難以察覺的位置。

 


圖二:挖礦腳本部分內容 (參考網址:http://liujinkai.com/2017/10/28/js-miner/)

 

挖礦事件案例

 

 oCam挖礦程式

2018年上半年,北區ASOC中心接獲使用者反映oCam螢幕錄影程式內含挖礦程式,經同仁測試Ohsoft旗下的軟體有類似情況。oCam安裝程式在授權合約步驟塞了一個同意贊助及安裝挖礦程式的選項(如圖三所示),安裝挖礦程式選項預設打勾,使用者也可以取消預設值安裝程式。只要使用者沒有注意到這個預設選項,挖礦程式隨著oCam主程式一起安裝了。

 


圖三:授權合約預設安裝挖礦程式選項

 

oCam螢幕錄影程式的挖礦程式BRTSvc.exe在使用者主機未連上網路或使用中時,不會占用主機的CPU,如圖四所示。

 


圖四:BRTSvc挖礦程式

 

溫馨小提醒

移除挖礦程式BRTSvc.exe,必須透過Windows內建的新增/移除程式移除,只移除主程式是沒有用的。移除該挖礦程式前請利用工作管理員關閉主程式的處理程序,或者檢查是否被防毒軟體隔離,導致無法移除。

 

◎ 網頁內嵌挖礦JavaScript腳本2018年下半年,某學校系所網頁,被內嵌挖礦JavaScript腳本(以下簡稱挖礦腳本),網頁程式碼被置放google短網址,如圖五所示。

 


圖五  網頁遭植入挖礦腳本

 

該google短網址執行時會被某些防毒軟體偵測到,並判定為挖礦程式,如圖六所示。

 


圖六:防毒軟體阻擋挖礦腳本執行

 

遭防毒軟體告警之JavaScript檔案,下載打開後,發現竟是被編碼過的程式碼,卻以表情符號呈現,顯示如圖七。

 


圖七:編碼過的javascript檔案

 

此JavaScript程式碼是透過特殊編碼「aaencode」後,而產生的表情符號。經還原後可以發現此程式碼,還會另外呼叫另一個123.js JavaScript程式碼,如圖八所示。

 


圖八:解碼後的javascript檔案

 

而此123.js的程式碼,經分析過後,確認為CoinHive的網頁挖礦腳本,如圖九所示。

 


圖九:CoinHive網頁挖礦腳本

 

建議處理措施

當挖礦程式在背景執行時,經常會出現以下情況。使用者會覺得電腦操作會變得異常的遲鈍,如果對聲音較敏感的人還會察覺電腦的風扇聲音比平常大聲。
當類似狀況出現時,建議處理方式:

 

◆開啟工作管理員,檢查CPU和GPU的使用率是否維持在高負載的狀態。因為挖礦需要進行大量的高速運算;硬體處在高使用率狀態下會產生大量的廢熱,風扇會提高轉速加速廢熱排出。

 

◆ 在工作管理員當中,找出消耗這兩個硬體的處理程序,並且關閉該程式。如果是經由網頁挖礦,通常瀏覽器的處理程序CPU使用率特別高,可能是某個網頁正在執行挖礦腳本,把該網頁關掉主機就會恢復正常。

 

◆使用防毒軟體進行掃毒;如果沒有安裝防毒軟體的話,可以使用防毒軟體線上的版本掃描電腦。

 

從本文挖礦事件的分析可看出挖礦行為分成自願與非自願。以非自願來說,是使用者在瀏覽網頁時,遭網頁內嵌挖礦腳本於背景中偷偷地挖礦。
以下提供兩種方法可主動阻擋挖礦腳本的執行:

 

◆安裝防毒軟體
挖礦程式被發現已經有一段時間了,大部分的防毒軟體理應都能偵測到挖礦程式,並且在程式運作前可阻擋程式執行並向使用者告警。再者,幾家防毒軟體公司也推出手機版,使用者可以安裝手機版的防毒軟體進行阻擋。

 

◆安裝瀏覽器插件(Plugin)
此方法以阻擋網頁挖礦為主,介紹兩個常用的瀏覽器插件Minerblock及No coin。一般瀏覽器插件的阻擋方式是比對內建黑名單的資料庫;而Minerblock多提供一種連線偵測的方式進行阻擋。

 

參考資料 

1. Coinhive〈Coinhive官方網站〉。2019-03-05網址:https://coinhive.com/
2. TechNews〈懷疑電腦越來越慢?有 2,500個網站會偷用你的電腦挖礦,就算關掉瀏覽器也一樣〉。2017-12-07 網址:https://technews.tw/2017/12/07/websites-use-your-cpu-to-mine-cryptocurrency-even-when-you-close-your-browser/
3. 維基百科〈門羅幣〉。2019-01-31網址:https://zh.wikipedia.org/zh-tw/%E9%97%A8%E7%BD%97%E5%B8%81
4. liujinkai.com〈JS挖? - ???是如何利用网?挖?的?〉。2017-10-28 網址:http://liujinkai.com/2017/10/28/js-miner/
5. Github〈MinerBlock〉。2019-01-31網址:https://github.com/xd4rker/MinerBlock
6. Github〈No Coin〉。2019-01-31網址:https://github.com/keraf/NoCoin