免费托管网络钓鱼的经济逻辑

五年前,想要建立虚假域名 ledger-live-update.com 的网络钓鱼攻击者需要注册域名、配置 DNS、设置 SSL,并部署服务器。总成本在 10 到 30 美元之间,还需要一两天的准备时间。成本本身并不是障碍,但每个步骤都留下了扫描工具可以追溯的痕迹。WHOIS 记录显示注册时间。SSL 证书出现在证书透明性日志中。DNS 记录是公开的。检测厂商围绕这些信号建立了整套信誉系统。

免费托管平台在一夜之间打破了这种检测模式。*.vercel.app 子域名可以在几秒钟内完成配置。DNS 记录指向 Vercel 基础设施,而非攻击者控制的 IP。SSL 证书由 Vercel 为 *.vercel.app 签发,并由平台上的所有其他网站共享。WHOIS 查询返回的是 Vercel 的数据,而非攻击者的信息。扫描工具用来标记新域名的每一个外部信号都被隐藏在平台背后。

Netlify(*.netlify.app)、Cloudflare Pages(*.pages.dev)、GitHub Pages(*.github.io)、Surge(*.surge.sh)、Firebase(*.web.app)、Render(*.onrender.com)以及十几个更小的平台同样如此。每一个都在受信任的父域名上提供免费托管的子域名,任何骗子都可以在比泡一杯咖啡更短的时间内申请。

网络钓鱼设置的实际形态

最常见的模式是虚假的硬件钱包辅助网站。骗子注册类似 hardware-identity-ledger.vercel.appledger-recovery-app.vercel.apptrezor-verify.vercel.app 这样的网站。页面几乎是真实 Ledger Live 或 Trezor Suite 引导流程的像素级副本。它要求用户通过在表单中输入 24 个单词的恢复短语来"验证"或"导入"钱包。表单会将这些单词发送到攻击者控制的服务器。几分钟内,攻击者就在自己的机器上导入了钱包,并盗取了所有能找到的资产。

针对软件钱包的变体使用同样的手法,但跳过了助记词表单。它改为显示一个"连接钱包"按钮,触发 Web3 交易。这个交易通常是 setApprovalForAll、对不透明数据块的 eth_sign,或者 Permit2 无限额度授权。不仔细阅读模拟结果就点击确认的用户,实际上是在授予攻击者随时转移其代币的权限。

最近我们还发现 *.vercel.app URL 被用于虚假的"硬件钱包身份徽章"——这些页面声称通过点击硬件钱包设备来验证 Twitter 或 X 账号。乍看之下这些页面无害,因为它们要求的是签名而非助记词,但签名载荷通常被设计为在其他地方授权未来的恶意操作。页面本身没有任何实际用途。它捕获的签名才是真正的危害所在。

为何连合法的加密货币从业者也会分享这些 URL

这是最让大多数人感到惊讶的部分。我们看到主要硬件钱包公司经过验证的员工从自己的个人账号发布 *.vercel.app URL,作为业余项目、黑客马拉松实验或原型产品。他们并非出于恶意。其初衷是真诚地分享自己构建的东西。问题在于这种行为树立了一个先例。

当一个拥有已验证 Ledger 徽章或 Trezor 员工标签的 Twitter 用户分享 hardware-identity.vercel.app 时,阅读该推文的用户会得出一个非常具体的结论:"如果 Ledger 员工分享了,Vercel URL 就是安全的。"这正是攻击者所期待的。就在接下来的一周,攻击者注册了 hardware-identity-app.vercel.app,从使用类似品牌的虚假账号发布相同类型的内容,用户点击是因为他们已经被训练成信任这种模式。

合法方面的修复很简单。硬件钱包公司和主要 DeFi 协议应该将所有官方工具发布在自己的 <brand>.com 子域名上,而非共享的免费托管平台。verify.ledger.com 是可验证的,因为用户可以检查域名。hardware-identity.vercel.app 是无法验证的,因为任何人都可以部署任何子域名。将实验从 Vercel 迁移到真实子域名的成本只需几分钟的 DNS 配置。而训练用户认为 Vercel URL 是官方的代价,则以被盗空的钱包来衡量。

为何扫描工具和信任工具通常会漏过这种攻击

大多数网络钓鱼检测产品通过在信誉数据库中查找域名来工作。对于 *.vercel.app 子域名上的虚假网站,数据库查询会给出两种答案之一。如果查询检查的是 vercel.app 本身,结果将是"受信任,大型合法托管提供商"。如果查询检查的是具体的 hardware-identity-ledger.vercel.app,结果将是"无数据,无历史记录,可能安全"。两种答案都无法将该页面标记为网络钓鱼。

真正有效的检测必须查看内容,而非域名。具体而言,三个信号至关重要。第一,页面是否要求输入 12 个或 24 个单词的恢复短语。第二,页面是否包含触发 setApprovalForAll 或无限 Permit2 授权的"连接钱包"流程。第三,页面是否在非该品牌官方允许列表域名上渲染品牌资产(Ledger 徽标、MetaMask 狐狸、Trezor 字体标志)。

这正是 SafeBrowz 扩展在本地运行的检测逻辑,也是 SafeBrowz API 向钱包应用和 AI 代理开放的功能。我们追踪 100 多种语言中的 500+ 个品牌,包括 Ledger、Trezor、Tangem、OneKey、BitBox、Coldcard、NGRAVE、SecuX、KeepKey 和 Ellipal 等硬件钱包。当这些品牌名称出现在不在该品牌官方允许列表上的免费托管子域名时,页面会在用户钱包连接之前被标记为品牌冒充尝试。

vercel.app 安全吗?

坦诚的答案是:Vercel 本身是一个合法的、资金充裕的托管平台,被数千家真实公司使用,大多数 *.vercel.app URL 并非网络钓鱼。该平台的安全程度与 Gmail 相同。平台本身并不是威胁。威胁在于任何人都可以在五分钟内申请一个 *.vercel.app 子域名,就像任何人都可以创建一个 Gmail 地址一样。所以"vercel.app 安全吗"这个问题的答案与"Gmail 地址安全吗"相同:平台没问题,但你必须验证具体的发件人。

对于加密货币活动,规则更为严格。如果一个 *.vercel.app URL 要求你导入钱包、签署交易或输入恢复短语,默认将其视为恶意行为。合法的硬件钱包品牌和 DeFi 协议不会在共享的免费托管平台上部署生产钱包流程。它们部署在自己的根域名上,SSL 证书、DNS 记录和所有权记录均可验证。进行钱包操作的 *.vercel.app URL 几乎总是网络钓鱼设置,无论页面文本声称什么。

如果你发现了疑似网络钓鱼的特定 Vercel URL 并想举报,Vercel 在 vercel.com/abuse 提供滥用举报流程。Cloudflare 托管的 Pages 可以在 cloudflare.com/abuse 举报。Netlify 的举报邮箱是 abuse@netlify.com。每个平台都认真对待网络钓鱼举报,通常在收到经核实的举报后数小时内下架页面。

用户可以在 5 秒内检查的危险信号

  • URL 以 .vercel.app.netlify.app.pages.dev.github.io.web.app.surge.sh.onrender.com 结尾。这些都是免费托管平台。任何主要硬件钱包、交易所或钱包品牌的合法页面都不会托管在免费共享基础设施上。官方页面在品牌自己的根域名或其子域名上。
  • 页面要求输入 12 个或 24 个单词的恢复短语。没有任何合法钱包会在钱包自身的离线 UI 之外要求恢复短语。如果网页要求输入,无论设计多么精良,都是网络钓鱼页面。
  • 页面要求你"验证"或"导入"钱包以接收空投、奖励或徽章。这是一种常见的社会工程触发手段。合法的空投不需要在第三方网站上导入钱包。
  • 连接钱包流程触发了你不理解的交易。如果钱包弹窗显示 setApprovalForAll、不透明十六进制的 eth_sign,或具有无限花费者的 Permit2,默认将其视为恶意。仔细阅读模拟结果。如有任何不清楚的地方,请拒绝。
  • 页面通过带有紧迫措辞的推文、私信、Discord 频道或 Telegram 群组分享。"你有 24 小时完成验证。""快照将在 2 小时内结束。"紧迫感是网络钓鱼的基本手段。合法品牌不会对真实活动设置 2 小时窗口。

