公司如何减少数据包欺骗的风险?应该存在什么解决方案,但不存在?

信息安全 网络 防火墙 ip欺骗 路由
2021-08-23 02:38:56

我想了解存在(或应该存在)哪些反数据包欺骗技术来验证入站数据包。也许这就像在网络边界实施的 Cisco ACL(防火墙规则)一样简单;但是我认为这个问题可能涉及更多。

通常,我们会从以下思路开始阻止源 IP:

  • 丢弃未使用的 IP 范围(每个接口)
  • 丢弃正在使用的 IP 范围,但不应在该接口上显示为发件人

例如,您的公共接口可能配置为删除以 10.x 开头的所有源地址。您还可以使用 172.x 网络路由 192.x 网络。由于您可以完全控制每个地址空间,因此您可以控制哪些欺骗越过路由器的边缘。

但是,阻止来自 Internet 的流量存在问题。

来自您的 ISP 的入站流量可能没有将规则应用于源地址。似乎出于 ISP 的懒惰和节省成本的努力,IP 欺骗是被允许的,或者可能有正当的技术原因(为了启用一些奇怪的 IP 移动功能)。但是,我不认为 IP 欺骗是互联网绝大多数用户的相关技术。

如果 IP-Spoofing 确实是互联网的“功能”,那么我认为该技术应该被贬低,并且重新配置这种罕见的软件以使用更高级别的协议。(请在此链接讨论为什么需要 IP 欺骗

[问题]

  • 拥有互联网连接的公司如何减少 IP 欺骗的风险?它将如何实施?

  • 应该存在哪些替代方案,而不存在?

我的问题的第二部分是来自一个理想主义的“绿地”希望我有 IP 欺骗在互联网上被削弱或阻止的地方。我认为减少 IP 欺骗也将显着减少遭受多种类型攻击(DDOS、UDP/DNS 黑客攻击等)的风险。也许它正在利用实时路由表、基于订阅的服务或其他一些技术。

4个回答

在一般情况下,很难区分带有欺骗地址的数据包。大多数系统(服务器或网络设备)只有一个 NIC,因此所有流量都将进入同一个端口。静态 MAC 条目可以帮助减轻附带损害,但很快就会成为管理的噩梦。您可以检测和过滤欺骗流量的少数几个地方之一是路由器。

毫无疑问,您的网络边界是进行此过滤的最简单的地方。在这里,您应该非常清楚 IP 地址应该流向哪个方向。我会首先阻止所有 Bogon 地址。如果您使用的是 BGP,Cymru 团队在Bogon Route Server Project上有一篇很好的文章。还包括用于阻止您自己的地址空间进入外部的 ACL,ASA 示例(用您的分配替换 XXXX,用您的网络掩码替换 YYYY):

access-list outside_access_in extended deny ip X.X.X.X Y.Y.Y.Y any 

在主机级别制定严格限制防火墙规则。在这里,您应该严格定义受众和服务,然后是默认拒绝。

现代防火墙和路由器可以根据各种标准进行过滤(正如其他人所指出的):

  • 私有地址范围 - 这些不应该在公共界面上看到
  • 内部地址不应来自外部(入口过滤)
  • 出口过滤:组织应该知道哪些内部地址对离开网络的数据包有效
  • 包提到的Bogons。
  • 内部地址应该很容易验证,因为您可以将 MAC 地址与 IP 地址匹配(每个子网/广播域)。
  • 路由器:使用对称路由,如果源地址路由出的接口与传入的接口不同,则它是欺骗的,或者您不是对称的。
  • 防止 DNS 序列攻击 - 确保序列号是随机的 - 将欺骗对 DNS 攻击的影响降至最低
  • 防止外部访问广播地址(一般安全,smurf 攻击)

似乎出于 ISP 的懒惰和节省成本的努力,IP 欺骗是允许的,或者可能有正当的技术原因

技术/成本原因是一些核心路由器处理如此大量的流量,以至于会影响过滤性能(至少在 5 年前)。

我认为减少 IP 欺骗也将显着减少一个人遭受多种类型的攻击(DDOS ......)

DDoS 通常不使用欺骗。没有必要保护进行攻击的僵尸。恕我直言,互联网范围的反欺骗并没有起飞,因为成本远远超过了攻击缓解。使用欺骗的有针对性的攻击者可能具有使用许多其他方法的技能,并且可以轻松访问僵尸并使用有效的 IP 地址。(虽然我在这里过时了)

附加参考

如果您有兴趣管理到一个或多个物理或虚拟接口的网络流量,那么有许多可行的解决方案,但是,使用防火墙来实现这一点非常简单。例如,如果我有一台机器有两个物理接口连接到同一个网络,而我只想在其中一个上接受端口 80 流量,那么我可以创建一个防火墙规则,在这种情况下为 iptables,如下所示:

DROP all - anywhere non-80-IP tcp dpt:80

显然,这是一个非常粗略的示例,但不会将任何返回数据包发送到端口 80 上通过 TCP 接收到 IP 指定的接口的任何请求。

当然,如果您控制或有权访问相关网络的上游路由器,那么简单地不将不需要的流量(上例中的 TCP 端口 80)路由到相关接口会更有意义。显然这不会限制内部网络访问。

如果您对火星控制感兴趣,那么有几个选项,但另一个防火墙规则构造为:

DROP all - 10.0.0.0/8 iface-IP

这将丢弃所有来自 10.0.0.0/8 网络的数据包,不发送任何响应。显然,对于您的特定网络配置,这可能过于严厉,但只需进行最小的调整即可消除相关网络的 martians。

虽然我不是一个网络专家(我已经忘记了我在开发大型供应商防火墙的团队时所知道的大部分内容),但我似乎认为至少大多数防火墙(可能也是路由器) ) 不会在接口之间自动路由,除非以这种方式明确设置。
任何自我尊重的防火墙或路由器都不应该路由来自错误接口的数据包。但是您应该能够轻松地验证规则...

同样,这是假设您在网络边界而不是主机上进行此检测。