mt logoMyToken
ETH Gas
EN

大门安全课 02|Gate & OneKey:如何防范钱包恶意授权与地址投毒

Favoritecollect
Shareshare

半年前,你为了领一个空投,在某个页面上点了「确认」。弹窗里是一串看不懂的字符,你签了。活动结束,你关掉网页,后来还卸载了那个应用,甚至换过一次电脑。

今天,你钱包里的 USDT 不见了。你的私钥没有泄露,助记词一直锁在抽屉里,密码也从来没告诉过任何人。那么问题来了,钱是在哪个环节出了问题?

这是 Gate 特别策划《大门安全课》的第二期。我们邀请开源硬件钱包品牌 OneKey 与 Gate 安全团队,从钱包和交易平台两个视角,来聊一聊链上钱包授权和地址投毒的安全问题。

嘉宾简介

OneKey: 成立于 2019 年,是全球知名的开源硬件冷钱包与 App 钱包品牌之一,从始至终秉持着完全开源的硬核理念。其软硬件核心代码完整开源在 GitHub 供社区审查,并均通过 SlowMist 和 Offside Labs 的安全审计,得到了亿万资产的信赖,以及顶级机构的融资支持与采用。

OneKey App 覆盖桌面端、移动端与浏览器扩展,可独立作为软件钱包使用,也可连接 OneKey 硬件钱包,并通过安全芯片、离线签名、交易解析、风险提示与明文签名等能力,帮助用户在不交出私钥和助记词的前提下管理多链资产。

Gate 安全团队: 大家好,这是《大门安全课》的第二期。Gate 安全部门负责平台账户、交易与资产安全体系的建设,同时也长期处理用户的异常账户申诉与协查请求。

Gate 成立于 2013 年,是行业内首家推出 100% 储备金证明的交易平台,目前服务全球超过 6000 万用户。安全对我们而言不是一个附加功能,而是这门生意能否成立的前提。我们希望通过《大门安全课》这个系列课程,把用户可能遇到的这些真实风险背后的共同机制讲清楚。

Q1. 链上钱包为什么不需要拿到私钥,也能转走资产?

OneKey: 私钥决定签名权,授权则把某项操作权限交给合约或地址。很多授权的本意是好的,能够让用户节省 Gas,减少重复上链的操作,但是这也给攻击者提供了便利。

你此前签过的授权,等于允许别人动用这些资产。以以太坊等 EVM 网络上的 ERC-20 代币为例,使用兑换、借贷等应用时,用户经常需要先做一次 Approve,也就是授权。它允许指定的地址或合约,在一定额度内使用你的某种代币。授权生效后,对方就可以调用 transferFrom 转走代币,不需要每次再请你确认。

举个例子,你准备兑换 100 USDC,实际给出的却是无限额度授权。交易结束后,剩余授权可能仍然有效。被授权方如果是攻击者,或者相关合约后来出现可被利用的漏洞,风险就不再局限于那次兑换的 100 USDC,而可能波及这个地址里更多的 USDC

NFT 也有类似机制。setApprovalForAll 通常允许对方管理你在同一 NFT 合约下持有的全部 NFT,而不只是当前准备出售的那一枚。

所以我们建议用户在签名前要逐项确认授权对象、资产、额度和有效范围,只要有一项说不清,就不要签。更重要的是,要使用有签名解析能力的钱包,理解你要签名的东西是什么。

Gate 安全团队: OneKey 讲的机制很细致了,我们想补充的主要是用户认知上的偏差,因为它是这类风险最根本的来源:很多用户把「签名」理解成了「确认」。

在传统互联网里,点一次确认就是同意这一次操作,操作结束,权限也就结束了。但链上的授权签名不是这个逻辑。签一次之后,对方在额度范围内可以随时、多次、无需你再次确认地转走资产。用户签下的不是一笔交易,而更像是一份长期有效的委托书。

这里还有一个更隐蔽的差别。Permit 和 Permit2 属于链下签名,它不产生链上交易,不消耗 Gas,在钱包里的弹窗往往也只显示一串看不懂的字符。用户的直觉是「不花钱的操作应该没什么风险」,而实际上这类签名的杀伤力和链上授权完全一样。

具体到 Gate 的工具上,陌生合约别急着连。可以先把合约地址丢进 Gate AI 的合约审计,让它出一份结构化风险报告,常见的所有者权限、黑名单、增发、转账税这类坑会先标出来,覆盖 57 种以上漏洞类型。到签名那一步,看清授权的是哪个代币、多少数量、哪个项目,支持所见即所签,用完及时取消授权。

