日志系统在应用中的重要作用
日志系统在应用中的重要作用
日志系统管理的意义在一个完整的信息系统里面,日志系统是一个非常重要的功能组成部分。它可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。在安全领域,日志系统的重要地位尤甚,可以说是安全审计方面最主要的工具之一。
日志系统概览
按照系统类型进行区分的话,日志系统可以分为操作系统日志、应用系统日志、安全系统日志等等。每种操作系统的日志都有其自身特有的设计和规范,例如Windows系统的日志通常按照其惯有的应用程序、安全和系统这样的分类方式进行存储,而类似Linux这样的各种Class UNIX系统通常都使用兼容Syslog规范的日志系统。
而很多硬件设备的操作系统也具有独立的日志功能,以Cisco路由器为代表的网络设备通常都具有输出Syslog兼容日志的能力。应用系统日志主要包括各种应用程序服务器(例如Web服务器、FTP服务器)的日志系统和应用程序自身的日志系统,不同的应用系统都具有根据其自身要求设计的日志系统。安全系统日志从狭义上讲指信息安全方面设备或软件如防火墙系统的日志,从更广泛的意义上来说,所有为了安全目的所产生的日志都可归入此类。
日志管理工作综述
我们的主人公Mike是个安全管理员,他独立负责公司所有计算机设施的安全事务。虽然公司的设备还不算太多,但是系统倒是非常丰富,公司自己的网站基于SQL Server数据库进行编程,运行在一台运行着IIS的Windows服务器上,而公司的FTP服务则通过Linux系统下的WU-FTPD程序实现。
在公司与Internet的边界处放置着一台硬件防火墙,Web服务器就接在这台防火墙的DMZ端口上,而仍然是为了工作方便的原因,提供FTP服务的Linux机器放置与公司的内部网络上。到目前为止,所有的安全管理工作有条不紊地进行着,而这其中相当一部分是自动实现的。收集和阅读各种系统日志占据了Mike日常安全管理工作的相当比重,我们首先来看看Mike是如何完成这一切的。
Mike主要处理的日志包括了公司网站服务器上的Windows系统日志、IIS服务器软件生成的日志以及SQL Server日志,Linux服务器上的系统日志以及FTP服务日志,另外还包括公司防火墙的日志。当然了,内网所有的机器日志也在Mike的管辖范围之内,但是在Mike的计划里这些日志的优先级较低,在主要日志得到妥善处理之后,Mike不定期的对这些日志进行审阅工作。
对于Web服务器上的所有日志,Mike改变了其默认的存储位置,并将其放置在服务器上专设的一个NTFS分区上。这样做可以更好的进行管理和控制,而且将其放置在IIS所运行的分区之外,可以给攻击者造成一些障碍,将文件放置在NTFS分区则主要是为了进行访问权限的控制。因为Windows系统日志很难被删除但对其进行清除却非常容易,所以Mike需要对日志的清除包括篡改进行尽量严格的控制。
Mike自己撰写了一些Windows脚本,定期将这些日志复制到自己的Windows工作站下,而很少直接使用Web服务器上的日志文件。Linux服务器上的日志也应用了相似的权限控制,Mike在自己的工作站上运行了一个叫做Kiwi Syslog Daemon的程序,接收Linux服务器产生的所有Syslog规格的日志,这个守护程序也能够接收公司防火墙的日志归档。
Mike每天获取一次所有的日志文件,并对这些日志执行一些自动的检查工作。基本检查工作一般是在日志文件中按照可能存在的安全风险进行相应的搜索,例如我们的Web日志中如果出现了包含cmd.exe的记录,说明很可能有攻击者或者蠕虫病毒在试探是否可以利用IIS的一些进行非法操作。值得注意的是,对于文本格式的日志文件,我们通过基本的Find命令就可以执行这样的搜索。而对于使用二进制格式存储的日志文件,执行这种检查会复杂一些,通常需要利用日志系统本身的阅读程序进行读取或解码。这需要管理员非常熟悉所维护系统相关的安全漏洞,以及相应系统下的脚本编写技术,但是在这些方面付出汗水是绝对值得的,至少像Mike这样维护如此多系统还有时间阅读技术类杂志是很让人羡慕的。
这些日常的工作虽然能阻挡不少恶意访问行为,但这并不是一个安全管理员生活的全部,还是有很多问题会安然通过这些检测,对系统形成破坏。从本质上来讲,自动化的处理是相对粗粒度的,主要起到过滤没有意义的干扰信息,有效降低管理员工作负荷的作用。在日常监测之外,也应该每隔一段时间对这些日志进行更细致的审查。在新漏洞出现时,Mike都会针对漏洞的特征进行日志检查,并及时的将攻击指纹更新到自动化检查脚本中。