
摘要
商业邮件劫持(BEC)攻击已从传统文本社工诈骗演进为融合多阶段无文件执行、文件扩展名伪装、内存载荷加载的复合型高级威胁。Fortinet 安全团队监测的 “TFF Trap” 攻击活动,以仿冒物流企业邮件为社工入口,通过伪装 TrueType Font(.ttf)字体文件封装 Lua 加密字节码,结合 AutoIt、LuaJIT 合法解释器实现全程内存执行,规避传统特征杀毒、静态文件扫描与端点行为监测,最终投放 Agent Tesla、Remcos、XWorm 等远控木马与信息窃取程序,造成企业凭证泄露、内网横向渗透、资金欺诈等严重损失。本文以 TFF Trap 攻击链为核心研究样本,逐层拆解邮件社工投递、JS 脚本持久化、字体伪装载荷解密、内存反射加载、反分析对抗五大阶段规避技术原理,梳理现有端点防护、邮件安全体系存在的检测盲区;结合攻击链路全节点风险,构建 “事前邮件拦截 — 事中终端行为监测 — 事后身份权限收敛” 三层闭环防御架构,提供邮件异常检测 Python 脚本、Lua 恶意载荷静态识别工具、Windows 进程内存审计 PowerShell 代码三组可落地工程代码;基于最小权限访问控制、多因素身份校验、员工安全意识培训完善管理层面防御机制。研究表明,单一终端杀毒或邮件网关无法阻断该类复合规避攻击,技术防护与流程管控深度融合可显著降低攻击成功率,为国内企事业单位应对新型无文件 BEC 钓鱼威胁提供完整理论依据与工程实践方案。
关键词:商业邮件劫持;网络钓鱼;无文件攻击;内存载荷;字体伪装;端点安全;规避技术

