普遍的网络流量加密阻碍深度包检测,但仍有方法可以检测并阻止很多攻击。多年来安全专家一直在敦促用户加密所有网络流量。你该如何检查网络流量以查找恶意程序和有问题的内容呢?

任何像样的主机或网络入侵检测系统(IDS/IPS)都会执行网络分析,在合法加密流量海洋中查找恶意流量。但深入了解工具运行机制和自身流量特性没什么坏处。你可以对协议级加密做些什么。有哪些方法可以监视加密网络流量?

使用网络异常检测工具
如果不能观测实际包内容,就得监视流量找出网络异常。那么,异常网络行为有哪些特征呢?

TCP/UDP端口的非正常使用也是值得监视的一种行为。可在Dave端口列表上查看知名端口和不那么知名的端口。不仅仅是非正常端口的使用,还要看正常端口是否被非正常应用使用,比如为传输层安全(TLS)保留的443端口有没有用于传输明文流量。

这些任务太过琐碎,不适合人工处理,有很多安全产品都尝试检测网络行为异常,包括IBM的QRadar、Juniper Sky Advanced Threat Protection,甚至还有开源的Snort IPS。需要挖掘流量审查细节的时候,可以借助网络分析工具。Wireshark是最基本的,但Fiddler更适用于HTTP/HTTPS流量分析。

使用SSL/TLS代理服务器
使用安全套接字层(SSL)/TLS代理服务器能很大程度上令加密流量可审查。包括加密通信在内的所有通信都要经过代理服务器,代理服务器在一端接受加密连接,解密加密流量,执行某些操作,然后重新加密并发送流量到目的地址。代理服务器执行的操作中就可以包含安全操作,比如恶意软件扫描和阻止禁用站点。很多第三方安全产品都可以用作SSL/TLS代理。

此类代理服务器给已经很复杂的网络配置又添了一层复杂度。虽然可以通过缓存加速流量,但也存在拖慢流量的可能性。2017年,美国国土安全部(DHS)计算机应急响应小组(CERT)协调中心曾发出一条警报,称很多此类产品未进行恰当的证书验证,或者转发错误情况。

准备应对非TLS加密
网络包层级上的流量合法加密通常由SSL/TLS实现。但你可能遇到其他加密协议。有些是合法的,有些则不应该出现在你的网络上。其中最为模棱两可的协议就是Secure Shell (SSH)。很多管理和开发工作都通过SSH完成。问题在于,坏人也会用SSH。你不可能全面禁用SSH,总得为特定网络段和特定用户放行SSH。所以,不符合合法规程的SSH流量必须要在审查范围内。

如果使用Windows终端,那网络上就会出现很多Windows终端服务器用的远程桌面协议(RDP)和Citrix服务器用的独立计算架构(ICA)。这些都是加密协议,通常使用TLS,但也可能在不同的TCP端口上,展现其他的差异。公司应设专人控制这些终端,具备审查其行为的能力。

更隐蔽的是基于用户数据报协议(UDP)的快速UDP互联网连接(QUIC),这是TLS的低延迟版替代品。HTTP/3标准纳入了QUIC,但其基于UDP的特性限制了其应用。至于暗网所用的Tor,因为采用多层嵌套加密,除非有额外的隐私需求,普通用户完全有理由封禁。

TLS的好处在于身份验证、加密和消息完整性,这是无可否认的。所有这些加密使一些合法的安全实践变得更加困难,但这点困难并不足以让你的流量保持不加密状态裸奔。无论是通过元数据,还是在终端检查,依然有很多工具可以保护你的用户和网络。