当前位置: 首页 > 专利查询>武汉大学专利>正文

基于知识图谱的区块链智能合约重入攻击检测系统与方法技术方案

技术编号:33537568 阅读:55 留言:0更新日期:2022-05-19 02:21
本发明专利技术提供了一种基于知识图谱的区块链智能合约重入攻击检测系统与方法,包括:智能合约监控器、可疑路径分析器、合约代码反汇编器、合约交互关系提取器和知识图谱管理器,所述合约代码反汇编器、合约交互关系提取器和知识图谱管理器组成预处理子系统,实现对合约交互关系知识图谱的构建、存储、可视化及管理;所述智能合约监控器和可疑路径分析器组成实时监控子系统,结合预处理子系统给出的可疑路径集进行分析、检测和警告。本发明专利技术将知识图谱融入合约安全性检测,可理清整个区块链上所有智能合约之间的交互关系,并实时、高效、深入地进行重入漏洞的攻击检测。行重入漏洞的攻击检测。行重入漏洞的攻击检测。

【技术实现步骤摘要】
基于知识图谱的区块链智能合约重入攻击检测系统与方法


[0001]本专利技术涉及云计算
,尤其涉及一种基于知识图谱的区块链智能合约重入攻击检测系统与方法。

技术介绍

[0002]区块链是一种共享的分布式账本技术,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。智能合约是一种运行于区块链上的特殊应用程序,它允许在没有第三方监控的情况下进行不可逆的可信交易,整个存储、读取、执行过程在区块链上进行,且执行的字节码和过程公开可见。
[0003][0004]现阶段的智能合约重入漏洞检测工具大多基于静态的源代码或字节码分析。然而,一方面,静态检测存在路径爆炸的问题,因此对于深层次的重入漏洞难以捕捉。动态分析方法相比之下具有自动化程度高、误报率低、实时分析等优点,可以执行并覆盖到较深的执行路径。但现有的动态检测技术仍然存在数据存储量巨大、交易数据利用不充分、需嵌入以太坊客户端等不足。

技术实现思路

[0005]本专利技术提出了一种基于知识图谱的区块链智能合约重入攻击检测系统与方法,用以解决现有技术中因无法捕捉智能合约临时调用关系、知识实体对象类型复杂等导致攻击检测效果不佳的技术问题。
[0006]为了解决上述技术问题,本专利技术第一方面公开了基于知识图谱的区块链智能合约重入攻击检测系统,包括:
[0007]预处理子系统,用于提取智能合约的固定调用关系,并根据提取的固定调用关系和智能合约创建知识图谱,并对创建的知识图谱进行管理;
[0008]实时监控子系统,用于实时检测是智能合约是否产生临时调用,若是,则反馈至预处理子系统,以对当前的知识图谱的关系属性进行更新,并进行后续可疑路径分析和合约监控操作,知识图谱的关系属性为智能合约之间的调用关系。
[0009]在一种实施方式中,预处理子系统包括:
[0010]合约代码反汇编器,用于将智能合约的字节码反汇编为智能合约操作码;
[0011]合约交互关系提取器,用于在智能合约操作码中提取与该智能合约对应的固定调用关系,具体为存储于storage中地址变量的位置和编译进操作码的地址常量;
[0012]知识图谱管理器,用于根据提取的固定调用关系和智能合约创建知识图谱,并进行知识图谱的更新,其中,更新知识图谱包括关系属性和节点的更新,关系属性为智能合约间的调用关系和节点为智能合约。
[0013]在一种实施方式中,实时监控子系统包括:
[0014]临时调用捕获器,用于实时检测合约是否有新的临时调用产生,若是,则触发知识
图谱管理器更新当前知识图谱的关系属性;
[0015]可疑路径分析器,用于接收来自知识图谱管理器的关系子图,根据关系子图中每个节点的属性关系和重入攻击发生时合约间反复相互调用的特点,分析出所有发生重入攻击的可疑路径集;
[0016]智能合约监控器,用于从以太坊主链实时接收智能合约运行的信息,分析合约运行时的具体路径,并与可疑路径集进行匹配,检查是否存在可疑行为。
[0017]在一种实施方式中,所述系统还包括警报子系统,用于在实时监控子系统发现合约进入可疑路径时,触发攻击预警报告。
[0018]在一种实施方式中,所述系统还包括可视化子系统,用于对知识图谱进行可视化表示。
[0019]在一种实施方式中,所述系统还包括数据库系统,用于存储本地重入攻击检测各模块的合约检测用例,并对检测结果进行准确率、覆盖范围和效率分析,得到测试报告。
[0020]基于同样的专利技术构思,本专利技术第二方面提供了基于知识图谱的区块链智能合约重入攻击检测方法,包括:
[0021]a)接收用户输入或链上智能合约的字节码;
[0022]b)通过合约代码反汇编器将字节码转换为自定义标准的操作码;
[0023]c)通过合约交互关系提取器收集与合约相关的固定调用关系的相关信息并存储于本地;
[0024]d)通过临时调用捕获器实时监控输入的参数中是否含有某个智能合约的地址;
[0025]f)通过知识图谱管理器载入c)存储的本地信息构建固定调用关系,并接收 d)收集的临时调用关系生成或更新关于合约的调用关系知识图谱;
[0026]g)通过可疑路径分析器根据传入的调用关系分析出所有可能发生重入攻击的可疑路径,构成可疑路径集,并将路径集传送给临时调用捕获器;
[0027]h)临时调用捕获器接收链上智能合约运行过程,分析实时路径,并与可疑路径集中的所有可疑路径进行匹配,检查是否存在可疑行为;
[0028]i)智能合约运行结束后,通过知识图谱管理器检查固定调用关系是否发生改变,同时删除运行的合约相关的所有临时调用关系
[0029]本申请实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:
[0030]本专利技术提供的系统,通过预处理子系统提取智能合约的固定调用关系,并根据提取的固定调用关系和智能合约创建知识图谱,并对创建的知识图谱进行管理;通过实时监控子系统实时检测是智能合约是否产生临时调用,若是,则反馈至预处理子系统,以对当前的知识图谱的关系属性进行更新,并进行后续可疑路径分析和合约监控操作,知识图谱的关系属性为智能合约之间的调用关系。将知识图谱融入合约安全性检测,可理清整个区块链上所有智能合约之间的交互关系,并实时、高效、深入地进行重入漏洞的攻击检测,改善了重入攻击检测的效果。
附图说明
[0031]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现
有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]图1为本专利技术实施例中提供的基于知识图谱的区块链智能合约重入攻击检测系统的功能划分示意图;
[0033]图2为本专利技术实施例中基于知识图谱的区块链智能合约重入攻击检测系统的整体框架图;
[0034]图3为本专利技术实施例中基于知识图谱的关系属性管理框架图;
[0035]图4为本专利技术实施例中智能合约重入检测流程图。
具体实施方式
[0036]本申请专利技术人通过大量的研究与实践发现,现有的静态检测和动态检测均存在一定的问题,虽然,现有技术中也提出了基于智能合约知识图谱的合约缺陷检测方法,但是该方法基于单个Solidity语言的代码文件构建知识图谱,存在无法捕捉合约临时调用关系、知识实体对象类型复杂、不支持人工进行更深入的分析等不足。
[0037]因此,在结合知识图谱的基础上,如何设计具有高级语言无关性、支持合约临时调用捕捉和交互关系可视化、知识实体类型统一的重入检测方法,实现重入漏洞更深入、细粒度的自动化检测和分析十分重要。
[0038]本专利技术提供的方法与现有技术相比具有以下的主要优点:
[0039]第一,在算法设计方面,给出了时间复杂度为O(n)的重入攻击检测算法;
...

【技术保护点】

【技术特征摘要】
1.基于知识图谱的区块链智能合约重入攻击检测系统,其特征在于,包括:预处理子系统,用于提取智能合约的固定调用关系,并根据提取的固定调用关系和智能合约创建知识图谱,并对创建的知识图谱进行管理;实时监控子系统,用于实时检测是智能合约是否产生临时调用,若是,则反馈至预处理子系统,以对当前的知识图谱的关系属性进行更新,并进行后续可疑路径分析和合约监控操作,知识图谱的关系属性为智能合约之间的调用关系。2.如权利要求1所述的基于知识图谱的区块链智能合约重入攻击检测系统,其特征在于,预处理子系统包括:合约代码反汇编器,用于将智能合约的字节码反汇编为智能合约操作码;合约交互关系提取器,用于在智能合约操作码中提取与该智能合约对应的固定调用关系,具体为存储于storage中地址变量的位置和编译进操作码的地址常量;知识图谱管理器,用于根据提取的固定调用关系和智能合约创建知识图谱,并进行知识图谱的更新,其中,更新知识图谱包括关系属性和节点的更新,关系属性为智能合约间的调用关系和节点为智能合约。3.如权利要求2所述的基于知识图谱的区块链智能合约重入攻击检测系统,其特征在于,实时监控子系统包括:临时调用捕获器,用于实时检测合约是否有新的临时调用产生,若是,则触发知识图谱管理器更新当前知识图谱的关系属性;可疑路径分析器,用于接收来自知识图谱管理器的关系子图,根据关系子图中每个节点的属性关系和重入攻击发生时合约间反复相互调用的特点,分析出所有发生重入攻击的可疑路径集;智能合约监控器,用于从以太坊主链实时接收智能合约运行的信息,分析合约运行时的具体路径,并与可疑路径集进行匹配,...

【专利技术属性】
技术研发人员:余荣威王永张宇航刘晨邓德旺申一扬舒妮王丽娜
申请(专利权)人:武汉大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1