针对IIS的漏洞:两大工具打造安全网站

自从红色代码(Code red)病毒在网上传播并且造成巨大损失以后,专门针对微软服务器的病毒就已经在一个月之内出现三例:红色代码二(Code Blue 2)、蓝色代码(Code Blue)和9月18日出现的病毒尼姆达(Nimda)。这几例病毒不但在短时间内传播全球,且每一种病毒均不同程度引起业界惊呼,称其为最危险的病毒!
  这些病毒之所以传播广泛,主要利用了微软最新出现的几个漏洞,各病毒利用漏洞情况如下:
病毒名称 对于漏洞
红色代码 缓冲区溢出漏洞、索引服务
红色代码二 缓冲区溢出漏洞、索引服务
蓝色代码 Unicode漏洞
尼姆达 IFRAMEExecCommand、Unicode漏洞

  仔细观察以上病毒对应的漏洞,在惊叹病毒厉害的同时,系统管理员们有必要反省:其实以上漏洞通告均早已经出现,现在正在传播的尼姆达病毒利用的Unicode漏洞,正是今年“五一”中美黑客大战时黑客们广泛使用的一种漏洞,微软针对这些漏洞的补丁包也早已经推出。之所以在这些病毒出现以后还有那么多计算机中招,很大责任就是NT、Win2000的管理员们没有及时加上应该有的补丁和没有仔细关注这两个系统的安全设置有关。当大家一次又一次的骂微软服务器的脆弱的时候,应该去微软的网站看看,看看自己应该担负的责任。

  也就是针对这一点,微软意识到需要采取必要措施帮助管理员们来设置服务器的安全属性,因此,在红色代码传播以后,微软在2001年8月23日推出了一款傻瓜式的IIS安全设置工具:IIS Lock Tool;同时,在尼姆达病毒传播以前的几天(2001年9月11日),微软推出了一款过滤网站访问不合法请求的工具:URL Scan。这两款工具均是针对IIS的漏洞设计的,系统管理员使用以上两款工具,可以有效设置IIS安全属性,避免被类似红色代码病毒和一些黑客的攻击。

一、IIS Lock Tool,快速设置IIS安全属性

  IIS Lock Tool的推出,还要感谢红色代码,因为正是红色代码的大面积传播,致使微软设计发布这款帮助管理员们设置IIS安全性的工具。

(一)、IIS Lock Tool具有以下功能和特点

  1、最基本功能,帮助管理员设置IIS安全性;

  2、此工具可以在IIS4和IIS5上使用;

  3、即使系统没有及时安装所有补丁,也能有效防止IIS4和IIS5的已知漏洞;

  4、帮助管理员去掉对本网站不必要的一些服务,使IIS在满足本网站需求的情况下运行最少的服务;

  5、具有两种使用模式:快捷模式和高级模式。快捷模式直接帮助管理员设置好IIS安全性,这种模式只适合于只有HTML和HTM静态网页的网站使用,因为设置完成以后,ASP不能运行;高级模式允许管理员自己设置各种属性,设置得当,对IIS系统任何功能均没有影响。

(二)、IIS Lock Tool的使用

  1、软件下载和安装

  IIS Lock Tool在微软网站下载。

  安装很简单,需要注意的是,安装以后,程序不会在系统的【程序】菜单出现,也不会在【管理工具】出现,需要安装者在安装目录寻找运行该程序。

  2、软件的使用

  在以下的介绍中,我们将详细介绍每一步设置的意义和推荐设置,之所以详细介绍,是为了我们明白这些设置到底意味着什么,同时,和我们原来的安全设置相对照,避免出现设置完成以后,系统出现障碍。

 运行该软件,首先出现以下界面(图一):


图一

  以上界面介绍了IIS Lock Tool的一些基本情况和使用时需要注意的地方:1)使用时应该选择针对本网站最少的服务,去掉不必要的服务;2)设置完成以后,建议对网站进行彻底检查,以确定设置对本网站是否合适;

  在以上界面,点击【下一步】按钮,出现以下界面(图二):


