1、1目录(Contents)安全审计体系结构1安全审计迹2日志审计与分析3审计分析4安全审计(Security Audit)是针对机构信息技术资产安全的一种审计形式RFC4949的定义安全审计是对系统记录和活动进行独立的审查以确定目标系统控制的充分性,确保其符合已经建立的安全策略和操作规程,检查安全服务的违法行为,并提出改进措施和建议的过程基本目标是为发起或参与与安全相关事件和活动的系统实体建立责任制。在此过程中,需要由工具来生产和记录安全审计迹,并通过查看和分析安全审计迹来发现和调查所受的攻击和安全损害安全审计迹(Security Audit Trail)是指按时间顺序排列的系统活动记录2安全
2、审计体系结构ITU-T的推荐标准X.816提出了一种安全审计和报警模型3安全审计体系结构该模型还可以基于分布式实现。区别在于集中式的审计功能将建立一个中央存储库,分布式审计服务增加了两个额外的逻辑组件4安全审计体系结构按照通用标准规范(Common Criteria Specification),安全审计包含以下6个主要功能模块:数据生成(Data Generation):用于标识审计级别,枚举可审计事件的类型,并标识所提供的与审计相关的信息的最小集合事件选择(Event Selection):在可审计集中,选择或者排除一部分事件,以使得系统可以配置不同级别的粒度事件存储(Event Stor
3、age):创建和维护安全审计迹。主要包括提供数据可用性和防止审计迹数据被破坏或丢失的措施。自动响应(Automatic Response):在检测到可能违反安全规定的事件后应该采取的响应审计分析(Audit Analysis):提供自动化的机制来分析系统活动和审计数据,以发现安全违规事件审计复核(Audit Review):对于已经被授权的用户,可用于帮助对审计数据的审核5安全审计体系结构X.816中建议的审计项目6安全审计迹类别建建议审计的安全事件的安全事件与特定与特定连接相关接相关的事件的事件连接请求、确认;断开连接请求及确认;连接的统计附属信息与安全服与安全服务的使的使用相关的事件用相关
4、的事件安全服务请求、使用、安全报警与管理相关与管理相关管理操作、管理通知应至少包含的至少包含的审计事件事件拒绝访问、身份验证、更改属性、创建对象、删除对象、修改对象、使用特权单独的安全服独的安全服务方面的与安全相方面的与安全相关的事件关的事件身份认证(验证成功、失败);访问控制(决定访问成功、失败);不可否认性(不可否认消息的初始位置、收据;失败的事件抵赖、成功的事件抵赖);完整性(有无盾牌(shield)的使用;验证成功、失败);机密性;审计(审计事件的选择、取消;审计事件选择标准的更改);在ISO 27002标准中给与了一个可审计事件列表,其建议的监控区域包括:用户ID;系统活动;关键事件
5、(如登录或注销)的日期;设备标识或位置信息,系统标识符;成功或被拒绝的系统、数据或其它资源的访问尝试记录;系统配置更改;特权的使用;系统应用程序的使用;文件访问记录;网络地址及协议类型;访问控制系统的警报;启动或解除保护系统,例如反病毒软件和IDS系统等;用户在使用应用程序过程中的事务记录。7安全审计迹审计迹分为系统级审计迹:通常用于监控和优化系统性能,同时提供安全审计功能;应能够捕获系统安全策略相关的事件,如成功和失败的登录尝试、执行的操作系统功能等应用级审计迹:用来检测应用程序内部的安全违规或应用程序与系统交互过程中的缺陷用户级审计迹:按照时间顺序记录单个用户的活动,可用于指出用户对自己动
6、作所负的责任物理访问审计迹:可以由控制物理访问的设备生成,然后传送到一个中央主机供后续的审计分析8安全审计迹日志(log):日志中记录了用户对某个文件或服务访问和操作的细节,一些出错信息也将记录在日志中对于文件系统而言,日志是在传统文件系统的基础上,加入文件系统更改的记录跟踪记录文件系统的变化,并将变化内容记录入日志文件。日志文件系统中保存有日志记录。若写操作由于某种原因(如系统掉电)而中断,系统重启时,会根据日志记录来恢复中断前的写操作。在日志文件系统中,所有的文件系统的变化都被记录到日志。在对元数据做任何改变以前,文件系统驱动程序会向日志中写入一个条目,这个条目描述了它将要做些什么,然后再
7、修改元数据对于应用层服务而言,服务访问的结果将记录在一些log文件中,它们记录了什么时间、什么客户访问了什么文件、是否传送成功等信息9日志和审计概述一个完整的日志审计系统应该包括:日志获取:日志获取的对象一般为操作系统、网络设备和数据库等。比如防火墙日志将记录防火墙的各种动作。日志获取从各种设备获取日志信息,并将日志转换为统一的格式,以便于后期的审计分析日志筛选:目的是找出恶意行为或可能是恶意行为的事件。通常通过将恶意行为特征跟对应的日志属性进行比对来确定恶意事件日志整合:是将同一路径各种设备的同一事件关联起来。通过确认行为、行为方向以及数据流是否一致来确定日志是否为同一路径日志分析:日志审计
8、系统的核心。主要与系统的关联规则和联动机制有关。即将不同分析器上产生的报警信息进行融合和关联,对一段时间内多个事件及事件之间的关系进行识别,找出事件的源头,并最终形成审计分析报告10日志和审计概述管理员可以通过日志来检查错误发生的原因,有效地利用日志文件可以在系统发生断电或者其它系统故障时保证整体数据的完整性,对数据进行恢复日志文件在调查网络入侵中十分重要。不会出错的、安全的日志是对入侵提供重要证据的唯一方法有些操作系统本身提供了系统日志工具,如Unix/Linux类常用的日志文件通常放在/var/log目录下11日志的作用Windows下的日志放在系统目录%SystemRoot%system
9、32config下,记录着各种系统服务的启动、运行、关闭等信息,常保存在二进制文件中,需要特殊的工具提取和分析。安全日志、应用程序日志和系统日志等文件受“Event Log(事件记录)”服务的保护,不能被删除,但可以被清空 Windows系统事件一般由一个数字标识码、一组属性以及用户提供的可选数据组成12Windows系统日志文件Windows系统配有三种类型的事件日志:系统事件日志(System Event Log):该工具是由系统服务账号下运行的应用程序、驱动程序或与计算机系统运行状况相关的应用程序或组件来使用。系统事件日志记录的问题主要包括重要数据丢失、错误等,甚至是系统产生的崩溃行为应
10、用程序事件日志(Application Event Log):记录所有用户级应用程序的事件。如SQL Server数据库应用程序完成指定的操作后向日志系统发送记录。此类日志不受保护,任何应用程序可访问安全事件日志(Security Event Log):Windows系统的与安全相关的事件的审计日志。该类日志由Windows本地安全授权服务(Local Security Authority)独占使用。该类日志主要包括:各种系统登录与退出是否成功的信息;对系统的各种重要资源进行的各种操作,比如对文件系统的创建、删除和更改等13Windows系统日志文件Windows运行系统用户在9类不同的活动中
11、启用审计功能:账户登录事件(Account Logon Event):用户身份认证可以通过尝试的登录来验证。这包括认证授权;认证票据请求失败;登录时的账户映射等。此类别的个体活动不需要特别说明,但是当有大量的失败时可能表明有扫描、蛮力攻击等行为登录事件(Logon Event):从本地或者网络发起的用户认证活动。比如用户登录成功;未知用户名或口令错误导致登录失败;因账号被禁用或过期导致登录失败;用户注销;账户锁定等账户管理(Account Management):与账号或者用户组的创建、管理和删除相关的管理活动。比如创建用户账号;更改密码;删除用户账号;Windows域策略更改等目录服务访问(
12、Directory Service Access):对活动目录对象的用户级访问行为,这个对象具有定义的系统访问控制列表(SACL)对象访问(Object Access):对拥有已定义的系统访问控制列表的文件系统和注册表对象的用户级访问。其提供了一种跟踪与操作系统集成在一起的敏感文件的读取访问和更改。比如对象打开;对象删除策略更改(Policy Change):对访问策略、审计配置等进行更改。如用户权限分配;审计策略更改等特权使用(Privilege Use):记录用户使用访问特定的系统功能的所有实例。如用户试图执行特权系统服务操作进程跟踪(Process Tracking):进程启动和结束时,
13、程序被激活或对象被间接访问时生成的详细审计信息。例如创建新的进程;进程退出;用户试图安装服务等系统事件(System Event):记录影响操作系统可用性和完整性的事件,包括启动和关机等信息。例如系统正常启动;系统正常关闭;清除审计日志等14Windows系统日志文件Linux系统的通用日志机制是Syslog。Syslog协议是一个在IP网络中转发日志信息的标准,现在已经成为Internet标准(RFC 5424)Syslog可以记录系统中的任何事件,管理员可以通过查看系统记录随时掌握系统状况。它由以下几个组件组成:syslog():一个可以被标准系统工具调用的应用程序接口,该接口对于应用程序
14、也是可用的logger:用于将单行记录添加到Syslog中的Linux命令/etc/syslog.conf:syslog事件的配置文件。在Ubuntu较新版本的系统中为/etc/rsyslog.confsyslogd:系统守护进程。用于接收和管理来自syslog()调用和logger命令的Syslog事件。在Ubuntu较新版本的系统中为rsyslog15Linux系统日志文件Linux的系统日志可以分为3个部分:登录时间日志子系统:登录时间日志通常与多个程序的执行相关联,日志记录会被写到/var/log/wtmp和/var/run/utmp文件中。系统一旦触发login等程序,就会对wtmp
15、和utmp文件进行更新,图 15.3所示的日志就是该种类型的日志实例进程统计日志子系统:由操作系统内核完成记录工作。如果一个进程终止运行,系统就能够自动记录该进程,并在进程统计日志中添加响应的记录错误日志子系统:主要由系统进程syslogd实现。它由各个应用程序(如HTTP、FTP)的守护进程、系统内核自动利用Syslog向/var/log/目 录 下 添 加 记 录。如 大 家 所 熟 悉 的/var/log/httpd/access_log就是由Apache服务产生的日志文件。/var/log/samba是由Samba服务产生的日志文件16Linux系统日志文件即使操作系统支持日志记录功能
16、,也不能始终相信系统日志文件。事实上,修改日志文件是攻击者学习的第一件事情。这一实践活动已经变得如此普通,以至于现在已在已经有了专门的工具自动处理这一过程为了增加系统的安全性,系统管理员至少要使用一个第三方日志工具,这一方法有许多好处17日志和审计概述使用第三方日志工具的好处:虽然破译者团体中的人员基于操作系统的漏洞非常熟悉,很少有破译者拥有入侵第三方日志软件的知识好的第三方日志软件能够单独获得日志信息,不需要操作系统日志文件作为开始的索引。以后用这些信息与操作系统的日志信息进行比较,当发现不一致时,管理员立即就可以知道有人入侵了系统当系统日志工具出现问题时,第三方日志产品可以起到类似备份的作
17、用 18日志和审计概述下面的工具分析日志文件、从中摘录数据,并做出报告SwatchPsLogListNestWatch NetTracker LogSurfer VBStats 19日志和审计分析工具Swatch(The Simple Watcher and Filer)是Todd Atkins开发的用于实时监视日志的程序。用Perl语言编写,目前主要应用于Unix平台Swatch根据用户设置的配置信息监视日志记录,及时地将用户感兴趣的事件发生情况通知用户。有两种运行方式:批处理方式,即检查日志文件后立刻退出监控方式,连续监视日志文件,检查每一条新记录是否符合用户的设置条件。在监控状态下,Sw
18、atch对事件的更新和通知实时性很好Swatch的配置文件非常重要,它告诉Swatch哪些事件需要向用户报告,采用什么样的方式通知用户Swatch配置文件的格式为:模式以及模式匹配后采取的动作。其中,模式必须是Perl语言认识的正则表达式,正则表达式由关键字和=组成。下面列出了部分关键字和可能值,及对应的解释20Swatch查看本地或远程主机日志文件。可用于Windows NT系列、Windows 2000、Sever 2003、Windows XP甚至最新的Windows Vista它的使用格式为:psloglist 远程机器ip-u username-p password-s-t deli
19、miter-n#-d#-c-x-r-a mm/dd/yy-b mm/dd/yy-f filter-l event log file 21PsLogListNestWatch能从所有主Web服务器和许多防火墙中导入日志文件NestWatch运行在Windows NT系统上,能够以HTML格式输出报告,并将它们分发到选定的服务器上去 22NestWatchNetTracker能分析防火墙和代理服务器的日志文件,这个产品有广泛的过滤功能和报告功能,并且能将数据以Excel文件输出(产品也能分析普通的访问日志并生成适合于以图表方式表示的用户报告)NetTracker运行在Windows上23NetTr
20、ackerLogSurfer是一个综合日志分析工具。程序检查明文日志文件。根据它所发现的内容,它能执行各种动作(当然要提供规则),可能包括发出警告、执行外部程序,甚至包括日志文件数据分块并将它们送给外部命令或进程处理24LogSurferVBStats是一个Windows下的强大的日志分析器。这一工具的输出格式为Microsoft Access文件格式,因此可以对结果数据进行进一步处理。特别有意思的是VBStats能自动依据IP地址转换出DNS这非常有用,因为通常用户都愿意知道真正的主机名是什么。仅仅因为这个原因,VBStats就值得拥有(另外,VBStats能很好地发布对Web服务器的访问报
21、告)25VBStats 审计数据的分析方法种类很多,例如:基本的报警:这是审计分析的最简单的形式,对软件已经发生的特别突出的事件给出报警信息。如果是实时消息,则可以发送给入侵检测系统基线设置:根据异常事件和模式来定义正常事件和模式的过程。其包括测量一组已知数据来计算正常值范围。将这些数据与新的数据比较来检测异常变化。比如每个协议的网络流量总和;登录/退出情况;每时间段日志数量等。阈值就是一种基线分析的形式关联分析:又称为关联挖掘,通过关联可以用来寻找事件之间的关系。比如Snort报告来自远程主机的一个SQLi攻击意图,可以利用关联获取与远程攻击主机的IP地址相关联的所有消息数据包进行综合分析2
22、6审计分析 自动处理来自网络、服务器和主机生产的大量安全审计数据的系统。解决这种问题的产品系统被称为安全信息和事件管理(SIEM,Security Information and Event Management)系统SIEM系统将许多其它安全规程和工具结合在一个综合的框架下,主要包括:日志管理(LMS):用于传统日志收集和存储的工具。安全信息管理(SIM):集中于从多个数据源收集和管理与安全相关的数据的工具或系统。例如,这些数据源可以是防火墙、DNS服务器、路由器和防病毒应用程序。安全事件管理(SEM):基于主动监视和分析的系统,包括数据可视化、事件相关性和警报。27审计分析 感谢聆听感谢聆听BitSec(张立江)中国矿业大学 网络空间安全系28