一种对象驱动的Linux内核crash分类方法及装置制造方法及图纸

技术编号:37676412 阅读:24 留言:0更新日期:2023-05-26 04:41
本发明专利技术提供一种对象驱动的Linux内核crash分类方法及装置。该方法包括:步骤1:根据内核错误报告以及相应的内核源码,使用后向污点分析来提取内核错误报告中的所有内核对象;步骤2:分析所有内核对象之间的调用关系以构造得到内核对象调用依赖图;步骤3:根据所述内核对象调用依赖图,使用pagerank算法计算各内核对象的被调用程度;步骤4:以内核对象的被调用程度作为带权二部图的权重信息,将crash与内核对象之间的引用关系抽象为带权二部图;步骤5:计算所述带权二部图中任意两个crash之间的相似度,将相似度大于阈值的crash分到同一种类型。种类型。种类型。

【技术实现步骤摘要】
一种对象驱动的Linux内核crash分类方法及装置


[0001]本专利技术涉及网络安全
,尤其涉及一种对象驱动的Linux内核crash分类方法及装置。

技术介绍

[0002]模糊测试技术是目前最有效的漏洞挖掘技术,尤其是Linux内核漏洞的挖掘近年来迎来了爆发式的增长。据统计,自syzkaller项目发布以来,发现了4980个内核bug,超过了之前20年所发现的漏洞。持续化模糊测试会不断触发同一个错误,产生很多重复的crash。目前,crash分类的方法为:如果crash共享相同的崩溃函数和崩溃类型,那就将它们分组到相同的错误标题下。如图1所示,crash 1

N共享相同的错误标题B。
[0003]但是,这种基于启发式的crash分类方法并不准确。如图1所示,错误标题A、B和C归属于同一个根本原因,但现有的方法并不能将其分到同一个crash组。据统计,2017年9月至2020年11月Syzbot报告了2526个错误标题和超过324万个崩溃报告,根据它们的补丁,可以分成1686个不同的crash组。在2526本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种对象驱动的Linux内核crash分类方法,其特征在于,包括:步骤1:根据内核错误报告以及相应的内核源码,使用后向污点分析来提取内核错误报告中的所有内核对象;步骤2:分析所有内核对象之间的调用关系以构造得到内核对象调用依赖图;步骤3:根据所述内核对象调用依赖图,使用pagerank算法计算各内核对象的被调用程度;步骤4:以内核对象的被调用程度作为带权二部图的权重信息,将crash与内核对象之间的引用关系抽象为带权二部图;步骤5:计算所述带权二部图中任意两个crash之间的相似度,将相似度大于阈值的crash分到同一种类型。2.根据权利要求1所述的一种对象驱动的Linux内核crash分类方法,其特征在于,步骤1中,使用后向污点分析来提取内核错误报告中的所有内核对象,具体包括:步骤1.1:使用内核源码中的宏定义错误检查机制以及KASAN错误检查机制确定崩溃点;步骤1.2:使用内核错误报告中的函数调用跟踪来构造控制流图,然后将所述崩溃点作为source点,基于所述source点在所述控制流图上向后传播污点,直至满足设定的污点分析停止条件;其中,传播路径上的对象即为要提取的内核对象;所述设定的污点分析停止条件为:污点传播到已污染过的变量;或者,污点传播到系统调用的入口、中断处理程序的函数的入口和启动工作队列调度程序的函数的入口中的任意一种入口。3.根据权利要求1所述的一种对象驱动的Linux内核crash分类方法,其特征在于,步骤4具体包括:确定crash集合C={c1,c2,...,c
m
},内核对象集合O={o1,o2,...,o
n
};将crash与内核对象之间的引用关系作为边,得到边的集合E;将内核对象的被调用程度作为边的权重,得到权重矩阵W;最终得到带权二部图G={C,O,E,W}。4.根据权利要求3所述的一种对象驱动的Linux内核crash分类方法,其特征在于,步骤5中,按照公式(1)计算两个crash之间的相似度:其中,I(c
p
)表示带权二部图中所有指向crash节点c
p
的节点集合(即入邻点集合),I(c
q
)表示带权二部图所有指向crash节点c<...

【专利技术属性】
技术研发人员:魏强王允超何林浩武泽慧燕宸毓
申请(专利权)人:中国人民解放军战略支援部队信息工程大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1