[发明专利]一种Fabric区块链系统智能合约的安全分析检测方法有效
申请号: | 202210029433.4 | 申请日: | 2022-01-12 |
公开(公告)号: | CN114282227B | 公开(公告)日: | 2022-08-26 |
发明(设计)人: | 陈钟;关志;李青山;陈子明;李悦;崔冬琪;董宇 | 申请(专利权)人: | 北京大学;博雅正链(北京)科技有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/56 |
代理公司: | 北京万象新悦知识产权代理有限公司 11360 | 代理人: | 黄凤茹 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 fabric 区块 系统 智能 合约 安全 分析 检测 方法 | ||
本发明公布了一种Fabric区块链系统智能合约的安全分析检测方法,该方法与智能合约的开发语言无关,通过将不同开发语言编写的智能合约统一转换为中间语言IR,并根据IR语言特征改进污点分析方法,实现在IR上跟踪安全风险的产生和传播过程,由此检测识别其是否存在安全漏洞。本发明将Fabric区块链系统智能合约安全分析与智能合约编程语言解耦,不仅弥补了当前对于Fabric智能合约安全分析方案的空白,且支持对新漏洞类型和新智能合约编程语言的持续拓展。
技术领域
本发明涉及信息安全技术领域,尤其涉及一种针对Fabric区块链系统智能合约的安全分析检测方法。
背景技术
Fabric是目前最流行的面向企业应用的开源区块链平台之一。智能合约是指运行在区块链系统上的一段程序,规定了网络系统成员之间的业务逻辑,是传统合约在网络系统中的数字化形式。写入区块链系统中的智能合约,在存储、读取、执行的整个过程中公开透明,可追踪且不可篡改。
与传统应用程序相比,智能合约的安全问题主要存在以下两方面的差别:
一方面,传统应用程序发现错误后可以及时修补并发布新的版本,但是智能合约部署后是不可变的,即很难修复有漏洞的智能合约。因此,在部署之前对智能合约的正确性和安全性进行严格验证至关重要。
另一方面,大多区块链系统如“以太坊”往往采用领域专用语言如solidity编写智能合约,但是在Fabric系统中,智能合约是由通用编程语言(Go,Java,JavaScript)开发的。这极大降低了开发者的准入门槛,并支持使用基于这些编程语言的可靠的现有工具和库。但是由于缺乏像solidity那样针对区块链特性的提供的限制和功能,大多数开发人员倾向于智能合约和普通应用程序之间运行环境不同导致的差异,引入潜在的安全漏洞。
目前智能合约安全问题突出,相关研究工作主要集中在以太坊平台,缺乏针对Fabric智能合约安全性的研究工作和有效的技术方案。虽然通用编程语言一般有自己的检测工具以提高代码质量,例如针对Go语言的govet和golint,但是它们通常被用于检测常规开发中的语法错误,不能有效地识别与智能合约特性相关的安全问题。当前现有技术仍缺少针对Fabric智能合约的安全分析与验证的有效技术方案。
发明内容
为解决上述现有技术存在的不足,本发明提供一种与开发语言无关的针对Fabric区块链系统智能合约的安全分析检测方法,该方法能够挖掘出Fabric区块链系统智能合约中现有工具无法检测到的6种严重影响智能合约安全性的漏洞,可应用于智能合约的开发和部署阶段,帮助开发人员实现更安全的智能合约。
为解决上述技术问题,本发明所采取的技术方案是:
一种Fabric区块链系统智能合约的安全分析检测方法,该方法将不同开发语言编写的智能合约统一转换/翻译为中间语言IR,并将现有的污点分析方法根据IR语言的特征进行改进,以在IR上跟踪安全风险的产生和传播过程,判断其是否会造成安全漏洞,最后将检测结果以及修补建议反馈给用户;包括预处理过程,污点分析过程和返回结果过程。具体包括如下步骤:
1)对智能合约的源代码进行预处理;
具体实施时,在智能合约开发阶段或部署之前,可分别通过gollvm工具,JLang工具,TypeScriptCompiler工具将Go语言,Java语言,JavaScript编写的智能合约统一翻译成特定的中间语言——LLVM IR(Low Level Virtual Machine Intermediate Language,以下简称IR);
因为LLVM项目推行的中间语言IR提供了一套丰富的操作接口,因此在IR上进行分析和操作比直接在源码上更加方便。此外,翻译成IR消除了源语言的特性,使得智能合约漏洞的检测规则与源语言解耦,漏洞检测机制可以应用到不同编程语言编写的智能合约上。
2)对智能合约的IR进行污点分析;具体包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学;博雅正链(北京)科技有限公司,未经北京大学;博雅正链(北京)科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210029433.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种医疗床辅助陪护座椅
- 下一篇:光伏组件清扫机的防偏移驱动装置