Visor.fiannce
Visor Finance 是用于流动性挖掘的智能保险库,同时铸造 NFT,借此可以同时在多个协议上进行流动性挖矿。总的来说,Visor算是NFT的一个另类应用,与DeFi深度结合。对于Uniswap v3来说,Visor.finance是一个很好的补充应用。
因为在Uniswap v3中,用户存入资金池后不再得到LP token,取而代之的是一个NFT代币。这使得之前大量集成LP token的DeFi项目无法直接与V3集成。如果没有第三方代理程序来做NFT的拆解和转换,DeFi项目只有自己来做这个事,开发上会带来更多不便,通用性会降低。而Visor的NFT智能托管程序,可以成为一个通用的V3管理代理,所有DeFi项目都可以利用这个NFT金库来集成挖矿。
事情始末
6月19日,星期六。
Visor Finance团队发现合约被进行权限攻击,获取了Hypervisor admin functions的账户管理功能权限。攻击者可以从尚未存入LP头寸的存款中提取资金。300万美金的TVL有大概50万美金的头寸可以被提取。发现了权限攻击之后,团队就启动了紧急资金转移的脚本/方案,成功保住了大部分的资产。
Visor.fianance的团队也很快动用了treasury funds(国库资金)填补了这50万美金。用户的position没有收到丝毫的影响。
权限攻击
这个事件的发生原因其实就是攻击者获取了私钥了,再加上团队并没有为 Hypervisor 的所有管理功能使用多重签名帐户,导致了这个事情的发生。好在团队有一个紧急提款功能,作为需要拯救资金的安全保障。
报告的原话是这样的:
The reason behind this initial design decision was because we thought that it was not practical to have multiple people sign for managing frequent rebalancing on multiple pairs every time a rebalance was needed
或者说,技术团队认为在Hypervisor Managerment如此频繁的rebalancing函数里使用多签是不太切合实际事情,用户体验会很差。
但,现在已经改成多签了。我感觉就是技术团队懒了
最后,Visor团队说,“我们意识到权限管理的重要性,现在和将来只会采用行业标准和最佳实践。 我们认识到这是一个特别复杂的设计空间,因为它同时涉及资金的主动管理和安全。 随着我们主动管理架构的推进,我们打算为这个领域做出贡献。”
个人总结
在传统领域上,应用一般都是在防火墙 or 内网内,代码绝对都是黑盒。研发人员一般不会考虑过分的安全防御。但是在Defi上,协议是开源的,服务器是可以trace的。对于顶级黑客来说,相当于看到猎物裸体在大海里游泳。所以,对于研发人员来说,要对TVL负责,就要考虑一切可能被攻击的可能性。虽然合约一般都有很明确的权限约束,但是一旦被私钥被窃取,那么这些约束也将形同虚设。PS: 私钥安全防御本来就是在传统的网络安全里很重要的一环。
这例子的经验是:
- 重要函数要采取多签。
- 要非常重视传统的网络安全技术,保护好私钥。
参考资料
【1】https://medium.com/visorfinance/visor-beta-incident-report-1b2521b9266