服务器被入侵之后:挖矿木马与暴力破解的应急处理 SOP

正文

凌晨两点,告警群里跳出一条 CPU 使用率 100% 的通知,客户说网站还能打开,就是慢。等我登上去一看,top 里一个陌生进程正把 8 核吃满,外联一个没见过的 IP——典型的挖矿木马。腾讯云服务器被攻击后的第一反应,往往决定了你还能不能留住证据。 很多人上来就 kill -9 加删文件,等安全团队想溯源时,现场已经被自己清干净了。

应急处理是有固定顺序的:发现、止血、取证、清除、复盘。顺序错了,轻则重复被入侵,重则数据没了还查不出原因。下面按我实际处置过的几类事件,把每一步说透。

一、发现:先分清是"被打了"还是"被占了"

同样是半夜告警,性质和处置方式完全不同,必须先归类。

• 资源异常:CPU 长时间贴近 100%、内存被吃光触发 OOM、磁盘被日志或下载文件塞满。矿马最爱干这个。

• 网络异常:出带宽忽然跑满、出现大量陌生外联、按流量计费的客户收到费用暴涨提醒。这可能是矿池通信,也可能是被当成攻击跳板。

• 登录异常:/var/log/secure 里出现成片的 Failed password,随后夹着一两条 Accepted,说明对方很可能已经撞进来了。

• 安全产品告警:腾讯云主机安全(云镜)提示恶意进程、反弹 Shell、暴力破解,或安全组被动放行了异常端口。

我的习惯是先确认三件事:谁在占资源(进程)、它在跟谁说话(外联 IP)、它怎么活下来的(定时任务、自启、后门)。这三条查清,基本就能判断是矿马、爆破还是流量攻击。

顺带说一个判断技巧:矿马通常会把 CPU 吃到接近满载但又不完全打满,留一点余量维持自身运转;而正常业务的高负载,往往伴随请求量和响应时间同步变化。如果 CPU 突然拉高、QPS 却没涨,基本可以往被入侵方向想。同理,磁盘 IO 异常升高、而业务写入量没变,也要警惕是不是有进程在偷偷下载或加密文件。

二、止血:别关机,先断网再封口

最反直觉的一条:发现入侵后不要立刻关机或重装,先做快照。关机等于丢掉内存里的进程和网络连接证据,重装等于把现场铲平。正确顺序是先隔离、再留证。

• 隔离:把安全组规则收紧到只放行运维自己的 IP,切断其余公网访问;必要时先解除公网 IP 绑定,但不能直接销毁实例。

• 留证:对系统盘和数据盘打一次快照,或做个自定义镜像,把被入侵那一刻的状态固定下来,后续取证、恢复、甚至报案都用得上。

• 记录:在终止恶意进程前,先把 ps 里的 PID、可执行路径、外联 IP、监听端口抄下来,这些是溯源的关键线索。

止血阶段的目标不是把病毒杀干净,而是先让它不能再联网干活、不能再横向扩散,同时保住证据。

具体到操作,安全组是最好用的止血工具:新建一条入方向规则,来源只填运维自己的固定 IP,其余全部拒绝,几分钟就能生效,而且不影响后续取证。如果流量攻击同时在打,可以配合云防火墙做限速和封禁,先保证机器不被打死。要交代一个时间窗:入侵后的前 30 分钟最关键,矿马、后门都还没完成持久化布点,这时候断网加留证,处置成功率最高;拖到第二天,对方可能已经装好 rootkit 或把数据外传了。

三、取证:把入侵路径还原出来

取证不需要多高深,几条命令就能看出大概。我一般按这个顺序过一遍。

• ps aux --sort=-%cpu 找高占用进程,记下 PID。

• ls -l /proc/PID/exe 看可执行文件真实路径,cat /proc/PID/cmdline 看启动参数,矿马常挂着矿池地址和钱包参数。

• ss -antp 看进程的外联和监听端口,陌生境外 IP 加高位端口要重点盯。

• crontab -l、ls -la /etc/cron.*、systemctl list-units --type=service 查持久化,矿马几乎都会写定时任务或自启来复活。

• lsattr /etc/ld.so.preload 检查有没有被挂上恶意预加载库,这是 rootkit 藏身的常见位置;文件被 chattr +i 锁住时,lsattr 能看到不可变属性。

• last、lastb 结合登录日志,判断对方是从哪个 IP、用哪个账号进来的。

取证的目的不只是"知道怎么进来的",更是为了判断影响面:对方进来多久了、碰过哪些数据、有没有横向连过内网其他机器。这些结论直接决定后面要不要上报、要不要全量重建,所以别嫌麻烦,多花十分钟留档,能省后面几天扯皮。

入侵类型 典型信号 首要处置动作 是否需要重建

SSH 暴力破解 登录日志大量失败后出现成功记录,伴随陌生来源 IP 封锁来源 IP,改密钥登录并禁用密码认证 已被成功登录建议重装

挖矿木马 CPU 长期满载,出现 xmrig 或 kdevtmpfsi 类进程,定时任务被写入 记录进程与外联后终止,清理 cron 与自启 有 rootkit 迹象必须重装

Redis 未授权 6379 暴露公网,authorized_keys 被写入密钥,cron 拉取下载脚本 关闭公网 6379,加访问密码或只允许内网 已被写入后门建议重装

