CN111310796B - 一种面向加密网络流的Web用户点击识别方法 - Google Patents
一种面向加密网络流的Web用户点击识别方法 Download PDFInfo
- Publication number
- CN111310796B CN111310796B CN202010059755.4A CN202010059755A CN111310796B CN 111310796 B CN111310796 B CN 111310796B CN 202010059755 A CN202010059755 A CN 202010059755A CN 111310796 B CN111310796 B CN 111310796B
- Authority
- CN
- China
- Prior art keywords
- web
- network
- tcp connection
- time
- classifier
- 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 67
- 238000012549 training Methods 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims abstract description 19
- 230000006399 behavior Effects 0.000 claims description 23
- 239000011159 matrix material Substances 0.000 claims description 23
- 238000013515 script Methods 0.000 claims description 17
- 230000006854 communication Effects 0.000 claims description 12
- 238000009826 distribution Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 8
- 230000004931 aggregating effect Effects 0.000 claims description 5
- 238000004458 analytical method Methods 0.000 claims description 4
- 238000010276 construction Methods 0.000 claims description 4
- 238000010801 machine learning Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 238000007635 classification algorithm Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 239000000523 sample Substances 0.000 description 12
- 230000004044 response Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请的技术方案公开了一种面向加密网络流的Web用户点击识别方法,属于网络的技术领域。本申请的面向加密网络流的Web用户点击识别方法,主要包括网络侧采集web流数据、构造训练样本、训练分类器产生识别模型、向分类器输入web流进行识别这四大步骤。本申请的面向加密网络流的Web用户点击识别方法,利用进出网络边界的流量,根据HTTP(S)请求产生的过程,从混杂的Web网络流中区分出用户点击和自动请求分别产生的HTTP(S)请求所对应的网络流,从而达到对用户点击的有效识别。
Description
技术领域
本发明属于网络的技术领域,具体涉及一种在网络数据流中识别网页用户点击对象的方法。
背景技术
网页(web)通常包含多种内容,如文字、图片、视频等,网页上的每一个资源都需要通过一次“请求-响应”过程来获取。当用户在浏览器输入网页地址或者点击目标URL时,客户端与服务器之间的通信过程可以被总结为以下四步:客户端浏览器向服务器发出网页文件的请求,这一操作产生的请求被称为用户点击;服务器向客户端返回带有网页文件的响应,网页文件中包含了所有指向网页中其他内嵌对象的超链接;浏览器对返回的响应进行解析,根据网页文件的内嵌资源链接,自动发出一系列的请求,这类请求被称为自动请求;服务器返回对应的内嵌对象文件,浏览器网页加载完成。
随着以Web方式交互的应用的数量的增多,Web流量在网络流量中正扮演着越来越重要的角色。在Web交互中,用户通过一次次的点击实现对不同网站和不同内容的访问。由于一个用户的行为模式是相对固定的,在一段时间内不太可能会发生大的变化,因此如果能够对用户的点击行为精确地进行识别,网络管理员就能够利用这些信息优化网络配置,提升QoS。服务提供商就能够对具体的用户进行建模,甄别出用户感兴趣的内容,刻画用户兴趣,进而预测用户行为。但是,在加密网络流中识别Web用户点击面临着两个主要的挑战:一是用户点击产生的Web对象和自动请求产生的Web对象常常混杂在一起,而且现代网站的高度复杂性也导致自动请求产生的Web对象在数量上远远大于用户点击所产生的Web对象数量。从单个请求的角度上来看,用户点击产生的请求和浏览器自动发出的请求没有显著的不同,如何从众多请求中识别出Web用户点击目标是长期以来的一大挑战。二是近年来互联网用户和服务供应商对网络隐私的关注快速上升,互联网上的加密流量在以每年90%的速度增长。在加密通信下研究人员能够获取到用于判决的信息大大减少,同时以往的方法在加密通信环境下也多数变得不可用了,如何在加密网络流中识别用户点击成为了新的挑战。
目前,识别web用户点击的方法按照部署地点可以分为以下三类:
1、服务器端的用户点击识别,当Web服务器的资源被请求时,服务器会自动生成日志记录,这些记录常被用于分析用户行为,通过对这些日志进行分析,可以识别用户点击。
2、客户端的用户点击识别,在客户端进行用户点击识别,主要是通过部署代理服务器收集数据或者在客户端上安装浏览器插件来识别用户点击行为。
3、网络侧的用户点击识别,在网络侧通过抓取数据包来获得用户点击和自动请求的数据,是一种被动测量的方式,不会被用户所感知。在网络侧的用户点击识别方法可以分为基于HTTP请求的时间差和基于HTTP请求头部字段这两个手段。
但是,现有的识别方法中,在服务器端进行用户点击识别的操作通常发生在数据预处理阶段,主要目的是减少数据量,若以识别用户点击作为最终目标,则准确性还相对较低。在客户端进行用户点击的识别,缺点是在客户端部署Web代理或添加浏览器插件等均需要得到用户的授权,故应用场景十分有限,无法进行大范围部署。在网络侧进行识别,准确率受用户所出的网络环境等外界因素的影响较大,局限性在于它们依赖于HTTP信息,即应用层信息,而在加密通信的环境下应用层的信息在客户端和服务器两端已经被加密,在网络测只能捕捉到无意义的密文,无法解析到应用层的信息,因此在加密通信中此类方法无法应用。
发明内容
为解决前述背景技术里提及的现有技术的一种或者多种不足,本发明提供了一种面向加密网络流的Web用户点击识别方法,能够高效识别用户在进行web浏览时的网络流数据是用户点击产生的还是浏览器自动产生的。
本发明提供的技术方案如下:
一种面向加密网络流的Web用户点击识别方法,包括以下步骤:
步骤一、在网络侧采集数据,在web客户端注入自动脚本来执行模拟用户点击所产生的web网络流;
步骤二、根据步骤一中自动脚本执行模拟用户点击所产生的web网络流来构造训练样本;
步骤三、向分类器输入步骤二所构造的训练样本,训练分类器生成识别用户点击的识别模型;
步骤四、利用步骤二构造训练样本所使用的步骤,将任意真实的用户点击所产生的web网络流构造为待识别样本,然后把待识别样本输入步骤三中训练好识别模型的分类器进行学习,最后由分类器输出识别结果。
进一步地,在步骤一中,更具体的web网络流采集过程为:在web客户端注入并执行自动脚本进行Web浏览,以模拟用户的真实点击行为,同时在网络侧通过Wireshark网络封包分析软件抓取自动脚本所产生的网络流数据包;其中,自动脚本在模拟用户进行Web浏览点击行为时,会将具体的点击操作进行记录,用于标记网络流数据为用户点击而非web浏览器自动生产。
进一步地,在步骤二中更具体过程分为两个阶段:
第一阶段,对步骤一中所采集的web网络流,对所有网络流数据包按照时间先后顺序进行线性扫描分析,以聚合多个TCP连接为一个网络流F;
第二阶段,对每个网络流F选定观测特征,在观测区间内对选定的特征进行量化,得到观测值序列,用多个观测值序列形成一个二维时空矩阵来描述区间内网络流的时变行为,从而完成训练样本的构造。
进一步地,在步骤二第一阶段中,对每个网络流数据包的分析,以及聚合TCP连接的过程,依次为如下第一小步至第四小步的操作:
第一小步、如果数据包头部标志位的值为0x02,则该数据包代表一个新的TCP连接被建立;接着初始化一个TCP连接对象C0并记录下来,并将该数据包的源IP、目的IP、源端口、目的端口、主机名、起始时间和结束时间作为连接对象C0的属性;
第二小步、如果数据包负载部分是TLS握手消息且消息类型为Client Hello,其扩展部分中会有一个用以向服务器指明请求的具体域名server_name字段,则将这个server_name字段的内容指定为该数据包对应的TCP连接的主机名,对非加密通信,则在http请求的头部中的Host字段获取主机名,以主机名的获取表示一个TCP连接的建立;接着初始化一个TCP连接对象并记录下来,并将该数据包的源IP、目的IP、源端口、目的端口、主机名、起始时间和结束时间作为连接对象的属性;
第三小步、对于不符合第一小步和第二小步条件的其余数据包,通过每一个数据包的源IP、目的IP、源端口、目的端口来查找TCP连接是否有相应的连接对象;若没有连接对象,则跳过该数据包,不进行任何操作;若有连接对象,则分为两种情况:
当相应TCP连接的结束时间与当前数据包的时间的差值大于阈值TTCP,则不进行任何操作;
当相应TCP连接的结束时间与当前数据包的时间的差值小于阈值TTCP,则更新对应的TCP连接的结束时间以表示一个TCP连接的建立;接着初始化一个TCP连接对象并记录下来,并将该数据包的源IP、目的IP、源端口、目的端口、主机名、起始时间和结束时间作为连接对象的属性;
第四小步、在第一小步至第三小步确定初始化TCP连接对象后,将网络侧捕捉到的数据包聚合为n个TCP连接对象{C0,C1,...,Cn},其中,每一个TCP连接对象都包含第一小步中的相应七个属性的字段;
对于所有的TCP连接{C0,G1,...,Cn},如果其中任意的两个TCP连接对象Ca和Cb具有相同的主机名,且两个TCP连接对象Ca和Cb的时间差△t满足条件Δt<Tflow,则将这两个TCP连接聚合到同一个网络流F中,且F的起始时间取TCP连接对象Ca和Cb中两者中较早的一个起始时间,结束时间取TCP连接对象Ca和Cb两者结束时间中较晚的一个结束时间,其余属性从TCP连接对象Ca和Cb继承,从而得到一系列的网络流F={F0,F1,...,FN}。
进一步地,在步骤二的第一阶段形成网络流F后,第二阶段使用这一系列网络流F={F0,F1,...,FN}及其起止时间构造训练样本,具体的构造过程为:
设定观测区间的长度为ToI,选定一系列网络流的特征作为观测特征;将观测区间以长度为Tw的时间窗口进行等分,时间窗口的个数为在每个时间窗口Tw内对选定的特征进行量化,得到相应的观测值序列Wi={W(i,1),W(i,2),...,W(i,k)};在每个观测区间上用一个二维时空矩阵M=[W1,W2,...,Wn]来描述观测区间内网络流的时变行为,从而形成训练样本。
进一步地,在步骤三中,先利用基于机器学习中处理类别不平衡数据的EasyEnsemble分类算法构建分类器;
再将步骤二中构造的所有观测矩阵M进行标记,将其分为MP和MN,其中MP表示用户点击产生的网络流对应的观测矩阵,并将其定义为正例;MN表示自动请求产生的网络流对应的观测矩阵,并将其定义为反例;
最后对分类器输入全部进行训练观测矩阵,形成识别模型。
进一步地,在步骤三中,具体的分类器训练如下面的第一小步至第四小步:
第二小步、初始化K个Adaboost分类器{G1(x),G2(x)...GK(x)},每个分类器各使用MN的一个子集和全部的MP作为训练数据集,即Gi(x)的训练集为其中第i个Adaboost分类器的训练过程依次如下序号1和序号2:
1、初始化训练样本的权值分布
2、对于j=1,2,...,J,使用具有权值分布Dj的训练数据集进行学习,得到弱分类器Gi,j(x);再计算Gi,j(x)在训练数据集上的分类误差率:
em=P(Gi,j(xi)≠yi)
然后更新训练数据集的权值分布:
Dj+1=(w(j+1,1),...,w(j+1,N))
其中,Zj是归一化因子;
第三小步、构建基本分类器的线性组合
第四小步、输出Adaboost分类器
得到K个Adaboost分类器后,再用简单多数投票法组合这K个Adaboost分类器从而形成识别模型,输出的集成分类器为
进一步地,在步骤四中,把任意真实用户点击产生的web网络流用步骤二的方法构造而成的观测矩阵,再平铺化为一维序列输入到步骤三的分类器识别模型中进行用户点击识别。
与现有技术相比,本申请的面向加密网络流的Web用户点击识别方法,其有益效果在于:本方法在网络侧,利用进出网络边界的流量,根据HTTP(S)请求产生的过程,从混杂的Web网络流中区分出用户点击和自动请求分别产生的HTTP(S)请求所对应的网络流,从而达到对用户点击的有效识别。通过网络流的时变特征来描述用户点击和自动请求的过程,且适用于加密与非加密HTTP(S)流。基于网络流识别用户点击的方案,有利于分析用户的完整Web行为,又不会局限于特定服务器。在相同复杂度的情况下,该方法在识别用户点击方面比其它现有方法拥有更好的性能。
附图说明
图1为本发明的流程示意图;
图2为web网络流模式的示意图;
图3为所构造的观测矩阵的示意图;
图4为Client Hello报文结构的示意图。
具体实施方式
为进一步阐述本发明的原理与工作过程,现结合说明书附图的内容对其中的一种实施方式进行具体说明。
如图1-图4所示,一种面向加密网络流的Web用户点击识别方法总体分为下文中的四大步骤。
Step1:在网络侧采集数据;
在web客户端注入自动脚本,用自动脚本执行Web浏览行为,用以模拟用户的点击行为,同时在网络侧通过Wireshark软件抓取自动脚本在进行Web浏览过程中的网络流数据包;自动脚本在模拟用户进行Web浏览时同时,会将浏览的具体操作记录下来,在后续的操作中这些记录将用于标记数据,以便区分网络流是用户点击产生的还是流浪器自动产生的。
在Step1中,对所采集到的Web网络流进行分析,可以发现其具有如图2所示的流量模型;
用户点击后产生的web网络流模式,为用户点击所产生的一般情况;当用户点击网页上的超链接或者在浏览器的地址栏中输入URL后,浏览器会发出一个携带相应URL的HTTP(S)请求,以向服务器请求下载该页面文件;随后,服务器返回携带有页面文件的响应;客户端收到来自服务器端的响应之后,对页面文件进行解析,并对其内嵌对象发出相应的请求;服务器端收到来自客户端的请求之后返回带有对应内嵌对象的文件的响应,通信过程结束。
从图2中可以看到用户点击之后产生的第一个网络流和随后的其他网络流相比,其前后的网络流的时变行为模式有所不同,即图2中观测区间Ⅰ中的网络流模式和观测区间Ⅱ、Ⅲ中的网络流模式有着明显的不同,这构成了本方法对点击流和非点击流识别的依据。
在图2中,模式一为点击流的行为模式,即观测区间Ⅰ中的网络流模式;对于模式一,点击流与其后的网络流,一般应具有一个约1RTT(Round-Trip Time)的时间差,这是由前述的通信过程所决定的;模式二为自动流的行为模式,即观测区间Ⅱ和Ⅲ中的网络流模式;对于模式二,在点击流建立约1RTT时间后,由于客户端发出大量的对页面内嵌对象的请求而触发了大量的自动流;对于每个自动流来说,在其生命周期内通信环境中新建的和活跃的流的数量明显多于点击流。模式一与模式二的区别构成了本方法对这两类流进行分类的基础。
定义构造训练样本和训练分类器识别模型两步骤中需要用到的数据,用下列表1中的数学符号的形式抽象出来进行表示;
表1
在step1的流量模型基础上,用待识别网络流的起始时间,为起点的时间区间内的网络流时变特征值,作为识别用户点击流、自动请求流(非点击流)的依据。
Step2:构造训练样本;
在网络侧捕捉到的web网络流,首先将其聚合成多个TCP连接对象,每个TCP连接对象都具有起始时间、结束时间、源IP、目的IP、源端口、目的端口、主机名七个属性;流量聚合的主要依据是每个数据包的四元组(包括源IP,目的IP,源端口,目的端口);对利用Wireshark网络数据包分析软件所捕获到的所有数据包按照时间先后顺序进行线性扫描,对于每个TCP数据包,依次进行如下1、2、3和4的操作:
1.如果数据包头部标志位的值为0x02,也就是SYN位被置为1且其他位被置为0,该数据包即标志着一个新的TCP连接被建立;因此需要初始化一个TCP连接对象C0并记录下来,并将该数据包的四元组(源IP,目的IP,源端口,目的端口)、主机名、起始时间和结束时间作为C0的属性;通过这种方式可以确保每一个数据包都有对应的TCP连接对象;
2.如果数据包负载部分是TLS握手消息且消息类型为Client Hello,那么需要对其扩展部分进行进一步地解析;TLS报文的结构如图4所示,当TLS报文的握手消息类型为Client Hello时,其扩展部分中会有一个server_name字段用以向服务器指明请求的具体域名,此处将这个字段的内容指定为这个数据包对应的TCP连接的主机名;对于非加密通信来说,同样可以在http请求的头部中的Host字段获取到相关的信息;相应的,初始化一个TCP连接对象并记录下来,并将该数据包的四元组(源IP,目的IP,源端口,目的端口)、主机名、起始时间和结束时间作为TCP连接对象的属性
对于每一个TCP连接来说,都能通过这种方式确定其Hostname属性的内容;Hostname属性是本方法将不同的TCP连接聚合为同一网络流的重要依据;
3.对于其他的数据包,通过每一个数据包的四元组(源IP地址,目的IP地址,源端口,目的端口)查找是否匹配有对应的TCP连接对象;
若有匹配的TCP连接对象,可以分为两种情况:一是对应的TCP连接的结束时间与当前数据包的时间的差值小于阈值TTCP,则更新对应的TCP连接的结束时间,相应的,初始化一个TCP连接对象并记录下来,并将该数据包的四元组(源IP,目的IP,源端口,目的端口)、主机名、起始时间和结束时间作为TCP连接对象的属性;二是对应的TCP连接的结束时间与当前数据包的时间的差值大于阈值TTCP,则不进行任何操作;
若没有匹配的TCP连接对象,则跳过该数据包,不进行任何操作;
4.通过上述操作可以将网络侧捕捉到的流量聚合为n个TCP连接对象{C0,C1,...,Cn},且每一个TCP连接对象都具有上述的源IP,目的IP,源端口,目的端口、主机名、起始时间和结束时间七个属性字段;
对于所有的TCP连接{C0,C1,...,Cn},如果其中任意的两个TCP连接Ca和Cb具有相同的主机名(hostname),且它们的时间差Δt满足条件At<Tflow,那么这两个TCP连接将被聚合到同一个网络流F中,且F的起始时间取Ca和Cb中两者中较早的一个起始时间,结束时间取Ca和Cb两者结束时间中较晚的一个,其余属性从Ca和Cb继承;这样,就得到了一系列的网络流F={F0,F1,...,FN}以及它们的起止时间;
接下来将使用这一系列网络流及其起止时间构造训练样本;
根据Step1中的模式一和模式二的分别,使用给定时间区间内的网络流行为模式对点击流和自动流(非点击流)进行识别,以观测区间的起点为待识别网络流的起始时间,观测区间的长度为TOI;选定一系列的特征作为观测特征;为了更好的刻画观测区间内网络流的时变行为,将观测区间等分为多个长度为Tw的时间窗口,时间窗口的个数为通过在每个时间窗口内对选定的特征进行量化可以得到观测值序列Wi={W(i,1),W(i,2),...,W(i,k)};利用上述操作得以在每个观测区间上用一个二维时空矩阵M=[W1,W2,...,Wn]来描述区间内网络流的时变行为;至此完成训练样本的构造。
图3给出了针对一段未知网络流构造观测矩阵的具体例子,经过反复测试对比,TOI=4s,Tw=0.2s,Ttcp=Tflow=1s时识别效果最好。
在实际场景中,自动请求产生的网络流的数量要远远多于用户点击产生的网络流的数量,这是由Web通信过程决定的,而本方法的目的是在所有网络流中识别出少数的由用户点击产生的网络流。
根据以上分析,接下来利用基于机器学习中处理类别不平衡数据的EasyEnsemble分类算法构建分类器,通过建立分类器对用户点击请求和浏览器自动请求产生后群流的行为特征进行学习,最终达到识别任意一段网络流的目的。
Step3:训练分类器生成识别模型;
在本步骤中,需要先根据在Step1中采集到的用户真实浏览行为对Step2中构造的所有观测矩阵M进行标记,将其分为MP和MN,其中MP表示用户点击产生的网络流对应的观测矩阵,为少数类;MN表示自动请求产生的网络流对应的观测矩阵,为多数类;为了方便叙述,将用户点击样本定义为分类中的正例,将自动请求样本定义为反例;
具体训练过程依次如下述的1-4:
2.初始化K个Adaboost分类器{G1(x),G2(x)…GK(x)},每个分类器各使用多数类集合MN的一个子集和全部的少数类集合MP作为训练数据集,即Gi(x)的训练集为其中第i个Adaboost分类器的训练过程依次如下述的A、B:
A、初始化训练样本的权值分布
B、对于j=1,2,...,J有:
i.使用具有权值分布Dj的训练数据集进行学习,得到弱分类器Gi,j(x)
ii计算Gi,j(x)在训练数据集上的分类误差率:
em=P(Gi,j(xi)≠yi)
iii.更新训练数据集的权值分布
Dj+1=(w(j+1,1),...,w(j+1,N))
其中,Zj是归一化因子;
3.构建基本分类器的线性组合
4.输出Adaboost分类器
此后可以得到K个Adaboost分类器,本方法使用简单多数投票法组合这K个Adaboost分类器,因此最后输出的集成分类器为
至此,分类器已经训练完毕,由于分类器接收的样本是一维序列,因此需要先将观测矩阵平铺化之后再输入到分类器中。
Step4:对任意网络流的识别;
将Step1中脚本自动执行模拟用户点击行为所产生的web网络流,替换为任意真实的用户点击所产生的需要被识别的web网络流,再根据Step2中构造观测矩阵的方法提取采集到的web网络流来构造待识别样本,并组成待识别观测矩阵M,此矩阵无需标签;
接着将待识别观测矩阵M输入到训练好的分类器G(x)中,每个子分类器Gi(x)会给出投票,最后采用多数法决定输出的标签,即投票中占多数的结果将被输出;若多数子分类器Gi(x)的判定为正例,则M对应的网络流为用户点击产生,反之,则为自动请求。
对本方法的效果进行测试时,编写了自动浏览网页的脚本,利用其对国内几个大型门户网站进行Web浏览,同时在网络侧采集流量数据,之后使用本方法提取到的数据的观测矩阵作为训练样本,共得到14707个观测矩阵,其中为用户点击的有1495个,为自动请求的有13212个。在验证阶段,本方法从用户点击样本和自动请求样本中各随机抽取200个作为验证集,其余样本作为训练集,按照本方法使用训练集进行训练。对于得到的结果,本方法使用查准率P和查全率R以及两者的调和均值来评价。查准率是指对于给定的测试数据集,预测结果为正例中的真正例比例;查全率是指对于给定的测试数据集,真实情况为正例中的真正例比例。在该结果中,用户点击为正例,自动请求为反例。查准率和查全率的调和均值又称F1,计算公式为:
验证本方法的技术方案时重复200次实验,每次重复实验均使用上述方法随即划分训练集和验证集。结果表明,使用本方法的方案得到的P、R、F1分别为0.927、0.944、0.929。效果较好。
对于相同数据集,还使用了在网络侧效果最好的基于机器学习的方法对进行识别,但该方法需要依赖的特征较多,是从多个特征中共同学习到的结果。上述方法与本方法的识别效果如表2所示。
表2
本方法相比现有的识别web用户点击的方法,通过在网络侧,利用进出网络边界的流量,根据HTTP(S)请求产生的过程,从混杂的Web网络流中区分出用户点击和自动请求分别产生的HTTP(S)请求所对应的网络流,从而达到对用户点击的有效识别。通过网络流的时变特征来描述用户点击和自动请求的过程,且适用于加密与非加密HTTP(S)流。基于网络流识别用户点击的方案,有利于分析用户的完整Web行为,又不会局限于特定服务器。在相同复杂度的情况下,该方法在识别用户点击方面比其它现有方法拥有更好的性能。
以上实施方式只是本发明的其中一种方案,用以解释本发明的技术原理,并非本发明的全部实施例。本领域技术人员应当清楚,在上述实施方式的基础上,任何没有做出突出实质性特定和显著进步的等同替换方案,均落入本发明的范围。本发明技术方案的保护范围由权利要求书界定。
Claims (7)
1.一种面向加密网络流的Web用户点击识别方法,其特征在于,包括以下步骤:
步骤一、在网络侧采集数据,在web客户端注入自动脚本来执行模拟用户点击所产生的web网络流;
步骤二、根据步骤一中自动脚本执行模拟用户点击所产生的web网络流来构造训练样本,在步骤二第一阶段中,对每个网络流数据包的分析,以及聚合TCP连接的过程,依次为如下第一小步至第四小步的操作:
第一小步、如果数据包头部标志位的值为0x02,则该数据包代表一个新的TCP连接被建立;接着初始化一个TCP连接对象C 0并记录下来,并将该数据包的源IP、目的IP、源端口、目的端口、主机名、起始时间和结束时间作为连接对象C 0的属性;
第二小步、如果数据包负载部分是TLS握手消息且消息类型为Client Hello,其扩展部分中会有一个用以向服务器指明请求的具体域名server_name字段,则将这个server_name字段的内容指定为该数据包对应的TCP连接的主机名,对非加密通信,则在http请求的头部中的Host字段获取主机名,以主机名的获取表示一个TCP连接的建立;接着初始化一个TCP连接对象并记录下来,并将该数据包的源IP、目的IP、源端口、目的端口、主机名、起始时间和结束时间作为连接对象的属性;
第三小步、对于不符合第一小步和第二小步条件的其余数据包,通过每一个数据包的源IP、目的IP、源端口、目的端口来查找TCP连接是否有相应的连接对象;若没有连接对象,则跳过该数据包,不进行任何操作;若有连接对象,则分为两种情况:
当相应TCP连接的结束时间与当前数据包的时间的差值大于阈值T TCP,则不进行任何操作;
当相应TCP连接的结束时间与当前数据包的时间的差值小于阈值T TCP,则更新对应的TCP连接的结束时间以表示一个TCP连接的建立;接着初始化一个TCP连接对象并记录下来,并将该数据包的源IP、目的IP、源端口、目的端口、主机名、起始时间和结束时间作为连接对象的属性;
第四小步、在第一小步至第三小步确定初始化TCP连接对象后,将网络侧捕捉到的数据包聚合为n个TCP连接对象{C 0,C 1,...,C n},其中,每一个TCP连接对象都包含第一小步中的相应七个属性的字段;
对于所有的TCP连接{C 0,C 1,...,C n},如果其中任意的两个TCP连接对象Ca和C b具有相同的主机名,且两个TCP连接对象Ca和C b的时间差Δt满足条件Δt<T flow,则将这两个TCP连接聚合到同一个网络流F中,且F的起始时间取TCP连接对象Ca和C b中两者中较早的一个起始时间,结束时间取TCP连接对象Ca和C b两者结束时间中较晚的一个结束时间,其余属性从TCP连接对象Ca和C b继承,从而得到一系列的网络流F={F 0,F 1,...,FN};
步骤三、向分类器输入步骤二所构造的训练样本,训练分类器生成识别用户点击的识别模型;
步骤四、利用步骤二构造训练样本所使用的步骤,将任意真实的用户点击所产生的web网络流构造为待识别样本,然后把待识别样本输入步骤三中训练好识别模型的分类器进行学习,最后由分类器输出识别结果。
2.根据权利要求1所述的Web用户点击识别方法,其特征在于,在步骤一中,更具体的web网络流采集过程为:在web客户端注入并执行自动脚本进行Web浏览,以模拟用户的真实点击行为,同时在网络侧通过Wireshark网络封包分析软件抓取自动脚本所产生的网络流数据包;其中,自动脚本在模拟用户进行Web浏览点击行为时,会将具体的点击操作进行记录,用于标记网络流数据为用户点击而非web浏览器自动生产。
3.根据权利要求1所述的Web用户点击识别方法,其特征在于,在步骤二中更具体过程分为两个阶段:
第一阶段,对步骤一中所采集的web网络流,对所有网络流数据包按照时间先后顺序进行线性扫描分析,以聚合多个TCP连接为一个网络流F;
第二阶段,对每个网络流F选定观测特征,在观测区间内对选定的特征进行量化,得到观测值序列,用多个观测值序列形成一个二维时空矩阵来描述区间内网络流的时变行为,从而完成训练样本的构造。
4.根据权利要求1所述的Web用户点击识别方法,其特征在于,在步骤二的第一阶段形成网络流F后,第二阶段使用这一系列网络流F={F 0,F 1,...,F N}及其起止时间构造训练样本,具体的构造过程为:
设定观测区间的长度为T OI,选定一系列网络流的特征作为观测特征;将观测区间以长度为T w的时间窗口进行等分,时间窗口的个数为在每个时间窗口T w内对选定的特征进行量化,得到相应的观测值序列Wi={W(i,1),W(i,2),...,W(i,k)};在每个观测区间上用一个二维时空矩阵M=[W 1,W 2,...,W n]来描述观测区间内网络流的时变行为,从而形成训练样本。
5.根据权利要求4所述的Web用户点击识别方法,其特征在于,在步骤三中,先利用基于机器学习中处理类别不平衡数据的EasyEnsemble分类算法构建分类器;
再将步骤二中构造的所有观测矩阵M进行标记,将其分为M P和M N,其中M P表示用户点击产生的网络流对应的观测矩阵,并将其定义为正例;M N表示自动请求产生的网络流对应的观测矩阵,并将其定义为反例;
最后对分类器输入全部进行训练观测矩阵,形成识别模型。
6.根据权利要求5所述的Web用户点击识别方法,其特征在于,在步骤三中,具体的分类器训练如下面的第一小步至第四小步:
第一小步、对M N进行K次独立随机抽样,每次抽取的样本数量等于|M P|,其中从而得到K个相互独立的子集
第二小步、初始化K个Adaboost分类器{G 1(x),G 2(x)...G K(x)},每个分类器各使用M N的一个子集和全部的M P作为训练数据集,即G i(x)的训练集为其中第i个Adaboost分类器的训练过程依次如下序号1和序号2:
1、初始化训练样本的权值分布
2、对于j=1,2,...,J,使用具有权值分布D j的训练数据集进行学习,得到弱分类器Gi,j(x);再计算G i,j(x)在训练数据集上的分类误差率:
e m=P(Gi,j(xi)≠yi)
然后更新训练数据集的权值分布:
D j+1=(w(j+1,1),...,w(j+1,N))
其中,Z j是归一化因子;
第三小步、构建基本分类器的线性组合
第四小步、输出Adaboost分类器
得到K个Adaboost分类器后,再用简单多数投票法组合这K个Adaboost分类器从而形成识别模型,输出的集成分类器为
7.根据权利要求6所述的Web用户点击识别方法,其特征在于:在步骤四中,把任意真实用户点击产生的web网络流用步骤二的方法构造而成的观测矩阵,再平铺化为一维序列输入到步骤三的分类器识别模型中进行用户点击识别。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010059755.4A CN111310796B (zh) | 2020-01-19 | 2020-01-19 | 一种面向加密网络流的Web用户点击识别方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010059755.4A CN111310796B (zh) | 2020-01-19 | 2020-01-19 | 一种面向加密网络流的Web用户点击识别方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111310796A CN111310796A (zh) | 2020-06-19 |
CN111310796B true CN111310796B (zh) | 2023-05-02 |
Family
ID=71146773
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010059755.4A Active CN111310796B (zh) | 2020-01-19 | 2020-01-19 | 一种面向加密网络流的Web用户点击识别方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111310796B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113704762B (zh) * | 2021-09-02 | 2022-06-21 | 广州大学 | 基于集成学习的恶意软件加密流量检测方法 |
CN115378741B (zh) * | 2022-10-25 | 2023-03-21 | 中国电子科技集团公司第三十研究所 | 一种轻量级的加密应用细粒度行为流量早期识别方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102026187A (zh) * | 2010-12-02 | 2011-04-20 | 大唐微电子技术有限公司 | 用户识别模块及基于该用户识别模块的传输方法、系统 |
CN104270392A (zh) * | 2014-10-24 | 2015-01-07 | 中国科学院信息工程研究所 | 一种基于三分类器协同训练学习的网络协议识别方法及系统 |
CN108900432A (zh) * | 2018-07-05 | 2018-11-27 | 中山大学 | 一种基于网络流行为的内容感知方法 |
CN108989411A (zh) * | 2018-07-05 | 2018-12-11 | 中山大学 | 一种基于网络流的Web用户点击目标识别的方法 |
-
2020
- 2020-01-19 CN CN202010059755.4A patent/CN111310796B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102026187A (zh) * | 2010-12-02 | 2011-04-20 | 大唐微电子技术有限公司 | 用户识别模块及基于该用户识别模块的传输方法、系统 |
CN104270392A (zh) * | 2014-10-24 | 2015-01-07 | 中国科学院信息工程研究所 | 一种基于三分类器协同训练学习的网络协议识别方法及系统 |
CN108900432A (zh) * | 2018-07-05 | 2018-11-27 | 中山大学 | 一种基于网络流行为的内容感知方法 |
CN108989411A (zh) * | 2018-07-05 | 2018-12-11 | 中山大学 | 一种基于网络流的Web用户点击目标识别的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111310796A (zh) | 2020-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102035698B (zh) | 基于决策树分类算法的http隧道检测方法 | |
US10530671B2 (en) | Methods, systems, and computer readable media for generating and using a web page classification model | |
Sija et al. | A survey of automatic protocol reverse engineering approaches, methods, and tools on the inputs and outputs view | |
US20120317151A1 (en) | Model-Based Method for Managing Information Derived From Network Traffic | |
Shen et al. | Webpage fingerprinting using only packet length information | |
US8818927B2 (en) | Method for generating rules and parameters for assessing relevance of information derived from internet traffic | |
CN102724317A (zh) | 一种网络数据流量分类方法和装置 | |
CN111310796B (zh) | 一种面向加密网络流的Web用户点击识别方法 | |
CN114422211B (zh) | 基于图注意力网络的http恶意流量检测方法及装置 | |
Park et al. | Toward fine-grained traffic classification | |
Salman et al. | Data representation for CNN based internet traffic classification: a comparative study | |
CN108989411B (zh) | 一种基于网络流的Web用户点击目标识别的方法 | |
CN110011860A (zh) | 基于网络流量分析的安卓应用识别方法 | |
CN107766234A (zh) | 一种基于移动设备的网页健康度的测评方法、装置及系统 | |
Ren et al. | App identification based on encrypted multi-smartphone sources traffic fingerprints | |
Safari Khatouni et al. | Machine learning based classification accuracy of encrypted service channels: analysis of various factors | |
Min et al. | Online Internet traffic identification algorithm based on multistage classifier | |
Oudah et al. | A novel features set for internet traffic classification using burstiness | |
CN114510615A (zh) | 一种基于图注意力池化网络的细粒度加密网站指纹分类方法和装置 | |
Rizothanasis et al. | Identifying user actions from HTTP (S) traffic | |
Altschaffel et al. | Statistical pattern recognition based content analysis on encrypted network: Traffic for the teamviewer application | |
CN117041070A (zh) | 一种网络空间测绘节点发现与归属判别方法和装置 | |
CN115174961B (zh) | 一种面向高速网络的多平台视频流量早期识别方法 | |
Tang et al. | Malware Traffic Classification Based on Recurrence Quantification Analysis. | |
Guo et al. | Website fingerprinting attacks based on homology analysis |
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 |