一种基于动态参数的安全基线的创建方法和装置转让专利

申请号 : CN202311344039.0

文献号 : CN117075872B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吕英豪朱文雷杨纲肖成林

申请人 : 北京长亭科技有限公司

摘要 :

本申请实施例提供了一种基于动态参数的安全基线的创建方法和装置,包括:创建基于Schema模式的自定义安全基线检查项,自定义安全基线检查项与Schema模式关联;基于自定义安全基线检查项的默认参数值,验证预创建的Schema文件内容是否与所述自定义安全基线检查项的默认参数值一致;若预创建的Schema文件内容与所述自定义安全基线检查项的默认参数值一致,则将自定义安全基线检查项添加到扫描任务,编辑扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,以用于安全基线检查项的检查,所述扫描任务中的安全基线检查项的参数值所在的界面是基于所述预创建的Schema文件内容生成。

权利要求 :

1.一种基于动态参数的安全基线的创建方法,其特征在于,所述创建方法包括:

创建基于Schema模式的自定义安全基线检查项,所述自定义安全基线检查项与所述Schema模式关联;

基于所述自定义安全基线检查项的默认参数值,验证预创建的Schema文件内容是否与所述自定义安全基线检查项的默认参数值一致;

若所述预创建的Schema文件内容与所述自定义安全基线检查项的默认参数值一致,则将所述自定义安全基线检查项添加到扫描任务,编辑所述扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,以用于安全基线检查项的检查,所述扫描任务中的安全基线检查项的参数值所在的界面是基于所述预创建的Schema文件内容生成的;

所述将所述自定义安全基线检查项添加到扫描任务,编辑所述扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,具体包括:将所述自定义安全基线检查项添加到扫描任务,获得基于所述预创建的Schema文件的表单;

基于所述预创建的Schema文件的表单中的表单项顺序,确定所述自定义安全基线检查项的表单项的渲染顺序;

按照所述渲染顺序,基于所述预创建的Schema文件中的类型描述的规范,对所述自定义安全基线检查项的表单项进行渲染,所述预创建的Schema文件中的类型描述的规范包括数组类型描述的规范和数据类型描述的规范;

对完成渲染的自定义安全基线检查项的表单项进行表单校验,若所述完成渲染的自定义安全基线检查项的表单项具有验证对象,则执行回调函数进行校验,若校验通过,则完成所述自定义安全基线检查项的表单项的渲染,获得所述配置的扫描任务;若校验不通过,则对所述完成渲染的自定义安全基线检查项的表单项重新渲染后进行表单校验。

2.如权利要求1所述的创建方法,其特征在于,所述创建基于Schema模式的自定义安全基线检查项,具体包括:基于预定义的创建安全基线检查项所需参数及参数类型,预先创建Schema文件,生成预创建的Schema文件;

基于所述预创建的Schema文件,进行所述自定义安全基线检查项的编写;

创建新的安全基线检查项,将所述预创建的Schema文件与所述自定义安全基线检查项代码进行关联,获得基于Schema模式的自定义安全基线检查项;

循环创建,获得多个基于Schema模式的安全基线检查项。

3.如权利要求1所述的创建方法,其特征在于,所述预创建的Schema文件使用结构化的标记语言,用于描述所述自定义安全基线检查项的参数和参数类型,所述预创建的Schema文件为所述自定义安全基线检查项的各个参数提供标题、变量名、描述、数据类型、默认值、展示顺序及是否必填。

4.如权利要求1所述的创建方法,其特征在于,所述基于所述预创建的Schema文件的表单中的表单项顺序,确定所述自定义安全基线检查项的表单项的渲染顺序,具体包括:判断所述自定义安全基线检查项关联的所述预创建的Schema文件中是否存在展示顺序;

若所述自定义安全基线检查项关联的所述预创建的Schema文件中存在展示顺序,则将所述自定义安全基线检查项关联的所述预创建的Schema文件的展示顺序作为所述自定义安全基线检查项的表单项的渲染顺序;

若所述自定义安全基线检查项关联的所述预创建的Schema文件中不存在展示顺序,则遍历所述自定义安全基线检查项的表单项的key值进行渲染。

5.如权利要求1所述的创建方法,其特征在于,所述按照所述渲染顺序,基于所述预创建的Schema文件中的类型描述的规范,对所述自定义安全基线检查项的表单项进行渲染,具体包括:判断所述自定义安全基线检查项的表单项的数据是否为数组类型;

若是,则按照渲染顺序遍历所述表单项的每个元素以确定所述自定义安全基线检查项的表单项的数据类型,基于所述自定义安全基线检查项的表单项的数据类型进行渲染;

若否,则按照渲染顺序,按照所述自定义安全基线检查项的表单项的数据类型进行渲染。

6.如权利要求5所述的创建方法,其特征在于,所述方法进一步包括:

基于所述自定义安全基线检查项的表单项的渲染逻辑,确定所述自定义安全基线检查项的执行分支代码以执行所述自定义安全基线检查项,所述自定义安全基线检查项的表单项的渲染逻辑为所述配置的扫描任务中的所述自定义安全基线检查项的参数,其中,所述配置的扫描任务中的所述自定义安全基线检查项的参数包括布尔类型的参数、数值类型的参数、字符串类型的参数、数值数组或字符串数组类型的参数。

7.如权利要求6所述的创建方法,其特征在于,所述基于所述自定义安全基线检查项的表单项的渲染逻辑,确定所述自定义安全基线检查项的执行分支代码以执行所述自定义安全基线检查项,具体包括:若所述配置的扫描任务中的所述自定义安全基线检查项的参数为所述布尔类型的参数时,且所述布尔类型的参数数值为真,则执行第一代码分支;若所述布尔类型的参数数值为假,则执行第二代码分支;

若所述配置的扫描任务中的所述自定义安全基线检查项的参数为所述数值类型的参数时,且所述数值类型的参数数值小于预设阈值,则执行所述第一代码分支;若所述数值类型的参数数值大于等于所述预设阈值,则执行所述第二代码分支;

若所述配置的扫描任务的中的所述自定义安全基线检查项参数为所述字符串类型的参数时,且所述字符串类型的参数为目标值的前缀,则执行所述第一代码分支;若所述字符串类型的参数等于目标值,则执行所述第二代码分支;否则,执行第三代码分支;

若所述配置的扫描任务中的所述自定义安全基线检查项的参数为数值数组或字符串数组类型的参数时,则确定所述配置的扫描任务的参数,是匹配数值类型还是字符串类型,以执行相应代码分支。

8.如权利要求1所述的创建方法,其特征在于,所述方法进一步包括:

修改位于基线规则集中的安全基线检查项的参数值,以更新所述自定义安全基线检查项,获得更新配置的扫描任务;

基于所述更新配置的扫描任务的参数,执行所述自定义安全基线检查项。

9.一种基于动态参数的安全基线的创建装置,其特征在于,所述创建装置包括:

创建模块,创建基于Schema模式的自定义安全基线检查项,所述自定义安全基线检查项与所述Schema模式关联;

预检查模块,基于所述自定义安全基线检查项的默认参数值,验证预创建的Schema文件内容是否与所述自定义安全基线检查项的默认参数值一致;

编辑模块,若所述预创建的Schema文件内容与所述自定义安全基线检查项的默认参数值一致,则将所述自定义安全基线检查项添加到扫描任务,编辑所述扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,以用于安全基线检查项的检查,所述扫描任务中的安全基线检查项的参数值所在的界面是基于所述预创建的Schema文件内容生成的;

所述将所述自定义安全基线检查项添加到扫描任务,编辑所述扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,具体包括:将所述自定义安全基线检查项添加到扫描任务,获得基于所述预创建的Schema文件的表单;

基于所述预创建的Schema文件的表单中的表单项顺序,确定所述自定义安全基线检查项的表单项的渲染顺序;

按照所述渲染顺序,基于所述预创建的Schema文件中的类型描述的规范,对所述自定义安全基线检查项的表单项进行渲染,所述预创建的Schema文件中的类型描述的规范包括数组类型描述的规范和数据类型描述的规范;

对完成渲染的自定义安全基线检查项的表单项进行表单校验,若所述完成渲染的自定义安全基线检查项的表单项具有验证对象,则执行回调函数进行校验,若校验通过,则完成所述自定义安全基线检查项的表单项的渲染,获得所述配置的扫描任务;若校验不通过,则对所述完成渲染的自定义安全基线检查项的表单项重新渲染后进行表单校验。

说明书 :

一种基于动态参数的安全基线的创建方法和装置

技术领域

[0001] 本申请各实施例属于网络安全领域,尤其涉及一种基于动态参数的安全基线的创建方法和装置。

背景技术

[0002] 在计算机科学和信息安全领域,系统的安全性至关重要。安全基线是一个定义了系统安全性能的基准值,该基准值包括安全实践、安全配置和安全限制等。为了保证系统的安全性,需要确定适当的安全基线,以帮助保护计算机系统的重要资源和数据。
[0003] 安全基线的创建需要考虑诸多因素,例如系统的复杂性、业务需求、安全实践等,使得安全基线的创建是一个非常复杂且繁琐的工作。传统的自定义安全基线大都采用基于Bash的代码生成技术,需要技术人员手动编写大量的代码来实现自定义的安全基线,且代码难以维护和更新。此外,自定义基线的实施和管理缺乏有效的可视化工具,给技术人员带来困难。
[0004] 基于此,需要一种新的安全基线的创建方法,以解决现有技术中的问题。

发明内容

[0005] 本说明书实施例提供一种基于动态参数的安全基线的创建方法和装置,以解决部分或者全部问题:传统的自定义安全基线大都采用基于Bash的代码生成技术,需要技术人员手动编写大量的代码来实现自定义的安全基线,且代码难以维护和更新。此外,自定义基线的实施和管理缺乏有效的可视化工具,给技术人员带来困难。
[0006] 为解决上述技术问题,本说明书实施例是这样实现的:
[0007] 本说明书实施例提供一种基于动态参数的安全基线的创建方法,所述方法包括:
[0008] 创建基于Schema模式的自定义安全基线检查项,所述自定义安全基线检查项与所述Schema模式关联;
[0009] 基于所述自定义安全基线检查项的默认参数值,验证预创建的Schema文件内容是否与所述自定义安全基线检查项的默认参数值一致;
[0010] 若所述预创建的Schema文件内容与所述自定义安全基线检查项的默认参数值一致,则将所述自定义安全基线检查项添加到扫描任务,编辑所述扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,以用于安全基线检查项的检查,所述扫描任务中的安全基线检查项的参数值所在的界面是基于所述预创建的Schema文件内容生成的。
[0011] 本说明书实施例还提供一种基于动态参数的安全基线的创建装置,所述装置包括:
[0012] 创建模块,创建基于Schema模式的自定义安全基线检查项,所述自定义安全基线检查项与所述Schema模式关联;
[0013] 预检查模块,基于所述自定义安全基线检查项的默认参数值,验证预创建的Schema文件内容是否与所述自定义安全基线检查项的默认参数值一致;
[0014] 编辑模块,若所述预创建的Schema文件内容与所述自定义安全基线检查项的默认参数值一致,则将所述自定义安全基线检查项添加到扫描任务,编辑所述扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,以用于安全基线检查项的检查,所述扫描任务中的安全基线检查项的参数值所在的界面是基于所述预创建的Schema文件内容生成的。
[0015] 本说明书实施例采用的上述至少一个技术方案能够达到以下有益效果:通过创建基于Schema模式的自定义安全基线检查项,所述自定义安全基线检查项与所述Schema模式关联;基于所述自定义安全基线检查项的默认参数值,验证预创建的Schema文件内容是否与所述自定义安全基线检查项的默认参数值一致;若所述预创建的Schema文件内容与所述自定义安全基线检查项的默认参数值一致,则将所述自定义安全基线检查项添加到扫描任务,编辑所述扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,以用于安全基线检查项的检查,所述扫描任务中的安全基线检查项的参数值所在的界面是基于所述预创建的Schema文件内容生成的,能够简便快捷的进行安全基线检查项的参数配置,同时能够减少支持定制配置选项的维护负担,使得安全检查具有更大的灵活性和定制性,在识别和减轻安全风险方面更加有效。

附图说明

[0016] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。后文将参照附图以示例性而非限制性的方式详细描述本申请的一些具体实施例。附图中相同的附图标记标示了相同或类似的部件或部分,本领域技术人员应该理解的是,这些附图未必是按比例绘制的,在附图中:
[0017] 图1为本说明书实施例提供的一种系统架构示意图;
[0018] 图2为本说明书实施例提供的一种基于动态参数的安全基线的创建方法的框架图;
[0019] 图3本说明书实施例提供的一种基于动态参数的安全基线的创建方法示意图;
[0020] 图4为本说明书实施例提供的一种基于Schema模式创建自定义安全基线检查项的流程示意图;
[0021] 图5为本说明书实施例提供的一个自定义安全基线检查项的表单项的数据的渲染结果示意图;
[0022] 图6为本说明书实施例提供的一种自定义安全基线检查项的编辑流程图;
[0023] 图7为本说明书实施例提供的一种创建自定义安全基线检查项的流程图;
[0024] 图8为本说明书实施例提供的一种基于动态参数的安全基线的创建装置的示意图。

具体实施方式

[0025] 为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
[0026] 图1为本说明书实施例提供的一种系统架构示意图。如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
[0027] 终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种客户端应用。例如进行基于动态参数的安全基线创建等专用程序。
[0028] 终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是各种专用或通用的电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。
[0029] 服务器105可以是提供各种服务的服务器,例如为终端设备101、102、103上所安装的客户端应用提供服务的后端服务器。例如,服务器可以进行安全基线创建,以便将安全基线创建结果显示在终端设备服务器101、102、103上,服务器也可以执行创建的安全基线,以便将执行结果显示在终端设备101、102、103上。
[0030] 服务器105可以是硬件,也可以是软件。当服务器105为硬件时,可以实现为多个服务器组成的分布式服务器集群,也可以实现为单个服务器。当服务器105为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的多个软件或软件模块),也可以实现成单个软件或软件模块。
[0031] 基于此,本说明书实施例提供一种基于动态参数的安全基线的创建方法。
[0032] 图2为本说明书实施例提供的一种基于动态参数的安全基线的创建方法的框架图。如图2所示,该框架包括:检查项导入交互模块,检查项更新管理模块,检查项查看模块,检查项可视化编辑模块,基线规则集管理模块,基线任务管理模块和检查执行器组成。从核查项导入交互模块导入自定义安全基线检查项时,可以调用检查项查看模块查看当前设定的参数和关联的说明和默认值并可修改;若导入时修改并确认导入,修改后的参数默认值将会成为该检查项在系统中的全局默认值。自定义安全基线检查项导入成功后,进入检查项更新管理模块,在此模块依然可查看和编辑参数。同时,检查项查看模块从检查项更新管理模块获取当前检查项向其列表供用户查看和修改。用户使用检查项可视化编辑模块从检查项查看模块获取待编辑的检查项并对动态参数进行编辑,编辑完成后传递至检查项更新管理模块覆盖当前参数设置。由于检查项更新管理模块中,各个检查项是零散独立的项,因此,随后在基线规则集管理模块中形成基线检查项的集合,即基线规则集,从而根据基线规则集建立检查任务。需要特别说明的是,在基线规则集管理模块中,可进行基线规则集中的检查项参数的修改,但是不影响检查项更新管理模块中的参数的默认值。基线任务管理模块从基线规则集管理模块获取任务相关联的一系列检查项和参数设置,形成基线任务。用户可通过检查项可视化编辑模块编辑已生成的任务中的检查项的动态参数,此处的编辑不影响当前基线任务外的检查项的参数,仅影响当前任务中的检查项。基线任务管理模块下发检查项列表和相关联的动态参数给检查执行器。检查执行器传递动态参数给检查项列表中指定的检查项实现,从而最终实现用户编辑的动态参数生效。
[0033] 上述详细说明了安全基线创建过程,为了进一步理解,下面将具体说明。
[0034] 图3为本说明书实施例提供的一种基于动态参数的安全基线的创建方法的示意图。如图3所示,该方法包括如下步骤:
[0035] 步骤S301:创建基于Schema模式的自定义安全基线检查项,所述自定义安全基线检查项与所述Schema模式关联。
[0036] Schema模式是一种用于声明参数结构的模式,在该模式中,每一个字段对应安全基线中的一个可配置参数。
[0037] 在本说明书实施例中,所述创建基于Schema模式的自定义安全基线检查项,具体包括:
[0038] 基于预定义的创建安全基线检查项所需参数及参数类型,预先创建Schema文件,生成所述预创建的Schema文件;
[0039] 基于所述预创建的Schema文件,进行所述自定义安全基线检查项的编写;
[0040] 创建新的安全基线检查项,将所述预创建的Schema文件与所述自定义安全基线检查项代码进行关联,获得所述基于Schema模式的自定义安全基线检查项;
[0041] 循环创建,获得多个所述基于Schema模式的安全基线检查项。
[0042] 可见,在本说明书实施例,通过循环创建的方式,可以创建多个基于Schema模式的安全基线检查项。当然,每个安全基线检查项可以有不同的参数和参数类型,以满足不同的安全检查要求。
[0043] 在本说明书实施例中,所述预创建的Schema文件使用结构化的标记语言,用于描述所述自定义安全基线检查项的参数和参数类型,所述预创建的Schema文件为所述自定义安全基线检查项的各个参数提供标题、变量名、描述、数据类型、默认值、展示顺序及是否必填。
[0044] 在本说明书实施例中,结构化的标记语言可以为YAML,JSON,TOML,XML等。
[0045] 在本说明书的一个实施例中,结构化的标记语言优选为JSON,具体而言,预创建的Schema文件的创建包括:创建一个JSON文件,用于描述自定义安全基线检查项的参数和参数类型,对于每个参数提供明确的标题、变量名、描述、数据类型和默认值的定义,以及定义每个参数的展示顺序,以及是否为必填项。
[0046] 在创建一个新的安全基线检查项时,会将预创建的Schema文件与安全基线检查项代码进行关联,当心的安全基线检查项被导入到系统时,即可根据预创建的Schema文件动态生成参数输入页面。
[0047] 在本说明书实施例中,基于所述预创建的Schema文件,进行所述自定义安全基线检查项的编写时,要预留出用于接收参数的位置,而且还要根据安全基线检查项的参数类型,编写代码以处理可能的输入情况。例如,对于数值类型的参数,需要处理可能的数值范围;对于字符串类型的参数,可能需要处理空字符串或特定格式的字符串。
[0048] 由于自定义安全基线检查项与Schema模式关联,因此,当安全基线检查项被导入到系统时,就可以根据Schema文件动态生成参数输入界面。
[0049] 为了进一步理解基于Schema模式创建自定义安全基线检查项的过程,图4为本说明书实施例提供的一种基于Schema模式创建自定义安全基线检查项的流程示意图。如图4所示,确定安全基线检查项所需要的参数及参数类型,具体包括:预定义参数和参数类型,包括但不限于字符串、数值、布尔值等;根据安全基线检查项的需要,确定每个参数是否为必填参数,并为每个参数提供合适的默认值。确定安全基线检查项所需要的参数和参数类型后,创建Schema文件获得预创建的Schema文件,编写自定义安全基线检查项代码,将自定义安全基线检查项代码与预创建的Schema文件关联,根据需求,循环创建多个安全基线检查项。
[0050] 通过该方法,能够创建带有Schema描述动态参数的自定义安全基线检查项,提高了创建和维护自定义安全基线检查项的效率。同时,也使得安全基线检查项的参数更易于理解和管理,从而提高了安全基线的可靠性和稳定性。
[0051] 步骤S303:基于所述自定义安全基线检查项的默认参数值,验证预创建的Schema文件内容是否与所述自定义安全基线检查项的默认参数值一致。
[0052] 将自定义的安全基线检查项上传到安全基线管理系统的检查项导入交互模块中。选中要导入的项时,会生成一个默认参数的查看和编辑页面,允许用户在导入时立即根据需要修改指定检查项的默认参数值。确认要导入的项和相关的默认参数值后,系统会验证Schema文件内容是否符合语法,声明的参数类型和设定的默认值是否匹配,是否与对应检查项一致等。
[0053] 当用户访问查看页面时,检查项更新管理模块返回预创建的Schema给检查项查看模块。检查项可视化编辑模块根据预创建的Schema文件即时生成参数输入界面,以允许用户查看和修改默认值。
[0054] 步骤S305:若所述预创建的Schema文件内容与所述自定义安全基线检查项的默认参数值一致,则将所述自定义安全基线检查项添加到扫描任务,编辑所述扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,以用于安全基线检查项的检查,所述扫描任务中的安全基线检查项的参数值所在的界面是基于所述预创建的Schema文件内容生成的。
[0055] 在本说明书实施例中,所述将所述自定义安全基线检查项添加到扫描任务,编辑所述扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,具体包括:
[0056] 将所述自定义安全基线检查项添加到扫描任务,获得基于所述预创建的Schema文件的表单;
[0057] 基于所述预创建的Schema文件的表单中的表单项顺序,确定所述自定义安全基线检查项的表单项的渲染顺序;
[0058] 按照所述渲染顺序,基于所述预创建的Schema文件中的类型描述的规范,对所述自定义安全基线检查项的表单项进行渲染,所述预创建的Schema文件中的类型描述的规范包括数组类型描述的规范和数据类型描述的规范;
[0059] 对所述完成渲染的自定义安全基线检查项的表单项进行表单校验,若所述完成渲染的自定义安全基线检查项的表单项具有验证对象,则执行回调函数进行校验,若校验通过,则完成所述自定义安全基线检查项的表单项的渲染,获得所述配置的扫描任务;若校验不通过,则对所述完成渲染的自定义安全基线检查项的表单项重新渲染后进行表单校验。
[0060] 在本说明书实施例中,所述基于所述预创建的Schema文件的表单中的表单项顺序,确定所述自定义安全基线检查项的表单项的渲染顺序,具体包括:
[0061] 判断所述自定义安全基线检查项关联的所述预创建的Schema文件中是否存在展示顺序;
[0062] 若所述自定义安全基线检查项关联的所述预创建的Schema文件中存在展示顺序,则将所述自定义安全基线检查项关联的所述预创建的Schema文件的展示顺序作为所述自定义安全基线检查项的表单项的渲染顺序;
[0063] 若所述自定义安全基线检查项关联的所述预创建的Schema文件中不存在展示顺序,则遍历所述自定义安全基线检查项的表单项的key值进行渲染。
[0064] 在本说明书的一个实施例中,判断所述自定义自定义安全基线检查项关联的所述预创建的Schema文件中是否存在展示顺序可以采用三元操作符进行判断。
[0065] 在本说明书实施例中,所述按照所述渲染顺序,基于所述预创建的Schema文件中的类型描述的规范,对所述自定义安全基线检查项的表单项进行渲染,具体包括:
[0066] 判断所述自定义安全基线检查项的表单项的数据是否为数组类型;
[0067] 若是,则按照所述渲染顺序遍历所述表单项的每个元素以确定所述自定义安全基线检查项的表单项的数据类型,基于所述自定义安全基线检查项的表单项的数据类型进行渲染;
[0068] 若否,则按照所述渲染顺序,按照所述自定义安全基线检查项的表单项的数据类型进行渲染。
[0069] 图5为本说明书实施例提供的一个自定义安全基线检查项的表单项的数据的渲染结果示意图。
[0070] 为了进一步理解自定义安全基线检查项的表单项的数据的渲染过程,图6为本说明书实施例提供的一种自定义安全基线检查项的编辑流程图。如图6所示,判断预创建的Schema文件是否包含展示顺序(order),若存在,则根据展示顺序进行遍历,确定渲染顺序;若不存在,则根据自定义安全基线检查项的表单项的key值,确定渲染顺序。随后,分析各个表单项的数据类型,若表单项的数据类型为数组,则遍历表单项的每个元素进行渲染,确定简单数据类型,进而从枚举的组件中按照数据类型匹配组件,该组件的子元素支持添加和删除。若表单项的数据类型为简单数据类型,则从枚举的组件中,按照数据类型匹配组件。
进一步地,编辑后验证表单项有无验证对象,若有验证对象,则执行回调函数,使用验证对象的正则匹配校验,校验通过,则完成填写,若校验不通过,重新编辑表单进行校验。若不存在校验对象,则完成填写。
[0071] 在本说明书实施例中,完成所述自定义安全基线检查项的表单项的渲染,进一步包括:
[0072] 基于所述自定义安全基线检查项的表单项的渲染逻辑,确定所述自定义安全基线检查项的执行分支代码以执行所述自定义安全基线检查项,所述自定义安全基线检查项的表单项的渲染逻辑为所述配置的执行任务中的所述自定义安全基线检查项的参数,其中,所述配置的扫描任务中的所述自定义安全基线检查项的参数包括布尔类型的参数、数值类型的参数、字符串类型的参数、数值数组或字符串数组类型的参数。
[0073] 在本说明书实施例中,所述基于所述自定义安全基线检查项的表单项的渲染逻辑,确定所述自定义安全基线检查项的执行分支代码以执行所述自定义安全基线检查项,具体包括:
[0074] 若所述配置的扫描任务中的所述自定义安全基线检查项的参数为所述布尔类型的参数时,且所述布尔类型的参数数值为真,则执行第一代码分支;若所述布尔类型的参数数值为假,则执行第二代码分支;
[0075] 若所述配置的扫描任务中的所述自定义安全基线检查项的参数为所述数值类型的参数时,且所述数值类型的参数数值小于预设阈值,则执行所述第一代码分支;若所述数值类型的参数数值大于等于所述预设阈值,则执行所述第二代码分支;
[0076] 若所述配置的扫描任务的中的所述自定义安全基线检查项参数为所述字符串类型的参数时,且所述字符串类型的参数为目标值的前缀,则执行所述第一代码分支;若所述字符串类型的参数等于所述目标值,则执行所述第二代码分支;否则,执行第三代码分支;
[0077] 若所述配置的扫描任务中的所述自定义安全基线检查项的参数为数值数组或字符串数组类型的参数时,则确定所述配置的扫描任务的参数,是匹配数值类型还是字符串类型,以执行相应代码分支。
[0078] 在本说明书实施例中,所述方法进一步包括:
[0079] 修改位于基线规则集中的安全基线检查项的参数值,以更新所述自定义安全基线检查项,获得更新配置的扫描任务;
[0080] 基于所述更新配置的扫描任务的参数,执行所述自定义安全基线检查项。
[0081] 为了进一步理解确定执行分支以执行自定义安全基线检查项,图7为本说明书实施例提供的一种创建自定义安全基线检查项的流程图。如图7所示,编写自定义安全基线检查项参数,根据自定义安全基线检查项的默认参数值及预创建的Schema文件生成检查项任务参数,将检查项任务参数与自定义安全基线检查项关联并下发至检查项执行器,检查项执行器取出自定义安全基线检查项和对应参数并执行,首先验证预创建的Schema文件的参数,若验证通过,进一步进行检查项参数判断,以执行分支,若在分支执行的过程中,需要进行参数变更,则进行参数编辑。
[0082] 为了进一步理解本说明书实施例的安全基线的创建方法,下面将结合具体的实施例予以说明。
[0083] 假设一家公司正试图保护他们的Web站点服务器,以防止恶意的远程登录。若采用传统方法,必须手动编写一个脚本或使用一个预先建立的脚本来执行必要的安全检查。由于该方法需要大量的技术知识和专业知识,因此这是一个耗时且容易出错的过程。采用本说明书实施例提供的方法,仅需要在网页上填写一个表单,就可以创建自定义的安全基线。该表单由JSON格式的预定义模式生成,允许从预定义的安全检查列表中选择,添加自定义检查,并指定每个检查的参数。
[0084] 在一个实施例中,在防止恶意远程登录这个场景下可采取的一种安全基线是检查是否使用了过短或过弱的密码。为检查定义了两个参数:min_password_length和blacklist。min_password_length参数是一个数字,指定了被认为是安全的密码的最小长度。blacklist参数是一个字符串数组,包含一个被认为是不安全的密码列表。且该模式指定了min_password_length参数是必填的,默认值为8,即认为8位及以上长度的密码是安全的。该模式没有指定blacklist参数是必填的,且没有默认值,表示可以不指定不安全密码列表。在该模式的最后用ui:order指定了页面展示顺序是min_password_length参数在前,blacklist参数在后,页面显示效果较为美观。采用该方法,可以在网页上生成一个动态表单,允许用户自定义检查的参数。用户可以为min_password_length参数输入一个值,并可以从blacklist参数中添加或删除密码。一旦用户提交了这个动态表单,系统就可以使用这些参数来执行安全检查。
[0085] 采用本说明书实施例提供的方法,能够简便快捷的进行安全基线检查项的参数配置,同时能够减少支持定制配置选项的维护负担,使得安全检查具有更大的灵活性和定制性,在识别和减轻安全风险方面更加有效。
[0086] 本说明书实施例提供了一种基于动态参数的安全基线的创建方法,基于同样的思路,本说明书实施例提供一种基于动态参数的安全基线的创建装置。图8为本说明书实施例提供的一种基于动态参数的安全基线的创建装置的示意图,如图8所示,该装置包括:
[0087] 创建模块801,创建基于Schema模式的自定义安全基线检查项,所述自定义安全基线检查项与所述Schema模式关联;
[0088] 预检查模块803,基于所述自定义安全基线检查项的默认参数值,验证预创建的Schema文件内容是否与所述自定义安全基线检查项的默认参数值一致;
[0089] 编辑模块805,若所述预创建的Schema文件内容与所述自定义安全基线检查项的默认参数值一致,则将所述自定义安全基线检查项添加到扫描任务,编辑所述扫描任务中的安全基线检查项的参数值,进行所述扫描任务的配置,获得配置的扫描任务,以用于安全基线检查项的检查,所述扫描任务中的安全基线检查项的参数值所在的界面是基于所述预创建的Schema文件内容生成的。
[0090] 在本说明书实施例中,所述装置还包括:
[0091] 修改模块807,修改位于基线规则集中的所述安全基线检查项的参数值,以更新所述自定义安全基线检查项,获得更新配置的扫描任务;
[0092] 基于所述更新配置的扫描任务的参数,执行所述自定义安全基线检查项。
[0093] 最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。