概述
一個真實的Linux惡意軟體入侵環境,往往包含有病毒檔案、病毒程式、惡意啟動項、網路通訊流量等病毒項,若我們只獲得單一的病毒檔案,很難還原出惡意軟體的整個攻擊環境,從而不便於對攻擊鏈進行全面的研究分析,以及產品安全能力測試。下面,介紹一種基於Docker的方法,可以自動化地採集及還原惡意軟體的整個攻擊場景,以最大程度地模擬主機中毒的環境,方便後續對惡意軟體進行研究與分析。
該方法的原理是,使用bash指令碼自動化收集中毒主機上的病毒項,然後打包成容器環境,最後通過Docker在本地模擬執行,這時生成的Docker容器就包含了完整的惡意軟體環境。

詳細步驟
如下,以StartMiner(8220挖礦家族)的中毒環境作為演示,通過命令可以看到主機中包含有惡意定時任務、病毒檔案、病毒程式等資訊。

採集指令碼具體的程式碼如下,主要採集以下目錄的檔案:
[1] /tmp/、/root/、/opt/ 病毒檔案常見目錄
[2] 定時任務檔案
[3] ssh快取檔案
[4] syslog和audit安全日誌
[5] 程式資訊
[6] 網路資訊

然後自動化生產docker-compose.yml檔案,用於一鍵建立docker容器。

malbox.sh指令碼執行數秒後,即可打包好所有病毒項,生成檔案malbox.tar.gz。

將malbox.tar.gz在本地解壓縮,malbox目錄便包含Docker環境的所需的檔案系統和配置檔案,docker-compose.yml的功能為對映關鍵目錄,及模擬執行惡意命令。在執行之前需要自定義下docker-compose.yml的資訊,填上病毒家族名,以及啟動時要執行的命令(可以參考ps.txt及netstat.txt填上需要模擬的病毒程式命令)。

修改完後,使用命令docker-compose up -d即可一鍵部署容器,檢視容器列表,若出現了startmienr_2010便說明容器執行成功了。

惡意軟體容器所使用的基礎映象為malbox,該映象在ubuntu映象基礎上新增了惡意軟體常用到的一些命令及服務(wget、curl、ssh、crontab等),以達到更好的模擬效果。

使用docker exec -it startminer_2010 /bin/bash命令,就能進入到容器,此時的環境就跟中毒主機的環境幾乎一樣了,可以在該環境中進行排查分析。

檢視程式,也能清晰地看到惡意的下載程式,以及CPU佔用率極高的挖礦程式。

容器中的syslog日誌和audit.log日誌,也有助於研究員對整個惡意軟體的攻擊鏈進行溯源。

audit可以使用自定義規則進行監控,將可疑行為按照ATT&CK矩陣進行分類。

總結
模擬出來的惡意軟體容器,方便搭建及部署,若有蜜網或EDR環境,還可以將容器接入到其中以更好地檢測收集惡意軟體的惡意流量、惡意行為。
參考連結https://github.com/vulhub/vulhub/