比特币价格·比特币行情
Ctrl+D收藏简单区块链

首发 | Keep3r项目中心化风险漏洞分析

作者:

时间:2020/12/12 20:07:36

北京时间2020年11月20日, Telegram社群出现某些截图声称Keep3rLink接受了CertiK的审计服务。

同日,CertiK安全研究团队发现Keep3r项目存在中心化安全风险。

项目拥有者拥有过大权限,可将允许奖励的限制提高,从而可以向任意参与者发送任意数额的奖励且可向任意地址铸造任意数目代币。 

Keep3rV1:

● 代码地址:

https://github.com/keep3r-network/keep3r.network/blob/master/contracts/Keep3r.sol

● 部署地址:

https://etherscan.io/address/0x1cEB5cB57C4D4E2b2433641b95Dd330A33185A44

Keep3rV1Helper:

● 代码地址:

https://github.com/keep3r-network/keep3r.network/blob/master/contracts/Keep3rV1Helper.sol

https://etherscan.io/address/0x93747c4260e64507a213b4016e1d435c9928617f

如下图图一所示,Keep3r项目的Keep3rV1智能合约中定义了两个角色:governance与pendingGovernance。

1178行setGovernance()函数允许当前governance角色将pendingGovernance角色设定为任意给定地址_governance。

同时在1186行acceptGovernance()函数中,当前pendingGovernance可以将自己授权为governance角色。

因此从逻辑上governance角色与pendingGovernance角色可以循环授权,且没有任何event事件可以提醒投资者governance角色与pendingGovernance角色的变更。

此时,项目拥有者可以随意设置拥有两个角色的地址。

图一:governance、pendingGovernance角色以及KPRH设置函数setKeep3rHelper()

一旦拥有governance角色,拥有角色的地址可以利用图一中1169行setKeep3rHelper()函数对当前KPRH指向的Keep3rHelper智能合约进行修改。

修改之后图二中1076行KPRH.getQuoteLimit()的具体实现就也极有可能被修改,接下来会返回给调用该函数的Keep3rV1合约不同的返回值。

图二:对某个用户keeper进行奖励的函数workReceipt()

项目拥有者如果考虑发动攻击,由于拥有governance角色,因此可以首先调用图三中addKPRCredit()函数。

在916行对某一个job(假设job的地址为ADDR_A, 被项目拥有者掌握)的地址给与任意数目的信用数目credit(假设给与的credit数目为CREDIT_A, 关联于ADDR_A)。

之后可以部署一个新的Keep3rHelper智能合约,然后在该智能合约中的将getQuoteLimit方法定义为返回uint类型变量的最大值。

然后项目拥有者可以使用ADDR_A的地址来调用图1中setKeep3rHelper()函数,将KPRH值指向给定的Keep3rHelper智能合约。

最终调用图二中workReceipt()函数,由于1076行代码由于KPRH.getQuoteLimit()函数被指定返回最大值的缘故必定通过。

在1077行中由于项目拥有者使用ADDR_A的地址来进行的调用,其在该智能合约中拥有的信用数目为CREDIT_A,因此amount的数目可以为略小于CREDIT_A的任意值。

当通过1077行之后,amount的奖励数目被给与keeper的地址。

最终该keeper可以调用合同内部的ERC20的转移函数,将获得的奖励转移到自己给定的地址中,完成攻击行为。

图三:对某个job增加信用数目credit的函数addKPRCredit()

除了上文讲述的中心化风险漏洞之外,图四中的mint()允许为governance角色的地址铸造任意数目的代币。

由于governance角色的地址可以通过图一中的setGovernance()函数以及acceptGovernance()进行设置。

也就代表着项目管理者只要拥有governanvce角色,即可以通过重设governance角色地址的方式,向任意地址铸造任意数目的代币。

图四:允许governance角色随意铸造代币的函数mint()

通过查询etherscan上Keep3rV1智能合约的数据,图五显示Keep3rV1拥有者地址为0x2d407ddb06311396fe14d4b49da5f0471447d45c。

同时,如图六显示,北京时间11月20日早11点governance角色的地址也为0x2d407ddb06311396fe14d4b49da5f0471447d45c。

可以得知项目拥有者拥有governance角色权限,因此有权限可以通过上述中心化漏洞进行攻击并获利。

图五:Keep3rV1智能合约拥有者等相关信息

图六:governance角色地址

区块链作为时代颠覆性的核心技术,也已在各个领域得到了广泛的应用,隐藏在收益和利好之下的安全隐患也不应被忽视。

安全审计现在已经是高质量项目的标配。

若项目没有被审计,对于用户来说,投资行为则要格外慎重;对于项目方来说,则需要准备好相关资料并寻找专业并且声誉好的审计公司进行审计。

若项目被审计过,则需尽量了解审计公司背景以及其审计报告中的各项指标。

CertiK采用形式化验证工具来证明智能合约可靠性,公司内部审计专家将利用包括形式化验证在内的多种软件测试方法,结合一流的白帽黑客团队提供专业渗透测试,从而确保项目从前端到智能合约整体的安全性。

