一种加密流量行为分析系统的设计研究*
2020-04-25程永新张德治廖竣锴胡华鹏
程永新,张德治,廖竣锴,胡华鹏
(中国电子科技集团公司第三十研究所,四川 成都 610041)
0 引 言
随着信息社会的不断发展,网络应用不断增多,网络安全问题越来越得到重视。越来越多的网络应用开始采用加密手段保证自己的数据安全传输,同时越来越多的恶意网络攻击也在采用加密手段[1-2]减少被发现的几率,对网络监管构成了极大威胁。当前,处理加密流量的常见方法是解密流量,使用如新一代防火墙等设备查看流量。这种方法不仅耗时较长,降低了网络传输效率,还给用户信息泄露带来了一定的风险。
加密流量行为分析技术是网络监管的重要组成之一。与非加密流量识别相比,它存在诸多挑战。一是网络流量加密后其流量特征发生较大变化,DPI 等一些非加密流量识别方法难以适用;二是加密流量有特定的网络封装格式,需要有针对性的识别方式;三是加密流量常采用协议混淆进行伪装,对流量的识别带来了一定的困难。
本文设计了一种加密流量行为分析系统,通过对网络环境中的加密流量进行分类分析和学习优化,采用机器学习方法构造加密流量行为模型,不仅可以分析出加密通道承载的业务和服务类型,还可以验证加密流量的合规性,识别出非法加密流量。
1 加密流量行为分析原理
针对网络流量的加密是保护敏感信息不被泄露和篡改的重要手段,能有效保护数据传输的安全性。根据Gartner 的研究,未来超过80%的企业数据传输将被加密。加密技术在保护数据的同时也给数据监管带来了一定困难,如果通过直接解密的方式监控加密流量,将对正常的用户数据传输带来挑战[3]。采用机器学习方式,在不解密加密流量的前提下对流量行为进行识别,可有效解决上述问题,原理如图1 所示。
图1 加密流量行为分析原理
流量采集主要通过网络抓包技术收集相关流量数据。针对加密的网络流量而言,一般需要收集的加密协议流量包括L2TP 等链路层加密协议、IPSEC等网络层加密协议、SSL/TLS 传输层加密协议以及SSH等应用层加密协议。采集过程中通常采用pcap 等数据采集工具,在某些需要高性能数据采集情况下,可基于零拷贝技术减少数据包在系统内部的拷贝次数,降低系统内部处理开销,提高整个数据采集的效率。
特征提取阶段,从采集到的流量中分析和提取与加密流量信息相关的特征。针对密文流量的特征,可以将其分为时空特征和协议特征。时空特征是与具体协议无关的特征,如时间间隔、数据包大小、字节分布以及地址分布等;协议特征指的是加密协议的特征,如SSL 应用种类(HTTPS、FTPS、SSH 等)扩 展 种 类、SSL 版 本(SSLv2、SSLv3、TLSv1.1、TLSv1.2 等)、证书种类等。
行为识别模型阶段,采用机器学习算法[4-5]进行行为识别模型构建。根据机器学习方法的不同,主要分为有监督学习、半监督学习及无监督学习。基于有监督学习的加密流量识别,基于已标识的网络流量数据训练分类算法,通过训练好的算法对待测网络数据流量进行分类结果输出。基于有监督学习的识别方法,主要利用已知的流量类别进行训练,无法对未知加密流量进行预测和发现。半监督算法主要采用少量已标记样本和大量未标记样本进行分类器的建立。与监督学习不同,它可以降低人工标记的难度,同时可以发现未知类型的应用流量。与无监督学习相比,它可以提高分类器的精确度。基于无监督学习的加密流量识别主要对未标识的网络流量进行聚类分析,根据流量数据内部的相似程度进行流量的分类,可以对未知流量进行辨识。识别算法总结如表1 所示。
表1 识别算法总结表
在监督算法和半监督算法中,需要对分类模型进行不断优化。优化方法包括对选定的模型进行进一步的参数调优、验证和测试,通过实际网络流量数据进行测试与迭代训练。根据实际测试结果,针对各类型的加密流量,选用效果最佳的算法及参数,保证准确率。
结果输出方面,输出流量识别出的分类或聚类结果主要包括以下几种类型:非加密与加密流量的识别;加密协议的识别,包括SSL、IPSEC、SSH等的识别;加密应用的识别,可识别加密流量由哪种应用程序产生,如SKYPE、微信等;加密服务识别,如其服务为网页浏览、流媒体加密、即时通信加密等。
2 加密流量行为分析系统设计
加密流量行为分析系统设计如图2 所示,包括数据采集、流量特征提取、流量行为分析模型、配置管理和数据存储等。采用层次化、模块化设计,降低各个软件模块的专用性及模块之间的耦合性,提高软件模块的独立性和继承性。
图2 加密流量行为分析系统架构
2.1 数据采集
数据采集模块针对网络流量提供实时流量或离线流量数据的采集、存储和预先处理功能,能够根据数据来源和协议大类进行初步的流量分类和数据统计。
2.2 流量特征提取
流量特征提取模块提取流量的协议无关特征与协议相关特征,并对特征进行统计和归类,供流量行为分析模型进行分析。其中,协议无关特征是指流量数据传输过程中表现的通用特征,如数据包的大小、时间间隔、地址分布等;协议相关特征是指流量数据在传输协议层面表现的专有特征,如加密流量的SSL 扩展种类、加密套件种类。
2.3 智能流量分析模型
流量分析模块对采集到的流量数据进行流量分类和智能分析,判断网络流量的类型(明文流量、典型加密流量、非法加密流量),并根据流量的时空特征、握手特征、背景特征等构建流量智能模型,从而发现加密流量中的非法流量、恶意流量和异常流量。
2.4 配置管理
配置管理模块实现对系统本身的配置管理和对外的接口功能,包括软件本身运行状态的监控和信息收集、对软件本身的策略配置管理以及异常事件报警等。
2.5 数据存储
数据存储模块对系统提供数据存储和读取功能,包括软件配置管理数据、通过流量行为分析发现的恶意行为和异常行为、流量行为模型数据、人工智能算法和流量特征记录。
系统的典型流程如图3 所示。
系统首先启动算法训练,采用已标注流量数据等训练分类算法模型,为后续流量识别提供支撑。当有流量识别任务到来时,启动流量识别流程进行网络流量采集,抓取网卡上的流量获得原始数据包,然后进行流量的整理和分析,处理原始网络包,统计相应的流量特征数据,然后送入分类算法中进行流量辨识,得出流量分类结果,最后在结果展示界面中进行展示。在上述几个流量处理过程中,将处理的输入输出的结果存储至数据库中,以备后续对比分析使用。
3 系统测试试验
虚拟专网(Virtual Private Network,VPN)是网络传输加密的服务之一,通过构建加密网络隧道将网络数据包进行加密保护,以防止数据在网络传输中被窃取和篡改。本文基于虚拟专网技术搭建了如下的测试场景:在两个计算机终端上分别安装OPENVPN 软件,提供相应的VPN 加密隧道连接,同时在计算机终端上安装SKYPE和Filezilla客户端,以便使用SKYPE 的加密语言和Filezilla 文件传输业务。试验拓扑如图4 所示。
图3 系统典型应用流程
图4 系统测试试验拓扑
在以上试验环境中分别采集SKYPE 的语音流量和Filezilla 的文件下载流量数据,将采集好的数据发送至加密流量分析原型系统进行处理。在算法训练过程中,将数据集随机分为两类:80%数据作为训练集,20%作为测试集。
在算法性能数据方面,采用精确率和召回率进行性能评估。表2 给出了系统在采用K 均值监督算法进行测试试验时的相关结果。
表2 测试实验结果
从结果可以看出,本文设计的系统可以以平均84.7%的精确度分析辨识出相应的加密流量,其系统的可用性和适用性有效。
4 结 语
当前,基于加密技术的攻击行为、攻击手法将层出不穷,而现有大多数网络安全设备对包含在加密流量中的网络攻击、恶意软件无能为力,加密流量的检测与防御已经成为网络空间安全对抗的核心焦点。本文设计了一种加密流量行为分析系统,采用机器学习的方式,对明文流量、正常加密流量、恶意加密流量、非法加密流量等进行特征提取和行为分析,可以发现隐藏在加密流量中的攻击行为、恶意行为和非法加密行为,对于安全人员掌握网络安全态势、发现网络异常具有重要意义。当然,加密流量行为分析系统的智能算法调整、流量模型建立还需要进一步深化研究和实际测试。