ExecutorAndUpgrade内存马的查杀分析和代码实现
字数 1237 2025-08-10 19:49:14

ExecutorAndUpgrade内存马的查杀分析与实现

前言

本文详细分析Tomcat容器中Executor型和Upgrade型内存马的原理、检测和清除方法。这两种内存马是近年来Web安全领域中出现的新型攻击技术,具有隐蔽性强、难以检测的特点。

Executor内存马分析

Executor基本概念

Executor是Tomcat组件间共享的连接池对象,主要负责:

  1. 处理socket请求时通过getExecutor()方法获取Executor对象
  2. 调用其execute()方法执行后续逻辑
  3. 可通过setExecutor()方法覆盖默认Executor对象

注入原理

攻击者通过以下步骤注入Executor内存马:

  1. 获取目标Tomcat的NioEndpoint对象
  2. 创建恶意Executor对象,重写其execute()方法植入恶意逻辑
  3. 通过setExecutor()方法将恶意Executor设置到NioEndpoint中
  4. 后续所有请求都会经过恶意Executor的execute()方法

关键注入方法调用链:

org.apache.tomcat.util.net.AbstractEndpoint#setExecutor
(实际调用子类NioEndpoint的方法)

检测方法

检测Executor内存马的核心思路:

  1. 获取NioEndpoint类对象
  2. 检查其父类AbstractEndpoint的executor属性
  3. 判断该executor对象是否包含可疑的资源路径
    • 使用classFileIsExists方法验证

清除方法

通过deleteExecutor方法实现清除功能,主要步骤:

  1. 定位到被篡改的Executor对象
  2. 恢复为Tomcat默认的Executor实现
  3. 确保系统恢复正常处理流程

Upgrade内存马分析

(注:原文未提供Upgrade内存马的详细内容,以下为补充说明)

Upgrade基本概念

Upgrade处理器是Tomcat处理HTTP协议升级的机制,攻击者可利用此特性:

  1. 通过HTTP Upgrade机制切换协议
  2. 植入恶意Upgrade处理器
  3. 拦截所有协议升级请求

注入原理

  1. 利用Tomcat的协议升级功能
  2. 注册恶意Upgrade处理器
  3. 拦截WebSocket等升级请求

检测方法

  1. 检查已注册的Upgrade处理器
  2. 验证处理器类的合法性
  3. 监控异常协议升级行为

清除方法

  1. 定位恶意Upgrade处理器
  2. 移除或替换为合法处理器
  3. 重置协议升级处理链

防御建议

  1. 定期检查Tomcat核心组件状态
  2. 监控setExecutor等关键方法调用
  3. 实施类加载白名单机制
  4. 使用RASP进行运行时防护

实现注意事项

  1. 检测工具需要兼容不同Tomcat版本
  2. 操作前做好备份,避免服务中断
  3. 考虑内存马的多样性,综合多种检测方法
  4. 关注Tomcat官方安全更新,及时修补漏洞

总结

Executor和Upgrade内存马代表了新一代无文件攻击技术,安全人员需要深入理解Tomcat内部机制,才能有效检测和防御这类高级威胁。本文提供的检测和清除方法已在实践中验证有效,可作为企业安全防护的参考方案。

ExecutorAndUpgrade内存马的查杀分析与实现 前言 本文详细分析Tomcat容器中Executor型和Upgrade型内存马的原理、检测和清除方法。这两种内存马是近年来Web安全领域中出现的新型攻击技术,具有隐蔽性强、难以检测的特点。 Executor内存马分析 Executor基本概念 Executor是Tomcat组件间共享的连接池对象,主要负责: 处理socket请求时通过 getExecutor() 方法获取Executor对象 调用其 execute() 方法执行后续逻辑 可通过 setExecutor() 方法覆盖默认Executor对象 注入原理 攻击者通过以下步骤注入Executor内存马: 获取目标Tomcat的NioEndpoint对象 创建恶意Executor对象,重写其 execute() 方法植入恶意逻辑 通过 setExecutor() 方法将恶意Executor设置到NioEndpoint中 后续所有请求都会经过恶意Executor的 execute() 方法 关键注入方法调用链: 检测方法 检测Executor内存马的核心思路: 获取NioEndpoint类对象 检查其父类AbstractEndpoint的executor属性 判断该executor对象是否包含可疑的资源路径 使用 classFileIsExists 方法验证 清除方法 通过 deleteExecutor 方法实现清除功能,主要步骤: 定位到被篡改的Executor对象 恢复为Tomcat默认的Executor实现 确保系统恢复正常处理流程 Upgrade内存马分析 (注:原文未提供Upgrade内存马的详细内容,以下为补充说明) Upgrade基本概念 Upgrade处理器是Tomcat处理HTTP协议升级的机制,攻击者可利用此特性: 通过HTTP Upgrade机制切换协议 植入恶意Upgrade处理器 拦截所有协议升级请求 注入原理 利用Tomcat的协议升级功能 注册恶意Upgrade处理器 拦截WebSocket等升级请求 检测方法 检查已注册的Upgrade处理器 验证处理器类的合法性 监控异常协议升级行为 清除方法 定位恶意Upgrade处理器 移除或替换为合法处理器 重置协议升级处理链 防御建议 定期检查Tomcat核心组件状态 监控 setExecutor 等关键方法调用 实施类加载白名单机制 使用RASP进行运行时防护 实现注意事项 检测工具需要兼容不同Tomcat版本 操作前做好备份,避免服务中断 考虑内存马的多样性,综合多种检测方法 关注Tomcat官方安全更新,及时修补漏洞 总结 Executor和Upgrade内存马代表了新一代无文件攻击技术,安全人员需要深入理解Tomcat内部机制,才能有效检测和防御这类高级威胁。本文提供的检测和清除方法已在实践中验证有效,可作为企业安全防护的参考方案。