[发明专利]一种面向代码安全的提交优先级排序方法和系统在审
申请号: | 202110564803.X | 申请日: | 2021-05-24 |
公开(公告)号: | CN113312617A | 公开(公告)日: | 2021-08-27 |
发明(设计)人: | 戴启铭;张贺;毛润丰;刘博涵;周鑫;荣国平;邵栋 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57;G06F8/41 |
代理公司: | 南京明杰知识产权代理事务所(普通合伙) 32464 | 代理人: | 张文杰 |
地址: | 210093 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 面向 代码 安全 提交 优先级 排序 方法 系统 | ||
1.一种面向代码安全的提交优先级排序系统,其特征在于:该系统包括输入模块、训练模块、预测模块、计算模块和排序模块;
所述输入模块用于从代码提交中提取抽象语法树片段子集信息输入系统;
所述训练模块用于使用处理完毕后的训练数据对BERT预训练模型进行参数微调和适应性训练,使之满足具体的下有安全漏洞预测任务,所述训练数据包括标准化的抽象语法树片段子集及其对应的结果标签信息;
所述预测模块用于从新的代码提交中提取其抽象语法树片段子集并输入训练好的安全漏洞预测分类器中,判断每一个代码片段的安全性;
所述计算模块用于根据安全漏洞预测分类器对本次代码提交中所有代码片段的预测结果,统计安全漏洞预测分类器的所有预测结果并以之作为本次代码提交的安全状况;
所述排序模块用于根据代码提交的自身安全状况,系统会对代码提交等待集合中的所有的代码进行优先级排序,让含有安全漏洞代码片段最多的代码提交优先出列获取服务器资源。
2.根据权利要求1所述的一种面向代码安全的提交优先级排序系统,其特征在于:所述输入模块包括抽象语法树提取单元、抽象语法树解析单元、抽象语法树标准化单元、结果标签编码单元、训练数据编码单元;
所述抽象语法树提取单元用于从抽象语法树信息中提取函数方法粒度的抽象语法树片段子集,所述抽象语法树片段子集包括描述函数方法的代码片段的结构和语义信息的抽象语法树;
所述抽象语法树解析单元用于从抽象语法树信息中提取函数方法粒度的抽象语法树片段子集;
所述抽象语法树标准化单元用于对所述抽象语法树片段子集进行标准化处理得到标准化抽象语法树片段子集;
所述结果标签编码单元用于对函数方法粒度的安全性结果进行标签编码,并将其作为安全漏洞预测模型的训练数据的结果标签;
所述训练数据编码单元用于将编码安全漏洞预测模型的原始训练数据及其对应的结果标签信息形成BERT预训练模型的初始训练语料;所述初始训练语料包括标准化抽象语法树片段子集及其对应的结果标签信息的数据结构。
3.根据权利要求1所述的一种面向代码安全的提交优先级排序系统,其特征在于:所述训练模块包括关键词保留单元、原始词汇表扩充单元、参数调优单元、模型训练单元;
所述关键词保留单元编程语言中的关键词、保留词以及抽象语法树片段中的固定词汇;
所述原始词汇表扩充单元用于扩充BERT预训练模型中的原始词汇表,形成用于安全漏洞预测分类器训练的新的词汇表;
所述参数调优单元用于调整BERT预训练模型的批量大小batch_size、学习比率learning_rate、迭代轮数epochs;
所述模型训练单元用于依据最优参数,将训练数据输入BERT预训练模型中,训练安全漏洞预测分类器。
4.根据权利要求1所述的一种面向代码安全的提交优先级排序系统,其特征在于:所述预测模块包括抽象语法树输入单元和结果输出单元;
所述抽象语法树输入单元用于复用输入模块,生成用于安全漏洞预测分类器的输入数据;
所述结果输出单元用于输出特定代码片段的安全性预测结果。
5.根据权利要求1所述的一种面向代码安全的提交优先级排序系统,其特征在于:所述计算模块包括统计单元和属性设置单元;
所述统计单元用于对抽象语法树子集中所有抽象语法树片段进行安全漏洞预测的结果,统计抽象语法树片段子集中被预测为含有安全漏洞的片段数量;
所述属性设置单元用于将所述含有安全漏洞的片段数量作为本次代码提交的安全性外在表现,并将该值与本次代码提交的属性变量绑定。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110564803.X/1.html,转载请声明来源钻瓜专利网。