CN113177203B - 一种识别加密恶意报文流的方法及装置 - Google Patents
一种识别加密恶意报文流的方法及装置 Download PDFInfo
- Publication number
- CN113177203B CN113177203B CN202110400149.9A CN202110400149A CN113177203B CN 113177203 B CN113177203 B CN 113177203B CN 202110400149 A CN202110400149 A CN 202110400149A CN 113177203 B CN113177203 B CN 113177203B
- Authority
- CN
- China
- Prior art keywords
- message
- encrypted
- malicious
- flow
- model
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- 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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本说明书提供一种识别加密恶意报文流的方法,由于在识别加密报文流是否为恶意流量时,最重要的是能否提取出能够表征加密恶意报文流的特征,而在加密报文流中,各相邻的报文间的可识别特征(与加密的负载部分无关的特征)一般都是有关联关系的,因此通过统计每相邻两个报文间的报文特征关联关系,得到各个报文特征之间的关联概率矩阵。然后根据对多个加密报文流所提取的关联概率矩阵以及每个加密报文流对应的标签,进行模型训练,得到用于识别加密恶意报文流的模型,如此,便可使用该训练好的模型对未知属性的报文流进行识别,确定该未知属性报文流是恶意的还是非恶意的。
Description
技术领域
本说明书涉及恶意报文流识别技术领域,尤其涉及一种识别加密恶意报文流的方法及装置。
背景技术
相关技术中,最常用的恶意流量识别方法是特征匹配法,即通过提取待检测流量的相关特征匹配恶意流量特征,若匹配成功,确定待检测流量为恶意流量。
随着加密技术的发展,各个网站为了保证流量的安全,对流量开始进行加密。然而,加密技术在提升流量安全的同时,也增大了恶意流量识别的难度。具体而言,恶意流量为了躲避上述检测方法的检测,开始使用加密技术对恶意流量进行传输,避免被检测出。
需要一种方法,能够识别出加密恶意流量。
发明内容
本说明书提供了一种提取加密报文流特征的方法,预先确定与报文的负载部分无关的报文特征,并将该报文特征的全部可能取值,划分为该报文特征对应的N个特征值集合;第i个特征值集合与第j个特征值集合按先后顺序组成的序列为Sij;所述方法包括:
获取待提取特征的加密报文流,所述加密报文流包括按序排列的多个加密报文,每个加密报文是对相应的报文进行负载加密后得到的;
针对所述加密报文流中每组相邻的两个加密报文,将前一个加密报文的该报文特征的特征值所属的集合与后一个加密报文的该报文特征的特征值所属的集合,按先后顺序组成序列,作为该报文特征对应的一个序列;
统计该报文特征对应的全部特征值序列中Sij的数量Qij,并统计该全部特征值序列中以第i个特征值为前一个特征值的序列的数量Qi;
确定N*N概率矩阵,作为所述加密报文流的特征;其中,该概率矩阵中第i行第j列的元素为Pij,Pij=Qij/Qi。
本说明书还提供了一种用于识别加密恶意报文流的模型训练方法,所述方法包括:
获取多个加密报文流样本与每个样本对应的标签;每个样本对应的标签表征该样本为恶意流量或非恶意流量;
利用如上述的提取加密报文流特征的方法,提取所述加密报文流的特征;
以所提取的特征为输入,以所述加密报文流对应的标签为输出,训练用于识别加密恶意报文流的模型。
本说明书还提供了一种识别加密恶意报文流的方法,所述方法包括:
获取待识别加密报文流;
利用如上述的提取加密报文流特征的方法,提取所述加密报文流的特征;
将所提取的特征输入至对应的用于识别加密恶意报文流的模型;所述模型根据如上述的模型训练方法训练得到的;
根据所述模型的输出结果,确定所述加密报文流是否为恶意流量。
本说明书实施例的技术方案,由于在识别加密报文流是否为恶意流量时,最重要的是能否提取出能够表征加密恶意报文流的特征,而在加密报文流中,各相邻的报文间的可识别特征(与加密的负载部分无关的特征)一般都是有关联关系的,因此通过统计每相邻两个报文间的报文特征关联关系,得到各个报文特征之间的关联概率矩阵。然后根据对多个加密报文流所提取的关联概率矩阵以及每个加密报文流对应的标签,进行模型训练,得到用于识别加密恶意报文流的模型,如此,便可使用该训练好的模型对未知属性的报文流进行识别,确定该未知属性报文流是恶意的还是非恶意的。
通过本说明书实施例的技术方案,根据加密报文流中报文间的关联关系,提出一种新的提取加密报文流特制的方法,并基于该新的提取特征方法,提出一种新的识别方法,可以更有效的识别出加密报文流的属性,得到对加密恶意报文流更好的识别效果。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
图1是本说明书根据一示例性实施例示出的一种提取加密报文流特征的方法流程图。
图2是本说明书根据一示例性实施例示出的一种用于识别加密恶意报文流的模型训练方法流程图。
图3是本说明书根据一示例性实施例示出的一种识别加密恶意报文流的方法流程图。
图4是本说明书根据一示例性实施例示出的另一种加密恶意报文流的方法的场景示意图。
图5本说明书根据一示例性实施例示出的一种计算机设备示意图。
具体实施方式
通常情况下,网站会使用安全传输层协议(Transport Layer Security,TLS)协议或安全套接字协议(Secure Sockets Layer,SSL)来对传输的数据进行加密,使得只有拥有密钥的设备能够解析出数据内容。其中,加密的部分一般都是报文的负载部分,报文头部的信息无须密钥就可查看。
由于加密技术的出现,对加密流量的特征提取难度有所提升,使得对加密恶意流量的识别难度也进一步提升。
基于此,本说明提出一种识别加密恶意报文流的方法。由于在识别加密报文流是否为恶意流量时,最重要的是能否提取出能够表征加密恶意报文流的特征,而在加密报文流中,各相邻的报文间的可识别特征(与加密的负载部分无关的特征)一般都是有关联关系的,因此通过统计每相邻两个报文间的报文特征关联关系,得到各个报文特征之间的关联概率矩阵。然后根据对多个加密报文流所提取的关联概率矩阵以及每个加密报文流对应的标签,进行模型训练,得到用于识别加密恶意报文流的模型,如此,便可使用该训练好的模型对未知属性的报文流进行识别,确定该未知属性报文流是恶意的还是非恶意的。
通过本说明的一个或多个实施例,根据加密报文流中报文间的关联关系,提出一种新的提取加密报文流特制的方法,并基于该新的提取特征方法,提出一种新的识别方法,可以更有效的识别出加密报文流的属性,得到对加密恶意报文流更好的识别效果。
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。
在本说明书使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书。在本说明书和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本说明书可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
需要说明的是,本说明书中的一个报文流对应于一个会话,即,一个报文流中的报文具有相同的五元组信息<源地址、目的地址、源端口、目的端口、协议号>。本说明中的流量可能包含多个会话对应的报文。
本说明提供了提取加密报文流特征的方法、用于识别恶意报文流的模型训练方法以及识别加密恶意报文流的过程。
接下来对提取加密报文流特征的方法进行详细的说明。
一般情况下,若前后状态(或属性、特征等)有关的,可根据当前状态以及转移概率矩阵推测下一状态的,一般认为具有马尔科夫属性。
而一个报文流中每相邻的两个报文间一般是有关联关系的,例如,前一个报文为客户端发送的握手报文,那么后一个报文大概率为服务器发送的握手报文;前一个报文为客户端发送的证书报文,那么后一个报文大概率为客户端发送的密钥交换报文。
又如,一个报文流中,若前面的多数每相邻两个报文间的接收时间间隔都较长,那么再接收到属于该报文流的一个报文时,该报文的接收时间与上一个报文的接收时间间隔大概率也是较长的。若前面的多数每相邻两个报文间的接收时间间隔都较短,那么再接收到属于该报文流的一个报文时,该报文的接收时间与上一个报文的接收时间间隔大概率也是较短的。
因此,可认为报文流中的各个报文间是具有近似于马尔科夫属性的特征。
如图1所示,图1是本说明书根据一示例性实施例示出的一种提取加密报文流特征的方法流程示意图,为提取用于表征报文流中,相邻报文间关联关系的特征的步骤:
预先确定与报文的负载部分无关的报文特征,并将该报文特征的全部可能取值,划分为该报文特征对应的N个特征值集合,第i个特征值集合与第j个特征值集合按先后顺序组成的序列为Sij。
由于是提取相邻报文间的关联关系特征,因此,预先确定的报文特征一般是报文流中每个报文都具有的特征。例如,每个报文都有报文长度且跟报文的负载部分无关,因此报文长度可作为报文特征;每个报文的接收时间与上一报文的接收时间存在一个时间间隔,且跟负载部分无关,因此可作为报文特征;每个报文都会使用一些协议,比如TLS协议,都会有特定字段位于特定位置的规定,因此,报文头部分所指定的报文信息类型可作为报文特征。又如,有些报文可能会使用Extensions类,有些报文可能不会使用Extensions类,因此,每个报文的Extensions类不可作为报文特征。
步骤102、获取待提取特征的加密报文流。
其中,加密报文流包括按序排列的多个加密报文,每个加密报文是对相应的报文进行负载加密后得到的。现有的加密技术中,一般都是为报文负载进行加密的,报文头部一般记录了传输时需要的相关信息,若报文头部都进行相应的加密,则报文无法送达至正确的地址。
步骤104、统计报文特征对应的全部特征值序列中Sij的数量Qij,并统计该全部特征值序列中以第i个特征值为前一个特征值的序列的数量Qi;
其中,针对加密报文流中每组相邻的两个加密报文,将前一个加密报文的该报文特征的特征值所属的集合与后一个加密报文的该报文特征的特征值所属的集合,按先后顺序组成序列,作为该报文特征对应的一个序列。
在提取加密报文流对应的特征时,关注的是相邻报文间的关联关系,因此,在统计报文特征对应的全部特征值序列中Sij的数量Qij时,只统计没每相邻的两个报文之间组成的特征值序列,对于不相邻的报文间构成的特征值序列,不在报文特征对应的特征值序列范围中。例如,假设有报文流{A1、A2、A3、A4、A5、A6},各自对应的特征值所属的特征值集合分别为{a1、a2、a3、a4、a5、a6},那么,在统计报文特征对应的全部特征值序列有{<a1,a2>,<a2,a3>,<a3,a4>,<a4,a5>,<a5,a6>},对于报文流中的不相邻的A2与A4组成的序列<a2,a4>,不属于统计范围内的特征值序列;又如,假设有报文流{B1、B2、B3、B4、B5、B6},各自对应的特征值所属的特征值集合分别为{b1、b5、b2、b3、b1、b2},那么,在统计报文特征对应的全部特征值序列有{<b1,b5>,<b5,b2>,<b2,b3>,<b3,b1>,<b1,b2>}。
步骤106、确定N*N概率矩阵,作为所述加密报文流的特征。
其中,概率矩阵中第i行第j列的元素为Pij,Pij=Qij/Qi。i与j的取值范围都是(0,N],且都是正整数。
在实际应用中,可统计该报文特征对应的全部特征值序列中Sij的数量Qij,得到N*N的数量矩阵:
其中Qij代表前一个报文的报文特征为第i个集合中的任一元素,后一个报文的报文特征为第j个集合中的任一元素的特征值序列Sij的数量。
例如,集合i为{a,b},集合j为{x,y},那么Sij的所有可能取值为<a,x>,<a,y>,<b,x>,<b,y>,那么统计特征值序列中Sij的数量Qij时,就可通过统计<a,x>,<a,y>,<b,x>,<b,y>出现的总数。
根据得到的变化次数矩阵,计算每个特征序列出现的概率:
根据上式的概率计算,得到一个概率矩阵:
实际应用中,将上述的特征值集合对应于马尔科夫模型的一个状态,每个特征值序列对应于马尔科夫模型的一次状态转移,上述的N*N的概率矩阵对应于马尔科夫模型的状态转移概率矩阵。在本说明一个或多个实施例中,将报文间的马尔科夫链中的状态转移矩阵作为了加密报文流的马尔科夫特征。
在本说明一个或多个实施例中,假设报文特征为报文头部分所指定的报文信息类型,以TLS协议为例,TLS协议为最常使用的加密安全传输协议之一,TLS在实现上分为记录层和握手层两层,其中握手层又含四个子协议:握手协议(handshake protocol)、更改加密规范协议(change cipher spec protocol)、应用数据协议(application data protocol)和告警协议(alert protocol),TLS协议头的十进制码代表不同阶段的报文(即,不同类型的报文),若十进制码为20,代表该报文使用TLS中的密钥规格变更协议(Change CipherSpec),若十进制码为21,代表该报文使用TLS中的告警协议,TLS协议头的十进制码包括0Hello Request、1Client Hello、2Sever Hello、11Certificate、12Sever Key Exchange、13Certificate Request、14Sever Hello Done、15Certificate Verify、16Client KeyExchange、20Finished、21Alert、22、Handshake、23Application Date,此处不一一列举其含义。
此时,每个特征值集合对应于一个或多个类型报文,例如,特征值集合可以是{20Finished},也可以是{0Hello Request、1Client Hello、2Sever Hello}。
假设报文特征为接收到该报文的时间与接收到上一个报文的时间之间的时间间隔,那么特征值集合为取值范围,那么N个特征集合分别为(0,t),(t,2t),(2t,3t)……(N-1t,Nt),其中,t代表一个时长。若某报文的接收时间与接收到上一个报文的时间之间的时间间隔为6ms,落在了第三个特征值集合(2t,3t)范围中,那么该报文的报文特征值对应的特征值集合为第三个特征值集合。
实际应用中,一般通过binsize来控制特征值集合的数量,即,获取报文间最长的时间间隔MaxT,假设特征值集合数量为M(对应于马尔科夫中的状态数量),MaxT除以确定出的特征值集合数量M,得到一个数值,即为binsize,对应的第一个特征值集合为(0,binsize),第二个特征值集合(binsize,2binsize)……第M个特征值集合(M-1binsize,Mbinsize)。
假设报文特征为报文长度,那么特征值集合也是范围,那么N个特征值集合分别为(0,length),(length,2length),(2length,3length)……(N-1length,Nlength),其中,length代表一个长度。若某报文的长度为37,落在了第4个特征值集合(3length,4length)范围中,那么该报文的报文特征值对应的特征值集合为第四个特征值集合。
实际应用时,与上述的时间间隔的实施方式相似,获取报文的最大长度,并用一个长度定值来控制特征值集合的数量。
需要说明的是,特征值集合的数量需要根据实际进行调整,适当数量的特征值集合能够使所提取出的特征具有更好的表征数量(即,根据实际需要控制马尔科夫的状态数量),特征值集合的数量过大过小都会使得所提取出的特征表征能力不足,且特征值集合的数量越大,需要的计算资源越多(即,状态数量越大,需要统计及计算的状态转移次数越多)。
此外,在本说明一个或多个实施例中,还可以统计加密报文流的若干指标,例如,正方向报文数量,反方向报文数量,正方向报文总大小,反方向报文总大小,正方向报文长度均值、最大值、最小值、标准差、方差,反方向报文长度均值、最大值、最小值、标准差、方差,报文长度均值、最大值、最小值、标准差、方差,报文头长度、各Flags(FIN、SYN、RST、PUSH、ACK、URG、ECE、CWR)属性报文数量,各比特值出现次数,源端口,目的端口,报文之间的时间差均值、和,TCP窗口大小,各加密套接字(Ciphersuites)具体类(认证算法Authentication,对称加密算法Encryption,消息认证码算法Message AuthenticationCode,密钥交换算法Key Exchange)出现次数,各扩展(Extensions)具体类出现次数,证书(Certificate)长度。
将这些指标的统计结果作为加密报文流的特征,也可称为加密报文流的统计性特征。需要说明的是,这些指标皆为可根据报文的报文头能够获得的已知属性,对于未知属性,如报文负载内容是否包含有某些字段,属于不可统计的指标。
其中,正向报文与反向报文是相对的,例如,若地址A发送至地址B的报文作为了正向报文(即,源地址为A,目的地址为B),那么地址B发送至地址A的报文就可作为反向报文(即,源地址为B,目的地址为A);若地址A发送至地址B的报文作为了反向报文,那么地址B发送至地址A的报文就可作为正向报文。一般情况下,将报文流的第一个报文作为正向报文,其他报文根据第一个报文确定是正向报文还是反向报文。
接下来对用于识别加密恶意报文流的模型训练方法进行详细说明。
如图2所示,图2是本说明书根据一示例性实施例示出的用于识别加密恶意报文流的模型训练方法的流程图,包括以下步骤:
步骤202、获取多个加密报文流样本以及每个样本对应的标签。
其中,每个样本对应的标签表征该样本为恶意流量或非恶意流量。
在本说明一个或过个实施例中,每个加密报文流样本可以是一次会话中的截取的部分连续的报文流,也可以是一次会话中所有报文流。区别在于,若每个加密报文流样本是一次会话中的截取的部分连续的报文流,那么在实际应用模型时,是根据获取的报文流预测对应的会话包括的整个报文流是恶意的还是非恶意的。若每个加密报文流样本是是一次会话中所有报文流,那么在实际应用模型时,是根据一个会话对应的所有报文,识别该会话是恶意的还是非恶意的。
相对来说,若一个加密报文流样本是一次会话中所有报文流,所构建的模型的识别能力较高。
步骤204、提取每个加密报文流样本的特征。
提取时,可以利用上述的提取加密报文流特征的方法,提取时,可以只提取一种特征,如一种报文特征对应的概率矩阵,或统计性特征中的一些特征,也可以提取多个特征,如多个概率矩阵,每个概率矩阵对应于一种报文特征。
例如,只提取部分统计性特征,如正方向报文数量,反方向报文数量,正方向报文总大小,反方向报文总大小。或只提取部分报文特征对应的概率矩阵,如只提取报文长度对应的概率矩阵。或既提取统计性特征,又提取报文特征对应的概率矩阵。或提取两个报文特征对应的概率矩阵,每个概率矩阵对应于一种报文特征,如提取出报文长度对应的概率矩阵,以及提取出报文头部分所指定的报文信息类型对应的概率矩阵。
步骤206、以所提取的特征为输入,以每个样本对应的标签为输出,训练用于识别加密恶意报文流的模型。
在训练模型时,一般输入的都是向量,因此,一般都会将所提取出的特征表示为向量,有多个特征时,将多个特征对应的向量拼接起来。
因此,在实际应用中,若提取出的特征为如上述的N*N概率矩阵,需要将N*N概率矩阵转换为一维向量。例如,N*N概率矩阵为:
那么对其进行降维(flatten)操作后,降为一维向量[P11,…,P1n,P21,…,P2n,…,Pn1,…,Pnn]。
在本说明一个或多个实施例中,所提取的特征可以是多个矩阵,此时可将每个矩阵降为一维向量,然后进行拼接。例如,所提取的特征包括针对报文长度的N*N概率矩阵,针对报文头部分所指定的报文信息类型的M*M概率矩阵。然后将N*N概率矩阵降为一维向量[Y11,…,Y1n,Y21,…,Y2n,…,Yn1,…,Ynn],将M*M概率矩阵降为一维向量[X11,…,X1m,X21,…,X2m,…,Xm1,…,Xmm],然后将向量进行拼接,得到[Y11,…,Y1n,Y21,…,Y2n,…,Yn1,…,Ynn,X11,…,X1m,X21,…,X2m,…,Xm1,…,Xmm]。
此外,在本说明一个或多个实施例中,可以训练至少两种分类算法对应的模型,分类算法可以是以下中的任意一种:
逻辑回归(Logistic regression),随机森林(Random forest),岭回归分类器(RidgeClassifierCV),决策树(Tree classify),支持向量机(Support Vector Machine),多层感知机(Multi-Layer Perceptron),反向传播神经网络(Back Propagation neuralneetwork),XGBoost、CatBoost、lightGBM等。
利用上述的多个加密报文流样本以及其对应的标签,训练好多个模型后,利用多个加密报文流测试样本,对每个模型进行测试,根据测试结果,选取出性能最优的模型作为最后实际使用的模型。
其中,测试结果可以为以下至少一种:
识别率、漏报率、误报率。
实际应用中,针对每个模型进行测试后,可以得到如下的表格:
其中,真正例指真实情况为正例(真实情况为非恶意流量),识别结果也为正例(识别结果为非恶意流量)的加密报文流测试样本。假正例指真实情况为反例(真实情况为恶意流量),但识别结果也为正例(识别结果为非恶意流量)的加密报文流测试样本。假反例指真实情况为正例(真实情况为非恶意流量),但识别结果也为反例(识别结果为恶意流量)的加密报文流测试样本。真反例指真实情况为反例(真实情况为恶意流量),识别结果也为正例(识别结果为恶意流量)的加密报文流测试样本。
识别率TPR(true positive rate)的计算公式为:TPR=TP/(TP+FN);
漏报率FNR(false negative rate)的计算公式为:FNR=FN/(TP+FN);
误报率FPR(false positive rate)的计算公式为:FPR=FP/(FP+TN)。
接下来对识别加密恶意报文流的过程进行详细说明。
如图3所示,图3是本说明书根据一示例性实施例示出的识别加密恶意报文流的方法的流程图,包括以下步骤:
步骤302、获取待识别加密报文流。
获取待识别加密报文流时,可以是在某个交换机或路由设备中设置镜像端口,将交换机的所有流量都截取,然后将具有相同五元组信息的报文作为一个报文流按序排好;也可是由某个服务器发送的识别请求,识别请求中包含有待识别别的加密报文流;还可以是通过读取存储介质,存储介质中保存有加密报文流。以上只是列举了部分获取待识别加密报文流的方式,所获取的待识别加密报文流只要是一个会话对应的连续的报文流即可。
步骤304、提取加密报文流的特征。
提取加密报文流的特征时,可以使用上述的提取加密报文流特征的方法,在此不进行一一赘述。
步骤306、将所提取的特征输入至用于识别加密恶意报文流的模型。
其中,提取的特征与模型对应,若用于识别加密恶意报文流的模型是用一个特征训练的,那么识别时,输入至用于识别加密恶意报文流的模型的特征也是一个。
步骤308、根据输出的结果,确定待识别加密报文流是否为恶意流量。
模型对所输入的特征进行识别,输出一个结果,该结果可以是直接表征恶意流量或者非恶意流量的结果,也可以是为恶意流量的概率。
在本说明一个或多个实施例中,可只针对加密恶意报文流进行如图1所示的特征提取,然后建立加密恶意报文流特征库。每当接收到一个会话对应的报文流,利用如图1所示的方法,提取所接收的报文流的特征,并与加密恶意报文流特征库进行匹配,若匹配成功,说明接收的报文流很可能是恶意报文流。
在本说明一个或多个实施例中,在接收到加密流量后,对流量进行过滤,由于加密流量一般都是TLS报文或者SSL报文,因此,可先对获取的流量进行过滤,将加密流量筛选出来,对于非加密流量,使用其他更有效的方法进行识别,筛选出加密流量后,按照报文五元组信息,对流量进行梳理,一个报文流中的报文对应于一个会话。
如图4所示,本说明书根据一示例性实施例示出的另一种加密恶意报文流的方法的场景示意图。
特征提取模块负责对加密报文流的特征提取,根据特征提取模块的设置(提取哪些特征),将每个加密报文流对应的特征提取出来,然后发送至相应的下个模块。
特征提取模块对加密报文流进行特征提取后,若加密报文流来自于样本库,说明该加密报文流用于模型的训练,则将提取的特征发送至机器学习训练模块;若加密报文流来自待识别流量,说明该报文流不是用于训练,而是未知属性(不知道恶意还是非恶意的)的加密报文流,则将提取的特征发送至识别模块。
机器学习模块根据每个加密报文流样本的特征以及其对应的标签,训练用于识别加密恶意报文流的模型,模型训练完成后,将训练好的模型发送至识别模块,以便识别模块在识别加密恶意报文流时使用。
识别模块获取到未知属性加密报文流对应的特征后,将特征输入至模型中,模型会给出识别结果,确定该未知属性加密报文流是恶意流量还是非恶意流量。
技术人员可对识别模块识别出的而恶意流量进行复核,若发现存在识别错误的报文流,则将识别错误的报文流以及该报文流对应的正确标签保存至样本加密报文流库,以便后续对模型进行优化。
利用本说明如图4所示的方法,形成完整的加密恶意报文流识别框架,各个模块互相协作,完成对加密报文流的特征提取,对加密恶意报文流的识别,模型的有效迭代,使得在实际应用中,具有更好的效率。
本说明还提供了一种提取加密报文流特征的装置,预先确定与报文的负载部分无关的报文特征,并将该报文特征的全部可能取值,划分为该报文特征对应的N个特征值集合;第i个特征值集合与第j个特征值集合按先后顺序组成的序列为Sij;所述装置包括:
加密报文流获取装置,用于获取待提取特征的加密报文流,所述加密报文流包括按序排列的多个加密报文,每个加密报文是对相应的报文进行负载加密后得到的;
针对所述加密报文流中每组相邻的两个加密报文,将前一个加密报文的该报文特征的特征值所属的集合与后一个加密报文的该报文特征的特征值所属的集合,按先后顺序组成序列,作为该报文特征对应的一个序列;
统计装置,用于统计该报文特征对应的全部特征值序列中Sij的数量Qij,并统计该全部特征值序列中以第i个特征值为前一个特征值的序列的数量Qi;
特征确定装置,用于确定N*N概率矩阵,作为所述加密报文流的特征;其中,该概率矩阵中第i行第j列的元素为Pij,Pij=Qij/Qi。
本说明还提供了一种用于识别加密恶意报文流的模型训练装置,所述装置包括:
加密报文流样本获取装置,用于获取多个加密报文流样本与每个样本对应的标签;每个样本对应的标签表征该样本为恶意流量或非恶意流量;
特征提取装置,利用如上述的提取加密报文流特征的装置,提取所述加密报文流的特征;
模型训练装置,用于以所提取的特征为输入,以所述加密报文流对应的标签为输出,训练用于识别加密恶意报文流的模型。
本说明还提供了一种识别加密恶意报文流的装置,所述装置包括:
待识别加密报文流获取装置,用于获取待识别加密报文流;
报文特征提取装置,用于利用如上述的提取加密报文流特征的装置,提取所述加密报文流的特征;
识别装置,用于将所提取的特征输入至对应的用于识别加密恶意报文流的模型;所述模型根据如上述的模型训练装置训练得到的;
结果确定装置,用于根据所述模型的输出结果,确定所述加密报文流是否为恶意流量。
本说明书装置实施例可以应用在计算机设备上,例如服务器或终端设备。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在文件处理的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本说明书实施例文件处理装置所在计算机设备的一种硬件结构图,除了图3所示的处理器310、内存330、网络接口320、以及非易失性存储器340之外,实施例中装置331所在的服务器或电子设备,通常根据该计算机设备的实际功能,还可以包括其他硬件,对此不再赘述。
上述装置中各个模块的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本说明书方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
相应的,本说明书还提供一种设备,所述设备包括有处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述任一方法。
本说明书实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述的任一方法。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本说明书实施例可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书实施例各个实施例或者实施例的某些部分所述的方法。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
本领域技术人员在考虑说明书及实践这里申请的发明后,将容易想到本说明书的其它实施方案。本说明书旨在涵盖本说明书的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本说明书的一般性原理并包括本说明书未申请的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本说明书的真正范围和精神由下面的权利要求指出。
应当理解的是,本说明书并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本说明书的范围仅由所附的权利要求来限制。
以上所述仅为本说明书的较佳实施例而已,并不用以限制本说明书,凡在本说明书的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本说明书保护的范围之内。
Claims (10)
1.一种提取加密报文流特征的方法,其特征在于,预先确定与报文的负载部分无关的报文特征,并将该报文特征的全部可能取值,划分为该报文特征对应的N个特征值集合;第i个特征值集合与第j个特征值集合按先后顺序组成的序列为Sij;所述方法包括:
获取待提取特征的加密报文流,所述加密报文流包括按序排列的多个加密报文,每个加密报文是对相应的报文进行负载加密后得到的;
针对所述加密报文流中每组相邻的两个加密报文,将前一个加密报文的该报文特征的特征值所属的集合与后一个加密报文的该报文特征的特征值所属的集合,按先后顺序组成序列,作为该报文特征对应的一个序列;
统计该报文特征对应的全部特征值序列中Sij的数量Qij,并统计该全部特征值序列中以第i个特征值为前一个特征值的序列的数量Qi;
确定N*N概率矩阵,作为所述加密报文流的特征;其中,该概率矩阵中第i行第j列的元素为Pij,Pij=Qij/Qi。
2.如权利要求1所述的方法,其特征在于,所述与报文的负载部分无关的报文特征为:
报文头部分所指定的报文信息类型;或
接收到该报文的时间与接收到上一个报文的时间之间的时间间隔;或
报文长度。
3.如权利要求2所述的方法,其特征在于,所述与报文的负载部分无关的报文特征为接收到该报文的时间与接收到上一个报文的时间之间的时间间隔,或报文长度;
所述特征值集合为取值范围。
4.如权利要求2所述的方法,其特征在于,所述与报文的负载部分无关的报文特征为安全套接字协议报文十进制协议头;
该报文特征的取值为:
0Hello Request、1Client Hello、2Sever Hello、11Certificate、12Sever KeyExchange、13Certificate Request、14Sever Hello Done、15Certificate Verify、16Client Key Exchange、20Finished、21Alert、22、Handshake、23Application Date。
5.如权利要求1所述的方法,其特征在于,还包括:
统计所述加密报文流的若干指标,得到统计结果,作为所述加密报文流的特征;
其中,统计的指标包括以下至少一种:
正方向报文数量,反方向报文数量,正方向报文总大小,反方向报文总大小,正方向报文长度均值、最大值、最小值、标准差、方差,反方向报文长度均值、最大值、最小值、标准差、方差,报文长度均值、最大值、最小值、标准差、方差,报文头长度,各Flags属性报文数量,各比特值出现次数,源端口,目的端口,报文之间的时间差均值,TCP窗口大小,各加密套接字类出现次数,各扩展类出现次数,证书长度。
6.一种用于识别加密恶意报文流的模型训练方法,其特征在于,所述方法包括:
获取多个加密报文流样本与每个样本对应的标签;每个样本对应的标签表征该样本为恶意流量或非恶意流量;
利用如权利要求1-5任一所述的提取加密报文流特征的方法,提取所述加密报文流的特征;
以所提取的特征为输入,以所述加密报文流对应的标签为输出,训练用于识别加密恶意报文流的模型。
7.如权利要求6所述的方法,其特征在于,训练用于识别加密恶意报文流的模型,包括:
训练用于识别加密恶意报文流的至少两种算法对应的模型;
测试各个模型的性能;
根据测试结果选取性能最优的模型作为实际使用的模型。
8.如权利要求7所述的方法,其特征在于,所述测试结果为以下至少一种:
识别率、漏报率、误报率。
9.一种识别加密恶意报文流的方法,其特征在于,所述方法包括:
获取待识别加密报文流;
利用如权利要求1-5任一所述的提取加密报文流特征的方法,提取所述加密报文流的特征;
将所提取的特征输入至对应的用于识别加密恶意报文流的模型;所述模型根据如权利要求6或7任一所述的模型训练方法训练得到的;
根据所述模型的输出结果,确定所述加密报文流是否为恶意流量。
10.如权利要求9所述的方法,其特征在于,还包括:
在复核所识别出的恶意流量后,将所述模型识别错误的加密报文流以及该加密报文流对应的正确标签保存至样本加密报文流库,用于对所述模型的优化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110400149.9A CN113177203B (zh) | 2021-04-14 | 2021-04-14 | 一种识别加密恶意报文流的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110400149.9A CN113177203B (zh) | 2021-04-14 | 2021-04-14 | 一种识别加密恶意报文流的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113177203A CN113177203A (zh) | 2021-07-27 |
CN113177203B true CN113177203B (zh) | 2022-04-26 |
Family
ID=76923349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110400149.9A Active CN113177203B (zh) | 2021-04-14 | 2021-04-14 | 一种识别加密恶意报文流的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113177203B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114039749B (zh) * | 2021-10-26 | 2024-09-10 | 中国银联股份有限公司 | 一种攻击检测方法、装置、设备及存储介质 |
CN115174160B (zh) * | 2022-06-16 | 2023-10-20 | 广州大学 | 基于流级和主机级的恶意加密流量分类方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327479A (zh) * | 2018-12-14 | 2019-02-12 | 锐捷网络股份有限公司 | 加密流的识别方法及装置 |
CN111224940A (zh) * | 2019-11-15 | 2020-06-02 | 中国科学院信息工程研究所 | 一种嵌套在加密隧道中的匿名服务流量关联识别方法及系统 |
CN112487483A (zh) * | 2020-12-14 | 2021-03-12 | 深圳昂楷科技有限公司 | 一种加密数据库流量审计方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130247192A1 (en) * | 2011-03-01 | 2013-09-19 | Sven Krasser | System and method for botnet detection by comprehensive email behavioral analysis |
-
2021
- 2021-04-14 CN CN202110400149.9A patent/CN113177203B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109327479A (zh) * | 2018-12-14 | 2019-02-12 | 锐捷网络股份有限公司 | 加密流的识别方法及装置 |
CN111224940A (zh) * | 2019-11-15 | 2020-06-02 | 中国科学院信息工程研究所 | 一种嵌套在加密隧道中的匿名服务流量关联识别方法及系统 |
CN112487483A (zh) * | 2020-12-14 | 2021-03-12 | 深圳昂楷科技有限公司 | 一种加密数据库流量审计方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于机器学习的流量识别关键技术研究;彭立志;《中国优秀博硕士学位论文全文数据库(博士)》;20160215;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113177203A (zh) | 2021-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112235264B (zh) | 一种基于深度迁移学习的网络流量识别方法及装置 | |
CN112003870A (zh) | 一种基于深度学习的网络加密流量识别方法及装置 | |
CN111031071B (zh) | 恶意流量的识别方法、装置、计算机设备及存储介质 | |
WO2020159439A1 (en) | System and method for network anomaly detection and analysis | |
CN113177203B (zh) | 一种识别加密恶意报文流的方法及装置 | |
CN110874646B (zh) | 一种联邦学习的异常处理方法、装置及电子设备 | |
CN112104570B (zh) | 流量分类方法、装置、计算机设备和存储介质 | |
US10719768B1 (en) | System and method for detecting an undesirable event | |
Janabi et al. | Convolutional neural network based algorithm for early warning proactive system security in software defined networks | |
Mohammadpour et al. | A mean convolutional layer for intrusion detection system | |
Monshizadeh et al. | Improving data generalization with variational autoencoders for network traffic anomaly detection | |
Kiran et al. | Detecting anomalous packets in network transfers: investigations using PCA, autoencoder and isolation forest in TCP | |
CN111464510A (zh) | 一种基于快速梯度提升树模型的网络实时入侵检测方法 | |
CN114866310A (zh) | 一种恶意加密流量检测方法、终端设备及存储介质 | |
Özdel et al. | Payload-based network traffic analysis for application classification and intrusion detection | |
CN110858837B (zh) | 一种网络管控方法、装置以及电子设备 | |
Gottwalt et al. | SIM in light of big data | |
CN114640519B (zh) | 一种加密流量的检测方法及装置、可读存储介质 | |
CN113141349B (zh) | 一种多分类器自适应融合的https加密流量分类方法 | |
Huizinga | Using machine learning in network traffic analysis for penetration testing auditability | |
Premkumar et al. | Hybrid Deep Learning Model for Cyber-Attack Detection | |
CN113992419A (zh) | 一种用户异常行为检测和处理系统及其方法 | |
Said et al. | Attention-based CNN-BiLSTM deep learning approach for network intrusion detection system in software defined networks | |
Arevalo-Herrera et al. | Network anomaly detection with machine learning techniques for sdn networks | |
CN112733689B (zh) | 一种https终端类型分类方法及装置 |
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 |