用 AI 检测商业电子邮件诈骗(BEC):从技术标准到 NLP 检测实战——Anthropic-Cybersecurity-Skills 项目指南
【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills
导读
商业电子邮件诈骗(Business Email Compromise,BEC)是最难用传统规则引擎识别的攻击类型之一——它不含恶意附件、不携带钓鱼链接,完全依赖社会工程与身份伪装。本文基于 Anthropic-Cybersecurity-Skills 仓库中 detecting-business-email-compromise-with-ai 技能目录,系统梳理其引用的 MITRE ATT&CK 技术标准、AI/ML 检测技术路线、FBI IC3 损失数据,并结合仓库内可运行的 NLP 检测脚本,为你还原一套从"标准映射 → 特征提取 → 行为基线 → 多模型评分 → 处置动作"的完整 BEC 检测工程方案。读完本文,你将掌握 BEC 检测的技术依据、五大检测类别,以及可直接复现的机器学习与规则混合检测实现。
BEC 检测的技术标准底座:MITRE ATT&CK 映射
AI 检测不能脱离威胁建模。该技能在标准文档中首先将 BEC 攻击链锚定到 MITRE ATT&CK 战术与技术上,这是建设检测规则、验证监控覆盖(coverage)的基准。具体映射见 references/standards.md:
| ATT&CK ID | 名称 | 在 BEC 中的含义 |
|---|---|---|
| T1566.001 / T1566.002 | Phishing:Spearphishing Attachment / Link | 通过邮件附件或链接发起的定向钓鱼 |
| T1534 | Internal Spearphishing | 从已被攻陷的内部账号向组织内其他员工发起钓鱼 |
| T1656 | Impersonation | 冒充他人身份(显示名、域名伪装) |
| T1586.002 | Compromise Accounts:Email Accounts | 攻陷并接管邮箱账号 |
| T1114.003 | Email Collection:Email Forwarding Rule | 设置邮箱转发规则收集邮件 |
这组映射与技能 Frontmatter 中的mitre_attack字段(T1566.002、T1534、T1114.002、T1657、T1078.004)相互印证。值得注意的是,仓库文档 docs/mitre-f3-mapping.md 还解释了为什么 BEC 类技能要额外映射到 MITRE Fight Fraud Framework(F3 v1.1):ATT&CK 把"攻陷后的欺诈变现"压缩为单一技术T1657(Financial Theft),而 F3 专门补充了Positioning(FA0001,定位欺诈)与Monetization(FA0002,变现)两个 ATT&CK 没有的战术。因此该技能在 SKILL.md 中同时携带mitre_f3块,例如F1032 Impersonate Official(initial-access)、F1005.006 Account Manipulation: Change of Payment Details(positioning)、F1025.003 Electronic Funds Transfer: Wire Transfer(monetization)——这回答了"攻击者如何进入/在技术上操作"与"如何将入侵变成钱"两个互补的问题。
此外,技能 Frontmatter 还覆盖了 NIST CSF 2.0(PR.AT-01、DE.CM-09、DE.AE-02、RS.CO-02)、MITRE ATLAS(AML.T0073 等)与 D3FEND(Sender Reputation Analysis、Homoglyph Detection、Email Filtering 等)框架,展示了一个跨框架对齐的检测能力矩阵。
AI/ML 检测技术路线:五类模型与精度参考
规则引擎检测不了纯社会工程,因此该技能采用多模型组合方案。标准文档给出的技术路线与精度参考如下:
| 技术 | 应用场景 | 参考精度 |
|---|---|---|
| BERT 嵌入 + SVC(支持向量分类器) | 邮件分类 | 98.65% |
| Transformer NLP | 写作风格分析 | 96%+ |
| 异常检测 | 行为基线偏离检测 | 94%+ |
| 图神经网络(GNN) | 通信模式分析 | 93%+ |
| 情感分析 | 紧迫/操控意图检测 | 91%+ |
这些数字来自公开研究文献的基准参考,用于说明"每种模型解决 BEC 的哪个侧面",而非仓库自测数据——实际落地时精度取决于基线训练质量与业务数据。技能的 Validation 章节给出了更务实的验收标准:基线训练后误报率低于 0.05%,检测率比传统规则过滤提升 25% 以上。多模型并行的本质是:语言模型判断"内容像不像本人写的",行为模型判断"这个行为像不像这个人做的",两者叠加才构成对纯社会工程攻击的闭环。
五大检测类别:从"冒充"到"意图"
标准文档将 BEC 检测能力划分为五类,每类对应一种攻击面,这与 SKILL.md 中"检测策略(Detection Policies)"的四大场景(VIP 冒充、供应商冒充、账号接管、供应链 BEC)一一对应:
- 冒充检测(Impostor Detection):AI 识别显示名/域名冒充。典型场景是
"John Smith <john.smith@evil.com>"冒充 CEO 发送邮件。 - 账号接管检测(Account Takeover Detection):基于行为异常的检测,发现真实账号被攻陷后的反常行为。
- 写作风格分析(Writing Style Analysis):NLP 将新邮件与发件人历史写作风格(词汇、句式、语气)比对,发现文风突变。
- 意图分类(Intent Classification):ML 将邮件分类为支付请求、凭据请求或数据请求——BEC 的核心诉求。
- 关系分析(Relationship Analysis):图分析发件人与收件人的通信模式,识别首次通信、异常关系边。
实战一:特征工程与 NLP 特征提取
检测的起点是特征提取。API 参考文档 references/api-reference.md 定义了六类 NLP 特征,全部在 scripts/agent.py 中由extract_features()实际实现:
| 特征 | 计算方式 | BEC 信号 |
|---|---|---|
| urgency_score | 紧迫词(urgent/immediately/asap 等)占比 | 越高越可疑 |
| pressure_score | 保密/施压词(confidential/do not share 等)占比 | 越高越可疑 |
| financial_score | 金融词(wire/payment/invoice/bank 等)占比 | 越高越可疑 |
| authority_score | 高管头衔词(CEO/CFO/president 等)占比 | 越高越可疑 |
| caps_ratio | 大写字符占比 | 越高语气越激进 |
| unique_word_ratio | 词汇多样性 | 越低越像模板化批量邮件 |
agent.py 中维护了四组种子词典(URGENCY_WORDS、PRESSURE_WORDS、FINANCIAL_WORDS、AUTHORITY_WORDS),并额外输出exclamation_ratio、avg_word_length、avg_sentence_length等句法特征,用于写作风格画像。可执行验证:
python skills/detecting-business-email-compromise-with-ai/scripts/agent.py --file email_body.txt python skills/detecting-business-email-compromise-with-ai/scripts/agent.py --file email_body.txt --baseline-file sender_style.json--baseline-file提供发件人历史文风基线后,detect_impersonation_signals()会计算当前邮件平均句长与基线的偏差,超过阈值(默认 8 个词)即标记writing_style_deviation。
实战二:冒充信号模式库
纯社会工程的 BEC 邮件几乎不含恶意载荷,但语言模式高度雷同。agent.py 与 api-reference.md 共同给出了可复用的冒充信号正则库:
# 移动端签名(制造"不方便核实"的借口) r"sent from my (iphone|ipad|android|mobile)" # 劝阻收件人核实 r"(please|kindly).*(do not|don't).*(reply|respond|call)" # 不可用借口 r"(i am|i'm).*(in a meeting|traveling|on a flight)" # 时间压力 r"(handle|process|complete).*(today|immediately|by end of day)"这些信号对应 BEC 社工话术的四个典型套路:制造紧迫感、劝阻验证、虚构不便、限定时间窗。命中即写入impersonation_signals列表,作为评分的强证据。
实战三:scikit-learn 分类管线
如果要把特征工程升级为可训练的分类模型,api-reference.md 提供了开箱即用的 scikit-learn 管线模板——TF-IDF 文本向量化 + 随机森林分类器:
from sklearn.pipeline import Pipeline from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.ensemble import RandomForestClassifier pipeline = Pipeline([ ("tfidf", TfidfVectorizer(max_features=5000, ngram_range=(1, 2))), ("clf", RandomForestClassifier(n_estimators=100, random_state=42)) ]) pipeline.fit(X_train, y_train) predictions = pipeline.predict(X_test)ngram_range=(1, 2)让模型同时学习单词与二元词组特征,max_features=5000控制词表规模避免过拟合。训练后建议配合 SKILL.md 的模型反馈回路持续用人工标注结果(用户上报误报、分析师确认命中、用户举报漏报)重训模型,形成 references/workflows.md 中描述的"模型反馈闭环"。
实战四:写作风格分析(Stylometry)
作者验证(author verification)是识别"显示名是 CEO、文风却是攻击者"的关键。api-reference.md 给出了句长分布的笔迹学实现,agent.py 的analyze_writing_style()将其落地并输出一致性指标:
import re, math sentences = re.split(r'[.!?]+', text) lengths = [len(s.split()) for s in sentences if s.strip()] mean_len = sum(lengths) / len(lengths) variance = sum((l - mean_len)**2 for l in lengths) / len(lengths) std_dev = math.sqrt(variance)核心思想:同一作者的句长分布相对稳定(标准差小)。agent.py 用style_consistency = 1 - min(std_dev / 20, 1)将标准差归一化为 0~1 的一致性得分——标准差超过 20 个词即视为文风不一致,得分趋近 0。
实战五:完整检测引擎(process.py)
如果要从单封邮件分析升级为生产级检测,仓库提供了 scripts/process.py ——一个包含四大评分模块的完整引擎:
Inbound email → 特征提取(发件人元数据 / 正文 NLP / 行为上下文 / 关系图) → 多模型并行分析(冒充分类器 / NLP 文风 / 行为模型 / 意图分类) → 置信度评分(按权重聚合)→ 处置动作模块一:NLP 评分(compute_nlp_score)
与 agent.py 的词典统计不同,process.py 采用加权正则模式:URGENCY_PATTERNS、SECRECY_PATTERNS、FINANCIAL_PATTERNS、AUTHORITY_PATTERNS每个模式带权重(如gift card权重 4、wire transfer权重 3),命中即累加,总分除以 25 归一化到 0~1,并输出payment_request/directive/sensitive_request三类意图。
模块二:冒充评分(compute_impostor_score)
对照 VIP 名单检查两件事:显示名与 VIP 姓名匹配但发件域名与 VIP 官方域名不一致(+0.5,命中"外部域名冒充 VIP");Reply-To域名与From域名不一致(+0.3,命中"回信劫持")。
模块三:行为评分(compute_behavioral_score)
对照历史基线检测三类偏离:首次与该收件人通信(+0.3)、非常规发送时段(+0.2)、平时不谈财务的发件人突然发起支付/转账请求(+0.3)。基线由train_baseline()从历史邮件日志生成,记录每名发件人的收件人集合、典型发送时段、典型话题。
模块四:聚合评分与处置
weights = {"nlp": 0.35, "impostor": 0.40, "behavioral": 0.25} result.overall_score = ( result.nlp_score * weights["nlp"] + result.impostor_score * weights["impostor"] + result.behavioral_score * weights["behavioral"] ) result.confidence = min(result.overall_score * 1.2, 1.0)冒充权重最高(0.40),因为冒充是 BEC 最核心的欺骗载体。最终按分数分档处置,与 SKILL.md 及 assets/template.md 的阈值表完全一致:
| 综合分 | 分类 | 处置动作 |
|---|---|---|
| ≥ 90%(0.9) | 高置信 BEC | 自动隔离 + SOC 告警 |
| 70–89%(0.5–0.7) | 中度 BEC | 警告横幅 + 分析师队列 |
| 50–69%(0.3–0.5) | 低置信 BEC | 仅警告横幅 |
| < 50%(<0.3) | 大概率正常 | 正常投递 |
注:SKILL.md 用百分比描述(90/70/50),process.py 用 0~1 分数(0.7/0.5/0.3)实现同一套分档逻辑,对应关系为
overall_score >= 0.7→ 自动隔离,>= 0.5→ 横幅+队列,>= 0.3→ 仅横幅。
命令行使用方式:
# 训练行为基线(30+ 天历史邮件日志) python skills/detecting-business-email-compromise-with-ai/scripts/process.py train-baseline \ --email-log emails.json --output baselines.json # 检测单封邮件(支持 --vip-file 指定 VIP 名单,--json 输出结构化结果) python skills/detecting-business-email-compromise-with-ai/scripts/process.py detect \ --email-json email.json --baseline-file baselines.json --vip-file vips.json数据背景:FBI IC3 的 BEC 威胁统计
标准文档引用 FBI 互联网犯罪投诉中心(IC3)数据说明 BEC 的量级与动因:
- 2023 年 BEC 造成的报告损失达29 亿美元;
- BEC 占所有网络犯罪经济损失的27%;
- 每起 BEC 事件平均损失12.5 万美元;
- 2023 年全年受理 BEC 投诉21,832 起。
这些数字解释了为何 AI 检测值得投入:BEC 单笔损失远高于普通钓鱼,且攻击者伪装技巧不断升级,规则库永远追不上话术变体,只有基于写作风格与行为基线的学习型模型才能对抗。
实施前提与落地建议
根据 SKILL.md 的 Prerequisites 与模板文档,落地前需满足:
- 数据前提:至少 30 天(建议 48 小时基线学习期后的持续积累)历史邮件数据用于基线训练;
- 平台集成:对接 Microsoft Graph API 或 Google Workspace API,扫描入站、出站与内部邮件三个方向;通过
GET /users/{id}/mailFolders/inbox/messageRules?$filter=actions/forwardTo ne null可检测账号被劫持后设置的转发规则(对应 T1114.003); - SIEM/SOAR 集成:用于告警关联、分析师复核队列与自动响应剧本;
- 人员准备:理解 FBI IC3 的 BEC 攻击分类(冒充、账号接管、供应商欺诈等)。
推荐的工程化路线是:先运行agent.py做轻量特征检测与文风分析,再以process.py的train-baseline构建行为基线、detect完成多模型评分,最后按模板 assets/template.md 固化 VIP 保护名单、阈值与模型性能指标,并与商业 AI 邮件安全平台(Abnormal Security、Microsoft Defender for O365、Tessian、Ironscales、Darktrace Email)的告警做交叉验证。
总结
BEC 检测的本质是"信任边界"的量化:用写作风格判断内容真伪,用行为基线判断请求合理性,用关系图谱判断通信是否越界。本文以该技能的标准文档为骨架,结合仓库脚本展示了从 MITRE ATT&CK 技术映射、五类 AI 检测路线到可运行 NLP 引擎的完整链路。实际生产中,建议将 98%+ 精度的 BERT 类深度模型与轻量正则/词典模型组合部署——前者负责文风与意图的深层次理解,后者负责低延迟、可解释的实时拦截,并通过持续的误报/漏报反馈闭环让两类模型共同进化。
【免费下载链接】Anthropic-Cybersecurity-Skills817 structured cybersecurity skills for AI agents · Mapped to 6 frameworks: MITRE ATT&CK, NIST CSF 2.0, MITRE ATLAS, D3FEND, NIST AI RMF & MITRE F3 (Fight Fraud) · agentskills.io standard · Works with Claude Code, GitHub Copilot, Codex CLI, Cursor, Gemini CLI & 20+ platforms · 29 security domains · Apache 2.0项目地址: https://gitcode.com/GitHub_Trending/an/Anthropic-Cybersecurity-Skills
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考