区块链技术博客
www.b2bchain.cn

SharkTeam发布币安智能链智能合约安全态势感知报告

第19862篇文章SharkTeam发布币安智能链智能合约安全态势感知报告,说明解释了SharkTeam发布币安智能链智能合约安全态势感知报告,是很好的区块链入门技术文章网站,提供了相应的代码的进行解释,并且把原理说的很清晰

SharkTeam介绍

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

币安智能链(BSC)

币安智能链快速发展,已成为以太坊之外,建设 DeFi 生态的最强交易平台公链,自成生态。目前,已有足够多的协议、应用基于 BSC 构建,数量增长迅猛,而且广泛覆盖各个赛道和领域。

态势感知报告内容概览

但伴随着区块链和智能合约产业的不断发展,随之而来的安全事件也不断爆发。相比于普通的程序而言,智能合约更容易成为攻击者的目标。一方面,智能合约通常用于管理区块链平台上的数字资产,对智能合约的攻击可能会为攻击者带来更高的经济价值;而更为重要的是,引入智能合约的初衷在于借助区块链的特性来保证合约的可信赖,而智能合约漏洞会使得合约出现非预期的行为,从而可能使其变为一份“不平等合约”,而失去了智能合约最根本的意义。智能合约在诞生至今,攻击事件层出不穷。近期,仅币安区块链(BSC)就发生了Belt Finance闪电贷攻击、BurgerSwap闪电贷攻击、AutoShark闪电贷攻击等多起攻击事件,不仅给用户造成了巨大的经济损失,同时也使得智能合约的公平、可信赖属性受到挑战。一次又一次的攻击事件表明,智能合约的安全形势已十分严峻,对智能合约的相关安全漏洞开展研究并保障其安全已十分迫切。

SharkTeam从币安智能链(BSC)上选取了主流的48个区块链项目,并对覆盖高级语言层、虚拟机层、区块链层、业务层的86项常见安全问题进行了自动化安全扫描。共计发现安全问题5372项。《币安智能链智能合约安全态势感知报告》(以下简称为“报告”)从风险位置分布、危害等级分布和项目类型三个角度进行相关数据分析。

风险位置分布

智能合约的安全漏洞主要来自于高级语言、虚拟机、区块链和业务逻辑四个层面。

报告数据显示,目前智能合约安全问题重点集中在高级语言层,共发现4095项问题。具体分布如下:

SharkTeam发布币安智能链智能合约安全态势感知报告

高级语言层

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

SharkTeam发布币安智能链智能合约安全态势感知报告

虚拟机层

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

SharkTeam发布币安智能链智能合约安全态势感知报告

区块链层

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

SharkTeam发布币安智能链智能合约安全态势感知报告

业务逻辑层

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

SharkTeam发布币安智能链智能合约安全态势感知报告

威胁等级分布

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

报告数据显示,智能合约安全问题主要集中在消息级,发现2503项漏洞。具体分布如下:

SharkTeam发布币安智能链智能合约安全态势感知报告

高危漏洞

报告对每个威胁等级的漏洞都进行了详细的分析,以“高危”漏洞为例:高危漏洞一般指中低利用难度且对智能合约的机密性、完整性、可用性或其经济模型产生恶劣影响,可对合约业务系统造成大量经济损失、局部功能不可用、大范围数据错乱、权限管理失控、关键功能失效、公信力下降,或间接影响与之关联的其他智能合约正确运行并造成大量损失等严重且多数不可逆的危害。此次态势感知数据显示,高危漏洞主要集中于状态变量写入不受限制、整数溢出、控制委托调用、缺少签名重放攻击的保护,其中状态变量写入不受限制最多,有1061个。

SharkTeam发布币安智能链智能合约安全态势感知报告

项目类型分布

在币安区块链(BSC)生态中,本次抽样的48个项目所属类型包含:衍生品交易、借贷、收益聚合、交易所、NFT、算法稳定币、流动性挖矿、钱包、其他。

报告数据显示,目前智能合约安全主要集中在借贷项目中,发现2620项漏洞。具体如下:

SharkTeam发布币安智能链智能合约安全态势感知报告

攻击原理分析

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

重入漏洞

币安智能链(BSC)允许一个合约采用外部调用的方式调用另外一个合约中的函数。如果合约在本该属于原子性事务的“修改storage变量并转账”的操作中, 采用了先转账再修改storage变量的顺序,而转账的目标是一个带有恶意fallback函数的合约,该恶意fallback函数会调用转账的函数,因为合约是先转账后修改storage变量,因此恶意合约通过恶意的fallback函数对受害合约发起递归调用,从而破坏操作的原子性,绕过检查以重复获得转账收益。

重入漏洞一般发生在外部调用以及“先转账后修改storage变量”的情况下,因此转账的时候,为了避免重入,建议使用“检查-生效-交互”(Checks-Effects-Interactions)模式,先检查状态变量是否符合转账条件,然后修改状态变量,最后进行在通过外部调用进行转账,即完成交互。另外,也可以增加重入锁来限制函数的调用,或者,在编写智能合约时尽量避免外部合约的调用,这样也可以有效地降低发生重入的风险。

