主页 > 以太坊钱包imtoken官网 > SharkTeam 发布币安智能链智能合约安全态势感知报告

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

以太坊钱包imtoken官网 2023-01-17 07:39:49

关于鲨鱼队

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

币安智能链 (BSC)

币安智能链的快速发展已成为以太坊之外构建DeFi生态系统的最强交易平台的公链,形成了自己的生态系统。目前,基于BSC构建的协议和应用已经足够多,数量增长迅速,覆盖的赛道和领域都非常广泛。

态势感知报告内容概览

然而,随着区块链和智能合约行业的不断发展,安全事件也不断爆发。与普通程序相比,智能合约更容易成为攻击者的目标。一方面,智能合约通常用于管理区块链平台上的数字资产,对智能合约的攻击可能会给攻击者带来更高的经济价值;更重要的是,引入智能合约的初衷是利用区块链的特性来保证合约的可信赖性,而智能合约的漏洞会导致合约出现意外行为,可能会变成“不平等合约” ”,失去了智能合约最根本的意义。自从智能合约诞生以来,就发生了无数次攻击。最近,

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

风险位置分布

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

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

图片1.png

高级语言层

高级语言是开发者编写智能合约的工具。以太坊智能合约开发可以使用的高级语言有很多,最常用的是Solidity语言。高级语言级别给智能合约带来的安全威胁主要有两个原因。一是高级语言本身的设计缺陷引入的安全问题,二是开发人员在编写高级语言的过程中因为代码质量问题引入的安全问题。漏洞。态势感知数据显示,漏洞主要集中在状态变量的无限制写入、非标准命名、整数溢出和过时的solidity版本。其中,

图片2.png

虚拟机层

虚拟机是编译后的智能合约字节码执行器。以太坊虚拟机的设计规范及其字节码在以太坊技术黄皮书中定义,是各种以太坊客户端实现以太坊虚拟机的标准指南。虚拟机级别的安全威胁主要包括两个方面。一是以太坊黄皮书中智能合约字节码规范的设计和运行机制本身的一些缺陷。严格按照手工执行引入的问题。态势感知数据显示,漏洞主要为重入漏洞,其中无序导致的重入最多,有207个。

图片3.png

区块链层

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

4.png

业务逻辑层

区块链项目的业务逻辑越来越复杂,也面临越来越多的业务安全问题。以 DeFi 为例,资产冻结、缺少外部声明等问题并不是简单的编码错误造成的。业务逻辑设计密切相关。因此,在项目启动前,应进行严格的业务流程测试,仔细分析设计中的薄弱环节,防止业务问题的发生。态势感知数据显示,业务漏洞主要集中在缺乏外部声明,漏洞数量为657个。

5.png

威胁等级分布

漏洞本质上是无意和无意的安全漏洞或风险。结合国家区块链漏洞库区块链安全漏洞库区块链安全漏洞分级规则[2],并结合业务特点和应用场景,将威胁级别分为高、中、低、新闻四个级别。主要以危害程度和利用漏洞的难易程度为主,其他因素为辅。危害程度主要根据机密性影响、完整性影响、可用性影响三个维度来定义;利用难度主要根据攻击向量、攻击复杂度和认证三个维度来定义。

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

6.png

高风险漏洞

报告对每个威胁级别的漏洞进行了详细分析,以“高危”漏洞为例:高危漏洞一般是指低到中等的利用难度,对智能的保密性、完整性、可用性产生不利影响的漏洞。合同或其经济模型,可能给合同业务系统造成大量经济损失、本地功能不可用、大规模数据混乱、权限管理失控、关键功能失效、可信度丧失或间接造成损失影响与其相关的其他智能合约的正确运行,造成大量严重损失。和大多数不可逆转的危险。态势感知数据显示,高危漏洞主要集中在状态变量的无限制写入、整数溢出、控制委托调用,以及缺乏对签名重放攻击的保护。其中,状态变量的无限制写入有1061个。

7.png

项目类型分布

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

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

8.png

攻击原理分析

如何知道如何防止未知攻击。结合5月份48个项目和11个典型安全事件的综合审计结果,从重入漏洞、权限漏洞、密钥泄露、闪贷攻击、业务漏洞五个方面阐述了攻击原理。它分析并提出安全修复。(本报告仅供技术交流,请勿使用以下方法操作,否则后果自负)。

重入漏洞

币安智能链(BSC)允许一个合约通过外部调用调用另一个合约中的函数。如果“修改存储变量并转账”操作中的合约本应为原子交易bsc币安智能链查询,采用先转账后修改存储变量的顺序,且转账对象为带有恶意回退功能的合约,则恶意回退功能为transfer函数会被调用,因为合约先改变了存储变量,所以恶意合约通过恶意回退函数向受害合约发起递归调用,从而破坏操作的原子性,绕过检查重复获取转账收益。

