Anil John 最近写了一篇叙述信息泄露威胁和Web 服务的文章。在文章中,他详细探讨了潜在黑客常用的攻击技巧,以及一些常见的Web 服务应用又是如何“支持”了这些攻击。
Anil 谈到了“预操作监视(pre-operational surveillance)”,也就是我们从前常说的 IT 领域里的“信息泄露威胁”。他详细地介绍了两个可能的威胁:
- SOAP 错误的错误信息
- WSDL 扫描 / 踩点(Foot-Printing)/ 查点(Enumeration)
关于 SOAP 错误的错误消息,他说道:
……攻击者最喜欢的策略是试图在 Web 服务里产生一个异常或者错误,以希望连接字符串、堆栈踪迹和其他敏感信息能够在 SOAP 错误的地方泄露出来。
Anil 就此提出了两个应对措施,一个是在模式与实践书籍《Web 服务安全 / Web Service Security 》[免费PDF 版本] 和《WCF 安全指南/ WCF Security Guide 》[免费PDF 版本] 中所提到的——异常防护模式( Exception Shielding Pattern )。他同时指出还可以选用类似 XML 安全网关的硬件设备,他曾使用过 Layer 7、Cisco/Reactivity 网关等设备,碰巧晓得它们均支持此功能。
Apache Asis 团队的 Steve Loughran 针对本文评论说:
Apache Axis 默认情况下不会串线【译者注:意指跨越调用边界】传递完整的堆栈踪迹 [……]。你不需要额外使用 XML 安全硬件,只需要锁定端点的基本信息就可以。
他还提到了 Axis 安全指南。
对于第二个威胁——元数据发布,Anil 说:
在 WSDL 中发现的这类信息,也就是只需在服务端点 URL 后面加上?WSDL 就可以轻易得到的信息,对于要寻找服务中缺点的攻击者来说,是个绝对有用的信息源。因此,这样的信息不应该被提供,或者最好直接关闭。
如果元数据发布被关闭了,那么客户端如何知道定位或者唤醒 Web 服务的方法呢?据 Anil 所述,一个可能的方法是加入含有合适的访问控制机制的企业注册 / 仓库,并根据契约优先方法阻止WSDL 的自动生成。
在文章“保护你的WCF 元数据”中, Dominick Baier 解释了一些有关 WCF 元数据发布的细节。他给出了一些保护元数据发布的方法:
- 强制使用 SSL;
- 通过开发实现 IMetadataExchange 和含有完整 WCF 安全特性集的定制绑定,暴露元数据交换(Metadata Exchange,MEX)端点;
- 允许用户通过 WMI 从 WCF 服务中检索元数据。
另外在“给WCF 元数据授予访问权限”文章中,Dominick 还从技术角度谈到了检测元数据检索请求等。
评论