慢雾安全团队发布账户抽象钱包安全审计指南
近日,慢雾安全团队针对基于EIP4337标准的账户抽象钱包,发布了安全审计检查项及相应的审计指南。本文旨在为审计人员提供相关参考,以保障账户抽象钱包的安全。
一、EIP4337架构与钱包交易执行流程
EIP4337标准中,账户抽象钱包的交易执行流程如下:
- 用户通过EOA签署
UserOperation
类型的数据,并通过RPC提交到一个单独的Alt Mempools。 - Bundler从Alt Mempools中提取UserOp,进行本地模拟,模拟失败的UserOp将被丢弃。
- Bundler调用EntryPoint合约执行UserOp。
- EntryPoint经过一系列验证后调用用户的AA钱包,执行用户的calldata。
- 用户向Bundler支付交易上链执行的手续费,或指定Paymaster进行代付。
二、安全审计检查项
慢雾安全团队列出了以下账户抽象钱包的安全审计检查项:
- 兼容性检查:检查合约编译使用的Solidity版本,或检查编译后的文件是否包含
PUSH0
字节码,以确保兼容所有EVM兼容链。 - 接口规范检查:检查钱包和Paymaster合约是否实现了EIP4337标准规定的核心接口,其返回值
validationData
必须包含三个值:authorizer、validUntil和validAfter。 - 可信调用者检查:检查钱包或代付人实现的函数是否只允许可信的EntryPoint进行调用,以避免钱包被未授权使用。
- 手续费支付功能检查:检查钱包中的validateUserOp函数是否实现了向EntryPoint合约转账
missingAccountFunds
数额的原生代币的逻辑。 - 钱包创建方式检查:检查钱包创建是否使用了
CREATE2
创建,以避免创建地址受到创建顺序的干扰。 - 重复创建钱包返回值检查:检查对于已经创建的钱包,如果传入相同的数据,是否返回同一地址。
- 钱包创建时是否可被接管检查:检查钱包创建前,是否可被其他地址接管。
三、总结
慢雾安全团队的安全审计指南为审计人员提供了针对EIP4337标准账户抽象钱包的详细检查项,有助于提高账户抽象钱包的安全性。建议审计人员在审计过程中严格按照指南进行检查,以确保钱包的安全性和可靠性。
Views: 0