咨询与建议

看过本文的还看了

相关文献

该作者的其他文献

文献详情 >基于深度森林的Java代码漏洞挖掘算法研究 收藏
基于深度森林的Java代码漏洞挖掘算法研究

基于深度森林的Java代码漏洞挖掘算法研究

作     者:符纬康 

作者单位:昆明理工大学 

学位级别:硕士

导师姓名:丁家满

授予年度:2023年

学科分类:12[管理学] 1201[管理学-管理科学与工程(可授管理学、工学学位)] 08[工学] 081104[工学-模式识别与智能系统] 0835[工学-软件工程] 0811[工学-控制科学与工程] 081202[工学-计算机软件与理论] 0812[工学-计算机科学与技术(可授工学、理学学位)] 

主      题:抽象语法树 代码表示 深度森林 漏洞分类 

摘      要:漏洞挖掘的价值在于显著降低计算机系统的信息安全风险,J2EE技术的快速发展及其在企业、政府机关等行业的广泛应用给漏洞挖掘带来了前所未有的严峻挑战,基于机器学习的漏洞挖掘方法也成为近年来一个重要的研究课题。作为源代码漏洞挖掘的研究热点,当前基于抽象语法树的代码表示方法在将语法树转换为序列时,存在不同结构的语法树被转换为相同序列,导致语义结构信息丢失的问题,而抽象语法树中无关节点的冗余信息则会造成训练时间变长并带来过拟合风险;此外如何使分类器更好地挖掘代码中的深层特征也还有待研究。为解决以上问题,本文提出剪枝语句树的代码表示方法(PST)并在其基础上建立基于剪枝语句树和深度森林的Java源代码漏洞分类模型(PSTDF),主要内容如下:(1)针对语法树转换为序列时不同结构的语法树被转换为相同序列导致语义结构信息丢失、语法树中无关节点的冗余信息带来的训练时间变长及过拟合问题,提出基于剪枝语句树的代码表示(PST方法)。PST方法将Java源代码解析为抽象语法树,接着对抽象语法树进行广度优先遍历生成语句树序列,再对序列中的每一棵语句树使用剪枝算法去除无关节点得到剪枝语句树序列。在公开数据集上进行比较实验的结果表明,PST方法能有效解决语法树转换为序列时的语义结构信息丢失并消除语法树无关节点中冗余信息的负面影响,在分类精度上相比现有方法提升约2.17%,训练时间降低约4.79%。(2)为使分类器更好地挖掘代码中的深层特征,本文以PST方法和深度森林为基础,提出基于剪枝语句树与改进深度森林的漏洞分类模型(PSTDF)。PSTDF的改进深度森林在原始深度森林多粒度扫描的基础上提出一种带预处理阶段的最大池化扫描。最大池化扫描在预处理阶段以宽度固定,高度不等的变长二维向量作为输入,对输入向量转置后对每一行进行最大池化,将变长二维向量转换为定长的一维向量,在扫描阶段以池化的每一行为窗口进行扫描,输出概率向量作为级联森林的输入。与原始多粒度扫描的对比实验结果表明:最大池化扫描能更有效地挖掘代码中的深层特征,相比原始多粒度扫描在精度上提升约1.54%。本文从理论分析和精度、召回率、F1分数、混淆矩阵等实验评价指标在公共数据集上将PSTDF与现有模型进行对比实验。实验结果表明PSTDF取得了比其他模型更显著的效果。

读者评论 与其他读者分享你的观点

用户名:未登录
我的评分