朝鲜APT新型macOS后门的大模型检测对抗手法
sentinelone新近披露的一款 Rust 语言编写的 macOS 平台植入程序macOS.Gaslight,归属于朝鲜背景的威胁活动集群。
该恶意程序最核心的突破在于,其反分析逻辑跳出了传统沙箱对抗、调试器检测的思路,转而攻击安全行业日益普及的LLM 辅助分析分诊流水线,通过在样本内预置伪造的系统故障信息,诱导大语言模型中断分析或输出错误结论。
macOS.Gaslight的反分析设计,攻击对象并非执行环境,而是分析环节中的 LLM 辅助工具,干扰后续的自动化分析流程。
样本二进制内嵌入了一段 3.5KB 的恶意文本载荷,包含 38 条完全伪造的系统消息,以{{DATA}}作为内容分隔标记,整体采用 Markdown 格式排版。这套结构与安全行业 LLM 分析流水线常用的提示模板框架高度吻合:这类提示模板通常会用固定标记分隔系统指令、样本数据、输出格式,以规范 LLM 的分析行为;而 Gaslight 通过模仿模板的格式与标记,模糊了 “不可信的样本数据” 与 “可信的系统指令 / 环境信息” 之间的边界。
当安全团队将样本的静态字符串、运行日志、反汇编注释等内容直接投喂给 LLM,用于批量生成分析报告、自动判定威胁等级时,这些伪造内容会混入模型的输入上下文,被 LLM 误判为自身分析环境产生的状态信息。
这些伪造消息覆盖了运维与分析场景中大量常见的异常状态,包括令牌过期、工作进程被系统资源管理机制杀死、内存溢出、磁盘空间耗尽、Redis 连接池超时、JSON 解析报错、CI 流水线构建失败、定时备份任务执行异常等,甚至植入了虚假的 “SQL 注入漏洞告警”“静态分析标记异常” 等误导性内容。
最终效果是让 LLM 误以为分析环境出现了连锁故障,进而出现分析流程中断、结果被截断、输出错误的无风险判定,甚至直接拒绝执行本次分析任务。
此类针对分析师与分析工具的提示注入并非全新概念,但野外在野样本的实现程度存在明显代差:
披露的Hades 供应链窃密载荷,仅在文件头部加入伪造的提示注入头
泄露的 Shai-Hulud 恶意代码,仅携带针对 Claude Code 的magic字符串,试图终止特定模型的分析。
上述案例均依赖单条注入内容或头部标记实现,而 macOS.Gaslight 采用 38 条成体系的级联伪造消息,模拟完整的环境故障链路,其伪装规模、场景还原度在已知野外在野恶意样本中均处于较高水平。
该样本的常规反分析手段仅通过dlsym动态解析系统 API 以规避静态符号表检测、动态获取自身可执行文件路径而非硬编码,其核心反分析能力完全聚焦于 LLM 分析链路。