位置:海鸟网 > IT > ASP.NET >

保护 XML Web 服务免受黑客攻击(2)

部署问题

到目前为止,我们已介绍了几种不同的攻击类型,那么我们能对这些可恶的攻击采取什么措施呢?有一个好消息可以告诉您,您可以采取很多种方法来保护自己的服务,而且,这些保护大都十分简单。让我们首先来看一看只需控制 Web 服务器和后端服务器的配置方法就可以实现的保护类型。
应采取许多重要的保护措施确保您的 Web 服务器不会受到攻击的破坏,包括一些众所周知的措施,如确保具有最新的安全性更新。下面列出了自我保护措施中最重要的步骤。其中的许多步骤并不特别针对托管 Web 服务,而是适用于所有的 Web 服务器托管内容。
安装安全性更新

首先,确保您具有最新的更新,以避免受到红色代码蠕虫病毒的攻击。可以在 Installing the patch that stops the Code Red worm(英文)中找到有关安装更新的说明和下载修补程序的链接。
对红色代码蠕虫病毒的修复以及其他修复最终会包含在 Microsoft® Windows® 2000 的下一个服务包中,并已在 Microsoft® Windows® XP 中得到解决。
当然,更大的问题是如何避免其他潜在的弱点,并保护自己免受将来可能出现的问题的侵害。有关 Microsoft 产品安全问题的信息,可以订阅“Microsoft 安全性通知列表”。对于出现的任何新问题,都将以电子邮件的形式通知订阅者。有关如何订阅的说明,请查看 Product Security Notification(英文)网页。
限制 Web 服务器的访问者

如果您对攻击的问题很关注,尤其是如果您的 XML Web 服务上包含私有信息,那么您应限定仅合法的用户可以访问您的站点。这可以用多种方法来实现,但下面讲述的几种方法可以防止黑客访问您的 XML Web 服务。
通过使用 HTTP 身份验证来对用户进行验证,然后限定他们可以访问哪些资源。身份验证的配置方法:用鼠标右键单击 Internet 服务管理器中的 Web 站点、虚拟目录或单个文件;从弹出菜单中选择“属性”;进入“目录安全性”选项卡,单击“匿名访问和身份验证控制”下面的“编辑”按钮。
限定可以访问您的 Web 服务器的 IP 地址。如果有一些可以使用您站点的合法用户,那么可以只允许这些用户的特定 IP 地址访问您的 Web 站点。您还可以限定某些 IP 地址范围具有访问权限,或拒绝某个 IP 地址或某个 IP 地址范围的访问权限。甚至可以根据域名进行限定,但在与您计算机连接的 IP 地址上,可能需要花费很长的时间来进行域名查找。修改 IP 地址限制的方法:转至步骤 1 中提到的“目录安全性”选项卡,单击“IP 地址及域名限制”下面的“编辑”按钮。图 1 显示了“IP 地址及域名限制”对话框,其中将访问权限限制为三个特定的 IP 地址。


图 1:设置 Web 站点的 IP 地址限制
要求与客户端证书具有安全套接字层 (SSL) 连接。这可能是对访问您站点的用户进行身份验证的最安全的方法。SSL 限制也是在“目录安全性”选项卡的“安全通信”下进行设置。
将路由器配置为仅允许符合要求的访问

路由器就是您的防火墙。它可以阻断发送到您计算机的大量不合法的请求。流行的路由器大多都可以将访问限制在特定的 TCP 端口上,因此您可以只允许从端口 80(默认的 HTTP 端口)传入请求。这可以防止防火墙外的任何人试图连接到您计算机上的其他任何服务。打开其他服务的端口时请务必小心。您可以很方便地从终端服务客户端打开一个端口,连接到您的 Web 服务器,以便进行远程管理。但随后,任何人都可以通过终端服务器连接尝试连接到您的计算机。即便黑客不知道有效的用户名和密码,也仍然可以通过同时建立只显示登录屏幕的多个会话,来用完您计算机上的大量资源。
在筛选掉可能用完您计算机资源的非法数据包时,也需要用到路由器这一重要工具。对于明显存在问题的数据包,只需将它丢弃即可(大多数路由器都会自动执行这一功能)。但是,目前已有许多路由器具有检测诸如 TCP SYN 包的能力,这些数据包慌称它们是从某个 IP 地址发送过来的,但实际并非如此。通过启用这种保护措施,可以避免前面在拒绝服务攻击中提到的那些 SYN 攻击。
而且,请记住,防火墙限制只会影响到防火墙处的流量。这似乎是显而易见的事情,但假定您从 Internet 服务提供商 (ISP) 处购买了一根 T1 线,并在您所在的 T1 线的那一端放置了一个具有安全配置的路由器。如果 ISP 无法在他们的路由器上启用非法 SYN 请求检测功能,那么他们的路由器就有可能受到 SYN 攻击,从而潜在地拒绝对您的 T1 线另一端的服务,最后结果是有效地切断了对您站点的访问。
考虑更复杂的环境,如某个特定连接的两端都放置有多个路由器,由于每个路由器都有可能遭受攻击,因此可能会影响到为您站点的合法用户提供服务。要列出数据包到达您的服务器途中所要经过的路由器,请使用 TRACERT.EXE 实用工具。
配置 TCP/IP 筛选以限制接受连接的端口

