终端安全防护技术研究(二)

2 终端防护的技术实现

2.1 漏洞检测与修复

计算机信息系统中应用最广的是Windows操作系统,以办公应用和信息系统服务为核心应用的计算机和服务器上运行较广的应用软件包括MS SQL、Office等产品,这些产品的安全漏洞往往成为黑客攻击的目标,容易被攻击者利用发起安全攻击。终端操作系统和软件漏洞检测与修复能力是终端安全防护的基石。
技术实现方面,漏洞检测与修复主要包含补丁检测技术和补丁关联技术。

2.1.1 补丁检测技术

检测Windows补丁安装情况通常有三种方法,一是通过注册表检测,二是使用微软提供的WMI消息接口,三是通过操作系统的命令获取补丁安装列表。
(1)搜索注册表获取补丁安装列表
在Windows的注册表中有如下项HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Updates\Windows XP,这里面有Windows的补丁安装列表。还有HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\HotFix。通过注册表的方式在Windows XP及以前版本工作良好,但是在Vista或者WIN 7版本这种方法不再有效。
(2)通过WMI消息获取补丁安装列表
Windows为每个操作系统补丁都分配了一个补丁编号,Windows提供WMI接口,根据补丁编号查询系统补丁安装情况,通过创建WMI对象检测补丁安装情况。利用WMI不仅可以获得系统安装的SP补丁和HotFix补丁,还可以使用Security Analyzer获得系统的哪些补丁没有安装。Windows系统通过Mssecure.xml文件获得哪些补丁必须安装。
(3)通过Windows命令获取补丁安装列表
当补丁数量不多的情况下该方法可以查询出系统未安装的补丁,但是随着Windows操作系统补丁包的不断发布,Windows操作系统的补丁库越来越庞大,加载所有补丁的方式效率明显不足,因此我们也可以使用系统提供的指令进行补丁安装查询。
在Windows操作系统下通过执行系统命令systeminfo可以获得系统已经安装的补丁列表,将补丁列表与系统补丁库比对即可检测出操作系统未安装的补丁。

2.1.2补丁关联技术

系统补丁修复需要解决补丁冲突和补丁关联等问题,以Windows XP为例,微软在操作系统的补丁数量积累到一定量时会统一发布一个SP补丁,因此Windows XP系统即形成了SP1到SP4四个大的补丁包,因此当系统安装了SP补丁后,该SP补丁所包含的补丁将不需要安装,从而使得补丁之间具有包含关系。
同时,Windows系统的不同补丁之间还存在冲突的关系,有些补丁不能同时安装。为了实现补丁的自动检测和安装,必须对补丁进行管理,通过补丁库管理定义不同补丁之间的冲突和包含关系,以便于补丁修复程序根据关联关系进行补丁修复。
补丁检测和更新的技术实现原理比较简单,Windows也提供了WSUS作为免费的补丁分发管理系统,支持多级级联的补丁分发管理。国内开源的补丁检测与分发管理的系统也有不少,比较典型的是金山卫士,其提供了补丁检测和自动安装的源代码实现,同时还提供了补丁库下载的服务接口,可以通过服务接口下载经过金山公司测试的补丁库,并附带补丁关联关系文件。开发者基于金山卫士开源代码可以快速的实现一套完整的补丁分发与管理系统。

2.2 终端资产管理

资产是对硬件设备和软件的统称,具体到终端资产,一般指终端的计算机硬件及终端上所使用的软件。终端资产是终端防护和管控的对象,有效的资产管理措施有利于安全运维人员掌握终端的运行状态,包括终端的硬件配置、终端上安装和运行的软件及版本。终端资产管理就是要建立终端资产台帐,实现终端软硬件资产的关联管理和资产的统计、检索和展示。终端资产管理包括资产登记、资产生命周期管理和资产可视化。

2.2.1资产登记

资产登记是指对终端资产进行信息采集和录入。从类型上分,终端资产一般可以分为主机资产、操作系统资产、应用软件资产,每类资产都有自己的资产属性信息。主机资产是指计算机硬件设备,包括主机本身的硬件配置及与之相关的外设接口配置,如主机的CPU信息、硬盘信息、内存配置、网口数量与型号、USB接口数量与版本、串口数量与类型、并口数量与类型等,同时作为硬件设备,主机资产一般包括主机维护的基本数据,包括资产的价值、价格、重要性、责任人。操作系统资产是指运行主机资产上的操作系统,主流的操作系统包括Windows操作系统和Linux操作系统,操作系统基本信息包括系统类型、系统版本号、系统授权信息、系统补丁信息等。应用软件资产是指运行在终端主机上的应用软件,应用软件属性较多,其基本属性包括软件名称、版本号、软件生产厂家、软件用途、软件适应的操作系统、软件注册时间、软件授权信息等。
资产登记通过终端防护软件进行资产信息采集,并依托于终端管控服务器实现对终端资产信息的补充。无论是Windows操作系统还是Linux操作系统,都提供了相应的API接口或者shell命令获取硬件资产信息,可以通过接口获取终端主机的硬件信息、操作系统信息及所安装的软件的基本信息。在Windows系统下,微软还提供了WMI消息接口获取终端资产信息。
资产信息录入包括对资产进行建模和提供资产属性编辑界面。资产的属性分为基本属性和扩展属性,根据资产类型不同,可以定义资产的一些基本属性,如上面列举的资产属性,但是通常很难通过资产的基本属性列举某一类资产的信息,同时一些新的资产类型可能存在特殊属性,需要能够快速扩展,此时通过资产扩展属性就能列举资产的特殊属性或者定义新的资产类型。所谓资产建模就是自定义资产类型,并指定该类资产的属性信息。

2.2.2资产生命周期管理

任何资产都是有生命周期的,对资产的全生命周期管理有利于跟踪资产的流转记录,为安全审计提供数据。为资产建立资产档案是进行资产生命周期的有效手段。首先为每个资产进行编号,以资产编号作为资产的唯一标识,对所有资产的操作进行记录,如资产信息编辑、资产责任人变更、资产外借、资产归还、软件资产卸载、安装和版本升级等操作。以资产编号为外键,为每个资产建立一份资产档案,提供资产档案信息查询和资产流转可视化展示。
软硬件资产的关系是资产生命周期管理必须考虑的问题。如软件资产的卸载、版本更新必然会影响其硬件资产的档案,通过软硬件资产关联能够实现资产档案的关联。软件资产必然依附硬件资产而运行,因此每个软件资产必然关联至硬件资产,通过外键关联即可实现软硬件资产的关联查找和检索。

2.2.3资产可视化

资产信息登记和生命周期管理为各类资产建立了资产模型并实现了资产数据的采集、入库和关联。但是从安全运维的角度出发,良好的可视化展示才能为资产管理带来便利。资产可视化展示要求提供灵活的资产查询功能和多维度的资产统计功能,并且提供图形化的资产流转情况展示。
良好的资产查询功能要求具有较好的扩展性,通常支持使用频率较高的简单查询功能及使用频率不高的定制查询功能,为用户提供查询条件定制功能。资产查询的条件包括资产的基本属性,还应该可以支持按照扩展属性进行查询。查询时,不仅要求实现精确查询,还应该考虑模糊查询。
资产统计是基于特定模型或者条件对资产信息进行统计,一般可以基于资产的基本属性进行统计,并根据统计结果形成统计报表,如基本的资产类型排行、资产价值排行、资产风险排行、资产分布、高危资产统计等。
资产流转情况基于资产档案进行可视化展示,一般以时间顺序为引线,绘制资产流转图。

2.3 终端外设管控

终端外设是指计算机终端与外系统交互的输入输出类设备,外设是终端资产的重要组成部分。实现对终端外设的管理和控制是终端安全防护的核心环节。终端外设管控的目的是通过对外设的读写进行控制,以阻止通过终端的信息泄露,因此外设管控的范围是信息存储和信息传输类外设,如USB存储设备、光驱设备、蓝牙设备、红外设备、串口和并口传输设备等。
从安全管控和审计的角度出发,终端外设管控应该是控制与审计并重,并且提供精细化的外设控制力度,在对外设的管控可以基于安全策略进行配置,如USB存储的使用可以实现直接禁用,也可以对USB存储的写入进行控制,还可以根据USB的硬件序列号进行区别对待,只允许指定的USB存储设备使用。同时终端外设管控还需要对外设的使用情况进行审计,如记录USB介质的插拔日志、光盘的读写和刻录记录等。
从技术实现上,对外设的管控离不开对外设驱动的拦截。任何终端外设的运行都依赖于设备的驱动程序,而外设的驱动程序遵循操作系统对驱动程序的要求。在Windows操作系统下,外设驱动都统一遵循微软的驱动程序框架,Windows驱动程序大致分为三类:NT驱动、WDM驱动和WDF驱动,WDM驱动和WDF驱动都是即插即用的驱动。Windows为每个设备驱动建立驱动对象和设备对象,为开发者提供了驱动对象和设备对象操作方法。
外设管控通常使用WDM驱动模型。在WDM模型中,完成一个设备的操作,至少需要两个设备对象:物理设备对象(Physical Device Object,PDO)和功能设备对象(Function Device Object,FDO)。当某设备被插入时,物理设备对象被创建,这是由总线驱动创建的。该设备不可被单独操作,需要功能设备对象。实际应用中,插入设备Windows会提示检测到新设备并要求安装驱动,指的就是WDM驱动。此驱动创建功能设备对象并附加到物理设备对象之上。物理设备对象中的AttachedDevice指针会指向功能设备对象,但实际情况比上述情况复杂。物理设备对象和功能设备对象间可能会存在过滤设备对象,如下图所示。
在这里插入图片描述
图 1 Windows设备驱动模型
产生这些设备对象的驱动,有些是系统自带,而有些需要程序员编写。通过设备对象的AttachedDevice指针可以找到在其上方的设备对象;通过在DeviceExtension中定义下层设备对象的指针可以找到在其下方的设备对象。
通过对设备对象的操作方法进行拦截和重写可以实现对外设的管控,如拦截设备驱动的写入方法,根据设备管控策略加入设备写入方法的处理逻辑,以实现设备的读写禁用。设备对象和驱动对象拦截驱动实现过程中要解决驱动层与应用层交互的问题。由于拦截方法在驱动层实现,而拦截方法需要获取外设管控策略配置,此时需要从应用层获取外设管控策略,Windows驱动开发模型中,提供了应用层向驱动层的消息接口,通过消息机制可以将策略配置信息从应用层同步至驱动层。
为了实现对外设操作行为的审计,需要得到外设的插拔日志和读写日志。外设的操作日志也只能在驱动层获得。为了将操作日志发送到应用层,一般需要在应用层和驱动层之间创建共享内存,通过设备驱动对象截获设备操作日志并写入共享内存,并发送写入信号,应用层根据信号从共享内存读取外设操作日志。

