基于统一基线数据模型的计算机终端基线检查工具设计与实现

2020-12-29 07:57陆庭辉郭凤婵吴毅良刘翠媚
机电信息 2020年36期
关键词:数据模型检查点核查

陆庭辉 郭凤婵 吴毅良 刘翠媚

(广东电网有限责任公司江门供电局,广东江门529000)

0 引言

随着互联网技术的广泛应用,各类网络安全事件层出不穷。对于企业来说,既要防范来自外部网络的安全威胁,更要解决来自企业内部网络的安全问题。为进一步强化内部计算机终端的安全管理,企业一般都会参照业界或企业内部制定的安全基线标准,对计算机终端下发相应安全策略,确保计算机终端系统配置能满足最基本的安全保障要求[1]。但在实际应用中,计算机终端往往不能100%响应下发的安全策略,导致在计算机终端容易产生系统安全配置方面的漏洞,给计算机终端带来运行风险。针对此情况,目前多采用人工核查、写脚本核查、部署终端基线核查系统[2]等方式进行基线的核查检测,但存在以下问题:

(1)人工核查的方式:工作量大、效率低,由于操作人员个体的差异,容易导致检查口径及方法不一致,并且难以形成结构化的检测结果,以供后续开展相应的汇总及数据分析工作。

(2)写脚本核查的方式:工作效率及准确率较人工核查方式有所提高,但对检查人员技术要求较高,并且检查内容固定,未以统一的数据模型对安全基线检测要求进行通用化描述,不能方便地根据基线检测需求进行定制、扩展。

(3)部署终端基线核查系统的方式:现有终端基线核查系统工作效率及准确率高,能支持基线检测项的定制[3],但基线的定制对使用人员有一定的技术要求,并且对于某些特定的检测项(例如软件白名单、软件黑名单、杀毒软件病毒库版本、UKEY PIN码等),由于采用自动化检测方法相对来说较为复杂,目前难以支持。

1 系统设计与实现

1.1 系统总体设计

为解决以上问题,本文提出并设计了一种基于统一基线数据模型的计算机终端基线检查工具,使用统一的数据模型对基线检查项进行描述、定义,支持常见检查项的可视化定制及检测结果的回传分析,帮助企业高效、及时地发现系统配置问题。该计算机终端安全基线检查工具包含四大模块:基线检查项描述数据模型、基线配置模块、基线检测模块、报表及统计模块。基线检查工具工作流程如图1所示。

1.2 基线检查项描述数据模型

基线检查项描述数据模型用于解决对基线检查项进行统一抽象描述的需求,为后续的基线配置及基线检测模块提供数据模型。基线检查项描述数据模型以XML文件方式保存,采用树状的保存结构,用于对基线检查项进行统一描述。该模型由基线库(baselines)、基线(baseline)、基线检查项(item)、检查点(checkPoint)四类实体组成。

图1 基线检查工具工作流程图

(1)基线库(baselines)是所有基线的集合,由多个基线组成。

(2)基线(baseline)是一个特定类型的基线检查项的集合,包含基线类型(type)、基线名称(title)、基线描述(description)等信息以及多个基线检查项(item)。其中基线类型包括但不限于高危端口检测(DangerousPorts)、黑名单软件检测(BlacklistApps)、白名单软件检测(WhitelistApps)、安全防护软件检测(DefensiveSoftwares)、多余服务检测(Unnecessary-Services)、关键系统补丁检测(Hotfixes)、Windows功能检测(WindowsFeatures)、病毒特征库及补丁更新检测(Update-Time)、账号检测(UserAccount)、UKEY密码检测(UkeyPin)、自定义注册表键值检测(RegistryValue)等。

(3)基线检查项(item)属于特定的某个基线,包含检查项ID、检查模式(mode)、适用系统版本(os)、适用系统位数(bit)以及检查点集合(checkPoints)。其中,检查项ID用于唯一标志基线检查项。检查模式用于定义在进行基线检查项检测时对检查点的检查方式,包括但不限于:

1)ExcludeAll(排除所有检查点):在该终端上不能包含所有列举的检查点值。例如在高危端口检测时,检查点为445、135、137、139等,则当检查点所列的端口全部不开放时,该基线检查项通过检测。

2)IncludeAll(包含所有检查点):在该终端上应包含所有列举的检查点值。例如在检查安全防护软件时,杀毒软件基线检查项检查点为进程A和进程B,则当终端上同时存在进程A和进程B时,该基线检查项通过检测。

3)IncludeOne(包含至少一个检查点):在该终端上应包含至少一个所列举的检查点值。例如在关键系统补丁检测时,补丁A基线检查项检查点为补丁编号a1和补丁编号a2,则当终端上已安装编号a1或编号a2的补丁时,该基线检查项通过检测。

