电信运营商系统安全状态基线研究及应用
2012-08-09李小雪皇甫涛陈涛吴鹏
李小雪, 皇甫涛, 陈涛, 吴鹏
(中国移动通信集团重庆有限公司,重庆 401420)
安全基线是一个业务系统的最小安全保证,即该业务系统最基本需要满足的安全要求,构造业务系统安全基线是系统安全工程的首要步骤,同时也是进行安全评估、发现和解决业务系统安全问题的先决条件。本文将对系统安全状态基线的建立和应用进行探讨。
1 安全基线的内容
安全基线的内容可以分为3个方面。
1.1 安全漏洞
漏洞通常是由于软件或协议等系统自身存在缺陷引起的安全风险,一般包括了登录漏洞、拒绝服务漏洞、缓冲区溢出、信息泄漏、蠕虫后门、意外情况处置错误等,反映了系统自身的安全脆弱性。漏洞信息一般基于相应的国际标准,如CVE(Common Vulnerabilities& Exposures)。
1.2 安全配置
通常都是由于人为操作的疏忽造成,主要包括了账号、口令、授权、日志、IP通信等方面内容,反映了系统自身的安全脆弱性。
1.3 系统状态
系统状态包含系统端口状态、进程、账号以及重要文件变化的监控等。这些内容反映了业务系统当前所处环境的安全状况。
在安全基线与业务系统相结合的过程中,最重要也是最关键的内容体现在系统安全状态的基线要求上。系统安全状态是指特定资产上包含的进程白名单、端口白名单、账号白名单、重要文件列表等的集合,作为安全检查的度量维度,称作状态基线。其中,重要文件列表是指对于特定类型的资产,根据其系统、服务属性,通常一些重要文件经过配置后不经允许的更改为非法操作,重要文件列表是为保护和监视这些重要文件改动情况建立的快照列表。后文中对系统状态基线的描述均限于系统文件状态基线。
2 系统状态基线的建立方法
2.1 建立系统状态基线的目标
建立系统状态基线的目标有两个方面:取证和管理。
创建基线的取证性目的,是在尽可能不对目标系统造成干扰的情况下记录下一个准确的快照。最关心的问题是证据保存的完整性、正确性及易用性。耗时和自动化的考虑虽然重要,但并不是首要问题。取证人员的首要目的是创建可以用于法庭检测的证据。
创建基线的管理性目的,是在尽可能减少管理负担的情况下记录下一个准确的快照。最关心的问题是耗时、自动化、可扩展性、内建分析功能、正确性和易用性。管理员希望的是能够自动发现和纠正问题,同时也需要智能化的告警和完善的日志功能。
2.2 创建基线和检测改变
确定希望检测的改变的属性集合,然后开发或者获得相应工具。这种工具应能够精确、系统地遍历指定目录和文件,收集或者生成需要的属性,同时对目标系统影响最小化。
选择一个支持基线创建目标的安全环境来运行第一步选择的工具;以能够保存原始信息和确保完整性的方式将创建的基线结果存档。
未来的某个时间点,以第二步的方式重复建立快照;对比快照来确定是否有改变发生。
定期重复第三步;在需要建立新的基线时,进行第二个步骤。
2.3 系统状态基线创建方法
2.3.1 替代平台
从安全取证角度来看,创建一个系统状态基线的最安全的方法,是使用一个专用的独立主机。该主机运行一个基线创建系统,它经过特殊配置,可以挂载和扫描从目标系统提取的磁盘。但是,提取目标磁盘的过程不一定容易或者可行,如果操作手段不正确,有可能导致无法挽回的破坏。这种方法的优点有:
(1)这种方法完全独立于目标系统,这为分析提取出的磁盘提供了必须的带外安全环境。
(2) 由于基线创建工具运行在目标操作系统之外,此方法可以有效地访问目标系统磁盘的所有文件。如果基线创建工具运行在目标操作系统上,则由于内核或者其它锁机制,即使基线创建工具具有完全的系统权限,也并不一定能访问到系统的所有文件。
(3)只要保存得当,基线创建工具和所收集到的数据的完整性就可以得到保证。
(4) 基线创建系统可以将目标文件系统挂载为只读访问,这样就避免了意外写入数据的可能。有的旧式的SCSI磁盘具有一个物理跳线,可以设置磁盘为只读模式;也可以设置写保护来保证只读访问。
这种方法的缺点有:
(1) 维护人员必须对这种专用基线创建系统进行维护,增加了工作量。
(2) 这种方法耗时较长,而且需要人工干预和对所涉及系统进行物理访问。
(3) 目标操作系统必须离线,可能持续数分钟甚至数小时,会对业务造成影响。
(4) 需要拆解目标系统取出磁盘,这样有可能导致无法修复的损坏。操作者必须掌握较多的硬件知识。
2.3.2 替代操作系统
另一种创建系统状态基线的相对安全的方式,是在目标系统上启动一个替代操作系统。这个系统可以访问和扫描目标文件系统。为了尽量不对原有数据造成影响,操作者不能将输出写入到目标媒体上。同时,应该尽可能把目标文件系统挂载为只读访问,这种方法的优点有:
(1) 完全独立于目标操作系统,作为一种带外方式来分析目标系统磁盘。但是,如果目标系统硬件/固件已被入侵,此方法就会有风险。
(2) 由于基线创建工具运行在目标操作系统之外,此方法可以有效地访问目标系统磁盘的所有文件。
(3) 如果保存得当,且目标系统硬件/固件未被入侵,则基线创建工具和所收集到的数据的完整性就可以得到保证。
(4) 替代操作系统可以以软件只读方式挂载目标文件系统。
(5) 基线信息可以直接输出到许多不同类型的媒体,例如并口/串口/usb接口、网络、SCSI磁盘、PCMCIA等。这就给予了操作者更多的方式来克服可能遇到的各种限制(例如没有外接SCSI接口)。
这种方法的缺点有:
(1) 维护人员必须对替代操作系统的硬件、软件等进行维护;每个目标系统可能有独特性,需要不同的替代操作系统硬件/软件,增加了维护的复杂度。
(2)耗时较长,而且通常需要人工干预以及对目标系统的物理访问。
(3) 目标操作系统必须离线,可能持续数分钟甚至数小时,会对业务造成影响。
(4) 当今许多系统支持多个启动设备,具有多种启动选项,操作者必须详细了解每个目标系统的启动过程。
(5) 替代操作系统必须具有各种目标文件系统的驱动程序。
(6) 如果替代操作系统和目标操作系统共存,在获取系统快照之前或之后都有可能造成基线创建工具或者其数据损坏。
2.3.3 单用户模式
第3种创建基线的方法是将目标系统置于单用户模式。在此状态下,会有少部分系统进程运行,网络共享应该被禁用,普通用户应不能访问系统,同时,应可以以只读方式重新挂载部分或全部目标文件系统。不过,并不是所有系统都支持单用户模式(例如Windows),所以此方法并不完全通用。
此方法必须考虑到的一个主要问题是如何输出。如果可能的话,输出应该写入到特定的外置存储介质。某些情况下,可能会出现输出只能存储到目标系统的文件系统的现实问题。令人遗憾的是,从安全取证角度考虑,这有可能在操作过程中覆盖潜在证据。这些情况下提出的基线仍然具有价值,但是操作者应在操作之前评估利益与风险。这种方法的优点有:
(1) 为创建基线提供了一个受限访问环境。
(2) 可以有效地访问目标文件系统的大多数或者全部文件。因为基线创建工具在目标操作系统上运行,可能会缺少访问所有文件对象的必须权限。
(3) 大多数情况下,目标文件系统可以重新挂载为只读访问。这为避免破坏系统提供了额外的保护。
这种方法的缺点有:
(1) 完全基于目标系统,因此基线创建工具只有在带内环境下操作。这可能导致输出不完整或者不可信。
(2) 耗时较长,而且通常需要人工干预以及对目标系统的物理访问。
(3) 操作者可能不得不将输出存储在目标系统的文件系统上,增加了潜在证据丢失的风险,也可能将基线数据暴露在攻击之下。
(4) 将目标系统置于单用户模式,也就导致了系统的不可用。这可能持续数分钟甚至数小时,会对业务造成影响。
(5) 创建基线的可执行程序在内存内被执行时,以及执行前在保存磁盘上都具有风险。通过在只读媒体(例如CDROM)上执行,可以消除在磁盘上被修改的风险;因为系统处于单用户模式,可以降低但无法消除在内存内被修改的风险。
2.3.4 多用户模式
最后一种创建基线的方式是在正常系统模式下操作。在此模式下,可能无法重新挂载目标文件系统到只读模式。与单用户模式类似,也需要考虑数据输出问题。从安全取证角度考虑,此方法是所有方法中最不完善的一种,但是在时间或者可操作性的限制下,有可能也是唯一可行的方法。这种方法的优点有:
(1) 当可以远程访问时,可能不必物理访问目标系统。
(2)可以有效地访问目标文件系统的大多数或者全部文件。因为基线创建工具在目标操作系统上运行,可能会缺少访问所有文件对象的必须权限。
这种方法的缺点有:
(1) 完全基于目标系统,因此基线创建工具只有在带内环境下操作。这可能导致输出不完整或者不可信。
(2) 结果输出必须存储至目标系统或者网络资源。两种情况都对数据的完整性造成风险。加密可以降低风险,但不一定能完全消除。
(3) 任意或者所有目标文件系统被重新挂载为只读访问的可能性较小。即使文件系统能够以此方法重新挂载,也可能由于操作问题等原因而无法实现。
(4) 创建基线的可执行程序在内存内被执行时,以及执行前在保存磁盘上都具有风险。通过在只读媒体(例如CDROM)上执行,可以消除在磁盘上被修改的风险。
(5) 目标系统对用户可用,普通进程也会继续运行,这可能导致不完整、不一致或不正确的结果,因为证据可能在被收集之前就遭到修改或者破坏。
3 系统状态基线创建工具及应用
3.1 FTimes工具简介
FTimes(File Topography and Integrity Monitoring on an Enterprise Scale,企业级文件形态和完整性监控)是一个开源项目。它的首要目的是收集和生成指定文件和系统的形态信息和属性,支持内容完整性检测、事件响应、入侵分析以及计算机安全取证。
FTimes作为一款轻量级工具,可以保存在一张软盘内,无需在目标系统安装,只提供命令行界面。它具有两种基本功能:文件形态生成和字符串查找。文件形态生成,意味着对一个指定的文件系统映射目录和文件关键属性,而字符串查找是指对指定的文件系统扫描挖掘特定的字节串。
FTimes支持两种操作模式:工作台模式和客户端-服务器模式。在工作台模式下,操作者使用FTimes对证据(例如从被入侵系统提取的文件或磁盘镜像)进行改变分析、查找特定属性、检查完整性等操作。在客户端-服务器模式下,操作者可以从多个主机高效地监测、管理和收集快照数据,以HTTPS的安全传输方式保存至一个称为完整性服务器的集中化系统。图1为一个典型结构示意图。
图1 FTimes客户端-服务器模式示意图
FTimes支持对多种文件属性收集生成所谓的文件形态(File Topography)。创建快照时,FTimes将目录和文件列表作为输入,收集相应属性,生成一个包含每个对象属性的文本集。一些属性(例如大小、访问时间等)直接从文件系统的数据结构中获取,而MD5/SHA1等散列信息则通过计算获得。
3.2 测试平台应用
我们搭建的测试平台拓扑图如图2所示,各服务器均为Linux主机,业务服务器模拟正常业务平台的服务器,而完整性服务器为FTimes专用服务器,服务器之间通过交换机连接,实现网络可达。FTimes部署为客户端-服务器模式。
图2 测试平台拓扑
(1) 业务服务器配置:业务服务器在运行正常业务程序的同时运行FTimes客户端程序,对/etc/、/usr/等关键目录进行监控。
(2) FTimes完整性服务器配置:对FTimes完整性服务器进行安全加固,配置FTimes服务端Web程序nph-ftimes.cgi,以支持FTimes的GET、PING和PUT等HTTP/S请求。
基线生成及监控流程:
(1) 在确定业务正常、系统未被入侵的初始阶段,使用FTimes对每个业务服务器生成关键目录的状态基线,上传至完整性服务器保存。
(2) 通过cron配置业务服务器FTimes定时生成关键目录状态快照,上传至完整性服务器与基线进行比对。
(3) 如果比对发现改变,则说明该业务服务器文件遭到修改,可能遭受入侵。通过FTimes可以分析出被修改的文件,再经手工核查,分析入侵过程及进行修复。
异常情况处理:在系统部署完毕后,我们模拟了其中一台业务服务器被入侵并被添加用户的情况。由于造成了/etc/passwd文件的改动,系统快照已与之前的系统状态基线有差异。在客户端上传快照至完整性服务器后,完整性服务器通过比对发现了差异,并自动发送告警邮件至管理员的139邮箱。管理员通过手机收到邮件提醒短信,立即可以开展事件响应工作。
4 结束语
本文首先提出了安全基线的内容,并把系统安全状态基线作为重点,讨论了系统文件状态基线建立的目标,并给出了创建基线和检测改变的过程。之后,提出了4种系统状态基线创建方法,并对每种方法的优劣进行了详细分析,指出了适用场景。最后,对一种开源的系统状态基线创建工具FTimes进行了介绍,并搭建测试平台实现了自动创建系统状态基线并检测改变的功能。通过平台的实地测试,FTimes实现了自动监测系统文件改变的功能,对增强系统基线安全、减轻维护人员工作量有较大帮助。
[1] 彭霄. 安全基线风险评估技术的研究[R]. 北京: 北京邮电大学, 2010.
[2] 桂永宏. 业务系统安全基线的研究及应用[J]. 北京: 计算机安全, 2011.
[3] FTimes Project[EB/OL]. http://ftimes.sourceforge.net.