Q2. 普通用户最常见的诱饵有哪些?看到这类页面时,怎样判断该不该连接钱包?

OneKey: 常见诱饵往往围绕两种情绪:让你觉得有便宜可占,或者让你担心不操作就会有损失。前者是空投、白名单、免费铸造、退款补偿;后者是账户异常、安全升级、代币迁移、资产即将被冻结。包装可以不同,最后都会把你引向一个需要连接钱包、签名或转账的页面。

我们建议用户使用有网页安全检测能力的钱包,一般官方页面都会有认证,没有认证或者有钓鱼警报的就不要连接。

而连接钱包通常只是起点,后续签名才会产生具体权限。先核对完整域名和操作目的,再看合约、方法、授权额度与 Spender。领取一项奖励,却要求开放无关资产的无限额度,应当立即退出。无法解析的十六进制数据、不明 EIP-712 消息和持续催促,也值得警惕。

测试陌生 DApp 时可使用隔离的小额钱包,长期储蓄钱包尽量不连接项目。

Gate 安全团队: 从我们处理的案例看,入口的风险往往比页面本身更高。也就是我们在第一期《大门安全课》重点聊到的链接不能乱点,特别是来自私信、群聊、搜索引擎广告位的链接,是最常见的钓鱼网站三个来源。搜索广告位这条要特别强调,很多人默认搜索结果第一条就是官网,但广告位是可以买的,这是钓鱼站最常用的引流方式之一。

虽然连接钱包这个动作本身是低风险的,但并不代表完全 0 风险。随着黑客的技术手段升级,在许多链上钱包被盗的案例中,已经有不少都是进入钓鱼盗版网站后没有签名,只是连了钱包资产就被盗的情况,所以用户在前期点击网址这一步一定要谨慎再谨慎。

比较可靠的做法是把常用应用加进浏览器书签,此后每次从书签进入。这个习惯能规避掉大部分导流类攻击和假冒的官网页,这是对用户来说成本最对的防控成本。这里也再提醒一次:攻击者经常拿交易平台的信用给自己背书。他们会说「Gate 已经上线该代币」「Gate 正在进行空投」,用平台的名义让一个空气项目显得可信。

这种时候判断标准其实很简单:Gate 的所有官方公告都会在官网公告页同步。如果一个消息只在某个社交账号出现、官网查不到,那它大概率有问题。这个判断不需要任何技术知识,也不需要用户会看合约。

如果用户收到的是自称来自 Gate 的邮件、短信或私信,可以在 官方验证渠道 上查询这个域名或联系邮箱是不是我们的,这个动作只需要十几秒。另外,用户可以在账户里设置一串自己的防钓鱼码。设置之后,所有 Gate 发出的邮件都会带上这串字符。还没有设置的用户,建议先去安全设置里开启。

Q3. 地址投毒是怎么骗用户转错地址的?大额转账前必做的核对动作是什么?

OneKey: 它利用的是一个很常见的习惯:从交易记录里复制地址,再只看一眼开头和结尾。

攻击者会根据目标常用地址,批量生成首尾相似的地址,再发送零金额或极小额代币,让假地址混进交易记录。很多人转账时只核对开头和结尾,或者直接复制「最近地址」,钱就会发给攻击者。

最重要的防护动作,是不要把交易记录当作可信的收款地址簿。向交易所充值,从已经核实的官方充值页面取得地址;向他人付款,通过可信渠道重新确认。地址的来源要可靠,粘贴之后也要核对完整字符,而不是只看首尾几位。

大额转账建议先做小额测试,并让收款方确认到账,或者在自己的目标账户里核实。正式转账时,仍然要再次核对完整地址。第一笔测试成功,不代表第二次复制、粘贴和确认就可以省略检查。常用地址可以在核实后保存到地址簿或白名单中。

OneKey 等 App 钱包都会配有相关检测,对于错误复制,一般都会提醒「这是首次转账」「相似地址警告」,可以帮助用户快速发现这是一次投毒。

Gate 安全团队: 这一题和交易平台的关系比很多人想的更直接,因为充值和提现恰恰是地址投毒最高发的两个场景。

先说充值。OneKey 提到的那条原则我们想再强调一次:充值地址一定要从平台的官方充值页面现取,不要从任何社交软件的历史记录里复制。也一定要警惕手机安装的键盘软件是否有安全问题,有许多案例都是因为键盘软件出问题神不知鬼不觉替换了用户的转账和充值地址,导致资金被盗的情况。

提现这边,Gate 有两个东西建议直接用起来:一是地址簿,常用地址核实后存进去,以后从簿里选,少一次手滑粘贴;二是 API 提现只能提到地址簿里已有的地址,程序化场景里没人盯屏,这道限制等于强制多一次人工确认。新加的提现地址还有 24 到 48 小时冷静期,投毒贴错地址时也能多一截发现错误的窗口。

Q4. 钱包授权为什么要定期复查?撤销授权时要注意什么?

OneKey: 因为一次操作结束了,授权未必结束。断开钱包连接、关闭网站,甚至卸载钱包,都不会自动撤销已经生效的链上授权。如果给过某个合约无限额度,它可能在你不再使用这个项目之后,仍然保有相关权限。未来合约出现可被利用的漏洞,闲置授权也可能让钱包里的资产受到影响。

复查不必把所有记录都看一遍再动手,可以先处理最重要的部分:高价值资产的无限授权、NFT 全局授权、不认识的被授权方,以及已经不再使用的应用。一个项目曾经值得信任,不代表你需要一直保留它的资产使用权限。

撤销时,要通过核实过的钱包入口或授权管理工具,确认账户、网络、代币和被授权方。撤销通常需要链上交易和网络费,提交后应确认交易成功、权限已经更新。它能阻止相关权限被继续使用,但不能退回已经转走的资产。

还有一点容易被忽略:已经签出、但尚未上链的危险消息,可能不会出现在普通授权列表里。这类情况需要按具体协议处理签名失效或取消,不能只看列表里有没有陌生授权。部分 Permit 签名中的截止时间,也只是限制签名最晚何时提交,并不代表生效后的授权会同时到期。

Gate 安全团队: 要时常做「体检」,这一点在交易平台账户里同样成立,所以我们想把「定期复查」这件事从链上延伸到链下的账户侧,建议用户做一次完整的权限体检。

一是安全日志。账户里会记录登录和关键操作的历史,包括登录时间、地点、设备,以及安全设置的变更记录。怀疑有异常时,这是最直接的自查入口,也是协查时最有价值的材料之一。

二是 API Key。这一项是最容易被遗忘的。很多用户在某次尝试量化策略、接入第三方工具或者跟单服务时创建过 API Key,用完之后既没有删除,也没有回头看过它的权限范围。API Key 和链上授权的性质非常接近:创建时是为了一次具体的用途,但它不会自己过期。建议定期检查现有的 Key,删掉不再使用的,并确认剩下那些的权限是不是超出了实际需要。

三是安全设置本身。手机号是不是还在用、邮箱有没有换、绑定的验证方式是不是还能正常使用。这些平时不影响使用,但真到需要找回账户或者紧急处置的时候,任何一项失效都会让事情变得非常麻烦。

Q5. 发现自己可能签过危险授权,或资产正在被转走,正确的处理顺序是什么?

OneKey: 先减少继续损失的可能,再追查完整经过;证据可以同步保留,不要让整理材料耽误止损。

立即停止在可疑页面上的操作,不再签署它提供的「修复」「验证」或「撤销」请求。如果已经明确定位到某项恶意授权,就通过可信入口尽快撤销;如果风险范围不清楚,或资产仍在持续外流,应优先保护剩余资产,在可信设备上将仍能安全转出的资产迁移到安全钱包。

只要助记词或私钥有泄露可能,迁移目标就应使用全新助记词。修改钱包密码、重新安装 App,或者在同一套助记词下新增账户,都不能消除原有密钥泄露的风险。新钱包应在可信设备上创建,旧钱包也不应继续接收资产。

如果你补进去的 ETH 等网络费资产也马上被转走,不要反复充值尝试。这可能涉及自动扫币程序,常规转账和撤销操作未必来得及完成,应通过官方渠道寻求可信安全团队协助。

与此同时,保存受害地址、相关交易哈希、链、代币、金额和发生时间,再补充可疑网址、签名内容、截图及聊天记录。通过官方渠道联系钱包、可能接收资金的 CEX 平台,并向当地执法机关报案。比起一句「救命,钱包被盗了」,这些材料更有利于接收方开展核查。材料不齐时可以先报告关键事实,后续继续补充。

