【摘要】
服务器被植入挖矿程序是常见的云安全事件。本文基于两次实战处理经验,总结一套标准化的应急响应流程:流量异常发现→网络隔离→现场证据固定→入侵路径分析→后门清理→系统重装与加固。文内提供具体的排查命令、日志路径与处置策略,可作为运维人员的应急操作手册。

关键词: 服务器安全, 应急响应, 挖矿病毒, 入侵排查, fail2ban


一、 事件触发与初始响应

告警场景: 凌晨流量监控告警,外网出带宽突增至50Mbps以上,伴随CPU使用率100%。

第一动作:网络隔离
登录云厂商控制台,在安全组中删除所有出方向规则或应用“拒绝所有流量”策略。

原因: 阻断攻击者与C2服务器的通信,防止其在排查期间删除日志、植入新后门或利用主机对外发起攻击。

隔离后观察CPU负载,通常挖矿进程会因网络中断而停止消耗CPU资源。


二、 现场证据固定

原则: 在重启或清理前,保存当前系统状态信息,用于后续溯源。

2.1 网络连接与进程

bash

# 查看已建立的外部连接及对应进程
netstat -anp | grep ESTABLISHED

# 查看资源占用Top进程
top -c -n 1 -b > /tmp/top_output.txt

2.2 登录日志

bash

# 查看所有用户最近登录记录
last
lastlog

2.3 历史命令

bash

# 导出各用户bash历史
cat /home/*/.bash_history > /tmp/all_history.txt

将以上输出文件下载到本地分析。


三、 入侵路径分析

根据保留的证据,定位攻击入口。常见类型如下:

3.1 SSH暴力破解
检查日志:

bash

# Debian/Ubuntu
grep "Failed password" /var/log/auth.log

# CentOS/RHEL
grep "Failed password" /var/log/secure

处置: 修改SSH端口(/etc/ssh/sshd_config)、禁用密码登录(PasswordAuthentication no)、部署fail2ban。

3.2 Redis/数据库未授权访问
查看Redis日志(通常位于/var/log/redis/)是否存在异常CONFIG SET命令。
处置: 立即设置requirepass,修改配置bind 127.0.0.1,禁止外网访问。

3.3 Web应用漏洞(如上传Webshell)
排查Nginx/Apache访问日志中异常的POST请求:

bash

# 搜索疑似webshell特征
grep -E "\.php\?|cmd=|eval\(|base64_decode" /var/log/nginx/access.log

处置: 标记受影响的Web目录,后续重装时不予恢复。

3.4 已知CVE漏洞
检查运行中服务的版本,对照公开漏洞库(如CVE Details),及时升级或打补丁。


四、 恶意程序清理

挖矿病毒往往配置了持久化机制,需按以下顺序清理:

4.1 定时任务

bash

crontab -l
crontab -u root -l
ls -la /etc/cron.*
# 系统级定时任务
cat /etc/crontab

删除包含恶意下载地址或异常脚本路径的任务。

4.2 系统服务与启动项

bash

systemctl list-units --type=service --state=running | grep -v known
ls -la /etc/systemd/system/
cat /etc/rc.local

停用并删除可疑服务。

4.3 SSH公钥后门

bash

cat ~/.ssh/authorized_keys

删除非自己添加的公钥。

4.4 辅助扫描工具
安装rkhunter进行Rootkit扫描:

bash

apt install rkhunter -y
rkhunter --check

五、 根除方案:系统重装

对于已失陷的生产环境,最安全的方式是完全重装系统。

操作流程:

  1. 备份干净数据: 导出数据库、应用源码、配置文件(切勿备份二进制或Web目录下的PHP文件)。

  2. 创建系统快照: 在云控制台对当前系统盘创建快照,用于事后如有遗漏可做取证分析。

  3. 重装操作系统: 选择最新的公共镜像重建系统。

  4. 安全加固: 在恢复数据前,先完成SSH密钥登录配置、fail2ban部署、组件密码设置、内网绑定等基础安全策略。

  5. 恢复服务: 从备份恢复数据并启动应用。

新服务器替代方案:
若需快速替换,可直接开通新实例。推荐使用Ztopcloud等代理渠道快速获取云资源:支持邮箱注册、免实名、微信支付宝充值,开通后可直登阿里云/腾讯云官方控制台管理。几分钟内获得干净环境,显著缩短业务中断时间。


六、 后期加固清单
加固项 操作
SSH安全 改端口、禁密码登录、配置fail2ban
数据库/缓存 设强密码、只监听内网IP
系统更新 设置自动安全更新(unattended-upgrades
流量监控 利用云厂商监控服务,设置出网流量阈值告警
最小权限 检查并关闭非必要端口,移除多余服务

七、 总结

面对服务器入侵,核心思路是隔离→取证→分析→清理→重装→加固。日常做好自动备份与基础安全加固,能极大降低事件损失。建议每位运维人员都实际演练一次应急流程,确保在真实事件中不慌乱。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