一种java源代码漏洞检测方法和系统技术方案

技术编号:37802636 阅读:10 留言:0更新日期:2023-06-09 09:32
本发明专利技术涉及java源代码漏洞检测技术领域,特别是指一种java源代码漏洞检测方法和系统,所述方法包括:S1、将待检测java源代码转化成dot文件,将所述dot文件中的节点和边提取出来,并进行预处理生成节点边相关内容处理文件;S2、根据所述节点边相关内容处理文件,采用预先构建的漏洞检测模型对所述待检测java源代码进行漏洞检测;S3、将检测结果可视化展示。采用本发明专利技术,可以高效准确地对java源代码漏洞进行检测。进行检测。进行检测。

【技术实现步骤摘要】
一种java源代码漏洞检测方法和系统


[0001]本专利技术涉及java源代码漏洞检测
,特别是指一种java源代码漏洞检测方法和系统。

技术介绍

[0002]随着科学研究的不断进步,网络的技术水平和其应用也在飞速发展,计算机技术已经渗透到人们日常生活中的方方面面,现如今计算机和各类应用软件现在已经成为人们日常生活中不可缺少的重要组成部分,但是正因为计算机技术的不断地更新迭代,它给人民带来方便的同时也带来了许多例如软件系统,软件应用等等领域的安全问题。如今因为互联网的蓬勃发展无可避免的导致了攻击面的增大,致使现在市面上的系统和应用受到的安全威胁的概率也日益提升,尽管现在的很多软件和系统的功能也在不断地完善和丰富,但这也导致代码的复杂程度日渐加大,这不仅会使漏洞的利用方式不断地增多,也会使复杂代码中隐藏的漏洞更难的被检测出来,虽然开发人员在编程的时候已经尽力的进行了安全的编程,但是现在大量使用开源的项目和源代码已经大势所趋,这就导致很多的漏洞都往往是在不经意之间产生的,很难有有效的手段去预防和防止这种漏洞的产生。而且现如今许多的软件或应用的功能实现的模块都十分地相似,这也进一步地导致了开源源代码的复用率不断地提高,不同的开源源代码相组合很有可能会产生一些不可预料,不可预期的漏洞。
[0003]其中java源代码中是存在许多种不同形式的漏洞的,任何一种漏洞如果不进行相应的修复,后果都会相对比较严重,而修复的前提是漏洞的检测,因此亟需一种高效准确地检测java源代码漏洞的方法。

技术实现思路

