STE:黑客不会“隐入尘烟” 你的NFT合约安全如何保证?

点击阅读:2022年上半年 Web 3安全态势深度研报

在我们发布的《2022年上半年Web 3安全态势深度研报》中,我们已经从各个维度展示和分析了区块链安全领域的总体态势。今天,我们将针对NFT合约安全展开分析,看看在NFT合约在审计过程中都会出现哪些常见问题呢?

上半年NFT领域安全事件的总损失有多少?

据成都链安鹰眼区块链安全态势感知平台监控显示,2022年上半年,共监测到NFT领域主要安全事件10起,统计到的损失约为6490万美元,主要攻击方式为合约漏洞利用、私钥泄露、钓鱼等。而上半年Discord钓鱼事件频发,几乎每天都有Discord服务器受到攻击,个人用户因点击钓鱼链接而遭受损失的情况频繁发生。

每周下载数百万次的npm包遭黑客攻击嵌入加密挖矿恶意软件:10月23日消息,美国网络安全和基础设施安全局周五警告说,一个广受欢迎的JavaScript 库(npm 包)遭到黑客攻击并被恶意代码修改,该代码在安装了受感染版本的系统上下载并安装了加密货币挖矿程序。该事件于10月22日星期五被发现。它影响了UAParser.js,这是一个用于读取存储在用户代理字符串中的信息的JavaScript 库。根据其官方网站,该库被Facebook、苹果、亚马逊、微软、Slack、IBM、HPE、戴尔、甲骨文、Mozilla、Shopify、Reddit和许多硅谷公司使用。根据其npm页面,该库每周的下载量也经常在600万到700万之间 。受损版本: 0.7.29、0.8.0、1.0.0。(the record)[2021/10/23 6:09:05]

上半年NFT典型安全事件?

TreasureDAO事件

2022年3月3日,TreasureDAO交易平台遭到黑客攻击,造成100多个NFT 被盗。

新西兰交易所Cryptopia再次遭黑客入侵,损失约4.5万美元:2月20日,新西兰交易所Cryptopia再次遭黑客入侵,加上2019年被盗的3000万美元,Cryptopia报告称,它是2021年2月1日另一起盗窃事件的目标。黑客窃取了约62,000新西兰元(45,000美元)的加密货币。调查显示,黑客访问了一个钱包,该钱包自2019年1月黑客入侵以来一直处于休眠状态。该钱包属于Stakenet,由Cryptopia的清算人Grant Thornton控制。根据调查结果,休眠的钱包持有价值约196万美元的Xtake,这是Stakenet的原生代币。

此前,去年12月份,新西兰被盗交易所Cryptopia用户索赔流程已正式开启。(News.Bitcoin)[2021/2/20 17:34:12]

扩展阅读:怪事?盗了又归还?TreasureDAO安全事件分析

漏洞原因:逻辑漏洞

该漏洞存在于TreasureMarketplaceBuyer合约中,该合约的buyItem函数在传入_quantity参数后,并没有做代币类型判断,直接将_quantity与_pricePerItem相乘计算出了totalPrice,因此safeTransferFrom函数可以在ERC-20代币支付数额只有0的情况下,调用TreasureMarketplace合约的buyItem函数来进行代币购买。

黑客在暗网门户上出售超85000个SQL数据库,每个数据库索要550美元比特币赎金:目前有超过85000个SQL数据库在暗网门户上出售,每个数据库的价格索要价值550美元的比特币。今天早些时候,该门户引起了一名安全研究人员的注意,这也是2020年初开始实施的数据库勒索计划的一部分。黑客已经侵入SQL数据库,下载表格,删除原始文件,并留下赎金记录,让服务器所有者联系攻击者,以取回他们的数据。虽然最初的赎金通知要求受害者通过电子邮件联系攻击者,将近一年的时间里,攻击者也利用网站门户实现赎金索要流程自动化。该门户首先托管在sqldb.to和dbrestore.to上,随后转到暗网上的一个洋葱地址。(ZDNet)[2020/12/10 14:49:50]

本次安全事件主要原因是ERC-1155代币和ERC-721代币混用导致的逻辑混乱,ERC-721代币并没有数量的概念,但是合约却使用了数量来计算代币购买价格,且最后在代币转账的实现中也未进行逻辑分离。

APE Coin空投事件

推特被要求向美国参议院提供有关黑客事件的简报:美国参议院商务委员会主席Roger Wicker要求推特在7月23日之前向该委员会的工作人员介绍最近的比特币黑客事件。Wicker致信推特CEO称:“不难想象,未来的攻击将通过高知名度账号,特别是通过世界领导人的账号,来传播不实信息或制造不和谐”。(新浪财经)[2020/7/17]

2022年3月17日,黑客通过闪电贷拿到了超过6万的APE Coin空投。

该漏洞存在于AirdropGrapesToken空投合约中,由于其使用 alpha.balanceOf()和beta.balanceOf()判定调用者对BAYC/MAYC NFT的所有权。而这种方式仅能获取到用户对该NFT所有权的瞬时状态,但该瞬时状态可以通过闪电贷借入进行操控。攻击者利用该漏洞,以闪电贷借出BAYC NFT并获取对应的空投。

Revest Finance事件

2022年3月27日,Revest Finance项目遭遇黑客攻击,损失余额12万美元。

孙宇晨:Steemit持有的Steem代币受到黑客劫持是短时控制网络的原因:孙宇晨发推称,Steemit持有的Steem代币受到黑客劫持是短时控制网络的原因。Steem现已成功击败恶意黑客,所有资金都是安全的。

