29

我计划部署一个包含敏感数据的内部应用程序。我建议我们把它放在一台不暴露在一般互联网上的机器上,只暴露在我们的内部网络上。IT 部门拒绝了这一建议,称为一个应用程序留出一整台机器是不值得的。(该应用程序有自己的域以防万一,但我被告知他们不能阻止基于 URL 的请求。)

在应用程序中,我对其进行了编程,使其仅在请求来自内部 IP 地址时才尊重请求,否则它只会显示一个页面,上面写着“你不能看这个”。我们的内部地址都有不同的模式,所以我正在根据正则表达式检查请求 IP。

但我对这种策略感到紧张。这对我来说有点笨拙。这是相当安全的吗?

4

13 回答 13

20

IP过滤总比没有好,但它有两个问题:

  1. IP 地址可以被欺骗。

  2. 如果内部机器被攻破(包括客户端工作站,例如通过安装木马),那么攻击者可以将其用作跳转主机或代理来攻击您的系统。

如果这确实是敏感数据,它不一定需要专用机器(尽管这是最佳实践),但您至少应该以某种方式验证您的用户,并且不要在同一台机器。

如果它真的很敏感,请让安全专家来审查你在做什么。

编辑:顺便说一句,如果可以的话,放弃正则表达式并使用 tcpwrappers 或操作系统中的防火墙功能(如果有的话)。或者,如果您的应用可以使用不同的 IP 地址,请使用防火墙阻止外部访问。(如果您没有防火墙,那么您也可以放弃并将您的数据通过电子邮件发送给攻击者:-)

于 2009-01-12T22:02:54.097 回答
12

我宁愿使用 SSL 和一些证书,或者简单的用户名/密码保护而不是 IP 过滤。

于 2009-01-12T21:58:47.273 回答
5

这完全取决于您真正需要它的安全性。

我假设您的服务器是外部托管的,并且没有通过 VPN 连接。因此,您正在检查您的 HTTPS(您使用的是 HTTPS,不是吗??)站点的请求地址是否在您自己组织的网络中。

使用正则表达式匹配 IP 地址听起来很可疑,您不能像其他人一样使用网络/网络掩码吗?

它真的需要有多安全?IP地址欺骗并不容易,被欺骗的数据包不能用于建立HTTPS连接,除非它们还操纵上游路由器,使返回的数据包能够重定向到攻击者。

如果您需要它真正安全,只需让您的 IT 部门安装 VPN 并通过私有 IP 地址空间进行路由。为这些私有地址设置 IP 地址限制。即使有人破坏了上游默认网关,通过基于主机的 VPN 进行路由的 IP 地址限制仍然是安全的。

于 2009-01-12T22:20:37.277 回答
5

如果您的应用程序正在检查 IP 地址,那么它非常容易受到攻击。那时,您在路由器上没有任何保护,而这正是 IP 过滤真正需要的地方。您的应用程序可能正在检查发送 IP 地址的 HTTP 标头信息,这非常容易被欺骗。如果您将 IP 地址锁定在路由器上,那就另当别论了,它将为您提供一些真正的安全性,即谁可以从哪里访问该站点。

如果您正在做的是在内部访问应用程序,那么 SSL 不会给您带来太多好处,除非您试图保护来自组织内部各方的信息,或者您需要客户端证书。这是假设您永远不会从外部连接访问该站点(VPN 不计算在内,因为您正在通过隧道进入内部网络并且在那时技术上是其中的一部分)。它也不会受到伤害,设置起来也不难,只是不要认为它会解决你所有的问题。

于 2009-01-13T02:49:13.410 回答
3

正如其他人所提到的,IP 白名单容易受到 IP 欺骗和中间人攻击。在 MITM 上,请考虑某些交换机或路由器已被入侵,并且会看到“回复”。它可以监视甚至更改它们。

还要考虑 SSL 加密的漏洞。根据努力,这也可以在 MITM 中被挫败,以及众所周知的重用素数等错误。

根据您数据的敏感性,我不会满足于 SSL,而是会使用 StrongSWAN 或 OpenVPN 以获得更高的安全性。如果处理得当,这些将不太容易受到 MITM 的攻击。

