IIS Lockdown 工具如何处理应用程序映射?
问: 当我们在 IIS 5 上使用 IIS Lockdown 工具时,我们禁用了除 .asp 文件之外的所有的应用程序映射。Lockdown 工具的确禁用了其他应用程序映射,但是并没有删除它们。我读过了许多有关安全性的文章和书籍,其中大部分都认为删除不需要的应用程序映射是最佳做法,而且似乎的确很有意义。但是 Lockdown 工具没有删除映射,而是将这些扩展名映射到 404.dll 程序。为什么要保留这些扩展名,而不按照包括“Microsoft 的 IIS 5 安全性检查清单”在内的安全性文章中所建议删除它们?
答:
IIS 5 安全性检查清单
确实是一个相当好的入门资料,但是,如果要更为全面地了解 Web 安全性方面的知识,我力荐您阅读
提高 Web 应用程序的安全性:威胁与对策
,这篇文章写得非常好,其链接为
http://msdn.microsoft.com/library/en-us/dnnetsec/html/ThreatCounter.asp
。
不过,您提出了一个非常好的有关 IIS Lockdown 工具 的问题,我一直推荐在 IIS 5 服务器上使用这个工具。Lockdown 对应用程序映射所采取的操作完全如您所述(参见下图):
您可以看到,对 .htr 或 .idc 的任何请求都将导致运行 404.dll,而这个程序将向用户显示一条简单且无任何提示信息的错误—— 找不到文件 。那么,为什么将这些扩展名映射到 404.dll,而不是简单地删除它们呢?我们假定您有多个使用 .ida、.idq 和 .htw 等过时扩展名的文件,以实现对索引服务器的查询和显示查询结果。在进行稍微深入的研究后,您明智地决定,使用 ASP 来提供同样的功能,这样效率更高,更为安全。编写代码后,您查看应用程序映射,删除了那些扩展名,因为您不再需要 .ida、.idq 和 .htw 等文件。结果,IIS 会将仍然位于服务器上的 .ida、.idq 和 .htw 文件,以文本形式发送给用户。这可能会暴露您不愿意公开的服务器信息。当然,您应该从服务器的源头删除这些文件,但是将这些扩展名映射到 404.dll 可以降低风险,因为您可能遗漏某一个文件,或是开发人员可能将旧内容上传到服务器。
请注意,您应该定期检查应用程序映射,以确保安装或卸载过程没有对它们进行修改。使用专用文件的 Web 应用程序肯定会将它们需要的扩展名添加到应用程序映射中。对于 Indexing Service,仅仅通过“添加/删除 Windows 组件”来从 IIS 服务器上删除 Indexing Service,将会把原来的 .idq、.idq 和 .htw 映射添加回应用程序映射,并将相关的 .dll 程序(idq.dll 和 webhits.dll)遗留在 Winnt\System32 中。因此,如果您不打算使用 Indexing Service,请在运行 IIS Lockdown 工具之前删除它。