【java开发安全防护篇】之记一次挖矿程序的解决方案

286 阅读3分钟

前言: 当你申请了一个Linux服务器,那么在使用的过程中如果没有安全防护的意识,那么很容易遭受病毒,特别是挖矿病毒,大多数的挖矿病毒都是因为使用了弱密码,比如redis没有设置密码或者使用了弱密码,就容易被人暴力破-解...

云栖社区,阿里云安全发布了:
《2019年云上挖矿僵尸网络趋势报告》首发:挖矿木马全面蠕虫化,有兴趣的小伙伴可以看一下。

当你的Linux服务器遭遇到了挖矿病毒,可尝试以下解决方案:

1.更改系统用户名不要为root(这个改不改无所谓,改了之后很多相关程序默认就会变,还是不改吧),端口不要为22

2.外网入方向安全组不要使用0.0.0.0/0,只需放开所需端口

3.任何服务都需设置强密码,密码不能使用弱密码,防止暴力破-解

4.远程连接使用密钥登陆,尽量不使用密码登陆

5.mysql,redis最好分开服务器,不要同一个,或者直接用云数据库

6.如果发现被入侵,那么解决步骤如下:

1)在服务器上运行 top 命令,查看占用cpu大的程序,找出PID
2)通过 PID 获取对应文件的路径。ls -l /proc/$PID/exe 然后,找到并删除对应的文件。
3)然后进行Kill -9 杀掉进程
4)查找隐藏的恶意模块,如果有发现就删掉

file /lib/udev/usb_control/raid.ko
file /lib/udev/usb_control/iptable_mac.ko
file /lib/udev/usb_control/snd_pcs.ko
file /lib/udev/usb_control/usb_pcs.ko
file /lib/udev/usb_control/ipv6_kac.ko

5)将挖矿程序的安全组出方向进行禁止
6)查询当前用户的所有的定时任务 crontab -l
7)查询所有用户的定时任务

for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l -u $u;done

7.删除所有定时任务 crontab -r

ps -ef| grep cron    查找定时任务进程(这个就是主要的脚本,他不是一个定时任务因为crontab找不到,它是一个进程)
ps -ef| grep python    查找可以python进程
ps -ef| grep php   查找php可疑进程

找到可疑的,直接删,这个才是真正的主要病毒脚本进程
之后再top,逐个杀死它启动的各个子进程

9.find / -name python 查找关键词python的文件路径,删掉可疑文件

10.及时修复阿里云后台提示的相关漏洞及报警信息

11.确定病毒入侵的报警时间,查找范围内被动过的文件

如果以上的步骤都不能解决,那么终极方案,就只能买云服务器平台的安全防护杀毒或者“重置服务器”了。

总结:

现在的病毒一旦侵入,并不是这么好杀死的。因为总会有很多隐藏的定时自动生成的病毒脚本,很多时候并不能很好的彻底清除病毒。所以web项目中,一般都会做好集群服务器和备份服务器和买好专用的比如数据库云服务器,一旦某一个服务器遭受了病毒还能停掉彻查而不至于cpu被挤爆。当然还有很多专业的防御能力,比如Linux服务器的一些防火墙配置和服务器使用v-p-n进行远程连接。


结语:以往都是看别人的博客进行学习技术,其中不乏有精华博客也有吊儿郎当的CV大法文章,所以决定将自己所学所用所整理的知识分享给大家,主要还是想为了后浪们少走些弯路,多些正能量的博客,如有错漏,欢迎指正,仅希望大家能在我的博客中学到知识,解决到问题,那么就足够了。谢谢大家!(转载请注明原文出处)