捕捉“Ghost Gateway”:GFSHELL 多态规避
Source: Dev.to
概览
在对拥有超过 1,000 台服务器的生产环境进行例行安全审计时,Companion Sentinel 发现了一起活跃的 GFSHELL(Gateway Framework Shell)感染,该感染已逃避了多家主要安全厂商的检测。恶意软件使用了复杂的多态规避技术,绕过了三款行业标准扫描器。
恶意软件组件
感染由两个不同的 PHP 文件组成:
- Shell 生成器 –
check.php - 多态网关 –
gateway.php
check.php – 探测脚本
攻击者首先部署了一个“探测”脚本,用于指纹识别服务器的安全配置。该脚本执行了以下检查:
- 审计
php.ini中的disable_functions指令。 - 验证高风险执行入口(
proc_open、shell_exec、system)是否可用。 - 测试
getallheaders()是否可用,以实现静默的带外通信。
gateway.php – 多态后门
在收集到环境数据后,生成器构建了一个自定义的 15 行后门。它不依赖标准的 GET/POST 参数,而是监听自定义 HTTP 头部:authorization-bearer。执行通过 调用内注释注入(In‑Call Comment Injection) 完成,这是一种旨在破坏启发式正则签名的技术。
注释块(/**auth**/ 和 /**array**/)中断了许多静态扫描器查找的字面字符串 shell_exec(,使代码能够绕过基于签名的检测,同时仍然是合法的 PHP。
规避技术
传统安全工具通常搜索如下模式:
shell_exec\s*\(
攻击者在函数名与左括号之间插入注释,打断了字符串的连续性。对 PHP 解释器而言,注释会被忽略;但对天真的扫描器来说,它出现了未识别的标记,从而实现规避。
检测方法 – 递归启发式扫描器
Companion Sentinel 的 polymorphic_web 传感器使用递归启发式扫描器,专门查找执行函数与其左括号之间被注入的注释块。
为何有效
- 零误报 – 合法代码很少在函数调用内部插入注释。
- 通过针对 恶意软件 DNA(规避模式本身)而非特定文件名或哈希进行检测,后门能够被即时识别。
行为反馈 – 次要确认
Companion Sentinel 的 XDR 引擎关联了多个行为指示器:
| 指示器 | 描述 |
|---|---|
shell_history_wipe | 检测到尝试运行 history -c 以擦除审计记录。 |
crontab_persistence | 捕获到对 /etc/crontab 的未授权修改,用于持久化。 |
react2shell_rce | 验证 Web 运行时(Node.js/PHP)尝试生成异常子进程(Bash),即远程代码执行。 |
这些信号为入侵提供了超出语法异常的佐证。
结论
GFSHELL 事件表明,现代基础设施需要的不仅是边界防御;还需要能够检测行为和语法异常的高保真审计。Companion Sentinel 通过识别规避技术而非阻断已知文件,成功中和了威胁,使系统现在 99 % 已验证,并在全球范围内保护生产资产。