近期,有部分项目方假借CertiK的名义发布不实审计报告。

项目拥有者拥有过大权限,可将允许奖励的限制提高,从而可以向任意参与者发送任意数额的奖励且可向任意地址铸造任意数目代币。 

● 部署地址:

● 代码地址:

《精灵达人3D》正式首发 Cocos-BCX 主网:据官方消息,近日,由生态合伙人 DAPPX 参与开发的《精灵达人3D》正式首发于游戏公链 Cocos-BCX 主网。《精灵达人3D》是一款以精灵宝可梦为题材的抓宠游戏,游戏美术采用全3D 制作。用户可通过 CocosWallet , DAPPX 或 IMCOCOS 登录 COCOS 主网账号即可体验。截至目前,Cocos-BCX 主网已上线《加密骑士团》《恶龙必须死》《XPEX怪兽世界》《Go Block》《可可夺币》《熊猫运动会》等多款玩法多样的趣味性链游,游戏公链生态在逐步壮大和完善。[2020/8/20]

首发 | 嘉楠耘智宣布与Northern Data在AI、区块链等高性能计算领域达成战略合作:据官方消息,2020年2月17日,嘉楠耘智宣布与区块链解决方案及数据中心服务提供商Northern Data AG达成战略合作。本次合作的内容涵盖AI、区块链及数据中心运维等高性能计算领域。 \n嘉楠耘智拥有丰富的高性能计算专用ASIC芯片研发经验。Northern Data AG则专注于区块链和数据中心等高性能计算基础设施的建设。通过本次战略合作,双方将在AI、区块链等新兴领域进一步释放增长潜能。[2020/2/19]

公告 | 火币全球站6月29日16:00全球首发 Project PAI:火币全球站定于新加坡时间6月29日16:00 Project PAI (PAI) 充值业务。7月2日16:00在创新区开放PAI/BTC, PAI/ETH交易。7月6日16:00开放 PAI提现业务。[2018/6/29]

标签:

区块链热门资讯
首发 | CertiK:Yearn.finance新项目Eminence攻击事件漏洞分析

北京时间9月29日,CertiK安全研究团队发现Yearn.finance的新项目Eminence.finance出现异常交易。有三笔共计价值约1.09亿人民币的资金,被从Eminence智能合约中转出,地址为:0x5ade7ae8660293f2ebfcefaba91d141d72d221e8。

2020/12/12 20:07:53
首发 | Mercurity.finance智能合约安全漏洞分析

今年美国大选虽说有了广泛意义上的尘埃落定,但竞选结果并未明确。 如今拜登团队宣布胜选,美国媒体纷纷宣布拜登当选下届美国总统。而另一方面,川普拒绝接受败选结果,他持续进行计票,并宣称要采取法律行动。 造成如今这个混乱结果的首要原因在于美国没有设立独立的对大选事务具有权力的权威性的选举委员会,在默认情况下,是新闻机构承担了这个角色。

2020/12/12 20:07:48
首发 | Text.finance智能合约安全漏洞分析

北京时间11月12日,CertiK安全研究团队发现DeFi项目text.finance智能合约代码部分存在安全漏洞。 分析之前,先考考大家的眼力,看看下图里面的文字说了什么。 如果看不清,不妨点击图片后把屏幕亮度调至最高。 有的时候,某些不想让你看到的因素,正是通过排版或者这样的方式,被刻意隐藏了起来。 接下来说说该项目中存在的两处漏洞。

2020/12/12 20:07:42
首发 | CertiK:八千万人民币不翼而飞 Compounder.finance内部操作攻击分析

八千万人民币的大案子,是不是想起了《人民的名义》里那一墙的人民币? 在日常生活里,也许你不小心疏忽遗失了钱包也丢不了太多钱。但在加密货币的世界中稍有不慎,损失的金额也许是一把撒出去遮天蔽日的那种效果。 在层出不穷的矿坑中,一着错漏,满盘皆输。往往项目拥有者与投资者一样,心心念念记挂着自家项目的安全性。

2020/12/12 20:07:31
“DeFi+彩票”如何助力彩票系统实现公平透明化运作?

今年下半年以来,在加密货币市场热度最高的话题DeFi中,关于DEX、流动性挖矿、治理代币等等的讨论不绝于耳。近期随着市场情绪的高涨,锁定在DeFi领域中的资金规模更是创下了历史新高——140亿美元,较年初时上升近9倍。然而,DeFi中有一个细分的应用领域似乎鲜有被大家关注到,即DeFi彩票。本文我们一起了解这个领域的现状和未来。

2020/12/12 20:07:25
为什么银行业需要立即拥抱加密领域?

今年,加密领域在主流金融科技中的采用得到了急速增长。PayPal、Revolut和Squar都做出了备受瞩目的举动。近日,备受推崇的独立研究机构AllianceBernstein还发表了报告,称其“已经改变了比特币在资产配置中的作用的看法”。而BlackRock的首席投资官Rick Rieder日前则在CNBC上公开表示,“比特币可以取代黄金”。

2020/12/12 20:07:21