System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于计算机网络安全,尤其涉及一种区块链去中心化金融的安全检测方法和装置。
技术介绍
1、在区块链系统中,区块链去中心化金融(defi)是以智能合约为功能代码的区块链金融协议,定义了链上资产的交易操作;本专利技术主要关注与以太坊兼容的区块链上的defi协议;作为建立在区块链系统上重要的生态系统,defi的安全问题是关乎其能否正确稳定运行的关键。
2、作为区块链上的金融系统,defi系统的交易信息会不可逆转地存储在区块链中;而区块链交易信息分为以下两种形式,外部交易和内部交易;外部交易记录外部账户发起的交易调用过程,内部交易记录合约中发生的状态转移操作;然而,内部交易中的状态转移操作是合约内部逻辑的运行结果;因此,通过构建合约中的控制流程图即可获取数据可能的运行路径;
3、现有区块链去中心化金融安全检测方法,通过不同的技术模拟defi智能合约中的运行逻辑,并以专家知识为基础,总结攻击事件的样式规律;然后在规律中建立检测方法,监测交易中是否存在安全问题;
4、而对于深度学习的检测方法,从defi攻击事件中的智能合约中自动学习漏洞的脆弱样式,以识别攻击事件;但是现如今的深度学习方法都只关注单个合约,defi协议中多个合约交互的情况并不能充分考虑到;因此,深度学习在defi协议中的检测效果并不理想;
5、在defi的背景下,与传统静态分析方法相比,基于深度学习的漏洞检测技术存在以下空缺:
6、基于深度学习的defi攻击事件检测方法没有考虑多方交互的情况;传统静态分析方法
技术实现思路
1、本专利技术要解决的技术问题是,提供一种区块链去中心化金融的安全检测方法和装置,对defi背景下多账户,即智能合约和外部账户,之间的交互调用模式进行学习;有效地利用了交易数据中的外部调用流和智能合约中的内部逻辑流,并实现了defi协议安全检测。
2、为实现上述目的,本专利技术采用如下的技术方案:
3、一种区块链去中心化金融的安全检测方法,包括:
4、步骤s1、获取恶意交易调用流并收集相关智能合约;
5、步骤s2、构建相关智能合约的控制流程图并模拟调用关系来连接关联图;
6、步骤s3、收集关联图中的数据流路径并验证路径可达性;
7、步骤s4、将收集到的可达路径构建为数据集,并输入defitail模型训练;
8、步骤s5、通过训练好的defitail模型监测交易中是否存在恶意行为。
9、作为优选,步骤s1中,通过分析rekt数据集中的去中心化金融的权限控制事件和闪贷攻击事件,收集包含攻击账户和被攻击的脆弱合约的恶意交易调用流,并提取恶意交易调用流中的相关智能合约。
10、作为优选,骤s2具体包括:
11、步骤21、通过构建相关智能合约的控制流程图,获取各个合约中的控制流向;
12、步骤22、模拟交易的调用流向,获取多个合约间的数据流向;
13、步骤23、连接控制流向和数据流向,形成关联图。
14、作为优选,步骤s3具体包括:
15、步骤31、通过将调用者合约的函数入口作为起点,在关联图中收集数据流路径;
16、步骤32、利用符号执行记录每条数据流进行的栈操作,通过验证每次栈操作所需的栈元素是否足够,以验证数据流中的每次分支条件判断是否可达;
17、步骤33、通过判断所有数据流的可达性,收集所有的可达的数据路径。
18、作为优选,步骤s4具体包括:
19、步骤41、独热编码化可达数据路径中所有操作码数据作为数据路径嵌入向量,将数据路径嵌入向量作为输入,以训练defitail模型;
20、步骤42、在多个数据路径上构建异质图,并在邻接矩阵中获取所有操作码数据和数据路径之间的关系特征;
21、步骤43、通过transformer编码器结构,将单个数据路径嵌入向量的长度截断为固定大小,以获取每条数据路径的局部特征;
22、步骤44、将步骤43获取到的数据路径特征嵌入到邻接矩阵中,并补全步骤42所得的邻接矩阵,使用图卷积神经网络得到全局的数据路径特征;
23、步骤45、融合步骤44得到的全局特征和步骤43得到的局部路径,得到最后的数据路径特征;
24、步骤46、通过softmax层计算步骤45中得到的数据路径特征是否安全。
25、作为优选,步骤s5包括:
26、步骤51、收集特定时间区间内的所有交易数据;
27、步骤52、通过交易的时间戳属性来顺序构建交易流向,并利用步骤s2的方法构建相关合约的关联图;
28、步骤53、通过步骤s3的方法收集数据路径,并验证数据路径的可达性,获取可达的数据路径;
29、步骤54、将步骤53获取的数据路径独热编码化,并输入到defitail模型中,以判断数据路径是否安全。
30、本专利技术还提供一种区块链去中心化金融的安全检测装置,包括:
31、第一获取模块,用于获取恶意交易调用流并收集相关智能合约;
32、构建模块,用于构建相关智能合约的控制流程图并模拟调用关系来连接关联图;
33、第二获取模块,用于收集关联图中的数据流路径并验证路径可达性;
34、训练模块,用于将收集到的可达路径构建为数据集,并输入defitail模型训练;
35、检测模块,用于通过训练好的defitail模型监测交易中是否存在恶意行为。
36、作为优选,构建模块包括:
37、第一获取单元,用于构建相关智能合约的控制流程图,获取各个合约中的控制流向;
38、第二获取单元,用于模拟交易的调用流向,获取多个合约间的数据流向;
39、连接单元,用于连接控制流向和数据流向,形成关联图。
40、作为优选,第二获取模块包括:
41、第三获取单元,用于将调用者合约的函数入口作为起点,在关联图中收集数据流路径;
42、验证单元,用于验证数据流中的每次分支条件判断是否可达,其利用符号执行记录每条数据流进行的栈操作,通过验证每次栈操作所需的栈元素是否足够;
43、第四获取单元,用于判断所有数据流的可达性,收集所有的可达的数据路径。
44、作为优选,训练模块包括:
45、第一处理单元,用于独热编码化可达数据路径中所有操作码数据,将操作码数据作为数据路径嵌入向量,将数据路径嵌入向量作为输入,以训练defitail模型;
46、第五获取单元,用于在多个数据路径上构建异质图,并在邻接矩阵中获取所有操作本文档来自技高网...
【技术保护点】
1.一种区块链去中心化金融的安全检测方法,其特征在于,包括:
2.如权利要求1所述的区块链去中心化金融的安全检测方法,其特征在于,步骤S1中,通过分析REKT数据集中的去中心化金融的权限控制事件和闪贷攻击事件,收集包含攻击账户和被攻击的脆弱合约的恶意交易调用流,并提取恶意交易调用流中的相关智能合约。
3.如权利要求2所述的区块链去中心化金融的安全检测方法,其特征在于,步骤S2具体包括:
4.如权利要求3所述的区块链去中心化金融的安全检测方法,其特征在于,步骤S3具体包括:
5.权利要求4所述的区块链去中心化金融的安全检测方法,其特征在于,步骤S4具体包括:
6.如权利要求5所述的区块链去中心化金融的安全检测方法,其特征在于,步骤S5包括:
7.一种区块链去中心化金融的安全检测装置,其特征在于,包括:
8.如权利要求7所述的区块链去中心化金融的安全检测装置,其特征在于,构建模块包括:
9.如权利要求8所述的区块链去中心化金融的安全检测装置,其特征在于,第二获取模块包括:
10
...【技术特征摘要】
1.一种区块链去中心化金融的安全检测方法,其特征在于,包括:
2.如权利要求1所述的区块链去中心化金融的安全检测方法,其特征在于,步骤s1中,通过分析rekt数据集中的去中心化金融的权限控制事件和闪贷攻击事件,收集包含攻击账户和被攻击的脆弱合约的恶意交易调用流,并提取恶意交易调用流中的相关智能合约。
3.如权利要求2所述的区块链去中心化金融的安全检测方法,其特征在于,步骤s2具体包括:
4.如权利要求3所述的区块链去中心化金融的安全检测方法,其特征在于,步骤s3具体包括:
5.权利要...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。