慢雾:《Solana 智能合约安全最佳实践》全面更新
来源:慢雾科技
原文链接:https://mp.weixin.qq.com/s/hIaAzTRMlsKshdPaByYhrw
区块链技术的发展日新月异,智能合约作为去中心化应用的核心组成部分,其安全性依然是各大公链生态发展的基石。Solana 作为近年来脱颖而出的高性能公链,其快速的交易处理能力与创新的技术架构为生态带来了巨大潜力,但也伴随着一系列新的安全挑战,尤其是在账户管理、合约执行和状态更新等方面,给恶意攻击者带来了更多的攻击点。
自 2021 年《Solana 智能合约安全最佳实践》发布以来,获得了社区的积极反馈。许多开发者、安全研究员对该手册表示认可和推荐:
随着 Solana 生态的不断发展与新型漏洞的出现,我们对原有的实践进行了更新和补充,旨在为开发者提供更为全面的安全防护指引。
更新要点概览
此次更新的《Solana 智能合约安全最佳实践》基于慢雾(SlowMist) 最新的审计经验,详细总结了 Solana 智能合约中常见的安全问题和解决方案,涵盖了漏洞描述、利用场景、修复建议等多个维度,旨在为开发者提供一站式的安全参考与操作指南。
以下为《Solana 智能合约安全最佳实践》最新版的目录:
-
Solana 智能合约常见问题
-
数值溢出
-
算术精度误差
-
未对返回错误进行处理
-
缺少对初始化函数的权限控制
-
Account Owner 未检查
-
PDA 账户检查
-
未对账户是否签名进行校验
-
缺少对 system account 的检查
-
缺少对 lamports 的检查
-
Pyth 预言机检查
-
及时状态重置
-
利用 Anchor 框架的攻击
-
签名者授权
-
账户数据匹配
-
所有者检查
-
类型伪装 cosplay
-
初始化检查
-
任意 CPI
-
重复的可变账户
-
碰撞种子规范化
-
PDA 共享
-
关闭账户
-
Sysvar 地址检查
-
账户重新加载
-
案例分析
-
Sysvar 系统账号未检查
-
漏洞示例
-
防御代码
-
使用 PDA 账户但是未对调用执行者账户与收益者账户进行检查
-
漏洞示例
-
防御代码
该手册将持续更新,欢迎开发者、审计人员与安全专家前往 GitHub 查阅 (https://github.com/slowmist/solana-smart-contract-security-best-practices),共同提升 Solana 生态的安全性。
安全贯穿始终
根据慢雾(SlowMist) 区块链被黑事件档案库 (hacked.slowmist.io) 的统计,截至目前,全球范围内发生了 1,875 起区块链安全事件,导致损失总额超过 358 亿美元,其中有 305 起事件与智能合约漏洞直接相关。如果合约上线前缺乏系统化的安全检查,极有可能暴露于高风险中。
慢雾(SlowMist) 多年的审计经验表明,智能合约的安全保障不应仅依赖一次性审计或漏洞修复,更应建立在持续审计和动态防护的体系上。因为随着时间的推移,安全环境可能会发生变化,新的漏洞与攻击方式也会不断出现。因此,保障智能合约安全需要从以下几个方面着手:
-
安全预算的合理投入:在项目生命周期中确保安全预算的持续投入;
-
持续审计与检测:定期进行智能合约的安全审计与漏洞修复;
-
高层管理责任制:将安全责任落实到项目高层,确保审计工作得到足够重视与支持。
结语
慢雾安全团队在智能合约安全审计领域里深耕多年,已全面支持 Solana 生态的智能合约安全审计服务,涵盖 Solana 上多个核心项目,如 Particle Network、UniPassID、Crema Finance、Solyard.Finance、Larix 等。此外,慢雾(SlowMist) 自研的安全系统 Badwhale 也已支持 Solana 生态中的假充值检测与风控联动,帮助平台防范链上欺诈和攻击。如有审计需求,欢迎与我们联系!
(来源:比推)