收藏 分销(赏)

区块链智能合约漏洞研究综述.pdf

上传人:自信****多点 文档编号:2694028 上传时间:2024-06-04 格式:PDF 页数:7 大小:1.38MB
下载 相关 举报
区块链智能合约漏洞研究综述.pdf_第1页
第1页 / 共7页
区块链智能合约漏洞研究综述.pdf_第2页
第2页 / 共7页
区块链智能合约漏洞研究综述.pdf_第3页
第3页 / 共7页
区块链智能合约漏洞研究综述.pdf_第4页
第4页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、第 41 卷 第 1 期 邢 台 职 业 技 术 学 院 学 报 Vol.41 No.1 2024 年 2 月 Journal of Xingtai Polytechnic College Feb.2024 收稿日期:2023-11-12 基金项目:教育部产学合作协同育人项目“Python 程序设计课程评测制度”,项目编号:220902084194057。作者简介:李洪燕(1980),河北邢台人,河北科技工程职业技术大学,副教授。84 区块链智能合约漏洞研究综述 李洪燕,冯 磊,陈奕迅,兰志阳(河北科技工程职业技术大学,河北 邢台 054035)摘 要:在近年来,智能合约的安全性问题已成为区块

2、链技术领域的关注焦点。研究系统分析了智能合约中常见的安全漏洞及其预防技术。研究表明,Storage 指针漏洞、拒绝服务攻击(DDoS)、代码低级调用、以太币冻结、区块变量依赖、tx.origin 依赖、短地址攻击、交易顺序依赖、整数溢出和权限控制漏洞是当前智能合约安全中的主要问题。研究详细描述了这些漏洞的原理,并提出了相应的预防措施,例如使用安全库、执行合约审计、设置阈值和限制等。这些措施对于开发者在设计和部署智能合约时,确保合约的安全性和可靠性至关重要。应用这些技术可以有效降低智能合约遭受攻击的风险,维护区块链生态系统的安全稳定。关键词:智能合约;区块链;漏洞攻击 中图分类号:TP311.1

3、3 文献标识码:A 文章编号:10086129(2024)01008407 区块链智能合约是数字化协议的一种形式,它们在特定条件得到满足时能够自动执行合同条款或履行承诺。这种合约与传统合约的不同之处在于,它们不需要第三方中介的监督或执行,从而实现了去中心化、提高了效率和安全性。智能合约允许各方在无需相互信任的情况下进行合作交易,显著降低了交易的成本和时间。随着区块链技术的演进,智能合约已被广泛应用于股权众筹、金融、医疗、供应链管理和游戏等多个领域1。在金融领域,它们被用于创建去中心化金融应用程序(DeFi),实现了无需传统银行的借贷和交易。在医疗保健领域,智能合约有助于共享和保护患者数据,确保

4、数据隐私和安全。在供应链管理中,智能合约通过确保物品流通过程的透明度和可追溯性,提高了效率并减少了欺诈行为。智能合约的运用大幅扩展了区块链的应用范围,使其成为一个去中心化的操作系统。然而,智能合约也面临着安全挑战,历史上曾有多起智能合约被攻击的事件,如 Olympus DAO 被盗事件、BEC 智能合约攻击事件和 SmartMesh(SMT)智能合约攻击事件。因此,探讨智能合约漏洞的原理及其预防技术对于提高智能合约的安全性至关重要。一、Storage 指针漏洞(一)漏洞原理 Storage 指针漏洞是一种与智能合约中的变量存储位置相关的安全问题。攻击者可能会利用未初始化的存储指针来访问合约中的

5、其他意外存储变量,从而造成潜在的安全漏洞。在智能合约中,函数中的局部变量根据其类型默认使用 Storage 或 Memory 存储。当这些变量未被初始化时,它们可能会指向合约中的其他意外存储变量。如果攻击者能够通过某种方式利用这些未初始化的变量,他们可能会访问敏感数据或执行恶意操作。为了防止 Storage 指针漏洞,开发者可以采取以下措施:谨慎处理未初始化的存储变量:当在智能合约中使用变量时,确保在使用之前对其进行初始化。如果变量未被初始化,则会出现潜在的安全问题。(二)预防技术 使用 Solidity 编译器的预警功能,Solidity 编译器会在出现未经初始化的存储变量时发出警告。因此,

6、开发人员应注意这些警告,并在构建智能合约时小心处理这些警告。1.明确使用 memory 或 storage:在处理复杂类型时,开发人员应该明确使用 memory 或 storage 来保证合约的行为符合预期。这有助于避免未初始化的存储变量导致的漏洞。邢台职业技术学院学报 2024 年 第 1 期 85 2.开发人员应该注意未初始化的存储变量,并采取适当的预防措施来避免 Storage 指针漏洞。这包括谨慎处理未初始化的变量、使用 Solidity 编译器的警告功能以及明确使用 memory 或 storage 来处理复杂类型。图 1 Storage 指针漏洞预防措施流程图 二、拒绝服务攻击(D

7、Dos)漏洞(一)漏洞原理 拒绝服务攻击(DDos)是一种网络安全威胁,旨在通过向目标服务器发送大量无用的请求或信息,使其无法响应正常用户的请求。在 Web2 中,这种攻击通常通过发送大量的垃圾信息或干扰信息来实现。而在 Web3 中,它则利用智能合约中的漏洞来阻止合约正常提供服务。(二)预防技术 1.当调用外部合约的函数时,应确保在失败时不会影响重要功能的运行。例如,可以将“Refund Fail!”这样的 require 语句去掉,以确保在单个地址失败时仍能继续运行退款操作。2.应确保合约不会意外地自我销毁。3.应确保合约不会进入无限循环。4.应正确设定 require 和 assert

8、的参数。5.在退款时,让用户从合约自行领取(push),而不是批量发送给用户(pull)。6.应确保回调函数不会影响正常合约的运行。7.应确保当合约的参与者(例如 owner)永远缺席时,合约的主要业务仍能顺利运行。图 2 拒绝服务攻击预防策略流程图 三、代码低级调用(一)漏洞原理 以太坊的低级调用包括 call、delegatecall、staticcall 和 send。这些函数与 Solidity 其他函数不同,当出现异常时,它并不会向上层传递,也不会导致交易完全回滚;它只会返回一个布尔值 false,传递调用失败的信息,因此,如果要检查低级函数调用的返回值,则无论低级调用失败与否,上层

9、函数的代码都会继续运行2。最容易出错的是 send;一些合约使用 send,发送 ETH,但是 send,限制 gas 要低于 2 300,否则会失败。当目标地址的回调函数比较复杂时,花费的 gas 将高于 2 300,从而导致 send 失败。如果此时在上层函数没有检查返回值的话,交易继续执行,就会出现意想不到的问题。邢台职业技术学院学报 2024 年 第 1 期 86(二)预防技术 1.检查低级调用的返回值,可以改正 withdrew。合约转账 ETH 时,使用 call,并做好重入保护。2.使用 OpenZeppelin 的 Address 库,它将检查返回值的低级调用封装。图 3 以太

10、坊低级调用及预防技术图表 四、以太币冻结漏洞(一)漏洞原理 以太币冻结漏洞通常涉及到智能合约的逻辑错误或漏洞,使得用户无法正常提取他们在合约中存储的以太币。这种漏洞的根本原因在于合约没有提供足够的途径来允许用户提取资金或是合约中存在一些不正常的逻辑,导致用户被拒绝提款。(二)预防技术 1.仔细审计合约:在部署合约之前,进行仔细的安全审计,以确保合约中没有逻辑错误或漏洞。安全审计可以由专业的安全专家或审计公司执行。2.提供紧急提款机制:合约应该提供一种机制,允许用户在出现问题时提取他们的资金。这可以是一个紧急提款函数,只有合约的管理员可以触发,以解决潜在的问题。3.使用已验证的库和框架:借助成熟

11、的以太坊开发库和框架,这些库通常已经包含了安全实践,可以降低漏洞风险。4.定期更新合约:如果在合约中发现了漏洞或有新的安全问题,及时修复合约并通知用户。不要让漏洞滞留。五、区块变量依赖漏洞(一)漏洞原理 智能合约中的某些操作可能依赖于区块链上的当前区块信息,例如区块的时间戳、随机数等。这些区块信息在不同的区块链上和不同的时间点可能会有所不同,因此智能合约的行为可能会受到这些信息的影响。攻击者可以利用这种不确定性,选择恶意的时间点来触发合约操作,从而使合约行为不一致或产生意外结果。这种漏洞可能会导致资金损失或其他不良后果。(二)预防技术 1.避免依赖不确定性因素:尽量避免在合约中依赖区块链上的不

