2025-12-04 00:18:06
loading...

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

摘要
背景 近期,我们接到一位用户的求助,其在当日遭遇钓鱼攻击。该用户发现钱包中存在异常授权记录,试图撤销授权却无法完成,并提供了受影响的钱包地址 9w2e3kpt5XUQXLdGb51nRWZoh4JFs6FL7TdEYsvKq6Wb。我们通过链上分析发现,该用户的账户 Owner 权限已被转移至地址 GKJBELftW5Rjg24wP88NRaKGsEBtrPLgMiv3DhbJwbzQ。此外,该用户已有超过价值 300 万美金的资产被盗,另外价值约 200 万美金的资产存于 DeFi 协议中但无法转移(

背景

近期,我们接到一位用户的求助,其在当日遭遇钓鱼攻击。该用户发现钱包中存在异常授权记录,试图撤销授权却无法完成,并提供了受影响的钱包地址 9w2e3kpt5XUQXLdGb51nRWZoh4JFs6FL7TdEYsvKq6Wb。我们通过链上分析发现,该用户的账户 Owner 权限已被转移至地址 GKJBELftW5Rjg24wP88NRaKGsEBtrPLgMiv3DhbJwbzQ。此外,该用户已有超过价值 300 万美金的资产被盗,另外价值约 200 万美金的资产存于 DeFi 协议中但无法转移(目前该部分价值约 200 万美金的资产已在相关 DeFi 的协助下援救成功)

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

(https://solscan.io/tx/524t8LW1PFWd4DLYDgvtKxCX6HmxLFy2Ho9YSGzuo9mX4iiGDhtBTejx7z7bK4C9RocL8hfeuKF1QaYMnK3itMVJ)

受害者曾尝试从该账户向自身地址发起转账以验证权限,但所有交易均失败。这一情况与 TRON 生态中频繁出现的“恶意多签”攻击具有高度相似性。换言之,这起攻击并不是传统意义的“授权被盗”,而是核心权限(Owner 权限)被攻击者替换,导致受害者即便想转账、撤销授权或操作 DeFi 资产,也毫无办法。资金虽“看得见”,但已无法控制。

Solana Owner 修改机制

攻击者利用了两种反直觉的场景成功诱骗了用户点击:

1、通常交易签名时,钱包会模拟运行交易的执行结果,如果有资金变化那么会显示在交互界面上,而攻击者精心构造的交易没有资金变化;

2、传统的以太坊 EOA 账号是私钥控制所有权,主观上不清楚 Solana 存在可以修改账号所有权的特性;

面我们来分析一下 Solana Owner 修改究竟是一种什么样的操作。

账号所有权

通常我们用钱包创建账号时,Owner 是系统账号(11111111111111111111111111111111),在交易时需要通过系统验证交易签名是否由对应的公钥签署而来的。用 Solana Account 命令可以查看账号的基本信息:

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

还有一种账号称为 PDA 账号,它是由智能合约派生的账号,主要用于存储智能合约数据,它的 Owner 是派生它的智能合约,例如:用于保存 Token 发行和持有信息的账号就是一种 PDA 账号,用 Solana Account 查看账号基本信息时可以看到它的 Owner 是 Token 智能合约 TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA:

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

这两种账号都可以修改 Owner,但有不同的规则和限制:

普通账号

无法在外部通过命令或脚本直接修改 Owner,但可以通过智能合约调用进行修改,关键指令如下:

H5jxmfheNQQuqLXQterBkXpLPMC7Gce7OZ1bev9E.png

assign 指令将账户的 Owner 从当前值改为 new_owner,部署程序后,使用 Solana CLI 或客户端(如 Solana Web3.js)调用这个指令。本次钓鱼事件正是利用这一特性诱导受害者主动签名含有 assign 指令的交易,从而悄无声息地完成了受害者钱包地址 Owner 的转移。

PDA 账号

简单来说 PDA 账号可以修改 Owner,但要求账号的 data 为空,同样是通过 assign 指令进行操作,我们简单测试了一下几种场景下修改 Owner 的反馈:

1. 新创建的 PDA 账号,可以任意指定 Owner,如果 Owner 不为创建它的 Program,那么 Program 无写入权限。

2. 创建完成的 PDA 账号试图修改 Owner 时报错:instruction illegally modified the program id of an account。

3. PDA 账号最终 assign 之前试图写入数据:instruction modified data of an account it does not own。

账号被修改 Owner 后用户就失去了账号的控制权,攻击者可以通过 CPI 调用的方式转移账号资产。

还有一种常见的所有权变更,那就是 Token 账号的所有权,本质上这是一种智能合约内逻辑控制的所有权,不是由 Solana 底层逻辑控制,但它也经常被用于钓鱼攻击,广大用户应警觉这类钓鱼攻击方式。

MistTrack 分析

根据链上追踪 & 反洗钱工具 MistTrack 对受害者地址 9w2e3kpt5XUQXLdGb51nRWZoh4JFs6FL7TdEYsvKq6Wb 的分析,本次攻击资金转移路径复杂,攻击者主要通过两个核心地址对资产分流:BaBcXDg…(流向 1)、7pSj1R…(流向 2)。

流向 1:BaBcXDgbPgn85XtEQK7TZV8kZuFpT4iWVAs4QJoyNSmd

第一条主要路径涉及约 238 万美元等值资产,核心特征为“多层级扩散 + CEX 分散入金 + 多地址中转”。攻击者通过该地址将接收的多种代币(包括 PAYAI、CASH、CARDS、JitoSOL、POLYFACTS、PUMP、PYUSD、CAP)兑换为 SOL。其中,PUMP 是被转移至 7E4eNkK… 后再兑换为 SOL。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

兑换后的 SOL 主要流向如下:

1)717.5 SOL 转移至 YDrMfsB…,部分 SOL 转入 Binance 平台,剩余资金分散并停留在约 4 个中转地址。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

2)7,556.89 SOL + 2,218 SOL(来自 PUMP 兑换)统一汇聚至 7E4eNkK…,随后部分 SOL 转入 Letsexchange 平台,5,050.93 SOL 转入 FyB2jDJbTdmW…,剩余资金分散并停留在约 13 个中转地址。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

