前有周杰伦无聊猿NFT被钓鱼攻击,损失超300万人民币。
后有全球最大的NFT交易平台之一OpenSea大批用户遭遇钓鱼攻击,多人资产受损。
可见Web3世界黑客依然猖狂作祟,为了打击黑客嚣张的气焰,我们将为大家持续输出干货系列文章,教导大家NFT防技巧。
本文研究了两类典型的NFT的钓鱼攻击,一类是盗取用户签名的钓鱼攻击,如:Opensea钓鱼邮件事件;一类是高仿域名和内容的NFT钓鱼网站。跟我们一起看看
「盗取用户签名的钓鱼」
2022年2月21日,全球最大的加密数字藏品市场Opensea遭遇黑客攻击。根据Opensea官方回复,有部分用户由于签署了给黑客的授权而导致用户NFT被盗。
我们将本次事件再次复现一下,在本次事件攻击事件中,攻击者信息如下:
攻击者地址:
0x3e0defb880cd8e163bad68abe66437f99a7a8a74
攻击者合约:
0xa2c0946ad444dccf990394c5cbe019a858a945bd
攻击者获得相关NFT的交易具体如下图所示:
PancakeSwap计划将V3中BNB挖矿释放量从0.74 CAKE/区块调整为0.73 CAKE/区块:6月23日消息,PancakeSwap计划立即将V3中BNB Chain上BNB挖矿释放量从0.74 CAKE/区块调整为 0.73 CAKE/区块,该计划适用于USDC/BUSD和USDT/BUSD池。[2023/6/24 21:56:41]
针对其中一笔交易进行分析,
0xee038a31ab6e3f06bd747ab9dd0c3abafa48a51e969bcb666ecd3f22ff989589,具体内容如下:
由上图可知,攻击者是获得了用户的授权,之后直接调用transferfrom方法将用户的NFT盗走。
根据Opensea的CEODevinFinzer发布的twitter,攻击者是通过钓鱼的方式获取到用户在Opensea上的挂单授权。
Global Mofy Metaverse Limited拟通过IPO融资600万美元:金色财经报道,Global Mofy Metaverse Limited (GMM) 宣布将于下周通过首次公开募股 (IPO) 以每股4.50至5.50美元的价格发行1,200,000股股票并融资600万美元,Global Mofy Metaverse Limited是一家从事元宇宙行业虚拟内容制作、数字营销和数字资产开发的技术解决方案提供商,其客户包括欧莱雅和百事可乐等知名企业,该公司还透露目前已经建立了一个拥有超过 7,000 个3D数字资产的强大数字资产银行。(defenseworld)[2023/3/24 13:24:27]
通过分析攻击交易,黑客攻击主要分为以下三个步骤。
1.构造正确的待签名交易;
2.诱用户点击授权;
3.获取用户签名后构造攻击合约盗取用户NFT。
步骤一?
首先对攻击者构建的交易签名内容进行分析,跟踪函数调用栈发现具体的签名信息如下:
由上图可知,签名的计算方式为:keccak256("\x19EthereumSignedMessage:\n32",hashOrder(order));这种签名方式会在order前再加一个消息前缀:’\x19EthereumSignedMessage:\n32’,以确保改签名不能在以太坊之外使用。之后将加上消息前缀的完整数据再计算keccak256值,最后用私钥进行签名。
Serum因无法升级处理安全风险现已不可使用,官方建议社区转向Openbook等分叉版本:11月29日消息,基于Solana的DeFi项目Serum在推特上表示:“随着Alameda和FTX的崩溃,主网上的Serum程序已经失效。由于FTX拥有升级权限,安全处于危险之中,导致Jupiter Aggregator和Raydium等协议从Serum中移除,然而,还是有希望的。在Mango Max的带领下,整个社区都在努力分叉Serum。”官方称SRM代币的未来是不确定的,由于FTX/Alameda的曝光率,社区部分成员建议仍将其用于折扣,也有一些成员建议完全不再使用该代币。
Serum称:“由社区主导的Serum V3程序的分叉版本OpenBook目前在Solana主网上线,正在进一步努力扩大该项目及其流动性。这意味着随着Openbook的存在,Serum的交易量和流动性已降至接近于零。在发现旧Serum代码的安全风险后,用户和协议可以安全地使用替代分叉版本,例如Openbook。”
据悉,FTX前首席执行官Sam Bankman-Fried是Serum的联合创始人。[2022/11/29 21:09:34]
但是该方式仅能声明所有权,无法防止重放攻击。如:用户A签署了消息发送给合约M,另一用户B可以将这个签名重放给合约N。下图为订单签名中具体涉及到的信息。
其中涉及到的签名主要参数为:
Side:买入或卖出
paymentToken:用于支付订单的代币类型
basePrice:订单中NFT的价格
蓝筹NFT项目Meebits总交易额逼近100亿美元,月环比上涨46%:金色财经报道,根据CryptoSlam数据,蓝筹NFT项目Meebits过去29天的总销售额达到6,035,899.79美元,比6月份的3,207,926.51美元增长了46%,交易总额达到97.3亿美元。据NFT Price Floor数据,本文撰写时Meebit地板价达到5.1ETH,7天增长幅度达到8%,另据NFTGo数据显示,在过去7天里Meebits交易量为367笔,销售额约为179万美元,增幅为40.08%,期间至少购买一次NFT的唯一地址数量增加了27.03%。(AMBCrypto)[2022/7/30 2:47:31]
maker:订单发出地址
taker:接收订单的目标地址
上述签名信息中包含订单金额、目标地址等敏感信息,但是经过keccak256计算Hash后的值只是一串二进制字符串,用户无法识别。
攻击者根据上述Order信息构造签名,可以随意将上述签名中涉及到的basePrice参数金额设置为0,接收地址设置为自己等。
步骤二?
攻击者构造好待签名数据后就可以诱用户点击授权。由于签名的元数据是经过Keccak256计算后得到的包含0x的66个十六进制字符,用户无法得知其代表的具体含义,因此可能直接点击签名,使得攻击者获得了用户的挂单授权。
上图中的签名对于用户来说类似盲签,即所签的消息内容对签名人来说是盲的,签名人不能看见消息的具体内容。
步骤三?
摇滚乐队Goo Goo Dolls推出首个NFT系列:金色财经消息,摇滚乐队Goo Goo Dolls发推称,“我们将为今年夏天来到的每个城市发布限量版、环保的NFT,这些数字收藏品仅在我们的巡回演出中提供,因此请留意在会场扫描二维码,以定向到登陆页面以获取。”[2022/7/18 2:19:31]
在步骤二中攻击者获取到ECDSA签名消息中的R、S、V值,即可利用其构造攻击合约盗取用户NFT。下图为OpenSea:WyvernExchangev1合约中验证order的函数validateOrder(),具体源码如下:
由源码可知,订单验证首先会校验order的有效性和是否包含有效参数,接着校验订单是否曾经通过链上校验。其中approvedOrders是一个mapping变量,该变量保存了所有已经通过链上批准验证的订单。如果订单曾经校验过则直接返回true,无需再使用ecrecover()校验ECDSA签名,以便智能合约可以直接下订单。
以下是其中一笔NFT盗取交易,可以发现攻击者利用用户签名通过调用攻击者合约:
0xa2c0946ad444dccf990394c5cbe019a858a945bd,以0ether的价格盗取了用户的NFT。
「高仿域名的NFT钓鱼」
这一类的钓鱼网站主要是对NFT项目官网的域名和内容等进行几乎一致的模仿,一般会先连接用户钱包查询用户余额之后,再进行其他诱操作。这种钓鱼网站是最常见的,主要分为以下几种类型:
1仅更换原官网的顶级域名
案例一
官网:https://invisiblefriends.io/
钓鱼网站:https://invisiblefriends.ch/
查看钓鱼网站的网页源码,可以发现如下攻击地址:
查看
0xEcAcDb9FA4Ed4ACD8977821737da7bCe688be1e0的相关交易:
可以发现上述两笔交易是攻击者获取到的收益。
案例二
官网:https://cyberbrokers.io/
钓鱼网站:https://cyberbrokers.live/
查看钓鱼网站源码,发现如下攻击地址:
综上,该类事件主要是因为用户在签署交易签名时,由于签署的交易内容是加密后的字符串,导致用户无法直观的看到签署交易的具体内容,习惯性的点击确认,从而造成攻击者获取到用户的卖单权授权,盗走用户的NFT。
2主域名添加单词或符号进行混淆
有的钓鱼网站会在主域名添加单词或符号进行混淆,比如othersidemeta-airdrop、otherside-refunds.xyz等。
官网:https://otherside.xyz/
钓鱼网站:http://othersidemeta-airdrop.com/
查看钓鱼网站源码,发现页面存在setApprovalForAll()函数,该函数会授权_operator具有所有代币的控制权。如果用户授权了攻击者,则用户账号中所有的NFT将会被盗走。
3添加二级域名进行混淆
有的钓鱼网站会添加二级域名进行混淆,进行钓鱼。
?
官网:https://www.okaybears.com/
钓鱼网站:https://okaybears.co.uk/?
查看网页源码,根据solanaweb3的官方文档API,确认如下地址为攻击地址:
在如今钓鱼事件频发的情况下,用户需提高安全意识,保护自己。以下是我们的安全建议:
1签名时应当明确签署的交易内容,包括交易价格、交易地址等信息,如下图红框处内容所示:
如果存在签署内容仅为二进制字符串内容等无法明确的内容,请勿签署。
2切勿点击任何邮件中的链接、附件,或输入任何个人信息。
3访问NFT官网时,一般在官网右上角等处会显示官方twitter、discord等社交帐号,需在官方账号上确认官网地址。
4安装钓鱼插件,可辅助识别部分钓鱼网站。比如下面这一款
https://chrome.google.com/webstore/detail/beosin-alert/lgbhcpagiobjacpmcgckfgodjeogceji?hl=zh-CN
去年,作为主流智能合约区块链的以太坊,其主导地位受到了替代性L1区块链的挑战。多链世界已成为不争的事实。随着这些新链的导入,它们的异构共识机制、智能合约语言以及社区价值将Web3拆分成各种生态系统.
1900/1/1 0:00:00上周,纽约最高法院空投了NFT作为“服务通证”,开创了NFT领域的新里程碑事件,可能会在几十年内对NFT领域产生重大影响.
1900/1/1 0:00:00在经历了一个动荡的周末后,比特币、以太坊以及其他大大小小的代币在这一周继续大幅下跌。比特币最近7天下挫30%,以太坊近7天跌幅超37%,一些小币种接近归零.
1900/1/1 0:00:00使用过MetaMask版本低于10.11.3的用户,如在导入助记词时点击了ShowSecretRecoveryPhrase,那么助记词可能泄露了.
1900/1/1 0:00:00我们都只是在寻找自己的部落,像NFT这样的商业工具只是让发现和传递部落内信号的过程更容易。我们曾经在一个交易经济中运作。我们以商品或服务为交换条件转移财富、文化和思想。如果你在印度的喀拉拉邦探索,你会发现古代黄金和罗马文化的痕迹.
1900/1/1 0:00:00Wyvern是1阶去中心化交换协议。对比其他协议,例如Etherdelta、0x和Dexy是0阶的,也就是每个订单指定两个去中心化资产的交易.
1900/1/1 0:00:00