一种评测操作模板自动构建方法与装置与流程

文档序号:26050949发布日期:2021-07-27 15:26阅读:80来源:国知局
一种评测操作模板自动构建方法与装置与流程

【技术领域】

本发明实施例涉及计算机安全技术领域,尤其涉及一种评测操作模板自动构建方法与装置。



背景技术:

随着网络信息技术的迅速发展,计算机系统已经广泛应用于日常生活和政府、银行、军队等国家重要职能部门系统当中。也正是因为计算机安全受到了政府、企业的重视,现有技术中出现了针对计算机安全评测的需求,例如经常需要测试公司或者单位里面,所有计算机是否都在使用过程中,被用户配置正确,会不会有一些计算机在用户使用过程中,修改了配置,导致了安全漏洞。这样的测试一般都无法统一到一个模板里配置全部电脑,因为不同单位对安全性要求不同,例如公安系统就比普通外贸公司要求的系统安全性更强。但计算机的配置有千万种,如果要对于针对多台计算机配置的安全性一一进行人工验证和操作配置,需要耗费大量的时间精力,效率往往非常低下。

另外,由于人工验证是针对单个计算机系统进行的,其经验、方法均无法重复利用,这也是造成人工验证效率低下的原因之一。针对上述的技术问题,现有技术没有给出可行的解决方案。



技术实现要素:

有鉴于此,本发明提出一种评测操作模板自动构建方法与装置,以提高评测计算机安全性的效率和准确性。

第一方面,本发明实施例提供了一种评测操作模板自动构建方法,能够评测过程进行自动构建,形成客观评价标准,提高评测结果的正确性,取得更好的评测效果。评测操作模板自动构建方法包括:

步骤1:根据需要测试的内容构建评测代码,形成评测模板;

步骤2:将评测模板应用于不同的计算机系统,并进行测试;

步骤3:获取评测模板的测试结果,并进行统计和分类;

步骤4:获取测试结果中不正确的差异项目,构建差异特征;

步骤5:当差异特征能够通过评测模板自动判别时,将该计算机系统中的正确配置项作为新的模板库内容添加到模板库中,并按照所形成的正确配置自动修正有差异的计算机系统的配置;

步骤6:当差异特征不能通过评测模板自动判别时,转为人工修正;并将人工修正后的配置添加到模板库中。利用计算机预先构建测试脚本,将其作为自动测试的安全性评测模板。

第二方面,本发明实施例提供了一种评测操作模板自动构建装置,采用上述的评测操作模板自动构建方法,评测操作模板自动构建装置包括生成模块、评测模板、分类模块、训练模块,存储模块,其中:

生成模块用于根据需要测试的内容构建评测代码;

评测模块根据生成模块的的评测代码进行测试,并反馈评测结果;

分类模块用于接收评测结果,并根据评测结果进行统计和分类;

训练模块接收测试结果中不正确的差异项目,构建差异特征;

存储模块用于存储能够自行判别的评测模板以及经过人工修整的评测模板。

第三方面,本发明实施例提供了一种非暂态计算机可读存储介质,通过非暂态计算机可读存储介质上存储有计算机程序实现本申请的评测操作模板自动构建方法。

本发明的有益效果是:本发明提供一种评测操作模板自动构建方法、装置及存储介质,通过自动构建评测操作模板,客观地对测试结果进行分类、统计和分析,当评判模板本身能实现自动判别,或者经过人工修正后能够实现自动判别的评判模板添加进模板库,能够利用现有的经验,提高计算机系统评测的效率和准确度,实现自动构建、检测。

【附图说明】

图1是本发明提供的评测操作模板自动构建方法的流程图;

图2是本发明提供的评测操作模板自动构建装置的结构图。

【具体实施方式】

本发明实施例提供了一种评测操作模板自动构建方法、装置及存储介质,用于解决现有的计算机安全系统检测需要投入较多的人力和时间,不能高效、准确地进行检测、检测经验无法重复利用等技术问题。

为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。下面结合附图进一步详细描述本发明的技术方案。

如图1所示,提供的评测操作模板自动构建方法,主要包括:

根据需要测试的内容构建评测代码,采用shell脚本或者selenium工具编写测试代码。

优选的,步骤1中构建评测代码是由人工事先确定的测试的内容,根据需要测试的内容编写shell脚本命令或者selenium模拟软件自动打开系统,根据程序内容进行测试。本实施例采用shell脚本,并且针对不同公司单位的系统,采用不同的shell脚本命令集,例如公司单位如果是ubuntu16的系统,采用该系统的特定命令集,如果是ubuntu18系统,则采用ubuntu18的特有shell命令集,使之针对性的加快和精确测试,提升效率,极大优化了计算机系统安全的评测,实现了检测过程的稳定性。

当测试采用的是浏览器测试时,则采用selenium工具进行测试,selenium是一个用于web应用程序自动化测试工具。selenium测试直接运行在浏览器中,可以用来模拟用户操作,优选的,可以选择selenium作为模拟软件对计算机系统的配置进行评测。

步骤2:根据需要测试的单位要求不同,根据不同的国家标准,构建不同的评测代码模板;

测试模板的构建主要是通过爬虫抓取国家标准,对国家标准文件中提到的该类型的系统及对应的测试项目中需要保证的安全等级,来按步骤进行测试。其中所述的国家标准是国家为了规范这个行业技术而提供的标准,例如2018年,由全国安全防范报警系统标准化技术委员会(sactc100)组织制定并经批准发布的国家标准和行业标准共35项,其中,国家标准14项,这些标准对系统的各个环节的安全性要求都进行了详细规定,这些国家标准是文字形式描述的,可以通过pdf解析工具解析为文本进行处理。例如国家标准中规定,公安系统中,设置密码的时候,要求密码必须包含字母、数字、特殊符号、至少8位。这时通过nlp工具可以自动解析这段文字要表达的内容,通过文本理解读取国家标准中对应段落的文字,并通过nlp技术的句法分析技术,匹配国家标准中关于公安系统的密码规范的文本表述。其中可能会匹配到“密码规范”这样的文字表达,但是它并不是“密码规范”这个字面意思的唯一表达方法,因此可以映射到word2vec词向量空间,泛化该“密码规范”的文字的各类表达,例如通过泛化后,或许可以获取到还有另外一种标识是“密码合规性”的段落,然后就能在国家标准中定位,这样的单位系统,需要对应怎样的安全规范,将对应的规范,通过正则表达式进行解析,例如可能包括字母、特殊符号、至少几位等,将他们的测试内容抽取到,通过人工撰写代码,构建为shell或者seleium的代码模板。例如测试系统是否密码包含特殊符号,则可以通过shell命令:sudopasswd命令,输入密码,看看是否设置确实特殊符号的内容,如果可以,则系统安全性不足。这样的命令,对应着一个文字描述的规则,例如“测试密码安全性”,将需要测试的内容对应的规则或者标签通过模型训练,就能对应到不同的测试代码模板上。因为国家相关系统的安全标准是有限的,因此测试内容和代码也是固定有限的,它是一个机器学习分类问题。因此可以将shell脚本即代码模板都先提前写好,将代码模板对应的规则设置为例如“测试密码安全性”,作为对应这段代码的测试规则,也作为机器学习的标注值。而代码对应的文本描述“测试密码安全性”则作为训练语料的特征。通过贝叶斯分类器进行训练,这样在下次遇到需要测试的规则时,输入文本描述,就能调用模型,自动获得在对应规则下的测试代码的模板。

步骤3,通过生成模板标签来定义需要测试的内容的测试内容及规则。

但是步骤2还有一个难点是匹配的规则是比较难以定义,即上文提到的通过正则表达式进行解析,包括字母、特殊符号、至少几位等,转变成为对应的测试内容,人们无法描述这个测试内容,就是“测试密码安全性”这件事。所以必须通过标签的表达来定义这些需要测试的内容和匹配规则,用于解决上述问题。

另一方面由于系统繁多,会导致在不同的系统或者不同安全等级的系统中,代码模板并无法完全复用。因此需要设置带有不同标签的代码模板,不同标签的代码模板会对应不同的系统,因此每一个代码模板都需要设置有相关的标签信息。模板标签信息如果完全人工设定,工作量过大,例如上我们定义的“测试密码安全性”这样的标签就是人工定义的。因此还可以通过国家标准中,要求系统配置中的特定需要测试的项目来作为标注。

例如在密码测试中,所有的公安部门、行政机关中计算机系统的密码测试,加密算法都是要求采用rsa这样的高级加密算法。则该代码模板的标签可以自动被自动生成为“系统类别+测试内容+安全级别”,例如:“公安系统测试密码安全性安全级别高”,这个标签就是上面要解决的定义匹配规则的标签。所述抽取方法,采用ltp解析国家标准中,第一行的标准名称,识别其中的名称,作为第一项。通过ltp句法分析解析要抽取的次标题中的内容,作为第二项,再通过解析最小标题项里提到“安全级别”的文本,抽取其中内容,作为第三项。这样我们就能自动生成不同的模板标签,定义出了这个系统应该要测试的相关规则,这个规则同时对应了需要测试的代码段落。因此就可以通过这个代码模板进行系统该功能点安全性的测试。能够完整的构建评测标签和评测模板。通过上面的对应的不同标签,我们还能够将公安系统的密码测试的代码模板与医院系统的密码测试的代码模板区分开。实现不同的系统对应不同的标签和模板的目的。

步骤4:将评测模板应用于不同的计算机系统,并进行测试;

在获得需要测试的计算机后,先定义和分析该系统需要测试的内容是属于什么类型的系统。根据系统类型和需要测试的内容,匹配获得模板标签。并采用具有该种标签的代码模板进行自动测试,测试方法是,首先通过通过计算机自动运行程序,对需要测试的命令和按钮,进行自动的运行或者点击。得到运行或点击之后的结果,并通过获取windowsapi接口得到运行结果。将运行结果存储起来。

步骤5:获取评测模板的测试结果,并进行统计和分类;

在银行、公安、事业单位等不同部门中,存在不同类型,不同配置的计算机,因此使用测评模板进行评测时,测试的结果是不同的,并且针对不用类型的电脑,安全性判断的标准也会有所不同。但是相同的单位,相同类型和功能作用的电脑,配置应该相同。

因此,当测试过程中发现有的计算机安全配置与其他相同类型计算机不一样时,则判断这一组计算机有可能存在配置不正确问题。

因此当对一台计算机进行测试时,首先需要抽取和匹配在步骤3中对应的标签,按照该标签对应的测试内容和代码模板进行测试。并统计这些配置的电脑中,哪些是是有差异的哪些是没有问题的。

例如,需要测试的是人们医院挂号系统100台电脑的安全性,因此通过在标签库中搜索匹配到对应的标签为,“医院系统测试密码安全性安全级别高”因此采用该标签,输入步骤1训练好的模型后,得到的一段代码,这段代码是代码模板,专门用于测试某一类系统的安全性的。通过将这个代码模板,拷贝到100台电脑上,自动运行,可以获得运行的结果,通过windows自带的api获得测试结果的内容,并存储起来。结果发现100台电脑中,有92台的测试结果是一致的,例如测试的项目中gatewayports的值都是yes,而有5台是空值,另外3台的值为no,那么则可以知道,有8台电脑可能是跟其他人不同的,只需要对这八台电脑进行进一步的重点检测就能知道这些电脑是否存在问题,而不用对100台电脑都进行逐一详细测试,耗费大量的时间精力。

步骤6:获取测试结果中不正确的差异项目,构建差异特征;对差异特征进行分组,通过安全等级自动标注,自动获得最重要的组别,当高等级组别局域差异时,才识别为系统有差异。

在自动测试中还发现,计算机配置a和计算机配置b不同时,却获得了相同的测试结果,而计算机配置c和计算机配置d不同,也获得了不同的测试结果。也就是说不是所有的配置内容的不同,都会导致结果不同。因为有些测试结果不同,并不会导致最终的安全性差异。而有些配置不同则会导致最终的安全性有差异。例如,医院挂号系统中,费用填写有误,是重大错误,该错误会导致费用识别误差,导致经济损失。而系统中的出生年月日,当出生只填了年月不填日时,并不会导致严重后果。因此在测试过程中,有一些项目是重要的测试点,有些不重要,并不是所有特征都重要的。因此需要构建一个重要性特征。我们采用美国国防部提出可信计算机系统评测标准tcsec,tcsec将系统分成abcd四类7个安全级别。d级是安全级别最低的级别,c类为自主保护级别;b类为强制保护级别;a类为验证保护类。d级别的安全等级要求很低,其中每一个级别都对应着一套系统的安全规范,以最初始系统的没有经过人工改动的标准作为原始标准进行评估。例如当一个项目的测试内容的属于最低级别时,我们将该内容自动标注为“不重要”,就是说,如果是d级别的项目,即使这个项目测试不通过,我们也不认为这个系统有问题。但是其余的测试项目只要符合其他c级以上标准,就都是重要标准,出问题就要进行报警处理。

例如,在c1级中系统对发生的事件加以审计,并写入日志当中,如什么时候开机,哪个用户在什么时候从哪儿登录等等,这样通过查看日志,就可以发现入侵的痕迹。如果发现系统设置密码过程中,缺乏这个记录过往历史密码的功能,则通过对标准的匹配后,发现违法了c级标准,因此需要警报。因为该电脑这个特征是不能忽视的,需要跟其他电脑保持一致。但是有时候,例如访问网页中的某个图片,有时是不需要密码就能访问的,如果没有定义密码,那么也不属于重要标准。因此,有些系统需要密码,有些不需要,这些都不属于要报警的内容。可以忽略这样的不重要特征,只抽取重要的系统安全性特征。达到精准获取特征,以使对不同电脑系统进行警报的功能更加精准的目的。

因此需要明确到底是哪一个配置参数导致了测评结果与预期不同,需要对配置参数进行提取,哪些配置不同会导致结果不同,哪些配置不同,结果却也是相同的。

步骤7:另外一种评估系统差异性的方法还包括,提取所述差异项目中导致结果不同的配置参数,将所述差异项目中的配置参数作为特征,将是否导致系统安全性不同作为标注值,进行深度学习训练,获得一个评判差异特征的训练模型。具有差异值的配置特征很多种,但是结果只有两种,就是最终两台电脑是否安全级别一样或者不一样。是一个二元分类问题,根据差异项目中的差异特征,训练模型,进行二元分类测试。就可以在遇到不一样的差异配置时,输入差异特征就能判断系统的安全性是否达标。

步骤8:当差异特征能够通过评测模板自动判别时,将该计算机系统中的正确配置项作为新的模板库内容添加到模板库中,并按照所形成的正确配置自动修正有差异的计算机系统的配置;

因为当识别了有些计算机跟其他计算机有差异后,是可以将差异进行修复的。可以通过调取其他计算机中关于该项目的差异内容,并根据差异内容,自动的运行改变该差异的shell脚本,达到修改配置的目的。因此可以实现批量的电脑配置自我修复。

步骤9:当差异特征不能通过评测模板自动判别时,转为人工修正;并将人工修正后的配置添加到模板库中。

当评判模板本身能实现自动判别,或者经过人工修正后能够实现自动判别的评判模板添加进模板库,能够利用现有的经验,克服人工验证效率低下,提高计算机系统评测的效率和准确度,实现自动构建、检测。

如图2所示,提供评测操作模板自动构建装置的结构图,包括生成模块、评测模板、分类模块、训练模块,存储模块,其中:

生成模块用于根据需要测试的内容构建评测代码;

评测模块根据生成模块的的评测代码进行测试,并反馈评测结果;

分类模块用于接收评测结果,并根据评测结果进行统计和分类;

训练模块接收测试结果中不正确的差异项目,构建差异特征;

存储模块用于存储能够自行判别的评测模板以及经过人工修整的评测模板。

本发明实施例还提供了一种非暂态计算机可读存储介质,通过非暂态计算机可读存储介质上存储有计算机程序实现本申请中评测操作模板自动构建方法。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的方法或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1