还有一个值得注意的是:经常有其他黑客专门针对这种情况的用户做「二次伤害」,很多人因为急于挽回损失,就相信其他黑客私信里的「百分之百追回」,继续支付所谓的解冻费或交出助记词被骗。

Gate 安全团队: 这类场景和上一期讲的账号被盗不同:如果攻击者手里拿的是用户签给他的授权,那么改密码、重装应用都不会阻止他继续转走资产,因为那份授权和链上钱包密码没有任何关系。所以第一步应该是撤销授权和转移剩余资产,而不是改密码。

在链上发生资产转移时,如果那笔转账是一次完全有效的调用,比如说签名是用户本人签的,权限是用户本人给的。这意味着即使后续走协查流程,取证和定性都比普通的盗号案件更复杂,因为技术痕迹上找不到任何「未经授权」的证据。这也是我们建议用户多检查链上钱包的授权有哪些,尽早取消授权,防范于未然。

平台帮用户做到前面的是,尽可能不让攻击走到转账这一步。比如之前说到过的:Gate 在登录、交易、提现和修改安全设置这几个环节都设置了多重认证:登录时有登录密码、邮箱或短信验证、Google 验证器和 IP 地址监测;提现时需要一道独立于登录的资金密码,系统还会根据登录环境、提现金额和账户整体风险触发动态验证,风险越高,验证越严格;修改绑定手机、邮箱、Google 验证器或资金密码这类关键安全项,会触发提现锁定,新添加的提现地址也有 24 至 48 小时的冷静期。我们也推荐用户绑定通行密钥(Passkey),它需要指纹或面容才能完成验证,仿冒网站无法触发。这几道关卡叠在一起,目的是让攻击者即使拿到了用户的部分信息,也很难一路走到把资产转出去。

当被盗资金流入 Gate 平台时,我们将基于风险标签和异常行为识别进行拦截。平台有一套基于机器学习的实时风险评估系统,会对提现请求做风险判断并动态调整限额,同时根据账户行为和风险等级实时监控、拦截异常交易活动。

如果用户自己的 Gate 账户也受到影响,第一时间联系官方客服冻结账户,账户的出金通道会自动关闭。Gate 安全团队是 7×24 小时值守的,官网也设有专门的执法请求入口,供执法机构走正式协查流程。

Q6. 钱包产品能替用户做到什么,又有哪些事不能替用户做?

OneKey: 钱包首先应该把用户即将同意的内容说清楚。仅仅展示一串数据,再让用户选择「确认」或「取消」,不足以帮助普通人判断风险。

交易解析和明文签名,应当让用户看懂这是转账、授权还是其他操作,涉及什么资产、多少额度,以及谁会获得权限。交易模拟和风险检测,则可以进一步提示异常资产变化、恶意合约或已知钓鱼网站。OneKey 的明文签名与 SignGuard 风险提示,就是围绕这些环节提供帮助;具体解析和检测能力有支持范围,不能把所有复杂交易都视为已经充分覆盖。

但钱包无法仅凭一份签名,确认用户为什么要做这笔交易。一个地址是不是你真正想付款的人,一次「项目升级」是否经过官方确认,这些还需要用户核实。硬件钱包可以保护私钥、提供独立屏幕确认,也不能让不合理的授权自动变得合理。

对于地址风险标签,我们也主张区分风险提醒与最终认定。遇到平台核查,应保留真实交易背景、付款方信息和资金来源记录,通过官方渠道沟通,不要为了消除标签而自行拆分、跨链或绕道转账。

钱包不能替平台作出风控决定,也不能直接撤回已经确认的链上交易。它应该尽可能让用户在签名前发现问题,而不是让用户在损失发生后才知道自己同意了什么。

Q7. 同样一笔资产,放在链上和放在交易所,安全模型有什么不同?

Gate 安全团队: 链上和链下是两套完全不同的安全模型,需要根据自己的资产分配和风险承受能力来做调整。

链上的特点是签名即终局。从按下确认到资产转移,是一步完成的,几秒钟,没有中间环节可以介入,也没有人能帮你撤销。而在交易平台内,从有人拿到用户的登录凭证,到资产真的离开账户,中间还隔着若干道关卡,比如资金密码、按环境与金额变化的提现验证、新地址冷静期、改安全项触发的提现锁。

大额、暂时不打算频繁做链上交互的钱,更适合放在设置完整的交易账户里,把安全分拉高,出金通道按需开关,让平台侧的缓冲层先兜住「账号或设备出事」这类风险。