图二

以上界面选择快捷模式还是高级模式来运行软件,在这里,软件介绍了两者模式的区别:

 快捷模式:此设置模式关闭了IIS的一些高级服务属性,其中包括动态网页属性(ASP);所以,我们需要再重复一遍,选择快捷模式只适合提供静态页面的网站,当然,这种模式是相对最安全的。

  高级模式:此模式运行安装者自定义各种属性,同时允许高级属性的运行。

  快捷模式设置我们不必介绍,点击【下一步】按钮就可以设置完成。我们选择【Advanced Lockdown】(高级设置),点击【下一步】按钮,出现以下界面(图三):


图三

  以上界面帮助管理员设置各种脚本映射,我们来看每一种影射应该怎样设置:

  1)Disable support Active Server Pages(ASP),选择这种设置将使IIS不支持ASP功能;可以根据网站具体情况选择,一般不选择此项,因为网站一般要求运行ASP程序;

  2)Disable support Index Server Web Interface(.idq,.htw,.ida),选择这一项将不支持索引服务,具体就是不支持.idq,.htw,.ida这些文件。我们先来看看到底什么是索引服务,然后来决定取舍。索引服务是IIS4中包含的内容索引引擎。你可以对它进行ADO调用并搜索你的站点,它为你提供了一个很好的web 搜索引擎。如果你的网站没有利用索引服务对网站进行全文检索,也就可以取消网站的这个功能,取消的好处是:1)减轻系统负担;2)有效防止利用索引服务漏洞的病毒和黑客,因为索引服务器漏洞可能使攻击者控制网站服务器,同时,暴露网页文件在服务器上的物理位置(利用.ida、.idq)。因此,我们一般建议在这一项前面打勾,也就是取消索引服务;

 3)Disable support for Server Side Includes(.shtml,.shtm,.stm),取消服务器端包含;先来看看什么叫服务器端包含,SSI就是HTML文件中,可以通过注释行调用的命令或指针。SSI 具有强大的功能,只要使用一条简单的SSI 命令就可以实现整个网站的内容更新,动态显示时间和日期,以及执行shell和CGI脚本程序等复杂的功能。一般而言,我们没有用到这个功能,所以,建议取消;取消可以防止一些IIS潜在地漏洞;

  4)Disable for Internet Data Connector(.idc),取消Internet数据库连接;先看Internet数据库连接的作用,它允许HTML页面和后台数据库建立连接,实现动态页面。需要注意的是,IIS4和IIS5中基本已经不使用idc,所以,建议在此项打勾,取消idc;

  5)Disable support for Internet Printing (.printer),取消Internet打印;这一功能我们一般没有使用,建议取消;取消的好处是可以避免.printer远程缓存溢出漏洞,这个漏洞使攻击者可以利用这个漏洞远程入侵IIS 服务器,并以系统管理员(system)身份执行任意命令;

  6)Disable support for .HTR Scripting(.htr),取消htr映射;攻击者通过htr构造特殊的URL请求,可能导致网站部分文件源代码暴露(包括ASP),建议在此项前面打勾,取消映射;

  理解以上各项设置以后,我们可以根据本网站情况来决定取舍,一般网站除了ASP要求保留以外,其他均可以取消,也就是全消第一项前面的勾,其他全部打勾,按【下一步】按钮,出现以下界面(图四)


