3

SharkTeam | 2021年第三季度智能合约安全态势感知报告

 2 years ago
source link: https://www.tuoniaox.com/news/p-517615.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

SharkTeam | 2021年第三季度智能合约安全态势感知报告

SharkTeam 2021-10-23 10:31
article_qmarks.svg 摘要:

SharkTeam发布2021年第三季度智能合约安全态势感知报告

SharkTeam介绍

SharkTeam专注于智能合约安全,由拥有多年一线网络安全实战经验的团队成员组成,精通区块链和智能合约底层原理,具备完善的区块链漏洞挖掘和智能合约审计能力,可提供全面的威胁建模、合约审计、应急响应服务,已帮助多个知名区块链项目发现并修复安全漏洞,致力于保护用户数字资产安全与隐私安全。

背景介绍

2021年第三季度,DeFi领域安全事件依然不断,风险不容忽视。已公布的数据,安全事件三十多起,预计损失总金额高大在数十亿美元。第三季度区块链行业开启游戏金融化模式,“Paly to Earn”浮出水面,NFT和GameFi席卷而来。NFT和GameFi的出现,不只改变了区块链行业,同时也激活了NFT游戏,GameFi的赛道已初步形成。GameFi将颠覆传统游戏行业的认知,虽然目前还处于早期阶段,还有很多关于技术、产品开发等内容需要落地完善。随着GameFi市场的繁荣发展,风险也随之而来,SharkTeam在近期的工作中发现,针对GameFi的黑客攻击明显增多,新的攻击模式已然产生,需要我们项目方和投资者重视,防患于未然,避免产生大的资金损失而后悔莫及。

报告内容概览

风险位置分布

智能合约的安全威胁主要来自于安全漏洞,而基于智能合约的运行环境、生命周期和程序特性,智能合约的安全漏洞主要来自于高级语言、虚拟机、区块链和业务逻辑四个层面。

此次扫描中,发现的安全问题重点集中在高级语言层,共发现5368项问题。具体分布如下:

image.png

高级语言层

高级语言是开发者进行智能合约编写的工具。以太坊智能合约开发有多种可以使用的高级语言,其中最为常用的是 Solidity语言。高级语言层面为智能合约带来的安全威胁主要有两个原因,一个是高级语言自身设计的缺陷所引入的安全问题,另一个则是开发者在编写高级语言过程中因为代码质量而引入的安全漏洞。此次态势感知数据显示,漏洞主要集中在状态变量写入不受限制、不稳定的Solidity版本、Solidity版本过时,其中状态变量写入不受限制漏洞数量最多,有981个。

image.png

虚拟机是编译后的智能合约字节码执行器。以太坊的虚拟机及其字节码的设计规范被定义在以太坊技术黄皮书中,是各种以太坊客户端实现以太坊虚拟机的标准指导手册。虚拟机层面的安全威胁主要有两个方面,一是以太坊黄皮书设计智能合约字节码规范和运行机制本身的一些缺陷,二是不同的以太坊客户端在实现虚拟机的过程中,因没有严格按照手册实现而引入的问题。此次态势感知数据显示,漏洞主要集中为重入-乱序引起,有235个。

image.png

智能合约依靠区块链来提供去中心化、不可篡改和信任等特性,区块链平台对智能合约的运行也有很多影响。区块链对于智能合约来说,虽然是其安全可信任的根基,但区块链本身的很多特性也会给智能合约带来安全风险。此次态势感知数据显示,区块链层的漏洞主要集中在随机性不足和时间戳依赖,其中随机性不足最多,有210个。

image.png

业务逻辑层

区块链项目的业务逻辑目前越来越复杂,也面临越来越多的业务安全问题,以DeFi为例,如资产冻结、链上私有数据未加密、缺少external声明等问题并非由单纯的代码编写错误导致,更多与业务逻辑设计紧密相关,因此在项目上线前要进行严格的业务流程测试,仔细分析设计中的薄弱环节,防止业务问题的发生。此次态势感知数据显示,业务漏洞主要集中在可以声明为external的public函数,有909个。

