記一次醫療機構挖礦病毒清除
事件起因
某日接到客戶通知,多臺服務器被植入惡意程序,cpu占用率非常高,為了避免客戶業務系統受到影響,開始了此次應急處置工作。
一、排查階段
經過前期分析排查發現影響系統運行的程序名為warmup。

使用ps -ef 命令查看可疑進程。
發現/root/.warmup/warmup進程為可疑進程,進一步使用微步在線云沙箱分析文件warmup,發現其為惡意文件。


在相同目錄下發現多個記錄文件。

Alternatives為工具包。

確認為惡意挖礦文件。一開始病毒沒有完全清除,服務器一小時重啟一次,后來排查。

根據時間判斷發現etc下存在多個可疑文件。

發現sysconfig下iptables文件被更改,需要確認。

同時發現timesyns存在更該需要確認。

發現alternatives存在惡意腳本warmup。

發現xtab文件夾中存在挖礦腳本,并發現其中somescript與.somescript為挖礦腳本,其中發現引用多個文件。

確定xtab與cron.hourly下的somescript為惡意文件。


根據代碼確定,惡意文件遠程地址為http://5.133.65.53/soft/linux/$warmupfile.sh。

根據腳本發現etc/init.d下存在惡意文件warmup。

在warmup中發現其引用。

通過文件生成時間也可判斷一下兩個文件為惡意文件。

查看其他文件發現根目錄同時存在.warmup文件夾與挖礦文件相同。

本次處置業務分為:公眾業務平臺和領導平臺兩部分業務。在公眾業務平臺發現mongo用戶密碼為mongo是弱口令。由于生產系統未嘗試提權root操作。因為只有兩臺mongodb服務器感染挖礦病毒,大概率為弱口令導致。
領導平臺被控制的主機比較多,但是可以重新部署影響范圍較小沒有充分溯源分析。如需分析可以將虛擬機導出或者登錄后充分分析日志。
結論病毒可能通過弱口令或者開源中間件漏洞導致獲取root權限從而被放置挖礦病毒。
二、處置方法
2.1發現
top命令可以發現warmup進程占用所有cpu資源導致無法正常對外業務,服務器每小時規律性自動重啟。運營商態勢感知發現挖礦礦池域名。
2.2清除病毒
本次清理病毒為參考運營商提供一份應急報告進行如下操作:
- 拒絕所有到服務器的22端口訪問。
- 拒絕所有服務器對外部訪問。
- 刪除以下文件。
/.warmup
/root/.warmup
/etc/cron.hourly/somescript
/etc/cron.hourly/.somescript
/etc/xtab/somescript
/etc/xtab/.somescript
/etc/init.d/warmup與modules
/etc/alternatives/.warmup下文件與ip.txt
無iptables配置所以刪除/etc/sysconfig/iptables與iptables.save文件
- 關閉以下服務。
systemctl stop xinetd
systemctl disable xinetd
- 殺死warmup進程。
2.3建議的處置方法
因為實際上我們發現很難徹底根除病毒殘留文件。例如:意外發現系統命令歷史文件:/root/.bash_history被設置成了/dev/null的軟連接所以無法保存命令歷史。
- 備份數據庫中數據。
- 格式化后重新安裝操作系統。
- 重新部署業務系統。(防止業務系統例如webapp被植入木馬后門不能采用服務器上的文件備份)
- 導入數據庫備份。
- 系統重新上線。
三、如何防范
3.1上線前做好安全基線檢查:
- 禁止系統、應用業務、中間件弱口令
- 禁止服務賬號如:mongo用戶登錄操作系統
- 關閉不必要的服務(端口)
- 開展上線前漏洞掃描
- 在系統自帶iptables設置正確的控制策略,如難度較大至少邊界防火墻設置策略。
3.2做好邊界防護,嚴格訪問策略:
- 對外部的訪問:
在邊界防火墻上設置正確的訪問策略,嚴格進制服務器對外:互聯網和政務網的主動連接,如果必須請至少具體化源和目標地址。
- 對外提供服務:
只開放業務端口到服務器集群(精確到目標地址和目標端口),如非必要對境外提供服務,請最好設置只允許國內IP地址范圍訪問業務(中國大陸IP范圍和電子政務網IP范圍à對外服務的目標服務器地址和業務目標端口)。