那些要追 Meme、新链、早期热点的钱,放到链上没问题,但只放亏得起的那一部分,当作风险仓,别拿生活费和长期仓去连陌生 DApp。这里顺带提一下我们 Gate 刚上线的打金狗(Trenches)工具,能直接用账户里的 USDT 直接参与多链热点和 Meme,不需要在链上反复准备 Gas、跨链和授权,帮助用户完全避免不必要的签名风险,对代币也有风险提示和过滤。

真正危险的做法,是把所有资产集中在一个每天都要连接各种 DApp 的热钱包里。那等于把链上那段最短的距离,用在了自己的全部身家上。

这两种环境的风险结构完全不同,各有各的代价,用户应该做好调研。

Q8. 对普通用户来说,有哪些现在就能做的加固习惯?

OneKey: 我们建议从钱包分工、授权习惯和转账核对入手,不必等到遇到事故再调整。

长期资产和日常交互资金尽量分开。储蓄钱包少接触陌生应用,尝试新项目使用独立的小额钱包,只放这次操作需要的资金。需要注意的是,不同地址可以隔离普通代币授权的影响,但同一套助记词一旦泄露,相关地址仍可能一起受到威胁。

授权额度尽量覆盖当前需求,不要只为少点几次确认,就默认交出无限额度。不再使用的权限及时撤销。转账则从可信来源取得地址,粘贴后核对完整字符,大额转账增加小额测试,而不是依赖「之前转过,应该没问题」。

大额资产优先考虑硬件钱包,并认真核对设备屏幕上的信息。硬件钱包能够减少联网设备被攻破时私钥直接泄露的风险,但不能替你否决一项自己确认的恶意授权。助记词应离线保管,不输入网页、不拍照上传云盘,也不交给任何自称客服的人。

最值得养成的习惯,是允许自己中断操作。看不懂签名、无法确认地址,或者发现权限与目的不符,就先停下来查证,不要把一路点完弹窗当作完成任务。

Gate 安全团队: OneKey 那几条我们都同意,账户这一侧我们补三件事,按有效性排序。

1)先把账户的基础项做完。关注我们的 安全分机制 :根据每个用户的资金密码、双重验证、防钓鱼码、通行密钥、提现日限额、出金方式管理,逐条列出来并给出评分。用户可以根据具体的提示来补充基础的安全防护。

2)主动调低敞口,而不是维持默认值。提现日限额按真实使用习惯来设,而不是开到平台上限;暂时用不到的出金通道先关掉,需要时再经过核身验证打开,这样也不影响正常体验。

3)资产分门别类,链上钱包尽量「减少授权」。前面 OneKey 提到撤销授权需要付 Gas,这也是很多人知道该做却一直拖着的原因。但换个角度想,与其不断清理,不如从源头减少需要清理的东西。交互用小钱包、小余额;长期大额放账户或冷钱包。

另外我们也非常推荐 Gate 的用户绑定通行密钥(Passkey),这是绑定在用户设备上的一对密钥,验证时需要用户的指纹或面容。它在社会工程场景下有两个别的方式替代不了的优点。一是天然抗钓鱼。Passkey 会和域名绑定,一个仿冒的网站即使做得和官网一模一样,也无法触发你的 Passkey 验证。二是设备丢了也不等于账户丢了。即使有人拿到了你解锁状态的手机,没有你的生物识别信息,他也无法用 Passkey 完成验证。

这就是我们《大门安全课》第二期想聊的内容。如何防授权盗币,签名前看清对象、资产和额度,能少授就少授;不用的授权定期撤掉;看不懂的弹窗先停手。以及防地址投毒,别把交易记录当成可信地址簿,充值和转账都从核实过的来源取地址,粘贴后核对完整字符。

让我们一起第三期《大门安全课》见!

免责声明

本内容不构成任何邀约、招揽、或建议。您在做出任何投资决定之前应始终寻求独立的专业建议。请注意,Gate 可能会限制或禁止来自受限制地区的所有或部分服务。请阅读 用户协议 了解更多信息。

Disclaimer: This article is copyrighted by the original author and does not represent MyToken’s views and positions. If you have any questions regarding content or copyright, please contact us.(www.mytokencap.com)contact
More exciting content is available on
X(https://x.com/MyTokencap)
or join the community to learn more:MyToken-English Telegram Group
https://t.me/mytokenGroup