msdeploy 代理服务能否在我们的服务器上打开攻击媒介?

Seb*_*ter 13 security msdeploy

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

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

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

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

msdeploy 在生产环境中使用的安全性如何?

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

Aug*_*ust 10

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

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

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

如果仍然需要直接从 Internet 获得 Web 部署功能,请说您的所有 Web 开发人员是否都远程工作,(我无法想象为什么直接要这样做随着 VPN 的广泛使用),您可以有一个 2 阶段的部署过程,您可以在其中设置一个隔离的 DMZ,其中包含一个启用 Web 部署的 IIS 7 框(与您的 Web 场的 DMZ 分开),并允许您的 Web 开发人员仅从 Internet 连接到该 DMZ 以远程部署更改。然后您可以在内部连接到该主机并在查看更改、测试等之后部署到您的其余 Web 服务器。尽管这种方法也不是没有风险 - 恶意用户最终可能会破坏 Web 部署功能,引入一些恶意代码在您不知情的情况下,您可能会在不知不觉中将其引入您的生产环境。