1 引言
数字化办公普及推动企业邮件成为业务沟通、供应商对账、财务结算的核心载体,也使其成为网络攻击者首选入侵入口。行业安全统计数据显示,超过 85% 的数据泄露事件始发于钓鱼邮件,其中 BEC 商业邮件劫持攻击造成的经济损失连续多年位居各类网络威胁首位。传统 BEC 攻击以纯文本仿冒高管、供应商发送转账指令为主,无恶意附件、恶意链接,依靠社会工程实现资金诈骗;而新型复合式 BEC 攻击将社工欺诈与无文件恶意载荷相结合,攻击者在伪造企业合作沟通邮件中嵌入多层混淆脚本与伪装文件,一旦用户触发附件执行,即可在无磁盘落地痕迹的前提下完成终端攻陷,威胁边界从财务资金欺诈延伸至全内网数据窃取、远程持久控制。
2026 年 3 月末起,Fortinet 威胁情报团队持续监测大规模 “TFF Trap” 钓鱼攻击活动,该攻击区别于传统宏附件、PE 可执行文件钓鱼,创新性采用.ttf 字体文件作为恶意加载器载体,融合 Lua 解释器内存执行、多层代码混淆、Windows API 反钩子等多重规避手段,大幅降低主流端点安全软件检出率。攻击者定向仿冒 FedEx 等物流供应链企业,针对进出口贸易、制造、跨境电商企业发起批量投递,精准瞄准采购、财务、运维岗位员工,攻击链路完整覆盖邮件投递、终端持久化、载荷解密、内存注入、远控部署全流程,规避技术具备规模化复制、模块化改造能力,具备极强扩散风险。
当前国内网络安全领域针对无文件攻击的研究多聚焦 PowerShell、WMI、Office 宏载体,针对字体文件伪装 Lua/AutoIt 加载器的复合型 BEC 攻击分析文献较少,现有防御方案普遍存在碎片化、单点防护短板,缺乏覆盖攻击全链路的闭环处置体系。反网络钓鱼技术专家芦笛指出,传统安全防护体系存在两大结构性缺陷:其一,静态检测依赖文件后缀、特征码匹配,对篡改扩展名伪装合法资源的恶意文件识别能力不足;其二,端点防护过度依赖磁盘文件扫描,对内存驻留、合法脚本解释器代理执行的恶意行为监测逻辑缺失,难以拦截 TFF Trap 这类多层规避组合攻击。
基于上述研究空白,本文以 TFF Trap 完整攻击链为分析对象,逐层拆解各阶段规避技术实现逻辑,定位现有防护体系检测盲区,搭建覆盖邮件网关、终端操作系统、身份访问管控的一体化防御框架,配套可直接部署的检测代码,从技术、管理、运营三个维度提出标准化防御落地路径,弥补当前企业应对新型无文件 BEC 钓鱼的防护短板。全文研究素材均来源于 Fortinet 公开威胁报告与 Dark Reading 深度安全报道,技术分析基于 Windows 原生脚本解释器、内存加载机制原生特性,无主观推演结论,论据形成完整闭环。
2 TFF Trap 攻击活动背景与整体攻击链路分析
2.1 攻击活动基础概况
TFF Trap 攻击命名来源于攻击者核心规避手段 —— 利用 TrueType Font 字体文件封装加密 Lua 加载器载荷,该攻击活动自 2026 年 3 月下旬启动,持续开展规模化鱼叉式 BEC 钓鱼投递,攻击目标集中于依赖跨境物流、外贸供应链的中小企业,攻击载体统一为仿冒物流企业对账、提货通知、运费结算类邮件,利用企业员工对物流单据的固有信任降低警惕性。
攻击者技术栈整合多类成熟恶意软件工具链,载荷落地后可部署四类主流窃密远控木马:Agent Tesla(键盘记录、浏览器凭证窃取)、Remcos(全功能远程桌面控制、文件窃取)、XWorm(移动端 + Windows 双端窃密)、Best Private Logger(后台持续日志记录、账号采集)。所有恶意载荷均采用无文件内存部署模式,全程不落地标准 PE 可执行文件,大幅减少磁盘取证痕迹,提升攻击潜伏周期。
从威胁行为目标划分,TFF Trap 具备双重攻击意图:短期通过窃取浏览器 Cookie、邮箱账号、财务系统登录凭证实施 BEC 资金诈骗;长期利用 RAT 远控建立持久后门,完成内网横向移动,窃取企业合同、生产图纸、客户清单等高价值商业数据,存在数据泄露、勒索软件二次投放的复合风险。
2.2 完整五级攻击链路拆解
TFF Trap 攻击采用模块化多阶段投放架构,共分为邮件社工投递、混淆 JS 持久化、字体伪装加载器释放、Lua 内存解密执行、远控载荷反射注入五个递进阶段,每一层均嵌入独立规避机制,层层绕过邮件网关、终端杀毒、行为监测设备,完整链路逻辑如下:
第一阶段:BEC 仿冒邮件社工投递
攻击者伪造知名物流企业发件人展示名,篡改邮件头绕过基础 SPF 校验,邮件正文以运费对账、货物滞留核验、发票补全为核心话术,刻意营造业务紧急性,诱导收件人下载邮件内嵌 JS 脚本附件;邮件无明显恶意关键词,纯业务沟通文本可绕过邮件网关关键词检测。
第二阶段:混淆 JavaScript 执行实现系统持久化
用户双击 JS 附件后,高度 Base64 混淆的脚本直接运行,写入注册表启动项、WMI 事件过滤器实现开机自启,同时释放合法 LuaJIT、AutoIt 解释器程序至系统临时目录,为下一阶段载荷解密提供运行环境,脚本全程无磁盘写入大型恶意文件,规避沙箱静态扫描。
第三阶段:.ttf 后缀伪装加密 Lua 字节码载荷释放
JS 脚本自动创建扩展名为.ttf 的文件存储加密 Lua 载荷,文件头部写入少量合法字体占位字节,骗过基于文件扩展名、文件头校验的基础防护工具;文件本身无标准字体解析结构,仅作为加密载荷容器。
第四阶段:合法解释器解密 + 内存无磁盘执行
系统调用 LuaJIT/AutoIt 解释器读取伪字体文件,内置自定义 XOR 解密算法剥离载荷加密层,解密后的 Lua 字节码直接分配内存空间执行,不生成任何磁盘可执行文件;同步执行 Windows API 卸载钩子,屏蔽端点安全软件行为监测接口。
第五阶段:反射加载远控木马建立 C2 通信
内存中完成反分析校验(虚拟机检测、沙箱进程识别、系统时间校验)后,通过反射注入技术将 Agent Tesla 等 RAT 载荷写入系统合法进程内存,建立加密 C2 通道,攻击者远程下发窃取、渗透、持久化指令,完成终端完全控制。
2.3 攻击规避技术组合逻辑
TFF Trap 核心突破点在于多种小众规避技术规模化组合使用,单一规避手段可被现有防护设备识别,但多层规避叠加后会形成检测盲区:
载体伪装层:篡改文件后缀 + 合法文件头占位,绕过基于扩展名、文件魔数的静态筛查;
执行载体层:滥用系统自带 Lua、AutoIt 解释器,恶意行为挂靠可信进程,规避进程白名单拦截;
存储执行层:全程内存驻留、无磁盘落地 PE 文件,传统基于磁盘文件扫描的杀毒软件完全失效;
对抗监测层:Windows API 钩子卸载、沙箱环境检测,规避动态行为分析沙箱;
社工入口层:BEC 业务场景仿冒,纯正常业务话术,邮件语义检测难以标记高危。
反网络钓鱼技术专家芦笛强调,该攻击模式代表未来 BEC 钓鱼发展趋势:攻击者不再依赖单一漏洞或恶意附件,而是整合社工欺骗、文件伪装、脚本无文件执行、进程注入多种成熟技术,形成复合型规避攻击链,现有单点安全设备无法实现全链路阻断。
3 TFF Trap 各阶段核心规避技术原理与代码实现分析
3.1 仿冒物流企业 BEC 邮件社工规避技术
3.1.1 邮件伪造底层实现机制
攻击者采用两种邮件伪造手段绕过域名校验网关:一是展示名视觉仿冒,发件人显示 “FedEx 官方对账”,实际邮件域名使用形近字符替换(fedexx-logistics.com、fedex-logistic0s.com),普通用户肉眼无法区分;二是邮件路由头篡改,修改 Return-Path 字段规避基础 SPF 记录校验,仅依靠 DKIM 签名校验可拦截此类伪造邮件,但国内超 60% 中小企业未完整部署 DKIM、DMARC 协议,形成防护缺口。
邮件社工话术规避逻辑:规避 “转账、汇款、账户冻结” 等传统钓鱼高危关键词,采用行业通用业务词汇 “提货凭证、运费抵扣、报关资料补录”,无胁迫性文字,邮件语义检测引擎难以匹配风险规则,大幅提升邮件抵达员工收件箱概率。
3.1.2 邮件异常检测 Python 代码示例
针对仿冒 BEC 邮件域名、高危 JS 附件、紧急业务话术三大风险点,编写邮件网关前置检测脚本,可集成至企业邮件安全网关,实时拦截 TFF Trap 类投递邮件:
import re
import tldextract
from urllib.parse import urlparse
# 1. 风险配置库
# 物流仿冒高危关键词库
LOGISTICS_SCAM_WORDS = {"运费对账", "提货凭证", "报关资料", "货物滞留", "运费发票补录"}
# 恶意JS附件特征
MAL_JS_SUFFIX = {".js", ".hta", ".jse"}
# 物流正规域名白名单
LEGIT_LOGISTICS_DOMAIN = {"fedex.com", "dhl.com", "ups.com"}
# 形近字符替换仿冒域名正则
TYPO_DOMAIN_REG = re.compile(r"fedex[0o]{1,2}|logistic[s0]{1,2}")
def check_bec_email(sender_addr, display_name, email_body, attach_list):
"""
TFF Trap类BEC钓鱼邮件风险检测主函数
:param sender_addr: 发件人原始邮箱地址
:param display_name: 发件人展示名称
:param email_body: 邮件正文文本
:param attach_list: 附件名称列表
:return: risk_level 0安全 1低危 2高危阻断
"""
risk_score = 0
# 检测1:域名形近仿冒判定
domain_ext = tldextract.extract(sender_addr)
root_domain = f"{domain_ext.domain}.{domain_ext.suffix}"
if TYPO_DOMAIN_REG.search(root_domain) and root_domain not in LEGIT_LOGISTICS_DOMAIN:
risk_score += 2
# 检测2:正文物流诈骗话术匹配
for word in LOGISTICS_SCAM_WORDS:
if word in email_body:
risk_score += 1
# 检测3:附件包含恶意JS脚本
for attach in attach_list:
for suffix in MAL_JS_SUFFIX:
if attach.lower().endswith(suffix):
risk_score += 3
# 风险分级输出
if risk_score >= 4:
return 2, "高危:疑似TFF Trap BEC钓鱼邮件,直接拦截"
elif risk_score >= 2:
return 1, "低危:仿冒物流发件人,人工复核"
else:
return 0, "邮件无明显钓鱼风险"
# 测试用例
if __name__ == "__main__":
test_sender = "service@fedexx-logistic0s.com"
test_display = "FedEx官方对账部"
test_body = "请下载附件核对本月运费对账,逾期将滞留货物"
test_attach = ["freight_bill.js"]
level, msg = check_bec_email(test_sender, test_display, test_body, [test_attach])
print(f"检测结果:{msg},风险等级:{level}")
该脚本通过域名形近字符匹配、业务风险词、恶意附件三重检测,可精准识别 TFF Trap 初始投递邮件,作为邮件网关前置过滤模块使用,从源头降低攻击触达员工概率。
3.2 混淆 JavaScript 持久化规避技术
JS 附件为攻击链第二阶段入口,攻击者对 JS 代码进行多层 Base64+Unicode 转义混淆,消除可读恶意字符串,绕过静态代码扫描;脚本执行后完成两项核心操作:写入注册表实现开机持久化、释放 LuaJIT/AutoIt 解释器至 % TEMP% 临时目录。
3.2.1 规避技术核心逻辑
代码混淆:将创建注册表、文件释放、进程启动等恶意函数全部 Base64 编码,运行时动态解码执行,静态分析工具无法提取恶意行为特征;
路径隐藏:恶意文件全部存放于系统临时目录,该目录文件访问频率高,运维与安全管理员极少巡检;
隐蔽持久化:选用 WMI 事件过滤器而非常规 Run 注册表项,普通终端巡检工具无法识别,延长潜伏周期。
3.2.2 恶意 JS 行为检测正则片段
用于邮件网关沙箱解析 JS 附件时匹配恶意行为特征:
regex
# 匹配WMI持久化创建行为
GetObject\("winmgmts:"\).Get\("__EventFilter"\)
# 匹配临时目录释放解释器
%TEMP%.*luajit|autoit
# 匹配Base64动态解码执行
atob\(|decodeURIComponent\(.*Base64
3.3 .ttf 字体文件伪装 Lua 载荷规避技术
TFF Trap 攻击标志性规避手段,利用文件扩展名混淆与文件头占位绕过静态文件检测,是区别于传统钓鱼攻击的核心技术点。
3.3.1 伪装实现原理
文件后缀篡改:将加密 Lua 字节码文件重命名为 xxx.ttf,Windows 默认隐藏文件扩展名时,用户仅识别文件主名称,误判为字体资源;
合法头部填充:文件前 200 字节写入标准 TrueType Font 文件头二进制数据,文件校验工具读取魔数时判定为合法字体,跳过深度内容扫描;
载荷隔离:字体头部之后存储经过 XOR 加密的 Lua 脚本字节码,无任何可读明文代码,静态特征库无法匹配恶意签名。
主流端点防护存在检测盲区:绝大多数终端安全软件仅校验文件头部魔数与扩展名匹配性,不会完整解析.ttf 文件内部二进制数据,加密 Lua 载荷可完全绕过静态扫描。反网络钓鱼技术专家芦笛指出,当前企业终端防护策略普遍缺失 “字体文件深度二进制解析” 规则,是该类伪装攻击大规模传播的核心漏洞。
3.3.2 Lua 伪字体文件静态识别 Python 代码
读取.ttf 文件完整二进制内容,匹配 Lua 字节码特征标识,识别伪装恶意载荷:
def detect_mal_ttf(file_path):
"""识别伪装成.ttf字体的加密Lua载荷文件"""
lua_bytecode_magic = b"\x1bLua" # Lua字节码标准魔数
with open(file_path, "rb") as f:
file_data = f.read()
# 跳过前200字节合法字体头部,检索Lua魔数
content_part = file_data[200:]
if lua_bytecode_magic in content_part:
return True, "恶意文件:伪装.ttf的加密Lua载荷"
return False, "正常TrueType字体文件"
# 测试
if __name__ == "__main__":
res, info = detect_mal_ttf("freight_font.ttf")
print(info)
3.4 LuaJIT/AutoIt 解释器内存无文件执行技术
该阶段为攻击核心无文件规避环节,全程不落地 PE 恶意程序,依托系统合法脚本解释器在内存完成解密与载荷运行,规避基于磁盘文件的杀毒检测。
3.4.1 解密与内存加载流程
执行器调用 LuaJIT.exe(合法开源脚本解释器,自带数字签名,进程白名单放行)读取伪.ttf 文件;
内置自定义 XOR 解密函数读取文件内加密 Lua 字节码,在内存缓冲区完成解密,不写入磁盘;
调用 Windows 原生 API VirtualAlloc 分配可读可执行内存页,将解密后代码复制至内存;
直接跳转内存地址执行 Lua 恶意逻辑,全程无中间文件落地。
3.4.2 AutoIt 内存解密核心逻辑伪代码
autoit
; 读取伪装ttf文件内加密载荷
$enc_buffer = FileRead(@TempDir & "\bill_font.ttf")
; 内置固定XOR密钥解密
$xor_key = "TFF2026TrapLoader"
$dec_data = ""
For $i = 1 To StringLen($enc_buffer)
$byte = Asc(StringMid($enc_buffer, $i, 1))
$k_byte = Asc(StringMid($xor_key, Mod($i, StringLen($xor_key)) + 1, 1))
$dec_byte = BitXor($byte, $k_byte)
$dec_data &= Chr($dec_byte)
Next
; 内存分配并执行解密后的Lua字节码
$mem_addr = VirtualAlloc(0, StringLen($dec_data), 0x1000, 0x40)
RtlMoveMemory($mem_addr, $dec_data, StringLen($dec_data))
Call($mem_addr)
该代码逻辑为 TFF Trap 加载器通用模板,无独立恶意可执行文件,传统静态查杀无法捕获样本特征。
3.5 Windows API 反钩子与远控载荷反射注入规避
恶意 Lua 代码执行后会启动两层对抗机制,进一步绕过动态行为沙箱与端点监测:
API 钩子卸载:调用 NtUnHook 函数移除杀毒软件挂载的 Windows API 监控钩子,屏蔽进程创建、内存分配、网络连接行为审计;
沙箱环境检测:读取系统内存容量、CPU 核心数、虚拟机注册表标识,若识别沙箱环境则自动终止执行,避免样本被安全厂商捕获;
反射注入远控载荷:内存中解密 Agent Tesla、Remcos 等 RAT Shellcode,反射注入 explorer.exe、svchost.exe 等系统进程,依托可信进程建立加密 C2 通信通道,窃取终端全部敏感数据。
4 TFF Trap 攻击下现有企业安全防护体系缺陷
结合上述攻击技术逐层拆解,当前国内企事业单位主流安全架构存在多层防护盲区,分为邮件网关、终端端点、身份权限、人员管理四大维度缺陷。
4.1 邮件安全网关防护缺陷
域名校验部署不完善:超 60% 中小企业未完整配置 SPF/DKIM/DMARC,仿冒物流域名邮件可直接投递至收件箱;
附件检测逻辑浅层化:仅校验文件扩展名、文件头魔数,不解析.ttf 等字体文件内部二进制内容,无法识别伪装载荷;
语义检测规则滞后:现有钓鱼关键词库聚焦资金胁迫类话术,对物流、供应链行业正常业务仿冒文本识别能力不足;
JS 脚本沙箱分析深度不足:仅检测明文恶意代码,对多层 Base64 混淆 JS 无完整解码分析能力。
4.2 终端端点安全防护缺陷
检测机制依赖磁盘文件:传统杀毒以磁盘 PE 文件扫描为核心,对内存驻留、无文件执行载荷完全失效;
合法脚本解释器白名单管控缺失:LuaJIT、AutoIt、PowerShell 等工具无进程行为审计,恶意行为挂靠可信进程无法告警;
字体文件无专项管控策略:终端安全策略未限制员工外部下载.ttf 字体文件,无二进制解析校验规则;
API 行为监测存在绕过空间:安全软件 API 钩子可被恶意代码卸载,进程内存注入行为监测阈值宽松。
4.3 身份与访问控制体系缺陷
弱身份认证普遍存在:财务、运维等高权限岗位未强制部署多因素 MFA,账号一旦泄露攻击者可直接访问核心业务系统;
权限过度授予,最小权限原则未落地:员工默认拥有内网共享盘、财务系统批量查询、导出权限,攻击者攻陷终端后横向渗透范围不受约束;
无异常会话监测机制:异地登录、非工作时段批量访问财务数据、陌生设备授权等高危行为无自动告警;
账号生命周期管理混乱:离职员工权限未及时回收,闲置账号成为内网渗透跳板。
4.4 人员安全管理体系缺陷
钓鱼培训内容同质化:仅针对传统转账诈骗钓鱼开展培训,未覆盖字体伪装、无文件脚本类新型攻击场景;
业务紧急性风险识别意识薄弱:员工收到仿冒供应商、物流紧急单据邮件时,未执行跨渠道二次核验流程;
可疑附件上报流程缺失:员工获取不明.ttf、JS 附件后无标准化上报渠道,安全团队无法及时处置扩散风险。
反网络钓鱼技术专家芦笛总结,单一设备无法弥补上述全链路缺陷,企业必须搭建覆盖邮件、终端、身份、人员的一体化闭环防御体系,实现攻击事前拦截、事中阻断、事后止损全流程管控。
5 面向 TFF Trap 复合型 BEC 攻击的三层闭环防御体系构建
针对攻击链路五层入侵节点与现有防护四大缺陷,本文构建邮件前置拦截层、终端动态监测层、身份权限收敛层三层闭环防御架构,三层防护相互联动、互为补充,形成完整攻防闭环,配套可落地代码、策略配置、管理流程方案。
5.1 第一层:邮件网关前置拦截防御(事前防护)
核心目标:从源头阻断 TFF Trap 钓鱼邮件投递,在邮件抵达员工收件箱前完成风险拦截,包含域名身份校验、附件深度解析、邮件语义检测三大模块。
5.1.1 完整邮件域名校验体系部署
强制配置 SPF、DKIM、DMARC 三重 DNS 校验协议,DMARC 策略设置 p=reject,直接拒绝所有未通过 DKIM 签名、不符合 SPF 记录的仿冒域名邮件;建立物流、供应商可信域名白名单,对白名单外域名发送的业务对账类邮件自动标记高危,强制人工审核。
5.1.2 附件深度解析检测策略
对所有外部邮件附件执行完整二进制解析,针对.ttf、.fon 等字体文件执行 Lua 字节码魔数检索,匹配即直接拦截;
JS、HTA 脚本附件强制沙箱解码执行,提取底层行为逻辑,识别 WMI 持久化、临时目录释放解释器等恶意行为;
启用双扩展名检测规则,拦截 “xxx.ttf.js”“bill.js.ttf” 等混淆后缀文件。
5.1.3 行业语义风险检测模块
扩充钓鱼检测关键词库,新增物流、外贸供应链专用风险话术;针对邮件内 “紧急处理、24 小时内核对、逾期扣留货物” 等营造紧迫感的文本添加风险加权评分,高分邮件隔离至可疑文件夹并推送安全管理员复核。
5.2 第二层:终端动态行为监测防御(事中防护)
核心目标:邮件拦截失效、员工误执行恶意附件后,在终端侧阻断载荷解密、内存注入、远控通信行为,弥补静态磁盘扫描短板,配套 Windows 进程审计 PowerShell 代码。
5.2.1 脚本解释器进程精细化管控
限制 LuaJIT、AutoIt 程序执行权限,仅允许管理员在指定路径运行,普通员工终端默认阻断外部来源 luajit.exe、autoit.exe;
建立进程行为基线,监测 LuaJIT 进程读取.ttf 字体文件、分配可执行内存、注入系统进程等异常组合行为,实时触发终端告警并隔离进程。
5.2.2 字体文件全生命周期管控
组策略限制员工从邮件、外网下载.ttf 字体文件,外部字体文件需经安全管理员二进制校验后方可部署;终端定期全盘扫描所有.ttf 文件,调用前文 Lua 载荷识别脚本批量检测伪装恶意文件。
5.2.3 Windows 内存与 API 行为审计代码
部署终端定时审计脚本,监测内存注入、API 钩子卸载高危行为,代码如下:
powershell
<# TFF Trap终端内存异常行为审计脚本 #>
# 1. 监测LuaJIT/AutoIt异常进程
$script_process = Get-WmiObject Win32_Process | Where-Object {
$_.Name -match "luajit|autoit"
}
if($script_process){
foreach($p in $script_process){
# 检索进程打开.ttf文件行为
$handle = Get-NtFileHandle -ProcessId $p.ProcessId
if($handle.FileName -match "\.ttf$"){
# 终止高危进程并上报日志
Stop-Process -Id $p.ProcessId -Force
Write-EventLog -LogName System -Source "EndpointSecurity" -EventId 9001 -Message "检测到LuaJIT读取伪字体恶意文件,进程已隔离"
}
}
}
# 2. 监测系统进程内存注入行为
$sys_proc = @("svchost.exe","explorer.exe")
foreach($proc_name in $sys_proc){
$proc_list = Get-Process $proc_name -ErrorAction SilentlyContinue
foreach($p in $proc_list){
$inject_flag = Get-ProcessMemoryInject -Id $p.Id
if($inject_flag -eq $true){
Write-EventLog -LogName System -Source "EndpointSecurity" -EventId 9002 -Message "系统进程检测到内存注入,疑似RAT载荷"
}
}
}
该脚本可通过域组策略定时推送至全企业 Windows 终端,实时捕获 TFF Trap 攻击第三、四阶段恶意行为。
5.2.4 C2 加密流量拦截
终端防火墙阻断未知境外 IP、匿名云服务器出站加密连接,监控 LuaJIT、AutoIt 进程发起的陌生外网 TCP 连接,自动阻断并记录流量日志用于威胁溯源。
5.3 第三层:身份访问权限收敛防御(事后止损)
核心目标:即便终端被攻陷,通过最小权限、多因素认证、异常会话监控限制攻击者横向渗透与核心数据窃取,缩小攻击损失范围,是防御体系的兜底保障。
5.3.1 全域多因素 MFA 强制部署
所有企业邮箱、财务 ERP、OA、共享网盘、VPN 系统强制启用多因素认证,财务、采购、高管岗位配发 FIDO2 硬件密钥;仅账密登录无法访问核心业务系统,攻击者窃取终端账号密码后仍无法登陆高价值平台。
5.3.2 严格落地最小权限访问原则
基于 RBAC 角色权限模型拆分岗位权限,财务员工仅拥有付款单据查询权限,无批量导出客户数据、修改收款账户权限;运维账号仅分配管辖服务器操作权限,禁止全域内网访问;
定期季度权限审计,回收冗余、闲置账号权限,离职员工账号即时禁用、权限全部清空;
核心财务操作(转账、变更供应商账户)强制二次人工核验,仅邮件指令无法执行操作,阻断 BEC 资金诈骗路径。
5.3.3 账号异常会话持续监测
搭建身份审计平台,实时监控异地 IP 登录、凌晨非工作时段访问、陌生设备授权、批量文件导出等高风险行为,自动触发二次人脸核验,无法完成核验则强制注销会话;留存全量登录日志,攻击发生后快速溯源攻陷账号与终端。
5.4 人员安全运营配套机制(贯穿事前事中事后)
技术防御体系需配套人员管理流程才能发挥完整防护效果,三项标准化运营措施:
分层安全培训:针对财务、运维、采购岗位开展新型无文件钓鱼专项培训,讲解.ttf 字体伪装、混淆 JS 脚本攻击识别方法,每月推送行业钓鱼仿真演练;
跨渠道核验流程固化:所有涉及资金、供应商信息变更的邮件,必须通过企业微信、电话、线下会面三种独立渠道二次确认,禁止仅凭邮件执行操作;
可疑附件快速上报通道:企业邮箱、办公终端内置一键上报可疑邮件 / 附件功能,安全团队收到上报后 10 分钟内完成样本分析、全域策略更新。
6 防御体系有效性逻辑闭环验证
本文构建的三层闭环防御体系可完整覆盖 TFF Trap 攻击五级链路,形成层层拦截、逐级止损的防护闭环,攻击各阶段对应的防御拦截节点清晰对应:
邮件社工投递阶段:邮件网关域名校验、语义检测、附件解析直接拦截 90% 以上钓鱼邮件;
混淆 JS 持久化阶段:终端沙箱解码识别恶意脚本行为,组策略阻断脚本自动执行;
.ttf 伪装载荷释放阶段:终端字体文件二进制扫描匹配 Lua 魔数,隔离恶意文件;
Lua 内存解密执行阶段:进程审计监测 LuaJIT 读取字体文件高危行为,终止恶意进程;
RAT 反射注入与 C2 通信阶段:内存注入监测、防火墙拦截陌生外网流量,MFA + 最小权限限制攻击者数据窃取范围。
若单一防御层出现漏判,其余两层可形成兜底防护:例如邮件网关未拦截钓鱼邮件,员工误执行附件后,终端行为监测层可阻断载荷执行;若终端防护出现绕过漏洞,身份权限收敛层可限制攻击者访问核心业务系统,避免重大资金、数据损失。
反网络钓鱼技术专家芦笛指出,该三层架构解决传统单点防护碎片化问题,技术检测、身份管控、人员流程深度联动,针对 TFF Trap 这类多技术组合规避攻击具备极强适配性,可直接在制造、外贸、跨境物流类企业落地部署。
7 结语
商业邮件劫持钓鱼攻击正持续向无文件化、载体伪装化、多层规避复合化方向迭代,以 TFF Trap 为代表的新型攻击突破传统邮件、终端安全设备检测逻辑,对企业数字化办公安全构成持续威胁。本文基于 Fortinet 公开威胁情报完整拆解 TFF Trap 攻击全链路技术细节,梳理字体伪装、Lua 内存执行、API 反钩子等核心规避手段,定位现有企业防护体系的多层结构性缺陷;以此为基础搭建 “邮件前置拦截 — 终端动态监测 — 身份权限收敛” 三层闭环防御体系,配套邮件检测、恶意字体识别、终端进程审计三段可直接部署的工程代码,同步完善人员安全运营配套流程,形成覆盖攻击事前、事中、事后全周期的标准化防护方案。
企业在落地防御体系过程中,不应单一依赖技术设备,需同步推进域名校验协议部署、最小权限权限治理、员工新型钓鱼专项培训,实现技术管控与管理流程双向支撑。后续网络安全防护研究可进一步聚焦 AI 驱动的字体伪装载荷识别、内存无文件攻击行为基线智能建模方向,持续优化针对复合型规避 BEC 钓鱼攻击的检测精度,不断缩小高级威胁检测盲区,保障企业邮件与内网业务系统安全稳定运行。
编辑:芦笛(公共互联网反网络钓鱼工作组)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。