處理過程:
1、查找異常進程,確定病毒進程,定位病毒腳本的執行用戶
2、殺掉病毒進程,注意要檢查清楚,病毒進程可能有多個,同時也要注意不要誤刪系統進程或者阿里雲的進程
3、檢查定時任務,一般都會有,以達到病毒自啟的效果,通過定時任務內容定位病毒腳本的位置,然后刪除病毒腳本
4、整改用戶賬號
5、檢查系統現有軟件漏洞
一、查找異常進程,確定病毒進程
執行命令top,然后找出使用的cpu以及內存較多的疑似病毒進程
同時可以配合命令ps相互印證
ps -aux --sort=-pcpu |head -10
主要留意STAT為Ssl的進程,但這不是定律。
一旦找出疑似病毒進程后,記錄進程的啟動用戶以及進程號PID,然后使用命令:
ls -l /proc/PID/exe
查看進程的啟動文檔,一般來說挖礦腳本執行完之后會自我刪除,所以此時命令結果可以看到啟動文檔已被刪除。
二、殺掉病毒進程
確定病毒進程后,記錄進程的啟動用戶,然后通過命令kill -9 PID殺掉病毒,注意先檢查是否操作系統自帶的服務或者阿里雲服務。
三、檢查定時任務
執行命令查看該用戶的定時任務:
crontab -u 用戶名 -l
如果有,則可以執行命令進行修改刪除:
crontab -u 用戶名 -e
或者直接查看/etc/crontab文件、/var/spool/cron/文件夾,后者的幾率大一些,查看定時任務,檢查哪些定時任務是病毒的自啟任務,從而找出病毒執行文件位置,然后刪除該定時任務及病毒腳本。
四、整改用戶賬號
某些病毒是使用常見的用戶名,對服務器使用暴力破解密碼的方式來攻擊服務器,如:mysql、postgres、oracle等等,所以我們要妥善管理用戶賬號。首先只創建有用賬號,一些無用賬號直接刪除,然后盡量避免使用一些軟件名來作為用戶名,如剛剛提到的數據庫軟件名,最后若無遠程服務器需求的賬號,應創建非登錄用戶,直接修改/etc/passwd文件把用戶改成nologin級別。
五、檢查軟件漏洞
檢查系統安裝的軟件是否存在漏洞,有的話則修復,如redis需要加上訪問密碼或bind 127.0.0.1配置項,tomcat的ajp漏洞則升級tomcat或者禁用ajp的相關服務。
TIPS
1、修改用戶級別為nologin之后,需要切換用戶時,su命令需加上shell參數“-s”,如:su mysql -s /bin/bash
2、使用ps命令查看進程的當前狀態,其中STAT列的含義如下:
D 不可中斷的休眠。通常是IO。
R 運行。正在運行或者在運行隊列中等待。
S 休眠。在等待某個事件,信號。
T 停止。進程接收到信息SIGSTOP,SIGSTP,SIGTIN,SIGTOU信號。
W paging,在2.6之后不用。
X 死掉的進程,不應該出現。
Z 僵死進程。
通常還會跟隨如下字母表示更詳細的狀態。
< 高優先級
N 低優先級
L 有pages在內存中locked。用於實時或者自定義IO。
s 進程領導者,其有子進程。
l 多線程
+ 位於前台進程組。