12、确定性因素,如时间戳或随机数。如果必须使用这些信息,应该谨慎处理,并考虑合适的安全措施。2.使用验证过的库和框架:借助已验证的以太坊开发库和框架,这些库通常已经考虑了区块链的不确定性因素,可以降低漏洞风险。3.进行安全审计:在部署合约前,要经过周密的安全审核,以发现并修复潜在的区块变量依赖漏洞。4.设置阈值和限制:在合约中设置适当的阈值和限制,以减轻潜在攻击的影响。邢台职业技术学院学报 2024 年 第 1 期 87 图 4 以太币冻结漏洞预防措施流程图 图 5 区块变量依赖漏洞流程图 六、tx.origin 依赖漏洞(一)漏洞原理 攻击者创建一个恶意合约 A,并在该合约中包含对“tx.ori

13、gin”变量的依赖,以确定交易的原始发送者。攻击者诱使用户 B 发起一笔交易,并在交易中调用恶意合约 A。当恶意合约 A 执行时,它会检查 tx.origin 变量以确定发送者,此时 tx.origin 将指向用户 B,因为用户 B 发起了交易。恶意合约 A 可能会根据用户 B 的身份执行某些恶意操作,例如将资金转移到攻击者的地址或执行其他恶意逻辑3。(二)预防技术 1.使用 msg.sender 替代 tx.origin:在智能合约中,应尽量使用 msg.sender变量,它表示当前合约调用的直接发送者(即合约或其他地址)。与tx.origin不同,msg.sender 不会受到委托调用的影

14、响,因此更安全。2.审查合约:在与其他合约交互之前,仔细审查它们的代码,确保它们不依赖于tx.origin来确定调用者的身份。3.避免对 tx.origin进行敏感操作:如果必须使用tx.origin,则应避免在合约中执行对发送者身份敏感的操作。这可以通过使用 msg.sender 进行权限控制来降低潜在的风险。4.教育用户:合约的用户也应该注意,不要发起交易来调用可能依赖 tx.origin 的恶意合约。在使用智能合约时,要谨慎选择并仔细审查合约的代码。七、短地址漏洞(一)漏洞原理 短地址漏洞涉及到以太坊地址的长度。正常情况下,以太坊地址的长度应为 40 个字符(160 位)。然而,某些智能

15、合约在接受用户的资金存款时,未正确验证用户提供的地址长度。这意味着用户可以发送一个较短的地址,只包含部分字符,而智能合约仍然可以接受它,这可能会导致问题。(二)预防技术 1.验证地址长度:在接受用户资金存款之前,智能合约应验证用户提供的地址的长度是否符合标准。地址的长度应为 40 个字符(160 位)。2.使用成熟的库和框架:智能合约开发者可以使用成熟的以太坊开发库和框架,这些库通常已经包含了地址验证的安全实践。3.审计合约:对于重要的智能合约,进行安全审计是一种明智的做法。安全专家可以识别和解决潜在的漏洞,包括短地址漏洞。4.避免过于复杂的逻辑:尽量简化合约的逻辑,减少与地址验证相关的复杂性

16、,以降低漏洞的风险。八、交易顺序依赖漏洞(一)漏洞原理 在区块链上,交易的执行顺序通常由矿工决定,而不是由提交交易的顺序决定。这意味着,即使两笔交易在不同的区块中被广播,它们的执行顺序仍可能会有所不同。攻击者可以利用这一点来实施交易 邢台职业技术学院学报 2024 年 第 1 期 88 图 6 tx.origin 依赖漏洞思维导图 图 7 短地址漏洞预防措施流程图 顺序依赖攻击。攻击者会提交一系列的交易,这些交易看似是依赖于先前交易的结果,但实际上,攻击者计划在不同的顺序下执行这些交易,以获取不当利益或引发合约不一致的行为4。(二)预防技术 1.避免依赖交易顺序:设计合约时,尽量避免依赖于交易

