审计跟踪(audit trail),是系统活动的流水记录。该记录按事件从始至终的途径,顺序检查审计跟踪记录、审查和检验每个事件的环境及活动。审计跟踪通过书面方式提供应负责任人员的活动证据以支持职能的实现。审计跟踪记录系统活动和用户活动。系统活动包括操作系统和应用程序进程的活动;用户活动包括用户在操作系统中和应用程序中的活动。通过借助适当的工具和规程,审计跟踪可以发现违反
安全策略的活动、影响运行效率的问题以及程序中的错误。
简介
审计跟踪可以做为对正常系统操作的一种支持,也可以做为一种保证策略或前两者兼而有之。做为保证策略,所
审计跟踪查询
维护的审计跟踪只在需要时使用,比如
系统中断。做为对操作的支持,审计跟踪用于帮助
系统管理员确保系统及其资源免遭
黑客、内部使用者或技术故障的伤害。 在很大程度上,信息的完整性和机密性取决于使用人的职能。也就是说,人们必须为他们的行为负责。这是一种探测和威慑机制。首先应该制定一系列行为标准,使用人必须认可这些行为标准;还要由较高级别的管理者对违反标准的人进行处罚。让用户知道自己的行为被监控也可以阻止潜在的破坏者对安全的侵害。用户职能可以通过策略、授权方案、识别和鉴别机制、
访问控制、审计跟踪和审计实现。
方法
审计跟踪提供了实现多种安全相关目标的一种方法,这些目标包括个人职能、事件重建、入侵探测和
故障分析。
个人职能
审计跟踪架构个人职能(individual accountability)
审计跟踪是管理人员用来维护个人职能的技术手段。通过告知用户应该为自己的行为负责,通过审计跟踪记录用户的活动,管理人员可以改善用户的行为方式。如果用户知道他们的行为被记录在审计日志中,他们就不太会违反
安全策略和绕过安全控制措施。
例如在
访问控制中,审计跟踪可以用于鉴别对数据的不恰当修改(如在数据库中引入一条错误记录)和提供与之相关的信息。审计跟踪可以记录改动前和改动后的记录,以确定所作的实际改动。这可以帮助管理层确定错误到底是由用户、操作系统、应用软件还是由其它因素造成的。
逻辑访问控制是用于限制对系统资源的访问,允许用户访问特定资源意味着用户通常要通过这种访问完成他们的工作。当然,被授权的访问也会被滥用,这种情况下审计跟踪就能发挥作用。当无法阻止用户通过其合法身份访问资源时,审计跟踪就可以用于检查他们的活动。比方说人事部的某员工需要访问他们所负责的员工的人事记录,通过审计跟踪发现该员工对人事记录的超常打印,这也许意味着盗卖人事数据。再比方说某工程师需要通过使用计算机来设计新产品,通过审计跟踪发现在该工程师在设计结束前通过
调制解调器进行了可疑的对外通信,这可以用来协助调查公司的专利数据被非法泄漏给其它公司的事件。
事件重建
事件重建(reconstruction of events)
在故障发生后,审计跟踪可以用于重建事件。通过审查系统活动的审计跟踪可以比较容易地评估故障损失,确定故障发生的时间、原因和过程。通过对审计跟踪的分析通常可以辨别故障是操作引起的还是系统引起的。例如,当系统失败或文件的完整性受到质疑时,通过对审计跟踪的分析就可以重建系统、用户或应用程序的完整的操作步骤。在对诸如系统崩溃这样的故障的发生条件有清晰认识的前提下,就能够避免未来发生此类
系统中断的情况。而且,在发生技术故障(如数据文件损坏)时,审计跟踪可以协助进行恢复(通过更改记录可以重建文件)。
入侵探测
入侵探测(intrusion detection)
如果用审计跟踪记录适当的信息,也可以用来协助入侵探测工作。如果在审计记录产生时就进行检查(通过使用某种警告标志或提示),就可以进行实时的入侵探测,不过事后检查(定时检查审计记录)也是可行的。
实时入侵
探测主要用于探测外部对系统的非法访问。也可以用于探测系统性能指标的变化以发现病毒或蠕虫
攻击。但是实时审计可能会降低系统性能。
事后鉴别可以标示出非法访问的企图(或事实)。这样就可以提醒人们对损失进行评估或重新检查受攻击的控制方式。
故障分析
在线的审计跟踪还可以用于鉴别入侵以外的故障。这常被称为实时审计或监控。如果操作系统或应用系统对公司的业务非常重要,可以使用实时审计对这些进程进行监控。
系统可以同时维护多个审计跟踪。有两种典型的审计记录(1)所有键盘敲击的记录,通常称为击键监控,和(2)面向事件的审计日志。这些日志通常包括描述系统事件、应用事件或用户事件的记录。
审计跟踪应该包括足够的信息,以确定事件的内容和引起事件的因素。通常,
事件记录应该列有事件发生的时间、和事件有关的用户识别码、启动事件的程序或命令以及事件的结果。日期和
时间戳可以帮助确定用户到底是假冒的还是真实的。
击键监控
击键监控(keystroke monitoring)
击键监控用于对计算机交互过程中的用户键盘输入和计算机的反应数据进行检查或记录。击键监控通常被认为是审计跟踪的一种特殊应用。击键监控的例子包括检查用户敲入的字符,阅读用户的电子邮件以及检查用户敲入的其它信息。
有些系统维护功能会记录用户的击键。如果这些记录保存与之相关的用户鉴别码就可以协助管理员确定击键人从而达到击键监控的目的。击键监控致力于保护系统和数据免遭非法入侵和合法用户的滥用。入侵者的击键记录可以协助管理员评估和修复入侵造成的损失。
审计日志
面向事件的审计日志(event-oriented audit logs)
系统审计日志一般用于监控和微调系统性能。应用审计跟踪可以用于辨别应用程序中的错误和对
安全策略的违背。用户审计记录通常用于将用户的行为和职能联系起来。分析用户审计记录可以发现各种不安全的事件,如安装木马或获取非法权限。
系统本身都会有诸如文件和系统访问的约束性的策略。对用于实施这些策略的系统配置文件更改的监控非常重要。如果特定的访问(如安全管理员的访问)用于修改配置文件,那么系统应该在这种访问发生时产生相应的审计记录。
有时比
系统审计跟踪更详细的记录也是需要的。应用审计跟踪就可以提供更详细的记录。如果应用是很关键的,那么就不但要记录应用的发起者,还要记录每一个用户的具体细节。例如电子邮件应用,可能要记录发件人、收件人和信息长度。再比如数据库应用,应该记录数据库的访问者以及其具体读取(或更改、删除)哪个表的哪个行或列,而不是仅仅记录数据库程序的执行。
用户审计跟踪通过记录用户启动的事件(如访问文件、记录和字段;使用
调制解调器)来监控和记录系统或应用中该用户的活动。
适应性是审计跟踪的关键特性。理想(从安全角度看)的情况是
系统管理员能够监控所有的系统和用户活动,又能有选择地记录系统和应用的特定功能。至于日志记录的数量和需要审查的数量取决于相关应用或数据敏感性,应该由职能部门经理或应用
所有者在系统管理员和计算机安全管理人的指导下根据日志的性价比确定。通常审计日志包含隐私内容。用户应该熟悉使用环境下和隐私相关的现行法律、法规和政策。
(A)系统级审计跟踪
系统级审计要求审计跟踪至少要能够记录登录(成功和失败)、登录识别号、每次登录尝试的日期和时间、每次退出的日期和时间、所使用的设备、登录后运行的内容(如用户启动应用的尝试,无论成功或失败)。典型的系统级日志还包括和安全无关的信息,如系统操作、费用记帐和网络性能。
系统级审计跟踪应该能够鉴别登录的成功和失败,在系统不能限制失败登录的尝试次数时尤其需要这样。遗憾的是,有些系统级审计跟踪无法
探测登录尝试,所以无法进行记录以便日后检查。这样的审计跟踪只能监控和记录成功的登录及其登录后的活动。记录失败的登录尝试对于有效的入侵探测是必须的。
(B)应用级审计跟踪
系统级审计跟踪可能无法跟踪和记录应用中的事件,也可能无法提供应用和数据拥有者需要的足够的细节信息。通常,应用级审计跟踪监控和记录诸如打开和关闭数据文件,
读取、编辑和删除记录或字段的特定操作以及打印报告之类的用户活动。有些应用会对数据的可用性、机密性和完整性比较敏感,这些应用的审计跟踪应该记录
数据修改前后的数据快照。
(C)用户审计跟踪
用户审计跟踪通常记录(1)用户直接启动的所有命令,(2)所有的鉴别和认证尝试,和(3)所访问的文件和资源。
如果连同命令的选项和参数一同记录将会更有用。因为知道用户想要删除
日志文件(以掩盖非法访问)比仅仅知道用户使用了删除命令更有价值。
实施
为了确保审计跟踪数据的可用性和正确性,审计跟踪数据需要受到保护,因为不正确的数据也是没用的。而且,如果不对日志数据进行及时审查,规划和实施得再好的审计跟踪也会失去价值。审计跟踪应该根据需要(经常由安全事件触发)定期审查、自动实时审查、或两者兼而有之。系统管理人和
系统管理员应该根据计算机安全管理的要求确定需要维护多长时间的审计跟踪数据,其中包括系统内保存的和归档保存的数据。
与实施有关的问题包括(1)保护审计跟踪数据,(2)审查审计跟踪数据,和(3)用于审计跟踪分析的工具。
(1)保护审计跟踪数据
访问在线审计日志必须受到严格限制。计算机安全管理人员和
系统管理员或职能部门经理出于检查的目的可以访问,但是维护逻辑访问功能的安全和管理人员没有必要访问审计日志。
防止非法修改以确保审计跟踪数据的完整性尤其重要。使用
数字签名是实现这一目标的一种途径。另一类方法是使用只读设备。入侵者会试图修改审计跟踪记录以掩盖自己的踪迹是审计
跟踪文件需要保护的原因之一。使用强
访问控制是保护审计跟踪记录免受非法访问的有效措施。当牵涉到法律问题时,审计跟踪信息的完整性尤为重要(这可能需要每天打印和签署日志)。此类法律问题应该直接咨询相关法律顾问。
审计跟踪信息的机密性也需要受到保护,例如审计跟踪所记录的用户信息可能包含诸如交易记录等不宜披露的个人信息。强访问控制和加密在保护机密性方面非常有效。
(2)审查审计跟踪数据
审计跟踪的审查和分析可以分为在事后检查、定期检查或实时检查。审查人员应该知道如何发现异常活动。他们应该知道怎么算是正常活动。如果可以通过用户识别码、终端识别码、应用程序名、日期时间或其它参数组来检索审计跟踪记录并生成所需的报告,那么审计跟踪检查就会比较容易。
事后检查
当系统或应用软件发生了故障、用户违反了操作规范、或发现了系统或用户的异常问题时,系统级或应用级的管理员就会检查审计跟踪。应用或数据的拥有者在检查审计跟踪数据后会生成一个独立的报告以评估他们的资源是否遭受损失。
定期检查
应用的拥有者、数据的拥有者、
系统管理员、数据处理管理员和计算机安全管理员应该根据非法活动的严重程度确定检查审计跟踪的频率。
实时检查
通常,审计跟踪分析是在批处理模式下定时执行的。
审计记录会定时归档用于以后的分析。审计分析工具可用于实时和准实时模式下。此类入侵
探测工具基于审计数据精选、
攻击特征识别、和差异分析技术。由于数据量过大,所以在大型
多用户系统中使用人工方式对审计数据进行实时检查是不切实际的。但是,对于特定用户和应用的审计记录进行实时检查还是可能的。这类似于击键监控,不过这可能会涉及到法律是否允许的问题。
(3)跟踪工具
许多工具是用于从大量粗糙原始的审计数据中精选出有用信息。尤其是在大系统中,审计跟踪软件产生的数据文件非常庞大,用人工方式分析非常困难。使用自动化工具就是从审计信息中将无用的信息剔除。其它工具还有差异
探测工具和
攻击特征探测工具。
审计精选工具(audit reduction tools)
此类工具用于从大量的数据中精选出有用的信息以协助人工检查。在安全检查前,此类工具可以剔除大量对安全影响不大的信息。这类工具通常可以剔除由特定类型事件产生的记录,例如由夜间备份产生的记录将被剔除。
趋势/差别探测工具(trends/variance-detection tools)
此类工具用于发现系统或用户的异常活动。可以建立较复杂的处理机制以
监控系统使用趋势和探测各种异常活动。例如,如果用户通常在上午9点登录,但却有一天在凌晨4点半登录,这可能是一件值得调查的安全事件。
攻击特征
探测工具(attack signature-detection tools)
此类工具用于查找攻击特征,通常一系列特定的事件表明有可能发生了非法访问尝试。一个简单的例子是反复进行失败的登录尝试。