SSL加密流量检测功能的主要目的是为了对加密流量做解密处理,并对解密后的流量做内容安全检查(比如反病毒、入侵防御、URL远程查询、内容过滤、文件过滤和邮件过滤等)和审计(防止信息泄露)。接下来我们详细介绍SSL加密流量检测的功能、实现原理、检测策略、典型使用场景及其限制。
1. 背景介绍
安全问题和隐私问题驱动着越来越多的网络流量开始采用SSL加密传输,早期的安全设备由于无法检测SSL加密流量的内容,不能直接对SSL加密流量做内容安全检查和审计,这就为非法用户利用SSL的加密特点进行恶意网络攻击提供了可乘之机,比如:
- 内网用户通过加密流量下载的可执行文件中潜藏着病毒;
- 内网用户在不知情的情况下访问了使用HTTPS协议的恶意网站;
- 未授权的内部机密信息以加密数据传输的方式被泄露到外网。
2. SSL加密流量检测原理
安全设备(比如华为USG系列防火墙)一般会提供的SSL加密流量检测功能,可以对SSL加密流量进行解密,并对解密后的报文进行深度检测,防止恶意攻击进入企业内部或者防止企业的机密信息被非法扩散。
开启加密流量检测后,设备作为SSL代理与客户端和服务器分别建立了两条连接。可以对客户端和服务器的两条连接使用的加密算法、版本进行独立的设置。
由于SSL会话协商以及后续的报文加解密都是非常耗CPU的,且安全性越高时,通常耗费的CPU等资源也越大。对于比较安全的可信内部网络,建议采用安全性较低的算法和版本;对于网络状况复杂,攻击比较多的外部网络,选择安全性高的算法和版本,达到安全与性能的平衡。
命中这些检测策略条件的报文会根据解密配置文件中设置的动作来决定允许通过还是被阻断。
在此过程中,SSL加密流量检测功能会与安全策略、内容安全检查策略发生关联,从整体上掌握SSL加密流量检测功能的处理流程。
安全策略是由流量的属性(例如五元组、用户、时间段等)和对流量执行的动作组成的控制规则,安全设备收到流量后,对流量的属性进行识别,并将流量的属性与安全策略的匹配条件进行匹配。若所有条件都匹配,则此流量成功匹配安全策略。流量匹配安全策略后,设备将会执行安全策略的动作。
五元组包括:VLAN ID、源安全区域、目的安全区域、源地址和目的地址。
内容安全策略:
- 反病毒:反病毒特性用于保护内网的用户和服务器免受病毒威胁。
- URL过滤:URL(Uniform Resource Locator)过滤可以对用户访问的URL进行控制,允许或禁止用户访问某些网页资源,达到规范上网行为的目的。
- DNS过滤:DNS(Domain Name System)过滤可以对用户访问的域名进行控制,允许或禁止用户访问某些网站,达到规范上网行为的目的。
- 文件过滤:文件过滤通过阻断特定类型的文件传输,可以降低内部网络执行恶意代码和感染病毒的风险,还可以防止员工将公司机密文件泄漏到互联网。
- 内容过滤:内容过滤可以防止机密信息的泄露及违规信息的传输。
- 邮件过滤:对邮件收发行为进行管控,包括防止垃圾邮件和匿名邮件泛滥,控制违规收发等。
对于通过内容安全检查的流量,设备会重新加密,然后发往服务器,确保经过设备解密后的流量在离开设备时依旧安全;对于内容安全检查未通过的流量,设备会实施阻断操作,有效拦截基于SSL的加密流量攻击。
3. 典型使用场景
3.1. 通过SSL加密流量检测功能保护客户端
此场景中,设备需要对加密流量进行安全检测,防止企业敏感信息通过加密方式传输出去,造成信息的泄露,还可以保护内网用户免受外部恶意网站的攻击。
如上图所示,位于Internet的某HTTPS服务器是一个恶意网站,内网用户在不知情的情况下通过客户端向该网站发起了访问请求。管理员为了保护内网用户不受外部恶意网站侵害,在设备配置了SSL加密流量检测功能。当用户的访问请求到达设备时,设备首先对该访问请求进行解密,然后通过配置内容安全检查功能,设备可以对解密后的访问请求报文进行入侵防御、反病毒和URL过滤等检查,能识别出该地址为恶意网站地址,并对该访问实施阻断操作,起到保护内网用户的作用。
注:此场景中,设备部署在SSL客户端所在网络中,当SSL客户端访问服务器的请求经过设备时,设备作为代理对流量进行解密并进行安全检查,确保访问目标安全后再放行,达到保护客户端的目的。
设备作为客户端和服务器的中间人,在收到客户端请求后,代理客户端和服务器侧建立连接,自己同时作为服务器和客户端建立连接。由于实际上设备把SSL的握手变成了两个完全独立的过程,因此,设备作为中间人可以完全获得和客户端、服务器的交互内容,从而达到对内容进行处理的目的。
设备在启用SSL解密功能后,客户端通过浏览器访问HTTPS类网站时,会弹出服务器证书不是由受信任机构颁发的告警信息,甚至有些应用程序不提示告警信息就直接中断了连接,影响用户的正常使用。
为了解决通信中断问题,设备需要使用SSL解密证书签发一个服务器证书,然后发给客户端进行验证,这样才能对客户端发送的流量进行解密。为了让客户端能够信任此服务器证书,就还需要在客户端下安装SSL解密证书。
注:通过企业已有的AD域认证系统,可以实现证书的自动分发和安装,只需要企业管理员直接在AD服务器部署一次即可,终端用户无感知。
经过以上介绍,在企业中大家发现自己浏览器地址栏中🔒图标中的证书是公司自签名证书颁发的就不会再觉得奇怪了,因为我们实际访问的服务端是防火墙设备代理的。
3.2. 通过SSL加密流量检测功能保护服务端
此场景中,设备需要对外部的加密流量进行安全检测,保护企业内部服务器的安全。
如上图所示,位于Internet的一个恶意用户通过HTTPS客户端向HTTPS服务器上传病毒文件。网络管理者为了保护HTTPS服务器不受外部病毒侵害,在设备首先对访问数据进行解密,然后再对解密后的数据做内容安全检查,一旦发现用户发来的流量中携带有病毒,SSL加密流量检测功能就会阻断该流量,起到保护内网服务器的作用。
注:此场景中,设备部署在SSL服务器所在网络中,当SSL客户端访问服务器的请求经过设备时,设备作为代理对流量进行解密并进行安全检查,确保访问流量安全后再放行,达到保护服务器的目的。
设备与服务器建立SSL连接过程中,需要获取到服务器的证书供客户端验证,这样才能对客户端发送的流量进行解密。因此需要获取到服务器证书及证书的私钥,并导入到设备。
4. 使用限制
4.1. 不支持双向认证场景
服务器要求验证客户端证书的场景不建议使用SSL解密功能。
例如,用户访问银行或者社保类等涉及个人隐私安全的网站时,通常服务器会要求验证客户端的证书。如果使用SSL解密功能可能会存在客户端证书校验失败导致客户端不能访问服务器的情况,需要直接透传这些流量。
4.2. 不支持某些特殊场景
对于一些浏览器没有预置/导入服务器CA证书的场景,或某些软件APP预置固定的公钥场景,不能使用SSL加密流量检测功能。因为设备自己推送给客户端的证书无法通过客户端的校验,导致连接异常中断。
此时,可以通过配置SSL域名白名单或配置URL分类不解密的方法,直接透传客户端和服务器的SSL连接。
注:SSL域名白名单仅在保护客户端场景下使用。
参考链接
- https://support.huawei.com/hedex/hdx.do?docid=EDOC1100149311&id=ZH-CN_CONCEPT_0178935621
- https://support.huawei.com/hedex/hdx.do?docid=EDOC1100386427&id=ZH-CN_CONCEPT_0000001564126337
- https://support.huawei.com/hedex/hdx.do?docid=EDOC1100386427&id=ZH-CN_CONCEPT_0000001513046266