[发明专利]一种基于人工智能的软件代码缺陷识别方法及相关装置在审
申请号: | 201911380345.3 | 申请日: | 2019-12-27 |
公开(公告)号: | CN111143219A | 公开(公告)日: | 2020-05-12 |
发明(设计)人: | 辛伟;管志斌;王嘉捷;王晓萌;张利 | 申请(专利权)人: | 中国信息安全测评中心 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 杨华 |
地址: | 100085 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 人工智能 软件 代码 缺陷 识别 方法 相关 装置 | ||
本申请提供了一种基于人工智能的软件代码缺陷识别方法及相关装置,其中,方法包括:将待检测软件代码拆分为具有依赖关系的多个软件代码碎片;通过词向量算法,将每个软件代码碎片转换为软件代码向量,以得到具有依赖关系的多个软件代码向量;根据待检测软件代码对应的多个软件代码向量,确定待检测软件代码是否为缺陷软件代码。由于本申请在确定待检测软件代码是否为缺陷软件代码时,充分考虑了软件代码向量之间的依赖关系,从而识别待检测软件代码是否为缺陷软件代码时准确性更高。
技术领域
本申请涉及代码缺陷检测技术领域,特别是涉及一种基于人工智能的软件代码缺陷识别方法及相关装置。
背景技术
软件代码缺陷是指隐藏在代码中的安全漏洞,如指针误用、数组误用、缓存溢出等,软件代码缺陷会导致很多安全问题,如信息泄露、系统崩溃、死锁等。因此,如何准确且快速地识别出软件代码中的各种缺陷,成为保障信息安全的重中之重。
目前,通常使用传统的机器学习算法提取待检测软件代码的软件代码特征和缺陷代码的代码缺陷特征,并使用模式匹配的方法,将待检测软件代码的软件代码特征与缺陷代码的代码缺陷特征进行相似度匹配,以确定待检测软件代码是否含有缺陷。但是,此种方式在对待检测软件代码中的缺陷进行识别时的准确性较低。
发明内容
有鉴于此,本申请提供了一种基于人工智能的软件代码缺陷识别方法及相关装置,用以提高待检测软件代码中缺陷识别的准确性。该方案如下:
一种基于人工智能的软件代码缺陷识别方法,包括:
将待检测软件代码拆分为具有依赖关系的多个软件代码碎片;
通过词向量算法,将每个软件代码碎片转换为软件代码向量,以得到具有依赖关系的多个软件代码向量;
根据待检测软件代码对应的多个软件代码向量,确定待检测软件代码是否为缺陷软件代码。
优选地,还包括:
在对待检测软件代码进行拆分前,通过模式匹配算法对待检测软件代码进行处理,得到去除注释、空白行和错误字符的待检测软件代码。
优选地,将待检测软件代码拆分为具有依赖关系的多个软件代码碎片,包括:
通过抽象语法树算法,将待检测软件代码拆分为具有结构依赖关系的多个软件代码碎片;
和/或,
通过程序依赖图,将待检测软件代码拆分为具有语义依赖关系的多个软件代码碎片。
优选地,软件代码向量为数值形式。
优选地,根据多个软件代码向量,确定待检测软件代码是否为缺陷软件代码,包括:
将多个软件代码向量输入预先建立的第一缺陷识别模型,获得第一缺陷识别模型输出的第一缺陷判决结果,第一缺陷判决结果表明待检测软件代码是否为缺陷软件代码;
其中,第一缺陷识别模型为以训练软件代码对应的多个训练软件代码向量为训练样本,以标注的训练软件代码是否为缺陷软件代码的结果为样本标签训练得到。
优选地,根据多个软件代码向量,确定待检测软件代码是否为缺陷软件代码,包括:
将每个软件代码向量输入预先建立的第二缺陷识别模型,获得第二缺陷识别模型输出的第二缺陷判决结果,第二缺陷判决结果表明软件代码向量对应的软件代码碎片是否为缺陷软件代码碎片;其中,第二缺陷识别模型为以训练软件代码对应的每个训练软件代码向量为训练样本,以标注的训练软件代码向量对应的软件代码碎片是否为缺陷软件代码碎片的结果为样本标签训练得到;
根据多个软件代码向量分别对应的第二缺陷判决结果,确定待检测软件代码是否为缺陷软件代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国信息安全测评中心,未经中国信息安全测评中心许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911380345.3/2.html,转载请声明来源钻瓜专利网。