图四

  以上界面设置可以让管理员选择一些IIS默认安装文件的保留与否,我们来看怎样选择:

  1)Remove sample web files,删除web例子文件;建议删除,因为一般我们不需要在服务器上阅读这些文件,而且,这些文件可能让攻击者利用来阅读部分网页源程序代码(包括ASP);

  2)Remove the Scripts vitual directory,删除脚本虚拟目录;建议删除;  

       3)Remove the MSDAC virtual directory,删除MSDAC虚拟目录,建议删除;

  4)Disable Distribauted Authoring and Versioning(WebDAV),删除WEBDAV,WebDav主要允许管理者远程编写和修改页面,一般我们不会用到,建议删除,删除的好处是可以避免IIS5的一个WebDav漏洞,该漏洞可能导致服务器停止。

  5)Set file permissions to prevent the IIS anouymous user from executing system utilities(such as cmd.exe,tftp.exe),防止匿名用户运行可执行文件,比如cmd.exe和tftp.exe;建议选择此项,因为红色代码和尼姆达均利用了以上所说的匿名执行可执行文件的功能;   6)Set file permissions to prevent the IIS anouymous user from writing to content directories,防止匿名用户对目录具有写权限,这个不要解释,建议选择;

设置以上选项以后,按【下一步】按钮,出现以下界面(图五):


图五

  要求确认是否接受以上设置,选择【是】,出现以下界面(图六)开始对系统执行设置:


图六


  在以上界面中,我们可以看到对IIS的详细设置情况。设置完成以后,建议重新启动IIS。

二、URLScan Tool――过滤非法URL访问

  仔细观察IIS的漏洞,我们几乎可以得出这样一个结论,所有利用这些漏洞实现对网站攻击的手段均是构造特殊的URL来访问网站,一般有以下几种类型的URL可以利用漏洞:

  1、特别长的URL,比如红色代码攻击网站的URL就是这样:

GET/default.idaXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%u9090%u6858%ucbd3%u7801%u
9090%u6858%ucbd3%u7801%u9090%u6858%ucbd3%u7801%u9090%u9090%u8190%u
00c3%u0003%u8b00%u531b%u53ff%u0078%u0000%u00=a 200;

 2、特殊字符或者字符串的URL,比如在URL后面加::$DATA可以看到网页(ASP)源代码;

  3、URL中含有可执行文件名,最常见的就是有cmd.exe;

  既然这些攻击利用特殊的URL来实现,所以,微软提供了这款专门过滤非法URL的安全工具,可以达到御敌于国门之外的效果,这款工具有以下特点和功能:

  1、基本功能:过滤非法URL请求;

  2、设定规则,辨别那些URL请求是合法的;这样,就可以针对本网站来制定专门的URL请求规则;同时,当有新的漏洞出现时,可以更改这个规则,达到防御新漏洞的效果;

  3、程序提供一套URL请求规则,这个规则包含已经发现的漏洞利用特征,帮助管理员设置规则;

(一)、软件的下载与安装

  URLScan可以在微软的网站上下载。

  和一般软件一样安装,但是,此软件不能选择安装路径,安装完成以后,我们可以在System32/InetSrv/URLScan目录下找到以下文件:

  urlscan.dll:动态连接库文件;
  urlscan.inf:安装信息文件;
  urlscan.txt:软件说明文件;
  urlscan.ini:软件配置文件,这个文件很只要,因为对URLScan的所有配置,均有这个文件来完成。

