点击阅读:2022年上半年Web3安全态势深度研报
在我们发布的《2022年上半年Web3安全态势深度研报》中,我们已经从各个维度展示和分析了区块链安全领域的总体态势。今天,我们将针对NFT合约安全展开分析,看看在NFT合约在审计过程中都会出现哪些常见问题呢?
上半年NFT领域安全事件的总损失有多少?
据成都链安鹰眼区块链安全态势感知平台监控显示,2022年上半年,共监测到NFT领域主要安全事件10起,统计到的损失约为6490万美元,主要攻击方式为合约漏洞利用、私钥泄露、钓鱼等。而上半年Discord钓鱼事件频发,几乎每天都有Discord服务器受到攻击,个人用户因点击钓鱼链接而遭受损失的情况频繁发生。
Polkadot Hackathon: North America 公布黑客松获胜项目:9月18日消息,波卡公布 Polkadot Hackathon: North America 的获胜项目,大将获得项目为 XCM DOT Autostake,奖金 3 万美元。此外,DAO 和治理类别中 Diora Network、Rooster DAO、Shivarthu 获得前三名,DeFi 类别中 RoboFi、Polkadot Acala aUSD Credit Card、Humidefi 获得前三名,界面和体验类别中 Moonbridge、Subsocial Substrate StackExchange、Polkadot Point of Sale Terminal 获得前三名,NFT 类别中 KodaDot:Moonsamal、Sociable Weaver、Ventur NT-NFT Pallet 获得前三名。[2022/9/18 7:04:32]
上半年NFT典型安全事件?
OpenDAO:黑客发起DDoS攻击并索要赎金,协议安全且资金不受影响:DeFi协议OpenDAO发推称,一个作恶者正试图向OpenDAO索要赎金。我们不会参与。协议100%安全,资金不受影响。这是一次针对UI的DDoS攻击。幸运的是,我们对此有准备,所以攻击将是徒劳的。请留意我们的推文更新。[2020/11/28 22:25:26]
TreasureDAO事件
2022年3月3日,TreasureDAO交易平台遭到黑客攻击,造成100多个NFT被盗。
扩展阅读:怪事?盗了又归还?TreasureDAO安全事件分析
漏洞原因:逻辑漏洞
该漏洞存在于TreasureMarketplaceBuyer合约中,该合约的buyItem函数在传入_quantity参数后,并没有做代币类型判断,直接将_quantity与_pricePerItem相乘计算出了totalPrice,因此safeTransferFrom函数可以在ERC-20代币支付数额只有0的情况下,调用TreasureMarketplace合约的buyItem函数来进行代币购买。
安全研究人员:黑客通过使用恶意软件感染黑客工具进行攻击:Cybereason安全研究人员Amit Serper最近发现一种新的恶意软件活动,黑客组织通过感染流行的黑客工具,将其他黑客作为攻击目标。此类活动据称已持续一年,尽管它是最近才被发现。它似乎还瞄准了一些现有的黑客工具,其中许多是为了通过滥用产品密钥生成器等从各种数据库中过滤数据而设计的。据Serper报道,这些工具正受到强大的远程访问特洛伊木马的感染。一旦有人打开它们,黑客就可以完全访问目标黑客的设备。Serper补充说,黑客在自己的网络中寻找受害者,他们正积极地试图通过在各种黑客论坛上发布重新打包的工具来感染尽可能多的其他人。(U.Today)[2020/3/11]
本次安全事件主要原因是ERC-1155代币和ERC-721代币混用导致的逻辑混乱,ERC-721代币并没有数量的概念,但是合约却使用了数量来计算代币购买价格,且最后在代币转账的实现中也未进行逻辑分离。
APECoin空投事件
动态 | 爱尔兰电车运营商遭黑客劫持后被勒索比特币:据Irishexaminer报道,爱尔兰电车运营商Luas遭到黑客攻击,这家电车运营商被勒索一枚比特币作为赎金。今日早上任何访问该网站的人都会收到一条描述袭击的信息。据称,黑客前段时间给该公司发了邮件,称存在安全漏洞,但没有回复。攻击者威胁称如果不能在五天内支付一个比特币,即大约3,400欧元,就公布所有数据并向用户发送电子邮件。[2019/1/3]
2022年3月17日,黑客通过闪电贷拿到了超过6万的APECoin空投。
漏洞原因:逻辑漏洞
该漏洞存在于AirdropGrapesToken空投合约中,由于其使用alpha.balanceOf()和beta.balanceOf()判定调用者对BAYC/MAYCNFT的所有权。而这种方式仅能获取到用户对该NFT所有权的瞬时状态,但该瞬时状态可以通过闪电贷借入进行操控。攻击者利用该漏洞,以闪电贷借出BAYCNFT并获取对应的空投。
欧盟委员会等机构合作开展“区块链黑客马拉松”活动 成功团队将获10万欧元奖金:据coindesk报道,本周三,欧盟委员会,欧盟知识产权局以及其侵犯知识产权观察站共同宣布将在6月份合作推动欧盟开发者活动“区块链黑客马拉松”(blockathon) ,以探索该技术在知识产权执法方面的应用。参与者将致力于竞争开发基于区块链的“打假综合解决方案”,成功的团队将获得10万欧元(约合124000美元)的奖金。[2018/4/12]
RevestFinance事件
2022年3月27日,RevestFinance项目遭遇黑客攻击,损失余额12万美元。
扩展阅读:老调重弹,ERC1155的重入攻击又“现身”,RevestFinance被攻击事件简析
漏洞原因:ERC-1155重入
该漏洞存在于Revest合约中,当用户采用depositAdditionalToFNFT()追加FNFT的抵押资产时,合约需要将先把之前的FNFT销毁,之后再铸造新的FNFT。但是在铸造时,由于min()函数中未判断需铸造的FNFT是否已经存在,并且状态变量fnftId自增在_mint()函数后。而_min()中存在ERC-1155中的隐藏外部调用_doSafeTransferAcceptanceCheck(),造成了重入漏洞。
NBA薅羊毛事件
2022年4月21日,NBA项目方遭遇黑客攻击。
漏洞原因:签名冒用和复用
该漏洞存在于The_Association_Sales合约中,项目当在采用签名校验的方式验证白名单时,主要存在两个安全问题:签名冒用和签名复用。其中签名复用问题是由于项目方并未在合约中存储已经使用过的签名,造成签名可以被攻击者重复多次使用;签名冒用的问题是由于vDatamemory参数info在传参时未进行msg.sender校验导致签名可冒用。
Akutar事件
2022年4月23日,NFT项目方Akutar的AkuAuction合约由于智能合约本身漏洞,导致11539ETH被锁死在合约中。
扩展阅读:NFT项目惊现低级漏洞,合约未审计导致3400万美元资产被锁死——Akutar事件分析
漏洞原因:逻辑漏洞
该合约存在两个逻辑漏洞,第一是退款函数processRefunds使用call函数进行退款操作,并且把退款结果作为require判定条件,如果攻击者在fallback中进行恶意revert会导致整个合约的退款操作无法继续进行。第二个漏洞是造成此次事件的根本原因,即退款函数中存在的两个判断条件,由于没有考虑到一个用户可以投标多个NFT的情况,使得项目方后续的退款操作永远无法执行。
XCarnival事件
2022年6月24日,NFT借贷协议XCarnival遭到攻击,黑客获利3087枚以太坊。
扩展阅读: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合约进行审计也是非常有必要的。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。