收稿日期:2008208220基金项目:山东省自然科学基金(Y 2006G 20)作者简介:宁兴旺(1984-),男,硕士研究生,主要研究方向为网络信息安全。
文章编号:100224026(2009)0120040206基于Windows 日志的安全审计技术研究宁兴旺,刘培玉,孔祥霞(山东师范大学信息科学与工程学院,山东济南250014)摘要:事件日志记录着操作系统或应用程序中重要的事件。
通过对日志进行分析,发现所需事件信息和规律是安全审计的根本目的。
文章讨论了对Windows 系统日志文件进行集中式统一管理,采用API 钩子技术实现Windows 下的审计数据的获取,并通过对Windows 日志的分析给出了一种基于主机日志分析的安全审计通用模型。
关键词:主机日志;安全审计;计算机安全中图分类号:TP393 文献标识码:AR esearch on Windows Log B ased Security Audit TechnologyNing X ing 2wang ,LI U Pei 2yu ,K ONG X iang 2xia(School o f Information Science and Engineering ,Shandong Normal Univer sity ,Jinan 250014,China )Abstract :An event log records s ome im portant events of an operating system or an application procedure.It is the primary purpose of a security audit to discover the required information and rules of an event bythe analysis of a log.This paper discusses the central and global managment of windows system log files ,em ploys such a techanology as API hook to acquire the audit data of windows system ,and presents ahost log analysis based security audit universal m odel by the analysis of a windows log.K ey w ords :host log ;security audit ;com puter security 近几年来,随着开放系统Internet 的飞速发展和电子商务的日益普及,网络信息安全问题日益突出,各类黑客攻击事件更是层出不穷。
而相应发展起来的安全防护措施也日益增多,特别是防火墙技术以及I DS (入侵检测技术)更是成为大家关注的焦点。
但是这两者都有自己的局限性。
在这种情况下,安全审计系统应运而生。
安全审计系统作为一个完整安全框架中的一个必要环节,一般处在入侵检测系统之后,作为对防火墙系统和入侵检测系统的一个补充。
根据安全审计系统的一般要求[1],参照美国国家标准《可信计算机系统评估标准》(T rusted C om puter System Evaluation Criteria ),安全审计可以理解为:定义1:一个安全的系统中的安全审计系统,是对系统中任一或所有安全相关事件进行记录、分析和再现的处理系统。
衡量一个安全审计系统好坏的标准主要有以下几个方面:(1)采集信息是否全面、安全和有效:一个好的安全审计系统能够审计出问题来,它必定要有足够多的信息去审计才可以保证系统能审计出问题来。
采集到的信息是否足够全面,并且原始(没有被破坏或篡改)、第22卷 第1期2009年2月山东科学SH ANDONG SCIE NCE V ol.22 N o.1Feb.2009安全和有效,是一个安全审计系统的基本标准。
(2)规则库匹配算法的效率:安全审计系统的主要核心在于审计规则库。
规则库的完善与合理是一个重要指标,但规则匹配算法的效率同样重要。
一个好的系统应该使规则库具备自学习和自适应能力。
所谓自学习是指规则库可以根据管理员对记录的处理方法以及实际数据模式自动产生新的规则,更好地适应实际需要;所谓自适应能力主要是指规则库根据安全管理员对实际审计报告的评价,动态调整每条规则的可信度和某些其它参数。
规则匹配速度是否够快,规则本身是否具有自学习和自适应能力是一个优秀的安全审计系统的所应具备的。
(3)进一步提高系统的趋势分析能力:所谓趋势分析是指系统根据日志中的历史数据以及某些统计学原理,来判断当前的运行状态是否安全。
这对于系统检测某些新出现的或特征比较模糊的入侵行为是很有好处的。
1 事件日志Windows 的事件日志记录着操作系统或应用程序重要的事件,审计主要是通过对所关心的事件日志进行记录和分析来实现的。
事件日志分为:应用程序日志、系统日志和安全日志。
应用程序日志包含由应用程序或一般程序记录的事件。
系统日志包含由系统组件记录的事件。
安全日志可以记录诸如有效和无效的登录尝试等安全事件,以及与资源使用有关的事件。
例如,如果您启动了登录审核,那么系统登录尝试就记录在安全日志中。
我们只监控有关系统安全审核的事件,监控这种事件记录,我们就可以知道系统发生了哪些重要的安全审核事件。
一般来说,日志文件中的记录可提供以下用途:①监控系统资源;②审计用户行为;③对可疑行为进行告警;④确定入侵行为的范围;⑤为恢复系统提供帮助;⑥生成调查报告,⑦为打击计算机犯罪提供证据来源。
在理想的情况下,日志应该记录每一个可能的事件,以便分析发生的所有事件,并恢复任何时刻进行的历史情况。
然而,这样做显然是不现实的,因为要记录每一个数据包、每一条命令和每一次存取操作,需要的存储量将远远大于业务系统,并且将严重影响系统的性能。
因此,日志的内容应该是有选择的。
一般情况下,日志记录的内容应该满足以下原则:(1)日志应该记录任何必要的事件,以检测已知的攻击模式。
(2)日志应该记录任何必要的事件,以检测异常的攻击模式。
(3)日志应该记录关于记录系统连续可靠工作的信息。
在这些原则的指导下,日志系统可根据安全要求的强度选择记录下列事件的部分或全部:(1)审计功能的启动和关闭。
(2)使用身份鉴别机制。
(3)将客体引入主体的地址空间。
(4)删除客体。
(5)管理员、安全员、审计员和一般操作人员的操作。
(6)其他专门定义的可审计事件。
通常,对于一个事件,日志应包括事件发生的日期和时间、引发事件的用户(地址)、事件的源和目的的位置、事件类型、事件成败等。
2 基于日志的安全审计系统设计与实现基于日志的安全审计系统的基本设计目标是对指定范围的主机内容进行审计,发现可能存在的有害信息,并保存相关现场,以便采取进一步的行动,从根本上杜绝信息污染。
在这里我们提出了一个实用的基于14第1期宁兴旺,等:基于Windows 日志的安全审计技术研究Windows 日志的安全信息审计系统的具体设计和实现。
详细讨论了该模型的运行机制和主要特点,对模型各个组成部分的功能和设计要点进行了介绍。
2.1 系统总体设计根据对现有信息审计系统实现的研究,我们对基于日志的安全信息审计系统的组成进行了设计。
这个模型最大的特点就在于,在基于日志的审计基础上加入了取证模块,使得我们对于审计出来的问题同时还可以进行取证,做到了基于日志下的审计与取证的联动机制。
系统运行在Windows 操作系统下,系统框架图如图1所示。
图1 基于日志的安全审计系统框架图审计是通过对所关心的事件进行记录和分析来实现的,因此审计过程包括日志、审计和取证等三大部分。
(1)日志模块主要功能①对操作系统系统日志、防火墙日志、网络数据等进行采集,支持各种日志从外部导入,并将采集出的数据进行预处理和统一格式处理,存入日志库。
②对采集到审计系统中的日志进行定时或定量备份存储。
③对审计与取证模块提供多种方式的查询接口。
为用户提供管理界面,由于审计系统采用B ΠS 架构,因此用户可以直接通过浏览器来管理配置系统,并支持高效的组合条件查询库存日志。
④系统本身的安全性:安全审计系统本身的安全性必须保证,其中,一方面包括操作系统和软件的安全性;另一方面包括审计数据的安全性。
一般来说,要保证审计系统本身的安全,必须与系统中其他安全措施(例如认证、授权、加密措施等)相配合[2]。
(2)审计模块主要功能①对采集到审计系统中的日志进行实时处理分析,随后根据规则库产生相应等级告警。
②系统本身可以根据审计结果进行自学习和自适应处理,丰富自己的规则库。
同时用户可以根据自己发现的规则,进行规则的自定义添加。
③将审计结果产生报表,并可以通过电子邮件或其他方式发给管理员[3]。
24山 东 科 学 2009年④能够检查出大多数常见的系统入侵的企图。
同时,如果有必要,可以再现产生某一系统状态的主要行为[4]。
(3)取证模块主要功能①审计结果可以对入侵行为和违法行为进行记录并可以在任何时间对其进行再现以达到取证的目的,同时对于责任追查和数据恢复非常有必要,最后它可以用来提取一些未知的或者未被发现的入侵行为模式。
②对于审计出的问题进行相关的日志跟踪和取证,将结果保存在证据库以供日后提交。
并可以对企图入侵者起到威慑作用,又可以减少合法用户在无意中违反系统的安全策略。
③将取证结果反馈给审计模块,可进行规则的自学习添加,当日后再出现此类问题时,可快速反应并作出相应处理。
做到了审计与取证的联动。
2.2 系统实现相关技术2.2.1 日志格式统一化日志格式统一化是系统的核心模块之一,它负责日志的多层解析和对解析结果作合并与初步统计,因为各个设备的日志格式不一致,每种日志有着不同的字段和格式,所以需要进行日志的统一格式转化,将其存储为日志审计系统定义的格式。
目前为了现实日志格式的标准化,对采集层收集的日志信息进行预处理过滤、规整化、合并,形成统一的日志事件数据源。
同时,为了降低日志的量和复杂度,主要采用词法分析和语法分析对日志信息进行预处理,它们由代理和转换器(adapter )完成,根据可预先定义的配置,把各种类型的安全数据化成统一的格式。
同时,根据预先定义的分类规则对事件进行归纳分类、冗余处理,并根据需要把事件转发到相应的事件处理服务器上或者直接转存到事件数据库中进行数据存储。
具体格式如下[5]:typedef struct{time t log time[32];unsigned char log char[32];unsigned short logshort[32];unsigned int log int[32];unsigned long log long[32];address log addr[32];nchar log nchar[32];nshort lognshort[32];nint log nint[32];}LOG;将每一条日志的字段,填入LOG 结构体中,这样就可以做到对不同日志的统一管理。