互联网上的 IP 地址欺骗是如何工作的?谁能做到?

信息安全 ip ip欺骗 国家安全局
2021-09-01 19:49:37

最近有人告诉我,NSA可以通过在 Internet 上使用 IP 地址欺骗来冒充任何他们想要的人。但是这将如何工作以及它在多大程度上是真实的呢?

世界上的任何ISP都可以欺骗他们想要的任何 IP 地址,还是有某种保护措施来防止这种情况发生?

4个回答

IP Spoofing不是IP Hijacking,它会导致阅读本文的任何人感到困惑。IP Spoofing 的最低限度/基本解释也称为模拟。让我们用 ASCII 来看看它做了什么,以及它是如何发生的:

You (1.2.3.4) --> connect to your bank --> Bank (2.2.2.2)

在欺骗中,如果我在您的网络上,我可以假装成为我想要的任何人:

Me (1.2.3.4) to you --> I am 2.2.2.2 --> You
Me (1.2.3.4) to you --> I am Google.com --> You

这是一个有争议的问题,因为如果您回复,我将永远看不到回复,我不是 2.2.2.2 也不是 Google。这称为盲目欺骗为了冒充,我想在你不知情的情况下冒充你的银行,因为我想偷你的钱。因此,我需要查看您的回复和银行的回复。现在我必须执行多个模拟。我必须向你假装我是你的银行,我必须向你的银行假装我是你:

Me (1.2.3.5) --> to your ROUTING handler (be it a router or your routing table)
Me (1.2.3.5) --> I am 2.2.2.2 --> You
Me (1.2.3.5) --> I am 1.2.3.4 --> Your bank

为此,我必须在您的基础架构中。将其视为代理服务器。使用代理服务器的连接是相同的:

Me (1.2.3.5) --> proxy server (1.2.3.10) --> Bank (2.2.2.2)
Bank responds --> proxy server --> Me

流量需要往返。IP 劫持场景中,数据被中继,因此没有欺骗(我可以代理查看所有内容)BGP 劫持可以监视线路。然后,网络上执行劫持的人可以执行欺骗。

现在在 ISP/NSP/NAP 的情况下,政府可能会采取这种方法:

You (1.2.3.4) --> ISP (1.2.3.1 default route) --> Bank (2.2.2.2) # Normal connection

在上面,这将是发生的非篡改会话。比如说一个 NSA 窃听的网络,这就是会发生的事情:

You (1.2.3.4) --> ISP (1.2.3.1) --> internal ISP proxy <-- NSA (1.2.4.1) --> Bank (2.2.2.2)

从您的角度来看,您连接到您的 ISP,然后连接到您的银行。您永远不会(也永远不会)看到代理发生。这是利用像Narus这样的公司创建的系统进行的那种欺骗/伪装/冒充,这些公司使用 AT&T 的窃听器来窃听主要连接。

像这样的窃听规模几乎没有什么可做的,因为政府机构有能力使用 SSL 证书和其他手段来阻止您了解正在发生的事情。VPN 隧道不会阻止它,因为您受制于您的供应商,而手令就是手令。

不需要“BGP 劫持”,BCP 过滤甚至可以进入这个讨论,因为 BCP 过滤不会对抗上述代理示例。BCP 过滤包括欺骗、代理和劫持。如果攻击者设法操纵您的操作系统上的路由表,那么 BCP 就是一个争论点。

IP 欺骗意味着使用不属于您的源地址创建 IP 数据包并将其发送到某个目的地。为此,路径上的路由器必须允许来自错误来源的流量。BCP38描述了 ISP 可以用来防止来自其网络的欺骗性 IP 流量的多种技术(过滤、uRPF)。

由于数据包的源地址被欺骗,返回的流量不会到达欺骗数据包的主机,而是到达具有欺骗 IP 地址的主机。这会导致 TCP 等协议中断,因为这需要三次握手。我认为 IP 欺骗在 NSA 的工具列表中并不重要,因为它的观察用途非常有限。

IP 欺骗主要用于 DDoS 攻击:如果您能想出一种方法来发送一个小的 UDP 请求(例如 DNS 查询),并将 DDoS 目标的 IP 作为欺骗的源地址到发送大答案的主机(例如一个大型的 DNSSEC 签名的 DNS 回复),您可以轻松地生成大量流向目标的流量。

tldr:是,否(两者:直到 IPSec)

我将您的问题理解为

某人(例如 ISP)可以在 IP 级别冒充互联网主机吗?如果是这样,如何以及如何减轻这种情况?

正确的术语不是 IP 欺骗,正如 Teun 在他的回答中所说,欺骗发送到主机的数据包的源地址;它们对 TCP 连接最无用,但可以与 UDP 一起使用,并且经常被滥用于 DDoS 攻击。

正确的术语是劫持,其余的答案将假定您是这个意思。

答案

这取决于目标。有多种方法可以在 TCP/IP 级别上模拟另一台主机。然而,这些确实需要访问基础设施。

  • 如果特定主机成为此事件的受害者,他们的 ISP 可以将“欺骗”IP 的流量重新路由到他们选择的机器,而不影响 Internet 的其他部分。

    因此,这种攻击很难在 ISP 网络之外追踪。如果 ISP 与三信机构合作并获得授权,这将是最简单的方法。

  • 如果一个特定的 IP 应该被很多人欺骗,边界网关协议可用于使 Internet 上的其他路由器重新路由该 IP 的流量给你 - 只要你有足够的资源。

    我认为中国的防火墙(做了/做了?)这为一些著名的互联网平台建立了一个大规模的 MiTM,但我目前找不到任何链接。

由于 TCP/IP 技术(和 BGP)主要依赖于信任(并且已经很老了),因此没有任何东西可以阻止这种情况。然而,IPSec旨在缓解此类问题,但目前尚未得到广泛支持。

此外,可以在更高级别部署TLS ,以缓解 IP 层上方 ISO/OSI 模型的 TCP 分支中的此问题。

正如其他人所说,IP 欺骗涉及伪造您发送的 IP 数据包的源地址。我注意到普遍的共识是,除非您与您所冒充的 IP 在同一个网络上,否则不可能得到答复。

我认为值得一提的是,在黑客卫星连接的情况下,同一个网络可能是一个非常大的区域。