深度包检测如何处理加密包?

网络工程 防火墙 网络 第3层 包分析 专用网
2021-07-22 19:31:52

我一直在阅读有关软件定义网络的深度数据包检查。但是,我知道某些应用程序使用加密来逃避深度数据包检查。是否有任何替代方案(例如某些机器学习算法)可以更好地处理加密数据包?

3个回答

正如您所指出的,传统的 DPI 方法完全处理加密流量的能力有限。他们至少仍然可以在表面级别处理加密流量,但它确实会在许多方面“削弱”他们的功能。

此类安全的新趋势是网络流量分析(NTA)。正如今天许多公司不太关心特定客户数据而是在元数据中发现更多价值一样,NTA 往往不太关心正在传递的实际数据,而是关注流量的行为。此外,与 DPI 类似,如何分析流量的确切性质因供应商而异。

NTA 使用行为分析对网络流量进行分类,并根据流量/主机在网络上的行为而不是所传递数据的确切性质来识别危险或可疑的流量。即使数据已加密,这也允许 NTA 潜在地对恶意流量进行分类(并可能采取行动)。

虽然是一种较新的技术,但已经至少有十两个供应商拥有自己的 NTA 解决方案(包括几家大型网络公司)。这是一个相对较新的市场,供应商提供的产品存在巨大差异。这些供应商使用的一些技术包括机器学习(有监督和/或无监督)、基于签名的检测、统计分析、启发式分析以及其他检测和分类方法中相对简单的模式匹配。

这些供应商的解决方案的其他不同之处在于如何收集数据(跨端口/分路器、内联、网络流等),解决方案存在于网络中(集中部署在整个网络、云或 SaaS 中的传感器等),解决方案是基于硬件还是基于软件,解决方案是否采取措施自动修复威胁或需要手动干预,当然还有成本/许可。虽然大多数供应商将 NTA 作为订阅出售(基于组织规模或总带宽),但至少有几个供应商购买传统的“永久”许可证并支付年度支持。

对于实际的负载检查,您需要破解加密。这是检测恶意软件下载和类似威胁的唯一方法。

通常的工作方式与中间人攻击相同:服务器端加密在检查防火墙处终止,防火墙重新加密客户端连接并在两者之间传递数据。

使用通常的基于证书的加密,防火墙只能在极少数情况下访问服务器的原始私钥。这意味着防火墙必须创建新的、动态的密钥和证书以适应每个服务器连接。当然,它也不能使用原始的 CA 密钥来签署这些证书,因此您需要防火墙上的(子)CA 证书分发给客户端并受其信任。一种常见的方法是向客户端分发根 CA 证书,并在防火墙上使用从属签名证书和私钥。

一般来说,DPI 引擎使用不同的技术来检测加密流量,这取决于应用程序的性质,例如 Skype 使用加密流量,但通过关联前 3 或 4 个数据包很容易检测到它们。另一方面,我见过的最先进的技术是验证字节在网络流上的分散情况(频率分析),这种技术非常有效,但您需要有大量的流数据包来验证字节的分散。