如果您没有路由器作为防火墙,或者,如果您由于任何原因无法管理自己的路由器,都可以通过限制您计算机将接收的传入连接种类,有效地使您自己的计算机成为防火墙。在 Windows 2000 中,单击“开始”按钮,选择“设置”,选择“网络和拨号连接”,用鼠标右键单击连接到 Internet 上的网卡,然后选择“属性”。选择“Internet 协议 (TCP/IP)”,单击“属性”按钮,单击“高级”按钮,进入“选项”选项卡。选择“TCP/IP 筛选”,然后单击“属性”按钮。将出现如图 2 所示的一个对话框。您可以在该对话框中限制将接受连接的端口。在如图 2 所示的示例中,限制了只允许在端口 80 和 443 上分别进行 HTTP 和 HTTPS 连接。


图 2:配置 TCP/IP 筛选
删除不必要的服务和软件

计算机上运行的软件越多,就越有可能受到攻击,尤其是在您作为某种具有较高权限的用户运行服务的时候更是如此。如果您的计算机专门运行 Web 服务,且 Web 服务独立于其他服务,那么应在您的计算机上禁用其他某些服务,包括 FTP 服务、SMTP 服务以及诸如终端服务客户端等的 Windows 服务。
也应限制可通过 Internet Information Server 运行或访问的软件数量。确保仅配置了您需要的虚拟站点和目录。首先,应该删除管理 Web 站点。其次,还应该删除 IISSamples 虚拟目录。同样,如果您的计算机专门运行 Web 服务,应删除其他任何虚拟目录。
即便对于已经安装某些软件的虚拟目录,也必须弄清楚哪种软件是访问您的 Web 站点时可以使用的。在 Internet 服务管理器中,用鼠标右键单击某个站点或虚拟目录,从所出现的菜单中选择“属性”,选择“虚拟目录”选项卡,然后单击“配置”按钮,将出现“应用程序映射”选项卡,其中列出了与不同的 ISAPI 扩展或 CGI 应用程序相关联的所有扩展。如果您没有使用这些扩展,请将它们从列表中删除。.IDQ 文件的索引服务器扩展自身存在错误,红色代码蠕虫病毒就利用了这个错误。如果您是在虚拟站点级进行此项更改,那么您不需要为所创建的每个虚拟目录都进行此项工作。
使用 Microsoft Internet Information Server 安全性核对表

Microsoft 为 Internet Information Server 4.0 创建了一个安全性核对表,其中除了我在本文中提到的所有安全事项以外,还提到了其他更多的安全事项。使用此核对表来确保您至少已经考虑了所有的安全性选项。虽然您运行的可能不是 Internet Information Server 4.0(5.0 版是随 Windows 2000 一起发布的版本),但本文中的大多数步骤仍然适用,而且,对于将来 Internet Information Server 版本,也仍然适用。可以从 Microsoft Internet Information Server 4.0 Security Checklist(英文)中找到此核对表。
总结

根据您计算机和网络配置的不同,会有多种保护措施,您应采取相应的措施保护您的 Web 服务器免受黑客攻击。在下一篇专栏文章中,我们将研究开发人员和设计人员在创建其 XML Web Service 时需注意的问题,并继续探讨保护您的 XML Web Service 免受黑客攻击的方法。


--------------------------------------------------------------------------------

At Your Service
Matt Powell 是 MSDN Architectural Samples Team 的成员,他帮助开发了最新的 SOAP Toolkit 1.0。Matt 的其他成就包括与他人合著了由微软出版社出版的《Running Microsoft Internet Information Server》一书以及为各种杂志撰写了大量的文章。他有一个幸福美满的家庭,是他每天眷恋的地方。