通过阻止未使用的端口进行出口过滤

网络工程 acl
2022-02-04 01:53:47

我们公司想要阻止数据泄露。他们希望控制从未使用端口流出的出站流量。我在我们的边缘防火墙上进行了流量分析,以了解我们的应用程序使用了哪些端口。有大约 2000 个端口用于传输流量(到外部网络或 Internet),这意味着一些 65535 - 2000 -1024(保留端口) 62511 个端口未使用,因此可以被阻止,或者我们可以将访问控制列表(ACL)设置为仅允许 2000+1024 个端口 = 3024 个端口并阻止其余端口。我知道使用 62511 ACL 规则来阻止未使用的端口比编写 3024 ACL 规则来将使用的端口列入白名单要长得多。

我了解民族国家攻击者可以使用隧道通过常用端口(例如 443)泄露数据,但我们正试图限制数据泄露。我们使用 Cisco 设备和 ASA 防火墙。

我知道在 ACL 中使用 range 命令,我可以对连续端口进行分组,例如

对象组服务 CLOSE-PORTS tcp 端口对象范围 2000 3000 端口对象 eq 80 端口对象 eq 443

访问列表 TEST 扩展许可 tcp 主机 internal_host 主机 outside_network_host 对象组 CLOSE-PORTS

其中 internal_host 和 outside_network_host 可以是带有子网掩码的 IP 地址,例如 10.0.0.1/24

  1. 将端口列入黑名单(阻止未使用的端口)更好还是列入白名单(仅允许来自端口的出站流量)更好?

  2. 如何确保 ACL 不会太长而影响路由器/防火墙性能?有没有办法减少 ACL 长度?

  3. 有关如何执行此操作以防止数据泄露的任何其他建议都会有所帮助。

谢谢

3个回答

您需要做的第一件事是对公司内部的主机/网络进行分类:

  1. 桌面主机(员工用于网上冲浪)
  2. 数据中心主机(由特定应用程序用于特定目的)
  3. 合规主机(PCI、HIPPA、FERPA)

数据中心和合规主机是最容易应用出口规则的。由于这些主机由特定应用程序使用,您可以(最终,在日志和流量分析之后)阻止对 Internet 的出口访问,特定应用程序所需的特定套接字除外。我的新数据中心子网的“标准数据中心 ACL”包括默认拒绝出口规则,允许访问其他数据中心网络,但拒绝出口访问桌面和互联网网络。

(我的标准数据中心 ACL 也有 datacenter->datacenter 入口规则,这里不讨论)。

对于桌面网络,应用出口规则是不可行的。一旦你允许人们上网,你就无法阻止它。但是你可以做两件事:

  1. 使用 netflow 数据检测大型出口数据流。一些供应商销售产品以寻找从 netflow 和网络分流数据中泄露的数据。
  2. 防止桌面网络在未经身份验证的情况下访问数据中心网络(我喜欢仅为 IT 人员提供单独的“数据中心 VPN”,桌面网络被视为数据中心安全范围之外)

合规主机有特殊要求。我将在接下来的讨论中假设 PCI,因为这是我所熟悉的。

不允许PCI 主机不受限制地访问 Internet。大多数 PCI 审计员所做的一项测试是尝试从范围内的主机 ping 互联网。如果他们可以 ping 到需要补救的互联网(或网上冲浪)。

出于商业原因,特定目的地的特定出口套接字是可以的(您必须能够访问您的信用卡处理器)。

这为您提供了 3 个安全级别,按递增顺序排列:

  1. 桌面主机
  2. 数据中心主机
  3. 合规主机(希望在数据中心的受限部分,但公共服务台人员获取客户信用卡号码是一个困难的案例)。

防止#2 和#3 从出口访问互联网,并限制安全级别之间的访问。

自然,除了面向公众的互联网服务外,应该已经阻止了所有 3 个来自互联网的入口访问。PCI 合规区域明确要求有状态防火墙。

通常,大多数数据 exfil 使用带有标准 443 端口的 HTTPS。阻止“外来”端口可能只会增加您的支持电话。

如果您确实想过滤不常见的端口,请不要忘记建立一个简单的程序,以允许用户将所需的端口添加到白名单中,即使是暂时的。

您打算如何将通过 Wetransfer、Dropbox 等泄露的数据与合法使用区分开来?

将端口列入黑名单(阻止未使用的端口)更好还是列入白名单(仅允许来自端口的出站流量)更好?

最佳做法是允许/将已知流量列入白名单并阻止其他所有内容。

如何确保 ACL 不会太长而影响路由器/防火墙性能?有没有办法减少 ACL 长度?

这可能会变得棘手。如果您需要精细控制,您可能需要定期缩短/优化 ACL。如果它们保持良好的结构,那应该是可以管理的。

有关如何执行此操作以防止数据泄露的任何其他建议都会有所帮助。

具有良好 DLP 功能、SSL 深度检查、精细应用程序感知和用户身份验证的良好防火墙将使任务比简单的基于端口的过滤更简单并且可能更成功。但是,DLP 需要从每个客户端开始——控制和管理应用程序和端口,包含威胁和感染。防火墙只能是您总体战略的一部分。

描述您的建议的另一种方式是允许从您的网络到 Internet 上任何地方的流量,只要它绑定到 2000 个端口中的一个,其中许多端口是常用的。 由于攻击者可以轻松控制 Internet 主机(例如通过租用服务器),因此绝对可以保证访问您的网络的攻击者能够找到退出的方法。

听起来这可能是您第一次尝试开发更精细的网络安全策略。我建议您与系统管理员一起为每种类型/主机组制定策略。

如果没有更多粒度,您只能(尝试)围绕整个网络上最不安全或最健谈的主机设计 ACL 策略。

我希望这有帮助。