【技术实现步骤摘要】
一种操作系统内核模糊测试系统及方法
[0001]本专利技术实施例涉及网络安全
,具体涉及一种操作系统内核模糊测试系统及方法。
技术介绍
[0002]Google开发维护的内核模糊测试工具Syzkaller,Syzkaller通过使用接口描述语言Syzlang描述的系统调用规范和选择表来生成调用序列。Syzlang是一个领域特定语言(DSL),它提供了丰富的类型、类型构造器和语义修饰器,该语言可以用于精确的编码系统调用输入结构、编码部分语义信息,例如通过结构体、联合体等构造器描述输入结构,通过资源类型、接口特化等特性来描述接口语义。Syzkaller使用选择表来引导调用序列生成,该表记录了一个系统调用被插入到另一个调用之后的概率值,它对生成序列的质量有直接的影响。基于接口描述和选择表,Syzkaller持续的生成并执行调用序列来发现内核中的崩溃,从而实现漏洞挖掘。
[0003]生成的调用序列的质量对模糊测试的效率有极大的影响,通过使用调用之间的影响关系来引导调用序列生成与变异可以极大的提升序列质量,然而现有工作在 ...
【技术保护点】
【技术特征摘要】
1.一种操作系统内核模糊测试系统,其特征在于,所述系统包括:输入模块,用于以接口描述作为输入,所述接口描述包含待测内核系统调用的信息;关系学习模块,包括静态学习模块和动态学习模块;所述静态学习模块用于根据接口描述提供的信息,对每个调用的输入、输出参数的类型进行系统性分析从而推导调用之间的影响关系,获得初始关系;所述动态学习模块用于在模糊测试过程中,通过将最小化后调用序列中的调用进行动态删减后分析对执行反馈的影响来进一步推导新的调用之间的影响关系,获得深层关系;调用序列生成和变异模块,用于根据学习到的调用之间的影响关系,来引导调用序列的生成和变异;执行反馈模块,用于将生成的调用序列通过执行器执行,并获取执行反馈;输出模块,用于输出内核模糊测试结果。2.根据权利要求1所述的一种操作系统内核模糊测试系统,其特征在于,所述静态学习模块具体用于:当两个规则成立时,确定调用A对调用B有影响关系,两个所述规则为:调用A的返回类型为资源类型t1或者输出方向的参数的类型为资源类型t1;调用B的输入参数类型为t1或者与t1兼容的资源类型t2。3.根据权利要求1所述的一种操作系统内核模糊测试系统,其特征在于,所述动态学习模块具体用于:将原始调用序列P1最小化到调用序列P2;对调用序列P2中的每一对相邻调用(C1,C2)进行如下分析:移除调用C1,重新执行调用序列,分析调用C2的执行反馈;若调用C2的执行反馈发生变化,那么调用C1对调用C2必然有影响关系,因为二者相邻;反之则跳过,继续分析下一个相邻调用。4.根据权利要求1所述的一种操作系统内核模糊测试系统,其特征在于,所述调用序列生成和变异模块具体用于:对已知调用序列[C1,C2,C3]选择候选...
【专利技术属性】
技术研发人员:孙浩,沈煜恒,李远翼,姜宇,
申请(专利权)人:北京水木羽林科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。