慢雾安全团队发布账户抽象钱包安全审计指南

近日,慢雾安全团队针对基于EIP4337标准的账户抽象钱包,发布了安全审计检查项及相应的审计指南。本文旨在为审计人员提供相关参考,以保障账户抽象钱包的安全。

一、EIP4337架构与钱包交易执行流程

EIP4337标准中,账户抽象钱包的交易执行流程如下:

  1. 用户通过EOA签署UserOperation类型的数据,并通过RPC提交到一个单独的Alt Mempools。
  2. Bundler从Alt Mempools中提取UserOp,进行本地模拟,模拟失败的UserOp将被丢弃。
  3. Bundler调用EntryPoint合约执行UserOp。
  4. EntryPoint经过一系列验证后调用用户的AA钱包,执行用户的calldata。
  5. 用户向Bundler支付交易上链执行的手续费,或指定Paymaster进行代付。

二、安全审计检查项

慢雾安全团队列出了以下账户抽象钱包的安全审计检查项:

  1. 兼容性检查:检查合约编译使用的Solidity版本,或检查编译后的文件是否包含PUSH0字节码,以确保兼容所有EVM兼容链。
  2. 接口规范检查:检查钱包和Paymaster合约是否实现了EIP4337标准规定的核心接口,其返回值validationData必须包含三个值:authorizer、validUntil和validAfter。
  3. 可信调用者检查:检查钱包或代付人实现的函数是否只允许可信的EntryPoint进行调用,以避免钱包被未授权使用。
  4. 手续费支付功能检查:检查钱包中的validateUserOp函数是否实现了向EntryPoint合约转账missingAccountFunds数额的原生代币的逻辑。
  5. 钱包创建方式检查:检查钱包创建是否使用了CREATE2创建,以避免创建地址受到创建顺序的干扰。
  6. 重复创建钱包返回值检查:检查对于已经创建的钱包,如果传入相同的数据,是否返回同一地址。
  7. 钱包创建时是否可被接管检查:检查钱包创建前,是否可被其他地址接管。

三、总结

慢雾安全团队的安全审计指南为审计人员提供了针对EIP4337标准账户抽象钱包的详细检查项,有助于提高账户抽象钱包的安全性。建议审计人员在审计过程中严格按照指南进行检查,以确保钱包的安全性和可靠性。


>>> Read more <<<

Views: 0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注