焦点

系统后门处理方法

时间:2010-12-5 17:23:32  作者:时尚   来源:综合  查看:  评论:0
内容摘要:去年秋天,一个做运维的朋友半夜给我打电话,声音发紧。他们一台对外服务器上发现了异常进程,排查到最后,确认是有人通过一个老旧的调试接口留了后门。攻击者没急着偷数据,只是每隔几小时连上去看看,像在确认这扇

去年秋天,系统一个做运维的后门朋友半夜给我打电话,声音发紧。处理他们一台对外服务器上发现了异常进程,系统排查到最后,后门确认是处理有人通过一个老旧的调试接口留了后门。攻击者没急着偷数据,系统只是后门每隔几小时连上去看看,像在确认这扇门还开着。处理朋友问我:除了重装系统,系统还有没有更稳妥的后门清理办法?

后门这东西,最麻烦的处理地方不在于它本身多复杂,而在于它往往藏在你以为已经修好的系统地方。很多人发现入侵后,后门第一反应是处理删掉可疑文件、改密码、打补丁,然后松一口气。但真正需要处理的是“信任链”——攻击者一旦拿到过执行权限,他可能改了系统命令、替换了动态库、加了计划任务,甚至动了内核模块。你删掉的那个脚本,只是他留下的一个入口,不是全部。

先别急着删,先搞清楚它怎么进来的

直接删文件是本能,但容易打草惊蛇。后门通常有配套的“守护机制”:一个定时任务在检查后门进程是否存活,或者两个进程互相监视。你杀掉一个,另一个立刻把它拉起来。更隐蔽的,后门会把自己注册成系统服务,或者挂到某个正常进程下面,你杀进程的时候连带把业务也搞挂了。

比较务实的做法是:先隔离网络。把机器从负载均衡里摘掉,断开外网访问,但保留内网管理通道。然后做一次内存和磁盘的快速取证——用 ps、netstat、lsof 交叉比对,看有没有监听端口对不上号,有没有进程的可执行文件已经被删除但还在跑。Linux 下 /proc/<pid>/exe 指向一个带 (deleted) 标记的文件,基本可以确定有问题。

清理的层次感

我习惯把后门处理分成三层。最外层是“入口”,比如 Web 漏洞、弱口令、暴露的 Redis。这一层不堵住,清多少次都没用。中间层是“持久化机制”,包括 crontab、systemd 服务、init 脚本、LD_PRELOAD 注入、SSH authorized_keys 里的陌生公钥。最里层是“载荷”,也就是后门本体,可能是一个二进制、一段 shell 脚本,或者一个被篡改的合法程序。

很多人只处理最里层,结果重启之后后门又回来了。我见过一个案例,攻击者把后门写进了 /etc/ld.so.preload,系统里所有动态链接的程序启动时都会加载他的库。你删掉那个库文件,系统立刻大面积命令不可用。这种时候得先注释掉 preload 配置,再处理文件。

别迷信杀毒软件和在线查杀

服务器上的后门很少是标准恶意软件样本。攻击者往往用 Perl、Python 甚至 bash 写一个几十行的反向 shell,没有特征码,杀毒软件扫不出来。更常见的是“合法工具滥用”——用 socat 转发端口,用 crontab 定时回连,用 ssh -R 做隧道。这些工具系统里本来就有,你没法简单删掉。

我的判断是:如果确认机器被入侵,且没有严格的变更审计记录,最安全的做法是重装。但现实中很多业务不能随便重装,那就得做“定向清理”——把入侵时间点之后所有变更过的文件列出来,逐个核对。用 rpm -Va 或 debsums 检查包完整性,用 find / -mtime -N 找最近改动的文件。这个过程很枯燥,但比拍脑袋删文件靠谱。

处理完之后的事

后门清理完,别急着把机器放回线上。先改所有相关密码,包括数据库、API key、SSH 密钥。然后检查日志,看攻击者有没有横向移动到其他机器。最后加监控——不是那种大而全的 SIEM,而是针对性的:比如监控 /etc/passwd 的哈希变化,监控异常的外连 IP,监控新出现的 SUID 文件。这些规则写起来不复杂,但能让你下次更早发现。

说到底,后门处理不是一次性的技术操作,而是一个验证过程。你得反复问自己:我凭什么相信这台机器现在是干净的?如果答不上来,那就还没处理完。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap