挖礦木馬是利用各種方法入侵計算機,利用被入侵計算機的算力挖掘加密數字貨幣以牟取利益的木馬。其既可以是一段自動化掃描、攻擊的腳本,也可以集成在單個可執行文件中。挖礦木馬為了能夠長期在服務器中駐留,會采用多種安全對抗技術,如修改任務計划、修改防火牆配置、修改系統動態鏈接庫等,使用這些技術手段嚴重時可能造成服務器業務中斷。
5.2.1 隔離被感染的服務器/主機
部分帶有蠕蟲功能的挖礦木馬在取得當前服務器/主機的控制權后,會以當前服務器/主機為跳板,對同一局域網內的其他機器進行漏洞掃描和利用。所以在發現挖礦現象后,在不影響業務的前提下應及時隔離當前服務器/主機,如禁用非業務使用端口、服務,配置ACL白名單,非重要業務系統建議先下線隔離,再做排查。5.2.2 確認挖礦進程將被感染服務器/主機做完基本隔離后,就要確認哪些是挖礦木馬正在運行的進程,以便執行后續的清除工作。挖礦程序的進程名稱一般表現為兩種形式:一種是程序命名為不規則的數字或字母;另一種是偽裝為常見進程名,僅從名稱上很難辨別。所以在查看進程時,無論是看似正常的進程名還是不規則的進程名,只要是CUP占用率較高的進程都要逐一排查。5.2.3 挖礦木馬清除挖礦木馬常見的清除過程如下。(1)阻斷礦池地址的連接。在網絡層阻斷挖礦木馬與礦池的通信。(2)清除挖礦定時任務、啟動項等。
大部分挖礦進程為了使程序駐留,會在當前服務器/主機中寫入定時任務,若只清除挖礦木馬,定時任務會直接執行挖礦腳本或再次從服務器下載挖礦進程,則將導致挖礦進程清除失敗。所以在清除挖礦木馬時,需要查看是否有可疑的定時任務,並及時刪除。還有的挖礦進程為確保系統重啟后挖礦進程還能重新啟動,會在系統中添加啟動項。所以在清除時還應該關注啟動項中的內容,如果有可疑的啟動項,也應該進行排查,確認是挖礦進程后,進行清除。(3)定位挖礦木馬文件的位置並刪除在Windows系統下,使用【netstat-ano】系統命令可定位挖礦木馬連接的PID,再通過【tasklist】命令可定位挖礦木馬的進程名稱,最后通過任務管理器查看進程,找到挖礦木馬文件的位置並清除。在Linux系統下,使用【netstat-anpt】系統命令可查看挖礦木馬進程、端口及對應的PID,使用【ls-alh/proc/PID】命令可查看挖礦木馬對應的可執行程序,最后使用【kill-9PID】命令可結束進程,使用【rm-rffilename】命令可刪除該文件。在實際操作中,應根據腳本的執行流程確定挖礦木馬的駐留方法,並按照順序進行清除,避免清除不徹底。
挖礦木馬僵屍網絡主要針對服務器進行攻擊,攻擊者通過入侵服務器植入挖礦機程序獲利。要將挖礦木馬僵屍網絡扼殺在搖籃中,就要有效防范攻擊者的入侵行為。以下是防范挖礦木馬僵屍網絡的方法。1)避免使用弱密碼服務器登錄賬戶和開放端口上的服務(如MySQL服務)應使用強密碼。規模龐大的僵屍網絡擁有完備的弱密碼暴力破解模塊,避免使用弱密碼可以有效防范僵屍網絡發起的弱密碼暴力破解。2)及時打補丁通常,在大部分漏洞細節公布之前,相應廠商就會推送相關補丁。因此,及時為系統和相關服務打補丁可有效避免攻擊。3)服務器定期維護挖礦木馬一般會持久化駐留在服務器中,若未能定期查看服務器狀態,則其很難被發現。因此,應定期維護服務器,包括查看服務器操作系統CPU使用率是否異常、是否存在可疑進程、任務計划中是否存在可疑項等。
如何判斷遭遇挖礦木馬判斷是否遭遇挖礦木馬,通常采用以下3種方法。(1)被植入挖礦木馬的計算機會出現CPU使用率飆升、系統卡頓、部分服務無法正常運行等現象。(2)通過服務器性能監測設備查看服務器性能,從而判斷異常。(3)挖礦木馬會與礦池地址建立連接,可通過查看安全監測類設備告警判斷。
實施以上排查分析流程,在確認了挖礦木馬程序或文件后,需及時進行清除加固,防止再次感染。(1)封堵礦池地址。挖礦程序有外連行為,應用安全設備阻斷礦池地址,防止用戶對外通信。(2)清理任務計划、禁用可疑用戶。任務計划的作用是定時啟動挖礦程序或更新代碼,所以如果確認了挖礦任務計划,應及時清理。由挖礦木馬程序創建的用戶,可能作為攻擊跳板或用作其他攻擊操作,當確認為異常用戶后,需及時禁用或刪除。(3)結束異常進程。大多數挖礦木馬的表象特征為占用CPU資源
資源過高,所以當確認為挖礦木馬后,應及時結束進程。(4)清除挖礦木馬。結束進程並不代表挖礦木馬就不會再運行,需要找到對應進程文件及其相關聯的腳本文件一並刪除。(5)全盤殺毒、加固。實施以上操作后,仍需繼續觀察是否還有反復跡象,是否還有進程或任務計划沒有清理干凈。使用殺毒軟件全盤殺毒,並對系統、應用做安全加固。刪除挖礦木馬利用的漏洞,防止系統再次“中招”。