2011-05-21 132 views
3

我正在处理受防火墙保护的应用程序,并且只允许从某些IP地址(这是应用程序Web服务器)进行访问。应用程序安全问题:伪造IP地址有多容易?

它有点微妙,引入另一个认证/保护层会很麻烦。

我的网络的理解是不是很大,因为它不是我的问题,但在我的脑海我提出了以下方案:

  • 有人知道我们的应用程序服务器的IP地址和要假冒它来访问他知道监听套接字和协议的其他应用程序。

  • 因此,他改变了他的IP数据包的标题,使Web服务器IP作为发送器。

接下来会发生什么?

  • 答:他的ISP拒绝数据包并说:“嘿,那是不是你离开我分配的IP地址。” - Problema解决

  • B:该ISP传递到下一个级别的数据包(其上行链路...)

让我们假设的ISP已经受损或数据包被传递,而不检查(我不知道是否是这种情况)

接下来会发生什么?

  • 答:承运人拒绝数据包并说:“嘿,那IP是不是在我们同意你所操作的IP范围!” - 现在,如果我的网络服务器不是由我的攻击者所攻击的同一ISP运营的 - 问题已解决

  • B:ISP不检查数据包或被盗用,并将其转发给他的上行链路。

现在我很确定IP地址在通过路由器时被检查和过滤。否则,这将是完全无政府状态。

所以说得直白:一个想要伪造我的IP地址的攻击者需要破坏我的Web服务器负责运行的IP范围的非常相同的ISP,或者这个ISP不会执行数据包检查。

  • 这是正确的吗?

好吧,现在我想象我的服务器位于办公室,它的ISP是一个区域性有线电视公司。

将数据包从我的IP地址发送到另一个互联网IP需要什么步骤?

(当然,我只是要求了解风险并选择适当的保护!)

我想象一下,路由站通常位于街道旁边的一个小容器中,而这个小容器只受锁的保护。去那里。交换电缆或将自己插入。

如果您知道自己在做什么,或者是否存在使用真实办公室调制解调器上存储的密钥进行一些加密握手,那么建立经过身份验证的连接需要这种方式吗?

我在谈论今天的有线互联网标准。

最后一个想法:所以如果我的原始服务器不是某个家庭的ISP,它的站点在大街上容易受到攻击,我应该很安全,对吧?

我记得NFS服务器只依赖IP身份验证作为默认设置。因为这很常见 - 是否有任何NFS服务器因伪造IP地址而被黑客攻击的例子?

我意识到,这个问题是非常非常非常迷惑。这是因为我不确定我在这里说什么。我只是想给出一些我认为洞穴食物可能存在的意见,所以他们可以被证实或消除。

总的来说,我很感激任何评论和你对这个问题的个人想法!

回答

5

现在我很确定IP地址在通过路由器时被检查和过滤。

这个假设是不正确的,尽管你的水平是确定的。 “出口过滤”,这就是这个名字,一般是不是完成。

针对IP地址广泛欺骗的主要保护措施是,攻击者不会收到任何响应数据包 - 它们都将被路由回合法使用被欺骗IP地址的主机。这种攻击被称为“盲目欺骗”,因为攻击者正在盲目工作。

为了在TCP连接上发送数据,您必须能够完成TCP“三次握手”。这需要知道对端使用的初始序列号 - 并且由于TCP初始序列号被合理地随机选择,所以这可以防止盲目欺骗攻击能够做到这一点。 (还要注意,这不是而是适用于UDP-没有某种应用层预防,UDP由于盲目欺骗而面临重大风险)。

如果攻击者能够看到回复(例如,因为他正在嗅探服务器的上行链路或本地网络),那么这也不适用 - 在这种情况下欺骗TCP连接不仅是可能的,不重要的。


1.无论如何 - 这并非总是如此。

+0

我很清楚你知道你在说什么。谷歌在谷歌上通过TCP进行IP欺骗时会带来多少垃圾,真是太棒了。谢谢 – wlf 2013-05-02 18:53:02

+1

@wlf:是的,它很可能是日志中的地址对应于正在进行连接的实际机器 - 也就是说,该机器可能是受攻击者入侵并用于启动的第三方机器攻击。 – caf 2013-05-03 03:49:23

1

在局域网内部,它取决于您的路由器/交换机/集线器如何配置。但我认为欺骗应该可能经常发生。


我不认为IP地址被检查。因此您可以发送带有伪造发送方IP的UDP数据包。但是你不会收到答案,因为服务器会将它发送给该IP的真正拥有者。

这意味着你不能简单地伪造TCP中的IP,因为建立连接需要握手。


如果响应会通过路由器,您可以伪造某人的IP。因此,网络管理员可以伪造他局域网内的所有IP,他网内的ISP所有IP,并且运营商可以在许多国际连接上伪造IP,只要他们通过他路由。


最后有滥用BGP修改路线为IP要经过计算机的可能性。但不是每个人都可以访问BGP,你可能需要成为一个ISP来获取它。然后,可能会检测到操纵,因为BGP路由更改受到监视。

+0

这是非常有趣的。所以底线是这个漏洞是一个中间人的攻击。它在适当的时候会使例如基本http认证无效。所以我可以依靠ip身份验证到目前为止,但如果我想进一步使它更进一步我需要执行加密与共享密钥或异步与确认的公钥。你同意吗? – 2011-05-21 13:18:28

+0

如果几个不相互信任的人(但信任路由器/代理)共享IP(NAT,代理,...),那么IP认证失败,但攻击者仍然不能拦截TCP连接。 – CodesInChaos 2011-05-21 14:04:07

+0

我只是使用https与已知的公钥。这对公共/不可信WLAN也有帮助,这是一种比较常见的情况。 – CodesInChaos 2011-05-21 14:07:18