处理过程:
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 多线程
+ 位于前台进程组。