SharkTeam发布2021上半年智能合约安全态势感知报告
SharkTeam介绍
SharkTeam专注于智能合约安全,由拥有多年一线网络安全实战经验的团队成员组成,精通区块链和智能合约底层原理,具备完善的区块链漏洞挖掘和智能合约审计能力,可提供全面的威胁建模、合约审计、应急响应服务,已帮助多个知名区块链项目发现并修复安全漏洞,致力于保护用户数字资产安全与隐私安全。
背景介绍
2021年上半年,DeFi领域安全事件不断,风险不容忽视。已公布的数据,安全事件多达52起,已公布的损失金额超过8亿美元,如再加上尚未公布具体损失金额的事件,预计损失总金额在10亿美元左右。相比去年,2020年全年DeFi安全攻击事件60起,损失2.5亿美元,2021年仅仅上半年,攻击事件总数已逼近去年整年,损失金额已是去年3倍多。
2021年上半年,DeFi领域一改以太坊一家独大的局面,BSC、Heco、Polygon相继爆发。各公链平台也呈现出不同的安全态势。随着区块链生态的不断发展,各种DeFi项目如雨后春笋般不断涌入,用户覆盖程度越来越广,资金量也越来越多。不管是项目还是平台,都应该对产品和用户的资产负责。作为项目方,应该对项目安全和用户资产安全负责,对风险有足够的敬畏心,对项目代码进行多轮审计检查,同时设立应急响应机制;作为平台,应提高项目准入门槛,做好把关工作。共同为建设安全的区块链发展生态而努力。
报告内容概览
以太坊:生态安全围城已筑,攻击明显减少
随着新兴公链生态的兴起,再加之以太坊的攻击门槛提升,黑客目标转向攻击更为轻易的公链生态。以太坊内部安全意识与项目防护实力增强,外部更多新兴生态吸引目光,两者相结合之下,2021年上半年以太坊生态的安全攻击明显减少。
BSC:安全事件高发,态势不容乐观
自从5月中旬开始,BSC生态上项目遭到频繁攻击,甚至很多是相同的攻击手法,据统计,就单一个5月而言,BSC链上攻击损失金额超2.6亿美元,该数字占据整个上半年DeFi总损失额近30%的比例。
Ploygon:多个项目突发归零,释放危险信号
6月28日,Polygon上算法稳定币项目SafeDollar遭受黑客攻击,攻击者利用合约铸币漏洞增发了83万亿枚SDO稳定币,又提走了池内约25万美元代币,SDO在当天上午12点25分左右从1.07美元瞬间砸至归零。SafeDollar项目归零之前,在6月Polygon还出现过两次链上项目归零的事件。以Ploygon为代表的新兴公链释放危险信号。
此次2021年上半年态势感知报告,SharkTeam从市场上选取了主流的100个区块链项目,覆盖ETH、BSC、Heco等公链平台(项目清单详见附录1),并对覆盖高级语言层、虚拟机层、区块链层、业务层的88项常见安全问题进行了自动化安全扫描(检查项清单详见附录2)。共计发现安全问题12907项,报告将从漏洞位置分布、危害等级分布两个角度进行相关数据分析。
风险位置分布
智能合约的安全威胁主要来自于安全漏洞,而基于智能合约的运行环境、生命周期和程序特性,智能合约的安全漏洞主要来自于高级语言、虚拟机、区块链和业务逻辑四个层面。
此次扫描中,发现的安全问题重点集中在高级语言层,共发现8664项问题。具体分布如下:
高级语言层
高级语言是开发者进行智能合约编写的工具。以太坊智能合约开发有多种可以使用的高级语言,其中最为常用的是 Solidity语言。高级语言层面为智能合约带来的安全威胁主要有两个原因,一个是高级语言自身设计的缺陷所引入的安全问题,另一个则是开发者在编写高级语言过程中因为代码质量而引入的安全漏洞。此次态势感知数据显示,漏洞主要集中在状态变量写入不受限制、命名不规范、Solidity版本过时、不稳定的Solidity版本,其中状态变量写入不受限制漏洞数量最多,有1364个。
虚拟机层
虚拟机是编译后的智能合约字节码执行器。以太坊的虚拟机及其字节码的设计规范被定义在以太坊技术黄皮书中,是各种以太坊客户端实现以太坊虚拟机的标准指导手册。虚拟机层面的安全威胁主要有两个方面,一是以太坊黄皮书设计智能合约字节码规范和运行机制本身的一些缺陷,二是不同的以太坊客户端在实现虚拟机的过程中,因没有严格按照手册实现而引入的问题。此次态势感知数据显示,漏洞主要集中为重入漏洞,其中重入-乱序引起最多,有463个。
区块链层
智能合约依靠区块链来提供去中心化、不可篡改和信任等特性,区块链平台对智能合约的运行也有很多影响。区块链对于智能合约来说,虽然是其安全可信任的根基,但区块链本身的很多特性也会给智能合约带来安全风险。此次态势感知数据显示,区块链层的漏洞主要集中在随机性不足和时间戳依赖,其中随机性不足最多,有1298个。
业务逻辑层
区块链项目的业务逻辑目前越来越复杂,也面临越来越多的业务安全问题,以DeFi为例,如资产冻结、缺少external声明等问题并非由单纯的代码编写错误导致,更多与业务逻辑设计紧密相关,因此在项目上线前要进行严格的业务流程测试,仔细分析设计中的薄弱环节,防止业务问题的发生。此次态势感知数据显示,业务漏洞主要集中在可以声明为external的public函数,有1565个。
威胁等级分布
漏洞本质是非故意、非预期的安全缺陷或风险,结合国家区块链漏洞库区块链安全漏洞库区块链安全漏洞定级细则[2],并结合业务特点及应用场景将威胁等级分为高、中、低、消息四个等级。主要依据漏洞的危害程度、利用难度,辅以其他因素综合判定。危害程度主要根据机密性影响、完整性影响、可用性影响三个维度定义;利用难度主要根据攻击向量、攻击复杂度、认证三个维度定义。
此次态势感知数据显示,智能合约安全问题主要集中在消息级,发现7658项漏洞。具体如下:
高危漏洞
高危漏洞一般指中低利用难度且对智能合约的机密性、完整性、可用性或其经济模型产生恶劣影响,可对合约业务系统造成大量经济损失、局部功能不可用、大范围数据错乱、权限管理失控、关键功能失效、公信力下降,或间接影响与之关联的其他智能合约正确运行并造成大量损失等严重且多数不可逆的危害。此次态势感知数据显示,高危漏洞主要集中于随机性不足、签名重放,其中随机性不足最多,有1298个。
中危漏洞
中危漏洞主要分布于危险的等式、重入-无资产、未使用返回值,其中危险的等式最多,有326个。
低危漏洞
低危漏洞主要分布于重入-乱序引起、缺少零地址校验。其中重入-乱序引起最多,有468个。
消息漏洞
消息漏洞是中低危害且付出成本高、利用条件难达成的漏洞,此次态势感知数据显示,目前主要分布于可以声明为external的public函数、Solidity版本过时、不稳定的Solidity版本,其中可以声明为external的public函数最多,有1641个。
业务风险分析
本次抽样的100个项目所属类型包含:收益聚合、去中心化交易所、借贷、NFT、衍生品、稳定币和其他。报告从业务介绍、风险分析和典型案例三个方面对不同业务中可能存在的安全风险和可采取的防范措施进行了系统的分析。
原理分析
未知攻焉知防,结合100个项目的综合审计结果及上半年发生的数十起典型安全事件,从重入漏洞、权限漏洞、密钥泄露、闪电贷攻击、业务漏洞5个方面阐述攻击原理并对其进行分析,并提出安全修复建议。(该报告仅供技术交流,请勿采用以下方法进行操作,否则后果自负)。
安全建议
智能合约是部署和运行在区块链上的程序。借助区块链,智能合约可以实现各类去中心化应用(DApp)。与传统程序一样,智能合约中存在漏洞也在所难免。然而不同的是,智能合约运行在更为开放的环境中,并天生带有金融属性,且升级成本极高。这意味着其对安全的要求更高,任何一点瑕疵都可能带来无法预估的后果。构建智能合约安全体系,本报告从技术安全、业务安全、安全服务等多个方面对如何保障智能合约安全提出可落地建议。
完整报告下载:
链接: https://pan.baidu.com/s/1Ky9_zm6vXA1uWSPnUdwdHQ 提取码: st76
==
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
Bitcoin Price Consolidates Below Resistance, Are Dips Still Supported?
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
XRP, Solana, Cardano, Shiba Inu Making Up for Lost Time as Big Whale Transaction Spikes Pop Up
Justin Sun suspected to have purchased $160m in Ethereum
Justin Sun suspected to have purchased $160m in Ethereum