IIS IP 地址限制 - 我可以在线依赖它吗?

信息安全 网络 网络服务器 iis
2021-09-06 18:19:11

有人告诉我,我在这里发帖可能比在 Stack Exchange 上发帖更幸运,所以这里是:

我正在寻找一种方法来锁定 IIS 中的第 3 方应用程序。这是一个网络服务,所以没有登录页面或任何东西,它是为在 VPN 环境中使用而设计的。我正在尝试在没有 VPN 的情况下将其上线,并且正在考虑为其添加某种安全性的方法。我需要将它限制在某些网络上,它是一种商业产品,所以我可能会说你需要在专用网络上(即不是公共 wifi)才能使用它。我的想法是在 IIS 中使用 IP 地址限制,并编写一个用户安装的应用程序,并让它每隔几分钟用他们当前的 IP 更新服务器,然后服务器会阻止除最近更新的之外的所有内容。

这会有多安全?这个想法有重大缺陷吗?或者在 IIS 中是否有更好的方法来做到这一点?

编辑:澄清一下-我无法修改该软件。它由 IIS 中的一些 Web 应用程序组成,即 WCF Web 服务。然后客户端计算机有一个连接到这些的程序。我无法编辑客户端程序或服务器,我只是希望通过在 IIS 上注入某种安全措施来允许或拒绝连接,或者可能结合我自己的自定义软件拦截数据包安装在客户端 PC 上进行身份验证。

2个回答

确实取决于您的威胁模型,Web 服务提供的信息和功能有多大价值?您担心哪种类型的攻击者和特定攻击?

IP 地址限制是最基本的保护形式,实际上并没有给您任何安全性。例如,通过代理绕过是微不足道的。此外,如果您将公司公共地址列入白名单,您将不知道该 NAT 后面的哪些机器正在连接。因此,如果它基本上是一项公共服务,或者您使用 IP 地址限制作为身份验证的纵深防御机制,那么这很好,否则您将得不到任何安全利益,也可能不这样做(为了额外的权衡管理和故障排除)。让用户安装任何带有故障排除和支持的东西通常是一个非常糟糕的主意。

如果它是一个有价值的 Web 服务,那么标准的身份验证方式是:

  • 通过证书进行相互身份验证。http://msdn.microsoft.com/en-us/library/aa292114%28v=vs.71%29.aspx这为您提供了强大的身份验证,并且无需管理密码。证书不能被暴力破解或猜测,您向第三方保证他们正在连接到真正的服务。您可以使用诸如startssl.com之类的东西来降低证书成本,但您必须发布、支持安装、续订、吊销证书

  • API 密钥 - 另一种最流行的方法是为 Web 服务的每个用户提供一个 API 密钥。这实际上是一个密码,具有密码的所有风险和好处。您需要足够的长度、复杂性、锁定/回退来减轻暴力破解和猜测风险

我会非常小心地将为内部公司环境设计的 Web 服务用于在 Internet 上通过 VPN 使用。我建议在执行此操作之前从应用程序和基础架构的角度对其进行安全性测试。跨站点脚本、SQL 注入和其他常见 Web 应用程序漏洞的可能性很高,尤其是在您使用 REST Web 服务时。

根据 OWASP 前十名(请注意,此链接不是最新的,因为随着时间的推移他们已经简化了 T10 项目)——不应依赖使用基于 IP 地址、IP 前缀或 DNS 名称的身份验证。这是一种危险的做法,因为 A) 它不与每个凭证绑定到一个人,并且 B) 它可以被欺骗、欺骗、代理或以其他方式提供给对手用于非法使用。

不要依赖欺骗性凭据作为唯一的身份验证形式,例如 IP 地址或地址范围掩码、DNS 或反向 DNS 查找、引荐来源标头或类似内容