网络安全 频道

关于日志记录系统设计思想

日志对于安全来说,非常重要,他记录了系统每天发生的各种各样的事情,你可以通过他来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有:审计和监测。他还可以实时的监测系统状态,监测和追踪侵入者等等。

在Linux系统中,有三个主要的日志子系统:

连接时间日志--由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和 utmp文件,使系统管理员能够跟踪谁在何时登录到系统。

进程统计--由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。

错误日志--由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

这篇文章不谈论UNIX的日志管理等问题,只谈论一点记录系统的一些设计思想。(日志管理的帖子很多,也很详细,我不想过多讨论这些)

攻击发生后,可能你对你能在自己的LOG记录上能发现多少信息感到很惊讶,但是,在我们讲述查看你记录前,我们首先必须讨论下加强你的系统LOG安全性,如果你不能信任你系统记录的完整性那这些记录将会一文不值,多数black-aht或hacker在进入系统之后第一件事情就是怎样更改记录文件,网上非常多类型的Rootkit工具可以清楚记录文件中他们的留下的踪迹(如cloak),或者阻止所有系统的记录(如伪造过的syslogd),因此,要想查看系统记录,你必须保护好你的记录文件。

这意味着你需要使用远程的LOG服务器,先不管你有多少能力保护自己的系统,在一台被入侵的系统中你不能相信你的任何记录,即使你最好的保护被入侵系统的LOG记录,black-hat也可以简单的使用rm -fr /*来完全清理你的硬盘。要保护这些文件,你必须使你所有系统的LOG记录既有本地记录也发向远程LOG服务器中,这里建立你一个只记录LOG的服务器来收集其他服务器上的信息,如果牵涉到钱的问题,你可以简单使用Linux服务器来充当你的LOG服务器,不过这台服务器必须保证非常安全,需要所有服务关闭,只允许控制台访问(如Armoring Linux所描述),还有必须保证UDP 514口没有对外连接,这样可以保护你的LOG服务器不接受从外界来的不好的或者未认证的LOG信息。



 

由于上述原因,这里建议你重编译syslogd程序,并让syslogd读取不同的配置文件,如/var/tmp/.conf,此方法能让black-hat没有注意到真实的配置文件位置,这项·作你可以简单的在源代码中修改"/etc/syslog.conf"条目,接着我们可以设置我们新的配置文件把信息记录到本地和远程服务器,如syslog.txt。这里请你维持一标准的配置文件/etc/syslog.conf指向所有本地LOG,虽然这份配置文件没有用,但可以让攻击者相信记录没有发忘远程记录。另一个选择方法就是让你的系统使用更安全的日志记录工具,如使用某些有完整性检查和其他方面安全加强的系统日志记录工具,如syslog-ng。



 

把记录都记录到远程服务器中,将象上面提到的,我们可以基本上相信这些LOG的完整性,而且由于所有系统都记录在单一资源中,就比较容易的判断这些LOG的样式。我们可以在一台机器上记录所有系统记录,你所做的是对比下本地系统和远程系统的不一致性。对于大型机构合理的系统设计应该如图所示:

 

这个设计目的是为非常多的监视系统提供可缩放性,也就是处理大量不同的记录机制,以及安全和管理分析员为其特定的工作使用的独立网络的方法。

设计物理隔离性可以防止非法篡改或检查硬件和网络。

与被监视网络的连接只能通过如站和出站过滤器,它们是非常特殊的加强安全策略的位置。通常情况下,记录系统规则只允许入站日志通信,根本不允许出站通信。在理论上,只要切断与被监视网络连接的网络接口上的TRANSMIT线就可以做到这一点,并不需要路由器。但是,通过在这里放置一个路由器,将可以处理大量更复杂的操作。例如,网络地址转换和访问控制。

入站过滤器可以为每个日志计算机提供特定的安全策略。这里的入站过滤器应由端过滤器来做。

综合监视计算机与日志网络的连接方式使得它不可能在网络上传输数据报,但它可以监听网络上的所有数据。综合监视器的工作是检测在日志网络中的非法网络通信(说明可能被入侵),以及跟踪各种日志源,观察是否在试图进行非法的日志,以及昨天还在记录的计算机是否今天还在记录。将这台计算机设置为日志网络完全不可见,而且是物理分离的。这样可以为其他的监视系统提供近似的防止篡改的交叉检验。

日志计算机收集各种日志信息,并按照对数据有益的方式组织日志信息。它们可能在复杂的数据库中存储日志项,以便以后查询,或者只是将它们存储在文件中。

在日志计算机之后是分析网络,它包含各种处理日志项,寻找应该引起注意的攻击模式的日志分析计算机。你可以使用几套监视工作站来观察这些信息。有时可能希望限制某些监视组的观察能力,而提高其他组的能力,这样就需要使用多套工作站。

每套计算机所选择的数量与能力必须与整个机构、网络及预算相匹配。在最简单的情况下,这个设计将是一个路由器,后面有一个工作站。对于小型网络,这已经足够了。在高端的情况下,你可能有许多记录和分析计算机,还有监视工作站的操作中心。基本思想是为网络提供完成任务的足够的监视子系统。

0
相关文章