北京时间11月12日,CertiK安全研究团队发现DeFi项目text.finance智能合约代码部分存在安全漏洞。
分析之前,先考考大家的眼力,看看下图里面的文字说了什么。
如果看不清,不妨点击图片后把屏幕亮度调至最高。
有的时候,某些不想让你看到的因素,正是通过排版或者这样的方式,被刻意隐藏了起来。
接下来说说该项目中存在的两处漏洞。大家不妨在阅读文章的时候注意一下图中的位置。
第一弹:项目拥有者可通过第一处漏洞,将指定数目代币转移到任意地址。
第二弹:项目拥有者可通过第二处漏洞,将任意投资者的流动性池中的资产强制转移到项目拥有者的地址中。
LBank蓝贝壳于5月3日20:00首发 CSPR(Casper),开放USDT交易:据官方公告,5月3日20:00,LBank蓝贝壳上线 CSPR(Casper),开放USDT交易,同时并开放充值,资料显示,Casper网络是基于CasperCBC规范构建的第一个实时权益证明区块链。Casper旨在加速当今企业和开发人员对区块链技术的采用,同时确保随着网络参与者需求的发展,其在未来仍能保持高性能。[2021/5/3 21:19:51]
漏洞分析
textMiner.sol
部署地址:?
https://etherscan.io/address/0x9858728de38c914c2ea32484a113b6628d984a82#code
首发 | 嘉楠耘智宣布与Northern Data在AI、区块链等高性能计算领域达成战略合作:据官方消息,2020年2月17日,嘉楠耘智宣布与区块链解决方案及数据中心服务提供商Northern Data AG达成战略合作。本次合作的内容涵盖AI、区块链及数据中心运维等高性能计算领域。
嘉楠耘智拥有丰富的高性能计算专用ASIC芯片研发经验。Northern Data AG则专注于区块链和数据中心等高性能计算基础设施的建设。通过本次战略合作,双方将在AI、区块链等新兴领域进一步释放增长潜能。[2020/2/19]
1.漏洞一
项目拥有者在textMiner.sol智能合约1000行处实现了withUpdates()函数。该函数的的作用是可以将任意数量的为devaddr地址铸造任意数量的代币。而通过查看图2中devaddr和项目拥有者owner的地址值,可以发现两者相同,因此项目拥有者可以通过该漏洞为devaddr地址铸造任意数目代币。
首发 | 刘尧:百度区块链推出天链平台赋能链上业务:12月20日,由CSDN主办的“2019中国区块链开发者大会”12月20日在北京举行。百度智能云区块链产品负责人刘尧以《企业区块链赋能产业创新落地》为主题进行了演讲,他指出:2020年将是区块链企业落地的元年,为了支持中国区块链的产业落地,百度将区块链进行平台化战略升级,依托百度智能云推出天链平台,就是要赋能360行的链上业务创新落地。[2019/12/20]
同时,当前的devaddr地址拥有者可以通过图3的dev()函数将devaddr地址值更换到另外一个地址,因此最终项目拥有者可以更换将devaddr地址值更换的方法,向任意地址中铸造任意数目代币。
首发 | 百度推动246家博物馆线上藏品上链:金色财经讯,近日,百度超级链联合百度百科,基于区块链技术创建 “文博艺术链”,推动百科博物馆计划中的246家博物馆线上藏品上链。基于“文博艺术链”,百度将与博物馆共同推动线上藏品版权的确权与维护,同时探索线上藏品版权数字化交易方式,为合作的博物馆提供更全面的服务和更多的权益。据介绍,此项目将分阶段进行,一期将完成线上藏品的入链确权,为每一件藏品生产专属的版权存证证书。让每一名用户可以在百度百科博物馆计划的PC端和WAP端的藏品页查看证书。后续,百度还将推动AI与区块链技术在文博领域的结合应用,用来保障上链数据与藏品相匹配,为后续进行藏品图像版权数字化交易奠定基础。[2019/1/30]
虽然项目拥有者将图1中的withUpdates()函数设置为不允许智能合约外部调用,但是却有意地在图4中919行实现了允许被外部调用的add()函数,然后通过921行代码调用withUpdates()函数,从而实现向devaddr地址铸造1000000000000000000000000000000数量代币。
图1:第1000行中的withUpdates()函数
图2:devaddr地址以及项目拥有者owner地址
图3:dev()函数
图4:add()函数
2.漏洞二
图5:emergencyWithdraw()函数
项目拥有者可以通过调用图5中emergencyWithdraw()函数,将某一个特定地址投资者的某一个流动性池中的流动性资产全部取出,并转移到项目拥有者的地址中。
该emergencyWithdraw()函数是一个基于正确的emergencyWithdraw()函数。因此就算审视合约者不恶意揣测,也很难说项目方不是恶意改写,并添加了该漏洞。
从下图6的对比中可以发现,Sushiswap允许投资者通过调用emergencyWithdraw()函数,紧急取出属于自己的流动性资产,而在text.finance中却仅允许项目拥有者来调用该函数,同时允许项目拥有者取出属于任何投资者的流动性资产。
图6:text.finance和sushiswap项目中emergencyWithdraw()函数实现对比
安全建议
CertiK安全研究团队认为当投资者在对DeFi项目进行投资时,不仅需要对智能合约常见的代码有所了解,更需要谨慎地审视具体代码的实现逻辑。否则极易掉入类似该项目中的恶意漏洞陷阱当中。
对于非技术背景的投资者,更需要了解项目是否经过严谨的技术审计。从Text.finance项目的恶意漏洞中可以看出,盲目投资一个没有经过严格审计的项目,或引发极大风险,并造成难以估量的损失。
CertiK是采用形式化验证工具来证明智能合约可靠性的业内顶尖公司。公司内部审计专家将利用包括形式化验证在内的多种软件测试方法,结合一流的白帽黑客团队提供专业渗透测试,从而确保项目从前端到智能合约整体的安全性。如你的项目需要保障,请发送邮件至或直接后台留言进行免费咨询及报价。于此同时,CertiK的新产品预言机及快速扫描,也将为链上项目进行实时打分并且出具快速扫描分数。
如果你需要查找某项目的信息及安全分数,请登录CertiKFoundation官网的CertiKShield页面进行浏览:https://shield.certik.foundation/
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。