背景信息
2022 年 7 月 14 号,团队成员监测到 NiceLabs 发行的 NFT 项目 NICE OFFICIAL 所在 Discord 出现了管理员账户被攻击的情况,待攻击发生后,攻击者利用管理员账户发布了钓鱼链接,诱导点击钓鱼链接社区成员授权其 NFT 转账权限给某特定攻击者私人地址,对用户资产安全造成了严重威胁。NICE OFFICIAL 在 Opensea 平台的介绍预览页面如下所示:
攻击时间线分析
这是一起攻击者通过技术手段控制 Discord 服务器管理员账户,对全服务器禁言后,利用 announcements 频道发布钓鱼信息导致的一起攻击事件。
6点21分左右,攻击者禁言服务器发言功能:
6点26分,攻击者发布空投钓鱼链接:
钓鱼链接见下图,为了您的资产安全建议不要点击或连接资产钱包
6点28分,第一笔 NFT 资产被盗:
UTC 时间 7月13日 22点28分05秒,为北京时间7月14日6点28分左右
攻击账户分析
为确保分析的时效性,我们将选取特定账户进行分析,且仅对单个受害人进行分析,为了便于读者阅读和理解,特对相关账户进行命名:
- 受害账户:
0xbF63297B5BbD44ec4FF661215af9F678134b0B5e
- 攻击账户(通过钓鱼获得受害者授权转账特定 NFT 资产权限):
0x1CAE8eE3F829F260cB9881A62c3FBC5B77331A42
- 获利账户(与攻击账户相同):
0x1CAE8eE3F829F260cB9881A62c3FBC5B77331A42
攻击情况分析:
1.攻击者诱导受害账户调用 setApprovalForAll 方法授权攻击账户具备转账受害账户 Secret Island Club 的交易链接:
https://etherscan.io/tx/0x33f6438efc42625d64c0a706b4d25adc3aeca6a69e16ea8db887f375b5b085d9
对输入数据进行解码,授权攻击者操作受害账户 Secret Island Club 资产的操作将显得更加直观,交易发出后,攻击者即具备了转账受害账户 Secret Island Club NFT 资产的权限。
2.攻击者调用 Secret Island Club NFT 合约转转账受害账户 Secret Island Club 资产的交易链接:
https://etherscan.io/tx/0xdb1ef86ff503ce947daf4bb038de5c7a649574be89e4141cffceb504079f6133
通过下图不难发现,此时智能合约的调用者已经变成了攻击账户,调用 transferFrom函数将受害账户资产转移至攻击账户中:
通过解码交易数据能够更直观的分析交易详情:
攻击后果:
攻击者账户中囤积了大量地板价超过 0.2ETH 的 NFT 资产
安全建议:
1. Discord 管理员需开启双因子认证机制。
2. 认清官方网站,避免点击不明链接,在遇到问题时,找其他人核实和对证,一定程度能规避这一风险。
3.优先选择 Linktree 服务,在一定程度上能够进入正确的网址并与网络进行交互。
4. 关闭 Discord 服务器私聊功能,避免恶意的 DM 操作。