image.png

威胁等级分布

漏洞本质是非故意、非预期的安全缺陷或风险,结合国家区块链漏洞库区块链安全漏洞库区块链安全漏洞定级细则[2],并结合业务特点及应用场景将威胁等级分为高、中、低、消息四个等级。主要依据漏洞的危害程度、利用难度,辅以其他因素综合判定。危害程度主要根据机密性影响、完整性影响、可用性影响三个维度定义;利用难度主要根据攻击向量、攻击复杂度、认证三个维度定义。

此次态势感知数据显示,智能合约安全问题主要集中在消息级,发现5130项漏洞。具体如下: 

image.png

高危漏洞一般指中低利用难度且对智能合约的机密性、完整性、可用性或其经济模型产生恶劣影响,可对合约业务系统造成大量经济损失、局部功能不可用、大范围数据错乱、权限管理失控、关键功能失效、公信力下降,或间接影响与之关联的其他智能合约正确运行并造成大量损失等严重且多数不可逆的危害。此次态势感知数据显示,高危漏洞主要集中于签名重放、具有多个可变长度参数的哈希冲突,其中签名重放最多,有301个。

image.png

中危漏洞主要分布于重入-无资产、未使用返回值,其中重入-无资产最多,有125。

image.png

低危漏洞主要分布于重入-乱序引起、缺少零地址校验、循环调用。其中重入-乱序引起最多,有90个。

image.png

消息漏洞是中低危害且付出成本高、利用条件难达成的漏洞,此次态势感知数据显示,目前主要分布于状态变量写入不受限制、可以声明为external的public函数、不稳定的Solidity版本,其中状态变量写入不受限制最多,有981个。

image.png

业务风险分析

本次抽样的53个项目所属类型包含:收益聚合、去中心化交易所、借贷、稳定币和GameFi。报告从业务介绍、风险分析和典型案例三个方面对不同业务中可能存在的安全风险和可采取的防范措施进行了系统的分析。

GameFi的安全风险和防范

随着GameFi市场的繁荣发展,风险也随之而来,SharkTeam在近期的工作中发现,针对GameFi的黑客攻击明显增多,新的攻击模式已然产生,需要我们项目方和投资者重视,防患于未然,避免产生大的资金损失而后悔莫及。

目前针对GameFi市场智能合约的攻击类型主要包含:回退攻击、三明治攻击和双花攻击、伪随机数。

未知攻焉知防,结合53个项目的综合审计结果及上半年发生的数十起典型安全事件,从重入漏洞、权限漏洞、密钥泄露、闪电贷攻击、业务漏洞5个方面阐述攻击原理并对其进行分析,并提出安全修复建议。(该报告仅供技术交流,请勿采用以下方法进行操作,否则后果自负)。

安全建议

智能合约是部署和运行在区块链上的程序。借助区块链,智能合约可以实现各类去中心化应用(DApp)。与传统程序一样,智能合约中存在漏洞也在所难免。然而不同的是,智能合约运行在更为开放的环境中,并天生带有金融属性,且升级成本极高。这意味着其对安全的要求更高,任何一点瑕疵都可能带来无法预估的后果。构建智能合约安全体系,本报告从技术安全、业务安全、安全服务等多个方面对如何保障智能合约安全提出可落地建议。

完整报告下载:

链接: https://pan.baidu.com/s/1n6rPJW8PduFlHEaDXVUHLA

提取码: 9ydn

和2万人一起加入鸵鸟社群

添加QQ群:645991580

添加TG群:鸵鸟中文社区 https://t.me/tuoniaox

声明: 鸵鸟区块链所有发布内容均为原创或授权发布,如需转载,请务必注明文章作者以及来源:鸵鸟区块链(微信公众号:MyTuoniao),任何不尊重原创的行为鸵鸟区块链都将进行责任追究!鸵鸟区块链报道和发布内容,不构成任何投资建议。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK