Linux&HPC并行计算集群中挖矿病毒临时解决方法及预防方法研究

一、集群中病毒临时解决方法

系统异常现象:top中CPU使用率达100%,但无法看到是哪个进程使用,类似下图所示:

使用netstat命令查看网络连接,同样可以看到一个不显示进程名称的可疑连接:

以上的系统异常现象是该病毒的其中一个版本(或称为变种)的行为导致的现象,其他变种可能会有其他现象,近期观察到有部分变种仅占用一部分CPU资源,而非100%的CPU占用,从而降低被人感知到中毒的概率,但在top等工具中隐藏自身进程仍然是这类病毒的共性。因此一旦发现CPU使用率异常而无法直接看出占用CPU的进程时,可以大概率认为系统中存在病毒。

病毒进程隐藏方法:通过恶意so文件(/usr/local/lib/libprocesshider.so),新建或修改系统/etc/ld.so.preload文件以将该文件进行预加载,使得top中不显示病毒进程。

删除/etc/ld.so.preload文件后,在top中可以看到病毒进程:

上图中的qemu-kvm仅是病毒的一种伪装,其他变种有伪装成nginx等进程的,因此对病毒的判断应从行为着手

根据进程PID,可以查到病毒文件所在目录:

以及病毒进程的命令行:

此时使用netstat命令也可以看到该进程:

使用kill -9 <PID>的方式可以临时杀掉病毒进程,然后删掉/usr/local/games/.x目录。这样可以暂时将机器上的该病毒删掉,后续若发现系统再次出现之前的异常现象,可以按上述方法进行排查。其他变种也有在其他目录下存放病毒的,有些变种甚至会创建以空格表示的目录(例如:“/tmp/  /.x”),这样在SSH下不方便查看目录以及进入或删除目录,此时可以使用FTP工具进行删除。

二、病毒预防方法

阻断病毒传播途径是一种有效的防范计算机病毒的措施。对病毒传播的阻断可以从源头上进行阻断,将已感染病毒的机器进行杀毒处理,或采取重装系统等措施,从而阻止该机器继续传播病毒。近期观察到该类病毒的传播方式主要是通过SSH来连接其他机器,若SSH连接成功便可将挖矿病毒传播到新中毒机器上,进而进行挖矿。有时这类传播病毒的机器不在我们部门的掌控下,无法从源头上进行处理,此时可以在尚未中毒的机器上采取措施进行防范,从而降低中毒的概率。我们可以采用的方法有阻止中毒机器进行SSH登录。

通过编辑/etc/hosts.deny文件,将禁止登录的IP列入以禁止该IP进行SSH登录,格式如下:

sshd:<IP地址>:deny

例如:

sshd:10.17.27.79:deny

例如下面是一个/etc/hosts.deny文件的完整内容

#

# hosts.deny    This file contains access rules which are used to

#       deny connections to network services that either use

#       the tcp_wrappers library or that have been

#       started through a tcp_wrappers-enabled xinetd.

#

#       The rules in this file can also be set up in

#       /etc/hosts.allow with a 'deny' option instead.

#

#       See 'man 5 hosts_options' and 'man 5 hosts_access'

#       for information on rule syntax.

#       See 'man tcpd' for information on tcp_wrappers

#

sshd:10.0.53.87:deny

sshd:10.17.35.188:deny

sshd:10.0.100.3:deny

sshd:10.17.46.217:deny

sshd:10.0.37.96:deny

sshd:10.17.35.89:deny

sshd:10.0.27.21:deny

sshd:10.0.20.156:deny

sshd:10.0.50.190:deny

sshd:10.0.50.164:deny

sshd:172.17.167.35:deny

sshd:10.0.53.213:deny

sshd:10.0.51.223:deny

sshd:10.0.50.46:deny

sshd:10.31.133.198:deny

sshd:10.0.50.211:deny

sshd:10.32.134.118:deny

sshd:10.0.37.251:deny

sshd:10.11.8.57:deny

sshd:10.17.26.192:deny

sshd:10.0.51.145:deny

通过上述设置,上面列出的IP将无法通过SSH连接登录系统。

三、传播病毒机器的发现方法

此类传播病毒的机器可以看作是一个挖矿网络中的服务端或控制端,其特点是不断对各个IP段进行轮询,并不断使用各个密码或用户名尝试进行登录,此时在机器尚未中毒的时候,我们可以看到系统中的告警信息,例如SSH登录到服务器的时候,通常会告知我们上一次失败的登录的时间和IP地址以及尝试登录次数,例如下图所示:

例如上图中有108次在上一次登录成功后的失败登录尝试次数,这么多次的失败登录显然是一种异常现象,表明可能有传播病毒机器尝试登录这台机器。

查看/var/log/secure日志文件,可以看到有大量的失败登录记录,例如下图所示:

通过查看日志,可以看到一些IP有大量失败登录的异常行为,此时可以将该IP添加到/etc/hosts.deny文件中,以阻止该IP继续尝试登录。已添加到/etc/hosts.deny文件中的IP若继续尝试连接,则会在/var/log/secure日志文件中有“refused connect from <IP>”的日志记录,例如下图所示:

四、病毒变种记录

1. “java”病毒

系统异常现场:top中一个进程占用系统总体的50%左右CPU资源,进程名称为java,按C查看命令行后变为“[kworker/2:8H]”,例如下图所示:

进入/proc目录查看该进程:

可执行程序为/tmp/min/java,进入/tmp/min目录,ls如下:

使用netstat命令可以看到该进程正在与一台中毒机器建立连接:

病毒处理方法:将病毒进程kill掉,并删除/tmp/min目录中所有文件,如下图所示:

再次使用top命令查看进程,确认没有病毒进程运行。

  • 57
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术瘾君子1573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值