Windows 2000 Server入侵监测揭秘

Win2000 Server的安全配置,经过精心配置的Win2000服务器可以防御90%以上的入侵和渗透,但是,系统安全是一个连续的过程,随着新漏洞的出现和服务器应用的变化,系统的安全状况也在不断变化着;同时由于攻防是矛盾的统一体,道消魔长和魔消道长也在不断的转换中,因此,再高明的系统管理员也不能保证一台正在提供服务的服务器长时间绝对不被入侵。

所以,安全配置服务器并不是安全工作的结束,相反却是漫长乏味的安全工作的开始,我将初步探讨Win2000服务器入侵检测的初步技巧,希望能帮助您长期维护服务器的安全。

入侵检测指的是利用Win2000 Server自身的功能及系统管理员自己编写的软件/脚本进行的检测,使用_blank">防火墙(Firewall)或入侵监测系统(IDS)的技巧并不在本文的讨论范围之内。

现在假定:我们有一台Win2000 Server的服务器,并且经过了初步的安全配置,在这种情况下,大部分的入侵者将被拒之门外。(哈哈,我管理员可以回家睡大觉去了)慢着,我说的是大部分,不是全部,经过初步安全配置的服务器虽然可以防御绝大多数的Script kid(脚本族-只会用别人写的程序入侵服务器的人),遇到了真正的高手,还是不堪一击的。虽然说真正的高手不会随便进入别人的服务器,但是也难保有几个品行不端的邪派高手看上了你的服务器。(我真的这么衰么?)而且,在漏洞的发现与补丁的发布之间往往有一段时间的真空,任何知道漏洞资料的人都可以乘虚而入,这时,入侵检测技术就显得非常的重要。

入侵的检测主要还是根据应用来进行,提供了相应的服务就应该有相应的检测分析系统来进行保护,对于一般的主机来说,主要应该注意以下几个方面:

1、基于80端口入侵的检测

WWW服务大概是最常见的服务之一了,而且由于这个服务面对广大用户,服务的流量和复杂度都很高,所以针对这个服务的漏洞和入侵技巧也最多。对于NT来说,IIS一直是系统管理员比较头疼的一部分(恨不得关了80端口),不过好在IIS自带的日志功能从某种程度上可以成为入侵检测的得力帮手。IIS自带的日志文件默认存放在System32/LogFiles目录下,一般是按24小时滚动的,在IIS管理器中可以对它进行详细的配置。(具体怎么配我不管你,不过你要是不详细记录,回头查不到入侵者的IP可不要哭)

现在我们再假设(怎么老是假设呀,烦不烦?)别急呀,我不能为了写这篇文章真的去黑掉一台主机,所以只好假设了,我们假设一台WEB服务器,开放了WWW服务,你是这台服务器的系统管理员,已经小心地配置了IIS,使用W3C扩展的日志格式,并至少记录了时间(Time)、客户端IP(Client IP)、方法(Method)、URI资源(URI Stem)、URI查询(URI Query),协议状态(Protocol Status),我们用最近比较流行的Unicode漏洞来进行分析:打开IE的窗口,在地址栏输入:127.0.0.1/scripts/..%c1% 1c../winnt/system32/cmd.exe?/c+dir 默认的情况下你可以看到目录列表(什么?你已经做过安全配置了,看不到?恢复默认安装,我们要做个实验),让我们来看看IIS的日志都记录了些什么,打开Ex010318.log(Ex代表W3C扩展格式,后面的一串数字代表日志的记录日期):07:42:58 127.0.0.1 GET /scripts/..\../winnt/system32\cmd.exe /c+dir 200上面这行日志表示在格林威治时间07:42:58(就是北京时间23:42:58),有一个家伙(入侵者)从127.0.0.1的IP在你的机器上利用Unicode漏洞(%c1%1c被解码为"\",实际的情况会因为Windows语言版本的不同而有略微的差别)运行了cmd.exe,参数是/c dir,运行结果成功(HTTP 200代表正确返回)。(哇,记录得可真够全的,以后不敢随便乱玩Unicode了)

大多数情况下,IIS的日志会忠实地记录它接收到的任何请求(也有特殊的不被IIS记录的攻击,这个我们以后再讨论),所以,一个优秀的系统管理员应该擅长利用这点来发现入侵的企图,从而保护自己的系统。但是,IIS的日志动辄数十兆、流量大的网站甚至数十G,人工检查几乎没有可能,唯一的选择就是使用日志分析软件,用任何语言编写一个日志分析软件(其实就是文本过滤器)都非常简单,不过考虑到一些实际情况(比如管理员不会写程序,或者服务器上一时找不到日志分析软件),我可以告诉大家一个简单的方法,比方说你想知道有没有人从80端口上试图取得你的Global.asa文件,可以使用以下的CMD命令:find "Global.asa" ex010318.log /i这个命令使用的是NT自带的find.exe工具(所以不怕紧急情况找不着),可以轻松的从文本文件中找到你想过滤的字符串,"Global.asa"是需要查询的字符串,ex010318.log是待过滤的文本文件,/i代表忽略大小写。因为我无意把这篇文章写成微软的Help文档,所以关于这个命令的其他参数以及它的增强版FindStr.exe的用法请去查看Win2000的帮助文件。

无论是基于日志分析软件或者是Find命令,你都可以建立一张敏感字符串列表,包含已有的IIS漏洞(比如"+.htr")以及未来将要出现的漏洞可能会调用的资源(比如Global.asa或者cmd.exe),通过过滤这张不断更新的字符串表,一定可以尽早了解入侵者的行动。

需要提醒的是,使用任何日志分析软件都会占用一定的系统资源,因此,对于IIS日志分析这样低优先级的任务,放在夜里空闲时自动执行会比较合适,如果再写一段脚本把过滤后的可疑文本发送给系统管理员,那就更加完美了。同时,如果敏感字符串表较大,过滤策略复杂,我建议还是用C写一个专用程序会比较合算。

2、基于安全日志的检测

通过基于IIS日志的入侵监测,我们能提前知道窥伺者的行踪(如果你处理失当,窥伺者随时会变成入侵者),但是IIS日志不是万能的,它在某种情况下甚至不能记录来自80端口的入侵,根据我对IIS日志系统的分析,IIS只有在一个请求完成后才会写入日志,换言之,如果一个请求中途失败,日志文件中是不会有它的踪影的(这里的中途失败并不是指发生HTTP400错误这样的情况,而是从TCP层上没有完成HTTP请求,例如在POST大量数据时异常中断),对于入侵者来说,就有可能绕过日志系统完成大量的活动。

而且,对于非80 Only的主机,入侵者也可以从其它的服务进入服务器,因此,建立一套完整的安全监测系统是非常必要的。

Win2000自带了相当强大的安全日志系统,从用户登录到特权的使用都有非常详细的记录,可惜的是,默认安装下安全审核是关闭的,以至于一些主机被黑后根本没法追踪入侵者。所以,我们要做的第一步是在管理工具-本地安全策略-本地策略-审核策略中打开必要的审核,一般来说,登录事件与账户管理是我们最关心的事件,同时打开成功和失败审核非常必要,其他的审核也要打开失败审核,这样可以使得入侵者步步维艰,一不小心就会露出马脚。仅仅打开安全审核并没有完全解决问题,如果没有很好的配置安全日志的大小及覆盖方式,一个老练的入侵者就能够通过洪水般的伪造入侵请求覆盖掉他真正的行踪。通常情况下,将安全日志的大小指定为50MB并且只允许覆盖7天前的日志可以避免上述情况的出现。

设置了安全日志却不去检查跟没有设置安全日志几乎一样糟糕(唯一的优点是被黑了以后可以追查入侵者),所以,制定一个安全日志的检查机制也是非常重要的,作为安全日志,推荐的检查时间是每天上午,这是因为,入侵者喜欢夜间行动(速度快呀,要不你入侵到一半的时候连不上了,那可是哭都哭不出来)上午上班第一件事正好看看日志有没有异常,然后就可以放心去做其他的事了。如果你喜欢,也可以编写脚本每天把安全日志作为邮件发送给你(别太相信这个了,要是哪个高手上去改了你的脚本,每天发送"平安无事"……)

除了安全日志,系统日志和应用程序日志也是非常好的辅助监测工具,一般来说,入侵者除了在安全日志中留下痕迹(如果他拿到了Admin权限,那么他一定会去清除痕迹的),在系统和应用程序日志中也会留下蛛丝马迹,作为系统管理员,要有不放过任何异常的态度,这样入侵者就很难隐藏他们的行踪。

3、文件访问日志与关键文件保护

除了系统默认的安全审核外,对于关键的文件,我们还要加设文件访问日志,记录对他们的访问。

文件访问有很多的选项:访问、修改、执行、新建、属性更改......一般来说,关注访问和修改就能起到很大的监视作用。

例如,如果我们监视了系统目录的修改、创建,甚至部分重要文件的访问(例如cmd.exe,net.exe,system32目录),那么,入侵者就很难安放后门而不引起我们的注意,要注意的是,监视的关键文件和项目不能太多,否则不仅增加系统负担,还会扰乱日常的日志监测工作
(哪个系统管理员有耐心每天看四、五千条垃圾日志?)

关键文件不仅仅指的是系统文件,还包括有可能对系统管理员/其他用户构成危害的任何文件,例如系统管理员的配置、桌面文件等等,这些都是有可能用来窃取系统管理员资料/密码的。

4、进程监控

进程监控技术是追踪木马后门的另一个有力武器,90%以上的木马和后门是以进程的形式存在的,作为系统管理员,了解服务器上运行的每个进程是职责之一(否则不要说安全,连系统优化都没有办法做),做一份每台服务器运行进程的列表非常必要,能帮助管理员一眼就发现入侵进程,异常的用户进程或者异常的资源占用都有可能是非法进程。除了进程外,DLL也是危险的东西,例如把原本是exe类型的木马改写为dll后,使用rundll32运行就比较具有迷惑性。

时间: 2024-08-30 03:20:10

Windows 2000 Server入侵监测揭秘的相关文章

Windows 2000 server系统无法启动的修复

[前言] 一台compaq老服务器,机器内安装了2块18G SCSI和1块73G SCSI硬盘,操作系统为WINDOWS 2000 SERVER SP4 简体中文版,2块18G的SCSI组成动态磁盘的RAID1(MIRROR卷),作为SYBASE数据库服务器. 由于服役年限较长,在早先已有一块18G硬盘产生了坏道的前提下,另一块18G的硬盘也出了问题,因此,操作系统崩溃. 数据库存在2块18G的硬盘中,其备份存在于73G的硬盘中. 备份数据滞后,客户要求尽可能复原系统. sybase安装程序无法

如何实现Windows 2000 Server自动登录

在实际工作中,尤其是服务器,通常要求7×24小时工作.为此很多系统程序具备服务器死机后自己重新启动的功能,也就是看门狗(Watchdog功能).例如:无人职守的DVR(Digital Video Recorder 数字硬盘录像机),程序出现异常后会自动重新启动(Reset).然而如果系统采用Windows 2000 Server 平台,如何跳过口令登录,自动进入Windows 2000就非常关键.在Windows 2000 Professional版本中,可以通过设置程序中的用户和密码项,来设置

Windows 2000 server光盘启动安装过程详细图解_安装教程

一.准备工作:     1.准备好Windows 2000 server简体中文版安装光盘,并检查光驱是否支持自启动.    2.可能的情况下,在运行安装程序前用磁盘扫描程序扫描所有硬盘检查硬盘错误并进行修复,否则安装程序运行时如检查到有硬盘错误即会很麻烦.    3.用纸张记录安装文件的产品密匙(安装序列号).    4.可能的情况下,用驱动程序备份工具(如:驱动精灵 2004 V1.9 Beta.exe)将原Windows 2000下的所有驱动程序备份到硬盘上(如∶F:\Drive).最好能

Windows 2000 Server服务终端介绍

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   Windows 2000 Server 操作系统是新一代的 Windows NT Server 系列操作系统.除了提供全面的Internet 及应用程序平台,Windows 2000 Server 采用了 Windows NT Server 4.0 的一些特性,包括增强端对端管理的可靠性.可用性及可延展性.Windows 2000 Server 允许组织利用最新

Windows 2000 Server中dcpromo命令详解

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   dcpromo命令是一个"开关"命令.如果Windows 2000 Server计算机是成员服务器,则 运行dcpromo命令会安装活动目录,将其升级为域控制器:如果Windows 2000 Server计算机 已经是域控制器,则运行dcpromo命令会卸载活动目录,将其降级为成员服务器. 被广大企业级用户所关心的Windows 2000 A

Windows 2000服务器入侵前兆检测方法技巧

入侵检测系统(IDS)是防火墙的合理补充,它帮助安全系统发现可能的入侵前兆,并对付网络攻击.入侵检测系统能在不影响网络性能的情况下对网络进行监测,提供对内部攻击.外部攻击和误操作的实时保护,能够扩展系统管理员的安全管理能力(包括安全审计.监视.进攻识别和响应),提高了信息安全基础结构的完整性.但是,入侵检测系统并不是万能的,高昂的价格也让人退却,而且,单个服务器或者小型网络配置入侵检测系统或者防火墙等投入也太大了. 一.对于WWW服务入侵的前兆检测 对于网络上开放的服务器来说,WWW服务是最常见

用ASP.NET(VB版)创建WINDOWS 2000 SERVER站点

asp.net|server|window|创建|站点 用ASP.NET(VB)创建的WEB站点,我们的调用方式非常简单:Dim test As New Class1()test.CreateWebSit(webname,port, "D:\VB", "localhost") 下面是Class1的代码,该代码做的工作就是建立站点,如果有此站点的名称则自动覆盖(注意:本类需要引用Actice DS Type Library)Public Class Class1 用l

XDE在Windows 2000 server安装的方法

To bypass operating system checking : HKEY_LOCAL_MACHINE\Software\Rational Software\RSSetup\OsCheck To bypass Visual Studio .NET version checking: HKEY_LOCAL_MACHINE\Software\Rational Software\RSSetup\IdeCheck  

Windows 2000 Server 下 Indexing Service 编程实例。

<%@ Language=VBScript %><%    Response.Expires = 0    Response.Buffer = false%><HTML><HEAD><META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0"><TITLE>Indexing Service</TITLE><style