应用程序安全问题:伪造 IP 地址有多容易



我正在处理一个受防火墙保护的应用程序,并且只允许从某些IP地址(即应用程序Web服务器)进行访问。

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

我对网络的理解不是很好,因为它不是我的主题,但在我的脑海中,我编出了以下场景:

  • 有人知道我们其中一个应用程序服务器的 IP 地址,并希望伪造它以访问他知道侦听套接字和协议的另一个应用程序。

  • 因此,他更改了IP数据包的标头,以Web服务器IP作为传输器。

接下来会发生什么?

  • 答:他的ISP拒绝数据包并说"嘿,这不是从我那里分配给您的IP地址。

  • B:ISP将数据包传递到下一级(他的上行链路...

让我们假设ISP已被入侵或数据包未经检查就被传递(我不知道是否是这种情况)

接下来会发生什么?

  • 答:运营商拒绝数据包并说"嘿,该IP不在我们同意您操作的IP范围内! - 现在,如果我的网络服务器不是由我的攻击者入侵的同一ISP操作的 - 问题解决了

  • B:ISP 不检查数据包或遭到入侵并将其转发到其上行链路。

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

所以直截了当地说:想要伪造我的IP地址的攻击者需要破坏负责我的Web服务器运行的IP范围的同一ISP - 或者该ISP不进行数据包检查。

  • 这是对的吗?

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

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

(当然,我只是要求意识到风险并选择适当的保护!

我想象将路由站定位在街道一侧的某个小容器中,该容器仅由锁保护。进去。交换电缆或插入自己。

如果您知道自己在做什么,或者是否有一些加密的握手,密钥存储在建立经过身份验证的连接所需的真实办公室调制解调器上,这很可能会起作用吗?

我说的是当今有线互联网的标准。

最后一个想法:因此,如果我的源站服务器不是某个家庭ISP,其站点在街上易受攻击,我应该很安全,对吧?

我记得 NFS 服务器仅默认依赖 IP 身份验证。因为这很常见 - 是否有任何 NFS 服务器被伪造 IP 地址入侵的例子?

我意识到这个问题说得非常非常模糊。这是因为我不确定我在这里说的任何事情。我只是想在我认为洞穴吃东西的地方提供一些意见,以便可以确认或消除它们。

总的来说,我非常感谢您对该主题的任何评论和个人想法!

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

这个假设是不正确的,尽管你的确定程度很高。 "出口过滤",也就是这个名字,一般做。

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

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

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


1. 无论如何,这些天 - 情况并非总是如此。

局域网内,这取决于路由器/交换机/集线器的配置方式。但我认为欺骗应该经常是可能的。


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

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


如果响应将通过您的路由器,您可以伪造某人的 IP。因此,网络管理员可以伪造其局域网内的所有IP,ISP可以伪造其网络内的所有IP,而运营商可以在许多国际连接上伪造IP,前提是它们通过他路由。


最后,有可能滥用BGP来修改该IP通过您的计算机的路由。但不是每个人都可以访问 BGP,您可能需要成为 ISP 才能获得它。然后可能会检测到操作,因为 BGP 路由更改受到监控。

最新更新