[发明专利]基于神经网络和专家规则结合的漏洞检测方法及系统在审
| 申请号: | 202310029452.1 | 申请日: | 2023-01-09 |
| 公开(公告)号: | CN116226849A | 公开(公告)日: | 2023-06-06 |
| 发明(设计)人: | 王冠;刘帅 | 申请(专利权)人: | 北京工业大学 |
| 主分类号: | G06F21/56 | 分类号: | G06F21/56;G06F21/57;G06N3/045;G06N3/08 |
| 代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 刘萍 |
| 地址: | 100124 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 基于 神经网络 专家 规则 结合 漏洞 检测 方法 系统 | ||
1.一种基于神经网络和专家规则结合的漏洞检测方法,其特征在于,包括:
步骤1,将源代码使用专家规则提取代码片段,并转换成代码执行树中提取执行逻辑,以可识别序列作为输入,构建神经网络模型,输出可融合的结果特征;
步骤2,从步骤1中的代码片段中提取控制操作和数据操作语义,构建操作图特征,并基于统计信息的特性,突出筛选关键节点信息结构化特征,构建神经网络模型,输出可融合的结果特征;
步骤3,结合步骤1与步骤2的两种特征进行组合检测,使用测试数据集进行量化评价。
2.根据权利要求1所述的一种基于神经网络和专家规则结合的漏洞检测方法,其特征在于,所述步骤1中将源代码使用专家规则提取代码片段,并转换成代码执行树中提取执行逻辑具体包括:
步骤11,使用专家规则提取代码片段:在该过程中,代码程序被专家规则漏洞,通过含有关键点的一个或多个片段来表示整段程序;组成的程序片段不一定对应连续的代码行,但包含隐藏的连续关系,将代码片段与对应标签组合,形成可输入分析的代码片段;
步骤12,提取代码片段的执行树:为了获得能够理解代码片段的执行逻辑,提取执行的跳转顺序,利用代码AST工具,在该过程中为步骤11中获得代码片段构建了一颗执行树,执行树的根节点中为操作符;
步骤13,使用语言库定义操作命令字典,赋予命令数值:需要使用语言操作库建立对应的数值字典,建立为神经网络可操作分析的形式;
步骤14,遍历树的根节点,获取执行逻辑及路径和对应标签:按照执行树的构建方式遍历树的根节点,不遍历叶结点以去除不同程序中因为变量定义不同产生的噪声,并使用操作命令字典,得到有执行逻辑和路径且神经网络可操作的序列特征。
3.根据权利要求1所述的一种基于神经网络和专家规则结合的漏洞检测方法,其特征在于,所述步骤1中以可识别序列作为输入,构建神经网络模型,输出可融合的结果特征具体包括:
步骤15,构建基于序列的神经网络:根据序列特征构建BiLSTM神经网络;构建的序列神经网络由多个BiLSTM层、一个密集层和一个Softmax层组成;减少了从BiLSTM层接收到的向量的维数;Softmax层将从密集层接收到的低维向量作为输入,负责分类结果的表示和格式化,为学习阶段神经网络参数的更新提供反馈;学习阶段的输出是模型参数经过微调的BiLSTM神经网络,本阶段的输出为Softmax的输出结果;
步骤16,输出神经网络连接层结果:同样利用步骤11、12、13、14中的方法将代码处理成可操作的序列特征,然后对步骤15的模型进行训练,输出神经网络连接层结果构成专家规则执行逻辑特征Lf。
4.根据权利要求1所述的一种基于神经网络和专家规则结合的漏洞检测方法,其特征在于,所述步骤2中从步骤1中的代码片段中提取控制操作和数据操作语义,构建操作图特征,具体包括:
步骤21,根据专家规则构建不同类型操作或调用发起节点:在此步骤中,将总结现有的专家规则,归结为几种主要模式,包括函数调用,变量调用,进程调用,循环退出;根据专家规则,函数的不同程序元素在检测漏洞时并不同等重要,分为三种类型的操作或调用发起节点:重要节点Mi(i∈n),普通节点Ci(i∈n)和退出节点Fi(i∈n),n为节点的个数;对于无限循环漏洞,所有循环语句被构建为重要节点,循环条件变量和自我调用被构建为重要节点;
步骤22,提取节点不同类型关联语义和操作顺序:为了捕获节点之间丰富的语义依赖关系,构造了三类关系,即控制流关系、数据流关系和退出关系;每条关系都描述了被代码片段可能穿过的路径,而关系的时间编号则代表了代表操作在函数中的顺序;
控制流关系是为条件语句或安全句柄语句构造的;数据流关系涉及到对变量的访问或修改;退出关系是为了对具体的跳出机制进行表征;
步骤23,结合节点和关联关系构建特征:关系的特征被提取为一个元组:
控制流关系特征元组:r=(Nstart,Nend,Type,Order)
其中Nstart和Nend表示关系的开始和结束节点,Type表示关系类型,Order表示它的时间顺序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310029452.1/1.html,转载请声明来源钻瓜专利网。





