System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本说明书一个或多个实施例涉及区块链,尤其涉及一种针对区块链合约的重入攻击检测方法和装置。
技术介绍
1、区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。区块链合约,或称智能合约,是指部署于区块链上,可以自动执行协议的计算机代码。利用区块链合约去实现既定的协议或规则,可以提高协议或规则的执行效率,且能够规避执行中的主观作弊行为,具有广泛的应用场景。
技术实现思路
1、本说明书中的实施例旨在提供一种针对区块链合约的重入攻击检测方法和装置,通过该方法可以对潜在的攻击和被攻击双方发出的数据流均进行检查,并根据数据流确定重入攻击,提高了重入攻击检查的精确度,显著的降低了检查的误报率,解决现有技术的不足。
2、根据第一方面,提供了一种针对区块链合约的重入攻击检测方法,包括:
3、获取目标区块链上的多个智能合约对应的多个字节码,根据所述字节码确定出所述多个智能合约中具有外部调用行为的多个第一智能合约,以及,确定出各个第一智能合约中存在的预设数据流,所述预设数据流表示将所述第一智能合约中函数的外部输入参数作为所述第一智能合约中函数的对外调用参数;
4、根据所述预设数据流,确定所述多个第一智能合约中的各个第一智能合约之间的
5、在一种可能的实施方式中,所述外部调用行为包括:调用其它合约中的函数、调用外部传入的变量对象中的一种或多种。
6、在一种可能的实施方式中,所述多个第一智能合约中包括第一合约和第二合约;
7、将所述第一智能合约中函数的外部输入参数作为所述第一智能合约中函数的对外调用参数,包括:将第一合约中的第一函数的输入参数,作为在第一函数的函数体中调用第二合约的第二函数的调用参数。
8、在一种可能的实施方式中,所述多个第一智能合约中包括第一合约;
9、将所述第一智能合约中函数的外部输入参数作为所述第一智能合约中函数的对外调用参数,包括:将第一合约中的第一函数的输入参数,作为所述第一函数的返回值。
10、在一种可能的实施方式中,所述多个第一智能合约中包括第一合约;
11、将所述第一智能合约中函数的外部输入参数作为所述第一智能合约中函数的对外调用参数,包括:将第一合约中的第一函数的输入参数,经过数据处理后作为所述第一函数的返回值。
12、在一种可能的实施方式中,所述多个第一智能合约中包括第一合约;
13、将所述第一智能合约中函数的外部输入参数作为所述第一智能合约中函数的对外调用参数,包括:将第一合约中的第一函数的输入参数,作为所述第一函数中的调用对象。
14、在一种可能的实施方式中,所述多个第一智能合约中包括第一合约和第二合约;
15、将所述第一智能合约中函数的外部输入参数作为所述第一智能合约中函数的对外调用参数,包括:将第一合约中的第一函数中调用第二合约的第二函数的返回值,作为调用外部对象的参数。
16、在一种可能的实施方式中,所述多个第一智能合约中包括第一合约和第二合约;
17、将所述第一智能合约中函数的外部输入参数作为所述第一智能合约中函数的对外调用参数,包括:将第一合约中的第一函数中调用第二合约的第二函数的返回值,作为所述第一函数的返回值。
18、在一种可能的实施方式中,根据所述字节码确定出所述多个智能合约中具有外部调用行为的多个第一智能合约,包括:
19、将所述字节码反编译为中间语言表示,根据所述中间语言表示确定所述多个智能合约中具有外部调用行为的多个第一智能合约。
20、在一种可能的实施方式中,根据所述预设数据流,确定所述多个第一智能合约中的各个第一智能合约之间的可重入攻击关系,包括:
21、根据各个智能合约之间存在的预设数据流之间的关系,确定所述多个第一智能合约中的各个第一智能合约之间的可重入攻击关系。
22、在一种可能的实施方式中,根据所述预设数据流,确定所述多个第一智能合约中的各个第一智能合约之间的可重入攻击关系,包括:
23、根据所述预设数据流输入预先训练的识别模型,得到各个第一智能合约之间的可重入攻击关系。
24、在一种可能的实施方式中,所述方法还包括,根据所述各个第一智能合约之间的可重入攻击关系,确定所述多个第一智能合约中包括的攻击性合约和被攻击性合约。
25、在一种可能的实施方式中,所述多模态检索数据库中预先保存有多个键值对,所述键值对中的键用于保存预先获取的第一模态的信息的特征,所述键值对中的值用于保存与所述第一模态的信息相同模态的相关信息、以及与所述第一模态的信息不同模态的相关信息。
26、根据第二方面,提供一种针对区块链合约的重入攻击检测装置,所述装置包括:
27、获取单元,配置为,获取目标区块链上的多个智能合约对应的多个字节码,根据所述字节码确定出所述多个智能合约中具有外部调用行为的多个第一智能合约,以及,确定出各个第一智能合约中存在的预设数据流,所述预设数据流表示将所述第一智能合约中函数的外部输入参数作为所述第一智能合约中函数的对外调用参数;
28、检测单元,配置为,根据所述预设数据流,确定所述多个第一智能合约中的各个第一智能合约之间的可重入攻击关系。
29、根据第三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面所述的方法。
30、根据第四方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面所述的方法。
31、利用以上各个方面中的方法、装置、计算设备、存储介质中的一个或多个,可以对潜在的攻击和被攻击双方发出的数据流均进行检查,并根据数据流确定重入攻击,提高了重入攻击检查的精确度,显著的降低了检查的误报率。
本文档来自技高网...【技术保护点】
1.一种针对区块链合约的重入攻击检测方法,包括:
2.根据权利要求1所述的方法,其中,所述外部调用行为包括:调用其它合约中的函数、调用外部传入的变量对象中的一种或多种。
3.根据权利要求1所述的方法,其中,所述多个第一智能合约中包括第一合约和第二合约;
4.根据权利要求1所述的方法,其中,所述多个第一智能合约中包括第一合约;
5.根据权利要求4所述的方法,其中,所述多个第一智能合约中包括第一合约;
6.根据权利要求1所述的方法,其中,所述多个第一智能合约中包括第一合约;
7.根据权利要求1所述的方法,其中,所述多个第一智能合约中包括第一合约和第二合约;
8.根据权利要求1所述的方法,其中,所述多个第一智能合约中包括第一合约和第二合约;
9.根据权利要求1所述的方法,其中,根据所述字节码确定出所述多个智能合约中具有外部调用行为的多个第一智能合约,包括:
10.根据权利要求1所述的方法,其中,根据所述预设数据流,确定所述多个第一智能合约中的各个第一智能合约之间的可重入攻击关系,
11.根据权利要求1所述的方法,其中,根据所述预设数据流,确定所述多个第一智能合约中的各个第一智能合约之间的可重入攻击关系,包括:
12.根据权利要求1所述的方法,还包括,根据所述各个第一智能合约之间的可重入攻击关系,确定所述多个第一智能合约中包括的攻击性合约和被攻击性合约。
13.一种针对区块链合约的重入攻击检测装置,所述装置包括:
14.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-12中任一项的所述的方法。
15.一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-12中任一项所述的方法。
...【技术特征摘要】
1.一种针对区块链合约的重入攻击检测方法,包括:
2.根据权利要求1所述的方法,其中,所述外部调用行为包括:调用其它合约中的函数、调用外部传入的变量对象中的一种或多种。
3.根据权利要求1所述的方法,其中,所述多个第一智能合约中包括第一合约和第二合约;
4.根据权利要求1所述的方法,其中,所述多个第一智能合约中包括第一合约;
5.根据权利要求4所述的方法,其中,所述多个第一智能合约中包括第一合约;
6.根据权利要求1所述的方法,其中,所述多个第一智能合约中包括第一合约;
7.根据权利要求1所述的方法,其中,所述多个第一智能合约中包括第一合约和第二合约;
8.根据权利要求1所述的方法,其中,所述多个第一智能合约中包括第一合约和第二合约;
9.根据权利要求1所述的方法,其中,根据所述字节码确定出所述多个智能合约中具有外部调用行为的多个第一...
【专利技术属性】
技术研发人员:林性伟,
申请(专利权)人:蚂蚁智安安全技术上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。