区块链知识-维安链如何在黑客横行的时代保护你的钱包?小白的必修课

2018年7月8日, Bancor (BNT)的智能合约爆出了安全漏洞, 导致价值2350万美元资金被窃取。

Bancor团队官方声称, 被窃取的原因是一个用来升级智能合约的管理员账号被盗。从严格意义上讲, 目前还没有一个百分百保证账户私钥安全的方法。面临这类频发的区块链安全事故,我们真的束手无策吗?据悉,在事故发生前,Bancor代码的管理员权限设计已被CertiK平台标记为高风险预警,此次Bancor的被盗损失是可以通过CertiK的深度规范技术规避风险的。

发生了什么?

这个资金盗取过程,简而言之, Bancor的管理员账户被窃取, 导致了暂存在Bancor合约里价值千万的虚拟货币被提取到了一个私人地址。

具体而言, 事情发生的经过是这样的:

1.   (https://etherscan.io/address/0x33ed22f4b6b05f8a5faac4701550d52286bd735a), Fake_Phishing1701, 在合约升级时拿到了管理员权限。

2.   然后Fake_Phising1701在这个交易中(https://etherscan.io/tx/0x43a964e635f31b0cc329db6f980f09096054e4e3a627c85654852fd026b92ba0)将22,000个以太币从Bancor团队开发的TokenHolder合约中转到了黑客的个人钱包。

在Bancor的智能合约设计中, TokenHolder用来暂存用户用来去中心化交易的资金. 然而从代码中我们可以看到, Bancor团队的管理员可以随意在任何时间将所有用户暂存的全部资金转移到任意地址。

如此完全集中的权限可以算一个严重的设计缺陷。基本上Bancor团队拥有类似神的特权, 团队管理员可以在任意时间转移用户暂存的所有资金。而正是这样严重的设计缺陷, 导致了价值2350万美元的以太币被黑客利用,达到资金窃取目的。

Philosafe如何预警这样的风险?
为了尽量规避管理员权利过于集中的风险, Philosafe的深度规范技术提供了针对性的智能标记:OWNER_ONLY_TRANSFER_WARNING, 并会自动标记到所有只有管理员权限才能调用的函数上, 对开发者发出管理员权限设计的预警。

Philosafe的验证引擎会对开发人员提出权限警告。 如果Bancor团队利用Philosafe平台来验证合约的代码, 这样的警告就可以提前提醒开发团队重新审视和设计管理员的权限, 从而规避出现超级管理员账户被盗而导致巨额损失的风险。

Philosafe团队致力于利用形式化验证保证区块链生态系统安全,团队的创始人来自于欧洲知名区块的从业者。