应该如何创建传出连接白名单?

信息安全 防火墙 港口
2021-09-05 06:41:17

我看到我之前的问题已关闭,因为为什么要使用防火墙阻止传出网络流量?. 每个人都同意的答案提到了阻止传出连接的价值(以限制恶意软件的 call-home-and-get-additional-instructions 能力),但没有那么多使用端口白名单的有效性,其中包括HTTP 和 HTTPS。这个新问题要求在该领域给予更多关注。

显然传入的连接必须被阻止。(地址+端口组合的白名单除外 - 例如,如果您在网络上运行网络服务器)

要求:假设必须允许网页浏览(保持 HTTPS 和 HTTP 和 DNS 开放)......下面的分析是否正确?(请记住,以下所有这些都是除了 IP 地址的白名单,这对于阻止 DNS 和 SMTP 很有用,但对于阻止 HTTP 和 HTTPS 是不可接受的)

  • 限制 SMTP将具有重要的实际价值
  • 限制 DNS会有一点实际价值
  • 拥有一些端口白名单并阻止所有其他端口具有一些真正的价值,因此只是“弥补”端口的机器人编写者将不会成功。
  • 在某个时间级别上打开额外的端口不是安全风险。如果您已经打开了 HTTP/HTTPS,那么通过限制诸如 NTP、FTP、WHOIS 之类的东西,您将不会获得可衡量的优势。
  • 在使用 HTTP/HTTPS 之前要求代理将是唯一真正的方式(鉴于上述要求)具有重要的实际价值,特别是如果您在浏览器级别配置代理(机器人将寻找代理配置的第二或第三位置),而不是计算机范围的级别(机器人将首先查找代理配置)。(您可能需要为 Windows 自动更新添加地址白名单,这样就不需要代理了)

这种分析是否存在不准确之处?这个分析应该有更多内容吗?

2个回答

我建议您在操作系统上使用防火墙,您可以在其中设置哪些可执行文件可以访问网络资源。在那里,您可以例如只允许 firefox.exe、windows update 和 windows 时间同步进程访问。其余的你阻止并记录。Windows 7 提供的高级防火墙支持这一点。此外,您还可以使用官方提供的 AppLocker,您可以在其中设置允许运行的可执行文件和 DLL。默认策略将允许 ProgramFiles 和 Windows 目录中的所有内容,这需要管理员权限才能写入。

网络防火墙,就像您正在设置的防火墙(我猜想)一样,是粗制滥造的工具。这就像试图通过在河上使用该死的东西来调节房屋中的水压。它们有其用途,但不要忘记:

如果你只有一把锤子,那么一切看起来都像钉子。

在我看来,这是一个非常全面的分析,但有几点可以改进。

基本的双向防火墙是一个好的开始,但除非您有能力进入实际的应用程序级流量 - 无论是使用 HTTP 代理应用程序级防火墙还是您拥有的防火墙 - 您的安全性仍然存在重大漏洞。

今天的许多防火墙——甚至那些宣传应用程序级分析的防火墙—​​—并不对所有协议进行应用程序级过滤为恶意原因选择一个通用端口号是绕过收紧防火墙的一种非常简单的方法。只要有可能,最好将您的定义列入白名单,即使对于半通用协议也是如此。

作为一个例子,我之前在我正在试验的外部主机上试验了一个绑定到端口 123 的 TCP 服务。我很惊讶我能够从受保护的内部网络访问它,而无需任何额外的防火墙规则。原来 NTP 定义包括 UDP 和 TCP 端口,并且被允许到任何地方。

关于我不这样做的唯一协议是 HTTP、HTTPS、FTP 和 SMTP。每一个都为我的客户配置了某种应用程序级别的过滤器。

编辑:

所有这些不断变化的术语让我觉得自己老了。看起来我正在考虑的设备的建议术语是 UTM(统一威胁管理)网关。