外部IIS Web服务器访问未经身份validation的内部wcf服务应该如何偏执?

环境:

  • Web和应用程序服务器是Windows Server 2003 Enterprise / IIS 6
  • Web服务器位于防火墙之后 – 端口80和443向全世界开放。
  • WebServer和AppServer之间的stream量通过防火墙,只有端口80打开
  • webserver外部网站在应用程序服务器上调用WCF服务。 这些WCF服务调用是完全未经身份validation的 – 但是对数据库服务器执行非常关键的数据更新。

我认为(如果我错了,请纠正我)妥协networking服务器将需要从外部世界沿端口443或80攻击 – 因此这将需要一个IIS漏洞攻击服务器。

问题

  1. 处理关键数据时这种configuration有多糟?
  2. 如果Web服务器受到攻击,是否有任何措施可以缓解其影响,并且在大多数情况下可以防止对WCF服务的任意调用?
  3. 是否有历史IIS漏洞的“典型”影响列表?

确保设置域和服务器隔离将确保2台服务器之间的stream量。 只要您的开发人员使用正确的注入预防技术,我可以看到能够调用WCF的唯一方法就是通过一个远程代码执行漏洞。 没有太多,即使没有打补丁,我想他们都使用相同的权利作为你的工人进程的身份(根据最佳实践应该被locking)。

我强烈build议您从模式和实践小组中查看WCF安全性指导原则 。实现WCF安全性(想到简单的消息签名)非常容易,不需要对通信进行身份validation(无论域和服务器隔离自动实现,不影响应用程序)

你错过了一个重要的观点。 攻击不仅是从外部进行的。 所以如果有人妥协了防火墙,他们可以调用WCF服务。 第二种情况是有人模仿成为networking服务器,这将欺骗防火墙,并有人会调用WCF服务。 既然你说的数据是至关重要的,风险大于authentication的成本。