4月23日晚7点,麦子钱包举办了Math Show的第一期,有幸邀请了慢雾科技创始人余弦给我们讲关于「DeFi应用如何抵挡黑客攻击」,主持人是链闻的刘锋,以下是当晚的精彩撰录。
▼▼▼
刘锋:近几天余弦参与处理Lendf.me 被盗资金(近 2500 万美金)的追讨,可以和我们讲讲这几十个小时的经历吗?
余弦:第一步,快速定位威胁情况和攻击细节,这样可以快速给出最正确的漏洞原因,比如这次事件中,本质问题是 Lendf.Me 的核心代码中存在重入攻击漏洞,而这个漏洞又需要结合基于 ERC777 代币的组合才能发生。知道漏洞本质及攻击手法后,在链上是很容易知道攻击者具体盗走多少资产。
第二步,思考如何追回。在4月19日下午,dForce、星火与 imToken 安全团队在线下集结,并与慢雾安全团队远程连线成立“临时安全团队”,开始进行资产追回。因为信息量巨大且杂乱,集中讨论可以快速的信息对称,加快速度。
4月20日,基于黑客在攻击前后留下的痕迹,“临时安全团队”成功确定了准确的黑客画像,并开始与国内外各方资源进行交叉对比,获得突破性线索,离黑客越来越近。4 月 21 日下午,在黄金48小时内,黑客在重重压力下,与 dForce 主动沟通,并开始归还部分资产。继续沟通后,所有资产被成功找回,这是攻击发生后的第三天。这个过程不仅是“临时安全团队”发挥了关键作用,还得到了非常多加密社区朋友直接与间接的帮助。
刘锋:对于这次 Lendf.me 被攻击事件,大家应该吸取什么教训?
余弦:任何新事物在进化过程中都会有安全风险,这是进化法则,越早期这种风险越大,最终要么死亡,要么就会趋于某种比较稳定的平衡。
基于这种心理准备,我们来看 DeFi,有几个比较重要的风险:技术安全风险、业务安全风险、合规安全风险,我们简单展开(以以太坊为例):
1. 技术安全
首先看公链本身是否久经考验,足够安全,以太坊基本满足这点;然后看智能合约的设计是否足够安全,Solidity 并不太满足;再看相关的标准(如 ERC20, 223, 721, 777 等等)实现是否足够安全,这里最大的问题在于很多时候一个“特性”会变成一种“缺陷”;再看基于标准的成熟框架是否安全,如 OpenZeppelin 就很优秀;最后看项目方开发出来的是否真的严格安全实践,这个就非常不好说了,很明显,开发的质量是参差不齐的。
2. 业务安全
业务决定于 DeFi 的设计,比如抵押借贷、闪贷、交易等等。业务需要特别考虑的是安全风控,比如暴跌暴涨怎么办?突然出现的大额转币如何处理?如何解决第三方安全风险(如:接入第三方代币、和第三方联动等)?
3. 合规安全
如果是一个灰色或黑色边界的 DeFi,一不小心被一些国家的执法机构打掉或自己跑路了,怎么办?
另外特别补充一些和用户角度有关的判断:
1. 项目方内部有实力不错的安全团队或有丰富安全经验的核心人物把关
2. 项目方近半年内被第三方专业安全机构安全审计并公开安全审计结果
3. 项目方有长期持续紧密合作的第三方专业安全机构
4. 项目方核心成员对待安全的态度坦然开放,勇于认错并把安全放在第一位
5. 项目方对安全工作充满敬畏与尊重
基于上面这5点可以延伸出一些事实,比如:口碑、真实用户数、数据透明度、安全透明度等等。
刘锋:大家愿意去用 DeFi 产品,有很大原因是担忧中心化金融服务平台的安全性问题,希望通过 DeFi 讨个平安。但是今年一连串 DeFi 平台和产品被攻击,这让人对 DeFi 反而不信任了,我觉得有点遗憾,你怎么看?
余弦:我的看法不一样,大家来看看历史。
具体细节这里看:https://hacked.slowmist.io/
大家会看到中心化、去中心化都有非常惨重的历史案例,但其实不必因此而打击信心,DeFi 一定有自己的定位,但 DeFi 也别想着一统天下,同样的话也适合 CeFi,未来应该会看到更多 DeFi + CeFi 的混合体出现。而且,DeFi 其实并不一定需要完全去中心,这是我的个人看法。
我是黑客,这些在我眼里都没有绝对的安全,都有许多薄弱点,但是黑客不都是坏的,我们更希望是往安全的方向去进化,但我们在对抗时,必须有足够的攻击思维。
刘锋:观众提问,对 DeFi合约审计的作用有多大?能保证足够安全么?是否经过了审计的defi项目就值得信任呢?
余弦:DeFi 安全审计是安全策略的第二层,第一层是 DeFi 开发安全,这是项目方的事。DeFi 安全审计在第二层可以规避不少问题,将安全防御水平提高一个档次。但之后还有第三层,也就是更新迭代持续运营的安全,这个一不小心就麻烦了。只能说,经过安全审计的项目,可以让人更放心,但也一定都有黑天鹅——来自未来的攻击。所以,如果安全审计已经超过半年,那就得注意了。
刘锋:观众提问,大多数知名 DeFi 协议都是以某种形式被中心化控制的,虽然这种方式在安全性上有些好处,怎样才能避免管理员滥用自己的特权,或者说减少相关风险?
余弦:这个是人性的问题,有的可以技术解决,有的解决不了。技术上通过类似DAO的方式来控制,但这又会产生新的问题,DAO的效率太低就麻烦了。但至少有一点项目方需要做的是透明,资产透明,权限透明,决策透明等等,让社区看得见。
刘锋:观众提问,有没有一种方案,在用户和合约之间建中间件,这个中间件来做安全处理?
余弦:这个不知道,需要试验,但我最近有一个想法,大家可以看看:https://firewallx.io/
这个防火墙是构建在EOS主网上的,核心是智能合约实现。以太坊上,ERC777这种偏复杂的也许也可以这样做,但还是需要试验。
刘锋:观众提问,代码的安全问题几乎不可避免,DeFi是不是需要辅以更成熟的风控机制,来避免大的损失?因为DeFi的魅力是去中心化,是智能合约,但是受攻击后的修复和自己追讨,看起来完全是人和人之间的博弈了。
余弦:追回是个很难的事,但比较有意思的是,今年开始可能会提高成功率,原因是各国司法、执法流程上开始支持加密货币了。
非常感谢参与今晚 Math Show #001 活动的“show”友们,也感谢慢雾的创始人余弦为我们带来的关于DeFi的安全知识饕餮盛宴,为区块链生态安全贡献自己的力量。祝慢雾越来越好!