信息安全不是一次性工作,这是一个漫长过程,而且也是一种经验和智力的较量。安全配置服务器也不是安全工作的结束,只是表示一个安全维护工作过程的刚刚开始。在安全维护过程中,发现入侵事件并及时作出响应是非常重要的。但是,安全工作不能光在发现入侵事件之后得到重视,因为被入侵一定已经造成了破坏或者泄密,也就已经造成了损失。安全维护工作更应该及时发现入侵前兆,并及时加强相关方面的维护,在发现入侵前兆后就及时阻断可能发生的入侵威胁,这样才能更好地保障安全。
入侵检测系统(IDS)是防火墙的合理补充,它帮助安全系统发现可能的入侵前兆,并对付网络攻击。入侵检测系统能在不影响网络性能的情况下对网络进行监测,提供对内部攻击、外部攻击和误操作的实时保护,能够扩展系统管理员的安全管理能力(包括安全审计、监视、进攻识别和响应),提高了信息安全基础结构的完整性。但是,入侵检测系统并不是万能的,高昂的价格也让人退却,而且,单个服务器或者小型网络配置入侵检测系统或者防火墙等投入也太大了。
这里我们将根据多数入侵方法,讨论一些Windows2000服务器入侵前兆检测的方法和技巧,希望能给你长期维护服务器的安全带来一定的帮助。
一、对于WWW服务入侵的前兆检测
对于网络上开放的服务器来说,WWW服务是最常见的服务之一。基于80端口的入侵也因此是最普遍的。很多sceipt kids就对修改WEB页面非常热衷。WWW服务面对的用户多,流量相对来说都很高,同时WWW服务的漏洞和相应的入侵方法和技巧也非常多,并且也相对容易,很多“黑客”使用的漏洞扫描器就能够扫描80端口的各种漏洞,比如wwwscan 、X-scanner等,甚至也有只针对80端口的漏洞扫描器。Windows系统上提供WWW服务的IIS也一直漏洞不断,成为系统管理员头疼的一部分。
虽然80端口入侵和扫描很多,但是80端口的日志记录也非常容易。IIS提供记录功能很强大的日志记录功能。在“Internet 服务管理器”中站点属性可以启用日志记录。默认情况下日志都存放在%WinDir%\System32\LogFiles,按照每天保存在exyymmdd.log文件中。这些都可以进行相应配置,包括日志记录的内容。
在配置IIS的时候应该让IIS日志尽量记录得尽量详细,可以帮助进行入侵判断和分析。现在我们要利用这些日志来发现入侵前兆,或者来发现服务器是否被扫描。打开日志文件,我们能够得到类似这样的扫描记录(以Unicode漏洞举例):
2002-03-10 05:42:27 192.168.1.2 - 192.168.1.1 80 HEAD /script/..蜡../..蜡../..蜡../winnt/system32/cmd.exe /c+dir 404 -
2002-03-10 05:42:28 192.168.1.2 - 192.168.1.1 80 GET /script/..?../..?../..?../winnt/system32/cmd.exe /c+dir 404 -
需要注意类似这样的内容:
/script/..?../..?../..?../winnt/system32/cmd.exe /c+dir 404
如果是正常用户,那么他是不会发出这样的请求的,这些是利用IIS的Unicode漏洞扫描的结果。后面的404表示并没有这样的漏洞。如果出现的是200,那么说明存在Unicode漏洞,也说明它已经被别人扫描到了或者已经被人利用了。不管是404或者200,这些内容出现在日志中,都表示有人在扫描(或者利用)服务器的漏洞,这就是入侵前兆。日志也记录下扫描者的来源:192.168.1.2这个IP地址。
再比如这个日志:
2002-03-10 06:17:50 192.168.1.2 - 192.168.1.1 80 HEAD / - 400 -
这是一个使用HEAD请求来扫描WWW服务器软件类型的记录,攻击者能够通过了解WWW使用的软件来选择扫描工具扫描的范围。
IIS通常都能够记录下所有的请求,这里面包含很多正常用户的请求记录,这也让IIS的日志文件变得非常庞大,上十兆或者更大,人工浏览分析就变得不可取。这时可以使用一些日志分析软件,帮助日志分析。或者使用下面这个简单的命令来检查是否有Unicode漏洞的扫描事件存在:
find /I "winnt/system32/cmd.exe" C:\log\ex020310.log
“find”这个命令就是在文件中搜索字符串的。我们可以根据扫描工具或者漏洞情况建立一个敏感字符串列表,比如“HEAD”、“cmd.exe”(Unicode漏洞)、“.ida”“.idq”(IDA/IDQ远程溢出漏洞)、“.printer”(Printer远程溢出漏洞)等等。
二、对于FTP等服务入侵的前兆检测
根据前面对于WWW服务入侵前兆的检测,我们可以照样来检测FTP或者其他服务(POP、SMTP等)。以FTP服务来举例,对于FTP服务,通常最初的扫描或者入侵必然是进行帐号的猜解。对于IIS提供的FTP服务,也跟WWW服务一样提供了详尽的日志记录(如果使用其他的FTP服务软件,它们也应该有相应的日志记录)。
我们来分析这些日志:
2002-03-10 06:41:19 192.168.21.130 administrator [36]USER administrator 331
2002-03-10 06:41:19 192.168.21.130 - [36]PASS - 530
这表示用户名administrator请求登录,但是登录失败了。当在日志中出现大量的这些登录失败的记录,说明有人企图进行FTP的帐号猜解。这就是从FTP服务来入侵的入侵前兆。
分析这些日志的方法也跟前面分析WWW服务的日志方法类似。因为FTP并不能进行帐号的枚举,所以,如果发现有攻击者猜测的用户名正好和你使用的帐号一致,那么就需要修改帐号并加强密码长度。
三、系统帐号密码猜解入侵的前兆检测
对于Windows 2000服务器来说,一个很大的威胁也来自系统帐号密码的猜解,因为如果配置不佳的服务器允许进行空会话的建立,这样,攻击者能够进行远程的帐号枚举等,然后根据枚举得到的帐号进行密码的猜测。即使服务器拒绝进行空会话的建立,攻击者同样能够进行系统帐号的猜测,因为基本上很多服务器的系统管理员都使用administrator、admin、root等这样的帐号名。那些黑客工具,比如“流光”等,就可以进行这样的密码猜测,通过常用密码或者进行密码穷举来破解系统帐号的密码。
要检测通过系统帐号密码猜解的入侵,需要设置服务器安全策略,在审核策略中进行记录,需要审核记录的基本事件包括:审核登录事件、审核帐户登录事件、帐户管理事件。审核这些事件的“成功、失败”,然后我们可以从事件查看器中的安全日志查看这些审核记录。
比如:如果我们在安全日志中发现了很多失败审核,就说明有人正在进行系统帐号的猜解。我们查看其中一条的详细内容,可以看到:
登录失败:
原因: 用户名未知或密码错误
用户名:administrator
域: ALARM
登录类型: 3
登录过程: NtLmSsp
身份验证程序包: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0
工作站名: REFDOM
进行密码猜解的攻击者打算猜测系统帐号administrator的密码,攻击者的来源就是工作站名:REFDOM,这里记录是攻击者的计算机名而不是他的IP地址。
当我们发现有人打算进行密码猜解的时候,就需要对相应的配置和策略进行修改。比如:对IP地址进行限制、修改被猜解密码的帐号的帐号名、加强帐号密码的长度等等来应对这样的入侵。
四、终端服务入侵的前兆检测
Windows2000 提供终端控制服务(Telminal Service),它是一个基于远程桌面协议(RDP)的工具,方便管理员进行远程控制,是一个非常好的远程控制工具。终端服务使用的界面化控制让管理员使用起来非常轻松而且方便,速度也非常快,这一样也让攻击者一样方便。而且以前终端服务存在输入法漏洞,可以绕过安全检查获得系统权限。对于打开终端服务的服务器来说,很多攻击者喜欢远程连接,看看服务器的样子(即使他们根本没有帐号)。
对终端服务进行的入侵一般在系统帐号的猜解之后,攻击者利用猜解得到的帐号进行远程终端连接和登录。
在管理工具中打开远程控制服务配置,点击"连接",右击你想配置的RDP服务(比如 RDP-TCP(Microsoft RDP 5.0),选中书签"权限",点击"高级",加入一个Everyone组,代表所有的用户,然后审核他的"连接"、"断开"、"注销"的成功和"登录"的成功和失败,这个审核是记录在安全日志中的,可以从"管理工具"->"日志查看器"中查看。但是这个日志就象前面的系统密码猜解那样,记录的是客户端机器名而不是客户端的IP地址。我们可以做一个简单的批处理bat文件(文件名为TerminalLog.bat),用它来记录客户端的IP,文件内容是:
time /t >>Terminal.log
netstat -n -p tcp | find ":3389">>Terminal.log
start Explorer
终端服务使用的端口是TCP 3389,文件第一行是记录用户登录的时间,并把这个时间记入文件Terminal.log中作为日志的时间字段;第二行是记录用户的IP地址,使用netstat来显示当前网络连接状况的命令,并把含有3389端口的记录到日志文件中去。这样就能够记录下对方建立3389连接的IP地址了。
要设置这个程序运行,可以在终端服务配置中,登录脚本设置指定TerminalLOG.bat作为用户登录时需要打开的脚本,这样每个用户登录后都必须执行这个脚本,因为默认的脚本是Explorer(资源管理器),所以在Terminal.bat的最后一行加上了启动Explorer的命令start Explorer,如果不加这一行命令,用户是没有办法进入桌面的。当然,可以把这个脚本写得更加强大,但是请把日志记录文件放置到安全的目录中去。
通过Terminal.log文件记录的内容,配合安全日志,我们就能够发现通过终端服务的入侵事件或者前兆了。
对于Windows2000服务器来说,上面四种入侵是最常见的,也占入侵Windows2000事件的绝大多数。从上面的分析,我们能够及时地发现这些入侵的前兆,根据这些前兆发现攻击者的攻击出发点,然后采取相应的安全措施,以杜绝攻击者入侵。
我们也可以从上面分析认识到,服务器的安全配置中各种日志记录和事件审核的重要性。这些日志文件在被入侵后是攻击者的重要目标,他们会删除和修改记录,以便抹掉他们的入侵足迹。因此,对于各种日志文件,我们更应该好好隐藏并设置权限等保护起来。同时,仅仅记录日志而不经常性地查看和分析,那么所有的工作就等于白做了。
在安全维护中,系统管理员应该保持警惕,并熟悉黑客使用的入侵手段,做好入侵前兆的检测和分析,这样才能未雨绸缪,阻止入侵事件的发生。