记录遭遇挖矿程序kthrotlds的失败处理经历

1 发现问题html

在腾讯云上购买了一个centos7的服务器,平时用来练手,偶尔也安装一些程序进行测试,上面安装了mysql和redis,前段时间数据库常常掉线,连不上,到腾讯云后台进行查看,经过服务器实例的监控窗口,能够查看服务器的一些指标状态,包括CPU、内存、流量等数据,原本看到CPU使用超过了90%,而后用kill -9 pid,或者重启服务器,问题当时解决了,也就没有太注意,结果次日发现,CPU的利用率又变成了90%以上,而后再杀进程。mysql

 

 刚杀完就出现新的进程,CPU利用率仍是90%以上,查看CPU的名称,是kthrotlds,百度了一下,发现原来是挖矿程序。git

 

 

2 尝试解决问题github

仍是依靠百度,看看你们都怎么处理这个问题,有专业人士给出详细的分析,参见https://www.360zhijia.com/anquan/447557.html,并且给出解决方法,参见https://github.com/MoreSecLab/DDG_MalWare_Clean_Tool,我看专业人士的分析,不少看不太懂,大体理解病毒是能够自我保护,你杀了进程,它经过定时任务还会启动,你修改定时任务,它在自启动程序里还会还原出定时任务,还会从网上下载病毒内容,内容写的很详实,我大概看了分析状况,而后按照给出的解决方法来尝试清除,github上面给出了清除程序,我根听说明将busybox上传到bin目录下。上传方式是将busybox放到一个固定的网络位置,好比xxxx/resource/busybox,而后利用vnc方式登陆centos服务器,使用wget方式将busybox下载到centos服务器,一样道理将其它文件也下载centos服务器,而后运行clear_kthrotlds.sh,运行以后,进程没了,重启服务器,结果问题仍是存在,kthrotlds进程又出现了。redis

我换了方式,在腾讯云后台设置服务器的安全组规则,将服务器的入站端口都关闭,只保留登录用的22端口,将出站端口所有关闭,而后再杀进程,果真,cpu利用率变为小于5%,正常了,再经过top命令查看进程,kthrotlds进程没有了,但出现了好几个wget进程,这是要从网上来下载病毒程序。在腾讯云后台将端口打开,kthrotlds立刻就回来了,说明,这个病毒没有清除干净,很是顽固。sql

问题没有解决,好在上面没有过重要的数据,仍是从新安装系统吧,一劳永逸。数据库

3 一些教训centos

咱们碰到一些问题的时候,在解决问题的过程当中,咱们会学到不少东西。此次解决kthrolds挖矿病毒,虽然没有成功清除,也学到了很多centos操做知识,以及挖矿病毒方面的知识。分析了一下网上的解决方案没有奏效的缘由,解决方案是3月初公布的,个人病毒发做是在4月底,多是病毒有了变种或者更新,在没有完全掌握病毒的来龙去脉,不能针对性的清除病毒文件,总的来讲仍是对centos操做系统原理不够熟悉,若是耐心的多看看病毒分析报告,而后再查查相关资料,完全掌握病毒的原理,而后再慢慢清除,应该可以解决问题,但花费的时间会很是多,最终放弃是由于精力没有放到这上面,还想继续使用服务器,也就是直接重装系统来的方便。安全

亡羊补牢,出现问题了,咱们仍是要总结一些经验教训,杜绝之后再发生相似的状况。服务器

3.1要勤备份

我这个服务器上面主要资料就是测试用的数据库mysql,上面有一些数据,好在平时在局域网测试的时候,也有一些备份,可能数据不够新,但还能用,固然若是是天天备份,可能会更好一些。并且,养成勤备份的习惯,咱们能够应对一些突发情况,可以减小损失。这个问题,能够查查资料,看能不能写个定时任务,让数据库天天在固定的时间进行备份,或者手工备份。

3.2 设置好防御措施

病毒通常都是经过服务器的某些端口进行攻击,特别是中招以后,病毒会把这个服务器做为一个病毒源,去感染其它机器,因此作好防御工做,不只是对本身的服务器负责,也是对他人的服务器负责。防御措施简单的来讲能够有两个方面,一个是在后台,也就是腾讯云的安全组设置,设置服务器的入站规则和出站规则,入站规则能够逐步对使用的端口进行开放,对本身了解的端口进行开放。

 

出站规则能够所有开放,不影响使用,若是中招了,就要对出站规则进行梳理调试。

再一个就是服务器的防火墙的设置,centos7的防火墙用的是firewall。

systemctl start firewalld #开启

systemctl status firewalld #查看状态

systemctl enable firewalld #开机自启动

firewall-cmd --zone=public --add-port=80/tcp --permanent #永久开启80端口

firewall-cmd --zone= public --remove-port=80/tcp –permanent #永久关闭80端口

firewall-cmd --zone=public --list-ports #查看全部打开的端口

firewall-cmd –reload #重载后生效

经过防火墙来设置开放某些端口,这样可以控制外部程序的非法访问。

经过两层控制端口的开放和关闭,默认关闭端口,只有在使用的时候,明确知道外部访问服务器要经过哪一个端口,咱们再开放它,这样操做比较安全。

3.3 谨慎安装软件

此次的挖矿病毒,主要的问题应该是出在redis上面,服务器上安装了redis,但对软件不太了解,为了能尽快使用,在网上直接找了点资料,把访问权限所有放开,没有深刻的评估一下软件的安全问题,挖矿病毒就是经过redis的漏洞,攻击服务器,若是绑定ip,不对全部的网络放开,可能会更安全些。还有就是没有设置密码,这两点很关键。这两个须要设置的内容,经过修改redis.conf实现。利用vi打开redis.conf。好比绑定本机访问和设置访问密码123456,则修改两个地方。

bind 127.0.0.1

requirepass 123456

修改这两个地方以后,进行保存,重启服务

cd /usr/local/bin

./redis-server /etc/redis.conf

这样就完成redis访问ip的控制和密码设置,加强redis的防御。

4 结语

对于服务器来讲,安全问题相当重要,很庆幸个人服务器上面没有重要数据,但不能存在侥幸心理,在生产环境中,若是不注意防御,一样存在安全问题。腾讯云或者阿里云这些云服务器商,也会提供一些防御服务,能够有效防止病毒攻击,不过,费用不菲,好像腾讯一个月要小4000,就像房子同样,安全问题是服务器的刚需,在数据为王的时代,若是没有安全保障,数据也就没有了。

对于企业的服务器来讲,仍是要花钱买安全,作到万无一失,对咱们本身用的服务器,也是要在技术上谨慎处理,尽可能减少服务器的安全隐患。

相关文章
相关标签/搜索