权限漏洞

一方面,合约中的变量以及函数需要声明一定的权限,包括private、public、internal、external等,如果权限声明不当,则会使得合约存在权限漏洞。

另外,一些特殊的函数,比如初始化函数、修改某些状态变量的函数等,需要通过require或者modifier声明其调用的权限,若权限配置不合理,也会使得合约存在权限漏洞。黑客可能会利用权限漏洞发起攻击,造成大量的经济损失。

密钥泄露

区块链账户地址属于匿名账户,其账户的安全性完全依赖于账户对应的私钥的安全性。持有账户的私钥,相当于拥有对账户以及账户资产的绝对控制权。

智能合约中的一些特殊账户,其安全性对整个合约甚至整个项目有着极大的影响,例如owner账户、铸币账户,掌握了其私钥,就可以利用这些账户对合约进行某些不合法的操作。若拥有了owner账户的私钥,则可能利用该owner账户直接调用owner地址的验证,从而对合约进行重新初始化、随意修改状态变量等非法操作;若拥有的铸币账户的私钥,则可以利用该铸币账户无限制的铸币,然后盗取大量数字资产,从而引起账户的重大的损失。Roll被攻击就是因为用户账户的私钥被黑客盗取引起的大量资金被盗的典型安全事件。

闪电贷攻击

DeFi项目的业务逻辑设计复杂,利用闪电贷这种新型产品进行攻击的DeFi事件在过去的一年里层出不穷。这些安全问题的深层次原因在于,在设计业务逻辑时,未考虑到某些关键性因素,如:弹性供应机制、增发机制、清算机制设计不合理、链上价格及其他信息可被低成本操控等,导致了恶意套利、恶意增发等问题。攻击者通过操纵 AMM 资产池内的资产价格或者资产数量使关联协议蒙受损失,我们不妨称之为经济攻击。至今出现的经济攻击通常分为哄抬套利和操纵预言机两种手法。

业务实现漏洞

DeFi项目业务逻辑复杂,业务涉及经济模型,涉及到利率、价格等的计算,而实现依托于Solidity语言。开发人员若是对DeFi的业务逻辑或者其中计算逻辑的实现不是十分熟悉,则在开发的过程中可能使得代码中存在一些业务上的漏洞。以Bogged Finance被黑事件为例,Bogged Finance被攻击的根本原因在于其智能合约存在业务上的漏洞。其在转账时,发送方sender实际发送的Token数量和接收方recipient实际接收到的数据都是sendAmt,即转账总数扣除掉5%的交易费后的Token数量,发送方sender实际发送的并不是转账Token总数。详见2.4.7 Bogged Finance被黑事件。

安全建议

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

技术安全

智能合约安全本身是一个系统性和专业性极强的工程,需要综合考虑合约平台底层安全、合约设计与实现安全、合约生态工具安全、合约交互与数据安全等各方面,任何一个环节出现细微问题都会留下极大的隐患。

业务安全

作为去中心化应用的核心部分,智能合约还需要可靠的设计。糟糕的设计可能会引入难以发现的深层次安全问题,这类问题往往无法简单通过扫描源代码发现。智能合约设计者需要综合考虑业务逻辑、多角色权限和博弈、区块链共识等多方面因素。合约业务逻辑设计与实现应不存在明显安全问题。

部分智能合约会受管理员控制,而部分管理员甚至拥有极高的特殊权限,特定场景下会威胁合约其他用户的资产安全。为了智能合约安全,我们一方面需要警惕超级管理员作恶,另一方面需要考虑管理员身份被盗用所带来的后果。接口调用权限、管理员权限等需要划分清晰。

安全服务

作为区块链平台上管理数字资产的重要组成部分,智能合约的安全性必将受到越来越多的关注。智能合约项目方应与具有专业安全能力的服务商合作,提高智能合约的安全性。

SharkTeam为客户提供高级别的区块链安全服务,区块链安全专家团队7*24小时为智能合约提供全生命周期的安全保障,服务包括:VIP安全审计服务、VIP合规审计服务、安全事故应急响应等,帮助客户构建智能合约安全体系。项目方可参照SharkTeam的安全建议,完善合约开发和发布流程,从设计、开发、测试、审计到部署、监控、应急响应,保护智能合约全生命周期安全。

完整报告下载:

链接: https://pan.baidu.com/s/1hRmehf8tPltS5jmz3FFGqg 提取码: ih9f

来源:SharkTeam

SharkTeam发布币安智能链智能合约安全态势感知报告 由www.b2bchain.cn 提供
文章整理自网络,只为个人学习与分享使用
链接地址https://www.b2bchain.cn/19862.html

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » SharkTeam发布币安智能链智能合约安全态势感知报告
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们