news 2026/9/12 2:52:10

Business Email Compromise 检测实战:基于 Anthropic-Cybersecurity-Skills 的 BEC 邮件欺诈识别方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Business Email Compromise 检测实战:基于 Anthropic-Cybersecurity-Skills 的 BEC 邮件欺诈识别方案

Business Email Compromise 检测实战:基于 Anthropic-Cybersecurity-Skills 的 BEC 邮件欺诈识别方案

【免费下载链接】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,商业电子邮件欺诈)是一种不依赖恶意链接或附件、纯靠社会工程学完成的资金欺诈攻击,攻击者冒充高管、供应商或可信伙伴,诱导员工汇款、泄露敏感数据或篡改付款信息。本文以仓库中的 detecting-business-email-compromise/SKILL.md 为核心,结合其脚本实现与参考资料,系统讲解从邮件网关规则、行为分析到财务流程控制的全链路 BEC 检测方案,并给出可直接运行的检测引擎与评分模型,帮助你为 SOC 分析师与 AI Agent 构建可落地的 BEC 检测能力。

认识 BEC:为什么它比传统钓鱼更难检测

传统钓鱼攻击依赖恶意链接或附件投递载荷,而 BEC 攻击恰恰相反——邮件中通常没有任何可被沙箱捕获的恶意元素,攻击者仅靠"伪造身份 + 制造紧迫感 + 引导变更付款路径"三件套完成欺诈。这一特性决定了 BEC 检测不能只靠邮件网关的静态信誉库,必须叠加行为分析(Behavioral Analytics)与财务流程控制(Financial Process Controls)才能形成有效防御。

按照 FBI IC3 的分类,BEC 攻击可归纳为五类,SKILL.md 中均有对应说明:

类型攻击模式典型场景
CEO Fraud(CEO 欺诈)冒充 CEO 要求紧急汇款"我在开会,立即向某账户转账 $50,000"
Account Compromise(账户盗用)员工邮箱被控,向供应商发付款请求使用真实员工邮箱索要账款
False Invoice Scheme(虚假发票)假"供应商"发来变更银行信息的发票发票上的收款账户被替换
Attorney Impersonation(律师冒充)冒充法务顾问处理机密转账"机密法律事务,勿与他人讨论"
Data Theft(数据窃取)向 HR 索要 W-2、税务表单或 PII冒充 CFO 索要全员薪资数据

与这些攻击类型对应的 MITRE ATT&CK 技术映射见 SKILL.md 的元数据与 references/standards.md,涵盖 T1566.002(Spearphishing Link)、T1534(Internal Spearphishing)、T1114.003(Email Forwarding Rule)与 T1098.002(Additional Email Delegate Access)等。

核心检测指标:什么特征说明这封邮件可疑

SKILL.md 给出了 BEC 邮件的关键检测指标,这些指标在脚本实现中大多有对应的正则模式与评分逻辑:

  • 紧迫与保密话术:"confidential"、"do not discuss with others"、"act now"、"deadline today";
  • 新增或变更的付款指令:出现新的银行账户、路由号、收款方式;
  • 高管沟通模式异常:与收件人日常沟通模式不符;
  • 显示名与邮箱域不一致:显示名是 CEO,但发件域是外部域名;
  • Reply-To 与 From 地址不一致:回复目标域与发件域不同;
  • 首次通信模式:发件人与收件人此前从未通信;
  • 礼品卡或加密货币请求:要求购买礼品卡或转移 BTC。

在 scripts/agent.py 中,这些指标被固化为可执行的检测模式,例如BEC_URGENCY_PATTERNS将话术分为紧迫类、保密类、金融类、礼品卡类、高管指令类与账户变更类;EXECUTIVE_TITLES列出 ceo、cfo、president、director 等高管头衔,用于显示名欺骗检测。

四步检测工作流:从邮件网关到财务控制

SKILL.md 给出完整的 BEC 检测工作流,分为四个步骤:

Step 1:配置 BEC 专属邮件规则

  • 标记来自外部域名但使用 VIP 显示名的邮件;
  • 检测金融关键词与紧迫话术的组合;
  • 对首次联系财务/会计人员的发件人告警;
  • 检查 Reply-To 域不匹配。

Step 2:部署行为分析

  • 为每位用户建立正常通信模式基线;
  • 检测异常请求(异常收件人、异常时间、异常请求类型);
  • 监控邮件转发规则变更(对应 T1114.003)。

Step 3:实施财务控制

  • 超过阈值的电汇需双人授权(Dual-authorization);
  • 付款信息变更必须走带外验证(Out-of-band verification,如电话回拨);
  • 建立供应商付款变更验证流程;
  • 对财务团队进行 BEC 警示标识培训。

Step 4:监控账户盗用

  • 检测邮箱登录位置的"不可能旅行"(Impossible Travel);
  • 对转发规则创建行为告警;
  • 监控邮箱委派(Delegation)变更;
  • 检查是否有收件箱规则隐藏 BEC 相关邮件。

检测流水线落地:一个可执行的 BEC 判定流程

references/workflows.md 给出了 BEC 检测流水线的完整判定流程,它既是编写检测规则的蓝图,也直接映射了脚本引擎的判定逻辑:

入站邮件 → 显示名是否匹配 VIP? ├─ 是 + 外部域名 → 高危告警(疑似 CEO 欺诈) ├─ 否 → 继续常规检查 金融关键词(wire transfer / payment / invoice)? ├─ 叠加紧迫话术(urgent / confidential / today)→ 升级标记,交由财务复核 Reply-To 域与 From 域不一致?→ 高危,疑似 BEC 通信模式异常?(首次联系财务/HR、非常规时段)→ 中危,需人工验证 最终处置: ├─ BLOCK:高置信度 BEC ├─ QUARANTINE:中等置信度 ├─ TAG:为收件人添加警示横幅 └─ DELIVER:低风险

这个流程同时体现在 scripts/agent.py 的analyze_email()函数中:先解析 .eml 文件,再依次执行 SPF/DKIM/DMARC 认证检查、显示名欺骗检查、Reply-To 不匹配检查与紧迫话术检测,最后汇总为 0-100 的 BEC 评分。

源码级实现:agent.py 与 process.py 双引擎

仓库为 BEC 检测提供了两套可运行的 Python 实现,分别对应"轻量单文件分析"与"完整检测引擎"两个场景。

agent.py:邮件头解析与评分

agent.py 基于 Python 标准库email模块解析 .eml 文件,核心能力包括:

  • check_spf_dkim_dmarc():解析Authentication-Results头,输出 spf/dkim/dmarc 三者的 pass/fail/none 状态;
  • check_display_name_spoofing():从 From 头分离显示名与邮箱地址,与 VIP 名单比对,判断是否出现"显示名匹配高管但来自外部域"的迹象;
  • check_reply_to_mismatch():比对 From 与 Reply-To 的域名是否一致;
  • detect_urgency_language():用多组正则匹配紧迫与保密话术;
  • calculate_bec_score():加权评分模型——spf=fail 加 25 分、dkim=fail 加 20 分、dmarc=fail 加 30 分、显示名欺骗加 35 分、Reply-To 不匹配加 25 分、紧迫话术每命中加 10 分(上限 40 分),总分封顶 100。

评分结果映射为四级风险等级:CRITICAL(≥70)/ HIGH(≥50)/ MEDIUM(≥30)/ LOW

命令行用法如下(见 references/api-reference.md):

python agent.py --email-file suspicious.eml --vip-names "John Smith" "Jane CEO" python agent.py --scan-dir /var/mail/quarantine/ --vip-names "CFO Name"

其中--vip-names可接收多个高管显示名,--scan-dir支持批量扫描目录下所有 .eml 文件。

process.py:企业级检测引擎

process.py 提供了更完整的检测引擎,采用detect_bec()主函数对邮件执行 7 项检查:

  1. VIP 显示名冒充:显示名命中 VIP 名单但发件域为外部域,置信度 0.9,判为 ceo_fraud,加 35 分;
  2. 金融关键词:命中 wire transfer、invoice、routing number、W-2 等 18 类词,加 5-20 分;
  3. 紧迫关键词:命中 urgent、confidential、do not share 等,加 5-15 分;
  4. 金融+紧迫组合:两类同时命中即为强 BEC 信号,加 20 分;
  5. 权威指令话术:"I need you to"、"I'm in a meeting"、"don't call me" 等与金融或紧迫内容叠加时,加 15 分;
  6. Reply-To 不匹配:回复域与发件域不一致,置信度 0.85,判为 account_compromise,加 20 分;
  7. 外部发件人联系财务/HR:外部域发件人发给 finance/accounting/payroll/hr 角色,判为 vendor_fraud,加 10 分。

评分结果自动给出处置建议:

BEC 评分处置动作
≥ 60BLOCK and alert SOC
40-59QUARANTINE for manual review
20-39TAG with warning banner
< 20DELIVER normally

引擎还通过置信度加权投票判定最可能的 BEC 类型(ceo_fraud / payment_fraud / vendor_fraud / account_compromise),并用format_bec_report()输出结构化文本报告。支持detect(单封邮件,可传 --email-json 或逐字段参数)与analyze-log(批量分析邮件日志,--json输出结构化结果)两个子命令。

邮件头 API 参考:解析认证信息的底层机制

BEC 检测的底层是邮件头的正确解析。references/api-reference.md 总结了 Pythonemail库的用法:

import email from email import policy with open("message.eml") as f: msg = email.message_from_file(f, policy=policy.default) msg.get("From") # 发件人头 msg.get("Reply-To") # 回复头 msg.get("Authentication-Results") # SPF/DKIM/DMARC 结果 body = msg.get_body(preferencelist=("plain", "html")) body.get_content() # 解码后的正文

Authentication-Results头是判断邮件是否被伪造的关键证据,其取值含义如下:

结果含义
spf=pass发件 IP 获得域 SPF 记录授权
spf=fail发件 IP 不在 SPF 记录中
dkim=passDKIM 签名有效
dkim=failDKIM 签名无效或缺失
dmarc=passSPF 或 DKIM 与 From 域对齐
dmarc=failSPF 与 DKIM 均未对齐

当一封"高管邮件"出现dmarc=fail时,基本可以判定显示名与真实发送者不一致。若需在 Microsoft 365 环境中以 Graph API 拉取邮件认证头,可参考仓库中给出的internetMessageHeaders过滤查询方式。

规则落地:检测规则表与配置模板

references/standards.md 汇总了可直接落到邮件网关或 SIEM 的检测规则优先级:

规则描述优先级
VIP impersonation内部 VIP 显示名 + 外部发件域Critical
Payment language电汇/付款关键词 + 紧迫话术High
Reply-to mismatchReply-to 域与 From 域不同High
First-time sender与收件人此前无通信记录Medium
Forwarding rule新建指向外部地址的自动转发规则Critical
Gift card request请求购买礼品卡High
Vendor change付款信息变更通知High

部署时可参考 assets/template.md 中的 BEC 检测与响应模板,填写 VIP 保护名单(姓名/职位/邮箱域)、已部署规则(条件/动作/状态)、财务控制清单与事件响应联系人表。模板中预设的规则动作组合(如 VIP 冒充 → 隔离 + 告警、金融+紧迫 → 打标 + 告警、Reply-To 不匹配 → 打标 + 记录)与 process.py 的评分处置建议一一对应,可直接用作上线配置底稿。

BEC 事件响应:30 分钟黄金处置流程

