阿里云服务器遭遇恶意挖矿程序:检测、清除与防御全攻略
·
1. 挖矿病毒入侵的典型症状
最近帮朋友处理了一台阿里云服务器,刚登录就发现风扇狂转,CPU长期100%占用,但业务量根本没这么大。这种异常情况大概率是中招了——恶意挖矿程序正在后台偷用你的计算资源赚取虚拟货币。这种病毒就像服务器里的"寄生虫",不仅拖慢业务运行速度,长期高温还会缩短硬件寿命。
挖矿病毒最常见的表现有:
- CPU/GPU异常高负载:通过
top命令查看会发现不明进程长期占用90%以上资源 - 系统响应变慢:普通命令执行都要等好几秒
- 隐藏进程:有些高级病毒会篡改系统命令,用
top可能看不到真实进程 - 异常网络连接:通过
netstat -antp会发现服务器向陌生IP发送数据 - 定时任务异常:
crontab -l显示有来历不明的定时脚本
我遇到过最狡猾的变种会检测管理员登录,当SSH连接时自动降低CPU占用率,等管理员退出后又恢复挖矿。对付这种病毒需要多维度检测手段。
2. 深度检测挖矿病毒
2.1 基础检测三板斧
先用这三个命令快速定位问题:
# 查看CPU占用排行(按P键排序)
top -c
# 检查异常网络连接(关注ESTABLISHED状态)
netstat -antp | grep ESTA
# 查看最近执行的命令(黑客常会清空历史记录)
cat ~/.bash_history | grep -E "wget|curl|chmod"
如果top显示正常但CPU依然满载,很可能遇到了内核级rootkit。这时候需要:
# 检查动态链接库劫持
ls -la /etc/ld.so.preload
# 使用静态编译的工具检查
busybox top
2.2 阿里云控制台辅助检测
阿里云自带的监控系统其实很有用:
- 进入云监控控制台
- 查看CPU使用率图表,注意是否有周期性波动
- 检查网络出带宽,挖矿程序会有持续的数据上传
- 打开安全中心,查看异常登录告警
去年处理过一个案例,黑客通过Redis未授权访问入侵,在/var/spool/cron/下创建了定时任务。这种入侵方式在阿里云安全中心的异常进程检测中会有提示。
3. 彻底清除挖矿病毒
3.1 杀进程的正确姿势
普通kill可能无效,建议这样操作:
# 先找到进程PID
ps -ef | grep '[x]mrig' | awk '{print $2}'
# 锁定进程文件位置
ls -l /proc/[PID]/exe
# 彻底杀死进程树
pkill -9 -P [PID]
如果进程反复复活,一定要检查这些位置:
# 检查定时任务
ls -la /etc/cron* /var/spool/cron/
# 检查系统服务
systemctl list-units | grep -i 'miner'
# 检查开机启动项
ls -la /etc/rc.local /etc/rc.d/
3.2 文件清理实战技巧
找到病毒文件后不要直接rm,先备份证据:
# 创建隔离目录
mkdir /quarantine
# 保留病毒样本
cp /path/to/virus /quarantine/
# 计算哈希值(后续可以提交给安全公司)
md5sum /quarantine/virus
清理时特别注意这些隐藏位置:
/tmp/目录下的随机名称文件夹/dev/shm/内存文件系统/usr/lib/.lib/等带点的隐藏目录/etc/ld.so.preload等配置文件
4. 加固服务器防御体系
4.1 阿里云安全组最佳配置
建议这样设置安全组规则:
| 类型 | 端口范围 | 授权对象 | 备注 |
|---|---|---|---|
| SSH | 22 | 办公IP/32 | 改默认端口更安全 |
| HTTP | 80 | 0.0.0.0/0 | 业务需要再开放 |
| HTTPS | 443 | 0.0.0.0/0 | 建议配置WAF |
| 自定义TCP | 6379 | 拒绝 | Redis默认端口必须关闭 |
4.2 系统级防护方案
- 安装云锁等主机安全软件:
wget http://download.yunsuo.com.cn/install.sh
chmod +x install.sh
./install.sh
- 内核参数加固:
# 禁止core dump
echo "* hard core 0" >> /etc/security/limits.conf
# 限制历史命令记录
echo 'export HISTSIZE=5000' >> /etc/profile
- 关键目录监控:
# 监控/etc目录变更
auditctl -w /etc/ -p wa -k etc_changes
5. 长期安全运维建议
建立日常检查清单:
- 每周检查
/var/log/secure中的异常登录 - 每天通过
df -h查看磁盘空间变化 - 每月更新SSH密钥对
- 关键业务使用专有网络VPC隔离
- 开启阿里云安骑士的恶意文件检测功能
有次发现某台服务器每天凌晨3点CPU飙升,最后查出是运维自己写的Python脚本存在漏洞被植入了挖矿代码。建议对内部人员也要做好权限管控,遵循最小权限原则。
更多推荐
所有评论(0)