4)IncludeOnly(仅能包含检查点):在该终端上应只能包含所列举的检查点值。例如管理员账号基线检查项,检查点为admin,则当终端上仅有admin一个管理员账号时,该基线检查项通过。

5)None(结果需为空):要求在该终端上对应基线检查项输出应为空。例如在检测网络共享基线检查项时,若终端上不存在任何网络共享条目,则该基线检查项通过。

6)CheckUpdateTime(检查更新时间):要求在该终端上特定对象的更新时间小于特定值。例如在病毒库更新检测时,检查点包含病毒库文件路径及更新天数,当该病毒库文件更新时间小于更新天数时,则该基线检查项通过。

7)Operation(检查点表达式运算):可对所列举的检查点,按定义的运算表达式进行逻辑运算,从而判定基线检查项是否通过。该检查模式是对以上6种固定模式的补充,支持对检查点进行与、或、非、包含、大小比较等多种逻辑运算方式。

(4)检查点(checkPoint)是某一基线检查项在检测时的一系列参考值,根据基线检查项的检查模式及检查点参考值,决定基线检查项是否通过检测。

1.3 基线配置模块

该模块用于为用户提供可视化的基线检查项配置界面,并按基线检查项描述数据模型对各个基线的检查项及检查点信息进行保存,形成基线检查项目库。

1.4 基线检测模块

用于对配置的基线检查项目库进行解析,按解析后的基线检查项目自动化开展基线检查,生成基线检查结果。该模块包括基线检查项目库解析器、基线项检测器、基线结果生成等组件,按以下步骤开始基线检测:

(1)基线检查项目库解析器加载XML格式的基线检查项描述数据模型(基线库),提取基线类型(type)、基线名称(title)、基线描述(description)、基线检查项(items)等信息,并进一步解析出基线检查项(item)及其检查点(checkPoint)等信息,在内存中形成基线库数据结构体,数据结构体结构对应XML文件格式的基线检查项描述数据模型。

(2)基线项检测器根据解析出来的基线库数据结构体,对每个基线中的检查项进行检测,检测结果根据上文中所述的检查模式及检查点的运算关系确认。

(3)基线结果生成器将基线项检测器的检测结果进行组装,形成检测结果数据结构体。

1.5 报表及统计模块

用于对基线检测模块生成的基线检测结果进行汇总及分析展示。基线检测模块生成检测结果后,工具以JSON字符串格式将检测结果数据结构体发送至后台系统进行数据汇总及展示。

2 应用效果

本文所述的计算机终端基线检查工具统一了终端安全基线的检查口径及方法,提高了终端安全基线核查工作的效率及准确率,并形成了结构化的检测结果,有利于后续结果汇总及分析工作的开展。该基线检查工具通过基线库(baselines)、基线(baseline)、基线检查项(item)、检查点(checkPoint)等四类实体,对基线检查项目进行统一的数据模型通用化描述,为后面的基线库定制自定义配置、基线自动检测及结果生成提供了统一的数据模型支撑。基线检查项配置模块结合基线检查项描述数据模型,为用户提供了方便的检查项及其检查点配置的功能,通过选择不同的检查模式灵活支撑高危端口检测、黑名单软件检测、白名单软件检测、安全防护软件检测、多余服务检测、关键系统补丁检测、Windows功能检测、病毒特征库及补丁更新检测、账号检测、UKEY密码检测等类型的基线项定义及检测,极大地降低了用户的技术门槛要求,解决了现有基线核查系统难以支撑某些特定检查项的问题。同时,在以上相对固定的基线项的基础上,提供自定义注册表键值检测的功能,配合Operation(检查点表达式运算)检查模式,方便将对基线的检查转化对注册表键值的逻辑运算,保证了基线检查库的可定制性及扩展性。

3 结语

随着互联网技术的深度应用,网络攻击愈加频繁。作为网络行为的起点,计算机终端容易变成网络攻击的源头[3]。为了及时发现计算机终端在系统配置方面存在的漏洞,借助成熟、高效的计算机终端基线检查工具定期开展安全基线检测,已成为计算机终端安全管控的一个方向。结合企业日常的终端安全基线检查需求,基于统一的基线数据描述模型,实现基线检查项可灵活配置的终端安全基线检查工具,可有效统一终端安全基线的检查口径及方法,进一步提升计算机终端的安全防护能力。

猜你喜欢
数据模型检查点核查
对某企业重大危险源核查引发的思考
Spark效用感知的检查点缓存并行清理策略①
免疫检查点抑制剂相关内分泌代谢疾病
关于设计保证系统适航独立核查的思考
基于无人机影像的营造林核查应用研究
面板数据模型截面相关检验方法综述
分层检查点的近似最优周期计算模型
经济全球化对我国劳动收入份额影响机制研究——基于面板数据模型
肿瘤检查点相关研究进展△
逾六千家政府网站关停整改核查再升级