首页> 中文学位 >针对以太坊智能合约代码的安全检测系统
【6h】

针对以太坊智能合约代码的安全检测系统

代理获取

目录

第一章 绪 论

1.1 研究背景与意义

1.2 国内外研究历史与现状

1.3 本文的主要贡献与创新

1.4 本论文的结构安排

第二章 理论知识

2.1 编译技术

2.1.1 词法分析

2.1.2 语法分析

2.2 模糊测试技术

2.3 符号执行技术

2.4 机器学习技术

2.5 本章小结

第三章 系统的设计与实现

3.1 系统架构

3.2 需求分析

3.3 语法匹配

3.3.1 漏洞分析

3.3.2 语法树创建

3.3.3 漏洞匹配

3.4 反编译

3.4.1 反汇编器

3.4.2 反编译器

3.5 符号执行

3.5.1 LLVM-IR中间语言翻译

3.5.2 KLEE符号执行

3.6 模糊测试

3.6.1 部署智能合约

3.6.2 模糊测试器

3.7 本章小结

第四章 系统测试

4.1 测试环境

4.2 模块测试

4.2.1 交互模块测试

4.2.2 预处理模块测试

4.2.3 语法匹配模块测试

4.2.4 反编译模块测试

4.2.5 符号执行模块测试

4.2.6 模糊测试模块测试

4.2.7 报告生成模块测试

4.3 实例测试

4.4 本章小结

第五章 总结与展望

5.1 主要成果

5.2 后续工作展望

致谢

参考文献

攻硕期间取得的研究成果

展开▼

摘要

近年来,区块链技术受到了越来越多的关注与重视,而基于区块链技术的智能合约的设计与开发也成为了热门的研究方向。一段优秀的智能合约能够提供安全可靠的服务,从而高效地解决现实生活中的问题。然而由于开发人员的技术水平参差不齐,其编写的智能合约也可能会出现安全问题,不安全的智能合约的发布使用可能会对用户造成巨大损失。因此,在正式发布智能合约之前,对其进行安全检测是尤为重要的。本文设计并实现了一个针对以太坊平台的智能合约安全检测系统,通过对智能合约的检测来查找并修复其潜在的安全问题,提高其安全性。 本论文主要设计并实现了针对以太坊智能合约代码的安全检测系统,首先对目前已经发现的智能合约的安全问题进行讨论和研究,然后使用多种技术手段来对不同形式的智能合约进行全方位地审计。针对拥有项目源代码的智能合约,系统将已知的漏洞特征抽象为语法树形式,然后利用ANTLR语法分析器,按照自定义的语法规约规则,对项目源码进行词法和语法分析,从而将代码转换为抽象语法树的形式,最后将其与漏洞语法树进行匹配,检查是否存在安全漏洞;此外,系统通过构建私有链,将该智能合约模拟发布,然后利用模糊测试技术对合约进行动态检测。动态检测主要针对智能合约中的函数部分,系统首先根据不同函数的输入参数和返回值的类型对函数进行分类,然后利用机器学习技术对不同类型的函数进行建模和评估,选择出最佳的算法来辅助测试,从而提高模糊测试的效率。针对只有二进制文件的智能合约,系统首先将二进制代码反汇编成EVM汇编码,然后根据智能合约的语法规则和内存结构将其反编译成简单的高级语言形式,供安全人员进一步检查;此外,系统将二进制代码转化成中间语言LLVM-IR的形式,并利用KLEE符号执行引擎对其进行漏洞挖掘。最终,系统将测试得到的智能合约的审计结果汇总并以报告形式展示。 本论文的主要成果在于设计并实现了一个全面且可靠的针对以太坊平台上智能合约的安全检测系统。在系统中完成了漏洞的抽象建模;实现了对智能合约Solidity代码文件的语法树规约;研究了在进行模糊测试时,引入机器学习技术的有效性;完成了对智能合约的符号执行工作。最后,通过对真实场景下的上千个智能合约的测试,证明了系统的实用性和可靠性。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号