【技术实现步骤摘要】
一种基于深度学习的内核模糊测试序列生成方法
本专利技术涉及人工智能领域的深度学习,特别是涉及对系统调用序列的学习。具体将处理后的系统调用序列作为神经网络的输入,对其进行训练得到模型,进而利用模型生成新的系统调用序列。后续将生成的系统调用序列作为内核模糊测试的输入,以此提升内核模糊测试的效率。
技术介绍
现代操作系统内核把虚拟地址空间分成两部分,一部分是用户空间另一部分是内核空间。浏览器、视频播放器等应用运行在用户空间;操作系统代码如进程管理、内存管理等运行在内核空间。出于安全的目的,这种设计使得用户空间程序不得直接访问和执行内核空间的数据和代码。而系统调用正是用户和内核进行交互的方式,通过这种方式既可以保护内核空间,又可以让用户轻松获取操作系统提供的底层服务。一般来说,用户一次简单的操作是由多个系统调用共同完成,这些系统调用组成了系统调用序列。一条系统调用序列包含了操作系统执行这次操作的完整信息。自从AlexNet(深度学习方法)在2012年大规模图像识别大赛ILSVRC中以压倒性优势胜出以来,深度学习受到大量的关注 ...
【技术保护点】
1.一种基于深度学习的内核模糊测试序列生成方法,其步骤如下:/n(1)数据的收集与处理,包括收集带参数的系统调用序列和trace格式的序列,处理序列数据使其符合神经网络的输入格式;/n(2)模型的构建,选取适合提取系统调用依赖的网络模型,并确定网络结构;/n(3)模型的训练,对输入数据分批,初始化网络参数,计算损失函数的值以调整网络参数;/n(4)模型的评估,采用归一化的编辑距离作为评估指标,表明测试序列和预测序列的相似性;/n(5)序列的生成,利用训练好的模型进行序列生成。后续将生成的序列作为内核模糊测试的输入。/n
【技术特征摘要】
1.一种基于深度学习的内核模糊测试序列生成方法,其步骤如下:
(1)数据的收集与处理,包括收集带参数的系统调用序列和trace格式的序列,处理序列数据使其符合神经网络的输入格式;
(2)模型的构建,选取适合提取系统调用依赖的网络模型,并确定网络结构;
(3)模型的训练,对输入数据分批,初始化网络参数,计算损失函数的值以调整网络参数;
(4)模型的评估,采用归一化的编辑距离作为评估指标,表明测试序列和预测序列的相似性;
(5)序列的生成,利用训练好的模型进行序列生成。后续将生成的序列作为内核模糊测试的输入。
2.根据权利要求1所述的本发明所需的数据,需要执行如下过程:
(1)从Syzkaller维护的Bug数据网站收集带参数的系统调用序列,从Linux内核测试程序收集trace格式序列,并将trace格式序列先转换为带参数的序列;
(2)删除参数得到纯系统调用序列;
(3)对序列进行编码,将系统调用映射为系统调用号。
3.根据权利要求1所述的针对系统调用序列的模型,其具有以下特征:
(1)使用传统机器学习无法提前构思合适准确的特征量来描述序列调用之间的依赖,因此本发明采用循环神经网络RNN和长短时记忆神经网络LSTM,两者的递归循环结构能够保留信息的关联性,广泛用于序列训练;
(2)整个模型包括输入层,隐藏层和输出层,将系统调用序列编码后先输入给神经网络的输入层,接着传递给隐藏层迭代式地对数据进行运算,最后将隐藏层数据结果传递到输出层,经过激活函数后进...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。