17、执行顺序的因素。确保合约的逻辑对于不同的执行顺序都能保持一致性。2.使用安全合约库:使用经过审计和测试的合约库和框架,这些库通常会考虑到交易执行顺序的不确定性。3.进行模拟测试:在合约开发和测试阶段,模拟不同的交易执行顺序,以确保合约的行为不会受到不同执行顺序的影响。4.审计合约代码:进行仔细的安全审计,以发现和修复可能存在的交易顺序依赖漏洞。5.了解交易执行机制:深入了解所使用的区块链平台的交易执行机制和矿工行为,以更好地理解潜在的风险。图 8 交易顺序依赖漏洞预防措施流程图 九、整数溢出漏洞(一)漏洞原理 整数类型在智能合约中用于存储和处理数字数据。通常,智能合约会使用固定长度的整数类型,

18、如uint256 或 int256。这些整数类型有一个有限的取值范围,例如 uint256 可以表示从 0 到 2256-1 的整数。如果进行的运算导致结果超出这个范围,就会发生整数溢出。攻击者可以利用该类漏洞跳过某些条件判断或者篡改数据。(二)预防技术 1.使用安全整数库:使用已经审计和测试过的安全整数库,这些库通常包含了检测和防止整数溢出的功能。2.谨慎进行整数运算:在合约中进行整数运算时,要谨慎检查结果是否可能导致溢出,并采取适当的措施,如使用 SafeMath 库来执行安全的算术运算。3.审计合约代码:进行仔细地安全审计,以发现和修复可能存在的整数溢出漏洞。4.使用更大的整数类型:如果

19、可能,使用更大的整数类型来存储值,以减少溢出的风险。5.避免不必要的整数操作:尽量避免在合约中进行复杂的整数操作,只进行必要的运算。邢台职业技术学院学报 2024 年 第 1 期 89 图 9 整数溢出漏洞预防措施流程图 十、权限控制漏洞(一)漏洞原理 权限控制漏洞是智能合约中的一种常见漏洞,通常涉及不正确的权限管理和访问控制。这种漏洞可能导致未经授权的用户或智能合约执行某些敏感操作,或者限制了合法用户的访问权限。攻击者可以利用这些漏洞来执行恶意操作或者绕过应用程序的规则5-7。(二)预防技术 1.明确定义权限:在智能合约中明确定义和实施权限控制机制,确保只有合法用户能够执行敏感操作。2.使用

20、访问控制库:使用专门的访问控制库,如 OpenZeppelin 的 AccessControl,来管理权限,这些库已经经过审计和测试。3.最小化权限原则:给予用户最小必要的权限,避免不必要的特权,以减少潜在的攻击面。4.合约升级审计:在合约升级或更改权限控制逻辑时,进行仔细的审计,以确保没有引入新的漏洞。5.多重签名:对于执行关键操作的合约函数,考虑采用多重签名机制,需要多方确认才能执行操作,提高安全性。图 10 权限控制漏洞防御流程图 为了保护智能合约和区块链生态系统的安全性,研究人员深入研究了当前存在的智能合约漏洞类型以及预防技术。在研究中,他们重点研究了多种智能合约漏洞,包括 Stora

21、ge 指针漏洞、拒绝服务攻击、代码低级调用、以太币冻结漏洞、区块变量依赖漏洞、tx.origin 依赖漏洞、短地址漏洞、交易顺序依赖漏洞和整数溢出漏洞。他们详细探讨了这些漏洞的原理、可能导致的危害以及如何采取预防措施来减轻潜在风险。然而,研究人员也认识到区块链技术和智能合约领域仍然在快速演进中,新的挑战和漏洞不断涌现。因此,他们需要持续关注并研究新的漏洞类型、威胁模式以及攻击者使用的高级技术。为了确保区块链的可持续性和安全性,必须在漏洞研究方面保持警惕,并制定更加智能、强大的安全解决方案。未来,区块链技术的研究方向将包括共识算法的改进、隐私保护技术的发展以及跨链互操作性的探索。智能合约不仅适用

22、于数字货币领域,还可以推动供应链管理、金融服务、物联网等多个领域的创新。因此,研究努力将有助于构建更加安全、可信赖的数字经济生态系统,为社会带来更多创新和便利。参考文献:1倪远东,张超,殷婷婷.智能合约安全漏洞研究综述J.信息安全学报,2020,5(03):78-99.2张春峰,王国一.智能合约安全漏洞检测技术研究J.网络安全技术与应用,2022(09):16-18.3杨忠举,朱卫星,史涯晴,等.智能合约漏洞及检测技术研究综述J.网络安全技术与应用,2022(11):6-9.4张潆藜,马佳利,刘子昂等.以太坊 Solidity 智能合约漏洞检测方法综述J.计算机科学,2022,49(03):5

23、2-61.邢台职业技术学院学报 2024 年 第 1 期 90 5钱鹏,刘振广,何钦铭,等.智能合约安全漏洞检测技术研究综述J.软件学报,2022,33(08):3059-3085.6 Fu ML,Wu LF,Hong Z,et al.Research on vulnerability mining technique for smart contracts.Journal of Computer Applications,2019,39(07):19591966(in Chinese with English abstract).7 Wang HQ,Zhang F,Li T,et al.Se

24、curity and privacy protection technologies in smart contract.Journal of Nanjing University of Posts and Telecommunications,2019,39(04):6371(in Chinese with English abstract).Blockchain Smart Contract Vulnerability Research:Current Status and Future Frontiers LI Hongyan,FENG Lei,CHEN Yixun,LAN Zhiyan

25、g (Heibei Vocational University of Technology and Engineering,Xingtai,Hebei 054035,China)Abstract:Smart contracts are one of the core technologies of blockchain platforms,responsible for processing and executing digital asset transactions,and implementing the logic of decentralized applications(DApp

26、s).Smart contracts ensure the security,transparency,and irreversibility of transactions.However,given that smart contracts are built on programming,there are still some potential vulnerabilities.This paper will introduce common vulnerabilities and prevention methods for smart contracts,the principle

27、s of vulnerability attacks,and low-level code invocations.Finally,it will summarize the security of smart contracts and outline future research directions.Key words:smart contract;blockchain;vulnerability attack*(上接第 73 页)参考文献:1李琦.EXCEL BI 在计算机审计中的应用J.电子元器件与信息技术,2022,6(08):80-83.2文俊凌,伍泽亮,张平升等.浅谈日志数据

28、在柔性自动化生产线中的应用J.工业控制计算机,2022,35(08):132-133.3耿金月.利用 PowerPivot 工具解决换热站单耗及动态供销差率计算方法的探讨C.中国能源学会.第四届热电联产节能降耗新技术研讨会论文集(上册).出版者不详,2015:10.4闫银锁,陶荔莹,张红伟等.基于 Power Pivot 构建新病原学阳性肺结核患者耐药筛查辅助监测系统J.结核病与肺部健康杂志,2019,8(04):294-298.5左良军,李立功.基于大数据技术的专利价值评估与筛选系统J.中国发明与专利,2018,15(10):41-44.6de Jonge Kasper.用 Power Pi

29、vot 和 Ecxel 创建仪表板和财务分析报告R.刘凯,杜美杰,译.北京:经济科学出版社,2017:1-6.7曾伟,周澎,徐娇.基于信息化建设的工程造价管理质量评价探索J.中国总会计师,2022(11):106-109.8田均豆.采油气工程管理的信息化建设及实践J.中国石油和化工标准与质量,2022,42(23):83-85.9徐承,辜斌,刘阳等.我国工程管理信息化建设进展与思考J.建筑经济,2022,43(S2):19-23.10于利贤,吴振全.信息化系统在全过程工程咨询中的应用以某银行建设项目为例J.项目管理技术,2023,21(01):26-29.Application of Powe

30、r Pivot Technology in Engineering Construction Informatization YU Zhiyong(Wuhu Xinxing Ductile Iron Pipes CO,.LTD,Wuhu,Anhui 241002,China)Abstract:In order to manage engineering projects and contract details,track contract execution,and timely analyze deviations in contract duration and costs,Power

31、Pivot technology is applied to engineering construction informatization.Firstly,establish four tables;Secondly,by using the built-in metrics in Power Pivot;Finally,establish statistical analysis related metrics using the built-in metrics of Power Pivot.This method achieves contract management of single person engineering information and provides reliable technical support for engineering construction informatization.Key words:Power Pivot;engineering construction informatization;measure value;contract management

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 学术论文 > 论文开题报告

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服