结论先行:有一类攻击者进入终端之后,先做的是把防护软件处理掉,再开始干活。它不写文件、不落地可执行程序,靠进程注入和内存执行留在机器上,用比对硬盘文件的方式基本查不出来。要发现这类行为,需要换一层去看:进程做了什么、加载了什么、跟外面通信的节奏是什么样的。

“留下一个文件”这一步可以被省掉

常规的恶意程序要落地成文件,才有东西可以被扫描、被比对、被删除。无文件攻击走的是另一条路:把代码直接写进一个合法进程的内存里执行,硬盘上因此没有可查的样本。公开的终端防护方案资料里,把无文件攻击、内存马与脚本后门变种单列为检测项,原因就在这里——按文件找的思路对它们无效。资料同时提到一个现象:攻击者入侵后往往优先卸载终端上的防护软件,这类程序要处理掉的就是“看得见文件的那一层”能力。

应用服务器与中间件是这类手法常见的落脚点。原因不难理解:它们长期对外提供服务、权限不低、配置项多,而很多企业的注意力集中在业务功能上,对它的进程与内存状态缺少基线。

痕迹留在哪几处

不落文件不等于没有痕迹,只是痕迹换了几处:

  • 进程层。合法进程出现异常的子进程关系、被注入的迹象,或加载了非常规的模块。
  • 内存层。出现同时可读、可写、可执行的内存区域,或运行期动态生成的代码段。
  • 网络层。固定周期的外连、固定端口、非常规的域名解析方式,以及“业务已经停了它还在连”这类不一致。
  • 配置与日志层。中间件配置被改动,访问日志被清理或出现中断。

三条可行的发现路径

单独看任何一条都容易漏,三条合起来才形成覆盖面。

  1. 终端侧行为检测。不看文件指纹,看行为:谁启动了谁、谁往谁的内存里写了东西、谁在提权。这条路径需要基线,否则误报会盖住真实线索。
  2. 网络与流量侧。周期性回连是这类载荷维持控制的方式,周期本身就是特征。把它和正常业务的访问节奏区分开,可以把排查范围缩小到几台机器。
  3. 服务端与中间件侧专项检测。针对脚本后门与内存马的专项检查,覆盖主流中间件,重点看运行期注入的代码,而不是静态文件。

为什么清干净比重装还难

文件型的恶意程序,删掉文件、重启通常就结束了。内存型的处置要复杂一层:注入的代码可能随宿主进程重启而消失,也可能被某个驻留项在下次启动时重新生成。只删掉表面文件、不做入口封堵,过一段时间还会出现。

因此处置顺序建议固定下来:先隔离并留存证据,再定位入口(哪个应用、哪个账号、利用了哪个漏洞),再决定是清理还是重建。跳过入口这一步,后面还要再来一次。

边界与前提

行为检测会产生误报,没有基线的新环境在上线初期尤其明显,需要预留一段观察期。部分检测能力依赖内核层权限与受支持的系统版本,老旧终端上可能装不上或效果打折,这部分资产要单独列出替代方案。此外,非生产环境与个人设备是否纳入检查范围需要事先明确,否则覆盖率数字会虚高。

落到企业侧的三件事

先有一份“哪些机器在对外提供服务”的清单;再积累一段正常运行时的行为基线;再写清楚发现可疑内存级驻留时的处置边界。三件事都不复杂,但都需要在没有事件的时候做。奇摩在帮客户梳理终端与内网安全时,通常把这三项列为前置动作,再谈具体的检测手段选型。

需要梳理应用资产清单与处置预案,欢迎预约咨询。