CN115766204B - 一种针对加密流量的动态ip设备标识***及方法 - Google Patents
一种针对加密流量的动态ip设备标识***及方法 Download PDFInfo
- Publication number
- CN115766204B CN115766204B CN202211420599.5A CN202211420599A CN115766204B CN 115766204 B CN115766204 B CN 115766204B CN 202211420599 A CN202211420599 A CN 202211420599A CN 115766204 B CN115766204 B CN 115766204B
- Authority
- CN
- China
- Prior art keywords
- data
- tls
- data packet
- fingerprint
- traffic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 239000013598 vector Substances 0.000 claims abstract description 46
- 238000000605 extraction Methods 0.000 claims abstract description 24
- 238000007621 cluster analysis Methods 0.000 claims abstract description 21
- 238000004458 analytical method Methods 0.000 claims abstract description 13
- 238000004422 calculation algorithm Methods 0.000 claims description 50
- 238000004364 calculation method Methods 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 18
- 238000007781 pre-processing Methods 0.000 claims description 18
- 238000013500 data storage Methods 0.000 claims description 5
- 235000014510 cooky Nutrition 0.000 claims description 4
- 230000000694 effects Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 claims description 4
- 238000000926 separation method Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 abstract description 11
- 238000012544 monitoring process Methods 0.000 abstract description 2
- 238000010801 machine learning Methods 0.000 description 9
- 230000006399 behavior Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种针对加密流量的动态IP设备标识***及方法,属于网络监测技术领域,包括流量流量采集模块、用户指纹提取模块、流特征提取模块和聚类分析模块。该技术部署于网关上,通过对入站的加密流量进行端口镜像复制,然后对这个端口的流量进行捕获,解析,根据解析结果判断是否为TLS/SSL加密流量握手阶段的Client Hello数据包,如果是就会从未加密的Client Hello数据包中提取用户指纹。每一个数据包信息都会存储在各自的数据流列表中,当一个数据流正常结束或超时结束时,都会从流中提取特征信息和释放存储空间,然后对特征进行预处理和向量化。聚类分析模块则对每个流的特征向量进行聚类分析,根据聚类结果对访问设备进行标识,达到能够区分不同访问设备和同一访问设备的目的。
Description
技术领域
一种针对加密流量的动态IP设备标识***及方法,用于动态IP设备标识,属于网络流量监测技术领域,其被测试的对象为具备NAT动态IP地址转换的路由器设备,可自动化的产生测试用例。
背景技术
由于全球互联网的迅速发展,32位大小的IP数量显然无法满足所有网络设备的需求,因此动态IP地址转换的技术被广泛应用。动态IP地址转换是一种重复利用公网IP的技术,多个不同的内网主机可以使用同一IP访问外部资源。这一技术被国内的各大运营厂商(例如联通,移动等)普遍采纳。
尽管动态地址转换技术有效解决了IP地址不足的问题,但是这对基于IP的溯源工作带来了巨大挑战,以往的基于IP的技术难以有效跟踪同一用户不断变化的动态IP,此外随着用户隐私安全的不断重视和TLS/SSL加密技术的广泛应用,网络中的加密流量呈***式增长,当前互联网中超过9成的流量是https加密流量。
因此,用户设备标识问题主要面临着动态IP和流量加密两大关键挑战。当前对于加密流量的识别问题主要利用数据包有效载荷,深度包解析,用户行为模式,机器学习的方法。
许多加密协议会在加密传输前协商密钥,而密钥协议的过程往往是不加密的,可以从这部分明文数据中提取有用的信息。基于有效负载的识别方法就是从未加密的部分检测出少量的信息,然后结合统计方法来识别应用程序或服务。在文献《Markov ChainFingerprinting to Classify Encrypted Traffic》中,Korczynski等人提出了一种识别SSL/TLS的方法。该方法在SSL/TLS协议创建会话时,使用数据包的头来建立指纹,而指纹是基于一阶同质马尔可夫链的。马尔可夫链状态为服务器和客户端的SSL/TLS消息序列建模。
随着网络的发展,基于端口的流量识别分类已经不能满足需要,一种基于深度包检测的识别分类方法正在不时出现。Moore等人设计了一种依赖于完整数据包有效载荷的分类方法。该方法可被视为一个迭代过程,其目标是非常准确地获得特征,然后相应的应用于固定流速将数据包分组为数据流可以更高的有效地处理收集到的信息,并获得必要的背景,以便网络应用被正确识别,所以DPI运行在流上而不是在包上。在文献《A comparisonof supervised machine learning algorithms for classification ofcommunications network traffic》中,Moore等人采取的第一个步骤是基于数据包的五元组数据包被聚合成一个流。当它是一个TCP网络数据流(传输控制协议网络数据流)时,还可以使用额外的语义来确定进程的开始和结束时间。第二步是根据不同的标准反复测试流的特征,直到获得非常确定的应用程序识别。这个过程包括9种不同的识别方法。DPI技术是Layer捕获工具,捕获多个数据包,并进行一定的模式匹配,找到符合其特征值的应用程序。
基于机器学***稳性。基于机器学习的识别方法也可用于细化分类。在文献《Analyzing Android Encrypted Network Traffic toldentify User Actions》中,Conti等人提出了一种可用于识别用户行为的方法,该方法考虑了三个时间序列:(i)一个时间序列仅由出站数据包获得;(ii)另一个时间序列仅考虑由出站数据包传输的字节获得;(iii)第三个时间序列由入站和出站数据包传输的字节结合(按时间排序)获得。从不同的用户行为时间序列得到的累积图的″形状″是不同的。研究提出的分类方法试图学习与特定用户行为相关的网络流量的″形状″,并旨在通过对″形状″的分类来识别用户行为。
综上所述,现有技术存在如下技术问题:
1.现有技术使用机器学习或深度学习方法对网络流特征进行分析判断流量的行为,但无法对动态IP中的加密流量进行有效的用户设备标识;
2.现有技术对加密流量的分析依赖于数据包中的有效载荷,这种方法部署在网路中运行时间开销大,检测性能低,甚至会影响正常流量的传输,对正常业务造成干扰。
3.现有技术大多使用单一技术或方法,没有综合性地考虑用户设备的不同对网路流量的影响,从而造成准确率低和误报率高的问题。
发明内容
针对上述研究的问题,本发明的目的在于提供一种针对加密流量的动态IP设备标识***及方法,解决现有技术使用机器学习或深度学习方法对网络流特征进行分析判断流量的行为,但无法对动态IP中的加密流量进行有效的用户设备标识。
为了达到上述目的,本发明采用如下技术方案:
一种针对加密流量的动态IP设备标识***,包括以下模块:
流量采集模块:使用端口镜像的方法捕获流量,并对捕获的每一个数据包的各层协议字段进行解析,然后基于端口的方法判断该数据包是否是TLS/SSL加密流量;
用户指纹提取模块:针对TLS/SSL加密流量的数据包,对是在握手阶段的Clienthello数据包进行解析,以提取出指纹特征,再将提取出的所有指纹特征按顺序拼接成字符串,并计算其哈希值作为用户指纹并存储到数据库中,其中,指纹特征包括TLS/SSL协议版本,用户支持的加密算法、支持扩展列表、椭圆曲线和椭圆曲线格式,按顺序即指依次按TLS/SSL协议版本,用户支持的加密算法、支持扩展列表、椭圆曲线和椭圆曲线格式拼接成字符串;
流特征提取模块:按照五元组将流量采集模块采集的数据包划分成不同的流,然后以流为单元并结合会话id进行存储,存储后统计各数据流的流特征,并对统计得到的流特征进行预处理,得到数据格式一致、对应各数据流的特征向量,其中,流特征包括数据包平均大小、传输速率和数据包数量;
聚类分析模块:判断各数据流是否属于之前已记录的用户连接,若是已记录的用户连接,用于优化聚类算法;否则,从数据库中检索该数据流的用户指纹,则基于优化后的聚类算法将该数据流的特征向量与同一用户指纹下的已记录的数据流的特征向量进行聚类分析根据聚类分析结果判断此数据流是否为新用户连接。
进一步,所述流量采集模块包括以下步骤:
端口镜像和流量捕获:将所有入站流量备份复制到某一个特定端口,然后使用tcpdump或wireshark进行流量捕获;
数据包解析:按照协议格式对捕获流量中的数据包逐层解析,得到基本数据,基本数据包括源IP地址、源端口号、目的IP地址、目的端口号、协议类型、数据包大小和协议类型;
Client Hello包判断:首先基于协议类型判断各数据包是否使用TLS/SSL协议进行加密,即将各数据包携带的有效载荷按照TLS/SSL协议格式进行解析,得到TLS/SSL协议主要字段内容,通过检查解析结果是否符合TLS/SSL协议规范来判断该数据包是否使用TLS/SSL协议,然后通过检查Content Type字段和Handshake Type字段判断是否为TLS握手包,其中,该Content Type字段标志了TLS/SSL协议类型,当其值为22时,表示握手包,而Handshake Type字段标志了握手包类型,当其值为01时,表示客户端发送的Client Hello包,其中,主要字段内容包括Content Type字段和Handshake Type字段。
进一步,所述用户指纹提取模块包括以下步骤:
特征字段提取:针对TLS/SSL加密流量的数据包,按照TLS/SSL协议格式对其在握手阶段的Client hello数据包进行解析,以获取生成用户指纹所需要的指纹特征,指纹特征字包括TLS/SSL协议版本、支持的加密算法列表、支持的扩展类型列表、支持的椭圆曲线算法列表以及支持的椭圆曲线格式;
特征字段拼接:用于将指纹特征转换成十进制的数字,然后按顺序依次拼接成字符串;
用户指纹生成:使用哈希算法计对拼接得到的字符串进行计算,将计算所得到哈希值作为用户指纹。
进一步,所述流特征提取模块包括以下步骤:
流数据存储:基于哈希数组的数据结构,将TLS/SSL加密流量的数据包按照五元组划分成不同的数据流,将每个五元组字段拼接为字符串进行哈希计算,哈希值作该数据流的索引,对应该数据流的数据结构内容在内存空间的位置,其中,五元组为源IP地址、源端口号、目的IP地址、目的端口号、协议类型;
数据统计:统计各数据流的特征数据,包括数据包个数、数据流传输大小和数据传输速率,同时记录对应各数据流的会话id到数据库中,会话id即数据包Cookie中的session id,用于判断是否为同一用户的连接;
预处理及向量化:对数据统计得到的结果进行预处理及向量化处理得到特征向量,其中,预处理及向量化处理包括对数据统计后的数据样本缺失值进行填充,对于字符串或文字格式的特征,将其转化为聚类算法能够处理的向量形式,和将同一特征为不同规格的数据转换到同一规格。
进一步,所述聚类分析模块的具体实现步骤为:
从Nginx服务器中的预处理及向量化处理得到的结果中获得各数据流的会话id,并基于会话id是否已被数据库记录判断该数据流是否属于之前的连接,若是,则不进行聚类处理,并直接打上标签并对聚类算法进行评估,评估方法是通过计算轮廓系数来表示聚类效果的好坏;对于其中的一个样本点i:
计算a(i)=average(i向量到所有它属于的簇中其它点的距离)
计算b(i)=min(i向量到某一不包含它的簇内的所有点的平均距离)
那么样本点i的轮廓系数就为:
可见轮廓系数的值是介于[-1,1],越趋近于1代表内聚度和分离度都相对较优,将所有点的轮廓系数求平均,得到该聚类结果总的轮廓系数;调整聚类算法的参数使得聚类算法的轮廓系数更加接近1,达到迭代次数调整完成,并向数据库中记录结果;
否则,从数据库中检索该数据流所对应的用户指纹,然后将其特征向量与数据库中已记录的同一用户指纹得到的各特征向量进行相似性计算,并判断所有的相似度值是否超出给定阈值,若是,则判断数据流是对一个新的用户设备进行了访问请求,否则,合并两个最相似的簇,同时,将每一个特征向量相似性算结果存在相似度表,直至所有簇都不能与其他簇再进一步合并,其中,每个类别就是一个簇,即一个用户设备,没有数据就0簇,当第一个用户设备流量访问就变成1簇,第二个用户设备流量访问,即会判断这两个流量是否是相似的,依次类推。
一种针对加密流量的动态IP设备标识方法,包括以下步骤:
步骤1:使用端口镜像的方法捕获流量,并对捕获的每一个数据包的各层协议字段进行解析,然后基于端口的方法判断该数据包是否是TLS/SSL加密流量;
步骤2:针对TLS/SSL加密流量的数据包,对是在握手阶段的Client hello数据包进行解析,以提取出指纹特征,再将提取出的所有指纹特征按顺序拼接成字符串,并计算其哈希值作为用户指纹并存储到数据库中,其中,指纹特征包括TLS/SSL协议版本,用户支持的加密算法、支持扩展列表、椭圆曲线和椭圆曲线格式,按顺序即指依次按TLS/SSL协议版本,用户支持的加密算法、支持扩展列表、椭圆曲线和椭圆曲线格式拼接成字符串;
步骤3:按照五元组将步骤1采集的数据包划分成不同的流,然后以流为单元并结合会话id进行存储,存储后统计各数据流的流特征,并对统计得到的流特征进行预处理,得到数据格式一致、对应各数据流的特征向量,其中,流特征包括数据包平均大小、传输速率和数据包数量:
步骤4:通过会话id判断各数据流是否属于之前已记录的用户连接,若是已记录的用户连接,用于优化聚类算法;否则,从数据库中检索该数据流的用户指纹,则基于优化后的聚类算法将该数据流的特征向量与同一用户指纹下的已记录的数据流的特征向量进行聚类分析根据聚类分析结果判断此数据流是否为新用户连接。
进一步,所述步骤1包括以下步骤:
端口镜像和流量捕获:将所有入站流量备份复制到某一个特定端口,然后使用tcpdump或wireshark进行流量捕获;
数据包解析:按照协议格式对捕获流量中的数据包逐层解析,得到基本数据,基本数据包括源IP地址、源端口号、目的IP地址、目的端口号、协议类型、数据包大小和协议类型;
Client Hello包判断:首先基于协议类型判断各数据包是否使用TLS/SSL协议进行加密,即将各数据包携带的有效载荷按照TLS/SSL协议格式进行解析,得到TLS/SSL协议主要字段内容,通过检查解析结果是否符合TLS/SSL协议规范来判断该数据包是否使用TLS/SSL协议,然后通过检查Content Type字段和Handshake Type字段判断是否为TLS握手包,其中,该Content Type字段标志了TLS/SSL协议类型,当其值为22时,表示握手包,而Handshake Type字段标志了握手包类型,当其值为01时,表示客户端发送的Client Hello包,其中,主要字段内容包括Content Type字段和Handshake Type字段。
进一步,所述步骤2包括以下步骤:
特征字段提取:针对TLS/SSL加密流量的数据包,按照TLS/SSL协议格式对其在握手阶段的Client hello数据包进行解析,以获取生成用户指纹所需要的指纹特征,指纹特征字包括TLS/SSL协议版本、支持的加密算法列表、支持的扩展类型列表、支持的椭圆曲线算法列表以及支持的椭圆曲线格式;
特征字段拼接:用于将指纹特征转换成十进制的数字,然后按顺序依次拼接成字符串;
用户指纹生成:使用哈希算法计对拼接得到的字符串进行计算,将计算所得到哈希值作为用户指纹。
进一步,所述步骤3包括以下步骤:
流数据存储:基于哈希数组的数据结构,将TLS/SSL加密流量的数据包按照五元组划分成不同的数据流,将每个五元组字段拼接为字符串进行哈希计算,哈希值作该数据流的索引,对应该数据流的数据结构内容在内存空间的位置,其中,五元组为源IP地址、源端口号、目的IP地址、目的端口号、协议类型;
数据统计:统计各数据流的特征数据,包括数据包个数、数据流传输大小和数据传输速率,同时记录对应各数据流的会话id到数据库中,会话id即数据包Cookie中的sessionid,用于判断是否为同一用户的连接;
预处理及向量化:对数据统计得到的结果进行预处理及向量化处理得到特征向量,其中,预处理及向量化处理包括对数据统计后的数据样本缺失值进行填充,对于字符串或文字格式的特征,将其转化为聚类算法能够处理的向量形式,和将同一特征为不同规格的数据转换到同一规格。
进一步,所述步骤4包括以下步骤:
从Ngi nx服务器中的预处理及向量化处理得到的结果中获得各数据流的会话id,并基于会话id是否已被数据库记录判断该数据流是否属于之前的连接,若是,则不进行聚类处理,并直接打上标签并对聚类算法进行评估,评估方法是通过计算轮廓系数来表示聚类效果的好坏;对于其中的一个样本点i:
计算a(i)=average(i向量到所有它属于的簇中其它点的距离)
计算b(i)=min(i向量到某一不包含它的簇内的所有点的平均距离)
那么样本点i的轮廓系数就为:
可见轮廓系数的值是介于[-1,1],越趋近于1代表内聚度和分离度都相对较优,将所有点的轮廓系数求平均,得到该聚类结果总的轮廓系数;调整聚类算法的参数使得聚类算法的轮廓系数更加接近1,达到迭代次数调整完成,并向数据库中记录结果;
否则,从数据库中检索该数据流所对应的用户指纹,然后将其特征向量与数据库中已记录的同一用户指纹得到的各特征向量进行相似性计算,并判断所有的相似度值是否超出给定阈值,若是,则判断数据流是对一个新的用户设备进行了访问请求,否则,合并两个最相似的簇,同时,将每一个特征向量相似性算结果存在相似度表,直至所有簇都不能与其他簇再进一步合并,其中,每个类别就是一个簇,即一个用户设备,没有数据就0簇,当第一个用户设备流量访问就变成1簇,第二个用户设备流量访问,即会判断这两个流量是否是相似的,依次类推。
本发明同现有技术相比,其有益效果表现在:
一、本技术并非对每一个数据包进行分析,首先针对加密流量握手协议过程中为Client Hello握手包进行指纹特征提取,然后对每一个数据流统计流特征,减少了时间和性能开销;
二、本发明提出的针对加密流量的指纹方法能够有效利用了不同用户设备差异性,只有设备极其相似的情况下才会产生同样的指纹,而又在同一时段同时分配到同一运营商IP的情况概率更低,通过此方法能够有效降低误报率。
三、本发明可以利用Web服务器记录的会话信息,通过会话id明确一个时间段内同一用户发出的所有流量并打上标签,然后对已有的聚类模型进行评估,并不断调整参数,优化模型,进一步提高模型的准确率。
附图说明
图1是本发明的总体架构图;
图2为本发明数据库存储结构示意图;
图3为本发明具体实施场景图;
图4为本发明中用于将指纹特征转换成十进制的数字,然后按顺序依次拼接成字符串的示意图。
具体实施方式
下面将结合附图及具体实施方式对本发明作进一步的描述。
针对如下现实网络场景,其中运营商下有3台不同的用户设备通过同一个运营商网关访问企业的服务器,获取资源。对于企业网关来说,这三台设备的源IP都是运营商网关IP,即223.71.41.15。同一时间这些用户设备占用不同的运营商网关端口,但这些端口是变化的,仅通过端口是无法有效区分这些设备。
因此本发明结合了加密流量用户指纹,会话id和聚类的方法来对访问的用户设备进行标识。主要过程将按照不同模块进行介绍:
一、流量采集模块
流量采集模块部署于企业网关上,需要进行端口镜像,将正常入站流量复制到一个特定端口,避免影响正常网络业务,然后通过这个端口对流量进行捕获,流量捕获可以使用tcpdump,wireshark等工具。然后就是对捕获的每一个数据包进行简单的协议解析,需要获得常见的网络五元组,协议层次等信息。数据包协议格式是固定的,协议解析工作可以使用python的scapy等网络库实现,主要需要对是否加密进行判断,如果使用了加密的方式,那么数据包应用层则是TLS/SSL协议格式,其中的TLS/SSL协议,TLS/SSL协议类型等相关字段可以辅助判断。
一旦明确该数据包为加密流量则进一步判断该数据包是否为密钥协商过程中的TLS握手包,如果是则会先进入指纹提取模块提取用户设备的指纹(即用户指纹),用户指纹提取完成后再进入流特征提取模块;如果不是则会直接进入流特征提取模块存储流数据(即不是client hello包(TLS握手包),直接进入流特征提取模块),提取流特征和数据预处理。
二、指纹提取模块
指纹提取模块针对的是加密流量的密钥协商过程中的Client Hello握手包,这是由于密钥协商过程的数据包携带的是明文信息,密钥协商完成之后的数据都会使用协商的会话密钥进行加密,第三方无法获取加密数据中的任何信息,并且Client Hello包中携带了很多与用户设备相关的信息,包括用户使用的TLS/SSL加密协议版本,加密套件支持的加密算法列表和扩展列表等,两个不同的设备具有明显的差异性。指纹提取模块的主要步骤如下:
1.针对TLS/SSL加密流量的数据包,对数据包的应用层内容进行解析。应用层封装了TLS/SSL协议内容,通过对TLS/SSL协议解析可以获取我们需要的字段值,解析方法为现有的。
2.协议字段提取(特征字段提取,即指纹特征字段)。协议字段提取是从数据包中获取我们需要的字段值,包括TLS/SSL协议版本,用户支持的加密算法列表、支持的扩展类型列表(支持扩展列表)、支持的椭圆曲线算法列表(椭圆曲线)以及椭圆曲线格式等。
3.拼接协议字段。用于将指纹特征转换成十进制的数字,然后按顺序依次拼接成字符串,以图4为例,将协议字段拼接完成后为771,4866-4867-4865-49196-49200-159-52393-52392-52394-49195-49199-158-49188-49192-107-49187-49191-103-49162-49172-57-49161-49171-51-255,11-10-22-23-13-43-45-51,29-23-30-25-24,0-1-2。其中逗号隔开每一个字段,连字符隔开每一个字段内的列表种类;
4.哈希值计算。最后拼接完成的字符串经过哈希算法计算得到用户指纹为c81fc162549590fOe836b538fe5bfdd7。
三、流特征提取模块
流特征提取模块复制将每一个数据包以流为单位存储,当检测到流结束之后就会对流特征进行统计,获取初步的特征列表,然后需要对特征进行预处理并转换成聚类分析模块可以接受的向量格式。
1.流数据存储。流数据存储可以使用哈希数组的数据结构完成,每个五元组对应唯一的一个流,定义一个结构体数组FlowBuff[Size],其中Size为最大流数量,存储的数据流的数量理应低于该值,数组存储的是流特征的结构体,然后对每个五元组字符串SrclP-SrcPort-DstlP-DstPort-protocol进行哈希计算得到一个数字,将该流的统计特征存储到该数字对应的位置。
2.数据统计。以数据流为单位统计一个流的特征数据,包括数据包个数,数据流传输大小,数据传输速率等,同时将数据流对应的会话id在数据库中。
3.预处理和向量化。基于数据统计结果,预处理可能会根据实际情况包含很多步骤,比如样本缺少某个字段值的时候需要补齐缺失值,常见的方法是使用所有样本的该字段平均值或直接用0补齐。然后需要对字符串类型的特征进行数据类型转换,常见的就是将时间格式的字符串转换为整数。最后进行特征缩放,将同一特征使不同规格的数据转换到同一规格,比如将数据包大小都缩放到[-1,1]的区间范围内。
四、聚类分析模块
聚类分析模块首先会获取该数据流的会话id,可以从Nginx服务器中获得,Nginx服务器拥有会话密钥,因此可以对加密流量进行解密获取其中的会话id,一般该数据存储与日志中,因此不需要网关再进行解密一次。会话id能够判断该数据流是否与属于之前的连接。
1.如果该数据流属于之前的连接,则不需要再聚类分析,直接并打上标签并对聚类模型进行评估,调整聚类算法参数和向数据库中记录结果。
2.如果该数据流不属于之前的连接,则从数据库中检索该数据流所对应的哈希值(即用户指纹),然后将数据流的特征向量与数据库存中已记录的同一用户指纹的其他的各特征向量进行相似性计算,并判断所有的相似度值是否超出给定阈值(如,90%)(判断该特征向量是否处于已知的类别),如果是,则能判断是一个新的用户设备进行了访问请求。否则,则会合并两个最相似的簇,这个过程会不断迭代并更新相似度表,直至满足要求。
综上所述,将本发明中的技术部署于网关上,通过对入站的加密流量进行端口镜像复制,然后对这个端口的流量进行捕获,解析,根据解析结果判断是否为TLS/SSL加密流量握手阶段的Client Hello数据包,如果是就会从未加密的Client Hello数据包中提取用户指纹。每一个数据包信息都会存储在各自的数据流列表中,当一个数据流正常结束或超时结束时,都会从流中提取特征信息和释放存储空间,然后对特征进行预处理和向量化。聚类分析模块则对每个流的特征向量进行聚类分析,根据聚类结果对访问设备进行标识,达到能够区分不同访问设备和同一访问设备的目的。
本实施方式提出的处理方式有效且简单,能够处理现实中的复杂情况。例如,在大多数时候,流量传输的都是加密,本方法也能够处理加密流量。以上仅是本发明众多具体应用范围中的代表性实施例,对本发明的保护范围不构成任何限制。凡采用变换或是等效替换而形成的技术方案,均落在本发明权利保护范围之内。
Claims (6)
1.一种针对加密流量的动态IP设备标识***,其特征在于,包括以下模块:
流量采集模块:使用端口镜像的方法捕获流量,并对捕获的每一个数据包的各层协议字段进行解析,然后基于端口的方法判断该数据包是否是TLS/SSL加密流量;
用户指纹提取模块:针对TLS/SSL加密流量的数据包,对是在握手阶段的Client hello数据包进行解析,以提取出指纹特征,再将提取出的所有指纹特征按顺序拼接成字符串,并计算其哈希值作为用户指纹并存储到数据库中,其中,指纹特征包括TLS/SSL协议版本,用户支持的加密算法、支持扩展列表、椭圆曲线和椭圆曲线格式,按顺序即指依次按TLS/SSL协议版本,用户支持的加密算法、支持扩展列表、椭圆曲线和椭圆曲线格式拼接成字符串;
流特征提取模块:按照五元组将流量采集模块采集的数据包划分成不同的流,然后以流为单元并结合会话id进行存储,存储后统计各数据流的流特征,并对统计得到的流特征进行预处理,得到数据格式一致、对应各数据流的特征向量,其中,流特征包括数据包平均大小、传输速率和数据包数量;
聚类分析模块:判断各数据流是否属于之前已记录的用户连接,若是已记录的用户连接,用于优化聚类算法;否则,从数据库中检索该数据流的用户指纹,则基于优化后的聚类算法将该数据流的特征向量与同一用户指纹下的已记录的数据流的特征向量进行聚类分析根据聚类分析结果判断此数据流是否为新用户连接;
所述流特征提取模块包括以下步骤:
流数据存储:基于哈希数组的数据结构,将TLS/SSL加密流量的数据包按照五元组划分成不同的数据流,将每个五元组字段拼接为字符串进行哈希计算,哈希值作该数据流的索引,对应该数据流的数据结构内容在内存空间的位置,其中,五元组为源IP地址、源端口号、目的IP地址、目的端口号、协议类型;
数据统计:统计各数据流的特征数据,包括数据包个数、数据流传输大小和数据传输速率,同时记录对应各数据流的会话id到数据库中,会话id即数据包Cookie中的session id,用于判断是否为同一用户的连接;
预处理及向量化:对数据统计得到的结果进行预处理及向量化处理得到特征向量,其中,预处理及向量化处理包括对数据统计后的数据样本缺失值进行填充,对于字符串或文字格式的特征,将其转化为聚类算法能够处理的向量形式,和将同一特征为不同规格的数据转换到同一规格;
所述聚类分析模块的具体实现步骤为:
从Nginx服务器中的预处理及向量化处理得到的结果中获得各数据流的会话id,并基于会话id是否已被数据库记录判断该数据流是否属于之前的连接,若是,则不进行聚类处理,并直接打上标签并对聚类算法进行评估,评估方法是通过计算轮廓系数来表示聚类效果的好坏;对于其中的一个样本点 i:
计算a(i)=average(i向量到所有它属于的簇中其它点的距离)
计算b(i)=min(i向量到某一不包含它的簇内的所有点的平均距离)
那么样本点i的轮廓系数就为:
可见轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优,将所有点的轮廓系数求平均,得到该聚类结果总的轮廓系数;调整聚类算法的参数使得聚类算法的轮廓系数更加接近1,达到迭代次数调整完成,并向数据库中记录结果;
否则,从数据库中检索该数据流所对应的用户指纹,然后将其特征向量与数据库中已记录的同一用户指纹得到的各特征向量进行相似性计算,并判断所有的相似度值是否超出给定阈值,若是,则判断数据流是对一个新的用户设备进行了访问请求,否则,合并两个最相似的簇,同时,将每一个特征向量相似性算结果存在相似度表,直至所有簇都不能与其他簇再进一步合并,其中,每个类别就是一个簇,即一个用户设备,没有数据就0簇,当第一个用户设备流量访问就变成1簇,第二个用户设备流量访问,即会判断这两个流量是否是相似的,依次类推。
2.根据权利要求1所述的一种针对加密流量的动态IP设备标识***,其特征在于:所述流量采集模块包括以下步骤:
端口镜像和流量捕获:将所有入站流量备份复制到某一个特定端口,然后使用tcpdump或wireshark进行流量捕获;
数据包解析:按照协议格式对捕获流量中的数据包逐层解析,得到基本数据,基本数据包括源IP地址、源端口号、目的IP地址、目的端口号、协议类型、数据包大小和协议类型;
Client Hello包判断:首先基于协议类型判断各数据包是否使用TLS/SSL协议进行加密,即将各数据包携带的有效载荷按照TLS/SSL协议格式进行解析,得到TLS/SSL协议主要字段内容,通过检查解析结果是否符合TLS/SSL协议规范来判断该数据包是否使用TLS/SSL协议,然后通过检查Content Type字段和Handshake Type字段判断是否为TLS握手包,其中,该Content Type字段标志了TLS/SSL协议类型,当其值为22时,表示握手包,而Handshake Type字段标志了握手包类型,当其值为01时,表示客户端发送的Client Hello包,其中,主要字段内容包括Content Type字段和Handshake Type字段。
3.根据权利要求2所述的一种针对加密流量的动态IP设备标识***,其特征在于:所述用户指纹提取模块包括以下步骤:
特征字段提取:针对TLS/SSL加密流量的数据包,按照TLS/SSL协议格式对其在握手阶段的Client hello数据包进行解析,以获取生成用户指纹所需要的指纹特征,指纹特征字包括TLS/SSL协议版本、支持的加密算法列表、支持的扩展类型列表、支持的椭圆曲线算法列表以及支持的椭圆曲线格式;
特征字段拼接:用于将指纹特征转换成十进制的数字,然后按顺序依次拼接成字符串;
用户指纹生成:使用哈希算法计对拼接得到的字符串进行计算,将计算所得到哈希值作为用户指纹。
4.一种针对加密流量的动态IP设备标识方法,其特征在于,包括以下步骤:
步骤1:使用端口镜像的方法捕获流量,并对捕获的每一个数据包的各层协议字段进行解析,然后基于端口的方法判断该数据包是否是TLS/SSL加密流量;
步骤2:针对TLS/SSL加密流量的数据包,对是在握手阶段的Client hello数据包进行解析,以提取出指纹特征,再将提取出的所有指纹特征按顺序拼接成字符串,并计算其哈希值作为用户指纹并存储到数据库中,其中,指纹特征包括TLS/SSL协议版本,用户支持的加密算法、支持扩展列表、椭圆曲线和椭圆曲线格式,按顺序即指依次按TLS/SSL协议版本,用户支持的加密算法、支持扩展列表、椭圆曲线和椭圆曲线格式拼接成字符串;
步骤3:按照五元组将步骤1采集的数据包划分成不同的流,然后以流为单元并结合会话id进行存储,存储后统计各数据流的流特征,并对统计得到的流特征进行预处理,得到数据格式一致、对应各数据流的特征向量,其中,流特征包括数据包平均大小、传输速率和数据包数量;
步骤4:通过会话id判断各数据流是否属于之前已记录的用户连接,若是已记录的用户连接,用于优化聚类算法;否则,从数据库中检索该数据流的用户指纹,则基于优化后的聚类算法将该数据流的特征向量与同一用户指纹下的已记录的数据流的特征向量进行聚类分析根据聚类分析结果判断此数据流是否为新用户连接;
所述步骤3包括以下步骤:
流数据存储:基于哈希数组的数据结构,将TLS/SSL加密流量的数据包按照五元组划分成不同的数据流,将每个五元组字段拼接为字符串进行哈希计算,哈希值作该数据流的索引,对应该数据流的数据结构内容在内存空间的位置,其中,五元组为源IP地址、源端口号、目的IP地址、目的端口号、协议类型;
数据统计:统计各数据流的特征数据,包括数据包个数、数据流传输大小和数据传输速率,同时记录对应各数据流的会话id到数据库中,会话id即数据包Cookie中的session id,用于判断是否为同一用户的连接;
预处理及向量化:对数据统计得到的结果进行预处理及向量化处理得到特征向量,其中,预处理及向量化处理包括对数据统计后的数据样本缺失值进行填充,对于字符串或文字格式的特征,将其转化为聚类算法能够处理的向量形式,和将同一特征为不同规格的数据转换到同一规格;
所述步骤4包括以下步骤:
从Nginx服务器中的预处理及向量化处理得到的结果中获得各数据流的会话id,并基于会话id是否已被数据库记录判断该数据流是否属于之前的连接,若是,则不进行聚类处理,并直接打上标签并对聚类算法进行评估,评估方法是通过计算轮廓系数来表示聚类效果的好坏;对于其中的一个样本点 i:
计算a(i)=average(i向量到所有它属于的簇中其它点的距离)
计算b(i)=min(i向量到某一不包含它的簇内的所有点的平均距离)
那么样本点i的轮廓系数就为:
可见轮廓系数的值是介于 [-1,1] ,越趋近于1代表内聚度和分离度都相对较优,将所有点的轮廓系数求平均,得到该聚类结果总的轮廓系数;调整聚类算法的参数使得聚类算法的轮廓系数更加接近1,达到迭代次数调整完成,并向数据库中记录结果;
否则,从数据库中检索该数据流所对应的用户指纹,然后将其特征向量与数据库中已记录的同一用户指纹得到的各特征向量进行相似性计算,并判断所有的相似度值是否超出给定阈值,若是,则判断数据流是对一个新的用户设备进行了访问请求,否则,合并两个最相似的簇,同时,将每一个特征向量相似性算结果存在相似度表,直至所有簇都不能与其他簇再进一步合并,其中,每个类别就是一个簇,即一个用户设备,没有数据就0簇,当第一个用户设备流量访问就变成1簇,第二个用户设备流量访问,即会判断这两个流量是否是相似的,依次类推。
5.根据权利要求4所述的一种针对加密流量的动态IP设备标识方法,其特征在于:所述步骤1包括以下步骤:
端口镜像和流量捕获:将所有入站流量备份复制到某一个特定端口,然后使用tcpdump或wireshark进行流量捕获;
数据包解析:按照协议格式对捕获流量中的数据包逐层解析,得到基本数据,基本数据包括源IP地址、源端口号、目的IP地址、目的端口号、协议类型、数据包大小和协议类型;
Client Hello包判断:首先基于协议类型判断各数据包是否使用TLS/SSL协议进行加密,即将各数据包携带的有效载荷按照TLS/SSL协议格式进行解析,得到TLS/SSL协议主要字段内容,通过检查解析结果是否符合TLS/SSL协议规范来判断该数据包是否使用TLS/SSL协议,然后通过检查Content Type字段和Handshake Type字段判断是否为TLS握手包,其中,该Content Type字段标志了TLS/SSL协议类型,当其值为22时,表示握手包,而Handshake Type字段标志了握手包类型,当其值为01时,表示客户端发送的Client Hello包,其中,主要字段内容包括Content Type字段和Handshake Type字段。
6.根据权利要求5所述的一种针对加密流量的动态IP设备标识方法,其特征在于:所述步骤2包括以下步骤:
特征字段提取:针对TLS/SSL加密流量的数据包,按照TLS/SSL协议格式对其在握手阶段的Client hello数据包进行解析,以获取生成用户指纹所需要的指纹特征,指纹特征字包括TLS/SSL协议版本、支持的加密算法列表、支持的扩展类型列表、支持的椭圆曲线算法列表以及支持的椭圆曲线格式;
特征字段拼接:用于将指纹特征转换成十进制的数字,然后按顺序依次拼接成字符串;
用户指纹生成:使用哈希算法计对拼接得到的字符串进行计算,将计算所得到哈希值作为用户指纹。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211420599.5A CN115766204B (zh) | 2022-11-14 | 2022-11-14 | 一种针对加密流量的动态ip设备标识***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211420599.5A CN115766204B (zh) | 2022-11-14 | 2022-11-14 | 一种针对加密流量的动态ip设备标识***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115766204A CN115766204A (zh) | 2023-03-07 |
CN115766204B true CN115766204B (zh) | 2024-04-26 |
Family
ID=85370337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211420599.5A Active CN115766204B (zh) | 2022-11-14 | 2022-11-14 | 一种针对加密流量的动态ip设备标识***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115766204B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105938562A (zh) * | 2016-04-13 | 2016-09-14 | 中国科学院信息工程研究所 | 一种自动化网络应用指纹提取方法及*** |
CN108600414A (zh) * | 2018-05-09 | 2018-09-28 | 中国平安人寿保险股份有限公司 | 设备指纹的构建方法、装置、存储介质及终端 |
CN109068272A (zh) * | 2018-08-30 | 2018-12-21 | 北京三快在线科技有限公司 | 相似用户识别方法、装置、设备及可读存储介质 |
CN109672650A (zh) * | 2017-10-17 | 2019-04-23 | 阿里巴巴集团控股有限公司 | 网站分类***、方法及数据处理方法 |
CN111277587A (zh) * | 2020-01-19 | 2020-06-12 | 武汉思普崚技术有限公司 | 基于行为分析的恶意加密流量检测方法及*** |
CN111277578A (zh) * | 2020-01-14 | 2020-06-12 | 西安电子科技大学 | 加密流量分析特征提取方法、***、存储介质、安全设备 |
CN112019574A (zh) * | 2020-10-22 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 异常网络数据检测方法、装置、计算机设备和存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109936512B (zh) * | 2017-12-15 | 2021-10-01 | 华为技术有限公司 | 流量分析方法、公共服务流量归属方法及相应的计算机*** |
-
2022
- 2022-11-14 CN CN202211420599.5A patent/CN115766204B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105938562A (zh) * | 2016-04-13 | 2016-09-14 | 中国科学院信息工程研究所 | 一种自动化网络应用指纹提取方法及*** |
CN109672650A (zh) * | 2017-10-17 | 2019-04-23 | 阿里巴巴集团控股有限公司 | 网站分类***、方法及数据处理方法 |
CN108600414A (zh) * | 2018-05-09 | 2018-09-28 | 中国平安人寿保险股份有限公司 | 设备指纹的构建方法、装置、存储介质及终端 |
CN109068272A (zh) * | 2018-08-30 | 2018-12-21 | 北京三快在线科技有限公司 | 相似用户识别方法、装置、设备及可读存储介质 |
CN111277578A (zh) * | 2020-01-14 | 2020-06-12 | 西安电子科技大学 | 加密流量分析特征提取方法、***、存储介质、安全设备 |
CN111277587A (zh) * | 2020-01-19 | 2020-06-12 | 武汉思普崚技术有限公司 | 基于行为分析的恶意加密流量检测方法及*** |
CN112019574A (zh) * | 2020-10-22 | 2020-12-01 | 腾讯科技(深圳)有限公司 | 异常网络数据检测方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
武思齐 ; 王俊峰 ; .基于数据流多维特征的移动流量识别方法研究.四川大学学报(自然科学版).(02),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115766204A (zh) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8065722B2 (en) | Semantically-aware network intrusion signature generator | |
CN111277570A (zh) | 数据的安全监测方法和装置、电子设备、可读介质 | |
KR101295708B1 (ko) | 트래픽 수집장치, 트래픽 분석장치, 시스템 및 그 분석방법 | |
CN110611640A (zh) | 一种基于随机森林的dns协议隐蔽通道检测方法 | |
CN111064678A (zh) | 基于轻量级卷积神经网络的网络流量分类方法 | |
CN110417729B (zh) | 一种加密流量的服务与应用分类方法及*** | |
CN112804253B (zh) | 一种网络流量分类检测方法、***及存储介质 | |
CN112217763A (zh) | 一种基于机器学习的隐蔽tls通信流检测方法 | |
CN115134250B (zh) | 一种网络攻击溯源取证方法 | |
US20240064107A1 (en) | System for classifying encrypted traffic based on data packet | |
CN111147394A (zh) | 一种远程桌面协议流量行为的多级分类检测方法 | |
CN112800424A (zh) | 一种基于随机森林的僵尸网络恶意流量监测方法 | |
CN114157502A (zh) | 一种终端识别方法、装置、电子设备及存储介质 | |
CN111182002A (zh) | 基于http首个问答包聚类分析的僵尸网络检测装置 | |
CN115865534B (zh) | 一种基于恶意加密流量检测方法、***、装置及介质 | |
CN115766204B (zh) | 一种针对加密流量的动态ip设备标识***及方法 | |
CN115051874B (zh) | 一种多特征的cs恶意加密流量检测方法和*** | |
EP3576365B1 (en) | Data processing device and method | |
CN113382003B (zh) | 一种基于两级过滤器的rtsp混合入侵检测方法 | |
CN111371727A (zh) | 一种针对ntp协议隐蔽通信的检测方法 | |
CN111274235B (zh) | 一种未知协议的数据清洗和协议字段特征提取方法 | |
CN114465786A (zh) | 一种加密网络流量的监控方法 | |
Hong et al. | A sensitive information detection method based on network traffic restore | |
CN116668085B (zh) | 基于lightGBM的流量多进程入侵检测方法及*** | |
CN116743506B (zh) | 一种基于四元数卷积神经网络的加密流量识别方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |