木星链 木星链
Ctrl+D收藏木星链

DEF:安全专家为你解读DeFi典型漏洞及其安全风险

作者:

时间:1900/1/1 0:00:00

自DeFi兴起以来,在短短9个月时间内迅速风靡全球。BSC凭借低廉的gas和高速壮大的生态应用建立起了日渐完整的生态系统,成功成为了领先的公链平台之一。

数据来源:https://bscscan.com/

如今每天,都有数百个项目在BSC上进行数千万的交易。

图片来自https://twitter.com/BinanceChain/status/1395060714390315008

但是链上交易的热度将另外一个隐患带到了我们面前——安全隐患。

目前可被黑客所利用的不同级别漏洞越来越多。

CertiK安全专家将这些漏洞分为四大类,下文将为各位读者带来DeFi相关安全风险讲解。

智能合约中,某些功能受到函数修改器(modifier)的保护——只有特定的操作者才能调用特定的功能。

在大多数情况下,这些功能是用于修改合约配置或管理智能合约中持有的资金。因此如果攻击者破坏了管理密钥,他们可以完全控制智能合约,调用该功能从而窃取用户资产。

?密钥泄露的原因

第一种可能性是计算机木马程序。?

攻击者可以使用木马程序来窃取存储在计算机上的私钥,或者进行网络钓鱼攻击,以诱用户将其私钥发送给攻击者。

安全专家:数字犯罪相关网络罪案今年五个月大增238%:在美东时间16日举行的众议院国家安全、国际发展和货币政策委员会听证会上,美国众议院议员Emanuel Cleaver称,自今年3月美国爆发新冠肺炎疫情以来,向FBI汇报的每日网络犯罪案增长了75%。

出席上述听证会的云基础设施技术公司VMware网络安全策略主管Tom Kellermann称,今年1月到5月,数字犯罪相关的金融业网络犯罪案大增238%,勒索软件共计激增900%。Kellermann提到了加密货币交易所的黑客入侵和数据泄露案件增加。

他解释说,用户将这类平台用作的工具,将网上的黑市和匿名的数字资产配合使用。匿名的虚拟货币让黑市网络诞生了大批可以触及全球市场的犯罪分子和有组织犯罪。很多这类支付系统和加密货币提供了真正的、或者相对的匿名性。这增加了数字货币监管的必要性。(Cointelegraph)[2020/6/17]

对DeFi合约来说,往往是几个人共享一个管理密钥。

这就意味着如果有内部人员心怀不轨,那么他可以调用管理功能将项目的代币转移到自己的钱包地址中。

这里有两个案例:2021年3月5日,PAIDNetwork因其私钥管理不当而遭受“铸币”攻击,经推测攻击者很可能是通过网络钓鱼攻击从管理员的计算机中窃取了密钥。

比特币安全专家:DeFi仍处于起步阶段,要广泛应用或需10年:5月17日消息,比特币安全专家Andreas Antonopoulos近期在播客中表示,DeFi仍处于起步阶段,需要时间证明其潜力。他认为,DeFi更多的是让金融服务更广泛地得到利用,消除传统上阻碍经济包容的中介机构和看门人。但目前,DeFi还需要很多理解,技术还不成熟,容易出现问题、风险、安全漏洞以及使用DeFi的用户界面还不成熟。

他还表示,DeFi的愿景并非遥不可及,但它需要10年时间来完善和完善接口、拓宽访问、增加流动性、降低波动性、改善智能合约的基础安全性,以及建立更健全的基础设施,使其能够得到更广泛地应用。(AMBcrypto)[2020/5/18]

PAID代币合约位于可升级代理服务器之后,这意味着代币合约可以被代理服务器的所有者替换。

这类恶意代码有铸币功能,攻击者销毁6000万个PAID代币,然后为自己铸造了5900万枚代币。

当时2,501,203美元的PAID代币在Uniswap上被出售,代币价格也从2.8美元暴跌为0.3美元。

2021年4月19日,EasyFi创始人声称该黑客为获取管理密钥对管理员进行了针对性的攻击。298万个EASY代币被从EasyFi官方钱包中转移到了几个未知钱包中。

声音 | 安全专家:利用区块重组弥补交易所被盗损失就像为风险管理不善的银行提供紧急援助:比特币安全专家表示,为弥补交易所损失而进行的重组,就像是对风险管理不善的银行进行紧急援助。幸运的是,与银行不同,这很难实现,也很可能失败,这里不会有紧急援助。[2019/5/11]

因此安全存储私钥对于项目安全的重要性可见一斑,管理者切忌将未加密的管理员密钥存储在电脑设备上,或将其无防备的放置于Metamask热钱包中。

CertiK安全专家建议管理者使用硬件钱包创建账户。

如果多人团队的每位管理者均使用硬件钱包,一旦其中一位管理者试图进行特权交易,也需获取大部分成员的签署同意,这样可以防止攻击者仅获取一个密钥访问权时就可以调用所有特权功能。

代币合约应尽可能避免铸造新代币的功能。如果需要铸造新代币,应使用DAO合约或时间锁合约,而非EOA帐户。

编码错误

大家一提到DeFi漏洞,往往会认为漏洞必然是很复杂的,其实并非总是如此。

有时一个小小的编码错误,就可以导致数百上千万美元的资产一朝蒸发。

一些常见的编码错误示例:

1.函数权限,修改器(modifier)缺失

2.错别字

声音 | 比特币安全专家:比特币矿工平均来看仍在盈利:据coingape报道,比特币安全专家和支持者Andreas M. Antonopolous指出,比特币矿工平均来看仍在盈利。他也承认,一些矿工将承担风险,在亏损之下挖掘并期待未来价格上涨,这对小规模的矿工来说有用。Antonopolous称,矿工的动态利润率随着时间的推移不断变化。因此,最新的和管理较好的矿场将继续盈利。[2019/4/12]

3.数字位数不正确

4.变量值分配缺失/不正确

有一个非常典型的例子就是UraniumFinance曾发生的受攻击事件:黑客攻击了UraniumFinance未受审计的合约,项目因此损失了5700万美元。

管理员在交换前后比较池中两个代币余额的乘积时使用了不一致的乘数,这使得攻击者可以仅用1Wei就从池中换出大量代币。

Uraniumfinance的代码:

正确的代码:

另一个例子是ValueDeFi,被黑客攻击导致损失了1000万美元。

此次事件发生的原因在于ValueDeFi合约中的初始化函数缺少“initialized=true”,这意味着任何人都可以将资金池初始化并将自己设置为管理员。

安全专家认为数字货币将作为主流资产存在:绝大多数网络安全专业人士认为,数字货币将成为金融领域的永久性固定资产,甚至可以作为法定货币的既定替代品。这是根据调查网络恶意软件保护提供商Lastline在200多名随机选择的参加2018年旧金山RSA会议的IT安全专业人员中进行的。受访者中有84%的人认为数字货币将一直存在,成为传统货币(45.2%)或周边产品(38.9%)的主流替代品。约14.5%的人表示他们愿意以数字货币的方式获得他们的工资,而不是用法定货币。[2018/5/25]

2021年5月5日,攻击者将资金池初始化,将自己设置为管理员,然后使用“governanceRecoverUnsupported()”函数耗尽了已抵押的代币。

ValueDeFi中的易受攻击的代码:

解决方法:

只需通过适当的同行评审、单元测试和安全审计,这一类型的代码错误往往极易避免。

闪电贷和价格操纵

闪电贷可以在无需提供任何抵押的情况下进行贷款,当然所有操作必须在一个交易区块内完成。

开发人员可以从Aave或dYdX等协议中借贷,条件是在交易结束之前将流动资金返还到资金池中。

如果资金未能及时返回,则交易将被撤回,从而确保储备池的安全。

闪电贷的一般运行步骤如下:

1.使用闪电贷借入大量代币A

2.在DEX上将代币A交换为代币B

3.攻击一个依赖A/B价格的DeFi项目

4.偿还闪电贷

上周PancakeBunny遭受了闪电贷攻击,攻击者窃取了11.4万BNB和69.7万Bunny。

攻击者利用闪电贷操纵PancakeSwapUSDT-BNBV1池的价格,导致大量的BNB流入BNB-Bunny池,这使得该合约能够以虚高的BNB/Bunny的价格铸造Bunny。

PancakeBunny使用了以下函数来计算Bunny的价格:

大量的BNB流入BNB-Bunny池造成变量“reserve0”变得更大,且价格计算公式存在缺陷,因此导致攻击者非法获取了69.7万Bunny。

闪电贷攻击的受害者很多,包括DeFi领域的一些知名项目:PancakeBunny,HarvestFinance,Yearn,ValueDeFi,AKROPOLIS,CheeseBank,XToken,bZx等等。

从这些实例中不难看出——项目方应着重预防价格被闪电贷恶意操纵。

为了防止这种情况的发生,CertiK安全专家建议①使用时间加权平均价格,因为攻击者只能在一个区块中操纵价格,因此平均价格并不会被影响,从而规避相关恶意操纵,②或使用可靠的链上价格预言系统,例如Chainlink。

用户并不与其他第三方协议进行交互。

在PancakeSwap中,用户可以通过提供流动性以获得奖励代币或将一个代币交换为另一个代币。

但其他项目的运作方式并不同。

比如YearnFinance是收集用户资金并将其放入第三方合约,通过投资用户代币以获取收益的。

第三种情况则是一些项目会从其他项目“借用”代码。

后两种情况下,如果第三方代码的来源安全风险较大,那么所有使用该代码的项目也会受到攻击。

假如项目的开发人员不熟悉他们使用的第三方代码,一旦代码存在漏洞,所导致的后果将是灾难性的。

2021年5月8日,ValueDeFivSwapAMM的非50/50池被攻击,损失总额约为1100万美元。

为了实现非50/50池,ValueDeFi从属于Bancor协议的“BancorFormula.sol”中复制了“power()”函数。

在power()函数的用法说明中,已写明该函数并不支持“_baseN<_baseD”的情况。

但ValueDeFi并未注意到此注释,因此攻击者成功利用此漏洞,通过往函数中传入特定的参数来用少量的代币A交换代币B。

ValueDeFi的代码:

DeFi领域中还有许多其他类似的情况。

2021年5月8日,一名攻击者通过利用集成在RariCapitalV2中的AlphaHomoraV1的ibETH池Bank合约的功能,从RariCapitalEthereumPool中消耗了大约2600个ETH。

BearnFinance使用BUSD的提款金额在其“BvaultsStrategy”合约中提取ibBUSD,从而让攻击者轻易转移了池中10,859,319枚BUSD。

这类问题较难检测,因此项目管理者应谨慎与任何第三方协议进行交互,更不应盲目地复制并部署开发人员不了解的代码。

CertiK安全专家建议:

1.开发人员在集成第三方协议并将部署到生产运行过程中之前,应充分了解其及其分支项目的运行情况。

2.开发人员应在项目上线前,先将其部署在测试网上进行测试并及时检查交易记录中的异常情况。

总体而言,尽管项目难以保证100%的安全,但是以下几点可以尽可能提高项目的安全性:

1.安全存储管理员密钥

2.避免简单的编码错误

3.参考可靠的链上价格

4.进行安全审计并做好审计前的准备

对于终端用户来说,在使用个人资产与项目进行交互之前,有时很难找到有关项目的详细信息。

为了方便用户获取项目的安全性信息,CertiK开发了全球首个公开透明展示区块链项目安全数据的安全排行榜。

通过查看公开的安全数据,终端用户可以实时了解项目安全情况。

https://www.certik.org

除以上防范方式以外,所有项目均应意识到安全审计的重要性。

那么审计前为了充分利用发挥安全审计的作用,应该如何准备资料和代码?

以下有几个小tips,详情可以访问:

1.定义审计的确切范围并设定审计目标

2.制作全面的审计代码文档

3.确保良好的代码质量

4.审计前测试代码

5.冻结代码并在审核之前指定代码的commithash

本文主要内容来自币安智能链联合CertiK安全专家共同主持的视频直播。

标签:DEFEFIDEFIANCGenesisDefiGDEFI价格WDEFI价格Binance Cartel

欧易okex官网热门资讯
BTC:大幅回撤促进加密市场去杠杆化,系统性风险降低

近期市场迎来大幅回调,据HuobiGlobal数据显示,自5月11日比特币开始下跌以来,其价格从58558美元的高点最低跌至29000美元,大幅回撤近50%.

1900/1/1 0:00:00
比特币:楚悦辰:5.28监管会迟到但绝不会缺席,比特币该何去何从?

前天晚上,“521”之后的第一终于打了出来,内蒙古出台《内蒙古自治区发展和改革委员会关于坚决打击惩戒虚拟货币“挖矿”行为八项措施》.

1900/1/1 0:00:00
GATE:Gate.io 粽情回馈:VIP端午免费福利活动公告(仅剩四天)

端午将近,粽香情更浓。值此佳节,Gate.io针对平台VIP用户推出免费福利活动,2000份大礼全站VIP免费送!包括注册有礼、转发海报、填写表单赢取情谊“粽”礼盒等等,不论新老用户,都有机会获.

1900/1/1 0:00:00
SEC:美国SEC再审比特币ETF,会成为加密市场的强心剂吗

当地时间5月25日早间,根据美国证券交易委员会公布的两份文件,SEC已开始正式审查SkyBridge及富达的比特币ETF申请.

1900/1/1 0:00:00
DEFI:一文读懂DeFi衍生品市场六大方向及底层发展逻辑

DeFi衍生品被认为是DeFi最具前景的市场之一,其中包括合成资产、期权、预测市场、永续合约、保险、利率衍生品等六大方向.

1900/1/1 0:00:00
比特币:分析5月份市场瀑布数据,比特币或将迎来重大转变

过去两周,加密货币受到负面消息的双重冲击。首先,伊隆·马斯克宣布特斯拉将不再接受比特币支付,并发表抨击比特币耗能的推文。然后,一个更大的海啸袭来:国内政策开始打击比特币挖矿和比特币交易.

1900/1/1 0:00:00