MemoPhishAgent: Memory-Augmented Multi-Modal LLM Agent for Phishing URL Detection¶
会议: ACL 2026
arXiv: 2602.21394
代码: GitHub
领域: 安全AI
关键词: 钓鱼检测, LLM智能体, 情景记忆, 多模态推理, 工具调用
一句话总结¶
提出 MemoPhishAgent(MPA),首个专为钓鱼URL检测设计的记忆增强多模态LLM智能体,通过5个专用工具的动态编排和情景记忆系统复用历史推理轨迹,在公开基准上召回率提升13.6%,在真实社交媒体数据上提升20%,并已部署生产环境每周处理约6万高风险URL。
研究背景与动机¶
领域现状:钓鱼攻击持续演变,传统防御(静态黑名单、手工启发式规则)对新域名和新手法覆盖不足。基于品牌-域名映射的参考方法改进了鲁棒性但维护成本高,对新品牌和子域名反应滞后。
现有痛点:(1)现有LLM方案多为提示式确定性流水线,缺乏自适应证据收集能力;(2)工具使用固定流程(如先OCR再品牌匹配再域名验证),不能根据当前证据状态动态调整;(3)无记忆系统,无法复用历史调查经验,重复分析类似钓鱼模式效率低。
核心矛盾:钓鱼攻击是非平稳的——攻击者不断变换策略,但防御系统是无记忆的,每次从零开始分析。
本文目标:构建一个能动态调整证据收集策略、从历史调查中学习、并适用于生产环境的钓鱼检测智能体。
切入角度:将钓鱼检测建模为多步推理过程——模拟人类专家的调查行为,动态选择工具收集证据。
核心idea:5个钓鱼专用多模态工具 + ReAct推理循环 + 情景记忆系统(存储/检索历史推理轨迹),三者结合实现自适应、可学习的钓鱼检测。
方法详解¶
整体框架¶
MPA接收可疑URL列表,每个URL通过Agent处理:(1)动态选择5个专用工具收集多模态证据(文本+视觉+外部知识);(2)在ReAct循环中进行多步推理,基于当前证据状态决定下一步行动;(3)利用情景记忆检索相似历史案例,加速判断或提供exemplar引导。最终输出"恶意"或"良性"判定。
%%{init: {'flowchart': {'rankSpacing': 24, 'nodeSpacing': 28, 'padding': 6, 'wrappingWidth': 400, 'subGraphTitleMargin': {'top': 8, 'bottom': 16}}}}%%
flowchart TD
A["可疑 URL"] --> MEM
subgraph MEM["情景记忆系统:检索历史判例"]
direction TB
B["LLM 抽情景关键词<br/>(如 apple login)"] --> C["向量索引检索<br/>top-k 近邻历史推理轨迹"]
end
MEM --> D{"三级记忆使用策略<br/>按命中数 k′ 分档"}
D -->|"k′=0 未见模式"| E["完整 ReAct 循环取证"]
D -->|"0<k′<k 部分相似"| F["历史轨迹作 exemplar<br/>引导 ReAct 推理"]
D -->|"k′≥k 高度相似"| G["对近邻历史判定多数投票"]
subgraph TOOLS["5 个钓鱼专用多模态工具"]
direction TB
T1["Crawl Content / Check Screenshot / Check Image<br/>文本+视觉取证"]
T2["Intelligent Search<br/>按证据缺口查品牌/威胁情报"]
T3["Extract Targets<br/>解短链挖隐藏落地页"]
end
E --> TOOLS
F --> TOOLS
TOOLS --> H["判定:恶意 / 良性"]
G --> H
H --> I["新轨迹 + 关键词写回记忆"]
关键设计¶
1. 5 个钓鱼专用多模态工具:把人类专家的取证手段拆成可调度的原子动作
通用 agent 工具不贴钓鱼场景——它们不会去读全页截图里的伪造登录框,也不会顺着短链挖出隐藏的重定向目标。MPA 因此自造了 5 个工具,覆盖文本、视觉、外部知识、嵌套攻击面四个维度:Crawl Content 把页面正文抽成 Markdown 文本,Check Screenshot 对全页截图做整体分析,Check Image 做细粒度图像检查(如比对品牌 logo 真伪),这三者构成多模态证据;Intelligent Search 不是傻搜域名,而是基于当前已收集到的证据动态拼出查询语句去拿最新的品牌/威胁情报;Extract Targets 则专门提取重定向目标和子链接,把 URL shortener、sites.google.com 这类平台托管路径背后的真实落地页挖出来做深层检查。
工具之所以这样切分,是因为钓鱼的证据天然散落在不同模态:纯文本检测漏掉视觉仿冒,纯视觉又读不懂跳转逻辑。五个工具各管一摊、互补成网,agent 就能按当前线索缺口去补对应那一类证据,而不是被钉死在固定取证顺序上。
2. 情景记忆系统:把重复的调查变成可复用的判例
钓鱼攻击的一大特点是高度重复——同一套攻击模板会被反复套用到不同受害者身上,每次都从零分析既慢又浪费。情景记忆系统就是为吃掉这部分重复而设计:每处理完一个页面,用 LLM 把它压成一组紧凑关键词(如 "apple login"、"wallet connect")作为 episodic key,连同完整推理轨迹一起嵌入向量索引。来新 URL 时先抽同样的关键词、检索 top-\(k\) 近邻,命中的历史轨迹就成了现成判例。随着部署时间拉长,记忆库越攒越厚,能直接复用的旧案例比例越来越高,这也是它几乎零额外算力却能大幅提速的来源。
3. 三级记忆使用策略:让记忆当顾问,而不是当法官
记忆若用得太狠会反客为主——直接拿旧结论拍板,遇到变种攻击就会误判。MPA 因此按检索命中数 \(k'\)(top-\(k\) 里真正相似的条数)分三档收放:\(k'=0\) 说明是没见过的新模式,走完整 ReAct 循环从头取证;\(0 < k' < k\) 是部分相似,把检索到的历史轨迹当 in-context exemplar 喂进去引导推理,但仍让 agent 自己下结论;\(k' \ge k\) 才是高度相似,直接对这些近邻的历史判定做多数投票快速出结果。这条梯度的核心是把记忆定位成"上下文指导"而非"思考替身",既靠投票吃掉重复模式的速度红利,又靠完整推理兜住未见模式的可靠性。
一个完整示例:一条仿冒 Apple 登录的短链怎么被判死¶
假设来了一条 bit.ly/xxx 短链。Agent 先调 Extract Targets 顺着短链解出真实落地页 apple-id-verify.weebly.com;再调 Crawl Content 抽出正文,发现满屏 "Sign in to Apple ID" 字样;Check Screenshot 对全页截图一看,登录框、Apple logo 排版高度仿真;Check Image 进一步比对 logo,发现像素级瑕疵和官方资源对不上。此时 agent 用这些证据抽出关键词 "apple login / weebly host / id verify" 去查情景记忆——若命中数 \(k' \ge k\)(之前已存过多条同模板的 Apple 仿冒判例),直接多数投票判"恶意",省掉 Intelligent Search 那一步外部查询;若只部分命中(\(0<k'<k\)),就把旧轨迹当 exemplar,再补一次 Intelligent Search 确认 weebly.com 不是 Apple 官方域名后下判定;若完全没命中(\(k'=0\)),则走满整套 ReAct 取证后判定,并把这条新轨迹连同关键词写回记忆,供后续同模板攻击直接复用。
实验关键数据¶
主实验¶
| 方法 | TR-OP Recall | DynaPD Recall | 速度(s/URL) |
|---|---|---|---|
| MPA | 93.4% | 93.6% | 4.46 |
| PhishLLM | ~80% | ~88% | 14.2 |
| MLLM | ~82% | ~85% | 5.1 |
| URLTran | ~86% | — | 2.8(含训练) |
消融实验¶
| 配置 | 关键指标 | 说明 |
|---|---|---|
| 完整MPA | 93.4% Recall | 所有组件 |
| - 记忆系统 | -27% Recall | 记忆贡献最大 |
| - 工具设计 | 性能下降 | 专用工具优于通用工具 |
| 提示式基线 | 较差 | 固定流程不如自适应选择 |
关键发现¶
- 情景记忆贡献高达27%的召回率提升,且不增加额外计算开销
- MPA是所有方法中最快的(4.46s/URL),因为记忆系统跳过了大量重复分析
- 在真实社交媒体数据(SocPhish)上召回率提升20%,说明在真实场景中优势更大
- 生产部署每周处理~60K高风险URL,实现91.44%召回率
- URL shorteners和平台托管路径(如sites.google.com)是传统方法的盲区,MPA通过多模态工具克服
亮点与洞察¶
- 已部署生产环境:不仅是学术工作,已在Amazon生产环境中保护百万用户,说服力强
- 情景记忆的效果惊人:27%召回率提升且不增加计算——因为对重复模式直接投票,减少了LLM调用
- 工具设计专业且互补:5个工具从文本/视觉/搜索/链接四维度收集证据
- 三级记忆策略平衡了效率和准确性:对未见模式完整分析,对已见模式快速决策
局限与展望¶
- 依赖外部LLM API:Claude-3-Sonnet的延迟和成本
- 记忆系统可能被污染:如果早期错误判断被存入记忆,可能影响后续决策
- 仅关注钓鱼URL:其他安全威胁(如恶意软件分发)未覆盖
- 未来方向:记忆自我修正机制、扩展到更多安全威胁类型、轻量化本地模型替代API
相关工作与启发¶
- vs PhishLLM:使用LLM做品牌提取+意图识别,但仍是固定流程;MPA动态选择工具
- vs Cao et al. (2025):多模态LLM钓鱼检测但固定证据获取流程,无记忆
- vs 通用Agent框架:使用通用工具和推理,MPA的钓鱼专用工具更有效
评分¶
- 新颖性: ⭐⭐⭐⭐ 首个钓鱼专用的记忆增强LLM Agent,情景记忆系统设计精巧
- 实验充分度: ⭐⭐⭐⭐⭐ 两个公开基准+真实社交媒体数据+生产部署验证,消融全面
- 写作质量: ⭐⭐⭐⭐ 威胁模型定义清晰,系统架构图直观
- 价值: ⭐⭐⭐⭐⭐ 已在生产环境验证,对安全AI有直接应用价值