2.4 终端行为审计

终端行为审计是终端管控的补充,通过对终端上操作行为的记录可以实现用户行为的审计。终端行为审计主要记录用户在终端上的各种操作行为,包括文件操作行为、违反管理规定的行为和系统登录行为。
文件操作是用户使用终端时最频繁的操作行为,包括新建文件、复制文件和修改文件。由于终端文件数多,用户大批量操作文件的行为比较常见,因此文件操作审计以异常文件操作为重点,对特定文件操作行为进行记录,如基于文件类型进行审计或者基于文件拷贝目的目录进行审计,可以监控对敏感文件的操作行为和拷贝文件至外设的行为。此外,还可以基于文件的密级标识进行行为审计,对于高密级文件的操作行为实现审计。
违规行为审计泛指用户的违规操作,因此对于违规行为的定义是违规行为审计的前提。一般定义违反安全管控策略的行为为违规行为,如违反外设管控策略进行外设插拔或者使用未经审批的外设,违反网络访问控制策略进行网络非法访问,违反非法外联策略规定进行网络非法外联尝试等。
系统登录行为审计是指对用户登录和退出操作系统的行为进行审计,记录用户登录和退出操作系统的时间以及登录所使用的账号。系统登录行为审计是追踪溯源的重要依据,通过登录日志能够根据安全违规操作发生的时间找到进行违规操作的账号。

2.5 终端安全登录

终端安全登录是对用户登录操作系统的身份认证方式进行加固。通常操作系统都提供基于用户名和口令的安全认证方式实现系统登录,但是在一些强管控的环境,为了防止用户名和口令泄露或者弱口令导致系统被恶意攻击者控制,可以对操作系统的登录进行安全加固。为了提高系统安全性,一般可以选择使用USB Key或者生物特征进行操作系统登录。
无论使用USB Key还是指纹、虹膜等生物特征识别技术进行桌面安全登录,都是接管操作系统的登录操作。Windows XP通过GINA技术实现系统登录,使用替换GINA的方法可以替换操作系统的登录验证流程,在替换后的GINA中加入USB Key验证或者生物特征识别即可。在Windows 7下使用Credential Provider技术可以接管操作系统登录过程。
Windows 2000和Windows XP的开机密码认证模块一般是由Gina DLL完成的,系统交互式的登陆支持是由WinLogon调用GINA DLL实现的,GINA DLL提供了一个交互式的界面为用户登陆提供认证请求。WinLogon会和GINA DLL进行交互,缺省是MSGINA.DLL(在System32目录下)。微软同时也为我们提供了接口,我们可以自己编写GINA DLL来代替MSGINA.DLL。GINA DLL要输出下列函数Wlx**系列函数实现用户外壳程序激活,屏幕锁定、用户登录身份认证、用户注销等功能。通过改写GINA DLL输出的函数可以实现基于USB-Key的Windows登录身份认证。
在 Win7 以上系统中,微软提供了另外一种接口,就是 Credential Providers, Credential Providers 译为凭据提供者或者凭据提供商。所谓凭据就是提供了一种身份认证的方式,原有的 Windows 身份认证方式就是开机的时候需要输入用户名和密码。而通过微软提供这套接口可以实现丰富的身份认证方式,比如指纹、USB-Key等任意修改 Windows 系统登录时的界面。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部