云环境中的挖矿病毒会恶意抢占CPU等资源,导致实例卡顿、响应缓慢甚至无法远程连接,并引发业务中断、数据泄露及风险扩散。通过云安全中心或者手动响应处理及防护策略(如重置密码或密钥、IP封锁),可快速止损并预防二次感染。
挖矿病毒告警
开启免费安全加固的实例,在被挖矿程序入侵时,云安全中心会发送告警短信或邮件,可前往安全告警, 查看是否存在挖矿程序告警。
在安全告警列表中,挖矿程序和木马程序告警均显示为红色紧急等级,可单击对应告警右侧的处理或详情进行处置。
挖矿程序会持续占满CPU资源,因此实例卡顿、响应缓慢甚至无法远程连接往往是用户最早察觉的异常信号。如果您在排查无法远程连接问题时发现CPU负载异常偏高,请参见本文进行排查与处理。
如果服务器因挖矿被管控关停,请先前往云资源安全管控事件自行解除关停锁定状态。解除锁定后,请及时清理挖矿程序。
挖矿病毒应急响应与清除
隔离受感染的服务器
通过修改安全组规则,可以限制ECS实例的公网和SSH访问,从而达到隔离的效果。
登录ECS控制台-安全组 。
找到目标ECS实例所属的安全组,单击安全组ID进入安全组管理页面。
在安全组规则页面,找到所有允许公网访问的入方向规则(如允许RDP、SSH等端口的规则),确保将其授权对象修改为仅允许特定IP访问。
说明修改安全组规则会影响所有绑定该安全组的ECS实例,请确保不会误操作影响其他实例。
清除恶意程序
挖矿程序一般很难清理,建议在备份重要数据后,重新初始化云盘,可确保完全清理挖矿程序。
云安全中心
前提条件
使用云安全中心处理挖矿病毒威胁,需购买云安全中心防病毒版、高级版、企业版或旗舰版。也可通过开通 7 天免费试用,获取对应安全能力。
步骤一:快速止血
使用云安全中心安全告警功能,可以终止恶意进程的运行,并隔离病毒文件,快速阻断挖矿程序运行。
登录云安全中心控制台。
在左侧导航栏,选择 。在控制台左上角,选择需防护资产所在的区域。
单击挖矿告警操作列的详情,查看该告警的详细信息。
根据云安全中心控制台提供的告警基础信息、事件说明等,找到挖矿程序的位置,以及确认是否存在其他告警或可疑文件。需要自行判断导致挖矿告警的文件是正常业务文件,还是攻击者运行的文件。挖矿程序如果关联了其他告警事件,例如矿池通信行为、访问恶意域名等,建议一并处理。
单击告警处理。在告警处理对话框,处理方式选中病毒查杀,单击立即处理。
如果需要批量处理相同规则或类型触发的告警,可以选中同时处理相同告警。
在安全告警列表,对挖矿事件产生的其他衍生告警(例如:矿池通信行为),执行阻断操作。
云安全中心通过生成对应的策略防止服务器访问矿池,确保有充足的时间对安全事件进行处理。也可手动将矿池IP加入安全组禁用。添加安全组的具体操作,请参见添加安全组规则。
在安全告警列表,查看进程行为异常告警,确认是否存在异常的计划任务,并处理对应告警。
步骤二:深度查杀
建议使用云安全中心的病毒查杀功能扫描资产,病毒查杀功能可以扫描清理恶意文件的一些持久化行为,例如:自启动项、定时任务。
登录云安全中心控制台。
在左侧导航栏,选择。在控制台左上角,选择需防护资产所在的区域。
在病毒查杀页面,单击立即扫描或重新扫描。在扫描设置页面,设置扫描模式和扫描范围,然后单击确定。
扫描模式选择快速扫描,扫描范围选择被挖矿程序攻击的服务器。
等扫描完成后,在病毒查杀页面,单击目标告警操作列的处理。
在告警处理面板,选择深度查杀,单击下一步。
系统开始处理告警。处理完成后,可以查看处理结果和告警状态。
在修复方式区域选择自动创建快照并修复,设置快照名称和快照保存时间,然后单击下一步。
安全检测
使用云安全中心无代理检测功能,对云服务器ECS的系统盘和数据盘进行全面的安全检测。该功能仅支持检测,不支持修复;需要根据风险详情页的说明,自行处理风险项。需开通无代理检测按量付费。具体操作,请参见无代理检测使用指南。
自助手动清理
在进行任何清理操作前,建议先为服务器创建快照进行备份,以防数据丢失或操作失误。
Linux
阻断恶意网络通信。
在发现主机存在挖矿行为后,由于完整地处理整个挖矿事件的周期比较长,所以为了及时控制挖矿影响,需要首先阻断挖矿木马的网络通信行为。
执行以下命令,查看当前系统网络连接状态。
netstat -antp[root@ixxx poc]# netstat -antp Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.xxx:xxx 0.0.0.0:* LISTEN 1399/sshd tcp 0 0 12xxx:xxx 0.0.0.0:* LISTEN 1121/master tcp 0 0 127.0.0.xxx:xxx 0.0.0.0:* LISTEN 8847/node tcp 0 0 0.0.xxx:xxx 0.0.0.0:* LISTEN 572/rpcbind tcp 0 0 127.xxx:xxx 12x.x.x.xxx:xxx ESTABLISHED 8988/node tcp 0 0 1xx.xxx.xxx:xxx 10x.xxx.xxx:xxx TIME_WAIT - tcp 0 0 1xx.xxx.xxx:xxx 10x.xxx.xxx:xxx TIME_WAIT - tcp 0 0 127.xxx:xxx 1xx.xxx.xxx:xxx ESTABLISHED 8847/node tcp 0 0 127.xxx:xxx 127.x.x.x:xxx ESTABLISHED 8761/sshd: root@not tcp 0 0 17x.xxx:xxx 10x.xxx.xxx:xxx ESTABLISHED 17704/AliHips tcp 0 0 17x.xxx:xxx:5 18x.xxx:xxx ESTABLISHED 16901/logrotate tcp 0 0 1xx.xxx:xxx 12x.xxx.xxx:xxx ESTABLISHED 8761/sshd: root@not tcp 0 0 1xx.xxx.xxx:xxx 100.xxx:xxx TIME_WAIT - tcp 0 0 1xx.xxx:xxx:3 10x.xxx.xxx:xxx ESTABLISHED 1506/AliYunDun tcp 0 0 17x.xxx.xxx:22 14x.xxx.xxx:xxx ESTABLISHED 8761/sshd: root@not tcp6 0 0 :::xxx :::* LISTEN 1121/master tcp6 0 0 :::xxx :::* LISTEN 572/rpcbind将以下命令中
c2地址替换为正常业务不会使用的可疑远程地址(Foreign Address),然后执行下述命令添加防火墙规则,阻断服务器与该可疑地址之间的所有网络连接。iptables -A INPUT -s c2地址 -j DROP iptables -A OUTPUT -d c2地址 -j DROP
删除挖矿程序及其相关文件
挖矿程序一般很难清理,建议在备份重要数据后,重新初始化云盘,可确保完全清理挖矿程序。
Windows
在PowerShell中执行以下命令,通过CPU占用情况排查可疑的挖矿进程。
ps | sort -des cpu While(1) {ps | sort -des cpu | select -f 15 | ft -a; sleep 1; cls}执行以下命令,查看挖矿进程的磁盘文件、进程启动命令的参数。
wmic process where processid=xxx get processid,executablepath,commandline,name //xxx表示进程pid结束挖矿进程,清除挖矿文件。
执行以下命令,检查主机连接的可疑网络端口。
netstat -ano | findstr xxx // xxx表示可疑的网络端口执行以下命令,检查服务器中hosts文件是否存在挖矿程序的矿池地址。
type C:\Windows\System32\drivers\etc\hosts执行以下命令,排查是否存在挖矿程序设定的计划任务。
schtasks /query
防护建议
清理完成后,建议参考以下建议,以防再次被入侵:
重置密码和密钥:实例的密码或密钥可能已经泄露,建议及时更换所有用户密码和SSH密钥,防止再次入侵。如果你使用密码作为登录凭证,请避免使用弱口令。
修复漏洞:修复已知漏洞,定期为操作系统和应用软件(如 Redis、Jenkins 等)更新安全补丁。
数据备份:对重要数据和系统配置进行定期快照备份,以便在发生意外时能够快速恢复 。
相关文档
防御挖矿程序最佳实践:阿里云防火墙IPS模块通过漏洞情报和虚拟补丁方式可以跟踪和防御大部分挖矿蠕虫的网络漏洞利用行为,阻断病毒传播。
常见问题
删除文件时提示“Operation not permitted”,无法删除怎么办?
部分挖矿病毒在写入计划任务、自启动等持久化文件后,为防止对应文件被删除,会为对应文件设置一个不可更改(immutable)的属性。
[root@iZxxx poc]# rm /etc/cron.hourly/logrotate
rm: remove regular file '/etc/cron.hourly/logrotate'? y
rm: cannot remove '/etc/cron.hourly/logrotate': Operation not permitted
[root@iZxxx poc]# echo "" > /etc/cron.hourly/logrotate
bash: /etc/cron.hourly/logrotate: Permission denied
[root@iZxxx poc]# lsattr /etc/cron.hourly/logrotate
----i---------e-- /etc/cron.hourly/logrotate对该文件执行 chattr -i [文件名] 命令解除该属性,然后再进行删除。
为什么删除了挖矿程序,但它很快又出现了?
这通常是因为只删除了病毒主程序,而没有清除其设置的持久化后门(如计划任务或自启动服务)。病毒会通过这些后门重新下载并运行,导致反复出现。请务必按照清除恶意程序步骤,彻底排查所有持久化方式。