msdeploy 代理服务是否会对我们的服务器造成攻击?

msdeploy 代理服务是否会对我们的服务器造成攻击?

我们正在评估使用 msdeploy Web 部署代理服务来自动部署到我们的生产服务器的情况。

我们无法发现的一件事是潜在的安全影响。

首先,我们的网络服务器当然是安全的(在防火墙和负载均衡器后面),因此只允许来自外部的 http(s) 流量。

尽管如此,Web 部署代理与 IIS(唯一面向外部的东西)集成运行,因为它可以通过 http(s) 访问。因此,我们担心可能会通过该 IIS 上托管的 Web 访问代理 - 从而获得对我们所有 Web 的读写访问权限。

msdeploy 在生产环境中使用有多安全?

更新:生产网络服务器正在运行 IIS7。

答案1

我使用它已经有一段时间了,而且我只在 IIS 6 上使用它,它不包含 Web 管理部分。您可以修改远程管理 URL 和端口,并在外部防火墙上阻止它。参见:自定义和保护远程服务。它的主要安全机制似乎是用户帐户安全,但正如您所说,这一切都在 IIS 中,因此 IIS 漏洞可能会导致安全措施在修补之前失效。仅出于这个原因,我会犹豫是否允许从互联网更新 Web 内容,但这取决于您的组织的安全要求与您的 Web 开发人员的需求。

为了避免将 Web 部署服务暴露给互联网,您可以执行以下操作:

  • 让默认网站侦听非 NAT 或不属于负载平衡 IP 范围的内部专用 IP
  • 您可以让默认管理网站仅在本地主机上监听,然后编写一个脚本,调用每个主机上的 msdeploy 可执行文件在本地运行(而不是使用 msdeploy 从单点远程连接到所有主机)
  • 让你的负载均衡器过滤试图命中 Web 部署 URL 的外部请求(例如https://服务器:8081/MSDeploy
  • 拥有一个指定的(内部)部署主机,所有 Web 部署都来自该主机,并且只允许该 IP 连接到部署 URL 上的 Web 服务器(阻止任何不是来自单个部署主机)

如果仍然需要直接从互联网上提供 Web 部署功能,假设你所有的 Web 开发人员都在远程工作,(我无法想象为什么这是必要的直接地由于 VPN 的广泛使用,您可以采用两阶段部署流程,即设置一个隔离的 DMZ,并在其中安装启用了 Web Deploy 的 IIS 7 框(与您的 Web 场的 DMZ 分开),并允许您的 Web 开发人员从 Internet 仅连接到该 DMZ 以远程部署更改。然后,您可以在内部连接到该主机,并在检查更改、测试等之后部署到其余的 Web 服务器。但即使这种方法也并非没有风险 - 恶意用户最终可能会破坏 Web 部署功能,在您不知情的情况下引入一些恶意代码,而您可能会在不知情的情况下将其引入到您的生产环境中。

答案2

答案很简单。是的,任何计算机上运行的任何东西都会打开攻击媒介。始终应该假设软件中存在漏洞。缓解措施是一个关键因素,限制对网络、用户、计算机、IP 等的访问。还要检查物理访问。

如果您的防火墙可以处理一天中特定时间的规则,您还可以限制允许更新的时间。

我建议限制 Web 服务器上的用户,即谁可以进行更新。(您可能已经这样做了)然后我会使用防火墙来限制哪些网络(IP)可以访问管理界面。然后如果支持,我会只允许在工作时间内处理更新(通过防火墙规则)。请注意,您可以随时让防火墙管理员编辑紧急更新规则。最后,我会留意 Web 部署代理中的已知漏洞并进一步缓解,或者禁用它,直到可以实施修复。

相关内容