检测到或收到举报后,references/workflows.md 给出了分阶段的响应流程:

  • 立即动作(前 30 分钟):隔离邮件;搜索是否还有类似邮件发给了其他收件人;通知受影响用户切勿执行请求。
  • 调查(接下来 2 小时):解析邮件头追溯真实来源;检查用户是否已合规(查已发送文件夹);若已付款立即启动银行撤回;排查账户盗用(转发规则、登录异常)。
  • 遏制:封禁发件域/IP;若账户被盗用则强制改密、吊销会话;移除恶意转发规则;通知财务暂停待付款项。
  • 恢复:与银行协作追回资金;向 FBI IC3(ic3.gov)报案;通知相关方;更新检测规则;对受影响员工开展针对性培训。

对供应商付款信息变更,务必遵守"三不原则":使用邮件中提供的联系方式,在电话确认前处理变更,跳过双人授权。正确做法是:从既有记录中查找供应商联系人 → 拨打已知号码核实 → 确认后走双授权流程;无法联系则暂缓付款并上报。

技术映射:Skill 与六大框架的对应关系

作为结构化安全技能,本 Skill 在元数据中声明了与多个框架的映射(见 SKILL.md 头部),并在 mappings/attack-navigator-layer.json 的检测覆盖层中登记了该技能。其中 MITRE ATT&CK 侧覆盖 T1566.002(Spearphishing Link)、T1534(Internal Spearphishing)、T1114.002(Email Collection: Exchange Email)、T1657(Financial Theft)与 T1078.004(Valid Accounts: Cloud Accounts);MITRE F3(Fight Fraud)侧覆盖 F1032(Impersonate Official)、F1036(New Vendor Setup)、F1005.006(Change of Payment Details)与 F1025.003(Wire Transfer);NIST CSF 侧对应 PR.AT-01(培训)、DE.CM-09(通信监控)、DE.AE-02(异常事件分析)与 RS.CO-02(沟通协调)。这套映射既可用于检测覆盖度审计,也可用于向管理层说明 BEC 防御在合规框架中的位置。

小结

BEC 防御的本质是"身份信任 + 资金指令"双重校验:技术上用 SPF/DKIM/DMARC 与显示名比对戳穿伪造身份,用行为分析识别异常通信模式,用财务流程控制(双人授权、带外验证、供应商变更回调)守住资金出口。本仓库的 SKILL.md 与配套脚本将这套方法论沉淀为可执行的规则、评分引擎与响应流程,既可直接在邮件网关上落地,也可作为 AI Agent 处理疑似 BEC 邮件的决策依据。

【免费下载链接】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),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/12 2:52:01

Spring事务原理与失效场景剖析:从JDBC到声明式事务的完整调用链

做后端开发这些年&#xff0c;Spring事务相关的坑我踩过不少&#xff0c;也帮团队排查过不少。最典型的一次是&#xff1a;一个订单接口明明加了Transactional&#xff0c;结果库存扣减抛异常后&#xff0c;订单记录照样落库。代码反复看了好几遍都没发现问题&#xff0c;最后把…

作者头像 李华
网站建设 2026/9/12 2:50:49

PolarDB-X Oracle兼容性与去IOE迁移实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/12 2:50:18

blind_watermark:3分钟给图片加隐形水印,不靠原图也能取回

blind_watermark&#xff1a;3分钟给图片加隐形水印&#xff0c;不靠原图也能取回 【免费下载链接】blind_watermark Blind&Invisible Watermark &#xff0c;图片盲水印&#xff0c;提取水印无须原图&#xff01; 项目地址: https://gitcode.com/GitHub_Trending/bl/bli…

作者头像 李华
网站建设 2026/9/12 2:47:02

BFGS与Armijo线搜索的MATLAB实现:从数学原理到代码实战

我先说下这个项目给我的感觉吧。做优化算法的人&#xff0c;手上一般都会备着几套经典无约束优化方法的代码&#xff0c;梯度下降、牛顿法这些当然要有&#xff0c;但真正在工程里遇到非凸目标、二阶信息算不出来或者算出来不太靠谱的时候&#xff0c;BFGS几乎是默认的备选方案…

作者头像 李华