仅依赖白名单(即使使用 SSL)我会考虑“低等级”,但可能足以满足您的需求。只要敏锐地意识到其中的含义,不要落入“虚假安全感”的陷阱。

于 2016-02-06T12:04:51.493 回答
2

如果是受IP地址限制,那么虽然他们可以欺骗IP地址,但他们将无法得到回复。当然,如果它暴露在互联网上,除了针对应用程序之外,它仍然可能受到攻击。

于 2009-01-12T22:00:04.167 回答
2

仅仅因为您的所有内部 IP 都与给定的正则表达式匹配,这并不意味着与给定正则表达式匹配的所有 IP 都是内部 IP。因此,您的正则表达式是可能的安全故障点。

我不知道您使用什么技术来构建您的站点,但如果它是 Windows/ASP.net,您可以在发出请求时根据其 Windows 凭据检查请求计算机的权限。

于 2009-01-12T22:03:14.690 回答
2

像所有安全性一样,它本身是无用的。如果您必须将其放在面向公众的网络服务器上,请使用 IP 白名单、基本的用户名/密码身份验证、SSL、适当监控设置以及最新的服务器应用程序。

也就是说,让服务器可公开访问,然后将其限制为仅内部 IP 地址有什么意义?看起来它基本上是在重新发明 NAT 免费为您提供的东西,并且使用仅限内部的服务器,而且您必须担心网络服务器漏洞等。

让它在外部可访问,您似乎并没有获得任何好处,而且让它只在内部访问有很多好处。

于 2009-01-12T22:15:08.783 回答
1

我对资源问题的第一个想法是询问是否无法使用虚拟机发挥一些作用?

除此之外 - 如果您检查的 IP 地址是您知道的 IP 属于应该访问应用程序的计算机或在本地 IP 范围内,那么我看不出它是如何不够安全的(我实际上正在使用项目上的类似方法 atm,尽管将站点保持“隐藏”并不是非常重要)。

于 2009-01-12T22:01:31.260 回答
1

一个合适的防火墙可以防止 IP 欺骗,而且它不像说欺骗你的来电显示那么容易,所以 /not/ 因为欺骗危险而使用 IP 过滤的论点有点过时了。安全性最好分层应用,因此您不仅仅依赖于一种机制。这就是为什么我们有 WAF 系统、用户名+密码、第 3 层防火墙、第 7 层防火墙、加密、MFA、SIEM 和许多其他安全措施,每一个都增加了保护(成本增加)。

如果这是您正在谈论的 Web 应用程序(从您的问题中不清楚),那么解决方案相当简单,无需高级安全系统的成本。无论使用 IIS、Apache 等,您都可以将与您的应用程序的连接限制为特定的目标 URL 以及源 IP 地址 - 无需更改您的应用程序 - 在每个应用程序的基础上。防止您的应用程序基于 IP 的 Web 浏览,再加上 IP 源限制,应该可以为您提供重要的保护,防止随意浏览/攻击。如果这不是一个网络应用程序,您必须更具体,以便人们知道基于操作系统的安全性(正如其他人所提议的那样)是否是您唯一的选择。

于 2015-09-16T21:32:14.707 回答
0

您的安全性取决于您最薄弱的环节。从总体上看,欺骗 IP 是小孩子的游戏。使用 SSL 并要求客户端证书。

于 2009-01-13T02:53:06.850 回答
0

首先根据管理关系而不是技术来区分不同类型的 IP vpn是有用 的,它连接节点。一旦定义了关系,就可以使用不同的技术,具体取决于安全性和服务质量等要求。

于 2009-03-06T17:08:01.200 回答
0

也许这会有所帮助?我一直在寻找相同的答案,并从 Red Hat Linux Ent 中找到了这个 stackoverflow 以及这个想法。我会尽快尝试的。我希望它有所帮助。

iptables -A FORWARD -s 192.168.1.0/24 -i eth0 -j DROP

其中 0/24 是您要保护的 LAN 范围。这个想法是阻止面向“互联网”(转发)的设备能够欺骗本地 IP 网络。

参考:http ://www.centos.org/docs/4/html/rhel-sg-en-4/s1-firewall-ipt-rule.html

于 2013-07-19T12:21:33.627 回答