系统日志源自航海日志:当人们出海远行的时候,总是要做好航海日志,以便为以后的工作做出依据。日志文件作为微软Windows系列操作系统中的一个比较特殊的文件,在安全方面具有无可替代的价值。日志每天为我们忠实的记录着系统所发生一切,利用系统日志文件,可以使系统管理员快速对潜在的系统***作出记录和预测,但遗憾的是目前绝大多数的人都忽略了它的存在。反而是因为***们光临才会使我们想起这个重要的系统日志文件。
7.1 日志文件的特殊性
要了解日志文件,首先就要从它的特殊性讲起,说它特殊是因为这个文件由系统管理,并加以保护,一般情况下普通用户不能随意更改。我们不能用针对普通TXT文件的编辑方法来编辑它。例如WPS系列、Word系列、写字板、Edit等等,都奈何它不得。我们甚至不能对它进行“重命名”或“删除”、“移动”操作,否则系统就会很不客气告诉你:访问被拒绝。当然,在纯DOS的状态下,可以对它进行一些常规操作(例如Win98状态下),但是你很快就会发现,你的修改根本就无济于事,当重新启动Windows 98时,系统将会自动检查这个特殊的文本文件,若不存在就会自动产生一个;若存在的话,将向该文本追加日志记录。
7.1.1 ***为什么会对日志文件感兴趣
***们在获得服务器的系统管理员权限之后就可以随意破坏系统上的文件了,包括日志文件。但是这一切都将被系统日志所记录下来,所以***们想要隐藏自己的***踪迹,就必须对日志进行修改。最简单的方法就是删除系统日志文件,但这样做一般都是初级***所为,真正的高级***们总是用修改日志的方法来防止系统管理员追踪到自己,网络上有很多专门进行此类功能的程序,例如Zap、Wipe等。
7.1.2 Windows系列日志系统简介
1.Windows 98的日志文件
因目前绝大多数的用户还是使用的操作系统是Windows 98,所以本节先从Windows 98的日志文件讲起。Windows 98下的普通用户无需使用系统日志,除非有特殊用途,例如,利用Windows 98建立个人Web服务器时,就会需要启用系统日志来作为服务器安全方面的参考,当已利用Windows 98建立个人Web服务器的用户,可以进行下列操作来启用日志功能。
(1)在“控制面板”中双击“个人Web服务器”图标;(必须已经在配置好相关的网络协议,并添加“个人Web服务器”的情况下)。
(2)在“管理”选项卡中单击“管理”按钮;   
(3)在“Internet服务管理员”页中单击“WWW管理”;   
(4)在“WWW管理”页中单击“日志”选项卡;   
(5)选中“启用日志”复选框,并根据需要进行更改。 将日志文件命名为“Inetserver_event.log”。如果“日志”选项卡中没有指定日志文件的目录,则文件将被保存在Windows文件夹中。
普通用户可以在Windows 98的系统文件夹中找到日志文件schedlog.txt。我们可以通过以下几种方法找到它。在“开始”/“查找”中查找到它,或是启动“任务计划程序”,在“高级”菜单中单击“查看日志”来查看到它。Windows 98的普通用户的日志文件很简单,只是记录了一些预先设定的任务运行过程,相对于作为服务器的NT操作系统,真正的***们很少对Windows 98发生兴趣。所以Windows 98下的日志不为人们所重视。
2.Windows NT下的日志系统
Windows NT是目前受到***较多的操作系统,在Windows NT中,日志文件几乎对系统中的每一项事务都要做一定程度上的审计。Windows NT的日志文件一般分为三类:
系统日志 :跟踪各种各样的系统事件,记录由 Windows NT 的系统组件产生的事件。例如,在启动过程加载驱动程序错误或其它系统组件的失败记录在系统日志中。
应用程序日志:记录由应用程序或系统程序产生的事件,比如应用程序产生的装载dll(动态链接库)失败的信息将出现在日志中。
安全日志 :记录登录上网、下网、改变访问权限以及系统启动和关闭等事件以及与创建、打开或删除文件等资源使用相关联的事件。利用系统的“事件管理器”可以指定在安全日志中记录需要记录的事件,安全日志的默认状态是关闭的。
Windows NT的日志系统通常放在下面的位置,根据操作系统的不同略有变化。
C:\systemroot\system32\config\sysevent.evt
C:\systemroot\system32\config\secevent.evt
C:\systemroot\system32\config\appevent.evt
Windows NT使用了一种特殊的格式存放它的日志文件,这种格式的文件可以被事件查看器读取,事件查看器可以在“控制面板”中找到,系统管理员可以使用事件查看器选择要查看的日志条目,查看条件包括类别、用户和消息类型。
3.Windows 2000的日志系统
与Windows NT一样,Windows 2000中也一样使用“事件查看器”来管理日志系统,也同样需要用系统管理员身份进入系统后方可进行操作,如图7-1所示。
图7-1
在Windows 2000中,日志文件的类型比较多,通常有应用程序日志,安全日志、系统日志、DNS服务器日志、FTP日志、WWW日志等等,可能会根据服务器所开启的服务不同而略有变化。启动Windows 2000时,事件日志服务会自动启动,所有用户都可以查看“应用程序日志”,但是只有系统管理员才能访问“安全日志”和“系统日志”。系统默认的情况下会关闭“安全日志”,但我们可以使用“组策略”来启用“安全日志”开始记录。安全日志一旦开启,就会无限制的记录下去,直到装满时停止运行。
Windows 2000日志文件默认位置:
应用程序日志、安全日志、系统日志、DNS日志默认位置:%systemroot%\sys tem32\config,默认文件大小512KB,但有经验的系统管理员往往都会改变这个默认大小。
安全日志文件:c:\sys temroot\sys tem32\config\SecEvent.EVT
系统日志文件:c:\sys temroot\sys tem32\config\SysEvent.EVT
应用程序日志文件:c:\sys temroot\sys tem32\config\AppEvent.EVT
Internet信息服务FTP日志默认位置:c:\systemroot\sys tem32\logfiles\msftpsvc1\。
Internet信息服务WWW日志默认位置:c:\systemroot\sys tem32\logfiles\w3svc1\。
Scheduler服务器日志默认位置:c:\systemroot\schedlgu.txt 。该日志记录了访问者的IP,访问的时间及请求访问的内容。
因Windows2000延续了NT的日志文件,并在其基础上又增加了FTP和WWW日志,故本节对FTP日志和WWW日志作一个简单的讲述。FTP日志以文本形式的文件详细地记录了以FTP方式上传文件的文件、来源、文件名等等。不过由于该日志太明显,所以高级***们根本不会用这种方法来传文件,取而代之的是使用RCP。FTP日志文件和WWW日志文件产生的日志一般在c:\sys temroot\system32\LogFiles\W3SVC1目录下,默认是每天一个日志文件,
FTP和WWW日志可以删除,但是FTP日志所记录的一切还是会在系统日志和安全日志里记录下来,如果用户需要尝试删除这些文件,通过一些并不算太复杂的方法,例如首先停止某些服务,然后就可以将该日志文件删除。具体方法本节略。
Windows 2000中提供了一个叫做安全日志分析器(CyberSafe Log Analyst,CLA)的工具,有很强的日志管理功能,它可以使用户不必在让人眼花缭乱的日志中慢慢寻找某条记录,而是通过分类的方式将各种事件整理好,让用户能迅速找到所需要的条目。它的另一个突出特点是能够对整个网络环境中多个系统的各种活动同时进行分析,避免了一个个单独去分析的麻烦。
4.Windows XP日志文件
说Windows XP的日志文件,就要先说说Internet连接防火墙(ICF)的日志,ICF的日志可以分为两类:一类是ICF审核通过的IP数据包,而一类是ICF抛弃的IP数据包。日志一般存于Windows目录之下,文件名是pfirewall.log。其文件格式符合W3C扩展日志文件格式(W3C Extended Log File Format),分为两部分,分别是文件头(Head Information)和文件主体(Body Information)。文件头主要是关于Pfirewall.log这个文件的说明,需要注意的主要是文件主体部分。文件主体部分记录有每一个成功通过ICF审核或者被ICF所抛弃的IP数据包的信息,包括源地址、目的地址、端口、时间、协议以及其他一些信息。理解这些信息需要较多的TCP/IP协议的知识。ICF生成安全日志时使用的格式是W3C扩展日志文件格式,这与在常用日志分析工具中使用的格式类似。 当我们在WindowsXP的“控制面板”中,打开事件查看器,如图7-2所示。
就可以看到WindowsXP中同样也有着系统日志、安全日志和应用日志三种常见的日志文件,当你单击其中任一文件时,就可以看见日志文件中的一些记录,如图7-3所示。
图7-2 图7-3
在高级设备中,我们还可以进行一些日志的文件存放地址、大小限制及一些相关操作,如图7-4所示。
图7-4
若要启用对不成功的连接尝试的记录,请选中“记录丢弃的数据包”复选框,否则禁用。另外,我们还可以用金山网镖等工具软件将“安全日志”导出和被删除。
5.日志分析
当日志每天都忠实的为用户记录着系统所发生的一切的时候,用户同样也需要经常规范管理日志,但是庞大的日志记录却又令用户茫然失措,此时,我们就会需要使用工具对日志进行分析、汇总,日志分析可以帮助用户从日志记录中获取有用的信息,以便用户可以针对不同的情况采取必要的措施。
7.2 系统日志的删除
因操作系统的不同,所以日志的删除方法也略有变化,本文从Windows 98和Windows 2000两种有明显区别的操作系统来讲述日志的删除。
7.2.1 Windows 98下的日志删除
在纯DOS下启动计算机,用一些常用的修改或删除命令就可以消除Windows 98日志记录。当重新启动Windows98后,系统会检查日志文件的存在,如果发现日志文件不存在,系统将自动重建一个,但原有的日志文件将全部被消除。
7.2.2 Windows 2000的日志删除
Windows 2000的日志可就比Windows 98复杂得多了,我们知道,日志是由系统来管理、保护的,一般情况下是禁止删除或修改,而且它还与注册表密切相关。在Windows 2000中删除日志首先要取得系统管理员权限,因为安全日志和系统日志必须由系统管理员方可查看,然后才可以删除它们。
我们将针对应用程序日志,安全日志、系统日志、DNS服务器日志、FTP日志、WWW日志的删除做一个简单的讲解。要删除日志文件,就必须停止系统对日志文件的保护功能。我们可以使用命令语句来删除除了安全日志和系统日志外的日志文件,但安全日志就必须要使用系统中的“事件查看器”来控制它,打开“控制面板”的“管理工具”中的“事件查看器”。在菜单的“操作”项有一个名为“连接到另一台计算机”的菜单,点击它如图7-5所示。
图7-5
输入远程计算机的IP,然后需要等待,选择远程计算机的安全性日志,点击属性里的“清除日志”按钮即可。
7.3 发现***踪迹
如何当***者企图或已经进行系统的时候,及时有效的发现踪迹是目前防范***的热门话题之一。发现***踪迹的前题就是应该有一个***特征数据库,我们一般使用系统日志、防火墙、检查IP报头(IP header)的来源地址、检测Email的安全性以及使用***检测系统(IDS)等来判断是否有***迹象。
我们先来学习一下如何利用端口的常识来判断是否有***迹象:
电脑在安装以后,如果不加以调整,其默认开放的端口号是139,如果不开放其它端口的话,***正常情况下是无法进入系统的。如果平常系统经常进行病毒检查的话,而突然间电脑上网的时候会感到有反应缓慢、鼠标不听使唤、蓝屏、系统死机及其它种种不正常的情况,我们就可以判断有***利用电子信件或其它方法在系统中植入的特洛伊***。此时,我们就可以采取一些方法来清除它,具体方法在本书的相关章节可以查阅。
7.3.1 遭受***时的迹象
***总是按照一定的步骤在进行,有经验的系统管理员完全可以通过观察到系统是否出现异常现象来判断***的程度。
1.扫描迹象
当系统收到连续、反复的端口连接请求时,就可能意味着***者正在使用端口扫描器对系统进行外部扫描。高级***们可能会用秘密扫描工具来躲避检测,但实际上有经验的系统管理员还是可以通过多种迹象来判断一切。
2.利用***
当***者使用各种程序对系统进行***时,系统可能报告出一些异常情况,并给出相关文件(IDS常用的处理方法),当***者***成功后,系统总会留下或多或少的破坏和非正常访问迹象,这时就应该发现系统可能已遭遇***。
3.DoS或DDoS***迹象
这是当前***者比较常用的***方法,所以当系统性能突然间发生严重下降或完全停止工作时,应该立即意识到,有可能系统正在遭受拒绝服务***,一般的迹象是CPU占用率接近90%以上,网络流量缓慢、系统出现蓝屏、频繁重新启动等。
7.3.2 合理使用系统日志做***检测
系统日志的作用和重要性大家通过上几节的讲述,相信明白了不少,但是虽然系统自带的日志完全可以告诉我们系统发生的任何事情,然而,由于日志记录增加得太快了,最终使日志只能成为浪费大量磁盘空间的垃圾,所以日志并不是可以无限制的使用,合理、规范的进行日志管理是使用日志的一个好方法,有经验的系统管理员就会利用一些日志审核工具、过滤日志记录工具,解决这个问题。
要最大程度的将日志文件利用起来,就必须先制定管理计划。
1.指定日志做哪些记录工作?
2.制定可以得到这些记录详细资料的触发器。
7.3.3 一个比较优秀的日志管理软件
要想迅速的从繁多的日志文件记录中查找到***信息,就要使用一些专业的日志管理工具。Surfstats Log Analyzer4.6就是这么一款专业的日志管理工具。网络管理员通过它可以清楚的分析“log”文件,从中看出网站目前的状况,并可以从该软件的“报告”中,看出有多少人来过你的网站、从哪里来、在系统中大量地使用了哪些搜寻字眼,从而帮你准确地了解网站状况。
这个软件最主要的功能有:
1、整合了查阅及输出功能,并可以定期用屏幕、文件、FTP或E-mail的方式输出结果;
2.可以提供30多种汇总的资料;
3.能自动侦测文件格式,并支持多种通用的log文件格式,如MS IIS的W3 Extended log格式;
4.在“密码保护”的目录里,增加认证(Authenticated)使用者的分析报告;
5.可按每小时、每星期、或每月的模式来分析;
6.DNS资料库会储存解析(Resolved)的IP地址;
7.每个分析的画面都可以设定不同的背景、字型、颜色。
发现***踪迹的方法很多,如***检测系统IDS就可以很好的做到这点。下一节我们将讲解详细的讲解***检测系统。
7.4 做好系统***检测
7.4.1 什么是***检测系统
在人们越来越多和网络亲密接触的同时,被动的防御已经不能保证系统的安全,针对日益繁多的网络***事件,我们需要在使用防火墙的基础上选用一种协助防火墙进行防患于未然的工具,这种工具要求能对潜在的***行为作出实时判断和记录,并能在一定程度上抗击网络***,扩展系统管理员的安全管理能力,保证系统的绝对安全性。使系统的防范功能大大增强,甚至在***行为已经被证实的情况下,能自动切断网络连接,保护主机的绝对安全。在这种情形下,***检测系统IDS(Intrusion Detection System)应运而生了。***检测系统是基于多年对网络安全防范技术和******技术的研究而开发的网络安全产品
它能够实时监控网络传输,自动检测可疑行为,分析来自网络外部***信号和内部的非法活动,在系统受到危害前发出警告,对***作出实时的响应,并提供补救措施,最大程度地保障系统安全。
NestWatch
这是一款运行于Windows NT的日志管理软件,它可以从服务器和防火墙中导入日志文件,并能以HTML的方式为系统管理员提供报告。
7.4.2 ***检测系统和日志的差异
系统本身自带的日志功能可以自动记录***者的***行为,但它不能完善地做好***迹象分析记录工作,而且不能准确地将正常的服务请求和恶意的***行为区分开。例如,当***者对主机进行CGI扫描时,系统安全日志能提供给系统管理员的分析数据少得可怜,几乎全无帮助,而且安全日志文件本身的日益庞大的特性,使系统管理员很难在短时间内利用工具找到一些***后所遗留下的痕迹。***检测系统就充分的将这一点做的很好,利用***检测系统提供的报告数据,系统管理员将十分轻松的知晓***者的某些***企图,并能及时做好防范措施。
7.4.3 ***检测系统的分类
目前***检测系统根据功能方面,可以分为四类:
1.系统完整性校验系统(SIV)
SIV可以自动判断系统是否有被******迹象,并能检查是否被系统***者更改了系统文件,以及是否留有后门(***们为了下一次光顾主机留下的),监视针对系统的活动(用户的命令、登录/退出过程,使用的数据等等),这类软件一般由系统管理员控制。
2.网络***检测系统(NIDS)
NIDS可以实时的对网络的数据包进行检测,及时发现端口是否有***扫描的迹象。监视计算机网络上发生的事件,然后对其进行安全分析,以此来判断***企图;分布式IDS通过分布于各个节点的传感器或者代理对整个网络和主机环境进行监视,中心监视平台收集来自各个节点的信息监视这个网络流动的数据和***企图。
3.日志分析系统(LFM)
日志分析系统对于系统管理员进行系统安全防范来说,非常重要,因为日志记录了系统每天发生的各种各样的事情,用户可以通过日志记录来检查错误发生的原因,或者受到***时***者留下的痕迹。日志分析系统的主要功能有:审计和监测、追踪侵入者等。日志文件也会因大量的记录而导致系统管理员用一些专业的工具对日志或者报警文件进行分析。此时,日志分析系统就可以起作用了,它帮助系统管理员从日志中获取有用的信息,使管理员可以针对***威胁采取必要措施。
4.欺骗系统(DS)
普通的系统管理员日常只会对***者的***作出预测和识别,而不能进行反击。但是欺骗系统(DS)可以帮助系统管理员做好反击的铺垫工作,欺骗系统(DS)通过模拟一些系统漏洞来欺骗***者,当系统管理员通过一些方法获得***企图***的迹象后,利用欺骗系统可以获得很好的效果。例如重命名NT上的administrator账号,然后设立一个没有权限的虚假账号让***来***,在***者感觉到上当的时候,管理员也就知晓了***者的一举一动和他的水平高低。
7.4.4 ***检测系统的检测步骤
***检测系统一般使用基于特征码的检测方法和异常检测方法,在判断系统是否被***前,***检测系统首先需要进行一些信息的收集。信息的收集往往会从各个方面进行。例如对网络或主机上安全漏洞进行扫描,查找非授权使用网络或主机系统的企图,并从几个方面来判断是否有***行为发生。
检测系统接着会检查网络日志文件,因为***非常容易在会在日志文件中留下蛛丝马迹,因此网络日志文件信息是常常作为系统管理员检测是否有***行为的主要方法。取得系统管理权后,***们最喜欢做的事,就是破坏或修改系统文件,此时系统完整性校验系统(SIV)就会迅速检查系统是否有异常的改动迹象,从而判断***行为的恶劣程度。将系统运行情况与常见的***程序造成的后果数据进行比较,从而发现是否被***。例如:系统遭受DDoS分布式***后,系统会在短时间内性能严重下降,检测系统此时就可以判断已经被***。
***检测系统还可以使用一些系统命令来检查、搜索系统本身是否被***。当收集到足够的信息时,***检测系统就会自动与本身数据库中设定的已知***方式和相关参数匹配,检测准确率相当的高,让用户感到不方便的是,需要不断的升级数据库。否则,无法跟上网络时代***工具的步伐。***检测的实时保护功能很强,作为一种“主动防范”的检测技术,检测系统能迅速提供对系统***、网络***和用户误操作的实时保护,在预测到***企图时本身进行拦截和提醒管理员预防。
7.4.5 发现系统被***后的步骤
1.仔细寻找***者是如何进入系统的,设法堵住这个安全漏洞。
2.检查所有的系统目录和文件是否被篡改过,尽快修复。
3.改变系统中的部分密码,防止再次因密码被暴力破解而生产的漏洞。
7.4.6 常用***检测工具介绍
1.NetProwler
作为世界级的互联网安全技术厂商,赛门铁克公司的产品涉及到网络安全的方方面面,特别是在安全漏洞检测、***检测、互联网内容/电子邮件过滤、远程管理技术和安全服务方面,赛门铁克的先进技术的确让人惊叹!NetProwler就是一款赛门铁克基于网络***检测开发出的工具软件,NetProwler采用先进的拥有专利权的动态信号状态检测(SDSI)技术,使用户能够设计独特的***定义。即使最复杂的***也可以由它直观的***定义界面产生。
(1)NetProwler的体系结构
NetProwler具有多层体系结构,由Agent、Console和Manager三部分组成。Agent负责监视所在网段的网络数据包。将检测到的***及其所有相关数据发送给管理器,安装时应与企业的网络结构和安全策略相结合。Console负责从代理处收集信息,显示所受***信息,使你能够配置和管理隶属于某个管理器的代理。Manager对配置和***警告信息响应,执行控制台发布的命令,将代理发出的***警告传递给控制台。
当NetProwler发现***时,立即会把***事件记入日志并中断网络连接、创建一个报告,用文件或E-mail通知系统管理员,最后将事件通知主机***检测管理器和控制台。
(2)NetProwler的检测技术
NetProwler采用具有专利技术的SDSI(Stateful Dynamic Signature Inspection状态化的动态特征检测)***检测技术。在这种设计中,每个***特征都是一组指令集,这些指令是由SDSI虚处理器通过使用一个高速缓存入口来描述目前用户状态和当前从网络上收到数据包的办法执行。每一个被监测的网络服务器都有一个小的相关***特征集,这些***特征集都是基于服务器的操作和服务器所支持的应用而建立的。Stateful根据监视的网络传输内容,进行上下文比较,能够对复杂事件进行有效的分析和记录
基于SDSI技术的NetProwler工作过程如下:
第一步:SDSI虚拟处理器从网络数据中获取当今的数据包;
第二步:把获取的数据包放入属于当前用户或应用会话的状态缓冲中;
第三步:从特别为优化服务器性能的特征缓冲中执行***特征;
第四步:当检测到某种***时,处理器立即触发响应模块,以执行相应的响应措施。
(3)NetProwler工作模式
因为是网络型IDS,所以NetProwler根据不同的网络结构,其数据采集部分(即代理)有多种不同的连接形式:如果网段用总线式的集线器相连,则可将其简单的接在集线器的一个端口上即可。
(4)系统安装要求
用户将NetProwler Agent安装在一台专门的Windows NT工作站上,如果NetProwler和其他应用程序运行在同一台主机上,则两个程序的性能都将受到严重影响。网络***检测系统占用大量的资源,因此制造商一般推荐使用专门的系统运行驱动引擎,要求它有128M RAM和主频为400MHz的Intel Pentium II或Pentium