CN115658492A - 内核配置项异常值的检测方法及装置 - Google Patents

内核配置项异常值的检测方法及装置 Download PDF

Info

Publication number
CN115658492A
CN115658492A CN202211280479.XA CN202211280479A CN115658492A CN 115658492 A CN115658492 A CN 115658492A CN 202211280479 A CN202211280479 A CN 202211280479A CN 115658492 A CN115658492 A CN 115658492A
Authority
CN
China
Prior art keywords
configuration
kernel
version
value
versions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202211280479.XA
Other languages
English (en)
Inventor
孙滢
侯朋朋
于佳耕
黄山云
马成宇
纪贤松
武延军
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhongke Nanjing Software Technology Research Institute
Institute of Software of CAS
Original Assignee
Zhongke Nanjing Software Technology Research Institute
Institute of Software of CAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhongke Nanjing Software Technology Research Institute, Institute of Software of CAS filed Critical Zhongke Nanjing Software Technology Research Institute
Priority to CN202211280479.XA priority Critical patent/CN115658492A/zh
Publication of CN115658492A publication Critical patent/CN115658492A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开了一种内核配置项异常值检测方法及装置。所述方法包括:构建内核默认配置数据集;遍历待检测内核配置文件中所有内核配置项的名称、取值,并结合所述内核默认配置数据集补充未在待检测内核配置文件中出现的配置项取值,以构建待检测配置数据集V;将所述待检测配置数据集V与所述内核默认配置数据集中的配置项进行比较,得到所述待检测内核配置文件的异常检测结果。本发明基于内核社区和主流发行版的内核默认配置建立数据集进行异常值检测,能够检测出满足配置项依赖关系、却不恰当配置的异常值,减少配置误操作或遗漏的可能性,提高内核配置成功率。

Description

内核配置项异常值的检测方法及装置
技术领域
本发明属于计算机软件技术领域;涉及对Linux内核配置文件检查情景,提出了一种内核配置项异常值检测方法及装置。
背景技术
Linux内核是最著名的大型复杂、高度可配置开源系统之一,内核社区贡献者数量相当庞大且发展迅速,内核源码及其子系统呈现超线性增长态势,代码行数超过2800万行,配置选项接近18000个。Linux内核配置涉及到内核组态,包括CPU体系架构、块设备、加密、设备驱动、文件系统、内存管理、网络、安全、虚拟化等方方面面的问题,很少开发者能够对所有这些问题或特性都十分了解。除了内核巨大的配置空间以外,配置项之间还存在复杂的依赖约束,因此在人工配置内核过程中很容易出错。内核配置出现异常,很容易造成系统功能无法正常使用或影响软件性能、以及其它不可预知的问题。
现有内核配置项检测技术主要解决的问题可以分为两类,一类是配置与实现一致性缺陷,这是由于内核大规模配置可变性带来的代码实现缺陷,通过检查内核配置模型与代码实现的配置项不匹配问题,旨在提高Linux源代码质量;另一类是配置项冲突,很多工具通过解析内核配置项的依赖关系,检测出违反Kconfig文件约束条件的配置项,发现引起冲突的错误值。
但在实际应用的内核配置中,还存在满足配置项依赖关系但取值并非合适的异常值,比如一些调试使用或特殊应用场景下的配置项在正式发布版本中一般被关闭,如果被意外打开,虽然从逻辑关系上说没有违反约束条件,但不必要的功能被编译进内核,不仅增加了内核体积,还可能占用更多内存和CPU,导致系统性能下降;还有一些基础功能、常见设备或安全相关的配置项若被意外关闭,可能影响系统的正常使用或带来意外的安全隐患。上述内核配置项检测技术,无法检查出这些不恰当设置,为此,需要一种内核配置项异常值检测方法,以解决这些配置不恰当的问题。
发明内容
针对内核配置项数量庞大、配置不恰当的问题,本发明的目的在于提供一种内核配置项异常值检测方法及装置。该方法可基于主流发行版内核默认配置数据集对目标内核配置文件进行检测,为技术人员设置内核配置项提供二次检查确认,提高内核配置的准确性。
本发明的技术内容包括:
一种内核配置项异常值检测方法,所述方法包括:
收集内核源码及相应的内核默认配置文件,以得到内核配置数据;
基于CPU架构与应用场景,分类所述内核配置数据,并依据内核版本发展对分类后的内核配置数据排序;
统计所述内核配置数据中各配置项值在历史版本中的变化情况,对中间版本中跳变的异常值和最新版本中跳变的异常值进行修复,以生成内核默认配置数据集;
遍历待检测内核配置文件中所有内核配置项的名称、取值,并结合所述内核默认配置数据集补充未在待检测内核配置文件中出现的配置项取值,以构建待检测配置数据集V;
将所述待检测配置数据集V与所述内核默认配置数据集中的配置项进行比较,得到所述待检测内核配置文件的异常检测结果。
进一步地,所述收集内核源码及相应的内核默认配置文件,以得到内核配置数据,包括:
基于所述CPU架构与所述应用场景,收集Linux内核社区、主流发行版的内核源码及相应的内核默认配置文件;
从所述内核源码中抽取配置项名称,构建配置项全集;
基于所述内核默认配置文件,获取所述配置项全集中部分配置项名称的取值;
针对所述配置项全集中没有取值的配置项,赋值配置项为关闭,以得到内核配置数据。
进一步地,基于CPU架构与应用场景,分类所述内核配置数据,包括:
基于内核配置文件中的注释行,得到所述内核配置数据对应的CPU架构;
基于内核配置文件中的内核config文件名,得到所述内核配置数据对应的应用场景;
对无法标识CPU架构或应用场景的内核配置数据,进行人为重命名。
进一步地,所述对中间版本中跳变的异常值进行修复,包括:
比较中间版本与前后版本的配置项取值;
在中间版本与前后版本的配置项值取值相同的情况下,判断中间版本未跳变;
在中间版本与前后版本的配置项值不相同的情况下,针对中间版本中配置项新值,计算中间版本与前后版本的版本数量;
在中间版本的版本数量大于前后版本中一版本的版本数量的情况下,或中间版本的版本数量与前后版本的版本数量之和的比值不小于一第一阈值,判断中间版本未跳变;
在中间版本的版本数量小于前后版本中任一版本的版本数量的情况下,且中间版本的版本数量与前后版本的版本数量之和的比值小于一第一阈值,则将中间版本配置项的取值与配置的最终值、其它发行版配置历史值比较;
在中间版本配置项的取值与配置的最终值相同、或中间版本配置项的取值与其它发行版配置历史值相同的情况下,判断中间版本未跳变;
在中间版本配置项的取值与配置的最终值不相同、且中间版本配置项的取值与其它发行版配置历史值不相同的情况下,判断中间版本跳变;
核查中间版本中配置项的异常值,并进行修正。
进一步地,所述对最新版本中跳变的异常值进行修复,包括:
比较最新版本与历史版本中的配置项取值;
在最新版本与历史版本中的配置项取值相同的情况下,判断最新版本未跳变;
在最新版本与历史版本的配置项值不相同的情况下,计算最新版本与历史版本的版本数量;
在最新版本的版本数量大于历史版本中一版本的版本数量,或最新版本的版本数量与历史版本的版本数量的比值不小于一第二阈值的情况下,判断最新版本未跳变;
在最新版本的版本数量小于前后版本中任一版本的版本数量,且最新版本的版本数量与历史版本的版本数量的比值小于一第二阈值的情况下,将最新版本配置项的取值与其他发行版本相同版本范围中配置项最新值比较;
在最新版本配置项的取值与其他发行版本相同版本范围中配置项最新值相同,或最新版本配置项的取值为y/m且其他发行版本相同版本范围中配置项最新值为m/y,或其他发行版本相同版本范围中配置项中不存在最新版本配置项的情况下,判断最新版本未跳变;其中,y表示配置项打开,m表示配置项设为模块;
在最新版本配置项的取值与其他发行版本相同版本范围中配置项最新值不相同的情况下,若最新版本配置项的取值为y且其他发行版本相同版本范围中配置项最新值为n,或最新版本配置项的取值为n且其他发行版本相同版本范围中配置项最新值为y/m,则判断最新版本跳变;其中,n表示配置项关闭;
核查最新版本中配置项的异常值,并进行修正。
进一步地,所述将所述待检测配置数据集V与所述内核默认配置数据集中的配置项进行比较,得到所述待检测内核配置文件的异常检测结果,包括:
遍历待检测配置数据集V,逐个配置项Vi比较内核默认配置数据集中相同发行版和版本号的配置项取值;
在每一配置项Vi与内核默认配置数据集中相同发行版和版本号的配置项取值相同的情况下,判断所述待检测内核配置文件正常;
在每一配置项Vi与内核默认配置数据集中相同发行版和版本号的至少一配置项取值不相同的情况下,计算配置项Vi在内核默认配置数据集中相同发行版、后续版本范围的取值概率;
在配置项Vi在内核默认配置数据集中相同发行版、后续版本范围的取值概率大于一第三阈值的情况下,判断所述待检测内核配置文件正常;
在配置项Vi在内核默认配置数据集中相同发行版、后续版本范围的取值概率小于一第三阈值的情况下,计算配置项Vi在内核默认配置数据集中其它发行版、相同版本范围的取值概率;
在配置项Vi在内核默认配置数据集中其它发行版、相同版本范围的取值概率大于一第四阈值的情况下,判断所述待检测内核配置文件正常;
在配置项Vi在内核默认配置数据集中其它发行版、相同版本范围的取值概率小于一第四阈值的情况下,判断所述待检测内核配置文件异常。
进一步地,所述方法还包括:
在所述待检测内核配置文件的异常检测结果为所述待检测内核配置文件异常的情况下,输出判定异常值的配置项列表。
进一步地,所述配置项列表包括:所述内核默认配置数据集中的参考值、使能率和建议值。
一种内核配置项异常值检测装置,其特征在于,所述装置包括:
数据获取模块,用于收集内核源码及相应的内核默认配置文件,以得到内核配置数据;
数据准备模块,用于基于CPU架构与应用场景,分类所述内核配置数据,并依据内核版本发展对分类后的内核配置数据排序;
数据处理模块,用于统计所述内核配置数据中各配置项值在历史版本中的变化情况,对中间版本中跳变的异常值和最新版本中跳变的异常值进行修复,以生成内核默认配置数据集。
数据检测模块,用于遍历待检测内核配置文件中所有内核配置项的名称、取值,并结合所述内核默认配置数据集补充未在待检测内核配置文件中出现的配置项取值,以构建待检测配置数据集V;将所述待检测配置数据集V与所述内核默认配置数据集中的配置项进行比较,得到所述待检测内核配置文件的异常检测结果。
一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一所述方法。
与现有技术相比,本发明的积极效果为:
(1)本发明首次从实际应用中内核配置项默认值的角度,基于内核社区和主流发行版的内核默认配置建立数据集进行异常值检测,具有坚实可靠的数据依据;
(2)不同于传统配置项冲突检测,本发明能够检测出满足配置项依赖关系、却不恰当配置的异常值,减少配置误操作或遗漏的可能性,提高内核配置成功率;
(3)本发明的检测方法不局限于单一的体系架构或应用场景,适用范围更广。
附图说明
图1内核配置项异常值检测方法整体架构。
图2内核默认配置数据集中间值跳变检测流程。
图3内核默认配置数据集最新值跳变检测流程。
具体实施方式
下面将结合本发明实施方式,对本发明实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是本发明特定实施方式,而不是全部的实施方式。基于本发明中的实施方式,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施方式,都属于本发明保护的范围。
通常若某配置项的默认值一直是Valuea,突然被修改成了Valueb,接着在后续版本又被恢复成了Valuea,且只有很少部分版本是Valueb,那么Valueb就是该配置项的异常值。基于上述场景,本发明的内核配置项异常值检测方法,综合了配置项值在版本发展时间维度上的变化情况和多个发行版之间的横向比较来进行异常值判定,其技术方案如图1所示,包括:
①在数据收集阶段,通过三种途径收集Linux内核社区以及多个主流发行版的内核默认配置文件,一是从内核社区源码make config生成多个版本的默认配置文件;二是从发行版软件包源提供的内核安装包,通过软件包管理器安装得到内核安装包中的默认配置文件;三是从部分发行版git或github仓库获取内核默认配置文件。通过这三种方式得到初始的内核默认配置文件数据集。
②在数据准备阶段,首先考虑到在内核默认配置文件中仅包含所有设置值为’y’、’m’、字符型、数字型的配置项以及部分设置值为’n’的配置项,部分不是直接设为’n’、而是由于有依赖关系的父项为’n’导致关闭的子项不在.config文件中记录,因此为了获得完整的内核配置数据,需要从内核源码抽取配置项全集,将未出现在.config文件中的配置项值记为’n’,与已有配置项取值合并在一起,才是完整的内核配置数据;其次在不同的CPU体系架构和应用场景下,内核配置有所不同,在整理数据集时需要进行分类,分类依据如下:一是体系架构的区分,在内核配置文件中开头几行,一般都有“#Linux/arch xx.xx.xxKernel Configuration”格式的注释行,其中“Linux/”之后的内容即为该配置适用的体系架构,以此为依据对内核配置按体系架构分类;二是应用场景的区分,可以从内核config文件名进行分类,通用版本一般有“generic”、“default”或不带特殊标识,服务器版本配置文件名一般有“server”标识,实时版本一般有“rt”标识,低延时版本一般有“lowlatency”、“preempt”标识,云环境版本一般有“cloud”标识等,若原始文件名不符合上述规律,在加入数据集时人为重命名即可;最后按版本发展的序号和关键字排序,设置版本顺序,例如1.0rc1<1.0<1.0-1<1.0.1<1.1,为下一阶段发现历史版本时间维度的跳变做准备。
③在数据处理阶段,首先,统计各配置项值在历史版本中的变化情况,记录下取值相同的版本个数、取值跳变的版本个数、变化的版本范围;其次,过滤有变化的配置项检查跳变,根据跳变版本发生时间点可以分为两种:
一是在历史版本中如果某个配置项取值出现跳变,比如一直打开的配置项在中间某几个版本变成关闭之后又恢复打开,或者一直关闭的配置项在中间某几个版本突然打开之后又恢复关闭,可以判定中间那几个版本的配置项值异常,具体判断配置项值是否中间有跳变的计算公式如下所示。
Figure BDA0003898077770000061
其中V表示单个内核版本所有配置项的取值,U表示配置项打开、设为模块、关闭的取值,T表示内核版本(总个数为z),vi标识配置项i的取值,uj标识集合U的第j个值,函数f1表示配置项是否打开、关闭或者设为模块的判断。i标识配置项,t标识版本号,vi,t标识了配置项i在版本t中的默认值,vi,t-x标识配置项i在版本t之前的x版本中的默认值,vi,t+x标识配置项i在版本t之后的x版本中的默认值,st表示配置项值相同的前后版本个数,函数f2、f3、f4表示三个异常判定的条件,满足异常条件取值为1,否则判定为正常取值为0。图2展示了判定中间值跳变是否异常的方法过程,1)函数f2判断前后版本配置项取值是否一致,中间版本配置项值变化的情况;2)函数f3比较发生变化的配置项中间值与前后取值版本个数所占比例,若中间版本个数st比前后值版本个数st-x、st+x都少,且小于一定的比例阈值r,说明配置项中间值为偶发小规模跳变取值,进入下一步判断;3)函数f4将中间值与配置的最终值vi,z、其它发行版配置历史值wi比较,W表示其它发行版的配置项取值合集,若在相同版本范围内出现值一致,则判定正常,否则判定中间值异常。
二是最新值跳变,比如一直关闭的配置在最新几个版本中突然打开,且在其它发行版的相同版本中仍然关闭,在最新版本中此配置项值异常。在这个过程中,需要综合相同体系架构、应用场景条件下,同一发行版不同内核历史版本的配置项取值与同一内核版本不同发行版的配置项取值作为判断依据,具体判断配置项值是否最新值跳变的计算公式如下所示。
Figure BDA0003898077770000071
其中,函数f5表示最新版与历史版本配置项值是否相等的比较,函数f6表示最新值版本个数与历史值版本个数的比较,函数f7表示最新值与其它发行版取值的比较,这三个函数表示最新值跳变异常判定的条件,满足异常条件取值为1,否则判定为正常取值为0。图3展示了判定最新值跳变是否异常的方法,1)函数f5判断新版本配置项取值与历史版本是否一致,得到配置项最新值变化的情况;2)函数f6比较发生变化的配置项新值与历史值版本个数所占比例,若小于一定的比例阈值,说明配置项新值为偶发小规模跳变取值,进入下一步判断;3)使用函数f7与其它发行版相同版本范围的取值比较,如果与发行版取值相同,判定最新值正常;如果新值为y/m,其它发行版取值为m/y,也判定正常;如果新值为y而其它发行版取值为n,或者新值为n而其它发行版为y/m,则判定最新值异常;如果发行版不存在该配置项,则判定正常。
在上述判定方法中,衡量配置项取值变化的前后版本规模大小的变量——比例阈值‘r’,标识了不同配置项取值的版本所占比例,小于该阈值认为是跳变。在本文中比例阈值的赋值规则是,当变化的配置项版本数加上下版本数的总和小于100时,比例阈值‘r’取值0.1;当版本数总和超过100时,比例阈值‘r’取值0.01。
然后,用上述方法遍历已收集的所有内核默认配置文件,查找符合以上两种中间值跳变和最新值跳变的异常配置项,若查找结果中有合理原因或特殊理由的配置项,人工标记为正常。再将排查出的所有配置项异常值修正为正常值,更新数据集作为异常检测的数据来源,以消除异常波动的影响。
如上所述,构建内核默认配置数据集具体步骤如下:
(1)收集Linux内核社区及主流发行版的内核默认配置文件,形成初始数据集;
(2)抽取内核配置项全集,补充未出现在配置文件中被关闭的配置项,得到完整的内核配置数据集;
(3)按照CPU体系架构、应用场景对内核配置数据进行分类;
(4)按照内核版本发展的序号和关键字对内核配置数据进行排序;
(5)统计配置项值随版本发展的变化情况,查找在中间版本跳变的已修复异常值和最新版本跳变的未修复异常值;
(6)对步骤(5)发现异常值中有合理原因或特殊理由的配置项人工标记为正常,其它异常值则进行自动化修正,更新数据集。
一示例中,假设有一待检测的内核配置文件f,和一个与f在同一CPU架构、同一应用场景下的内核默认配置数据集S,数据集S中包含主流发行版在多个历史版本发现的所有异常值已修复的配置项。
对于待检测内核配置文件f的实施步骤如下:
(1)遍历内核配置文件f中所有内核配置项的名称、取值,结合数据集S补充未在f中出现的配置项取值’n’,构建完整的待检测配置数据集V;
(2)遍历待检测配置数据集V,逐个配置项Vi比较数据集S中相同发行版和版本号的配置项值,若相同则判定正常,否则继续执行下一步;
(3)计算配置项Vi在数据集S中相同发行版、后续版本范围的取值概率,若Vi值与较大概率的取值范围一致则判定正常,否则继续执行下一步;
(4)计算配置项Vi在数据集S中其它发行版、相同版本范围的取值概率,若Vi值与较大概率的取值范围一致则判定正常,否则判定异常;
(5)获得最终的内核配置文件f的异常值检测结果,输出判定异常值的配置项列表,包括在数据集S中的参考值、使能率、建议值等信息。
具体来说,根据待检测配置的发行版、内核版本,计算配置项取值概率,综合在同一发行版中不同内核版本、在同一内核版本不同发行版中的取值概率,判断配置项是否异常值,具体计算公式如下所示。
Figure BDA0003898077770000081
其中,Pi,t(uk)表示配置项i在t的后续版本中取值分别为’y’/’m’/’n’时的版本个数比例,vi,j标识修正后的数据集中配置项i在版本j中的取值,di,t标识待检测的配置项值,函数f8判断版本个数比例小于r时为小概率事件,判定是异常值,并将版本个数占比较高的取值作为建议值。
综上所述,本发明首次从实际应用中内核配置项默认值的角度,基于内核社区和主流发行版的内核默认配置建立数据集进行异常值检测,具有坚实可靠的数据依据。不同于传统配置项冲突检测,本发明能够检测出满足配置项依赖关系、却不恰当配置的异常值,减少配置误操作或遗漏的可能性,提高内核配置成功率;
在示例性实施例中,本发明还公开了一种内核配置项异常值检测装置,所述装置包括:
数据获取模块,用于收集内核源码及相应的内核默认配置文件,以得到内核配置数据;
数据准备模块,用于基于CPU架构与应用场景,分类所述内核配置数据,并依据内核版本发展对分类后的内核配置数据排序;
数据处理模块,用于统计所述内核配置数据中各配置项值在历史版本中的变化情况,对中间版本中跳变的异常值和最新版本中跳变的异常值进行修复,以生成内核默认配置数据集;
数据检测模块,用于遍历待检测内核配置文件中所有内核配置项的名称、取值,并结合所述内核默认配置数据集补充未在待检测内核配置文件中出现的配置项取值,以构建待检测配置数据集V;将所述待检测配置数据集V与所述内核默认配置数据集中的配置项进行比较,得到所述待检测内核配置文件的异常检测结果。
有关装置模块的具体执行过程、有益效果等阐述,请参见上述方法实施例的介绍说明,此处不多赘述。
以上所述仅为本发明的较佳实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种内核配置项异常值检测方法,其特征在于,所述方法包括:
收集内核源码及相应的内核默认配置文件,以得到内核配置数据;
基于CPU架构与应用场景,分类所述内核配置数据,并依据内核版本发展对分类后的内核配置数据排序;
统计所述内核配置数据中各配置项值在历史版本中的变化情况,对中间版本中跳变的异常值和最新版本中跳变的异常值进行修复,以生成内核默认配置数据集;
遍历待检测内核配置文件中所有内核配置项的名称、取值,并结合所述内核默认配置数据集补充未在待检测内核配置文件中出现的配置项取值,以构建待检测配置数据集V;
将所述待检测配置数据集V与所述内核默认配置数据集中的配置项进行比较,得到所述待检测内核配置文件的异常检测结果。
2.如权利要求1所述的方法,其特征在于,所述收集内核源码及相应的内核默认配置文件,以得到内核配置数据,包括:
基于所述CPU架构与所述应用场景,收集Linux内核社区、主流发行版的内核源码及相应的内核默认配置文件;
从所述内核源码中抽取配置项名称,构建配置项全集;
基于所述内核默认配置文件,获取所述配置项全集中部分配置项名称的取值;
针对所述配置项全集中没有取值的配置项,赋值配置项为关闭,以得到内核配置数据。
3.如权利要求1所述的方法,其特征在于,基于CPU架构与应用场景,分类所述内核配置数据,包括:
基于内核配置文件中的注释行,得到所述内核配置数据对应的CPU架构;
基于内核配置文件中的内核config文件名,得到所述内核配置数据对应的应用场景;
对无法标识CPU架构或应用场景的内核配置数据,进行人为重命名。
4.如权利要求1所述的方法,其特征在于,所述对中间版本中跳变的异常值进行修复,包括:
比较中间版本与前后版本的配置项取值;
在中间版本与前后版本的配置项值取值相同的情况下,判断中间版本未跳变;
在中间版本与前后版本的配置项值不相同的情况下,针对中间版本中配置项新值,计算中间版本与前后版本的版本数量;
在中间版本的版本数量大于前后版本中一版本的版本数量的情况下,或中间版本的版本数量与前后版本的版本数量之和的比值不小于一第一阈值,判断中间版本未跳变;
在中间版本的版本数量小于前后版本中任一版本的版本数量的情况下,且中间版本的版本数量与前后版本的版本数量之和的比值小于一第一阈值,则将中间版本配置项的取值与配置的最终值、其它发行版配置历史值比较;
在中间版本配置项的取值与配置的最终值相同、或中间版本配置项的取值与其它发行版配置历史值相同的情况下,判断中间版本未跳变;
在中间版本配置项的取值与配置的最终值不相同、且中间版本配置项的取值与其它发行版配置历史值不相同的情况下,判断中间版本跳变;
核查中间版本中配置项的异常值,并进行修正。
5.如权利要求1所述的方法,其特征在于,所述对最新版本中跳变的异常值进行修复,包括:
比较最新版本与历史版本中的配置项取值;
在最新版本与历史版本中的配置项取值相同的情况下,判断最新版本未跳变;
在最新版本与历史版本的配置项值不相同的情况下,计算最新版本与历史版本的版本数量;
在最新版本的版本数量大于历史版本中一版本的版本数量,或最新版本的版本数量与历史版本的版本数量的比值不小于一第二阈值的情况下,判断最新版本未跳变;
在最新版本的版本数量小于前后版本中任一版本的版本数量,且最新版本的版本数量与历史版本的版本数量的比值小于一第二阈值的情况下,将最新版本配置项的取值与其他发行版本相同版本范围中配置项最新值比较;
在最新版本配置项的取值与其他发行版本相同版本范围中配置项最新值相同,或最新版本配置项的取值为y/m且其他发行版本相同版本范围中配置项最新值为m/y,或其他发行版本相同版本范围中配置项中不存在最新版本配置项的情况下,判断最新版本未跳变;其中,y表示配置项打开,m表示配置项设为模块;
在最新版本配置项的取值与其他发行版本相同版本范围中配置项最新值不相同的情况下,若最新版本配置项的取值为y且其他发行版本相同版本范围中配置项最新值为n,或最新版本配置项的取值为n且其他发行版本相同版本范围中配置项最新值为y/m,则判断最新版本跳变;其中,n表示配置项关闭;
核查最新版本中配置项的异常值,并进行修正。
6.如权利要求1所述的方法,其特征在于,所述将所述待检测配置数据集V与所述内核默认配置数据集中的配置项进行比较,得到所述待检测内核配置文件的异常检测结果,包括:
遍历待检测配置数据集V,逐个配置项Vi比较内核默认配置数据集中相同发行版和版本号的配置项取值;
在每一配置项Vi与内核默认配置数据集中相同发行版和版本号的配置项取值相同的情况下,判断所述待检测内核配置文件正常;
在每一配置项Vi与内核默认配置数据集中相同发行版和版本号的至少一配置项取值不相同的情况下,计算配置项Vi在内核默认配置数据集中相同发行版、后续版本范围的取值概率;
在配置项Vi在内核默认配置数据集中相同发行版、后续版本范围的取值概率大于一第三阈值的情况下,判断所述待检测内核配置文件正常;
在配置项Vi在内核默认配置数据集中相同发行版、后续版本范围的取值概率小于一第三阈值的情况下,计算配置项Vi在内核默认配置数据集中其它发行版、相同版本范围的取值概率;
在配置项Vi在内核默认配置数据集中其它发行版、相同版本范围的取值概率大于一第四阈值的情况下,判断所述待检测内核配置文件正常;
在配置项Vi在内核默认配置数据集中其它发行版、相同版本范围的取值概率小于一第四阈值的情况下,判断所述待检测内核配置文件异常。
7.如权利要求1-6任一项所述的方法,其特征在于,所述方法还包括:
在所述待检测内核配置文件的异常检测结果为所述待检测内核配置文件异常的情况下,输出判定异常值的配置项列表。
8.如权利要求7所述的方法,其特征在于,所述配置项列表包括:所述内核默认配置数据集中的参考值、使能率和建议值。
9.一种内核配置项异常值检测装置,其特征在于,所述装置包括:
数据获取模块,用于收集内核源码及相应的内核默认配置文件,以得到内核配置数据;
数据准备模块,用于基于CPU架构与应用场景,分类所述内核配置数据,并依据内核版本发展对分类后的内核配置数据排序;
数据处理模块,用于统计所述内核配置数据中各配置项值在历史版本中的变化情况,对中间版本中跳变的异常值和最新版本中跳变的异常值进行修复,以生成内核默认配置数据集;
数据检测模块,用于遍历待检测内核配置文件中所有内核配置项的名称、取值,并结合所述内核默认配置数据集补充未在待检测内核配置文件中出现的配置项取值,以构建待检测配置数据集V;将所述待检测配置数据集V与所述内核默认配置数据集中的配置项进行比较,得到所述待检测内核配置文件的异常检测结果。
10.一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行权利要求1-8中任一所述方法。
CN202211280479.XA 2022-10-19 2022-10-19 内核配置项异常值的检测方法及装置 Pending CN115658492A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211280479.XA CN115658492A (zh) 2022-10-19 2022-10-19 内核配置项异常值的检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211280479.XA CN115658492A (zh) 2022-10-19 2022-10-19 内核配置项异常值的检测方法及装置

Publications (1)

Publication Number Publication Date
CN115658492A true CN115658492A (zh) 2023-01-31

Family

ID=84989146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211280479.XA Pending CN115658492A (zh) 2022-10-19 2022-10-19 内核配置项异常值的检测方法及装置

Country Status (1)

Country Link
CN (1) CN115658492A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116225965A (zh) * 2023-04-11 2023-06-06 中国人民解放军国防科技大学 一种面向io大小的数据库性能问题检测方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116225965A (zh) * 2023-04-11 2023-06-06 中国人民解放军国防科技大学 一种面向io大小的数据库性能问题检测方法
CN116225965B (zh) * 2023-04-11 2023-10-10 中国人民解放军国防科技大学 一种面向io大小的数据库性能问题检测方法

Similar Documents

Publication Publication Date Title
US8621278B2 (en) System and method for automated solution of functionality problems in computer systems
CA3060085A1 (en) Method for determining defects and vulnerabilities in software code
US8312440B2 (en) Method, computer program product, and hardware product for providing program individuality analysis for source code programs
EP3674918B1 (en) Column lineage and metadata propagation
CN111858242A (zh) 一种系统日志异常检测方法、装置及电子设备和存储介质
CN109783346B (zh) 基于关键字驱动的自动化测试方法、装置及终端设备
CN108875317B (zh) 软件克隆检测方法及装置、检测设备及存储介质
CN111222137A (zh) 一种程序分类模型训练方法、程序分类方法及装置
CN110633211A (zh) 对于多接口的测试方法、装置、服务器及介质
CN115658492A (zh) 内核配置项异常值的检测方法及装置
Chen Finding ethereum smart contracts security issues by comparing history versions
US11086906B2 (en) System and method for reconciliation of data in multiple systems using permutation matching
CN111475411A (zh) 一种服务器问题检测方法、系统、终端及存储介质
CN114662602A (zh) 一种离群点检测方法、装置、电子设备及存储介质
CN109815697A (zh) 误报行为处理方法及装置
WO2022012327A1 (zh) 代码分析的方法、系统及计算设备
CN115756394A (zh) 借助失效数据的嵌入式软件需求安全性验证方法
CN111385342B (zh) 一种物联网行业识别方法、装置、电子设备及存储介质
CN109324963A (zh) 自动测试收益结果的方法及终端设备
CN114791865A (zh) 一种基于关系图的配置项自洽性检测方法、系统和介质
CN116846837A (zh) 流量识别方法、装置、电子设备及存储介质
CN113569953A (zh) 分类模型的训练方法、装置及电子设备
CN113778509A (zh) 一种确定开源组件的版本的方法、存储介质和电子装置
CN113220598A (zh) 系统的测试方法、装置、设备、介质及程序产品
CN113098884A (zh) 基于大数据的网络安全监控方法、云平台系统及介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination