【英文长推】DeFi 黑客频发,如何避免成为下一个受害者?

Chainfeeds 导读:

我们必须使用和攻击者一样的工具,对协议进行红队测试(Red Teaming),持续监控,并对潜在损失设定硬性上限,才能在最糟糕的情况下生存下来。

文章来源:

https://x.com/systematicls/status/2048756004972855667

文章作者:

sysls


观点:

sysls:一旦你识别了不变量,将它们提升为运行时检查。仔细思考哪些不变量实际上是可执行的。这就是 FREI-PI(Function Requirements、Effects、Interactions、Protocol Invariants)模式:在每一个涉及价值的函数末尾,重新验证该函数承诺维护的核心不变量。许多能够通过 CEI(Checks-Effects-Interactions)的攻击(例如闪电贷夹击、预言机辅助清算攻击、跨函数偿付能力抽干),都会在函数末尾的不变量检查中被捕获。状态化模糊测试(stateful fuzzing)会对协议的完整公开接口构建随机调用序列,并在每一步断言不变量。大多数生产环境中的攻击都是多交易的,而状态化模糊测试几乎是唯一能在攻击者之前发现这些路径的可靠方法。使用不变量测试,验证对于模糊测试生成的任何调用序列,某个性质都成立。同时配合形式化验证,它可以证明该性质在所有可达状态中成立。你的核心不变量绝对应该接受这种级别的验证。复杂性是安全的敌人。每一个外部依赖都会扩大攻击面。如果你在设计基础设施,应该把「信任谁」的选择交给用户。如果无法移除依赖,就要多元化它们,避免单点失败毁掉协议。将你的审计范围扩展到模拟这些依赖如何失败,并对其失败情况下的最大损害设置限速。最新的 KelpDAO 攻击就是一个例子:他们继承了 LayerZero 的默认配置 requiredDVNCount=1,而这个配置存在于审计范围之外。最终被攻破的是审计范围之外的链下基础设施。DeFi 中的大多数攻击面其实已经被枚举出来。逐一检查每一个类别,问自己是否适用于你的协议,并实现对应的控制措施。构建红队能力,让你的 AI agent 主动寻找协议中的漏洞 —— 这在当前阶段已经是基础要求。在基于投票的治理中,权力最初集中在团队多签中,并需要时间分散。即便代币分布广泛,委托通常仍集中在少数几个钱包(有时甚至是一个)。一旦这些被攻破,就结束了。部署「守护者钱包(guardian wallets)」,赋予其严格受限的权限:它们只能暂停协议,并且在 ≥4/7 的阈值下,在极端情况下将被攻陷的委托替换为预定义的钱包。守护者永远不能执行治理提案。这样,你就有一个救援层,可以在不推翻治理的情况下恢复系统稳定。当治理成熟且分散后,这一层可以被逐步移除。【原文为英文】

内容来源

https://chainfeeds.substack.com

相关赛道:
来源
免责声明:以上内容仅为作者观点,不代表Followin的任何立场,不构成与Followin相关的任何投资建议。
喜欢
收藏
评论