一种多层次特征增强的智能合约漏洞检测方法及系统

文档序号:34657593发布日期:2023-07-04 22:24阅读:63来源:国知局
一种多层次特征增强的智能合约漏洞检测方法及系统

本发明涉及区块链智能合约安全领域,具体讲的是一种多层次特征增强的智能合约漏洞检测方法及系统。


背景技术:

1、智能合约被称为去中心化应用的执行引擎,它的出现推动了去中心化应用的快速发展。智能合约本质上是一段程序代码,与传统的计算机程序一样,它也会存在安全漏洞;然而,与传统程序不同的是,智能合约一旦部署到区块链上将不能被更新或修改,因此漏洞造成的损失将无法挽回。以太坊是第一个引入智能合约的区块链平台,智能合约安全漏洞不仅给以太坊造成了严重的经济损失,同时也给整个区块链生态的可信交易环境带来了巨大的安全风险,阻碍了区块链发展。

2、智能合约代码漏洞俨然成为区块链安全领域的重大问题。当前的智能合约静态分析技术主要依赖于程序静态污点分析、形式化验证、以及符号执行等方法,它们存在合约语义信息建模不完整、代码特征提取不全面、合约分析耗时长等痛点问题,从而会导致较高的漏报率和误报率,无法在实际应用中取得令人满意的漏洞检测效果。因此,研究一种可靠的智能合约漏洞检测方法与系统是有必要的,可以帮助开发者及时发现合约中潜在的安全漏洞,进一步提高部署在区块链上的智能合约的可靠性和安全性。

3、本发明提出多层次特征增强的方法,能够有效地检测智能合约漏洞。通过把智能合约代码转换为抽象语法树(ast),在不同层面对ast进行特征增强,从多方面多角度分析合约代码中可能存在的漏洞,提高智能合约漏洞检测的范围和准确度。


技术实现思路

1、针对当前智能合约静态分析方法存在的语义信息建模不完整、代码特征提取不全面等问题,本发明提出了一种多层次特征增强的智能合约漏洞检测方法,通过融合外部包调用关系、函数间调用与依赖关系、函数内程序信息流等多维度的合约语义信息,精准地建模合约代码特征,实现更准确的异常分析与漏洞检测。

2、为了实现上述目的,本发明采用如下技术方案:

3、第一个方面,一种多层次特征增强的智能合约漏洞检测方法,包括以下步骤:

4、步骤1:给定一个待测的智能合约,以合约源码作为输入,通过词法和语法分析,构造智能合约的抽象语法树ast;

5、步骤2:分析合约外部包调用关系:遍历合约ast,记录合约中与外部包调用返回值存在数据流依赖和控制流依赖的所有状态变量,利用静态污点分析技术,追踪该返回值的传播路径,生成合约外部包调用关系有向图g1,并利用基于时序信息传递的图特征网络提取g1的特征x1;

6、步骤3:分析函数间调用与依赖关系:基于合约ast,以构造函数为起点,搜索遍历ast的每个节点和每条边,分析合约内的函数间调用以及状态变量数据依赖关系,剪切存在冗余信息的节点和边,生成函数间依赖关系有向图g2,并对g2中节点和边分别进行信息增强,利用基于时序信息传递的图特征网络提取g2的特征x2;

7、步骤4:分析函数内程序信息流:以函数为单位,将合约ast拆分为函数层面的子ast,针对每个子ast,分别进行节点和边的信息流增强;进一步地,拼接所有经过信息增强后的子ast,并利用基于时序信息传递的图特征网络提取拼接后的整个合约ast的特征x3;

8、步骤5:融合步骤2~4分别提取的特征x1,x2,x3,将融合后的特征x输入到前馈神经网络多层感知器(multi-layer perceptron,mlp)中,输出最终预测的合约代码异常分数。

9、第二个方面,本发明还提供了一种多层次特征增强的智能合约漏洞检测方法的系统,用于实现上述的智能合约漏洞检测方法。

10、本发明提供了一种多层次特征增强的智能合约漏洞检测方法及系统,为智能合约代码异常分析和漏洞检测提供了新思路。相较于传统的方法,基于多层次的特征增强与融合,凝聚了更丰富的合约语义信息,实现了更准确和更全面的检测效果。具体有益技术效果和创新性,主要表现在以下三个方面:

11、(1)本发明提出了基于多源信息融合的智能合约异常分析方法,从多个维度分析合约的语义特征,包括外部包调用关系、函数间调用与依赖关系、以及函数内程序信息流,全面地建模了智能合约代码特征,能够对智能合约进行更有效的代码异常分析以及漏洞检测;

12、(2)本发明提出了基于智能合约的静态污点分析方法,能够跟踪状态变量的传播路径,从而能够准确地判断合约关键的转账函数以及相关的条件语句是否受到污染;

13、(3)本发明提出了基于智能合约抽象语法树的信息流增强方法,根据不同分析角度对合约的抽象语法树进行相应的剪枝和信息增强,使得抽象语法树更贴合不同角度下的分析要求,去除冗余信息,增强了重要的信息流,提高了检测效率和检测的准确度。



技术特征:

1.一种多层次特征增强的智能合约漏洞检测方法,其特征在于,包括以下步骤:

2.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,步骤2中合约外部包调用关系分析过程具体为:

3.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,步骤3中函数间调用与依赖关系分析过程具体为:

4.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,步骤4中函数内程序语句信息流分析的具体过程为:

5.根据权利要求1所述的智能合约漏洞检测方法,其特征在于,步骤5中融合合约的多源信息特征、输出代码异常分数的具体实现方式为:

6.一种如权利要求1所述多层次特征增强的智能合约漏洞检测方法的系统,其特征在于,包括

7.根据权利要求6所述的系统,其特征在于,所述的特征提取模块包括:


技术总结
本发明提出了一种多层次特征增强的智能合约漏洞检测方法及系统,通过融合外部包调用关系、函数间调用与依赖关系、函数内程序信息流等多维度的合约语义信息,精准地建模合约代码特征,实现智能合约代码异常分析与漏洞检测。具体为:构建智能合约抽象语法树AST,基于AST分析合约外部包调用关系,生成外部包调用关系有向图,并提取相应的图特征;基于AST分析函数间调用与依赖关系,生成函数间依赖关系有向图,并提取相应的图特征;以函数为单位拆分合约AST,对函数AST进行信息流增强;基于多源特征融合输出合约异常分数。本发明准确地建模了合约代码特征,提高了合约代码异常分析与漏洞检测的效率和准确率,具有很好的拓展性与借鉴意义。

技术研发人员:陈建海,罗岳,于悦,钱鹏,刘振广,何钦铭
受保护的技术使用者:浙江大学
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1