当前位置:首页DEFI国家区块链漏洞数据库发布defi网络安全形势报告

国家区块链漏洞数据库发布defi网络安全形势报告

当前DeFi项目仍处于发展初期,各个项目方水平参差不齐

最近,DeFi频繁发生安全事件。国家区块链漏洞数据库中记录的安全事件包括财务部该项目发行无限代币、unicats项目授权攻击、均衡器项目攻击、Akropolis和ousd分别遭遇黑客重入攻击。生态安全威胁的风险程度较高。

1、 当前DeFi的全面发展

2017年12月,全球**DeFi项目——创客正式启动。今年以来,德福发展迅速,特别是6月至11月,其锁定资产价值从10亿美元增加到180亿美元,增长1700%。高峰期,项目数超过500个。目前,DeFi的主要产品类包括借贷市场、去中心化交易(DEX)、衍生品、支付网络、代币资产等,此外,根据用途和代币特点,还包括基础设施、数据服务、钱包和稳定硬币。

国家区块链漏洞数据库发布defi网络安全形势报告

图1国防部主要项目类总锁定价值(TVL)占比

随着DeFi项目的快速发展,DeFi周围的各种安全事件也开始频繁发生。

2、 安全状况

(1)各链平台DIF的安全状态。据德福今年以来安全事件统计,以太坊发生的安全事件占82.61%。波场区块链占6.52%,EOS区块链占4.35%,其他区块链占6.52%。

国家区块链漏洞数据库发布defi网络安全形势报告1

图2不同区块链上的DeFi安全事件比例

(2) DeFi项目的安全问题

1无限期增发问题

无限期发行是指由于智能合约存在漏洞,攻击者可以随意发行货币,非法调用增发功能的操作过程。

通过添加Minter权限,项目方可以发出额外的代币。此外,还有一种情况是,应该拥有造币权的治理合同地址被项目方持有的外部地址所取代,这样项目方就可以制造无限的硬币。一些项目业主没有写时间锁,这导致货币无限增长没有时间限制。例如,DeFi项目财务部因为没有设置时间锁,代币将无限期地发出。

2授权攻击问题
授权攻击是指攻击者利用合约逻辑漏洞获取其他用户授权的合约授权,随意转移用户的代币。

投资者参与DeFi项目时,为了方便起见,通常要求投资者将所有代币授权给合同地址,以避免用户在后续操作中重复授权。例如,用户有1000万个特定代币,但不能为每个合同传输使用1000万个代币。这样,每次合同转让都需要用户签字。如果你从1开始,1000万被授权到合同地址,这样可以避免不必要的重复操作。但是,如果恶意用户使用合同授权调用ERC20代币中的transferfrom函数来实现**传输。然后用户钱包中的所有代币都可以被攻击者随意操纵。在诈骗项目unicats中,项目方留下了这样一个右交叉判断条件,相当于地址白名单,这样就可以用合同身份发起交易,任意窃取用户的资产。

国家区块链漏洞数据库发布defi网络安全形势报告2

图3攻击代码部分截图

从目前的情况来看,几乎所有在前端或其他地方的项目方都会默认设置用户授权的**金额(2^256)。有些合同(a)在调用其他合同(b)时需要对合同(b)进行授权,但它们通常采用使用多少授权的方法。因此,作为投资者,我们必须对DeFi项目的授权问题保持高度警惕,以免落入攻击者的“陷阱”。

3套利

套利是通过同时买卖同一种类的虚拟数字货币资产来获取利润的一种方式。它利用同一虚拟数字货币资产在不同交易所的不同定价现象。特别是在虚拟数字货币资产发行初期,不同交易所之间的流动性变化很大,这就导致了大量利用交易所间价差进行套利获利的机会。

