半夜两点半,手机监控告警把你从梦里拉起来,那台刚接手不到一个月的业务服务器,CPU已经跑到200%,还在持续往外发包。你打开终端连上去,看到一串陌生的进程名,那一刻的茫然和手抖,我太熟悉了——我刚转行做安全运维的第二周,就撞上了一次完整的入侵事件。
那之后我花了很多时间整理这套处置流程,踩了不少坑,也攒下很多“如果早点知道就好了”的教训。今天这篇就把服务器被入侵后的应急响应步骤完整写出来。这不是一篇讲安全理论的帖子,而是一份能直接照着操作的“应急手册”,从接到告警、确认入侵、断网止损,到排查后门、清除恢复、复盘加固,每一步都给你说清楚怎么做、为什么要这么做。它适合刚转行做安全运维的同学、被要求兼职管安全的小公司运维,以及第一次独立面对入侵事件想不丢人的你。
1. 接到告警别急着拔网线:先判断、再取证、后止损
新手最容易犯的一个错误,就是看到告警立刻把服务器关机,或者直接把网线拔了。看上去是止损了,实际上把最有价值的现场证据全给毁了。应急响应的第一步,不是动手,是搞清楚状况。
1.1 先看告警来自哪里,再决定怎么处理
不同来源的告警,可信度和包含的信息量差别很大。我自己的经验是先把告警类型分清楚:
| 告警来源 | 常见形式 | 信息完整度 | 处理建议 |
|---|---|---|---|
| 云平台监控 | CPU、带宽、磁盘告警 | 低,只说资源异常 | 需登录服务器进一步排查 |
| 主机安全Agent | 反弹Shell、WebShell、异常登录告警 | 高,会告知进程路径、命令 | 优先查进程和对应文件 |
| 流量检测设备/IDS | 对外扫描、数据外传 | 中,只给源IP和端口 | 结合系统侧验证确认 |
| 业务监控 | 响应变慢、错误率升高 | 低,可能只是容量问题 | 先排除业务自身故障 |
如果告警里直接带了进程名或文件路径,比如“检测到可疑进程 /tmp/kdevtmpfsi”,那基本可以直接确认是入侵,按第2章往下走。如果只是CPU飙高,别急着扣“被入侵”的帽子,有可能是业务流量突增、定时任务跑批、内存泄漏导致频繁GC,先登录服务器看现场再说。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
1.2 登录服务器后,第一时间保存这三类信息
确认服务器还能登录的前提下,我强烈建议你在任何操作之前,先把下面这些信息保存下来。因为这些数据大多保存在内存或临时状态里,一旦进程被杀、连接断开,就再也拿不到了。
bash复制# 1. 当前系统时间和运行时长
date
uptime
# 2. 网络连接情况,重点看 ESTABLISHED 和对外连接
ss -antlp > /tmp/conn_$(date +%Y%m%d%H%M%S).txt
# 3. 进程列表,按CPU和内存排序,重定向保存
ps auxf > /tmp/ps_$(date +%Y%m%d%H%M%S).txt
top -b -n 1 | head -50 >> /tmp/top_$(date +%Y%m%d%H%M%S).txt
我见过太多人上来就 ps aux | grep 恶意进程名,然后 kill -9,把进程杀了,觉得清理干净了,结果什么都没留下来。等你事后想写报告、想溯源攻击路径的时候,连那个进程的完整命令行参数都没有了。所以保存现场永远排在“处置”之前。
这三个文件保存好后,再去看当前系统里到底有什么可疑进程、连了哪些外网IP。常见的挖矿进程名就那么几个,比如 kdevtmpfsi、kinsing、xmrig,看到CPU占用百分之一两百的,十有八九就是它。
1.3 该断网的时候,用最稳的方式断
确认是入侵之后,断网止损要果断,但断网的方式有讲究。这里有个非常重要的经验:云服务器不要直接在机器上 ifdown eth0,也不要直接在系统里改防火墙规则。因为一旦规则写错或者网卡被禁用,你在外网就完全连不上这台机器了,后面的排查和恢复全部无法进行。
正确的处理顺序是:先通过云厂商的控制台,在安全组里配置“只允许你当前的办公IP访问”,或者干脆一键封禁所有入方向流量,然后通过VNC或者带外管理方式继续操作。这样既切断了攻击者的连接,又保留了你自己的管理通道。
如果这台服务器是物理机,没有带外管理卡,那就更得谨慎了。拔网线之前,先确定自己有没有其他方式能访问到这台机器,比如机房KVM、IPMI。否则一拔网线,你可能就再也进不去了。
什么情况必须立刻断网?攻击者在跑勒索加密程序,或者在持续外传数据。什么情况可以缓缓?只是挖矿、CPU飙高,攻击者一般不会主动破坏数据,可以先花10分钟保存证据,再执行断网。这个取舍,本质上是业务损失和证据完整性之间的权衡,你需要在那个当下做出判断。
2. 顺着脚印找入口:日志和命令是“取证”的两条腿
断网止损之后,真正的硬仗才开始:搞清攻击者是怎么进来的、在里面干了什么。日志是这里最重要的线索来源。很多企业服务器的日志会定期轮转或被攻击者清空,但只要有一份是完整的,就足够拼出入侵路径了。
2.1 登录痕迹:三个文件定位账号入侵
先看系统和用户登录记录,这是判断是否有人通过账号密码进来的最直接证据。核心数据在三个文件里:
bash复制# 查看所有成功登录记录(含来源IP、登录时间、登录方式)
last -a
# 查看所有失败登录记录,统计暴力破解来源
lastb -a | head -50
# 查看每个用户最后一次登录时间
lastlog
排查看什么?重点关注三个异常特征:第一,凌晨2点到5点之间有成功登录记录;第二,来源I
