内网主机频繁出现异常性能过高问题案例分析
1、问题描述
合作伙伴频繁出现内网主机异常性能过高的问题,对日常办公造成了不良影响。
为定位问题,部署了下一代防火墙(NGFW)、安全分析平台产品,并开启威胁情报服务进行观察。
2、处理过程
产品部署后,在NGFW日志中发现一台内网服务器(X.X.X.49)访问了外网地址(91.121.140.167),并被入侵防御系统(IPS)规则识别为矿机外联行为,随即对其进行阻断。
1)了解网络情况
合作伙伴反馈,该主机所在网段内均为内网业务服务器与主机,承载内网和分支机构的业务访问功能,不会主动访问公网,故判定该主机行为异常,需要进一步排查。
2)确认挖矿行为
远程登录(SSH)可疑主机(X.X.X.49),使用netstat-anop查看该主机的连接情况,发现它与一个与外网地址相连,且该地址与防火墙日志上的目的地址(91.121.140.167)相同,同时该连接没有PID与Program name相关信息,情况明显异常。
Tips:PID (process identification)代表进程标识号,在大多数操作系统内核(如 Linux、Unix、macOS 和 Windows)中使用,它是在操作系统中创建进程时,自动分配的唯一标识号。一个进程即一个正在运行的程序实例。
威胁情报服务同样监控到了这个IP地址,发现它关联了5条反向DNS信息,其中4个域名都与supportxmr.com有关。
在网上查找域名supportxmr.com,该域名对应的是一个矿池。
至此可以初步确认,内网服务器(X.X.X.49)与外部矿池supportxmr.com有连接,存在挖矿行为。
3)查找挖矿程序
挖矿程序一般会占用大量系统资源,最直接的表现就是CPU占用很高,因此从CPU使用情况入手排查。
在问题主机上通过top命令查看CPU占用进程,发现各进程的CPU占用率都很正常,没有特别高的情况;但是用户态(us)占用率很高,达到了90.2%。这种情况,很有可能是系统top命令输出被篡改了。
根据以往的运维经验,判断系统被修改了/etc/ld.so.preload,从而影响了top命令输出使用的 find /etc -mtime 1 |grep ld.so.preload。
事实证明该文件的确被修改过。通过ls–la /etc/ld.so.preload命令查看文件的修改时间,可以看到在5月23日22点19分被修改。
通过cat/etc/ld.so.preload命令进一步查看文件内容,可以看到该文件加载了一个so文件 libprocesshider.so,so文件是二进制文本类型。
将/etc/ld.so.preload的内容删除,再通过top命令查看CPU占用情况。这次显示了一个CPU占用很高的程序,程序名称为.sh,PID为10273,基本可以断定.sh就是挖矿程序。
4)删除挖矿程序
根据挖矿程序的PID查看进程文件,可以看到在/usr/lib/mysql目录下有一个名为.sh的可疑文件。
查看该文件的MD5值为“6a034a7041f30688086080a1c922e60”。
在/etc/目录下查找是否还有/tmp/.sh文件,发现名为/bin/shh的可疑文件。
该文件的MD5值同样为“6a034a7041f30688086080a1c922e60”。
查看/etc/profile.d/php.sh文件,发现是一个先复制并执行脚本,而后删除脚本的文件。
在/etc/profile.d/目录下,根据文件修改时间这一特征,还发现了一个名为supervisor.sh的可疑文件。
文件supervisor.sh是以supervisord起的一个守护进程,相关配置放在文件/etc/.supervisor/supervisord.conf中。
查看supervisord.conf文件 ,找到配置文件是在conf.d目录下任意后缀为.conf的文件
查看conf.d目录,发现名为123.conf的文件。
通过文件123.conf,可以定位到.sh的再上层路径/etc/spts,以及输出文件位置。
查看/etc/spts的MD5值,发现其MD5值依然为“6a034a7041f30688086080a1c922e60”。
另外,查看定时任务时,发现系统会定时将/etc/.sh复制到/tmp/下执行再删除,达到隐藏自身的目的。
查看/etc下文件,发现名为.sh的脚本。
该文件的MD5值为“6a034a7041f30688086080a1c922e60”,与/usr/lib/mysql/.sh的MD5一致,说明两个文件是相同的。
至此,挖矿程序已定位确认,将对应的恶意文件和进程及守护程序和进程删除即可初步解决问题。为了避免系统中其他位置还隐藏了该恶意文件,通过find /etc -type f -print0 |xargs -0 md5sum|grep "6a034a7041f306880886080a1c922e60"命令,使用MD5特征找出系统中所有的恶意文件并删除。
3、后续安全加固
解决单点问题后,为了避免同类问题在内网中大量复制,应用安全分析平台与防火墙进行安全加固。
1)缩小攻击面
通过安全分析平台查看该服务器的开放端口, 发现主机存在未对外开放的3306与22端口,需要禁止外部访问。
在NGFW上禁止其它网络访问此服务器的3306和22端口,并加入服务对象“风险端口”中。
将服务器IP加入到地址对象“server”中。
配置IPv4控制策略并将策略优先级调到最高,阻断所有访问3306和22端口的流量。
2)清除横向扩散威胁
通过安全分析平台的天眼功能查询矿池域名pool.supportxmr.com的访问记录,确认只有服务器(X.X.X.49)访问过该矿池,基本确认其他主机没有感染挖矿病毒。
通过安全分析平台查询服务器(X.X.X.49)的行为记录,发现它并没有扫描内部主机,结合天眼功能查询域名的结果,基本确认暂不存在横向扩散风险。假设该服务器作为跳板对其它主机进行访问,将被安全分析平台记录并告警。
通过查看该服务器的访问关系,发现它可能被X.X.X.59和X.X.X.20扫描过,这两台主机可能已经被感染或控制。
其中X.X.X.59为外网IP,确认该IP与业务无关,加入防火墙黑名单。
X.X.X.20为内网办公PC,使用主机安全工具对它及同类主机进行了风险分析与加固。
3)加固系统
通过NGFW产品资产安全分析模块,发现内网有较多存在安全风险的主机,通过主机安全解决方案进行系统加固和风险清除,提升内网资产的安全系数。
4)升级NGFW特征库阻断威胁
在查杀挖矿病毒的过程中,获取到这个病毒的特征,随即加入到NGFW病毒特征库中,用户直接在线升级即可获得最新的病毒库版本,防止再次受到此病毒的攻击。
另外,将IP地址91.121.140.167、域名supportxmr.com及MD5值6a034a7041f30688086080a1c922e60更新到威胁情报中,为更的用户提供该病毒情报,阻止此威胁在其他网络扩散。
4、总结复盘
复盘此次挖矿病毒的查杀过程:
首先,了解网络情况,根据实际情况确定排查思路和方法。
其次,通过查看防火墙日志,协同威胁情报平台,确认挖矿行为的存在。
之后,通过挖矿程序占用CPU这个特征,找到对应的挖矿程序。
完成定位后,查找并删除系统中所有的挖矿程序。
最后,对网络进行安全加固,包括病毒查杀、加固系统、升级防火墙特征库、针对性配置安全防护策略等。
结语:安博通提出了SIIP(Security is in Process)过程安全架构,强调:网络安全是一种过程,而不是一个结果,只要保证过程持续安全,则结果更加趋向安全,此次查杀过程正是最好的体现。在此次安全事件的处置过程中,云端威胁情报和安全分析平台提供了智能化帮助,最终通过NGFW实现了网络防护的安全结果。