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

北京时间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

美国财长或将在听证会回答与稳定币有关的问题:5月12日消息,美国财政部长珍妮特耶伦(Janet Yellen)定于今天在美国众议院金融服务委员会作证。据知情人士透露,虽然她的证词仍将基于最近发布的金融稳定监督委员会(理事会)2021年年度报告,但在她的证词中,有可能会被问到几个与稳定币有关的问题。

此前5月10日消息,在国会山的会议上,美国财政部长耶伦谈到加密市场中美元Stablecoin的监管,耶伦认为,美元Stablecoin监管的立法迫在眉睫,“这个领域增长迅速,并随之带来巨大风险,众所周知,今天Terra UST 经历了一轮下跌”。(The Crypto Basic)[2022/5/12 3:11:47]

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

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

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

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

派盾:Ronin Network被盗资金中2900枚ETH被转入Tornado Cash:4月15日消息,据派盾监测,Ronin Network被盗资金中2900枚ETH(约合870万美元)经过中间地址(0xBc5639887283eaF1B8E966e0b2fa6998D2ec6404)后,现已被转入Tornado Cash。[2022/4/15 14:27:12]

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

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

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

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

知情人士:苹果收购英国开放银行初创公司Credit Kudos:3月23日消息,知情人士称,英国开放银行初创公司Credit Kudos已被美国科技巨头苹果公司收购。

据三位知情人士透露,该交易于本周早些时候完成。一位消息人士称,这笔交易对Credit Kudos的估值约为1.5亿美元,较其上一轮融资估值显著提升。Credit Kudos网站上标有“网站使用条款(Website Terms of Use)”的链接目前指向一个概述Apple使用条款的页面。The Block已向Credit Kudo和Apple求证此事,但截至发稿时均未予以回应。

据悉,Credit Kudos在2020年4月完成500万英镑(约合650万美元)A轮融资,AlbionVC领投,TriplePoint Capital、Plug and Play Ventures、Ascension Ventures旗下Fair by Design fund、Entrepreneur First和一些天使投资人参投。

Credit Kudos根据银行数据(特别是交易和贷款结果数据)提供贷款申请人相关的解析和评分,这些数据来源于英国的开放银行框架。据其网站称,其API可以为贷方(lender)提供更快的决策、更低的风险和更高的接受率。(The Block)[2022/3/23 14:13:48]

修改之后图二中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的名义发布不实审计报告。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

Ethereum谷燕西:为什么说Google Pay的战略选择是错误的?

据美国媒体报道, Google Pay产品有了重大的升级。Google Pay开始同花旗银行等十一家银行合作,为Google的用户提供银行服务,包括为用户开设支付和储蓄账户。 Google Pay于2015年成立。迄今为止,它在30个国家运行,拥有1亿5千万用户。 Google Pay希望通过最近的这次战略升级,能将其支付业务发展到一个新的台阶。

OKB首发 | 为何你的比特币会越来越少

最近比特币大涨,但是似乎不少朋友都“踏空”了,50天70%+的涨幅,并没有给很多人带来直观的收益。原因是什么呢?手上没有比特币。 查理芒格曾说过“如果我知道自己会死在某个地方,我就永远不去那个地方”,根据这样的思维模型,他还做过一次演讲,题目就是《如何确保自己过得贫困潦倒》。 我下面列举的内容就是致敬这种思维模式,写出来的内容,警示自己也提示朋友。

MANA从大火到无人问津 EOS为什么长期低迷?

一直被我们忽视的不可承受之重:EOS为什么长期低迷 关于Blockone,应该近期会有一个新的进展公布,一切以官网为主,就不多说了。今天给一些我从来没说过,但是长期以来又被所有人忽视的数据。 1)这一条是来自慢雾的数据,2020年,ETH DApp被黑事件33起,损失金额超过3亿6千万美金,市值占比0.7%。

欧易交易所app下载金色观察 | “十四五”政策制定窗口期 盘点规划建议中的区块链

自区块链上升到国家战略以来,区块链作为一项“去中心化”的新兴技术一直备受关注。区块链被纳入“新基建”范围以后,这种趋势更加明显。包括广西、湖南、贵州、海南、北京、江苏、河北、广东等多个省市出台了区块链专项发展政策。 如今,临近“十四五”政策制定窗口期,市场预期未来面向“十四五”区块链等新基建领域更多政策出台值得期待。

[0:15ms0-8:124ms