我应该对外部 IIS Web 服务器访问未经身份验证的内部 wcf 服务有多警惕?

我应该对外部 IIS Web 服务器访问未经身份验证的内部 wcf 服务有多警惕?

环境:

  • Web 和应用服务器是 Windows Server 2003 Enterprise/IIS 6
  • Web 服务器位于防火墙后面 - 端口 80 和 443 向外界开放。
  • Web 服务器和 AppServer 之间的通信经过防火墙,并且只开放 80 端口
  • Web 服务器外部网站调用应用服务器上的 WCF 服务。这些 WCF 服务调用完全未经身份验证 - 但对数据库服务器执行非常关键的数据更新。

我假设(如果我错了请纠正我)要破坏网络服务器就需要从外界沿端口 443 或 80 进行攻击 - 因此需要利用 IIS 漏洞来破坏服务器。

问题

  1. 处理关键数据时这种配置有多糟糕?
  2. 如果 Web 服务器受到攻击,有什么办法可以减轻其影响,并且在大多数情况下可以防止任意调用 WCF 服务?
  3. 是否有历史 IIS 漏洞的“典型”影响的列表?

答案1

确保域和服务器隔离设置将保护 2 个服务器之间的通信。只要您的开发人员使用正确的注入预防技术,我认为能够调用 WCF 的唯一方法就是通过远程代码执行漏洞。这些漏洞并不多,即使未修补,我认为它们都使用与您的工作进程身份相同的权限(根据最佳实践,应该锁定)。

我强烈建议你看一下WCF 安全指南从模式和实践小组来看,为 WCF 实现安全性相当容易(想到了简单的消息签名),不需要对流量进行身份验证(但是域和服务器隔离会自动实现这一点而不会对应用程序产生影响)

答案2

您忽略了一个重要点。攻击不仅仅来自外部。因此,如果有人破坏了防火墙,他们就可以调用 WCF 服务。第二种情况是,有人模仿 Web 服务器,这将欺骗防火墙,然后有人会调用 WCF 服务。由于您说数据至关重要,因此风险大于身份验证的成本。

相关内容