硬件钱包品牌应该怎么做

如果你在硬件钱包品牌或 DeFi 协议工作并正在阅读本文,最简洁的修复方案也是最廉价的。将所有员工实验、黑客马拉松提交和原型工具发布在你控制的子域名上。experimental.<brand>.comlabs.<brand>.comverify.<brand>.com 都可以。预留这些子域名。将它们添加到你的 DMARC、SPF 和 DKIM 记录中。培训每一位员工,让他们将这些用于任何会被公开分享的业余项目。

对用户的好处是巨大的。一旦品牌始终如一地在自己的域名上发布内容,用户就可以通过域名进行训练和验证。"始终检查 URL 是否以 <brand>.com 结尾"就成为了一个可操作的规则。现在这个规则无法操作,因为品牌自己的员工正在分享 <random>.vercel.app URL 并要求用户信任它们。

SafeBrowz 如何处理免费托管网络钓鱼

SafeBrowz 扩展将任何包含被追踪品牌关键词的免费托管子域名 URL 视为高风险页面。在检查页面内容中的品牌冒充指标之前,页面访问会被暂停。如果页面渲染了 Ledger 徽标、要求输入恢复短语,或尝试发起请求高风险授权的钱包连接,页面将在用户交互之前以全屏警告的形式被阻止。

此检测适用于所有 Chromium 浏览器(Chrome、Edge、Brave、Opera、Vivaldi、Arc)、Firefox 桌面版和 Firefox for Android,以及 Microsoft Edge for Android。免费版涵盖上述所有功能。Premium 版增加了针对本地规则尚未覆盖的品牌冒充模式的 AI 深度扫描,以及钱包盗刷器 JavaScript 签名检测(Inferno、Pink、Angel、MS、Atomic),可捕获实际的交易触发代码。

同样的检测引擎也作为公共 API 在 api.safebrowz.com/v1/detect 开放,供钱包应用和 AI 代理在让用户点击之前检查任何 URL。首次请求每笔收费 0.001 USDC,通过 Solana 或 Base 上的 x402 支付——无需注册。高容量集成商可按需申请企业级 Bearer 密钥。

更大的图景

免费托管网络钓鱼不是 Vercel 的问题,也不是 Netlify 的问题。这是共享子域名作为基础设施的结构性问题。每一个允许匿名用户在受信任父域名区域申请子域名的平台,都会产生网络钓鱼攻击面,无论父域名本身多么合法。Cloudflare Workers、Replit、Render、Fly.io、AWS Amplify——这份清单很长,而且还在增长。加密货币用户应该对这些平台上的任何 URL 都持有与对全新 .xyz 域名相同的怀疑态度。

如果硬件钱包、交易所或主要 DeFi 协议要求你做任何涉及资金的操作,URL 必须以该品牌自己的根域名结尾。不是模仿它的免费子域名。不是短链接。不是陌生人的二维码。是品牌自己的根域名。这是唯一可扩展的验证步骤。

在点击之前阻止免费托管网络钓鱼页面

SafeBrowz 是一款面向 Chrome、Firefox 和 Edge 的免费浏览器扩展,可实时阻止虚假硬件钱包页面、虚假登录表单和已知的加密货币盗刷器域名。它适用于免费托管子域名、新注册域名和一次性诈骗顶级域名。Premium 版每年 $14.99 即可增加钱包盗刷器 JavaScript 检测功能。核心保护永久免费。

相关文章