[发明专利]一种基于集成神经网络的源代码漏洞检测方法有效
| 申请号: | 201510236687.3 | 申请日: | 2015-05-11 | 
| 公开(公告)号: | CN104809069A | 公开(公告)日: | 2015-07-29 | 
| 发明(设计)人: | 周诚;张涛;马媛媛;楚杰;汪晨;时坚;李伟伟;张波;黄秀丽;费稼轩 | 申请(专利权)人: | 中国电力科学研究院;国网智能电网研究院;国家电网公司;国网安徽省电力公司 | 
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06N3/02 | 
| 代理公司: | 北京安博达知识产权代理有限公司 11271 | 代理人: | 徐国文 | 
| 地址: | 100192 北*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 基于 集成 神经网络 源代码 漏洞 检测 方法 | ||
1.一种基于集成神经网络的源代码漏洞检测方法,其特征在于:所述方法包括以下步骤:
步骤1:建立漏洞检测模型;
步骤2:基于漏洞检测模型进行源代码漏洞检测。
2.根据权利要求1所述的基于集成神经网络的源代码漏洞检测方法,其特征在于:所述步骤1包括以下步骤:
步骤1-1:给定训练集;
步骤1-2:对源代码进行预处理,之后基于N-gram算法进行特征提取;
步骤1-3:基于提取的特征,采用ReliefF算法进行特征选取;
步骤1-4:基于集成神经网络进行源代码漏洞检测学习。
3.根据权利要求2所述的基于集成神经网络的源代码漏洞检测方法,其特征在于:所述步骤1-1中,给定经过人工分类的训练集D={d1,d2,…,di,…,dn},其中di表示第i个训练样本,即第i个源代码;n表示训练样本个数,即源代码个数。
4.根据权利要求2所述的基于集成神经网络的源代码漏洞检测方法,其特征在于:所述步骤1-2包括以下步骤:
步骤1-2-1:对每个源代码进行预处理,包括数据规整、去噪和剔除垃圾数据,预处理后的训练样本数用m表示;
步骤1-2-2:基于N-gram算法对源代码进行划分,生成对应的N-gram集合,完成特征提取。
5.根据权利要求2所述的基于集成神经网络的源代码漏洞检测方法,其特征在于:所述步骤1-3具体包括以下步骤:
步骤1-3-1:初始化每个特征属性A的特征权值W[A],使得W[A]=0;
步骤1-3-2:统计源代码类别中训练样本个数,为每个类别C分配kc值;
步骤1-3-3:随机提取训练样本R,并找到与训练样本R最近邻的kc个同类别的训练样本Hj;
步骤1-3-4:从提取的训练样本R的不同类别的训练样本中均找出kc个近邻训练样本Mj(C);
步骤1-3-5:对每个特征属性A,按照以下公式更新其特征权值:
其中,diff()函数定义为:
若特征是离散的,有
若特征是连续的,有
其中,value(A,I1)表示训练样本I1在特征属性A上的值,value(A,I2)表示训练样本I2在特征属性A上的值,max(A)表示特征属性A在所有训练样本中的最大值,min(A)表示特征属性A在所有训练样本中的最小值;
步骤1-3-6:根据更新后的特征权值,选择特征值最大的若干维作为下一步集成神经网络分类器的学习特征。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电力科学研究院;国网智能电网研究院;国家电网公司;国网安徽省电力公司,未经中国电力科学研究院;国网智能电网研究院;国家电网公司;国网安徽省电力公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510236687.3/1.html,转载请声明来源钻瓜专利网。





