上网行为安全(3)
3.5 应用控制技术
3.5.1 应用特征识别技术
需求背景
需求背景(一): 全天不允许使用QQ等聊天工具
数据包五元组
传统行为检测原理:传统的网络设备根据根据数据包的五元组(源IP,目的IP,源端口,目的端口,协议) 这些特征等来识别应用并进行丢弃、转发、接收、处理等行为。
通过识别协议为UDP,端口为8000,从而识别出是QQ聊天的应用,将该类数据包全部丢弃,实现封堵的 目的
配置思路
1、 新增【上网策略】-【上网权限策略】-【策略设置】-【应用控制】在应用里面勾选IM,生效时间全天 ,移动终端设备里面勾选通讯聊天,动作拒绝,在【适用对象】选择办公区,即对办工区的所有用户关联上 这条控制策略。
2、新增【上网策略】-【上网审计策略】-【应用审计】添加,勾选所有选项,在【适用对象】选择办公区, 即对办工区的所有用户关联上这条识别策略
效果展示
办公区员工通过设备上网时,登录QQ已经不能在登录了,登录又如下提示,在我们的上网行为监控里面 可以记录QQ已经被拒绝,并审计了一些办公区用户的访问应用的行为。
需求背景
需求背景(二): 全天只允许特定QQ账号上网, 不允许其他QQ账号上网
应用特征识别技术
•从数据包中可以看到,QQ用户的字段在应用层OICQ协议的Data字段。
•该需求需要识别特定的QQ用户,而传统的行为检测只能对链路层、网络层、传输层进行数据处理,不能 对应用层进行操作。
•因此需要可以对应用层进行处理的深度行为检测技术
应用特征识别技术
传统行为检测 VS 深度行为检测
应用特征识别技术
深度行为检测技术
•产生背景:传统技术无法识别精细的数据包应用和行为,无法识别经过伪装的数据包,无法满足现在的 安全需求和可视需求
优点:
(1)可视化全网
(2)流量精细化管理
(3)减少或延迟带宽投入, 降低网络运营成本
(4)及时发现和抑制异常流量
(5)透视全网服务质量,保障 关键业务质量
(6)丰富的 QoS 提供能力
应用特征识别技术
深度包检测技术(DPI)
深度包检测不仅检测源地址、目的地址、源端口、目的端口以及协议类型,还增加了应用层分析,另外 识别各种应用及其内容
应用特征识别技术
1.基于“特征字”的检测技术(DPI)
•客户需求:在客户局域网中只允许电脑上网,不允许手机上网。
•需求分析:该需求需要能够识别哪些上网数据是手机端发出的,哪些是PC端发出的。通过数据包分析,发 现手机和电脑在同时上网的时候(同时使用HTTP协议)会在HTTP协议的User-Agent字段区分出手机数据 和PC数据
应用特征识别技术
基于“特征字”的检测技术(DPI)
•不同的应用通常依赖于不同的协议,而不同的协议都有其特殊的特征,这些特征可能是特定的端口、特 定的字符串或者特定的 Bit 序列。
•基于“特征字”的识别技术通过对业务流中特定数据报文中的特征信息的检测以确定业务流承载的应用 和内容。
•通过对应用特征信息的升级(例如http数据包中的User-Agent的位置),基于特征的识别技术可以很方 便的进行功能扩展,实现对新协议的检测
应用特征识别技术
2.基于应用层网关的检测技术(ALG)
某些应用的控制流和数据流是分离的,数据流没有任何特征。这种情况下,我们就需要采用应用层网关识 别技术。
应用层网关需要先识别出控制流,根据对应的协议,对控制流进行解析,从协议内容中识别出相应的业务 流。
客户需求:禁用VoIP视频。
需求分析:VoIP视频协议是先使用控制信令来协商数据的传输,之后进行数据流的传输。VoIP视频数据交 换过程抓包如下:
应用特征识别技术
基于应用层网关的检测技术--VoIP视频协议数据流
VoIP视频协议的数据流可以看到是基于UDP的,跟踪数据流,发现该数据没有任何特征,但是VoIP在 进行数据传输前是有控制信令来协商数据的传输。
应用特征识别技术
基于应用层网关的检测技术--VoIP协议的控制信令1
应用特征识别技术
基于应用层网关的检测技术--VoIP协议的控制信令2
应用特征识别技术
3.基于行为模式的检测技术
基于对终端已经实施的行为的分析,判断出用户正在进行的动作或者即将实施的动作。
行为模式识别技术通常用于无法根据协议判断的业务的识 别。
例子:
垃圾邮件行为模式识别 SPAM(垃圾邮件)业务流和普通的 Email 业务流从 Email 的内容上看是完全一致的,只有通过对用户行 为的分析,才能够准确的识别出 SPAM 业务。
应用特征识别技术
深度流检测技术(DFI)
•DFI采用的是一种基于流量行为的应用识别技术,即不同的应用类型体现在会话连接或数据流上的状态等各 有不同。基于流的行为特征,通过与已建立的应用数据流的数据模型对比,判断流的应用类型或业务。
•举例:
•DFI技术正是基于这一系列流量的行为特征,建立流量特征模型,通过分析会话连接流的包长、连接速率、 传输字节量、包与包之间的间隔等信息来与流量模型对比,从而实现鉴别应用类型
应用特征识别技术
深度包检测(DPI) VS 深度流检测(DFI)
• DFI仅对流量行为分析,因此只能对应用类型进行笼统分类,如对满足P2P流量模型的应用统一识别为 P2P流量,对符合网络语音流量模型的类型统一归类为VOIP流量,但是无法判断该流量是否采用 H.323或其他协议。
• 如果数据包是经过加密传输的,则采用DPI方式的流控技术则不能识别其具体应用,而DFI方式的流控 技术则不受影响,因为应用流的状态行为特征不会因加密而根本改变。
配置思路
1、新增【上网策略】-【上网权限策略】-【策略设置】-【应用控制】-【QQ白名单】,将允许的QQ 用户加入QQ白名单,在【适用对象】选择办公区,即对办工区的所有用户关联上这条控制策略。
2、新增【上网策略】-【上网审计策略】-【应用审计】添加,勾选所有选项,在【适用对象】选择办 公区,即对办工区的所有用户关联上这条识别策略。
3、登录在白名单内的QQ号,可以正常登录;登录在白名单之外的QQ号,登录失败
效果展示
办公区员工通过设备上网时,一般用户登录QQ已经不能在登录(左图),登录有如下提示,在我们的上 网行为监控里面可以记录QQ已经被拒绝,并审计了一些办公区用户的访问应用的行为。但是白名单用户 可以正常登录
3.5..2 HTTP识别控制技术
需求背景 需求背景(三):
IT部上班时间不允许访问视频网站
HTTP识别工作原理
HTTP网站识别,终端设备通过DNS解析域名后,跟网站服务器三次握手完成,发给get请求,在get请求数 据包中的host字段,就是我们访问网站的具体URL,我们通过抓取这个字段来识别终端用户是访问的哪个 网站,例如,我在终端设备访问www.youku.com,抓包就可以得到如下数据包
HTTP控制工作原理
如果我们对该url做封堵,终端设备在发出get请求后(即完成HTTP识别), 设备会伪装成网站服务器向终 端设备发一个状态码302的数据包,源ip是网站 服务器的ip地址(实际是我们设备发送的,我们设备发送 的标识是ip.id为 0x5826),数据包中的内容是告知终端设备访问网站服务器的拒绝界面。 如下图所示:访问http://10.1.3.40:80/disable/disable.html
配置思路
1、 新增【上网策略】-【上网权限策略】-【策略设置】-【应用控制】在应用里面访问网站-娱乐在线 影音及下载勾选,生效时间上班时间,动作拒绝。
2、在【适用对象】选择IT部,即对IT部的所有用户关联上这条控制策略
效果展示
(1)在终端设备打开www.youku.com,可以看到已经打不开,并跳转拒绝页面。
(2)【上网行为监控】可以查看访问youku的拒绝日志。
3.5.3 HTTPS识别控制技术
需求背景
需求背景(四): 公共上网区的用户禁止访问百度
HTTPS协议简介
什么HTTPS?
全称Hypertext Transfer Protocol over Secure Socket Layer,是HTTP的安全版,HTTPS默认使 用TCP端口443,也可以指定其他的TCP端口。HTTPS中S,实际上是SSL(Secure Sockets Layer)协议。 SSL是Netscape公司发明的一种用于WEB的安全传输协议。 随着时间的推移由于Netscape失去了 市场份额,它将SSL的维护工作移交给因特网工程任务组(IETF)。第一个后Netscape版本被重新命名 为安全传输层协议(TLS), TLS (Transport Layer Security :RFC 2246)是基于SSL上研发的,但是与 SSLv3.0有细微的差别。因此,SSL协议有时也称为TLS协议。目前常用的是TLSv1.0的协议。。
URL格式?
https//:URL 例如:https://www.baidu.com
HTTPS原理
HTTPS原理
Client hello handshake(1)
客户端给服务器端发个hello的问候,问候里包含有它使用的SSL版本号、加密套件列表,压缩算法列表, 客户端随机数,sessionid = 0;
Client hello
服务器收到客户端的问候后,会从客户端提供的版本号中选出双方都支持的最高版本, 从加密套件列表 选择一种支持也安全性强的加密套件,从压缩算法列表选择压缩算法(一般为空)。
HTTPS原理
handshake(2.1)
服务器端将上述选择的加密套件,压缩算法(NULL),且计算一个session_id,和服务器端随机数发送给客 户端
Server hello
客户端收到serverhello的报文会将加密套件,压缩算法(NULL),session_id,和服务器端随机数缓存起来。 接着继续握手过程。
HTTPS原理
handshake(2.2)
服务器端将自己的证书发送给客户端,证明自己的身份。证书中包含有服务器的身份信息,以及服务器的 公钥
Server Certificate *
客户端收到Certificate报文会验证该证书是否过期,并将服务器的公钥缓存起来。
HTTPS原理
handshake(2.3)
如果是SSL的双向认证的话 ,那么服务器端会向客户端发送client cert request 消息,索要客户端 的证书,证书中包含有server端支持的证书类型,和所信任的所有证书发行机构(CA(Certificate Authority))列表。
Client Certificate Requst*
客户端收到Client Certificate Requst报文将消息中的证书类型列表和可信任证书发行机构列表保存 下来,可在后面发送客户端证书时候拿来筛选证书用。
HTTPS原理
handshake(2.4)
服务器端通知客户端这一步的握手消息发送完成。等待客户端确认。
Server Hello done
HTTPS原理
handshake(3.1)
客户端从之前收到server 端发的 cert request 消息中的支持的证书类型列表和信任的 根 CA (Certificate Authentication)列表中选择满足条件的第一个证书发送给服务器
Client Certificate
客户端向服务器端发送自己的证书 n 服务器端会缓存客户端的公钥
HTTPS原理
handshake(3.2)
若为RSA加密,客户端则产生一个 48 位随机数作为 pre-master(预主密钥) 并用服务器公钥加密后发出去。
Client Key Exchang
客户端向服务器端发送一个48位的预主密钥 n 服务器端缓存预主密钥
HTTPS原理
handshake(3.3)
Certificate verify这个消息中要包含一个签名,签名里头内容就是从 client hello 开始到目前为 止所有握手消息(不包括本消息)的摘要,然后用客户端的私钥加密
*Certificate verify
由于之前的Client Certificate消息中包含有客户端的公钥,因此用公钥解密该消息,验证客户端的 真实性
HTTPS原理
handshake(3.4)
[Change Cipher Spec]该消息只有一个值为1的字节。不属于握手协议,和握手协议同一级别的改变 加密约定协议。发送该消息的作用是为了告诉对方接下来的消息将采用新协商的加密套件和密钥进行 通信
[Change Cipher Spec]
在发送该消息的同时,客户端会把之前的客户端随机数,服务器端随机数、以及预主钥产生一个主 密钥。并将主密钥进行密钥导出(服务器端的写MAC密钥、客户端写MAC密钥、服务器端的写密钥、 客户端的写密钥),该过程只在本地进行,不发送给对方。
HTTPS原理
handshake(3.5)
这是客户端的 SSL 协商成功结束,发送握手验证报文确保消息的完整性 n 这是客户端SSL协商成功结束的消息。也是第一个用协商好的密钥加密的消息。会把从client hello 一直到现在的数据摘要,用客户端密钥加密,发送给服务器。确保握手过程的完整性和机密性
Client finished Message
HTTPS识别工作原理
HTTPS网站识别,终端设备通过DNS解析域名后,跟网站服务器三次握手完成,终端开始发Client hello报文(SSL握手的第一阶段),在此报文中的server_name 字段包含所访问的域名,上网行为管理提 取Server_Name字段来识别https的网站。如下图所示:在终端设备访问https://www.baidu.com抓取 到的数据包。
HTTPS控制工作原理
对HTTPS网站封堵,终端设备在发送Client hello报文后,我们识别到该网站,然后同http封堵一样,伪 装网站服务器给终端设备发送RST包(ip.id也是0x5826),断开终端设备与网站服务器之间的连接,从 而控制HTTPS网站的访问。
与HTTP封堵的区别:HTTPS整个过程都是加密的,在没有做SSL中间人劫持的时候是无法劫持和伪造具 体数据包的,从而无法实现重定向到拒绝界面。
配置思路
1、 新增【上网策略】-【上网权限策略】-【策略设置】-【应用控制】在应用里面勾选访问网站- web应用-搜索引擎,生效全天,动作拒绝。
2、在【适用对象】选择公共上网区,即对公共上网区的所有用户关联上这条控制策略
效果展示
1、在终端设备打开https://www.baidu.com,可以看到已经打不开,并跳转拒绝页面
2、【上网行为监控】可以查看访问www.baidu.com的拒绝日志
3.5.4 自定义应用识别技术
自定义应用方法
上网行为管理已经内置规则库已经覆盖常见的应用和网站,并已半个月为周期的持续更新, 但难免有部分不常见的应用和网站没有更新。在这种环境下面,只要我们提供应用的特征或 者url就可以通过自定义进行识别和控制
自定义应用思路
在【对象定义】-【自定义应用】可以对应用的数据包方向、协议、目标端口、目标ip、匹配的目标域名识 别,只要能确定应用的这些特征,我们就可以识别和控制这些应用。
【注意】这些特征需要尽可能的精确,例如:只填写了端口80,其他条件匹配所有,就会造成所有的 HTTP80端口的数据都会识别成这个自定义的应用
URL自定义思路
在【对象定义】-【URL分类库】可以自定义URL,如下图所示,支持匹配URL和域名关键字
对象自定义总结
1. 自定义准入规则:可以定义运行了某个进程才允许(或不允许)上网
2. 自定义应用(封堵或审计精准的应用)
3. 自定义URL(封堵或审计精准的URL)
4. 自定义关键字(用作关键字过滤或审计)
5. ······
对象自定义的作用:对于精准的应用等进行精准的管控,保证在99.99%的日常应用能被sangfor内置识 别库识别的基础上,对0.01%的应用进行精准的管控
上网权限策略排查思路
1、检查设备部署,如是旁路模式部署,设备本身只能对一些TCP的应用做控制
2、【实时状态】-【在线用户列表】查看策略对应的用户是否在线
3、检查规则库“应用识别”“URL库”“审计规则库”是否为最新
4、检查上网权限策略是否与用户关联,检查用户是否关联了多条上网权限策略,注意策略的叠加顺序(自上而下优先级 递减)
5、检查【系统诊断】-【上网故障排除】是否开启直通;【系统配置】-【全局排除地址】是否有排除内网PC的ip、 目标域名、目标IP等
6、检查是否有自定义应用,禁用或删除自定义的应用看策略是否正常
7、给用户关联一条【上网审计策略】,开启所有应用的审计,进入【内置数据中心】,检查数据中心识别到的应用和实际 使用的应用是否对应。如不对应那回滚下应用识别规则库再重新更新规则库
8、如数据中心没有识别内网PC任何的应用,此时注意检查客户是否有其它的上网线路,抓包分析用户流量是否经过AC