预测代码存在漏洞概率的方法、漏洞检测方法、相关装置制造方法及图纸

技术编号:20448531 阅读:33 留言:0更新日期:2019-02-27 02:48
本发明专利技术公开了预测代码存在漏洞概率的方法、漏洞检测方法、相关装置。该方法的一具体实施方式包括:从待预测代码的多个历史版本的日志数据中提取多个样本特征数据集,并将每个样本特征数据集转换为数值形式的样本特征向量,其中,每个样本特征数据集由对应的历史版本的日志数据中的漏洞修复信息组成;使用预设的训练模型训练所述样本特征向量,以获得样本特征权重向量;从待预测代码的当前版本的日志数据提取特征数据集,并将特征数据集转换为数值形式的特征向量,其中,每个特征数据集由当前版本的日志数据中的代码变动信息组成;根据样本特征权重向量和特征向量预测待预测代码存在漏洞的概率。该实施方式能够自动预测现有代码可能存在的Bug。

Predicting the Probability of Vulnerabilities in Codes, Vulnerability Detection Method and Related Devices

The invention discloses a method for predicting the probability of vulnerability in code, a vulnerability detection method and a related device. One specific implementation of the method includes: extracting multiple sample feature datasets from log data of multiple historical versions of the code to be predicted, and converting each sample feature dataset into a numerical form of sample feature vectors, in which each sample feature dataset consists of vulnerability repair information from the corresponding historical version of log data; using a preset training model The sample feature vectors are trained to obtain the sample feature weight vectors; feature datasets are extracted from the log data of the current version of the code to be predicted and converted into feature vectors in numerical form, where each feature dataset is composed of code change information of the current version of the log data; and the waiting data are predicted according to the sample feature weight vectors and feature vectors. Predict the probability of code vulnerabilities. The embodiment can automatically predict the possible existence of Bugs in existing code.

【技术实现步骤摘要】
预测代码存在漏洞概率的方法、漏洞检测方法、相关装置
本专利技术涉及计算机
,尤其涉及一种预测代码存在漏洞的概率的方法、检测代码漏洞的方法、相关装置、服务器、计算机可读介质。
技术介绍
在软件企业里,一般采用代码库如Git(开源的分布式版本控制系统)、SVN(Subversion的简称,是一个开放源代码的版本控制系统)管理代码,代码的测试采用单元测试和人工测试,其中主要依靠人工白盒扫描代码来检测现有代码是否有Bug(漏洞),例如Eclipse(一开放源代码的、基于Java的可扩展开发平台)的Bug检测系统。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:目前的Bug检测系统基本是依靠简单的规则,例如有没有空判断,进行简单的代码语法和明显列表的Bug测试,不能自动预测代码中的Bug。
技术实现思路
有鉴于此,本专利技术实施例提供一种预测代码存在漏洞的概率的方法、检测代码漏洞的方法、相关装置、服务器、计算机可读介质,能够训练大量已知Bug修复的代码,从而自动预测现有代码可能存在的Bug。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种预测代码存在漏洞的概率的方本文档来自技高网...

【技术保护点】
1.一种预测代码存在漏洞的概率的方法,其特征在于,包括:从待预测代码的多个历史版本的日志数据中提取多个样本特征数据集,并将每个样本特征数据集转换为数值形式的样本特征向量,其中,每个样本特征数据集由对应的历史版本的日志数据中的漏洞修复信息组成;使用预设的训练模型训练所述样本特征向量,以获得样本特征权重向量;从所述待预测代码的当前版本的日志数据提取特征数据集,并将所述特征数据集转换为数值形式的特征向量,其中,每个特征数据集由当前版本的日志数据中的代码变动信息组成;根据所述样本特征权重向量和所述特征向量预测所述待预测代码存在漏洞的概率。

【技术特征摘要】
1.一种预测代码存在漏洞的概率的方法,其特征在于,包括:从待预测代码的多个历史版本的日志数据中提取多个样本特征数据集,并将每个样本特征数据集转换为数值形式的样本特征向量,其中,每个样本特征数据集由对应的历史版本的日志数据中的漏洞修复信息组成;使用预设的训练模型训练所述样本特征向量,以获得样本特征权重向量;从所述待预测代码的当前版本的日志数据提取特征数据集,并将所述特征数据集转换为数值形式的特征向量,其中,每个特征数据集由当前版本的日志数据中的代码变动信息组成;根据所述样本特征权重向量和所述特征向量预测所述待预测代码存在漏洞的概率。2.根据权利要求1所述的方法,其特征在于,所述漏洞修复信息包括代码的修复行数、修复内容、修复记录、编写者信息、提交修复的时间信息,将每个样本特征数据集转换为数值形式的样本特征向量的步骤,包括:将所述漏洞修复信息中的代码的修复行数、修复内容、修复记录、编写者信息、提交修复的时间信息分别转换为样本特征值,并由各样本特征值构造数值形式的样本特征向量;所述代码变动信息包括代码的变动行数、变动内容、变动记录、编写者信息、提交变动的时间信息,将所述特征数据集转换为数值形式的特征向量的步骤,包括:将所述代码变动信息中的代码的变动行数、变动内容、变动记录、编写者信息、提交变动的时间信息分别转换为特征值,并由各特征值构造数值形式的特征向量。3.根据权利要求1所述的方法,其特征在于,每个所述样本特征向量与对应的历史版本的待预测代码存在漏洞的概率相关联,使用预设的训练模型训练所述样本特征向量的步骤,包括:以多个样本特征向量和对应的各历史版本的待预测代码存在漏洞的概率为输入、以样本特征权重向量为输出,使用预设的训练模型训练多个样本特征向量。4.根据权利要求1所述的方法,其特征在于,根据所述样本特征权重向量和所述特征向量预测所述待预测代码存在漏洞的概率的步骤,包括:以所述样本特征权重向量中的各个样本特征权重作为所述特征向量中对应的各特征值的权重值,根据所述特征向量中各特征值的加权和预测所述待预测代码存在漏洞的概率。5.根据权利要求1所述的方法,其特征在于,从待预测代码的多个历史版本的日志数据中提取多个样本特征数据集的步骤之前,还包括:从待预测代码的多个历史版本的日志数据中获取代码的各历史变动信息;从所述各历史变动信息中查找出含有预设的漏洞修复标识的历史变动信息;从查找出的含有预设的漏洞修复标识的历史变动信息中提取与所述漏洞修复标识相关联的漏洞修复信息。6.一种使用权利要求1至5中任一项所述的预测代码存在漏洞的概率的方法检测代码漏洞的方法,其特征在于,包括:监控对当前代码执行所述预测得出的代码存在漏洞的概率;当所述概率超过预设阈值,则确定由所述当前代码的当前日志数据中的代码变动信息引入代码漏洞。7.一种预测代码存在漏洞的概率的装置,其特征在于,包括:样本数据采集模块,用于从待预测代码的多个历史版本的日志数据中提取多个样本特征数...

【专利技术属性】
技术研发人员:朱德伟李树前李伟奇
申请(专利权)人:北京京东尚科信息技术有限公司北京京东世纪贸易有限公司
类型:发明
国别省市:北京,11

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

1