Solana钓鱼诈骗防范:攻击类型与指南
内容提要:Solana生态近期繁荣,市值上升,但引发大量钓鱼诈骗。GoPlus安全团队总结了Solana上常见的钓鱼攻击手法,包括诱导转移原生代币SOL、多个代币及代币帐户所有权转移。这些攻击利用了Solana钱包安全基础设施的不完善。尽管主流Solana钱包已提供交易模拟功能帮助用户预测结果,但钓鱼技术升级使部分攻击难以察觉。用户需保持警惕,仔细审查每笔交易。
老牌公链 Solana 在经历 FTX 交易所破产风波后,在 2023 年底迎来生态爆发、市值也水涨船高,但随著巨大的财富效应,不少钓鱼诈骗也开始兴风作浪。下文总结目前 Solana 上常见的几种钓鱼攻击类型,避免读者掉入此类陷阱。本文源自 GoPlus Security 所著文章,由 BlockBeats 整理及撰稿。
近期 Solana 的市值水涨船高,一度超越 BNB 排名全球前三,巨大的财富效应吸引了大量的活跃玩家,更吸引到了大量 Wallet Drainer(钱包钓鱼)团伙从 EVM 的链转入 Solana,针对 Solana 的钓鱼网站、空投诈骗开始被大规模部署,且已造成大量使用者损失惨重。
近日,GoPlus 安全团队分析了多笔 Solana 的钓鱼事件,发现诈骗团伙利用 Solana 目前部分钱包的安全基础设施不完善的情况,快速升级空投诱骗、实施社交帐号窃取,对此 GoPlus 总结如下常见的 Solana 钓鱼攻击手法,帮助使用者有效避免相关钓鱼事件,减少资产损失。
延伸阅读:深入理解Solana:帐户、Token、交易资产和以太坊有什么不同?
攻击型别
在近期的几起钓鱼事件中,GoPlus 发现钓鱼团伙大多是以「诱骗领取空投」、「假专案网站」、「免费抽奖」、「通过 NFT 空投引导进入」..等方式进行诈骗,这些方式和 EVM 常见的几种钓鱼引导方式几乎一致,主要区别是骗子利用 Solana 与 EVM 的机制不同,从而以不同的「代币或授权转移」的方式进行钓鱼活动。以下是几种我们观察到的不同的攻击方式。
诱导转移原生代币 SOL
这种型别的攻击方式是最简单的,诈骗团队在使用者连结完钱包后会在前端计算出当前所有 $SOL 的余额,并且利用 SystemProgram.transfer 的功能直接完成代币的转移,以某个钓鱼网站举例,该网站显示了一个 Swap 的介面 UI,使用者往往以为是以低价可以购买到某种代币,但实际上执行的只是单纯的 $SOL 的转移。
诱导转移多个代币
除了盗取原生代币 $SOL 之外,骗子可以在同一笔交易签名中同时盗取所有当前钱包持有的 Token 资产。在 Solana 上的每一笔交易都可以由多个 Instruction 组成,每一个 instruction 可以完成一个单独的逻辑,比如转帐、程式的互动以及 Account 的建立等等。这就意味著,钓鱼团伙完全有能力可以在同一笔交易中塞入多个操作指令,举例来讲,如果使用者持有三个不同的 Token,那么钓鱼网站只需要在程式码中往同一笔交易中塞入三个 Token 的分别的转帐指令即可。这样一来就不需要单独骗取某一个资产,而是可以利用这个特性完成一次性的钱包洗劫。
和第一种诱导一样,骇客也是通过各种手段蒙骗使用者点选按钮进行交易,我们可以看到,该型别交易将会一次性转走所有资产,不仅包含原生 $SOL 代币,同时包括 NFT 型别资产,也包含代币型别资产。这里诈骗团队主要利用了 Solana SPL Token 的 createTransferCheckedInstruction 完成对非原生资产的转移 instruction 构造。
诱导代币帐户所有权转移
另外,GoPlus 还发现了部分的钓鱼网站采用了 createSetAuthorityInstruction 的操作将 instruction 打包进交易中,该操作的本质是将帐户上代币的所有权进行转移,Solana 的帐户模型和 EVM 有所不同,每一个帐户地址对于每一个代币,都会有一个专门的 Token Account 对应,Token Account 会有一个 owner,该 owner 就是当前的帐户,Token Account 同时记录了对应 Token 的余额和相关资讯。
而 createSetAuthorityInstruction 操作可以直接将当前代币的所有权转给另外一个帐户,实际最终的效果等同于将当前的代币全部转给了该帐户。我们分别在 Phantom 和 Backpack 上进行了该操作实验,庆幸的是,这两个钱包都进行了特别的提醒和警告。即使使用者点选了 Ignore and proceed anyway 的选项,依旧可以通过交易模拟显示出余额的变化。
注意
以上三种类型的攻击手段目前大部分的主流 Solana 都已经通过交易模拟能够实现对于结果的预测,使用者能够很清晰的看到点选后的余额变化,因此只要使用者耐心仔细的检视每一次的交易变化结果,就可以相对来说规避部分钓鱼风险,这是因为 Solana 的官方 JSON RPC 的介面中就能够提供「交易模拟」的能力。
但是,随著钓鱼诈骗技术的升级,我们也发现了一些非常不易察觉的钓鱼手法。
骗取代币授权
对于熟悉 EVM 的使用者而言,代币授权是一个常见的操作,但在 Solana 上,这一操作有所不同。在 Solana 网路中,骗子会利用使用者对 EVM 授权机制的误解来实施诈骗。钓鱼网站通过诱导使用者进行看似正常的互动操作,实际上却在背后通过 createApproveCheckedInstruction 执行了授权交易 Delegate。这种手法的关键在于,它不直接转移资产,而是通过赋予攻击者控制使用者资产的许可权。这类攻击通常隐藏在诱人的互动介面后,如假装进行投票、质押等,实际上却在悄无声息地更改帐户的授权设定。
一旦攻击者获得了对使用者资产的控制权限,他们便可以随时操纵这些资产,包括转移或交易。这种型别的攻击往往不易被及时发现,因为它并没有立即产生资产转移。这类的攻击也往往影响面最广,因为攻击者会等到上当使用者足够多、金额足够大的时候才开始实施代币转移。使用者需要特别注意,任何请求更改授权设定的操作都应引起警惕,尤其是在不熟悉的网站或应用上。通过交易模拟能够看到授权变化,因此不仅需要关注直接的代币余额变化,也要小心授权的变化导致的钓鱼风险。
Durable Nonce 骗取交易签名
Durable Nonce 是 Solana 区块链中的一个功能,它允许建立一个特殊的帐户来储存一个持久的、不会过期的 nonce 值。在 Solana 中,每个交易都需要一个最近的区块hash(recent blockhash)作为一部分,这用于确保交易的时效性和唯一性。通常,这个区块hash会在大约 150 个区块之后过期,使得交易无法被处理。Durable Nonce 机制通过提供一个不会过期的 nonce 值,允许建立可以在更长时间内有效的交易。
在钓鱼诈骗中,骗子可能会滥用 Durable Nonce 机制,诱导使用者签署看似正常但实际上包含恶意操作的交易。由于使用了 Durable Nonce,这些交易不会因为区块hash过期而失效,给骗子更长的时间视窗来执行交易。例如,骗子可能会设计一个伪装成合法操作的交易,如参与空投或活动,但实际上交易中包含了将使用者资产转移给骗子的指令。使用者在不知情的情况下签署了这样的交易,但使用者会发现在区块上根本没有该交易的发生,因为攻击者只是拿到了该交易的签名,交易本身并没有被发送到区块链上,他们可以在之后的时间里随时将交易广播上链。
但是,无论交易是否发生,我们发现这种型别的签名并不会影响交易模拟的结果判断,几个主流钱包依旧能够将交易本身进行模拟和解析并且告知结果,因此我们之前对于交易模拟结果的判断还是有效的方法论。
不过,我们依旧发现了一种极其隐蔽并且复杂的攻击方法,能够「瞒天过海」。
合约升级逃避交易模拟检测
这个方法就是结合了 Durable Nonce 以及 Solana 合约特有的特性 —— 可升级,这种攻击手段的潜在危险性因为可升级合约的特性被进一步的加大,Durable Nonce 机制通过建立一个持有长期有效 nonce 值的帐户,允许交易在更长的时间视窗内保持有效。
这意味著即使使用者在签署交易的时候不立即传送到区块链上,交易仍然可以在未来任何时候被广播和执行。攻击者可以利用这一点,首先让使用者签署一个看似正常的合约交易,这个交易在签名时看起来完全无害,即使是主流的钱包和交易模拟工具也难以在签名时提前警告使用者。
然而,在使用者签署交易后,攻击者成功拿到了 Durable Nonce 的签名。此时,他们并不著急将交易广播上链,而是利用 Solana 的合约升级功能,将原本正常的合约变更为一个恶意的版本。这种恶意合约能够执行例如资产转移等操作。在进行升级后,攻击者再将签好的交易发到区块链上,来执行该恶意操作,达到自己的目的。这种型别的攻击特别隐蔽,对使用者来说构成了极大的隐患,因为即使是经验丰富的使用者在签署交易时也可能无法识别出潜在的风险。为了防范这种攻击,使用者需要对合约的信誉和历史进行仔细审查,对任何不寻常的交易行为保持怀疑态度,避免与不明来源或新成立的合约进行互动。同时也希望所有 Solana 的钱包能够注意该攻击手段,及时的在钱包侧能够形成有效的提醒和对使用者资产的保护。
防范措施
在面对 Solana 网路中的钓鱼攻击时,以下是一些综合性的防范措施,可以帮助最大限度地减少风险:
- 提高安全意识: 对于任何加密货币相关的交易,始终保持高度警惕。了解 Solana 钓鱼攻击的常见手段,如诱导转移代币、代币帐户所有权转移、骗取交易签名等。
- 仔细检查交易细节: 在进行任何交易之前,认真检查交易的具体内容。对于使用 Durable Nonce 或涉及合约互动的交易,应额外小心。
- 使用交易模拟功能: 利用钱包提供的交易模拟功能,仔细审阅交易模拟结果。但要注意,这不是万无一失的保护措施,因为存在部分交易模拟失效的情况。
- 关注授权变化: 对于非交易后代币余额发生变化的操作,也要保持警惕。在不熟悉的网站或应用上,特别要小心授权变化的操作。
- 定期取消无用授权:通过 Solana Revoke 的工具,定期取消一些无用的授权,保障资产的安全。
- 定期更新知识: 定期更新自己关于区块链和加密货币的知识,特别是关于新出现的钓鱼手段和防范策略。
- 保持软体更新: 使用的钱包和相关软体应保持最新状态,以确保拥有最新的安全特性和修复。
- 备份和保护私钥: 保护好自己的私钥和重要资讯,避免在不安全的地方储存或分享。
同时,GoPlus 安全团队呼吁 Solana 公链及其生态深度关切使用者安全,加快提升使用者安全的基础设施建设,给使用者提供更安全的交易环境,从而实现生态的稳定和繁荣。
- 相关话题
-
- 符文必赚:成本控制指南
- Ybot工具教程:符文打击的实用指南
- 币圈新人指南:投资比特币以太坊,谨防小交易所与合约风险
- Ray教你加密冷钱包:如何防范多签风险
- 13年前比特币暴跌:从17美元跌至0.01美元的黑客攻击事件
- Solana生态meme币BILLY市值突破1500万美元,24小时暴涨282倍
- 市场贪婪下需避开的投资币种类型
- Solana上的值得关注的去中心化物理基础设施网络项目
- 币圈新手指南:三大要点助你立于不败之地
- SOL暴涨20%!VanEck申请首个Solana ETF
- 牛市投资指南:常见误区与策略
- 孙宇晨加仓Floki,Solana回调后或上涨至170美元,ARB与Kaspa迎利好
- 相关资讯