2024年4月11日发(作者:)

科技创新

IIS

信息服务常见漏洞及安全策略

朱伟

陕西汉中723000)(陕西理工学院计算机科学与技术系

摘要:不管是个人或者是网站搭建的InternetIIS信息服务,总为IIS层出不穷的漏洞苦恼;本文介绍了IIS信息服务常见

漏洞表现,并给出了基于个人或网站的安全策略。

关键词:IIS信息服务;常见漏洞;安全策略

由于宽带越来越普及,给自己的Win2000/XP装上简单

易学的IIS,搭建一个不定时开放的ftp或是web站点,相信

是不少电脑爱好者所向往的,而且应该也已经有很多人这样

做了。但是IIS层出不穷的漏洞实在令人担心,远程攻击着只

要使用webdavx3这个漏洞攻击程序和telnet命令就可以完成

一次对IIS的远程攻击。许多网站因为多种因素的制约采用了

相对简单易用的NT(WindowsNT/2000/2003)+IIS(Internet

InformationServer)的架构,由于各站点的技术力量和管理水

平存在较大差距,因此网站的安全性也参差不齐,只有少数

的IIS网站具有较高安全性。

1.IIS信息服务常见漏洞

①Unicode漏洞。Unicode安全问题存在于许多系统中,

当IIS对含有Unicode的字符进行解码时,如果遇到特定编码,

将导致错误或非法操作。②应用程序映射问题。在IIS的许多

应用程序映射中存在着相当严重的安全问题,如源代码泄露、

缓冲区溢出、DOS拒绝服务、非法执行脚本等基本上都是由

此而引发的。③ISAPI缓冲溢出漏洞。④IISRDS(远程数据

服务)漏洞。⑤HTTP非标准数据问题。攻击者发送大量的

特殊畸形的HTTP请求头数据包,可导致服务器消耗系统的

所有内存,只有服务终止或主机重启,IIS才能恢复正常。⑥

IIS验证漏洞。这可导致泄露系统信息及帐号被远程暴力破

解。⑦设备文件问题和系统设计错误。⑧应用程序问题。网

站的应用程序承担和实现了具体的网络服务和功能,但由于

编程水平不一,因而应用程序安全性差别很大,这也极易造

成对IIS的攻击。⑨有很多安全缺口归因于Microsoft在IIS

中所提供的功能。如果适切的注意到这些属性,它们将允许

客制化(customization)的运用,在执行上更具弹性。但是当

它们被忽略、误解或不正确的使用时,它们就会成为受攻击

的弱点。⑩主观人为因素。指网站的设计者、管理者和使用

者的意识、素质、道德、责任心、技术等主观方面对此的影

响。

2.IIS信息服务的安全策略

2.1个人IIS信息服务的一般安全设置

在入侵者突破了防火墙的情况下配置IPSec策略;通过

限制来隔绝那些可以存取Telnet服务器的用户以达到保护

服务器的目的;为服务器的虚拟目录设置适当的存取控制;

进行日志记录,并在日志文件(logfiles)中设置适当的权限;

如果合适的话,为IP地址和DNS地址做权限;更新网络

服务器上的RootCA证书;移除IIS中所有的示范应用程

序;移除所有不必要的COM组件,例如FileSystemObject;

从IIS4.0升级以后,移除IISADMPWD虚拟目录;移除无

用的应用程序对应(scriptmappings),例如IDC或HTR;

在ASP程序代码中检查窗体输入,以防止恶意输入;在IIS

5.0中禁用ParentPaths选项;禁用Content-Location文件

的表头信息,以免泄露地址。

从Microsoft的IIS5.0安全性检查清单开始吧!它收录

了许多简单易懂的步骤,帮助保护Windows2000/XP系列的

网站服务器免受绝大多数的攻击。

2.2网站IIS信息服务的一般安全策略

网站在以WindowsNT(包括WindowsNT4.0,Windows

2000Server系列,windowsServer2003)为操作系统的服务器

上通过IIS为客户的请求提供服务。维护IIS信息安全的方法

包括公共网关接口(CommonGatewayInterface,CGI),Internet

服务应用编程接口(InternetServerAPI,ISAPI)的过滤器

(Filter)程序和安全套接字(SecuritySocketLayer,SSL)等。

CGI是最常用的方法,可以实现基于IIS的信息存储和传输的

安全,用CGI编制的程序由IIS调用,但运行在自己的进程

内,所以其运行的速度较慢。ISAPIFilter主要实现信息存储

的安全,是以动态链接库的形式封装,直接运行在IIS进程内,

运行速度较快。SSL可以用于信息传输的安全,直接集成在

IIS中。将ISAPIFilter和SSL结合即可达到信息存储和传输

的安全,本文介绍通过这种方法实现基于IIS的信息安全。

①ISAPIFilter的作用机制

ISAPI是微软提供的基于WindowsNT(包括Windows

NT4.0,Windows2000Server系列,windowsServer2003)的

Internet编程接口,利用ISAPI编制的应用程序以动态链接库

的形式封装,直接运行在IIS进程中。ISAPI实现的应用程序

包括扩展和过滤器两种形式,ISAPI扩展可以响应客户的请

求,执行特殊的功能,而过滤器可以实现数据压缩、重定向、

加密和身份验证等功能。ISAPI过滤器运行在IIS的前端,可

以处理IIS提供的每一步服务。过滤器在IIS进程启动时装载,

并运行GetFilterVison函数,GetFilterVison函数的目的是设置

119

现代经济信息

过滤器的优先级并将事件通知的关注点注册到过滤器。当系

统中存在多个过滤器时需要通过设置优先级确定过滤器的执

行顺序,而事件通知的关注点是过滤器可以处理的服务。当

客户请求服务时,IIS首先启动过滤器程序,然后根据过滤器

注册的关注点调用过滤器实现的事件处理函数。

②ISAPI过滤器实现信息存储安全

通过ISAPI过滤器可以对客户的身份进行验证,控制访

问的客户,从而实现系统存储的信息安全。在ISAPI过滤器

中,验证客户身份需要注册的事件关注点是

SF_AUTHENTICATION事件,相应的事件处理函数是

OnAuthentication。客户在提交访问后,IIS启动新的线程为客

户提供服务,在IIS线程验证客户的身份前会首先查看过滤器

中有无SF_AUTHENTICATION事件关注点,若有,则执行

过滤器的OnAuthentication函数。所以可以通过

OnAuthentication函数在IIS线程前对客户的身份进行验证。

客户匿名访问时,过滤器直接返回,保证客户可以访问非保

密的资源。当客户非匿名访问时,过滤器查找用户数据库,

找到对应的系统密码和用户名,并替代客户的密码和用户名,

然后在IIS中用替换的系统密码和用户名对客户的身份进行

验证。采用这种方法使得客户输入的密码和用户名并不是系

统真正的密码和用户名,既保证了客户的数量又保护了系统

的安全。ISAPI身份验证过滤器运行在多线程的IIS进程中,

每一个线程都将调用过滤器程序,而与数据库的连接很占系

统的资源,当访问的客户超过一定的数量时,可能会导致系

统的崩溃。在实现时可以通过一段缓存解决这个问题,具体

方法是过滤器装载时在内存中开辟一段空间,用以保存近来

访问服务器的客户的密码和用户名以及对应的系统密码和用

户名。在客户访问时,过滤器先查找缓存中有无客户的密码

和用户名,若没有再查找数据库,并将查找到的内容写入缓

存中,由于查找缓存的时间及占用的资源远远小于对数据库

的查找,所以可以大大提高过滤器的执行效率。

③SSL实现信息传输安全

在Internet传输的所有数据都暴露于任何网络客户面前,

任何对通信进行监测的人都可以对通信的数据进行截取和修

改。保证数据传输的保密性、完整性和安全性的关键在于防

止网络的监听和篡改。SSL技术为应用层间数据通信提供安

全的途径,它位于可靠的传输层之上,为高层的应用提供透

明的服务,保证传输信息的隐私性、可靠性和用户的非否认

性。SSL通信分两个阶段:连接阶段和数据传输阶段。在连

接阶段,建立安全连接,一旦算法达成协议,就交换密钥,

接着验证身份,然后开始数据传输。在数据传输阶段,信息

传输到SSL时通过加密或解密后向下或向上传输。SSL要求

在客户端与服务器端建立通信渠道,通信渠道的建立通过客

户与服务器的握手来完成。客户和服务器之间通过相互询问

确定最终的加密算法。询问信息提供了建立安全渠道的重要

信息。服务器端通过证书确定客户的身份,然后发出确认和

结束信息结束握手阶段,开始正常的数据传输。数据在传输

120

过程中被分解为许多信息,同时用会话密钥加密并使用数字

签名。接收端在试图解密数据之前首先要验证数字签名。在

IIS中可以方便的通过SSL建立数据传输的安全性。服务器建

立SSL链接之前必须安装证书。证书可以使用Microsoft

CertificateServer生成。新密钥的创建通过IIS密钥管理器完

成,它会根据向导自动请求服务器上安装的CertificateServer

生成证书。在密钥建成后需要通过IIS的控制台配置SSL,可

以配置的选项包括密钥设置、是否要求客户端证书以及客户

端证书映射等。在这些设置完成后就可以实现信息传输的安

全性。

3.结束语

Microsoft针对IIS安全性和可存取性/可用性

(accessibility/usability)两方面做了很好的折衷,一般认为更

倾向于后者。我们在提供IIS服务的时候,尤其是网站以ISAPI

过滤器程序保护系统存储信息安全的方法,采用DLL的形式

运行在IIS进程中,可以通过用户数据库和缓存扩充用户的数

量并提高过滤器运行的效率。用SSL保护信息传输的安全是

目前常用的也是较好的方法之一。

参考文献:

[1]王洪.计算机网络应用教程[M].北京:机械工业出版

社.2004.

[2]4.0使用大全[M].北京:人民邮电

出版社.1998

[3]周继军.网络与信息安全基础[M].北京:清华大学出版

社.2008