Anil John最近写了一篇叙述
信息泄露威胁和Web服务的文章。在文章中,他详细探讨了潜在黑客常用的攻击技巧,以及一些常见的Web服务应用又是如何“支持”了这些攻击。
Anil谈到了“预操作监视(pre-operational surveillance)”,也就是我们从前常说的IT领域里的“信息泄露威胁”。他详细地介绍了两个可能的威胁:
SOAP错误的错误信息
WSDL扫描/踩点(Foot-Printing)/查点(Enumeration)
关于SOAP错误的错误消息,他说道:
……攻击者最喜欢的策略是试图在Web服务里产生一个异常或者错误,以希望连接字符串、堆栈踪迹和其他敏感信息能够在SOAP错误的地方泄露出来。
Anil就此提出了两个应对措施,一个是在模式与实践书籍《Web服务安全/[url=http://www.aniltj.com/blog/ct.ashx?id=797afba7-f887-4a06-8ceb-a851cb179ae4&url=http%3a%2f%2f
www.amazon.com%2fWeb-Service-Security-Implementation-Enhancements%2fdp%2f0735623147%2f]Web Service Security[/url]》[[url=http://www.aniltj.com/blog/ct.ashx?id=797afba7-f887-4a06-8ceb-a851cb179ae4&url=http%3a%2f%2f
www.microsoft.com%2fdownloads%2fdetails.aspx%3fFamilyId%3d3E02A6C8-128A-47C2-9F39-4082582F3FE1%26displaylang%3den]免费PDF版本[/url]]和《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所述,一个可能的方法是加入含有合适的访问控制机制的企业注册/仓库,并[url=http://www.aniltj.com/blog/ct.ashx?id=797afba7-f887-4a06-8ceb-a851cb179ae4&url=http%3a%2f%2f
www.aniltj.com%2fblog%2f2005%2f10%2f09%2fSchemaFirstContractFirstTopDownStyleOfDevelopmentTools.aspx]根据契约优先方法[/url]阻止WSDL的自动生成。
在文章“
保护你的WCF元数据”中,
Dominick Baier解释了一些有关WCF元数据发布的细节。他给出了一些保护元数据发布的方法:
强制使用SSL;
通过开发实现IMetadataExchange和含有完整WCF安全特性集的定制绑定,暴露元数据交换(Metadata Exchange,MEX)端点;
允许用户通过WMI从WCF服务中检索元数据。
另外在“
给WCF元数据授予访问权限”文章中,Dominick还从技术角度谈到了检测元数据检索请求等。
查看英文原文:WCF and Information Disclosure Threats