我最近辅助参与了一项为期长达两年的案件,案情是从本地某家公司到远端系统的入侵,案件发生在2000年年底。我无法推进该案件的取证工作,因为保存有关日志的UNIX系统在很久以前就崩溃了。而且,还没有这个崩溃系统的文档备份,因此无法证明入侵的发生与否。立案所依赖的部分证据本身就没有被证实。
这个事件给了我写这次每周一栏的灵感,如果你的公司对文档备份要求不够严格的话,你或许会从这个案件中获取教训。
这与网络安全又有什么关系呢?在系统被入侵的情况下,系统日志以及应用程序日志可以提供用来判定攻击者何时、何地以及如何侵入你的系统的取证信息。这就提出了多久保存一次文档备份的问题。如果你问三个开发者多久备份一次应用程序数据或者系统文档的问题,一般你会得到三种完全不同的答案。
从逻辑上来说,你可以不定期的保存备份,但并不是所有的公司都能担负的起处理灾难恢复所需的费用。更不用提这个事实:有些数据你并没有保存在磁盘或者CD-ROM中。然而,不要什么也不作直到有人走出房门带着一摞磁带或者两张CD-ROM——现在就采用一种安全防护措施或者存储策略。
在大单位,一般在企业网和英特网之间有一层防火墙。防火墙一般是记录合法与非法活动的第一个地方。防火墙日志不仅可以用来跟踪访问,它还可以用于其它目的,例如诊断防火墙软件自身的问题。
防火墙日志文件一般会很快的变大,因此逐月保存这种类型的数据是不现实的。许多防火墙系统按照一种“工具”的方式去实现的,它并没有自动存档文件或者卸下旧日志文件的能力——但保存旧日志文件是值得的。绝大多数系统只是简单的把防火墙日志定期(例如一周或者一个月)转存并只保存几个月来的有价值信息。如果有可能,我建议企业归档的防火墙日志最少保存一年,甚至两到三年。
对那些没有防火墙的系统来说,保存系统日志备份的能力是非常重要的;但是它仍可能无法称为判断入侵起源的主要依据。例如,当攻击者获得UNIX系统的根访问权时,他们常常会破坏日志文件来掩盖他们的入侵痕迹。把日志保存到远端的中央“系统日志(syslog)”服务器上可以避免上述问题,而且这种方法还可以增强多个UNIX系统的系统日志的安全性。
还有些工具可以识别并阻止对UNIX系统的攻击,例如Swatch系统日志监视工具以及Tripwire安全工具。在Windows NT和Windows 2000系统中开启安全日志(security logging,Windows称之为审核)是一种明智的做法。默认情况下,Windows NT和Windows 2000系统禁用安全审核功能,所以你需要启动它来跟踪你所需要跟踪的条目。此外,Windows 2000还添加了两项额外的审计类别。(注意:我对Windows XP的审计功能并不熟悉。)
我希望所有的开发者都在这篇专栏文章所举的案例中汲取这样一个教训:把应用程序日志和系统日志至少保留一年的时间。这样在调查他人对你的网络所进行的入侵就会变得容易的多。你不会知道日志会有多么的重要——直到某一天你需要用到它们的时候为止。