2021 年12 月 26 - 27 日 ,由中国计算机学会(CCF)主办的 “ 2021 CCF中国区块链技术大会” 在海南海口隆重举办。此次会议邀请来自政府部门、高等院校、金融机构等单位的区块链领域专家学者及创业者,共同聚焦区块链技术发展现状与未来前景。
大会共设置 6 场分论坛,覆盖了区块链与隐私计算、智能合约、技术安全、融合创新、人才培养、数字经济等区块链技术应用全领域。
知道创宇区块链实验室安全专家、实验室安全技术研究负责人——极光受邀出席会议,并在智能合约领域进行《Solidity智能合约安全研究》报告。
报告内容涵盖五个部分:智能合约的起源发展、功能原理、实际应用、安全漏洞、安全防御。除了对智能合约的起源、发展以及智能合约安全原理攻防进行详细介绍外,尤其强调了智能合约的安全漏洞与安全防御部分。
以下是区块链智能合约安全攻防中几个最常见的经典案例,极光从攻击者角度为大家重点讲解并提出相关防范建议,希望借此能让用户更加了解安全漏洞的危害,能为开发者开发安全的区块链智能合约协议提供帮助。
一、整型溢出漏洞。
不管是在传统安全中还是在区块链安全中,溢出一般都被当做黑客攻击操作系统的手段,但由于区块链资产的特殊性,黑客的目标不再只是盯着操作系统,而是更多的瞄准构建区块链生态活力的智能合约上。在面对整型溢出时,可以通过进行溢出检查、使用SafeMath来处理算术逻辑或者是使用较高版本的solidity语言版本进行提前预防,规避整形溢出。
二、重入攻击漏洞。
“重入漏洞”常被用于臭名昭著的DAO攻击中,早在 2016 年就因为“The DAO” 攻击事件而造成了以太坊的硬分叉。发生重入攻击漏洞的条件通常有两个:调用了不安全的外部合约、外部合约的函数调用早于状态变量的修改。因此,开发者通常会使用其他转账函数:transfer()等、先修改状态变量、使用互斥锁、使用OpenZeppelin官方库这几种方法来避免重入攻击。
三、访问控制缺陷。
与以上两种漏洞产生的方式不同,访问控制缺陷一般是开发者在编写Solidity智能合约时对某些判断的定义不严谨或者笔误从而引发某些敏感功能的访问验证被绕过导致的。这就要求开发者在编写代码时,严格控制访问权限、检查代码正确性。
四、拒绝服务攻击。
“拒绝服务攻击”黑客攻击是最常见的手段之一,简单的来说就是黑客通过对智能合约产生干扰使用户所需要的服务请求无法被系统处理。因此在开发合约时,应加入函数执行异常的处理机制,以符合代码逻辑全面性、缜密性的要求,从而在源头上避免拒绝服务攻击发生的可能性。
目前中国区块链区块链市场高速增长、区块链技术日益成熟,区块链领域呈现出技术创新成果不断涌现、自主研发不断加强、核心技术发展迅速、基础平台和标准规范逐步健全的局面。
区块链技术因其自带去中心化,无需第三方权威,依靠代码实现信任的技术特性,与智能合约做到完美互补,甚至智能合约被认为是区块链的特性之一,因此智能合约安全与区块链技术安全息息相关。
在区块链技术高速发展的同时,区块链技术安全问题不容忽视。作为持续深耕区块链安全领域的安全公司,知道创宇区块链安全实验室从2011年接触区块链技术开始,11年来一直致力于区块链安全领域的研究与探索,致力与为用户提供全方面的安全守护,在区块链安全领域和智能合约领域积累了丰富的实战经验。
希望通过这次报告能为用户和开发者了解区块链、智能合约安全等提供一些帮助,更希望能用这样的方式为守护区块链安全生态尽一份力。
我们相信,通过强大、公平、透明和安全的区块链智能合约协议,可以为更多地方、更多区块链用户提供支持;相信随着时间的推移,就像现在互联网+一样,到时会涌现出更多的智能合约+的场景出现。我们也将不懈努力继续前行,持续深耕区块链安全领域,让区块链世界更好更安全。