Web 漏洞入侵 网站目录出现陌生 webshell 文件,Web 进程派生异常子进程 下线站点,留存日志与样本,修复漏洞 视后门清理是否彻底决定

DDoS 攻击 出带宽被打满,大量 SYN 或 UDP 包,访问大面积超时 接入高防清洗,限速,隐藏源站 不需要,属流量攻击不动系统

遇到 DDoS 要单独说一句:它和前面几种不一样,攻击者并不一定进到你系统里,只是用流量把你的出口堵死,可能还会触发云厂商的流量清洗或临时黑洞策略。这种情况处置重点是接入 DDoS 高防做清洗、配合云防火墙限速,把源站 IP 藏到 CDN 后面,而不是去系统里找木马。

四、清除与重建:什么时候该认输

清干净的标准很严:所有恶意进程、持久化项、后门账号、被替换的系统文件都要处理掉,还要确认没有留下定时复活机制。现实是,只要对方拿到了 root,你很难百分百确认清空了。

所以我的建议是分档:Web 漏洞或普通矿马、没有 rootkit 迹象的,可以清理后加固观察;一旦发现 rootkit、被替换的 ps、netstat 等系统命令,或者对方拿到了 root 权限并留下后门,就不要恋战,直接重装。用快照重建一台干净系统,比花两天赌自己清干净了要划算得多。 重建前先把业务数据备份出来,但备份要扫描过再用,别把后门一起搬回新机器。

清理阶段还有两个必查项:后门账号和 webshell。看 /etc/passwd 里有没有新增的 UID 为 0 的账号,看网站目录里有没有近期修改过、命名可疑的脚本文件,用 find /var/www -newermt 按时间筛,比肉眼翻目录快得多。Web 目录里的 webshell 往往就是下一次入侵的入口,不清掉,重装了也会再中。

如果数据涉及个人信息或用户敏感信息,还要评估《网络安全法》《数据安全法》《个人信息保护法》下的报告与告知义务,必要时向主管部门报告并通知受影响用户。这一步容易被忽略,但真出事时它是责任分界线。

五、复盘:把入口堵死才算结束

入侵处理完不复盘,等于给下一次留了门。复盘我通常盯这几个方向。

• 入口收敛:安全组按最小权限重写,只放行业务必需端口,SSH 换非标准端口加密钥认证,禁用 root 远端密码登录,Redis、Docker、Jenkins 这类常被扫的服务绝不裸露公网。

• 权限治理:用 CAM 子账号按角色授权,日常运维不给 root,能用堡垒机就用堡垒机。

• 持续防护:装并开启主机安全(云镜)的实时告警,开云监控的资源与安全告警,做定期漏洞扫描和基线检查。

• 数据兜底:核心数据定期快照加异地备份,备份和快照本身也要做权限隔离,别让一把钥匙开所有门。

还有一个容易被跳过的动作:做一份安全基线镜像。把加固好的系统状态打成自定义镜像,以后新开的机器直接基于它创建,统一关闭无关端口、统一开启主机安全、统一密钥登录,避免每次开新机器都从零配置、漏一处就从零被攻破。

对越来越多做海外业务的团队,如果是用国际腾讯云服务器的海外地域资源,同样别省这几步安全配置——境外机器被扫的强度一点不比国内低,甚至更高。

FAQ

Q:CPU 突然跑满,一定是被挖矿了吗?

A:不一定。先看进程和它的外联对象:有矿池地址、CPU 精确吃满、还带定时任务复活的,多半是矿马;只是业务流量涨了,那就是性能问题。用 ps 和 ss 十分钟就能区分。

Q:发现挖矿木马,能不能直接删文件杀进程?

A:先别。删掉之前把 PID、路径、外联 IP 记下来并打快照,否则无法溯源。杀掉后还要清 cron、自启和后门,不然几分钟就复活。

Q:被 DDoS 打了要重装系统吗?

A:不用。DDoS 是流量层面的攻击,系统本身没被入侵,处置重点是接入高防清洗、限速、隐藏源站 IP,配合 CDN 分流。

Q:怎么判断该清理还是该重装?

A:出现 rootkit、系统命令被替换、或对方已拿到 root 并留下后门,就重装。普通 Web 漏洞且现场可控的,可清理后加固观察。

Q:被入侵导致数据泄露,要做什么?

A:留存取证材料,评估是否属于需要报告和告知的情形,按法律规定向主管部门报告并告知可能受影响的用户,同时尽快修复入口。

结语

最后提醒一句:被入侵不丢人,丢了证据、把现场自己清干净才麻烦。养成"告警先看、断网先留证、重装前先备份"的肌肉记忆,比背一百条命令都管用。

把这份 SOP 存下来,真出事时按发现、止血、取证、清除、复盘五步走,顺序不要乱。可以立即做的三件事:今天就给机器做一次快照并开启主机安全告警;把 SSH 改成密钥登录、关掉公网暴露的 Redis 和 Docker 端口;把安全组按最小权限重写一遍。攻击不会提前打招呼,但你可以提前把现场和退路准备好。

如果需要更深入咨询了解可以联系全球代理上TG:jinniuge 他们在云平台领域有更专业的知识和建议,他们有国际阿里云,国际腾讯云,国际华为云,aws亚马逊,谷歌云一级代理的渠道,客服1V1服务,支持免实名、免备案、免绑卡。开通即享专属VIP优惠、充值秒到账、官网下单享双重售后支持。不懂找他们就对了。