本发明涉及网络安全,尤其是涉及一种溢出漏洞侦测模型构建方法、装置及存储介质。
背景技术:
1、缓冲区溢出漏洞是一种常见的计算机安全漏洞,它出现在许多软件应用和操作系统中。这种漏洞背后的根本原因是程序在处理数据时没有正确地限制输入数据的大小,导致超出预分配的内存缓冲区范围,从而覆盖了相邻内存区域的内容。
2、现阶段对缓冲区的溢出漏洞的侦测充满挑战性。首先,缓冲区溢出漏洞具有多样性,可以在不同类型的程序中出现,包括操作系统、网络服务、应用程序等,且每个程序都可能使用不同的编程语言。其次缓冲区溢出漏洞侦测通常伴随着巨大的时间和资源的消耗,尤其对于复杂的程序,监测过程可能会影响程序的性能和响应时间。最后,缓冲区溢出漏洞侦测具有隐藏性,某些特殊的缓冲区溢出漏洞只有在特定的条件下触发,这大大增加了侦测的难度。
3、现有的溢出漏洞侦测方法主要是通过模糊测试进行动态分析,通过随机自动生成大量的随机或有针对性的输入,以发现程序中的漏洞。现有的缓冲区溢出漏洞侦测方法可能生成大量无效的输入,导致缓冲区溢出漏洞侦测的效率较差。
技术实现思路
1、本发明提供一种溢出漏洞的侦测模型构建方法、装置及存储介质,以现有的溢出漏洞的侦测方法可能生成大量无效的输入,导致缓冲区溢出漏洞侦测的效率较差的技术问题。
2、本发明的一个实施例提供了一种溢出漏洞的侦测模型构建方法,包括:
3、获取缓冲区的溢出漏洞集合;
4、将所述溢出漏洞集合转换为词向量,并将所述词向量划分为训练集和测试集;
5、基于门控循环单元构建漏洞侦测模型,将所述训练集输入值所述漏洞侦测模型中,得到预测数据;
6、将所述预测数据与所述测试集的真实数据进行比对,根据比对结果对所述漏洞侦测模型进行优化,得到最终漏洞侦测模型。
7、进一步的,所述将所述溢出漏洞集合转换为词向量,包括:
8、将所述溢出漏洞集合整合为对应的二进制代码;
9、对所述二进制代码进行反汇编处理,得到对应的汇编代码;
10、将所述汇编代码转换为词向量。
11、进一步的,所述将所述汇编代码转换为词向量,包括:
12、将所述汇编代码拆分为若干个指令序列;
13、将所有的汇编指令收集在一个词汇表中,对每一所述汇编指令分配一个对应的整数id后,将所述词汇表作为word2vec模型的输入;
14、使用所述指令序列和对应的词汇表,通过cbow算法训练所述word2vec模型,在模型训练过程中根据所述指令序列和所述汇编指令之间的语义关系生成词向量。
15、进一步的,所述通过cbow算法训练所述word2vec模型,包括:
16、将上下文窗口的所有词向量取平均值,得到上下文向量;
17、将所述上下文向量作为所述word2vec模型的输入预测目标单词,进行模型训练,所述word2vec模型的目标为最小化预测的目标单词与真实目标单词之间的差距;
18、在训练过程中,采用交叉熵损失函数进行训练,并通过梯度下降法优化模型参数,以最小化损失函数。
19、进一步的,所述漏洞侦测模型的网络架构包括输入层、隐层藏、门控单元、记忆单元和输出层;
20、所述输入层用于接受输入序列数据;
21、所述隐藏层包括若干个gur单元,每一所述gur单元设置有预设的权重和偏执,所述隐藏层用于在每个时间步接受输入数据以及前一个时间步长的隐藏状态;
22、所述门控单元包括更新门和重置门,所述重置门用于将新输入数据与记忆数据结合,以更新输出数据;所述更新门用于确定保存到当前时间步的记忆数据的数据量;
23、所述记忆单元用于保存当前时间步的信息;
24、所述输出层用于将所述漏洞侦测模型的输出数据转化为预测数据。
25、本发明的一个实施例提供了一种溢出漏洞的侦测方法,包括:
26、利用如上述的溢出漏洞的侦测模型构建方法得到最终漏洞侦测模型;
27、将待侦测溢出漏洞输入至所述最终漏洞侦测模型中,得到所述待侦测溢出漏洞的侦测结果。
28、本发明的一个实施例提供了一种溢出漏洞的侦测模型构建装置,包括:
29、溢出漏洞获取模块,用于获取缓冲区的溢出漏洞集合;
30、词向量转换模块,用于将所述溢出漏洞集合转换为词向量,并将所述词向量划分为训练集和测试集;
31、漏洞预测模块,用于基于门控循环单元构建漏洞侦测模型,将所述训练集输入值所述漏洞侦测模型中,得到预测数据;
32、侦测模型构建模块,用于将所述预测数据与所述测试集的真实数据进行比对,根据比对结果对所述漏洞侦测模型进行优化,得到最终漏洞侦测模型。
33、进一步的,所述词向量转换模块还用于:
34、将所述溢出漏洞集合整合为对应的二进制代码;
35、对所述二进制代码进行反汇编处理,得到对应的汇编代码;
36、将所述汇编代码转换为词向量。
37、进一步的,所述将所述汇编代码转换为词向量,包括:
38、将所述汇编代码拆分为若干个指令序列;
39、将所有的汇编指令收集在一个词汇表中,对每一所述汇编指令分配一个对应的整数id后,将所述词汇表作为word2vec模型的输入;
40、使用所述指令序列和对应的词汇表,通过cbow算法训练所述word2vec模型,在模型训练过程中根据所述指令序列和所述汇编指令之间的语义关系生成词向量。
41、进一步的,所述漏洞侦测模型的网络架构包括输入层、隐层藏、门控单元、记忆单元和输出层;
42、所述输入层用于接受输入序列数据;
43、所述隐藏层包括若干个gur单元,每一所述gur单元设置有预设的权重和偏执,所述隐藏层用于在每个时间步接受输入数据以及前一个时间步长的隐藏状态;
44、所述门控单元包括更新门和重置门,所述重置门用于将新输入数据与记忆数据结合,以更新输出数据;所述更新门用于确定保存到当前时间步的记忆数据的数据量;
45、所述记忆单元用于保存当前时间步的信息;
46、所述输出层用于将所述漏洞侦测模型的输出数据转化为预测数据。
47、本发明实施例将所述溢出漏洞集合转换为词向量,能够有效避免大量无效的输入对漏洞侦测的影响,有效提高漏洞侦测的效率。
48、进一步的,本发明实施例构建基于门控循环单元的循环神经网络wv-gru模型,通过采用wv-gru门控逻辑单元,在处理长期依赖关系时能更好的传递梯度,从而减轻梯度消失问题,使得在长序列上的训练更加稳定,进而能够有效提高缓冲区溢出漏洞侦测的效率。
1.一种溢出漏洞的侦测模型构建方法,其特征在于,包括:
2.如权利要求1所述的溢出漏洞的侦测模型构建方法,其特征在于,所述将所述溢出漏洞集合转换为词向量,包括:
3.如权利要求1所述的溢出漏洞的侦测模型构建方法,其特征在于,所述将所述汇编代码转换为词向量,包括:
4.如权利要求1所述的溢出漏洞的侦测模型构建方法,其特征在于,所述通过cbow算法训练所述word2vec模型,包括:
5.如权利要求1所述的溢出漏洞的侦测模型构建方法,其特征在于,所述漏洞侦测模型的网络架构包括输入层、隐层藏、门控单元、记忆单元和输出层;
6.一种溢出漏洞的侦测方法,其特征在于,包括:
7.一种溢出漏洞的侦测模型构建装置,其特征在于,包括:
8.如权利要求7所述的溢出漏洞的侦测模型构建装置,其特征在于,所述词向量转换模块还用于:
9.如权利要求8所述的溢出漏洞的侦测模型构建装置,其特征在于,所述将所述汇编代码转换为词向量,包括:
10.如权利要求7所述的溢出漏洞的侦测模型构建装置,其特征在于,所述漏洞侦测模型的网络架构包括输入层、隐层藏、门控单元、记忆单元和输出层;