3)2,161.88 SOL + 上述 5,050.93 SOL 在 FyB2jD… 进一步分散,分别被转入多个平台(HTX、Binance、Kucoin、ChangeNOW、Changelly),并有部分流入一个未知地址(25nULbv…),剩余资金分散并停留在约 25 个中转地址。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

4)2,053 SOL 转移至 6qdtH5D…,部分 SOL 转入 Letsexchange 平台,剩余资金分散并停留在约 15 个中转地址。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

5)20 SOL 转移至 5rJdvkp…,再转移并停留在地址 2etvjZH…。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

6)2,142 SOL 转移至 2xFzAda…,352 SOL 转入 Binance 平台,200 SOL 转入 Letsexchange 平台,剩余资金分散并停留在约 11 个中转地址。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

流向 2:7pSj1RxHf77G3XeisvnNAtbyx5AFjYPcChswWhZe9bM8

第二条主要路径涉及约 79 万美元等值资产,核心特征为“跨链与多链循环兑换”。攻击者同样将接收的多种代币兑换为 SOL,其中 JitoSOL、PUMP 与 POLYFACTS 占比较高。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

兑换后的 SOL 主要流向如下:

5,742 SOL 转移至 FiywJZ2Z…,该地址同时收到了被 MistTrack 标记为“Phishing”的其他钓鱼事件地址的 2772.8 SOL。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

其中,攻击者通过 Relay.link 将 8,579.92 SOL 兑换为 ETH 并跨链至 Arbitrum 地址 0xDCFa6f…,再通过 1inch 将资金兑换为 SOL 并跨链到多个 Solana 地址,然后再使用 1inch 进行反复跨链,此处不多赘述。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

FiywJZ2Z… 将剩余的 215.89 SOL 转移至 Ah5Rs916…,然后兑换为 29,875 USDC。USDC 被分别以 5000、5000、5000、5000、19,875.38 的数值通过 Relay.link 兑换为 DAI 并跨链至 Base 和 Ethereum 地址 0xd2c1c2A…,其中有两笔 5000 USDC 被退回,目前 DAI 均未转出。

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

DeFi 资产援救

此外,受害者在 DeFi 中的剩余资产在多方协助下得以成功提取,并通过地址 fgR5PJF… 完成了转移,包括约 217 万 PYUSD 与 4548 USDC:

警惕 Solana 钓鱼攻击:钱包 Owner 权限被篡改

本次资金流向清晰展现出攻击者的行为模式:快速分散、多地址跳转、多平台混合、跨链循环、CEX 入金与 DeFi 资产再利用同时进行,构建出多层级、跨生态的洗钱网络,极大增加追踪难度,目前 MistTrack 已对所有相关地址进行标记。

如何预防类似攻击?

对普通用户来说,此类攻击其实本质上就是“钓鱼攻击”。攻击者会用各种方式包装链接,比如空投、奖励、任务、提前测试资格、甚至假装是官方公告,让人以为只是做个简单操作,但实际上弹出的签名里藏着修改 Owner 等高危权限。一旦签了,钱包基本就被接管了。所以最重要的预防方法,就是在点链接和点“签名”之前多想一下:来源是不是可信?这个页面是不是官方的?这个签名到底在做什么?如果钱包弹出的内容你完全看不懂,或者里面突然出现一些奇怪的权限、陌生的地址、莫名其妙需要你授权的地方,那就一定要停下来,千万不要硬着头皮点确认。

平时也尽量不要用存着大额资产的钱包到处交互。做任务、玩项目、领空投可以专门准备一个“低余额、只用于交互”的小号,把真正的重要资产放在独立的钱包甚至冷钱包里,就算误签了也能把损失降到最低。另外,尽量少给“无限授权”,能限制范围、限制金额就限制一下,减少让攻击者可以长期滥用的空间。

总之,多看一眼、多确认一次、不乱点、不乱签,给自己留层保护;大额资产分离存放、小号负责交互,大号只负责保管;遇到异常立刻停下,不要抱着侥幸心理。只要做到这些,被这类钓鱼攻击的风险就能大幅降低。最后,非常推荐阅读《区块链黑暗森林自救手册》(https://darkhandbook.io/)。

声明:文章不代表币圈网观点及立场,不构成本平台任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!转载请注明出处!侵权必究!
币圈快讯
查看更多
回顶部