这类问题主要出现在业务复杂度较高的DeFi项目中。例如,平衡器项目的攻击事件。通过结合“闪电贷款”、通货紧缩货币和平衡器代币池的“乘积常数”规则,攻击者利用通货紧缩代币sta和“flash loan”构造了一个只有1个单位sta的特例。当池中只有一个sta单元和其他代币时,只有一个sta单元可以与价值更高的其他代币交换。另外,sta是通货紧缩的,也就是说,一些代币在转移过程中会被销毁(一般是转移代币数量的1/100)。但是,由于1个sta单元是最小值,当传输1个sta单元时,也会销毁1个sta单元,使得池中的sta数量保持不变。攻击者可以通过重复执行此操作来清空资金池。如下图所示:

国家区块链漏洞数据库发布defi网络安全形势报告3

图4攻击流

4再入攻击

重入攻击是指攻击者在执行回调函数时,合约代码被攻击者劫持,使攻击者调用的回调函数被恶意的合约地址所替代,从而使攻击者可以再次调用该函数。例如,应该用于进行传输的函数被调用两次,这使攻击者获得两个好处。

最近,Defa协议Akropolis遭到黑客攻击。通过分析,此次攻击主要是由于缺乏参数验证和对再入攻击的防范。

攻击者首先将其恶意合约地址作为参数传入函数dispose(),传入的位置是代币地址的参数位置。这将导致函数在执行代币的safetransferfrom()函数时调用攻击者的恶意协定。攻击过程分为以下步骤:

1deposit()函数首先执行depositopProtocol()函数,depositopProtocol()函数中有一个被恶意劫持的safetransferfrom()函数,因此此步骤将执行攻击契约。

2在攻击契约中,攻击者再次调用deposit()函数,这次传入的参数为普通代币地址。在这个调用中,攻击者将真实的Dai存储在正常的硬币存储中。

3从代码中可以看出,在mint函数之前,计算了一个平衡差。硬币是根据差额计算的。这一次,真傣将增加平衡。因此,攻击者将获得等同于Dai的pooltoken。

4在执行恶意契约之后,普通契约将继续执行deposittoprotocol()函数之后的代码。

5由于攻击者之前确实存储了Dai,这次攻击者将再次获得与Dai等价的pooltoken,并将资产加倍。

攻击者利用这一系列方法多次攻击合同,最终获得200多万Dai。

国家区块链漏洞数据库发布defi网络安全形势报告4

图5攻击流

另一个例子是最近的流氓再入攻击。攻击者利用再入攻击和弹性补给调整来达到攻击目的。

在这次攻击中,攻击者通过dydx闪电贷款借给了70000以太坊,并将其兑换成相应的USDT和Dai。

1攻击者先将750万美元转移到金库,使其在金库中的价值占50%以上。

2调用契约中的mintmultiple()函数来投币,并传入2050万Dai和恶意合约伪造的另一个代币作为参数。该功能通常接收2050万Dai。当收到另一个代币时,它实际上调用了攻击者的恶意契约,并且攻击者再次在攻击契约中存储2,生成了000美元来触发rebase()调用。

3因为正常的合同是在转移后,资产会进行结算,更新资产的总价值,然后通过rebase()进行分配。但是,该合同被劫持,而且合同没有将2050万代币计入金库资产总值,因此,当回扣()时,所有2050万代币将作为收入分配。

4由于攻击者占金库价值的50%以上,攻击者将在不支付任何费用的情况下分配超过1025万Dai。之后,合同将正常执行,攻击者可以从造币厂这枚豪斯代币的价值相当于存放在傣族的钱。

最终,所有袭击者的收益加起来大约有3327万辆。**,攻击者赎回先前存入的代币,并将获得的代币返回给闪贷。

(3)
national blockchain漏洞数据库分析了DeFi安全事件的主要原因,包括业务逻辑实现漏洞、业务设计缺陷、项目端运行、重入攻击、钓鱼欺诈等,具体原因分类如下图所示。

国家区块链漏洞数据库发布defi网络安全形势报告5

图6国防部安全事故原因

此外,DeFi安全事件频发的另一个原因是市场上涌现出大量的“仿盘”项目。这些项目存在技术基础薄弱、业务设计不合理等问题,部分项目涉嫌欺诈。接下来,我们对典问题进行如下分析:

1业务逻辑实现错误
所谓业务逻辑实现错误,是指在编写实现需求的程序时,由于错误的代码编写方法而存在漏洞。在cherryfi项目的USDTlock事件中,其传输逻辑调用safetransfer函数来执行特定的传输操作。但是,USDT的转账逻辑没有返回值,导致safetransfer调用永远无法成功,导致资金锁定,用户无法进行USDT转入和转出。据悉,cherryfi代码尚未审核。

2业务设计缺陷
业务设计缺陷是指业务设计过程中的不完善和严格考虑,而不是由代码编写问题引起的业务缺陷。在DeFi项目中,这类问题主要体现在交易对的相关逻辑或灵活的供应机制上,容易引发恶意套利。在曲线项目中,如果变量a变化前后的汇率不一致,就会出现套利机会。

国家区块链漏洞数据库发布defi网络安全形势报告6

图7代币联合曲线

如上图所示,曲线代币池中不同代币的余额必须满足曲线。为了进一步解释这个套利空间的形成过程,我们可以假设代币x是USDT,代币y是另一个代币。当a=1(蓝色曲线)时,用户将持有的USDT和token y全部转换成token y,假设兑换前池中有150 USDT和50 token y,如图中红点所示。该点位于蓝色曲线上,保持150:50(1.5:0.5)的比率。用户持有50美元。根据200T美元的兑换曲线,用户在兑换时会有50美元的代币。为了保证比例在蓝曲线上,红点会移到黄点,对应的比例是200:30(2:0.3),所以50美元一吨可以换成20代币y。

假设a=10(红色曲线),当前池余额为200USDT和30token y,此时持有的20token y用于兑换USDT,池中有50token y。为了满足红色曲线的比例,黄点会移到绿点上,池中的余额应该是140美元吨和50代币y,也就是说,可以用20个代币y兑换成60美元吨,从而获得10美元的利润。这是由a在变动前后形成的套利空间。

3代码错误
代码错误通常在编写代码时发生,因为程序员粗心大意,导致代码编写错误。这个问题可能会对项目产生毁灭性的影响。例如,yam项目在计算弹性供给时,由于代码编写错误,忘记了按精度划分。如下图所示,合同保留的代币太多。然而,治理需要投票。要启动提案,提案的发起人需要抵押总代币的1%才能使提案成功。如果代币总数过大,则该方案需要抵押的代币金额相对较大,导致没有人能负担得起该方案所需的代币。最终,项目方不得不宣布项目终止。

国家区块链漏洞数据库发布defi网络安全形势报告7

图8部分错误代码屏幕截图

**,随着DeFi产业的快速发展,越来越多的组合创新被应用到DeFi项目中。然而,在安全检查或安全审计过程中,很难发现合并后的风险。例如,借给我项目和ERC777本身的业务逻辑没有问题,但合并后存在重新进入漏洞。组合风险的问题仍然需要区块链安全行业的各个厂商共同解决。

3、 结论

目前的DeFi项目尚处于开发初期,各项目方水平参差不齐,技术条件差异较大。一些DeFi项目,一是没有经过专业的代码安全审计;二是忽视了区块链的技术特点,只建立在传统金融中心化系统的经验之上;三是一些区块链应用没有经过真实性验证,而且存在被不法分子利用数字资产投融资等伎俩诈骗的风险。一些项目方还存在在地址上转移大量数字资产的行为,需要相关方予以关注。综上所述,DeFi生态安全威胁的风险水平较高。

温馨提示:

文章标题:国家区块链漏洞数据库发布defi网络安全形势报告

文章链接:https://www.btchangqing.cn/158387.html

更新时间:2021年06月12日

本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。

区块链

“加密妈妈”皮尔斯:证交会可能会遵循怀俄明州关于加密货币监管的“新规”

2020-12-3 21:08:48

DEFI区块链

闪电贷款攻击背后——defi智能合约安全漏洞的法律问题

2020-12-3 21:16:51

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索