今天,你的服务器被“挖矿”了吗?

今天,你的服务器被“挖矿”了吗?_第1张图片

本文作者:晨光

运维工程师

web服务应用是最为常见的应用之一,主要是通过对公网放行服务器的端口供客户访问来提供服务。这类服务对数据安全、访问控制的要求会比较高。但最为核心的还是后端服务器主机层,当后端主机不能正常工作时,前端展示的web服务一定是收到牵连的,如何维护后端服务器正常运行就显得尤为重要了。

今天,你的服务器被“挖矿”了吗?_第2张图片

这里提到后端主机的正常运行,就不得不提“黑客”这个词了,让互联网小白一筹莫展的无形杀手。他们通过各种软件的漏洞,网络等方面无孔不入地入侵安全度较低的服务器,常见的手段有sql注入,挖矿,xss等。

挖矿丨小科普

挖矿:即比特币挖矿,是一种利用电脑硬件计算出比特币的位置并获取的过程。

被挖矿的现象:cpu资源被疯狂利用。

被挖矿的方式:利用软件漏洞,如Redis未授权访问缺陷,voip环境等漏洞登录服务器,定时下载脚本文件并运行,消耗系统资源。

这里分享一个被“挖矿”事件处理的案例。

背景

有同一批服务的主机接连的cpu不断跑高至打满,并持续。导致对外的应用服务无法正常被访问。通过对服务器的资源使用情况查看发现,有一个陌生的进程在疯狂占用cpu资源。


处理过程

首先,我们发现登录服务器非常卡,网站加载速度特别慢,作为优秀的运维工程师需要解决一下这个网站速度问题。这时最直观的查看方式就是top一下系统资源。(如下图)

今天,你的服务器被“挖矿”了吗?_第3张图片

4核的CPU被ksoftirqds进程占用了389%,这个进程看着也非常的不寻常,一个优秀的运维工程师断定,肯定是“被挖矿”了。

今天,你的服务器被“挖矿”了吗?_第4张图片

查看该进程的运行状态,可以看得出每隔10min定时执行shell,大量产生软中断进程,此进程与网络大量通信,进行上下文切换,导致占满CPU:

今天,你的服务器被“挖矿”了吗?_第5张图片

尝试使用kill命令无法正常的结束这个进程,再回到top的显示,发现jenkins还运行这个一进程watchdog。根据我多年的经验,看着也不像是一个正常的进程。使用lsof查看下这个进程打开的文件:

今天,你的服务器被“挖矿”了吗?_第6张图片

原来kill不掉,是因为有植入进程watchdog所致,而watchdog进程与外界存在大量通信。

同时一般都会被设定一个定时任务,再查看jenkins这个用户下的crontab:

果然存在这样一个定时任务的去下载脚本并执行了。

这时,先删除这个定时任务:

今天,你的服务器被“挖矿”了吗?_第7张图片

然后清除watchdog和ksoftirqds的进程文件:

今天,你的服务器被“挖矿”了吗?_第8张图片

最后kill掉watchdog和ksoftirqds的进程,并修改/var/spool/cron/的权限为000,这时再使用top查看服务器的资源情况。已经恢复到了正常的状态:


到这里,我们已经完成了“被挖矿”后的处理,希望各位优秀的运维工程师可以处变不惊运筹帷幄保障自己的服务器不被挖矿!(为自己的优秀的洞察力点个赞)

今天,你的服务器被“挖矿”了吗?_第9张图片

总结|处理挖矿的流程

1、使用top命令查看异常占用cpu资源的进程;

2、使用ps -ef|grep pid或lsof  -p pid或cd /proc/pid查看进程打开的文件;

3、使用for u in `cat /etc/passwd | cut -d":" -f1`;do crontab -l-u $u;done 查看所有的定时任务,定位异常crontab的用户;

4、进入异常crontab的用户删除定时任务;

5、删除第2步中查到的异常文件;

6、Kill第1步中异常的进程;

7、修改/var/spool/cron的权限为000,进入再次写入定时任务。

隐患分析

导致服务器主机资源被攻击的原因应从架构层,主机层,应用层分析,整个网站的架构非常的重要,做到高可用、安全、恶意攻击拦截才会相对良好的保障应用的安全。主机的安全策略,软件的部署方式,目录的权限等方面是保障主机与外界通信的安全墙。应用程序的结构,语句的合理性以及安全性是直接对外的窗口。开发良好的代码才不容易被sql注入,收到攻击。

主机层

1、防火墙安全措施实施不到位;

2、端口采用默认;

3、公网提供服务,未做访问、流量限制

应用层

1、应用环境单点,安全系数低

2、应用版本信息未隐藏,容易被找到漏洞

3、域名解析A记录到主机公网,直接暴露后端服务器主机信息

后期预防

挖矿程序一般都是通过软件的漏洞进入到服务器,执行一些脚本文件占用服务器资源。规范使用软件。做好网络安全隔离,可以大大减少这类事件的发生。

1、redis,数据库等软件不对外网暴露端口访问

2、对外端口修改为非常规端口

3、网络访问做安全产品过滤或限制

4、及时更新软件,保持最新稳定的漏洞修复

今天,你的服务器被“挖矿”了吗?_第10张图片

看到这里你学会了吗?

你可能感兴趣的:(今天,你的服务器被“挖矿”了吗?)