Web 服务器的识别信息为恶意者攻击你的系统提供了线索,本文主要针对IIS介绍如何将这种风险降低的若干途径。我们不妨从黑客的角度看,系统的脆弱性有很多是来自系统本身,Web server自身暴露的详细信息就增加了攻击的可能性,Port80 Software公司开发的ServerMask(http:// www.port80software.com/products/servermask/)提供了防御Windows Web Server被攻击的一揽子功能。
    一般而言,多数Web servers会在HTTP头部显示网络平台信息,比如Server: Microsoft-IIS/5.0或者Server: Apache/2.0.41-dev (UNIX)。只要借助工具即可刺探到此信息,比如Sam Spade(http://samspade.org/)和Header Check。出于安全可虑可利用相关工具隐去该信息,比如Apache平台可借助mod_headers(http:// httpd. apache.org/docs/1.3/mod/mod_headers.html);IIS可用微软技术网站提供的IISLockDown和URLScan。
     网站上的文件扩展名如.asp 或.aspx也是一种不安全“尾巴”,我们可以把它收起来,在上述提及的mod_headers和ServerMask就提供了该项功能。ASP的cookie的ID主要用于保持client状态,它也为黑客留下破绽,在微软技术支持网站(http:// support.microsoft.com/default.aspx?scid=kb;en-us;Q244465)也提供了取消cookie的可行性建议;但这样又会为网站访问造成不便,那么可采用ISAPI过滤方式改变cookie名称和会话ID。不过话说回来,ASP会话对于资源访问相当敏感,关掉它们有利于调高网络运行速度,而弊大于利。
    最早始于Windows 2000 之IIS 5.0的WebDAV协议提供了很多服务器相关信息,尤其当设置了HTTP OPTIONS需求的时候。其实无论Windows系统还是IIS,并非必需WebDAV,所以可以屏蔽WebDAV,一种方法是修改注册表中的:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W3SVC\Parameters
点击编辑菜单中的Add Value,在Value name中输入DisableWebDAV,在Data type中输入DWORD,在Value data中输入1,重启IIS后才能生效。另一方式是采用微软支持网站提供的向导工具IISLockDown 和URLScan(http://support.microsoft.com/ default.aspx?scid=KB;EN-US;Q325864)。
   很多IIS用户会感性地依赖IWA协议(Integrated Windows Authentication),该协议其实很难保守机密,只要用简单脚本就能对服务器发出的头信息WWW-Authenticate加以破解。在构造一台Web servers时很多时候用户会滥用协议,除了必要HTTP service以外,经常会添加FTP和SMTP,其实它们并不安全,应尽量不用,尤其要尽量避免在IIS中采用默认FTP 和SMTP services。很多网站为了让用户访问CGI或shell程序,会在访问连接上提供复杂长字符串,但这也让黑客能够轻易看到目录结构,成为潜入系统的“门缝”。
    在新一代防火墙中出现的有关IIS最新标准IISLockDown/URLScan,是位于Web server背后的应用保护层。传统型防火墙的定位主要是在网络访问控制,阻止未授权网络级请求;新一代的应用型防火墙则迫使请求在应用层会话进行,主要保护Web应用级的通讯流以及防范通过Web协议发起的攻击,尤其注重来自浏览器平台和HTTP的攻击。
    新一代应用型防火墙主要有两种安全模式:即正反两种。正模式主要依据应用程序逻辑建立用户访问的正常逻辑,具体而言:(1)初始策略包含了有关有效开始页面的列表,只有在用户的请求与开始页面相匹配时才能生成会话策略;(2)应用防火墙需要检验下载页面请求,包括页面链接、下拉菜单、表单区域,建立形成用户会话期间所有允许的请求策略;(3)用户请求在传送到服务器前需要检验其有效性,无法识别的请求将会被阻止;(4)当用户会话终结时相关的会话策略也随之销毁,针对每个新的会话将建立新的策略。
     新型防火墙的安全反模型主要依靠数据库特征码所提供的攻击特征,具体内容包括:(1)安全策略依据已知攻击特征已经生成;(2)不会让页面流的分析行为更改现有策略;(3)对于可识别攻击加以阻止,对于未知的访问(也可能是良性的)传到分析中心处理;(4)对所有用户采用相同的静态策略。
     应用型防火墙安装在常规防火墙和应用服务器之间,位于ISO模型第七层。所有会话信息,包括上行网流和下行网流都必经此过。下行流需要遇到正模型,在cache服务器之前对其请求访问进行把关,上行流则会对需求有效性加以检验。应用防火墙会对TCP端口Ports 80和443侦听,接收来自客户端的HTTP/Secure请求,对其加以分析,结合相关会话和策略。
    不过,在Web server的应用层无论怎样防范,也无法消除在较为低端的网络层所存在的安全漏洞,此时需要对网络协议堆栈内容进行扫描和识别,比如可以使用堆栈扫描工具NMAP(http://insecure.org/)跟踪系统的TCP stack。进一步,我们不妨从黑客的角度采取对策,比如对于常用的网络探测工具Netcraft(http://news.netcraft.com/),它可以报告出你的Web server和OS,假如我们改变HTTP Server的header,就会导致它显示出错或"unknown"。 即使对于防范严密的防火墙,Netcraft也往往能够识别OS,为了让它失聪,你可以改变某些默认的TCP/IP设置,还有RWIN (receive window size)、MTU (maximum transmission units)、MSS (maximum segment size)以及IP header的TTL (time -to-live)。当然,改变设置有时会影响到你的服务器性能,需要管理员在二者之间进行平衡。

文章如转载,请注明转载自【网管小王的独立博客】:http://www.5iadmin.com/