2月22日,一些恶意黑客冻结了STEEM核心开发者Steemit合法拥有的6500万枚STEEM。当我们发现时,黑客已经劫持了STEEM,并威胁要使现有的STEEM无效。而破坏STEEM网络的风险使每个STEEM持有者的利益受损。因此,我们需要立即采取行动,以保护STEEM区块链和生态系统。我们需要在短时间内控制网络。我们的唯一意图是确保Stake和STEEM持有者的利益。我们的意图不是为了控制STEEM网络。一旦我们确定恶意黑客不再破坏STEEM,我们将承诺将投票权交还给社区。[2020/3/3]

扩展阅读:老调重弹,ERC1155的重入攻击又“现身”,Revest Finance被攻击事件简析

漏洞原因:ERC-1155重入

该漏洞存在于Revest合约中,当用户采用depositAdditionalToFNFT()追加FNFT的抵押资产时,合约需要将先把之前的FNFT销毁,之后再铸造新的FNFT。但是在铸造时,由于min()函数中未判断需铸造的FNFT是否已经存在,并且状态变量fnftId自增在_mint()函数后。而_min()中存在ERC-1155中的隐藏外部调用_doSafeTransferAcceptanceCheck(),造成了重入漏洞。

NBA薅羊毛事件

2022年4月21日,NBA项目方遭遇黑客攻击。

漏洞原因:签名冒用和复用

该漏洞存在于The_Association_Sales合约中,项目当在采用签名校验的方式验证白名单时,主要存在两个安全问题:签名冒用和签名复用。其中签名复用问题是由于项目方并未在合约中存储已经使用过的签名,造成签名可以被攻击者重复多次使用;签名冒用的问题是由于vData memory参数info在传参时未进行msg.sender校验导致签名可冒用。

Akutar事件

2022年4月23日,NFT项目方Akutar的AkuAuction合约由于智能合约本身漏洞,导致11539ETH(价值约3400万美元)被锁死在合约中。

扩展阅读:NFT项目惊现低级漏洞,合约未审计导致3400万美元资产被锁死 ——Akutar事件分析

该合约存在两个逻辑漏洞,第一是退款函数processRefunds使用call函数进行退款操作,并且把退款结果作为require判定条件,如果攻击者在fallback中进行恶意revert会导致整个合约的退款操作无法继续进行。第二个漏洞是造成此次事件的根本原因,即退款函数中存在的两个判断条件,由于没有考虑到一个用户可以投标多个NFT的情况,使得项目方后续的退款操作永远无法执行。

XCarnival事件

2022年6月24日,NFT 借贷协议 XCarnival 遭到攻击,黑客获利 3087 枚以太坊(约 380 万美元)。

扩展阅读:NFT 借贷平台需警惕,XCarnival被攻击事件给我们哪些启示?

该漏洞存在于XNFT合约中,该合约中的pledgeAndBorrow 函数在质押NFT时并未未检查攻击者传入的xToken地址是否为项目方白名单中的地址;并且在借贷时,并未对抵押记录的状态进行检测,导致攻击者反复使用无效的抵押记录进行借贷。

NFT合约在审计过程中都会出现哪些常见问题呢

上半年发生了多起NFT合约相关的安全事件,主要原因还是没有进行全面的安全审计,那么NFT合约在审计过程中都会出现哪些常见问题呢?

成都链安审计团队在审计NFT系列合约时,发现NFT合约主要的问题包括以下几类:

(1)签名冒用和复用:

签名数据缺少重复执行验证(例如:缺少用户nonce),导致可以重复使用签名数据铸造NFT;

签名检查不合理(例如:未检查签名者为零地址的情况),导致任意用户均可通过检查进行铸币;

(2) 逻辑漏洞:

合约管理员可以通过私募等特殊方式铸币而不受总量的限制,导致NFT的实际量超过预期;

拍卖NFT时,获胜者可在领取交易顺序依赖攻击,修改竞拍价格,导致竞拍获胜者可以低价获取NFT;

(3) ERC721&ERC1155重入攻击

当合约使用转账通知功能时(onERC721Received函数),NFT合约会主动向转账的目标合约发送一次调用,那么这就可能导致重入攻击;

(4) 授权范围过大

用户在进行质押或者拍卖时,仅需要对单个代币授权,但合约要求_operatorApprovals授权,一旦用户授权成功,那么就存在NFT被盗的风险。

(5) 价格操控

NFT的价格依赖于某合约的代币持有量,导致攻击者利用闪电贷拉高代币价格,使得质押的NFT被异常清算。

从上半年发生的NFT合约安全事件来看,审计过程中经常出现的漏洞在实际中也会被黑客利用。因此寻求专业的安全公司对NFT合约进行审计也是非常有必要的。

Beosin

企业专栏

阅读更多

金色早8点

财经法学

PANews

Bress

链捕手

Odaily星球日报

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

DOGE稳定币:主流稳定币是否是美元霸权的延续?

随着区块链技术的不断发展,许多诞生在区块链上可能会颠覆传统行业的应用开始不断诞生,这也使得这个市场吸引了庞大的资金,不管是对于机构还是个人来说,要想进入加密市场必然绕不开一个东西.

TUSDADO:进击的虚拟货币监管和摩擦

撰文:傅卓蕊也许谁也没有想到,几周前隐私交易应用 Tornado Cash 被 OFAC 制裁能引发如此规模的连锁反应,从 DeFi 应用的前端屏蔽地址,到开发者被抓.

[0:15ms0-0:969ms