(二)、软件的配置

  软件的配置由urlscan.ini文件来完成,在配置此文件以前,我们需要了解一些基本知识。

 1、urlscan配置文件的构造形式

  urlscan配置文件必须遵从以下规则:

  (1)此文件名必须为urlscan.ini;

  (2)配置文件必须和urlscan.dll在同一目录;

  (3)配置文件必须是标准ini文件结构,也就是由节,串和值组成;

  (4)配置文件修改以后,必须重新启动IIS,使配置生效;

  (5)配置文件由以下各节组成:

  [Option]节,主要设置节;
  [AllowVerbs]节,配置认定为合法URL规则设定,此设定与Option节有关;
  [DenyVerbs]节,配置认定为非法URL规则设定,此设定与Option节有关;
  [DenyHeaders]节,配置认定为非法的header在设立设置;
  [AllowExtensions]节,配置认定为合法的文件扩展名在这里设置,此设定与Option节有关;
  [DenyExtensions]节,配置认定为非法的文件扩展名在这里设置,此设定与Option节有关;

  2、具体配置

  (1)Option节的配置,因为Option节的设置直接影响到以后的配置,因此,这一节的设置特别重要。此节主要进行以下属性的设置:

  UseAllowVerbs:使用允许模式检查URL请求,如果设置为1,所有没有在[AllowVerbs]节设置的请求都被拒绝;如果设置为0,所有没有在[DenyVerbs]设置的URL请求都认为合法;默认为1;

  UseAllowExtensions:使用允许模式检测文件扩展名;如果设置为 1,所有没在[AllowExtensions]节设置的文件扩展名均认为是非法请求;如果设置为0,所有没在[DenyExtensions]节设置的扩展名均被认为是合法请求;默认为0;

  EnableLogging:是否允许使用Log文件,如果为1,将在urlscan.dll的相同目录设置名为urlscan.log的文件记录所有过滤;

  AllowLateScanning:允许其他URL过滤在URLScan过滤之前进行,系统默认为不允许0;

  AlternateServerName:使用服务名代替;如果此节存在而且[RemoveServerHeader]节设置为0,IIS将在这里设置的服务器名代替默认的“Server”;

  NormalizeUrlBeforeScan:在检测URL之前规格化URL;如果为1,URLScan将在IIS编码URL之前URL进行检测;需要提醒的是,只有管理员对URL解析非常熟悉的情况下才可以将其设置为0;默认为1;

  VerifyNormalization:如果设置为1,UrlScan将校验URL规则,默认为1;此节设定与NormalizeUrlBeforeScan有关;

  AllowHighBitCharacters:如果设置为1,将允许URL中存在所有字节,如果为0,含有非ASCII字符的URL将拒绝;默认为1;

  AllowDotInPath:如果设置为1,将拒绝所有含有多个“.”的URL请求,由于URL检测在IIS解析URL之前,所以,对这一检测的准确性不能保证,默认为0;

  RemoveServerHeader:如果设置为1,将把所有应答的服务头清除,默认为0;

  (2)[AllowVerbs]节配置

  如果UseAllowVerbs设置为1,此节设置的所有请求将被允许,一般设置以下请求:

  GET、HEAD、POST

  (3)[DenyVerbs]节配置

  如果UseAllowVerbs设置为0,此节设置的所有请求将拒绝,一般设置以下请求:

  PROPFIND、PROPPATCH、MKCOL、Delete、PUT、COPY、MOVE、LOCK、UNLOCK

  (4)[AllowExtensions]节设置

  在这一节设置的所有扩展名文件将被允许请求,一般设置以下请求:

  .asp、.htm、.html、.txt、.jpg、.jpeg、.gif,如果需要提供文件下载服务,需要增加.rar、.zip

  (5)[DenyExtensions]节设置

  在这一节设置的所有扩展名文件请求将被拒绝,根据已经发现的漏洞,我们可以在这一节增加内容,一般为以下设置:
.asa、可执行文件、批处理文件、日志文件、罕见扩展如:shtml、.printer等。

三、总结

  以上两个工具功能强大,可以真正实现对IIS的保护。IIS Lock Tool简单,相对而言,只是被动的防卫;UrlScan设置比较难,建议对IIS非常熟悉的管理员使用,只要设置得当,UrlScan的功能更加强大。在使用UrlScan的时候,切记不要设置一次万事大吉,需要不停跟踪新出现的漏洞,随时修改URLScan的配置文件。

上一篇: 使用ASP生成HTML文件
下一篇: 乞丐老人一句话,感动天下中国人
文章来自: 网络
引用通告: 查看所有引用 | 我要引用此文章
Tags:
最新日志:
评论: 1 | 引用: 0 | 查看次数: 5039
发表评论
登录后再发表评论!