重入漏洞一般发生在外部调用和“先传输后修改存储变量”的情况下。所以在转账的时候,为了避免重入,推荐使用“Checks-Effects-Interactions”(Checks-Effects-Interactions)模式。检查状态变量是否满足转移条件,然后修改状态变量,最后通过外部调用进行转移,即完成交互。此外,还可以加入重入锁来限制函数的调用,或者,在编写智能合约时,可以尽量避免调用外部合约,也可以有效降低重入的风险。

权限漏洞

一方面,合约中的变量和函数需要声明一定的权限,包括private、public、internal、external等,如果权限声明不当,合约就会出现权限漏洞。

另外,一些特殊的函数,比如初始化函数、修改一些状态变量的函数等,需要通过require或者modifier来声明它们的调用权限。如果权限配置不合理,合约也会出现权限漏洞。黑客可能会利用权限漏洞发动攻击,造成巨大的经济损失。

关键妥协

区块链账户地址属于匿名账户,其账户的安全性完全取决于该账户对应的私钥的安全性。持有账户的私钥,就相当于对账户和账户资产拥有绝对的控制权。

智能合约中一些特殊账户的安全性对整个合约乃至整个项目都有很大的影响,比如所有者账户、铸币账户,掌握了他们的私钥,就可以利用这些账户对合约进行一些非法操作。如果您有所有者账户的私钥,您可以使用所有者账户直接调用所有者地址的验证,从而重新初始化合约、随意修改状态变量等非法操作;如果你有铸币账户的私钥,你可以使用这个铸币账户无限铸币,然后盗取大量数字资产,给账户造成重大损失。

闪贷攻击

DeFi项目的业务逻辑设计复杂,过去一年DeFi利用闪贷攻击新品的事件层出不穷。造成这些安全问题的深层次原因是在设计业务逻辑时没有考虑到一些关键因素,例如:弹性供应机制、增发机制、清算机制设计不合理、链上价格等信息可被操纵成本低等,导致恶意套利、恶意增发等问题。攻击者通过操纵资产价格或 AMM 资产池中的资产数量,导致相关协议遭受损失,我们可以称之为经济攻击。迄今为止出现的经济攻击通常分为两种方式:

业务实施漏洞

DeFi项目的业务逻辑复杂,业务涉及经济模型,以及利率、价格等的计算,实现依赖于Solidity语言。如果开发者对 DeFi 的业务逻辑或者其中的计算逻辑的实现不是很熟悉,那么在开发过程中代码中可能存在一些业务漏洞。以 Bogged Finance 的 hack 为例,Bogged Finance 遭受攻击的根本原因在于其智能合约的业务漏洞。转账时,发送方实际发送的代币数量和接收方实际收到的数据都是sendAmtbsc币安智能链查询,即从转账总次数中扣除5%的交易手续费后的代币数量。发件人实际发送的不是传输。令牌总数。有关详细信息,请参阅 2.4.7 Bogged Finance hack。

安全建议

智能合约是在区块链上部署和运行的程序。借助区块链,智能合约可以实现各种去中心化应用(DApps)。与传统程序一样,智能合约的漏洞是不可避免的。然而,不同之处在于,智能合约在更开放的环境中运行,本质上是财务上的,并且升级成本很高。这意味着它对安全性的要求更高,任何一个缺陷都可能带来不可预知的后果。构建智能合约安全体系,我们建议重点关注以下几个方面。

技术安全

智能合约安全本身就是一个高度系统化和专业化的项目。需要综合考虑合约平台底层安全、合约设计与执行安全、合约生态工具安全、合约交互、数据安全等多方面的考虑。任何环节都有微妙的问题。会留下很大的危险。

业务安全

作为去中心化应用的核心部分,智能合约也需要稳健的设计。糟糕的设计会引入深层次的、难以发现的安全问题,而这些问题通常无法通过扫描源代码来发现。智能合约设计者需要综合考虑业务逻辑、多角色权限和游戏、区块链共识等因素。合约业务逻辑的设计和实现应该没有明显的安全问题。

有的智能合约会被管理员控制,有的管理员甚至拥有极高的特殊权限,在某些场景下会威胁到合约其他用户的资产安全。为了智能合约的安全,一方面要警惕超级管理员作恶,另一方面要考虑管理员身份被盗的后果。接口调用权限、管理员权限等需要明确划分。

安保服务

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

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

下载完整报告:

链接:提取码:ih9f