[0004]本专利技术提供了一种java源代码漏洞检测方法和系统,用以对java源代码漏洞进行检测。所述技术方案如下:
[0005]一方面,提供了一种java源代码漏洞检测方法,所述方法包括:
[0006]S1、将待检测java源代码转化成dot文件,将所述dot文件中的节点和边提取出来,并进行预处理生成节点边相关内容处理文件;
[0007]S2、根据所述节点边相关内容处理文件,采用预先构建的漏洞检测模型对所述待检测java源代码进行漏洞检测;
[0008]S3、将检测结果可视化展示。
[0009]可选地,所述S1的将待检测java源代码转化成dot文件,将所述dot文件中的节点和边提取出来,并进行预处理生成节点边相关内容处理文件,具体包括:
[0010]S11、将所述待检测java源代码的相关特征信息提取出来,生成json文件;
[0011]S12、根据所述json文件生成语料库;
[0012]S13、把所述语料库向量化,生成向量化文件;
[0013]S14、对所述待检测java源代码进行自动化编译,生成字节码文件,进而生成dot文件;
[0014]S15、根据所述向量化文件,把所述dot文件中的节点和边提取出来,并进行预处理生成所述节点边相关内容处理文件。
[0015]可选地,所述S2的漏洞检测模型的预先构建过程,具体包括:
[0016]S21、把训练数据集和测试数据集正负样本中java源代码转化成dot文件,将所述dot文件中的节点和边提取出来,并进行预处理生成节点边相关内容处理文件;
[0017]S22、根据所述节点边相关内容处理文件,利用图卷积神经网络GCN中延伸出来的SAGpool方法中的分层池化方法训练GCN,直到完成所述漏洞检测模型的构建。
[0018]可选地,所述S21的把训练数据集和测试数据集正负样本中java源代码转化成dot文件,将所述dot文件中的节点和边提取出来,并进行预处理生成节点边相关内容处理文件,具体包括:
[0019]S211、把所述训练数据集和测试数据集正负样本中java源代码相关特征信息提取出来,生成json文件;
[0020]S212、根据所述json文件生成java源代码的语料库;
[0021]S213、把所述语料库向量化,生成第一向量化文件;
[0022]S214、在S211的基础上进行二次优化,人为地进行特征的优化和添加,再次生成json文件,并生成第二向量化文件;
[0023]S215、对java源代码进行自动化编译,生成字节码文件,进而生成dot文件;
[0024]S216、根据所述第一向量化文件和第二向量化文件,把所述dot文件中的节点和边提取出来,并进行处理生成所述节点边相关内容处理文件。
[0025]可选地,所述S22的根据所述节点边相关内容处理文件,利用图卷积神经网络GCN中延伸出来的图分类SAGpool方法中的分层池化方法训练GCN,直到完成所述漏洞检测模型的构建,具体包括:
[0026]利用SAGpool方法中的分层池化方法定义模型,创建所述GCN的图卷积层,合并一层图池化层;
[0027]每一层GCN层,图池化层为一组,架设三组,将处理后的节点和边数据放入模型中,在数据过完一组后出一组的相关结果传入下方的多层感知机MLP中进行处理;
[0028]进行模型迭代训练,直到完成所述漏洞检测模型的构建。
[0029]可选地,所述方法的各个步骤分别由不同的脚本自动化完成。
[0030]另一方面,提供了一种java源代码漏洞检测系统,所述系统包括:
[0031]预处理模块,用于将待检测java源代码转化成dot文件,将所述dot文件中的节点和边提取出来,并进行预处理生成节点边相关内容处理文件;
[0032]检测模块,用于根据所述节点边相关内容处理文件,采用预先构建的漏洞检测模型对所述待检测java源代码进行漏洞检测;
[0033]展示模块,用于将检测结果可视化展示。
[0034]可选地,所述系统前端使用Vue进行前端框架的编写,使用element UI进行框架的布局和界面的渲染。
[0035]另一方面,提供了一种电子设备,所述电子设备包括处理器和存储器,所述存储器
中存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现上述java源代码漏洞检测方法。
[0036]另一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述java源代码漏洞检测方法。
[0037]本专利技术提供的技术方案带来的有益效果至少包括:
[0038]本专利技术能够高效准确地对java源代码漏洞进行检测,不仅可以有效地避免人工低效化的漏洞检测,降低了人力成本,而且又使得漏洞能被尽快发现和修复。
[0039]另外本专利技术有效地降低了用人工验证源代码是否存在漏洞的难度,现有技术中即使使用代码漏洞检测系统找出的漏洞一般还需要利用人工来验证漏洞是否存在这一步,即使使用代码漏洞检测系统减少了检查的工作量,但还是需要人工来审核最后一步,耗费了很多人力和时间。本专利技术通过图神经网络的审核直接通过图和报告将漏洞内容可视化显示出来,利用大批量的数据学习来确保审核的正确率,有效地降低了审核源代码漏洞本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种java源代码漏洞检测方法,其特征在于,所述方法包括:S1、将待检测java源代码转化成dot文件,将所述dot文件中的节点和边提取出来,并进行预处理生成节点边相关内容处理文件;S2、根据所述节点边相关内容处理文件,采用预先构建的漏洞检测模型对所述待检测java源代码进行漏洞检测;S3、将检测结果可视化展示。2.根据权利要求1所述的方法,其特征在于,所述S1的将待检测java源代码转化成dot文件,将所述dot文件中的节点和边提取出来,并进行预处理生成节点边相关内容处理文件,具体包括:S11、将所述待检测java源代码的相关特征信息提取出来,生成json文件;S12、根据所述json文件生成语料库;S13、把所述语料库向量化,生成向量化文件;S14、对所述待检测java源代码进行自动化编译,生成字节码文件,进而生成dot文件;S15、根据所述向量化文件,把所述dot文件中的节点和边提取出来,并进行预处理生成所述节点边相关内容处理文件。3.根据权利要求1所述的方法,其特征在于,所述S2的漏洞检测模型的预先构建过程,具体包括:S21、把训练数据集和测试数据集正负样本中java源代码转化成dot文件,将所述dot文件中的节点和边提取出来,并进行预处理生成节点边相关内容处理文件;S22、根据所述节点边相关内容处理文件,利用图卷积神经网络GCN中延伸出来的SAGpool方法中的分层池化方法训练GCN,直到完成所述漏洞检测模型的构建。4.根据权利要求3所述的方法,其特征在于,所述S21的把训练数据集和测试数据集正负样本中java源代码转化成dot文件,将所述dot文件中的节点和边提取出来,并进行预处理生成节点边相关内容处理文件,具体包括:S211、把所述训练数据集和测试数据集正负样本中java源代码相关特征信息提取出来,生成json文件;S212、根据所述json文件生成java源代码的语料库;S213、把所述语料库向量化,生成第一向量化文件;S214、在S211的基础上进行二次优化,人为地进行特征的优化和添加,再次生成json...

【专利技术属性】
技术研发人员:杨祎斌陈小全龚晓锐马俊杰刘剑
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:

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

1