CN114143037A - 一种基于进程行为分析的恶意加密信道检测方法 - Google Patents
一种基于进程行为分析的恶意加密信道检测方法 Download PDFInfo
- Publication number
- CN114143037A CN114143037A CN202111303061.1A CN202111303061A CN114143037A CN 114143037 A CN114143037 A CN 114143037A CN 202111303061 A CN202111303061 A CN 202111303061A CN 114143037 A CN114143037 A CN 114143037A
- Authority
- CN
- China
- Prior art keywords
- session
- encrypted
- tree
- data
- feature
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于进程行为分析的恶意加密信道检测方法,包括:步骤1:加密会话流量数据采集与进程归类;包括:加密流量数据采集、预处理、进程归类;步骤2:进程文件加密通讯行为特征树建构;建构加密会话的元特征即IP层、TCP段负载长度序列特征即TCP层以及SSL消息状态转换特征即SSL记录层的三层次特征树;步骤3:基于特征树的异常检测;包括:采集正常加密通讯行为数据;正常加密通讯行为基准建构;目标PEF加密通讯行为模型建构;特征树间相异度计算;基于阈值的异常检测。本发明借助异常检测的方法,打破单纯从会话层次检测恶意加密信道的局限,实现对恶意进程文件的有效检测。
Description
技术领域
本发明涉及一种基于进程行为分析的恶意加密信道检测方法,属于信息安全建设/网络安全技术领域。
背景技术
随着网络技术的快速发展,互联网已经在军事、经济、教育、生活等各个领域都广泛应用。然而,在互联网给我们的生活带来各种便利的同时,也带来了各种安全问题,各种计算机病毒,蠕虫等恶意软件的数量和种类也在快速增多,为互联网用户的安全带来了巨大挑战。为了保护传输的数据,加密传输已经成为现有广泛应用的方式。Cisco的调查显示,仅2016—2017年,加密流量就增多了90%以上,超过50%以上的流量都是加密流量。采用加密传输有益于保护普通用户的隐私,然而这给了恶意应用开发者可乘之机,他们开始大量使用加密通讯协议建立加密信道实施攻击。
Cisco预测到2021年,将有70%的恶意软件借助加密信道来传递恶意软件、实施远程控制及数据泄露等恶意行为;由于当前最主要的加密信道均采用TLS协议实现,因而如何检测借助TLS建立的恶意加密信道已成为当代入侵检测领域一个亟待解决的问题。
为了规避加密对内容检查的保护,当前恶意加密信道检测方法主要通过分析恶意加密流量的异常性来推断加密信道的异常性,即尝试从内容无关的恶意流量模式特征入手,借助机器学习等数据分析技术实现恶意性检测。
常用的恶意流量异常性特征有:①加密流元特征,如采用数据包数量、字节数量、方向等统计数值,其实质是刻画加密流传输的数据量与频率属性;②侧信道特征,着重刻画加密流的IP数据包负载大小序列的Markov转换矩阵、数据包相隔时间差分或传输字节值分布的统计概率分布(如统计0至255所有字节值在一次完整会话中出现的统计分布等),其实质是分析了数据包负载大小序列的二阶关联性以及时间差分和字节值的统计分布;③TLS握手协议特征,如握手消息类型、加密套件、扩展、公钥长度、SSL/TLS版本号、加密方法等,均可作为识别恶意流量的特征参量;④TLS通信服务端特征,如采用TLS通信服务端证书或域名内容特征,其实质是判断目标服务器是否具有合法的资质。
基于上述各类特征,已有恶意加密信道检测方法会从中选择一个或多个特征子集,然后作为输入训练机器学习模型或深度神经网络模型作为分类器,最终对目标加密流量执行恶意性检测。其一般性过程如下:
(1)从网络加密流量中,基于四元组(源IP地址、目的IP地址、源端口号、目的端口号)提取、分类会话流量数据;
(2)从每个会话流量数据中,分别提取数据流元特征、侧信道特征、TLS握手协议参数配置特征、域名特征或签名证书特征的子集,作为加密会话特征;
(3)将分类标记的加密会话特征,标准化/归一化处理后输入机器学习模型(如随机森林、SVM等)或采用深度学习LSTM或CNN组合学习训练得到分类器模型;
(4)提取目标加密会话特征,并用训练得到的分类器对目标加密会话执行恶意性检测,一旦检测到恶意性加密会话,即作为恶意加密信道告警。
为了规避对内容特征的依赖,尽管现有研究提出可以从加密流元特征、侧信道特征、TLS握手协议特征与服务端特征四个维度建立数据驱动的机器学习或深度学习模型分类器,但是,受限于噪声特征干扰和会话层次分析的不确定性,导致实际应用检测时误判率较高,因此十分有必要提出更有效的替代性恶意加密流量检测方法。
当前主流的恶意加密信道检测方法,主要存在三个关键性问题:
(1)加密流特征中存在的噪声干扰。理想的加密流特征应当可以直接体现上层加密通讯的行为模式特征,较少受到底层协议或网络环境的影响。而当前主流特征选择中包含了大量与加密行为本身关联不强的噪声特征,如①侧信道特征提取了数据包顺序到达的时间差分(间隔),然而时间属性容易受到网络通信环境延迟影响并不稳定;②TLS握手协议参数特征可以主动选择修改等,并非属于恶意加密通讯的本质特征等;③大量TLS会话采用无证书传递的会话复用方式传递,因而服务端数字证书并非加密通信的本质特征;④TCP/IP协议头部数据会引入过多协议传输细节,其更多服务于稳定连接需要,同样并非加密通信的本质特征。上述噪声特征的存在使得由此训练的分类器模型无法准确捕捉加密通讯行为模式分类边界,导致不可避免存在高误判结果。
(2)缺乏多会话关联模式分析。实际恶意加密信道并非通过单一会话完成复杂攻击,相反,通常表现为多会话有步骤的顺序组合,如窃取的机密文件较大时,会同时建立多会话并行传递以缩短会话时间,减少被发现机率等。因此,本发明认为需要采用同一进程文件的多会话关联分析才能识别其中的恶意关联性,然而当前恶意加密信道检测方法主要针对单个会话提取加密流特征执行检测任务,缺乏对会话间关联模式的挖掘识别,导致无法有效识别会话间隐藏的恶意关联性。上述问题导致目前的检测方法虽然在实验室环境中针对可控的实验数据具有良好的表现,但是在实际生产工作场景中应用时,往往受限于单个会话恶意性表达的局限性表现出较低的准确率,严重制约实际恶意加密信道检测可应用性。
(3)过度依赖监督学习分类器。由于随机森林、SVM及LSTM/CNN等监督学习分类模型需要同时利用正常与恶意两类加密会话流数据训练分类器,因而可以较为准确地习得两类数据的高维度抽象分类边界。然而实际应用中监督学习分类的效果通常会大打折扣,因为:①监督学习理论基础是较为平衡的正负类训练数据,而实际中较难获取恶意加密会话数据流量作为训练集,导致训练集中类别不平衡时有出现;②监督学习要求检测目标的模式特征在训练集中存在,但是攻击者为了躲避安全检测,不仅会对既有的恶意加密信道模式快速迭代升级,还会不断尝试编写更隐蔽的新型未知恶意加密通信模式,因而具有极强的变化性与未知性,而这正是造成目前监督学习模型在新场景下鲁棒性较低的主要原因之一。
如上所述,当前恶意加密信道检测研究中,特征工程阶段所提取的特征存在噪声干扰,同时分类模式阶段不仅针对会话关联分析不足,而且所依赖的监督学习模型存在无法适应恶意流量未知多变的复杂性缺陷,上述问题共同导致现有方法在实际场景中应用误判率较高,严重制约恶意加密信道检测系统的有效性与可用性。
传统恶意进程采用明文传输,基于深度包检查(DPI)技术的入侵检测系统就可以审查传输数据包内容,发现其中的攻击行为。随着以TLS协议(Transport Layer Security,安全传输层协议)为代表的加密通信普及,攻击者常借助TLS协议构造加密信道,使得DPI技术无法分析数据包内容,从而绕开现有安全防御机制,实施机密数据窃取、关键系统攻击等,对组织、企业或用户造成巨大损失。
发明内容
针对现有技术的不足,为了检测恶意加密信道,只需要识别恶意加密信道的本地通信端即可,即识别建立恶意加密信道的进程文件。因而,本发明基于网络捕获的TLS协议流量数据,从加密流元特征、TCP段负载长度序列特征与SSL记录状态转换特征等三个层次,建构终端进程文件的加密通讯行为特征树模型,在进程文件层次上进行异常检测,即将新特征树与已有正常特征树集合比较并计算相异度,若相异度高于既定阈值,则判定新特征树对应的进程文件为异常通信端,相应地其创建的通讯进程为异常进程。最终将识别的异常通信端、异常进程及其关联的加密流量等信息,作为恶意加密信道报告给内部安全管理人员,以便及时采取行动预防或中止攻击行为。
术语解释:
1、SYN:表示建立连接;
2、FIN:表示关闭连接;
3、ACK:表示响应第一次握手。
本发明的技术方案为:
一种基于进程行为分析的恶意加密信道检测方法,包括步骤如下:
步骤1:加密会话流量数据采集与进程归类;具体包括:
1.1:加密流量数据采集;
1.2:加密流量数据预处理;
1.3:进程归类;
步骤2:进程文件加密通讯行为特征树建构;具体是指:求取加密会话的元特征、TCP段负载长度序列特征以及SSL消息状态转换特征,并建构加密会话的元特征即IP层、TCP段负载长度序列特征即TCP层以及SSL消息状态转换特征即SSL记录层的三层次特征树;
步骤3:基于特征树的异常检测;具体包括:
3.1:采集正常加密通讯行为数据;
3.2:正常加密通讯行为基准建构;
3.3:目标PEF加密通讯行为模型建构;
3.4:特征树间相异度计算;
3.5:基于阈值的异常检测。
根据本发明优选的,加密流量数据采集,具体是指:通过在目标终端上安装Wireshark网络封包分析工具,按天为时间窗口捕获所有TCP协议流量,并通过提取目标端口等于443号的TCP流量得到TLS协议流量,并进一步命名保存为Host_TLS_Date.pcap文件,其中,Host字段表示终端标识,Date字段表示采集流量文件的日期。
根据本发明优选的,加密流量数据预处理,具体是指:
将所采集的TLS协议流量按照所属会话进行归类;归类方法是:
1.2.1:基于网络通讯四元组作为标准,聚合四元组数据相同的IP数据包为同一个会话,会话标识采用四元组方式,即(srcIP,dstIP,srcPort,dstPort),作为相应的主键索引;
1.2.2:去除错误连接,先根据SYN包与FIN包的对应关系,去除TCP连接中未完成三次握手或两次断开的不完整会话;再根据数据包中TCP协议序列号去除重传数据包;
1.2.3:所属同一个会话主键的IP数据包,进一步根据TCP协议头部的序列号字段Seq顺序重新排列,使得排序后的数据包反映正确的TLS通信序列;
最终从Host_Date.pcap文件中预处理得到加密会话流量数据Host_Date_Session.csv文件,其每行的格式为:[srcIP,dstIP,srcPort,dstPort],Session_Time,Session_Data;
其中,Session_Data表示从Host_Date.pcap文件中提取的对应会话的流量数据,Session_Time表示从Host_Date.pcap文件中基于会话的客户端发出的第一个SYN包的时间,到客户端响应服务端FIN请求的ACK包间的时间的差值中计算得到的会话持续时间,四元组[srcIP,dstIP,srcPort,dstPort]作为数据表的主键,标识不同的会话。
根据本发明优选的,进程归类,具体是指:
将终端捕获的加密会话流量数据Host_Date_Session.csv与同时段终端上的进程信息相互关联,建立由进程文件、通讯进程与相应会话流量的映射关系;
经过进程归类后,所得加密会话流量数据Host_Date_Session.csv已根据PEF→PID→Session关联建立了相应的流量数据库文件PEF_PID_Session.csv,其中每行的PID由同行第一列的PEF建立,最后一列为该PID建立的加密会话流量数据;
保存PEF_PID_Session.csv至检测过程结束:若判定正常,则将PEF_PID_Session.csv添加到正常加密通讯行为数据库Normal_ET_Data中,重新计算更新已有正常模型。
根据本发明优选的,将终端捕获的加密会话流量数据Host_Date_Session.csv与同时段终端上的进程信息相互关联,具体是指:
借助第三方流量监控工具,直接根据监控工具呈现的流量数据,提取网络连接的IP地址与端口号关联对应的进程号PID,并进一步找到对应的进程文件PEF,从而将对应会话的加密流量数据归类到对应进程文件创建的进程标识PID中。
根据本发明优选的,将终端捕获的加密会话流量数据Host_Date_Session.csv与同时段终端上的进程信息相互关联,具体是指:
安装运行netstat命令获取网络连接信息,并由IP地址与端口号关联到进程PID,进一步安装运行tasklist命令获取当前进程详细信息,由PID追溯到对应的进程文件PEF,同样建立由进程文件、通讯进程与相应会话流量的映射关系。
根据本发明优选的,求取加密会话的元特征,具体包括步骤如下:
元特征分为四个维度,包括:
当天进程文件建立加密会话中发送/接收的总IP数据包个数;
当天进程文件建立加密会话中发送/接收的总IP数据包负载字节数;
当天进程文件建立加密会话中发送/接收的IP数据包速率;
当天进程文件建立加密会话中发送/接收的IP数据包负载字节速率;
其中,IP数据包负载指的是IP头部字段中,采用[Total Length]字段的数值减去[Header Length]字段的数值;
发送/接收的IP数据包速率VPacket、发送/接收的IP数据包负载字节速率VBytes的求取公式分别如式(1a)、式(1b)所示:
式(1a)、式(1b)中,Packet_Counts是指当天所有加密会话发送/接收的数据包总数,Sesstion_Time_Total是指当天加密会话总持续时间;BytesCounts是指当天所有加密会话发送/接收的数据包负载长度之和;
对四类加密会话流元特征,分别计算最大值Max、最小值Min、平均值Mean与标准差Std四项统计数值,最终对于某天某个进程文件的所有加密会话流提取下述共计32个元特征:发送的总IP数据包个数的最大值Max、最小值Min、平均值Mean与标准差Std;接收的总IP数据包个数的最大值Max、最小值Min、平均值Mean与标准差Std;发送的总IP数据包负载字节数的最大值Max、最小值Min、平均值Mean与标准差Std;接收的总IP数据包负载字节数的最大值Max、最小值Min、平均值Mean与标准差Std;发送的IP数据包速率的最大值Max、最小值Min、平均值Mean与标准差Std;接收的IP数据包速率的最大值Max、最小值Min、平均值Mean与标准差Std;发送的IP数据包负载字节速率的最大值Max、最小值Min、平均值Mean与标准差Std;接收的IP数据包负载字节速率的最大值Max、最小值Min、平均值Mean与标准差Std。
根据本发明优选的,求取TCP段负载长度序列特征,具体包括步骤如下:
选定某段时间内,某个网络进程文件PEF,针对该时间段内其建立的所有通信进程集合{PIDi,i=1,2...,P}与其建立的加密会话集合{Sessionij,i=1,2...P,j=1,2..Si},P为PEF当天建立的通讯进程总数,Si为PIDi创建的加密会总数,执行下述操作:
2.1:提取所有加密会话的有向段负载长度序列
2.1.1:针对PIDi创建的每个加密会话Sessionij,去除无效数据包即[TCP SegmentLen]字段数值等于0的数据包,剩余的数据包标记为Sessionij的有效数据包;
2.1.2:从Sessionij的有效数据包中选择前CntSij个,得到子序列Seg_SubSeqij,其中CntSij为Sessionij中去除无效数据包后,剩余数据包个数的一半与整数CntST的最小值;
2.1.3:从Seg_SubSeqij中每个数据包的TCP协议头部读取[TCP Payload]字段数值,并根据数据传输方向添加+或-,其中+可省略,+表示内部向外部传输数据,-表示内部接收到外部发送的数据;
通过步骤2.1,针对进程文件PEF创建的所有{PIDi,i=1,2,3..P}关联的加密会话集合{Sessionij,i=1,2..P,j=1,2..Si},得到任一加密会话Sessionij的TCP有向段负载序列集合{DSPSij}
2.2:K阶子序列及权重计算
2.2.1:设定k=1,2...K,其中K为预设值,K用于为需要统计比较的连续负载子序列的长度或子序列阶数;
2.2.2:统计该PEF建立的所有{PIDi}对应的{Sessionij}中提取的{DSPSij}中,任一连续k阶子序列SubSeqkt在所有{Sessionij,t}中出现的总次数Cnt_SubSeqkt,然后与{Sessionij}中的会话总数Cnt_Session相除计算得到该k阶子序列SubSeqkt在相关加密会话中的出现频率,并定义为该k阶连续子序列的权重Weightkt;
2.2.3:通过步骤2.2.2,遍历{DSPSij}中所有k阶子序列,计算其权重,得到最终PEF在第k个分支上的k阶子序列上的权重特征,对于特定的k阶分支SegPayloadk而言,其分支特征形式为:(SubSeqk1,Weightk1),(SubSeqk2,Weightk2),...,(SubSeqkCnt_k,WeightkCnt_k),Cnt_k表示进程文件的{DSPSij}中所有k阶子序列总数;
子序列权重Weightkq通过统计{DSPSij}中每个SubSeqkq出现的次数,然后计算其所占会话总数Cnt_Session比例求得,具体求取公式如式(2)所示:
2.2.4:按照k=1,2...K的顺序,逐个计算k阶子序列的权重,并最终得到PEF的TCP段负载长度序列特征,PEF的TCP段负载长度序列特征以树结构组织展现。
进一步优选的,CntST=50。
进一步优选的,K=5。
根据本发明优选的,求取SSL消息状态转换特征,具体是指:
2.3.1:针对特定进程文件的通讯进程{PIDi}关联的加密会话集合{Sessionij},提取TLS协议部分中的[Content Type],并按顺序记录得到SSL消息状态序列SSL_State_Seqij;
2.3.2:重复步骤2.3.1,得到当天PEF的所有加密会话{Sessionij}的SSL消息状态序列集合{SSL_State_Seqij};
2.3.3:根据{SSL_State_Seqij}计算对应的Markov转换概率矩阵,其方法为:
以12个SSL记录状态作为行和列,建立12×12的方阵Matrix_SSL={TPij,i=0,2...11,j=0,2..11};
TPij表示{SSL_State_Seqij}中,CTi之后紧接着出现CTj状态的概率,该概率通过计算[CTi,CTj]在所有的[CTi,CT*]的状态二阶子列中出现的频率得到,求取公式如式(3)所示:
其中CT*表示任意12个SSL记录状态之一,Cnt([CTi,CTt])表示统计状态序列[CTi,CTt]在{Sessionij}中出现的总次数;
2.3.4:将Markov转换矩阵Matrix_SSL的矩阵元素按照行顺序,由左至右、由上至下写作单一行向量形式,并以此作为进程文件PEF在该天的累积SSL消息状态转换特征,具体形式为:[TP0,0,TP0,1,...TP0,11,TP1,0,...TP1,11,...TPi,j,...TP11,0,...TP11,11],i,j=0,1,2...11。
根据本发明优选的,步骤3.1中,采集正常加密通讯行为数据,具体是指:
3.1.1:系统安装启用后,仅安装业务相关的正版软件;
3.1.2:针对新安装的、非系统默认的所有软件提交到VirusTotal在线检测,去除存在恶意风险的软件;
3.1.3:选择系统安装启用后的N天,正常使用相关业务软件,采集加密会话流量,并通过步骤1所述加密会话流量数据采集与进程归类后,保存为Normal_ETA数据,作为正常加密通讯行为基准数据。
根据本发明优选的,步骤3.2中,正常加密通讯行为基准建构,选定特定的终端C,将对终端C在N天中的加密通讯特征采取平均化处理,得到反映其总体行为模式的、单日代表性特征;针对Normal_ETA数据中涉及的网络通讯进程文件集合{PEFc,c=1,2...Qc},其中Qc表示终端C上在N天内运行的进程文件数量,对每个PEFc执行下述操作:
3.2.1:通过步骤2提取Normal_ETA数据中每一天的多层次特征树模型,共得到N个特征树序列{FeatTreet,t=1,2,..N};
3.2.2:提取{FeatTreet,t=1,2,..N}每个特征树第一层即IP层的特征,即针对IP层分析的加密会话流元特征行向量,组成新的矩阵Matrix_Meta={MMij,i=1,2..N,j=1,2...32},计算Matrix_Meta中每个列向量的算术平均值,得到新的平均值行向量FlowMeta_Mean,以此作为单日加密通讯行为基准特征树的第一层分支特征,具体计算如式(4)所示,其中表示第i列均值;
3.2.3:提取{FeatTreet,t=1,2,..N}每个特征树第二层即TCP层的分支子树,即针对TCP层分析的段负载长度序列特征子树,针对所有k阶子序列,k=1,2..K,
首先,选择第k阶子序列的并集,构成第k阶子列单日子列集合;
其次,计算第k阶子集合在{FeatTreet,t=1,2,..N}中每个特征树第二层分支上标记的权重之和,并对N天去算术平均值,以此作为单日加密通讯行为基准特征树的第二层分支的第k阶特征其计算公式如式(5)所示:
其中,子序列的阶数k采用上标标识,Cnt_k表示N个特征树k阶段负载长度序列的并集大小,对于任一SubSeqk i,一定存在某个特征树FeatTreej,使得其k阶段负载长度序列分支SegPayloadk j中包含k阶序列SubSeqk i,针对k=2,3..K的所有阶数子列执行步骤3.2.3,得到融合后的TCP段负载序列长度单日代表性特征;
3.2.4:针对SSL记录层的状态转换特征向量,提取{FeatTreet,t=1,2,..N}每个特征树第三层即SSL记录层的分支特征,组成新的矩阵Matrix_SSL={MSij,i=1,2..N,j=1,2...144},计算Matrix_SSL中每个列向量的算术平均值,得到新的平均值行向量SSLType_Mean,以此作为单日加密通讯行为基准特征树的第三层分支特征,其计算公式如式(6)所示:
根据本发明优选的,步骤3.3中,目标PEF加密通讯行为模型建构,具体是指:
根据本发明优选的,步骤3.4中,特征树间相异度计算,具体是指:
设定得到待分析进程文件的特征树TreeT与正常加密通讯行为基准TreeSetN={Treei,i=1,2..M},TreeT与{Treei,i=1,2..M}的相异度计算过程具体如下:
3.4.1:IP层加密会话流的元特征相异度计算
①提取TreeT第一层分支特征,与{Treei,i=1,2..M}中每个特征树的第一层分支特征共同组成第一分支矩阵Matrix_1;
②对Matrix_1进行列归一化,将Matrix_1的元素数值映射到[0,1]之间,如式(7)所示:
其中,x表示任一列向量中元素,xmin表示该列最小值,xmax表示该列最大值:
归一化后得到新的矩阵Matrix_1maxmin,其中第一个行向量表示归一化后的TreeT的第一分支特征;依次计算Matrix_1maxmin中第一行与其余M个行向量的L2范式距离,如式(8)所示:
通过式(IX),得到TreeT在第一分支维度与{Treei,i=1,2..M}中所有成员的距离序列DisLst1={disT,i|i=1,2...M};
计算距离序列DisLst1的算术或几何均值,作为TreeT与{Treei,i=1,2..M}的第一分支相异度DV1即IP层加密会话流的元特征相异度;
3.4.2:TCP层段负载长度序列相异度计算
③提取TreeT与TreeSetN中每个特征树对应的第二层分支子树,得到针对第二层分支子树的新集合SubTreeSet2,此时其中的第一个子树SubTreeT依旧表示待分析TreeT的第二层子树;
④依次计算SubTreeT相对于任一SubTreei的相异度,其中SubTreei∈SubTreeSet2,但是SubTreei≠SubTreeT,具体方法为:
选定SubTreeT与任一SubTreei;
选取SubTreeT中第一个k阶子列subseqk1,遍历某个SubTreei中的所有k阶子列,若匹配存在,则取二者最小权重为匹配权重,即Wetmatchk1=min{WeightT,k1,Weighti,k1};若未能成功匹配,则跳过该子列subseqk1;
读取第二个k阶子列执行步骤④,直至所有k阶子列均匹配完成;
基于匹配完成的所有k阶子列及其匹配支持度,计算加权和SV2K作为SubTreeT与SubTreei的在所有k阶子列上的相异度,如式(9)所示:
式(Ⅹ)中,K表示分析的子列阶数最大值,k表示特定的阶数,同阶数k的采用所有匹配权重之和乘以相应的阶数权重,最终得到SubTreeT与SubTreei的特征相似度;
⑤针对SubSetT与所有的SubTreei按照步骤④计算相应的SV2k,得到相应的M个相似度序列SVSet2K={SVi,2K,i=1,2..M},并通过式(VIII)对SVSet2K执行归一化;
⑥得到其相异度序列DVSet2K={DVi,2K|DVi,2K=1.0-SVi,2K,i=1,2..M},并计算其相应的平均值,然后将所得平均值作为TreeT与TreeSetN在第二分支上的相异度DV2即TCP层段负载长度序列相异度;
3.4.3:SSL记录层状态转移相异度计算
⑦提取TreeT第三层分支特征,与{Treei,i=1,2..M}中每个特征树的第三层分支特征共同组成第三分支矩阵Matrix_3;
⑧对Matrix_3进行列归一化,即采用式(VIII)将Matrix_3的元素数值映射到[0,1]之间;归一化得到矩阵Matrix_3maxmin,其中第一行向量表示归一化后的TreeT的第三分支特征;采用公式(10)的L2范式距离计算Matrix_3maxmin中第一行与其余各行偏移,得到TreeT在第三分支维度与{Treei,i=1,2..M}中所有成员的距离序列DisLst3={disT,i|i=1,2...M};
计算距离序列DisLst3的算术或几何均值均值,作为TreeT与{Treei,i=1,2..M}的第三分支相异度DV3即SSL记录层状态转移相异度。
根据本发明优选的,步骤3.5中,基于阈值的异常检测,具体实现过程包括:
分别与基于专家领域或先验经验设定的异常阈值TV1、TV2与TV3比较,若DVi>TVi,则判定第i分支行为偏移,即异常;若TreeT中至少有两个分支异常,则判定TreeT异常,即TreeT对应的进程文件PEFT属于异常进程,作为高风险恶意加密通信端上报给安全分析管理员进一步研判,并采取跟踪监控与阻断等应急响应减小损失;
最终,若判定待检加密通讯行为正常,则将该加密通讯行为对应的特征树同步更新到已有正常模型库TreeSetN中,其更新方法为:
若TreeT对应的进程文件PEFT并不存在于TreeSetN所对应的进程文件集合PEFSetN中,则直接将PEFT加入到PEFSetN中,同时将TreeT加入到TreeSetN中,完成更新;
若TreeT对应的进程文件PEFT存在于TreeSetN所对应的进程文件集合PEFSetN中,则将临时保存的TreeT对应的PEF_PID_Session.csv添加到正常加密通讯行为数据库Normal_ET_Data中,重新进行正常加密通讯行为基准建构。
进一步优选的,DV1=DV2=DV3=0.5。
本发明的有益效果为:
相对于当前恶意加密信道检测方法,本发明的主要优点是:通过深入分析恶意加密信道本质特征,从恶意信道的通信端入手,选择触发通讯行为的进程文件作为检测对象,基于对加密通信行为IP层、TCP层以及SSL记录层的多层次特征树建构,借助异常检测的方法,打破单纯从会话层次检测恶意加密信道的局限,实现对恶意进程文件的有效检测。本发明从通信端进程文件的角度,利于挖掘多个加密会话间的关联模式特征,弥补了单纯会话层次检测的不足,有力提升了恶意加密信道检测的准确性与实用性。具体而言,其改进主要包括以下几个方法:
1、优化精炼加密通讯行为特征:现有研究常常聚焦于加密通讯流的时间差分属性、TLS握手协议安全参数配置属性等,然而上述属性中的时间差分容易受到网络通信环境影响,安全参数配置可以根据需要灵活配置改变,都无法稳定的反映恶意加密通讯行为的本质。因此本发明首次提出不借助任何时间属性与TLS握手协议参数特征,而是从IP层、TCP层与SSL记录层分别提取最能代表各层传输模式特点的层次化特征,即加密会话流的元特征、TCP段负载长度序列特征与SSL消息状态转换特征构成的层次化特征树,从而可以更为立体全面且稳定地刻画加密通讯行为,自然相对已有噪声特征方案,具有更好的特征表达性,也为后续数据驱动异常检测高准确性奠定了坚实的特征基础。
2、采用通信端行为分析识别恶意加密信道:当前研究主要借助加密会话本身的流量特征识别恶意加密信道,但是由于分析目标为单个独立会话,因此无法反映出多会话间的关联特性。基于上述原因,本发明不再局限于已有单个会话检测目标,而是替代为检测触发加密通信行为的通信端进程文件,通过对进程文件的加密通信会话聚合分析,可以更加清楚地刻画其在某个时间段内整体的加密通讯模式特征;同时借助异常检测的优势,通过与正常加密通信行为的相异度计算,不仅可以识别出未知的恶意软件,还可以识别出被恶意注入导致异常的原有正常软件,因此本发明不仅提升了已有恶意加密信道检测方法的准确性,同时弥补了监督学习分类方法的不足,有力加强了针对未知恶意加密信道与内部异常信道的识别能力。
3、除了上述主要优点,本发明还缓解了当前主流恶意加密流量检测方法实用性不足。当前主流恶意加密流量检测方法立足于监督学习的高准确性,因而总是要求同时提供正常与恶意两类加密流量以训练合适的分类器模型;然而实际中极少数恶意加密流量隐藏在海量的正常加密流量中,数据分布极不对称,不平衡的数据分布会导致分类器模型偏差,影响检测准确率。另一方面深度学习网络虽然具有特征工程自动化与高准确性优势,但是需要的训练数据量大、训练模型复杂度高,因而具有高额的训练成本,面临多变的恶意加密流量需要重复训练,难以实际部署。本发明基于异常检测模式部署,采用更易获得的正常加密通讯数据训练基准行为模型,并通过计算新的加密行为偏移来判定其是否异常,具有更高效的模型检测能力与更低的训练与检测成本。
附图说明
图1为本发明进程文件、进程与会话关系示例示意图;
图2为本发明TCP段负载长度序列特征示例示意图;
图3为本发明进程文件加密通讯行为的三层次特征树示意图;
图4为本发明基于进程行为分析的恶意加密信道检测方法的流程框图;
图5为本发明实验网络拓扑结构示意图。
具体实施方式
下面结合说明书附图和实施例对本发明作进一步限定,但不限于此。
实施例1
本发明的主要思路是从网络进程的加密会话流量数据入手,建构可以表达加密通讯行为的层次化特征树;进而将正常进程文件的层次化特征树集合作为正常加密通讯行为基准,识别恶意进程文件作为恶意通信端,进而关联恶意加密信道,并一起上报给安全管理员研判应对。
一种基于进程行为分析的恶意加密信道检测方法,包括步骤如下:
步骤1:加密会话流量数据采集与进程归类;
由于当前网络攻击主要借助TLS协议建立恶意加密信道,因而本发明将重点针对基于TLS协议传输的加密会话流量进行捕获采集。具体包括:
1.1:加密流量数据采集;
1.2:加密流量数据预处理;
1.3:进程归类;
步骤2:进程文件加密通讯行为特征树建构;具体是指:求取加密会话的元特征、TCP段负载长度序列特征以及SSL消息状态转换特征,并建构加密会话的元特征即IP层、TCP段负载长度序列特征即TCP层以及SSL消息状态转换特征即SSL记录层的三层次特征树;
步骤3:基于特征树的异常检测;具体包括:
3.1:采集正常加密通讯行为数据;
3.2:正常加密通讯行为基准建构;
3.3:目标PEF加密通讯行为模型建构;
3.4:特征树间相异度计算;
3.5:基于阈值的异常检测。
实施例2
根据实施例1所述的一种基于进程行为分析的恶意加密信道检测方法,其区别在于:
加密流量数据采集,具体是指:通过在目标终端上(如内部网络计算机/服务器等)安装Wireshark网络封包分析工具(https://www.wireshark.org/),按天为时间窗口捕获所有TCP协议流量,并通过提取目标端口等于443号的TCP流量得到TLS协议流量,并进一步命名保存为Host_TLS_Date.pcap文件,其中,Host字段表示终端标识,如主机名或本地网络唯一IP地址等,Date字段表示采集流量文件的日期,如“2021-10-01”。
加密流量数据预处理,具体是指:
一般Host_Date.pcap文件中包含了终端Host在Date日的所有TLS协议会话流量,但是由于多会话同时存在,因而往往在数据存储位置上并不连续。因此预处理工作的首要目标,就是将所采集的TLS协议流量按照所属会话进行归类;归类方法是:
1.2.1:基于网络通讯四元组(源IP地址、目的IP地址、源端口、目的端口)作为标准,聚合四元组数据相同的IP数据包为同一个会话(Session),会话标识采用四元组方式,即(srcIP,dstIP,srcPort,dstPort),作为相应的主键索引;
1.2.2:去除错误连接,基于两方面进行过滤,先根据SYN包与FIN包的对应关系,去除TCP连接中未完成三次握手或两次断开的不完整会话;再根据数据包中TCP协议序列号去除重传数据包;
1.2.3:所属同一个会话主键的IP数据包,进一步根据TCP协议头部的序列号字段Seq顺序重新排列,使得排序后的数据包反映正确的TLS通信序列;
最终从Host_Date.pcap文件中预处理得到加密会话流量数据Host_Date_Session.csv文件,其每行的格式为:[srcIP,dstIP,srcPort,dstPort],Session_Time,Session_Data;
其中,Session_Data表示从Host_Date.pcap文件中提取的对应会话的流量数据,Session_Time表示从Host_Date.pcap文件中基于会话的客户端发出的第一个SYN包的时间,到客户端响应服务端FIN请求的ACK包间的时间的差值中计算得到的会话持续时间,四元组[srcIP,dstIP,srcPort,dstPort]作为数据表的主键,标识不同的会话。
进程归类,具体是指:
本发明的目标是针对进程文件创建的通讯进程的加密通讯行为建模,因而需要将终端捕获的加密会话流量数据Host_Date_Session.csv与同时段终端上的进程信息相互关联,建立由进程文件、通讯进程与相应会话流量的映射关系;
经过进程归类后,所得加密会话流量数据Host_Date_Session.csv已根据PEF→PID→Session关联建立了相应的流量数据库文件PEF_PID_Session.csv,其中每行的PID由同行第一列的PEF建立,最后一列为该PID建立的加密会话流量数据;可以看出,当运行进程文件PEF1可以创建PID11与PID12两个进程;而每个进程可以产生多个独立的加密会话,如{Session111}与{Session112}。进程文件、进程与会话关系示例如图1所示。
同时为了后续更新模型的需要,保存PEF_PID_Session.csv至检测过程结束:若判定正常,则将PEF_PID_Session.csv添加到正常加密通讯行为数据库Normal_ET_Data中,重新计算更新已有正常模型。
将终端捕获的加密会话流量数据Host_Date_Session.csv与同时段终端上的进程信息相互关联,具体是指:
借助第三方流量监控工具,如360流量防火墙(https://www.360.cn/)或火绒安全流量监控(https://www.huorong.cn/)等,直接根据监控工具呈现的流量数据,提取网络连接的IP地址与端口号关联对应的进程号PID,并进一步找到对应的进程文件PEF,从而将对应会话的加密流量数据归类到对应进程文件创建的进程标识PID中。
实施例3
根据实施例2所述的一种基于进程行为分析的恶意加密信道检测方法,其区别在于:
将终端捕获的加密会话流量数据Host_Date_Session.csv与同时段终端上的进程信息相互关联,具体是指:
安装运行netstat命令获取网络连接信息,并由IP地址与端口号关联到进程PID,进一步安装运行tasklist命令获取当前进程详细信息,由PID追溯到对应的进程文件PEF,同样建立由进程文件、通讯进程与相应会话流量的映射关系。
实施例4
根据实施例1所述的一种基于进程行为分析的恶意加密信道检测方法,其区别在于:
求取加密会话的元特征,具体包括步骤如下:
加密会话的元特征主要用于刻画加密会话存在期间的数据传输量与频率特征。由于PEF_PID_Session.csv文件中已经针对每天进程文件创建的通讯进程及关联的加密会话进行了归类,因而本发明计算元特征时,一是针对某天进程文件建立的所有加密会话,采用聚合后的统计属性来表达数据量与传输频率特征;二是同时考虑到会话具有双向传输属性,因而从内部进程文件角度,分别从发送和接收两方向统计流特征。
元特征分为四个维度,包括:
当天进程文件建立加密会话中发送/接收的总IP数据包个数;
当天进程文件建立加密会话中发送/接收的总IP数据包负载字节数;
当天进程文件建立加密会话中发送/接收的IP数据包速率;
当天进程文件建立加密会话中发送/接收的IP数据包负载字节速率;
其中,IP数据包负载指的是IP头部字段中,采用[Total Length]字段的数值减去[Header Length]字段的数值;如某IP数据包中,IP数据包的[Total Length=314],而[Header Length=20],则该IP数据包负载为294字节。
其中,关于IP数据包与IP数据包负载字节速率的计算,应基于当天进程文件建立的所有加密会话传输的数据包总量或字节总量,并除以总的会话时间得到,总的会话时间为待分析的进程文件的相关加密会话的Session_Time之和,发送/接收的IP数据包速率VPacket、发送/接收的IP数据包负载字节速率VBytes的求取公式分别如式(1a)、式(1b)所示:
式(1a)、式(1b)中,Packet_Counts是指当天所有加密会话发送/接收的数据包总数,Sesstion_Time_Total是指当天加密会话总持续时间;BytesCounts是指当天所有加密会话发送/接收的数据包负载长度之和;
为了详尽分析上述特征的统计特性,本发明主张分别对四类加密会话流元特征,分别计算最大值Max、最小值Min、平均值Mean与标准差Std四项统计数值,最终对于某天某个进程文件的所有加密会话流提取下述共计32个元特征:发送的总IP数据包个数的最大值Max、最小值Min、平均值Mean与标准差Std;接收的总IP数据包个数的最大值Max、最小值Min、平均值Mean与标准差Std;发送的总IP数据包负载字节数的最大值Max、最小值Min、平均值Mean与标准差Std;接收的总IP数据包负载字节数的最大值Max、最小值Min、平均值Mean与标准差Std;发送的IP数据包速率的最大值Max、最小值Min、平均值Mean与标准差Std;接收的IP数据包速率的最大值Max、最小值Min、平均值Mean与标准差Std;发送的IP数据包负载字节速率的最大值Max、最小值Min、平均值Mean与标准差Std;接收的IP数据包负载字节速率的最大值Max、最小值Min、平均值Mean与标准差Std。
表1为加密会话流元特征列表:
表1
求取TCP段负载长度序列特征,具体包括步骤如下:
不同于已有研究立足于IP数据包长度序列的分析,本发明认为过多的TCP/IP头部细节会干扰应用层加密通信数据特征的表达,因此立足于TCP协议的负载(TCP段负载)长度序列分析,此时分析的内容实质上是TCP协议传输的SSL记录消息信息。TCP段负载长度可以由TCP头部数据的[TCP Segment Len]读取获得。
考虑到加密会话具有双向传输属性,因而本发明在表示TCP段负载长度序列特征时,采用+表示内部向外部传输数据,-表示内部接收到外部发送的数据,以此得到有向段负载长度序列(Directed Segment Payload Sequence,DSPS)。下面将详细说明TCP段负载长度序列特征的构造方法。
选定某段时间内,某个网络进程文件PEF,针对该时间段内其建立的所有通信进程集合{PIDi,i=1,2...,P}与其建立的加密会话集合{Sessionij,i=1,2...P,j=1,2..Si},P为PEF当天建立的通讯进程总数,Si为PIDi创建的加密会总数,执行下述操作:
2.1:提取所有加密会话的有向段负载长度序列
2.1.1:针对PIDi创建的每个加密会话Sessionij,去除三次握手与四次断开涉及的数据包等无效数据包即[TCP Segment Len]字段数值等于0的数据包,剩余的数据包标记为Sessionij的有效数据包;
2.1.2:从Sessionij的有效数据包中选择前CntSij个,得到子序列Seg_SubSeqij,其中CntSij为Sessionij中去除无效数据包后,剩余数据包个数的一半与整数CntST的最小值;
2.1.3:从Seg_SubSeqij中每个数据包的TCP协议头部读取[TCP Payload]字段数值,并根据数据传输方向添加+或-,其中+可省略,+表示内部向外部传输数据,-表示内部接收到外部发送的数据;
如下述示例表示在该加密会话中一次具体的有向段负载长度序列DSPS,其中:客户端首先发送TCP负载为189字节的数据包,随后收到服务端1432字节与649字节两个响应包,然后客户端继续发送93字节请求服务,之后服务端与客户端交替传输数据。
(189)→(-1432)→(-649)→(93)→(-274)→(249)→(-298)→(-34)
通过步骤2.1,针对进程文件PEF创建的所有{PIDi,i=1,2,3..P}关联的加密会话集合{Sessionij,i=1,2..P,j=1,2..Si},得到任一加密会话Sessionij的TCP有向段负载序列集合{DSPSij}
2.2:K阶子序列及权重计算
2.2.1:设定k=1,2...K,其中K为预设值,K用于为需要统计比较的连续负载子序列的长度或子序列阶数;
2.2.2:统计该PEF建立的所有{PIDi}对应的{Sessionij}中提取的{DSPSij}中,任一连续k阶子序列SubSeqkt在所有{Sessionij,t}中出现的总次数Cnt_SubSeqkt,然后与{Sessionij}中的会话总数Cnt_Session相除计算得到该k阶子序列SubSeqkt在相关加密会话中的出现频率,并定义为该k阶连续子序列的权重Weightkt;
2.2.3:通过步骤2.2.2,遍历{DSPSij}中所有k阶子序列,计算其权重,得到最终PEF在第k个分支上的k阶子序列上的权重特征,对于特定的k阶分支SegPayloadk而言,其分支特征形式为:(SubSeqk1,Weightk1),(SubSeqk2,Weightk2),...,(SubSeqkCnt_k,WeightkCnt_k),Cnt_k表示进程文件的{DSPSij}中所有k阶子序列总数;
子序列权重Weightkq通过统计{DSPSij}中每个SubSeqkq出现的次数,然后计算其所占会话总数Cnt_Session比例求得,具体求取公式如式(2)所示:
2.2.4:按照k=1,2...K的顺序,逐个计算k阶子序列的权重,并最终得到PEF的TCP段负载长度序列特征,PEF的TCP段负载长度序列特征以树结构组织展现。
一个具体的示例如图2,其中PID1建立了三条加密会话,各选取了前4个有效数据包组成负载长度子序列。分别根据不同的阶数k=2,3,4统计连续k阶子列相对于会话总数的频率权重,如2阶序列[64,-108]出现了2次,则频率权重计算得到2/3(具体精确度可根据实际需要灵活选择小数点后位数,如0.67或0.667等),则其相应的2阶子列特征中表达为[64,-108|2/3],其余k阶子列表达式依此法可类推。
考虑到实际中取前50个数据包应可以同时包含必要的TLS协议握手与数据传输过程,因而本发明设置,CntST=50。也可根据需要另外选定。即当有效数据包个数超过100时,即以其总数一半确定提取分析的数据包序列长度,反之则以有效IP数据包实际数量提取分析;值得注意的是,这里的CntSij是由每个Sessionij有效数据包个数和预设参数CntST共同决定的。
K=5。表示最长需要考虑5阶长度的TCP段负载子序列;实际可根据场景特性和专家知识设置其他K值。
求取SSL消息状态转换特征,具体是指:
TLS协议作为TLS与应用层之间的安全通信协议,具有独有的消息状态类型;因此通过对TLS协议数据包头部数据中的[Content Type]字段分析,可以得到TLS协议中不同SSL消息的状态特征(如表2)。表2为SSL记录状态类型表。
表2
CT简写代码 | 记录状态(Content Type字段) |
CT1:CCS | Change Cipher Spec |
CT2:Alt | Alert |
CT3:CH | Client Hello |
CT4:SH | Server Hello |
CT5:NST | New Session Ticket |
CT6:Cert | Certificate |
CT7:SKE | Server Key Exchange |
CT8:SHD | Server Hello Done |
CT9:CKE | Client key Exchange |
CT10:CS | Certificate State |
CT11:HF | Handshake Finished |
CT12:AD | Application Data |
考虑到不同上层应用其服务与数据传输模式各不相同,反映在SSL消息序列中,就表现出不同的消息状态转换。如正常TLS通讯中,通常在收到服务器SH消息后,一般会继续要求验证服务端的证书信息;而恶意TLS通讯则倾向略过繁琐的安全验证,直接由SH进入到CCS状态,尽快开始加密数据传输过程。
因此,本发明认为可以通过提取TLS协议中SSL记录的消息状态信息作为上层加密通讯应用的独有模式特征。具体地方法如下:
2.3.1:针对特定进程文件的通讯进程{PIDi}关联的加密会话集合{Sessionij},提取TLS协议部分中的[Content Type],并按顺序记录得到SSL消息状态序列SSL_State_Seqij;
2.3.2:重复步骤2.3.1,得到当天PEF的所有加密会话{Sessionij}的SSL消息状态序列集合{SSL_State_Seqij};
2.3.3:根据{SSL_State_Seqij}计算对应的Markov转换概率矩阵,其方法为:
以表2中的12个SSL记录状态作为行和列,建立12×12的方阵Matrix_SSL={TPij,i=0,2...11,j=0,2..11};
TPij表示{SSL_State_Seqij}中,CTi之后紧接着出现CTj状态的概率,该概率通过计算[CTi,CTj]在所有的[CTi,CT*]的状态二阶子列中出现的频率得到,求取公式如式(3)所示:
其中CT*表示任意12个SSL记录状态之一,Cnt([CTi,CTt])表示统计状态序列[CTi,CTt]在{Sessionij}中出现的总次数;
2.3.4:将Markov转换矩阵Matrix_SSL的矩阵元素按照行顺序,由左至右、由上至下写作单一行向量形式,并以此作为进程文件PEF在该天的累积SSL消息状态转换特征,具体形式为:[TP0,0,TP0,1,...TP0,11,TP1,0,...TP1,11,...TPi,j,...TP11,0,...TP11,11],i,j=0,1,2...11。
建构加密会话的元特征即IP层、TCP段负载长度序列特征即TCP层以及SSL消息状态转换特征即SSL记录层的三层次特征树,如图3所示。
实施例5
根据实施例1所述的一种基于进程行为分析的恶意加密信道检测方法,其区别在于:
步骤3.1中,采集正常加密通讯行为数据,具体是指:
异常检测的前提是获取正常加密通讯行为数据,本发明中可以通过下述方法采集正常加密通讯数据:
3.1.1:系统安装启用后,仅安装业务相关的正版软件(如MS Office/QQ/Web/PhotoShop/浏览器软件等);
3.1.2:针对新安装的、非系统默认的所有软件提交到VirusTotal(https://virustotal.com/)在线检测,去除存在恶意风险的软件;
3.1.3:选择系统安装启用后的N天(如N=7天或14天,亦或选择更多可信天数作为正常流量采集时间段),正常使用相关业务软件,采集加密会话流量,并通过步骤1所述加密会话流量数据采集与进程归类后,保存为Normal_ETA数据,作为正常加密通讯行为基准数据。
步骤3.2中,正常加密通讯行为基准建构,选定特定的终端C,由于Normal_ETA数据中包含了N天的加密通讯行为数据,而待分析进程文件的特征树时间窗口只有一天,为了保证正常行为基准与待分析对象时间跨度上的一致性,将对终端C在N天中的加密通讯特征采取平均化处理,得到反映其总体行为模式的、单日代表性特征;针对Normal_ETA数据中涉及的网络通讯进程文件集合{PEFc,c=1,2...Qc},其中Qc表示终端C上在N天内运行的进程文件数量,对每个PEFc执行下述操作:
3.2.1:通过步骤2提取Normal_ETA数据中每一天的多层次特征树模型,共得到N个特征树序列{FeatTreet,t=1,2,..N};
3.2.2:提取{FeatTreet,t=1,2,..N}每个特征树第一层即IP层的特征,即针对IP层分析的加密会话流元特征行向量,组成新的矩阵Matrix_Meta={MMij,i=1,2..N,j=1,2...32},计算Matrix_Meta中每个列向量的算术平均值,得到新的平均值行向量FlowMeta_Mean,以此作为单日加密通讯行为基准特征树的第一层分支特征,具体计算如式(4)所示,其中表示第i列均值;
3.2.3:提取{FeatTreet,t=1,2,..N}每个特征树第二层即TCP层的分支子树,即针对TCP层分析的段负载长度序列特征子树,针对所有k阶子序列,k=1,2..K,
首先,选择第k阶子序列的并集,构成第k阶子列单日子列集合;
其次,计算第k阶子集合在{FeatTreet,t=1,2,..N}中每个特征树第二层分支上标记的权重之和,并对N天去算术平均值,以此作为单日加密通讯行为基准特征树的第二层分支的第k阶特征其计算公式如式(5)所示:
其中,子序列的阶数k采用上标标识,Cnt_k表示N个特征树k阶段负载长度序列的并集大小,对于任一SubSeqk i,一定存在某个特征树FeatTreej,使得其k阶段负载长度序列分支SegPayloadk j中包含k阶序列SubSeqk i,针对k=2,3..K的所有阶数子列执行步骤3.2.3,得到融合后的TCP段负载序列长度单日代表性特征;
3.2.4:针对SSL记录层的状态转换特征向量,采用类似于第一层分支特征的处理方法,提取{FeatTreet,t=1,2,..N}每个特征树第三层即SSL记录层的分支特征,组成新的矩阵Matrix_SSL={MSij,i=1,2..N,j=1,2...144},计算Matrix_SSL中每个列向量的算术平均值,得到新的平均值行向量SSLType_Mean,以此作为单日加密通讯行为基准特征树的第三层分支特征,其计算公式如式(6)所示:
步骤3.3中,目标PEF加密通讯行为模型建构,具体是指:
步骤3.4中,特征树间相异度计算,具体是指:
由于中每层分支形式不同,因而需要采用各自适合的相异度计算方法。一般而言,终端上所有进程文件创建的加密会话,共同刻画了终端的正常加密通讯行为模式;本地恶意软件或被注入的正常软件,往往因为其恶意行为具有不同于整体正常行为模式的偏移,因此可以采用异常检测的方法识别恶意加密通讯行为。
基于上述分析,本发明核心思想是分别比较计算三个分支下FeatTreeT与的相异度数值,数值越高越说明其在该层分支上与正常加密通讯行为偏移更大,因此风险性越高,反之风险性越低;若单个分支相异度高于警戒阈值则判定该分支行为不相似,若同时至少有两个分支判定不相似,则判定FeatTreeT与不相似并告警。
由此可见,上述异常检测方法的基础是特征树间的相异度比较,假定采用本发明中所提方法,设定得到待分析进程文件的特征树TreeT与正常加密通讯行为基准TreeSetN={Treei,i=1,2..M},TreeT与{Treei,i=1,2..M}的相异度计算过程具体如下:
3.4.1:IP层加密会话流的元特征相异度计算
为了计算TreeT的加密会话流模式相对于整体正常加密流模式的偏移,本发明采用下述方法计算IP层的特征相异度:
①提取TreeT第一层分支特征,与{Treei,i=1,2..M}中每个特征树的第一层分支特征共同组成第一分支矩阵Matrix_1;
②对Matrix_1进行列归一化,将Matrix_1的元素数值映射到[0,1]之间,如式(7)所示:
其中,x表示任一列向量中元素,xmin表示该列最小值,xmax表示该列最大值:
归一化后得到新的矩阵Matrix_1maxmin,其中第一个行向量表示归一化后的TreeT的第一分支特征;依次计算Matrix_1maxmin中第一行与其余M个行向量的L2范式距离,如式(8)所示:
通过式(IX),得到TreeT在第一分支维度与{Treei,i=1,2..M}中所有成员的距离序列DisLst1={disT,i|i=1,2...M};
计算距离序列DisLst1的算术或几何均值,作为TreeT与{Treei,i=1,2..M}的第一分支相异度DV1即IP层加密会话流的元特征相异度;
3.4.2:TCP层段负载长度序列相异度计算
③提取TreeT与TreeSetN中每个特征树对应的第二层分支子树,得到针对第二层分支子树的新集合SubTreeSet2,此时其中的第一个子树SubTreeT依旧表示待分析TreeT的第二层子树;
④依次计算SubTreeT相对于任一SubTreei的相异度,其中SubTreei∈SubTreeSet2,但是SubTreei≠SubTreeT,具体方法为:
选定SubTreeT与任一SubTreei;
选取SubTreeT中第一个k阶子列subseqk1,遍历某个SubTreei中的所有k阶子列,若匹配存在,则取二者最小权重为匹配权重,即Wetmatchk1=min{WeightT,k1,Weighti,k1};若未能成功匹配,则跳过该子列subseqk1;
读取第二个k阶子列执行步骤④,直至所有k阶子列均匹配完成;
基于匹配完成的所有k阶子列及其匹配支持度,计算加权和SV2K作为SubTreeT与SubTreei的在所有k阶子列上的相异度,如式(9)所示:
式(Ⅹ)中,K表示分析的子列阶数最大值,k表示特定的阶数,k/K-1给予不同阶数相应权重,阶数越高的连续子列其偶然性越低,因此应看作是更重要的通讯模式,所以给予更高的权重;同阶数k的采用所有匹配权重之和乘以相应的阶数权重,最终得到SubTreeT与SubTreei的特征相似度;
⑤针对SubSetT与所有的SubTreei按照步骤④计算相应的SV2k,得到相应的M个相似度序列SVSet2K={SVi,2K,i=1,2..M},并通过式(VIII)对SVSet2K执行归一化;
⑥得到其相异度序列DVSet2K={DVi,2K|DVi,2K=1.0-SVi,2K,i=1,2..M},并计算其相应的平均值(实际中可计算算术平均值或几何平均值),然后将所得平均值作为TreeT与TreeSetN在第二分支上的相异度DV2即TCP层段负载长度序列相异度;
3.4.3:SSL记录层状态转移相异度计算
⑦提取TreeT第三层分支特征,与{Treei,i=1,2..M}中每个特征树的第三层分支特征共同组成第三分支矩阵Matrix_3;
⑧对Matrix_3进行列归一化,即采用式(VIII)将Matrix_3的元素数值映射到[0,1]之间;归一化得到矩阵Matrix_3maxmin,其中第一行向量表示归一化后的TreeT的第三分支特征;采用公式(10)的L2范式距离计算Matrix_3maxmin中第一行与其余各行偏移,得到TreeT在第三分支维度与{Treei,i=1,2..M}中所有成员的距离序列DisLst3={disT,i|i=1,2...M};
计算距离序列DisLst3的均值,作为TreeT与{Treei,i=1,2..M}的第三分支相异度DV3即SSL记录层状态转移相异度。计算距离序列DisLst3的算术或几何均值均可,但应与第一分支选择一致。
步骤3.5中,基于阈值的异常检测,具体实现过程包括:
通过上述计算,已经得到了待分析TreeT相对于正常行为基准集合TreeSetN={Treei,i=1,2,3..M}之间三个层次的分支相异度DV1、DV2与DV3,接下来,将三个相异度DV1、DV2与DV3分别与基于专家领域或先验经验设定的异常阈值TV1、TV2与TV3比较,若DVi>TVi,则判定第i分支行为偏移,即异常;若TreeT中至少有两个分支异常,则判定TreeT异常,即TreeT对应的进程文件PEFT属于异常进程,作为高风险恶意加密通信端上报给安全分析管理员进一步研判,并采取跟踪监控与阻断等应急响应减小损失;
最终,若判定待检加密通讯行为正常,则将该加密通讯行为对应的特征树同步更新到已有正常模型库TreeSetN中,其更新方法为:
若TreeT对应的进程文件PEFT并不存在于TreeSetN所对应的进程文件集合PEFSetN中,则直接将PEFT加入到PEFSetN中,同时将TreeT加入到TreeSetN中,完成更新;
若TreeT对应的进程文件PEFT存在于TreeSetN所对应的进程文件集合PEFSetN中,则将临时保存的TreeT对应的PEF_PID_Session.csv添加到正常加密通讯行为数据库Normal_ET_Data中,重新进行正常加密通讯行为基准建构。
DV1=DV2=DV3=0.5。或可根据既有经验设定不同的阈值。
最终上述整体的检测过程可以用图4表示,其中实线部分表示正常的检测过程,而虚线部分表示当判定对象正常时,启动正常模型更新的过程,其读取了临时存储的待检加密流量,并结合正常加密流数据库重新运行本发明的加密通讯行为特征树建构方法,实现更新正常模型的目标。
为了验证本发明的有效性,本发明设置了局域网实验环境收集进程加密会话数据,并进行对比实验。网络拓扑如图5,其中终端代表计算机、服务器或其他智能通信设备;终端通过路由器实现与外网的正常通信,同时采用本发明步骤1中所述方法按天采集进程加密通信流量,并经过数据过滤和排序后存储到检测服务器以执行检测实验。为了引入恶意加密会话数据,设计共12天的数据收集窗口,其中前9天运行终端正常软件,后3天在终端上安装沙箱(SandBox)中发现的异常软件,运行并收集异常软件流量。
实验选取四种代表性的监督学习分类方法提供对比分析,分别是:①L1维度逻辑回归;②随机森林(Random Forest);③卷积神经网络(CNN);④长短期记忆网络(LSTM)。
对于编号①至④方法,实验采用5折交叉验证,即按照正常与恶意会话比例,从12天的加密会话数据中随机选取80%的数据进行训练,剩余20%加密会话数据作为测试;如此重复5轮,并计算误报率、漏报率与准确率的五轮平均值作为实验最终评价。
上述训练阶段的关键步骤是采用背景技术部分已有恶意加密信道检测方法,针对每个完整的加密会话建构行向量特征,即①加密流元特征,采用数据包数量、字节数量、方向等统计数值,其实质是刻画加密流传输的数据量与频率属性;②侧信道特征,着重刻画加密流的IP数据包负载大小序列的Markov转换矩阵、数据包相隔时间差分或传输字节值分布的统计概率分布(统计0至255所有字节值在一次完整会话中出现的统计分布等);③TLS握手协议特征,如握手消息类型、加密套件、扩展、公钥长度、SSL/TLS版本号、加密方法等可作为识别恶意流量的特征参量;④TLS通信服务端特征,如采用TLS通信服务端证书或域名内容特征,如数字字符比例、英文字符比例、特殊字符比例等。上述行向量特征按天进行归一化后,用于训练①至④模型。
对于本发明所提方法,训练阶段采用前7天的正常数据训练模型建立正常加密通讯行为基准,并对后5天的正常和异常加密会话数据执行异常检测(其中第8-9天只有正常加密通讯,第10-12天同时具有正常和恶意加密通讯数据)。
实验结果如表3所示(结果按百分比%计算):
表3
检测方法 | 误报率FPR(%) | 漏报率FNR(%) | 准确率ACC(%) |
本发明方法 | 3.15 | 0.56 | 99.12 |
L1逻辑回归 | 12.32 | 5.81 | 96.23 |
随机森林 | 10.55 | 4.62 | 97.05 |
CNN | 5.28 | 0.94 | 98.23 |
LSTM | 4.81 | 0.88 | 98.77 |
上述评价指标均将恶意加密会话作为正类(Positive),将正常加密会话作为负类(Negative),CntFP表示误判为正类的样本数量,CntTP表示正确判定为正类的样本数量,CntFN表示误判为负类的样本数量,CntTN表示正确判定为负类的样本数量,CntP表示测试集中所有正类样本数量,CntN表示测试集中所有负类样本数量。
由表3可知,本发明的方法优于已有特征建构基础上的代表性监督学习分类方法,可以更加准确、有效地检测恶意加密会话。
Claims (10)
1.一种基于进程行为分析的恶意加密信道检测方法,其特征在于,包括步骤如下:
步骤1:加密会话流量数据采集与进程归类;具体包括:
1.1:加密流量数据采集;
1.2:加密流量数据预处理;
1.3:进程归类;
步骤2:进程文件加密通讯行为特征树建构;具体是指:求取加密会话的元特征、TCP段负载长度序列特征以及SSL消息状态转换特征,并建构加密会话的元特征即IP层、TCP段负载长度序列特征即TCP层以及SSL消息状态转换特征即SSL记录层的三层次特征树;
步骤3:基于特征树的异常检测;具体包括:
3.1:采集正常加密通讯行为数据;
3.2:正常加密通讯行为基准建构;
3.3:目标PEF加密通讯行为模型建构;
3.4:特征树间相异度计算;
3.5:基于阈值的异常检测。
2.根据权利要求1所述的一种基于进程行为分析的恶意加密信道检测方法,其特征在于,
加密流量数据采集,具体是指:通过在目标终端上安装Wireshark网络封包分析工具,按天为时间窗口捕获所有TCP协议流量,并通过提取目标端口等于443号的TCP流量得到TLS协议流量,并进一步命名保存为Host_TLS_Date.pcap文件,其中,Host字段表示终端标识,Date字段表示采集流量文件的日期;
加密流量数据预处理,具体是指:
将所采集的TLS协议流量按照所属会话进行归类;归类方法是:
1.2.1:基于网络通讯四元组作为标准,聚合四元组数据相同的IP数据包为同一个会话,会话标识采用四元组方式,即(srcIP,dstIP,srcPort,dstPort),作为相应的主键索引;
1.2.2:去除错误连接,先根据SYN包与FIN包的对应关系,去除TCP连接中未完成三次握手或两次断开的不完整会话;再根据数据包中TCP协议序列号去除重传数据包;
1.2.3:所属同一个会话主键的IP数据包,进一步根据TCP协议头部的序列号字段Seq顺序重新排列,使得排序后的数据包反映正确的TLS通信序列;
最终从Host_Date.pcap文件中预处理得到加密会话流量数据Host_Date_Session.csv文件,其每行的格式为:[srcIP,dstIP,srcPort,dstPort],Session_Time,Session_Data;
其中,Session_Data表示从Host_Date.pcap文件中提取的对应会话的流量数据,Session_Time表示从Host_Date.pcap文件中基于会话的客户端发出的第一个SYN包的时间,到客户端响应服务端FIN请求的ACK包间的时间的差值中计算得到的会话持续时间,四元组[srcIP,dstIP,srcPort,dstPort]作为数据表的主键,标识不同的会话。
3.根据权利要求2所述的一种基于进程行为分析的恶意加密信道检测方法,其特征在于,进程归类,具体是指:
将终端捕获的加密会话流量数据Host_Date_Session.csv与同时段终端上的进程信息相互关联,建立由进程文件、通讯进程与相应会话流量的映射关系;
经过进程归类后,所得加密会话流量数据Host_Date_Session.csv已根据PEF→PID→Session关联建立了相应的流量数据库文件PEF_PID_Session.csv,其中每行的PID由同行第一列的PEF建立,最后一列为该PID建立的加密会话流量数据;
保存PEF_PID_Session.csv至检测过程结束:若判定正常,则将PEF_PID_Session.csv添加到正常加密通讯行为数据库Normal_ET_Data中,重新计算更新已有正常模型。
4.根据权利要求3所述的一种基于进程行为分析的恶意加密信道检测方法,其特征在于,将终端捕获的加密会话流量数据Host_Date_Session.csv与同时段终端上的进程信息相互关联,具体是指:
借助第三方流量监控工具,直接根据监控工具呈现的流量数据,提取网络连接的IP地址与端口号关联对应的进程号PID,并进一步找到对应的进程文件PEF,从而将对应会话的加密流量数据归类到对应进程文件创建的进程标识PID中;
或者,将终端捕获的加密会话流量数据Host_Date_Session.csv与同时段终端上的进程信息相互关联,具体是指:
安装运行netstat命令获取网络连接信息,并由IP地址与端口号关联到进程PID,进一步安装运行tasklist命令获取当前进程详细信息,由PID追溯到对应的进程文件PEF,同样建立由进程文件、通讯进程与相应会话流量的映射关系。
5.根据权利要求1所述的一种基于进程行为分析的恶意加密信道检测方法,其特征在于,求取加密会话的元特征,具体包括步骤如下:
元特征分为四个维度,包括:
当天进程文件建立加密会话中发送/接收的总IP数据包个数;
当天进程文件建立加密会话中发送/接收的总IP数据包负载字节数;
当天进程文件建立加密会话中发送/接收的IP数据包速率;
当天进程文件建立加密会话中发送/接收的IP数据包负载字节速率;
其中,IP数据包负载指的是IP头部字段中,采用[Total Length]字段的数值减去[Header Length]字段的数值;
发送/接收的IP数据包速率VPacket、发送/接收的IP数据包负载字节速率VBytes的求取公式分别如式(1a)、式(1b)所示:
式(1a)、式(1b)中,Packet_Counts是指当天所有加密会话发送/接收的数据包总数,Sesstion_Time_Total是指当天加密会话总持续时间;BytesCounts是指当天所有加密会话发送/接收的数据包负载长度之和;
对四类加密会话流元特征,分别计算最大值Max、最小值Min、平均值Mean与标准差Std四项统计数值,最终对于某天某个进程文件的所有加密会话流提取下述共计32个元特征:发送的总IP数据包个数的最大值Max、最小值Min、平均值Mean与标准差Std;接收的总IP数据包个数的最大值Max、最小值Min、平均值Mean与标准差Std;发送的总IP数据包负载字节数的最大值Max、最小值Min、平均值Mean与标准差Std;接收的总IP数据包负载字节数的最大值Max、最小值Min、平均值Mean与标准差Std;发送的IP数据包速率的最大值Max、最小值Min、平均值Mean与标准差Std;接收的IP数据包速率的最大值Max、最小值Min、平均值Mean与标准差Std;发送的IP数据包负载字节速率的最大值Max、最小值Min、平均值Mean与标准差Std;接收的IP数据包负载字节速率的最大值Max、最小值Min、平均值Mean与标准差Std。
6.根据权利要求1所述的一种基于进程行为分析的恶意加密信道检测方法,其特征在于,求取TCP段负载长度序列特征,具体包括步骤如下:
选定某段时间内,某个网络进程文件PEF,针对该时间段内其建立的所有通信进程集合{PIDi,i=1,2...,P}与其建立的加密会话集合{Sessionij,i=1,2...P,j=1,2..Si},P为PEF当天建立的通讯进程总数,Si为PIDi创建的加密会总数,执行下述操作:
2.1:提取所有加密会话的有向段负载长度序列
2.1.1:针对PIDi创建的每个加密会话Sessionij,去除无效数据包即[TCP SegmentLen]字段数值等于0的数据包,剩余的数据包标记为Sessionij的有效数据包;
2.1.2:从Sessionij的有效数据包中选择前CntSij个,得到子序列Seg_SubSeqij,其中CntSij为Sessionij中去除无效数据包后,剩余数据包个数的一半与整数CntST的最小值;
2.1.3:从Seg_SubSeqij中每个数据包的TCP协议头部读取[TCP Payload]字段数值,并根据数据传输方向添加+或-,其中+可省略,+表示内部向外部传输数据,-表示内部接收到外部发送的数据;
通过步骤2.1,针对进程文件PEF创建的所有{PIDi,i=1,2,3..P}关联的加密会话集合{Sessionij,i=1,2..P,j=1,2..Si},得到任一加密会话Sessionij的TCP有向段负载序列集合{DSPSij}
2.2:K阶子序列及权重计算
2.2.1:设定k=1,2...K,其中K为预设值,K用于为需要统计比较的连续负载子序列的长度或子序列阶数;
2.2.2:统计该PEF建立的所有{PIDi}对应的{Sessionij}中提取的{DSPSij}中,任一连续k阶子序列SubSeqkt在所有{Sessionij,t}中出现的总次数Cnt_SubSeqkt,然后与{Sessionij}中的会话总数Cnt_Session相除计算得到该k阶子序列SubSeqkt在相关加密会话中的出现频率,并定义为该k阶连续子序列的权重Weightkt;
2.2.3:通过步骤2.2.2,遍历{DSPSij}中所有k阶子序列,计算其权重,得到最终PEF在第k个分支上的k阶子序列上的权重特征,对于特定的k阶分支SegPayloadk而言,其分支特征形式为:(SubSeqk1,Weightk1),(SubSeqk2,Weightk2),...,(SubSeqkCnt_k,WeightkCnt_k),Cnt_k表示进程文件的{DSPSij}中所有k阶子序列总数;
子序列权重Weightkq通过统计{DSPSij}中每个SubSeqkq出现的次数,然后计算其所占会话总数Cnt_Session比例求得,具体求取公式如式(2)所示:
2.2.4:按照k=1,2...K的顺序,逐个计算k阶子序列的权重,并最终得到PEF的TCP段负载长度序列特征,PEF的TCP段负载长度序列特征以树结构组织展现;
进一步优选的,CntST=50;K=5。
7.根据权利要求6所述的一种基于进程行为分析的恶意加密信道检测方法,其特征在于,求取SSL消息状态转换特征,具体是指:
2.3.1:针对特定进程文件的通讯进程{PIDi}关联的加密会话集合{Sessionij},提取TLS协议部分中的[Content Type],并按顺序记录得到SSL消息状态序列SSL_State_Seqij;
2.3.2:重复步骤2.3.1,得到当天PEF的所有加密会话{Sessionij}的SSL消息状态序列集合{SSL_State_Seqij};
2.3.3:根据{SSL_State_Seqij}计算对应的Markov转换概率矩阵,其方法为:
以12个SSL记录状态作为行和列,建立12×12的方阵Matrix_SSL={TPij,i=0,2...11,j=0,2..11};
TPij表示{SSL_State_Seqij}中,CTi之后紧接着出现CTj状态的概率,该概率通过计算[CTi,CTj]在所有的[CTi,CT*]的状态二阶子列中出现的频率得到,求取公式如式(3)所示:
其中CT*表示任意12个SSL记录状态之一,Cnt([CTi,CTt])表示统计状态序列[CTi,CTt]在{Sessionij}中出现的总次数;
2.3.4:将Markov转换矩阵Matrix_SSL的矩阵元素按照行顺序,由左至右、由上至下写作单一行向量形式,并以此作为进程文件PEF在该天的累积SSL消息状态转换特征,具体形式为:[TP0,0,TP0,1,...TP0,11,TP1,0,...TP1,11,...TPi,j,...TP11,0,...TP11,11],i,j=0,1,2...11。
8.根据权利要求7所述的一种基于进程行为分析的恶意加密信道检测方法,其特征在于,步骤3.1中,采集正常加密通讯行为数据,具体是指:
3.1.1:系统安装启用后,仅安装业务相关的正版软件;
3.1.2:针对新安装的、非系统默认的所有软件提交到VirusTotal在线检测,去除存在恶意风险的软件;
3.1.3:选择系统安装启用后的N天,正常使用相关业务软件,采集加密会话流量,并通过步骤1所述加密会话流量数据采集与进程归类后,保存为Normal_ETA数据,作为正常加密通讯行为基准数据;
步骤3.2中,正常加密通讯行为基准建构,选定特定的终端C,将对终端C在N天中的加密通讯特征采取平均化处理,得到反映其总体行为模式的、单日代表性特征;针对Normal_ETA数据中涉及的网络通讯进程文件集合{PEFc,c=1,2...Qc},其中Qc表示终端C上在N天内运行的进程文件数量,对每个PEFc执行下述操作:
3.2.1:通过步骤2提取Normal_ETA数据中每一天的多层次特征树模型,共得到N个特征树序列{FeatTreet,t=1,2,..N};
3.2.2:提取{FeatTreet,t=1,2,..N}每个特征树第一层即IP层的特征,即针对IP层分析的加密会话流元特征行向量,组成新的矩阵Matrix_Meta={MMij,i=1,2..N,j=1,2...32},计算Matrix_Meta中每个列向量的算术平均值,得到新的平均值行向量FlowMeta_Mean,以此作为单日加密通讯行为基准特征树的第一层分支特征,具体计算如式(4)所示,其中表示第i列均值;
3.2.3:提取{FeatTreet,t=1,2,..N}每个特征树第二层即TCP层的分支子树,即针对TCP层分析的段负载长度序列特征子树,针对所有k阶子序列,k=1,2..K,
首先,选择第k阶子序列的并集,构成第k阶子列单日子列集合;
其次,计算第k阶子集合在{FeatTreet,t=1,2,..N}中每个特征树第二层分支上标记的权重之和,并对N天去算术平均值,以此作为单日加密通讯行为基准特征树的第二层分支的第k阶特征其计算公式如式(5)所示:
其中,子序列的阶数k采用上标标识,Cnt_k表示N个特征树k阶段负载长度序列的并集大小,对于任一SubSeqk i,一定存在某个特征树FeatTreej,使得其k阶段负载长度序列分支SegPayloadk j中包含k阶序列SubSeqk i,针对k=2,3..K的所有阶数子列执行步骤3.2.3,得到融合后的TCP段负载序列长度单日代表性特征;
3.2.4:针对SSL记录层的状态转换特征向量,提取{FeatTreet,t=1,2,..N}每个特征树第三层即SSL记录层的分支特征,组成新的矩阵Matrix_SSL={MSij,i=1,2..N,j=1,2...144},计算Matrix_SSL中每个列向量的算术平均值,得到新的平均值行向量SSLType_Mean,以此作为单日加密通讯行为基准特征树的第三层分支特征,其计算公式如式(6)所示:
9.根据权利要求8所述的一种基于进程行为分析的恶意加密信道检测方法,其特征在于,步骤3.3中,目标PEF加密通讯行为模型建构,具体是指:
步骤3.4中,特征树间相异度计算,具体是指:
设定得到待分析进程文件的特征树TreeT与正常加密通讯行为基准TreeSetN={Treei,i=1,2..M},TreeT与{Treei,i=1,2..M}的相异度计算过程具体如下:
3.4.1:IP层加密会话流的元特征相异度计算
①提取TreeT第一层分支特征,与{Treei,i=1,2..M}中每个特征树的第一层分支特征共同组成第一分支矩阵Matrix_1;
②对Matrix_1进行列归一化,将Matrix_1的元素数值映射到[0,1]之间,如式(7)所示:
其中,x表示任一列向量中元素,xmin表示该列最小值,xmax表示该列最大值:
归一化后得到新的矩阵Matrix_1maxmin,其中第一个行向量表示归一化后的TreeT的第一分支特征;依次计算Matrix_1maxmin中第一行与其余M个行向量的L2范式距离,如式(8)所示:
通过式(IX),得到TreeT在第一分支维度与{Treei,i=1,2..M}中所有成员的距离序列DisLst1={disT,i|i=1,2...M};
计算距离序列DisLst1的算术或几何均值,作为TreeT与{Treei,i=1,2..M}的第一分支相异度DV1即IP层加密会话流的元特征相异度;
3.4.2:TCP层段负载长度序列相异度计算
③提取TreeT与TreeSetN中每个特征树对应的第二层分支子树,得到针对第二层分支子树的新集合SubTreeSet2,此时其中的第一个子树SubTreeT依旧表示待分析TreeT的第二层子树;
④依次计算SubTreeT相对于任一SubTreei的相异度,其中SubTreei∈SubTreeSet2,但是SubTreei≠SubTreeT,具体方法为:
选定SubTreeT与任一SubTreei;
选取SubTreeT中第一个k阶子列subseqk1,遍历某个SubTreei中的所有k阶子列,若匹配存在,则取二者最小权重为匹配权重,即Wetmatchk1=min{WeightT,k1,Weighti,k1};若未能成功匹配,则跳过该子列subseqk1;
读取第二个k阶子列执行步骤④,直至所有k阶子列均匹配完成;
基于匹配完成的所有k阶子列及其匹配支持度,计算加权和SV2K作为SubTreeT与SubTreei的在所有k阶子列上的相异度,如式(9)所示:
式(Ⅹ)中,K表示分析的子列阶数最大值,k表示特定的阶数,同阶数k的采用所有匹配权重之和乘以相应的阶数权重,最终得到SubTreeT与SubTreei的特征相似度;
⑤针对SubSetT与所有的SubTreei按照步骤④计算相应的SV2k,得到相应的M个相似度序列SVSet2K={SVi,2K,i=1,2..M},并通过式(VIII)对SVSet2K执行归一化;
⑥得到其相异度序列DVSet2K={DVi,2K|DVi,2K=1.0-SVi,2K,i=1,2..M},并计算其相应的平均值,然后将所得平均值作为TreeT与TreeSetN在第二分支上的相异度DV2即TCP层段负载长度序列相异度;
3.4.3:SSL记录层状态转移相异度计算
⑦提取TreeT第三层分支特征,与{Treei,i=1,2..M}中每个特征树的第三层分支特征共同组成第三分支矩阵Matrix_3;
⑧对Matrix_3进行列归一化,即采用式(VIII)将Matrix_3的元素数值映射到[0,1]之间;归一化得到矩阵Matrix_3maxmin,其中第一行向量表示归一化后的TreeT的第三分支特征;采用公式(10)的L2范式距离计算Matrix_3maxmin中第一行与其余各行偏移,得到TreeT在第三分支维度与{Treei,i=1,2..M}中所有成员的距离序列DisLst3={disT,i|i=1,2...M};
计算距离序列DisLst3的算术或几何均值均值,作为TreeT与{Treei,i=1,2..M}的第三分支相异度DV3即SSL记录层状态转移相异度。
10.根据权利要求9所述的一种基于进程行为分析的恶意加密信道检测方法,其特征在于,步骤3.5中,基于阈值的异常检测,具体实现过程包括:
分别与基于专家领域或先验经验设定的异常阈值TV1、TV2与TV3比较,若DVi>TVi,则判定第i分支行为偏移,即异常;若TreeT中至少有两个分支异常,则判定TreeT异常,即TreeT对应的进程文件PEFT属于异常进程,作为高风险恶意加密通信端上报给安全分析管理员进一步研判,并采取跟踪监控与阻断等应急响应减小损失;
最终,若判定待检加密通讯行为正常,则将该加密通讯行为对应的特征树同步更新到已有正常模型库TreeSetN中,其更新方法为:
若TreeT对应的进程文件PEFT并不存在于TreeSetN所对应的进程文件集合PEFSetN中,则直接将PEFT加入到PEFSetN中,同时将TreeT加入到TreeSetN中,完成更新;
若TreeT对应的进程文件PEFT存在于TreeSetN所对应的进程文件集合PEFSetN中,则将临时保存的TreeT对应的PEF_PID_Session.csv添加到正常加密通讯行为数据库Normal_ET_Data中,重新进行正常加密通讯行为基准建构;
进一步优选的,DV1=DV2=DV3=0.5。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111303061.1A CN114143037B (zh) | 2021-11-05 | 2021-11-05 | 一种基于进程行为分析的恶意加密信道检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111303061.1A CN114143037B (zh) | 2021-11-05 | 2021-11-05 | 一种基于进程行为分析的恶意加密信道检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114143037A true CN114143037A (zh) | 2022-03-04 |
CN114143037B CN114143037B (zh) | 2022-10-11 |
Family
ID=80392363
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111303061.1A Active CN114143037B (zh) | 2021-11-05 | 2021-11-05 | 一种基于进程行为分析的恶意加密信道检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114143037B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001866A (zh) * | 2022-08-01 | 2022-09-02 | 成都市以太节点科技有限公司 | 一种基于免疫机制的安全防护方法、电子设备及存储介质 |
CN115033889A (zh) * | 2022-06-22 | 2022-09-09 | 中国电信股份有限公司 | 非法提权检测方法和装置、存储介质、计算机设备 |
CN115051833A (zh) * | 2022-05-12 | 2022-09-13 | 中国电子科技集团公司电子科学研究院 | 一种基于终端进程的互通网络异常检测方法 |
CN115834250A (zh) * | 2023-02-14 | 2023-03-21 | 湖南半岛医疗科技有限公司 | 一种用于医疗设备内部的加密通讯方法 |
CN116668085A (zh) * | 2023-05-05 | 2023-08-29 | 山东省计算中心(国家超级计算济南中心) | 基于lightGBM的流量多进程入侵检测方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200053104A1 (en) * | 2017-03-28 | 2020-02-13 | British Telecommunications Public Limited Company | Initialization vector identification for encrypted malware traffic detection |
CN111245860A (zh) * | 2020-01-20 | 2020-06-05 | 上海交通大学 | 一种基于双维度特征的加密恶意流量检测方法和系统 |
CN111860628A (zh) * | 2020-07-08 | 2020-10-30 | 上海乘安科技集团有限公司 | 一种基于深度学习的流量识别与特征提取方法 |
CN113259313A (zh) * | 2021-03-30 | 2021-08-13 | 浙江工业大学 | 一种基于在线训练算法的恶意https流量智能分析方法 |
CN113326867A (zh) * | 2021-04-23 | 2021-08-31 | 杭州未名信科科技有限公司 | 一种流量检测方法、装置、设备及介质 |
-
2021
- 2021-11-05 CN CN202111303061.1A patent/CN114143037B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200053104A1 (en) * | 2017-03-28 | 2020-02-13 | British Telecommunications Public Limited Company | Initialization vector identification for encrypted malware traffic detection |
CN111245860A (zh) * | 2020-01-20 | 2020-06-05 | 上海交通大学 | 一种基于双维度特征的加密恶意流量检测方法和系统 |
CN111860628A (zh) * | 2020-07-08 | 2020-10-30 | 上海乘安科技集团有限公司 | 一种基于深度学习的流量识别与特征提取方法 |
CN113259313A (zh) * | 2021-03-30 | 2021-08-13 | 浙江工业大学 | 一种基于在线训练算法的恶意https流量智能分析方法 |
CN113326867A (zh) * | 2021-04-23 | 2021-08-31 | 杭州未名信科科技有限公司 | 一种流量检测方法、装置、设备及介质 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115051833A (zh) * | 2022-05-12 | 2022-09-13 | 中国电子科技集团公司电子科学研究院 | 一种基于终端进程的互通网络异常检测方法 |
CN115051833B (zh) * | 2022-05-12 | 2023-12-15 | 中国电子科技集团公司电子科学研究院 | 一种基于终端进程的互通网络异常检测方法 |
CN115033889A (zh) * | 2022-06-22 | 2022-09-09 | 中国电信股份有限公司 | 非法提权检测方法和装置、存储介质、计算机设备 |
CN115033889B (zh) * | 2022-06-22 | 2023-10-31 | 中国电信股份有限公司 | 非法提权检测方法和装置、存储介质、计算机设备 |
CN115001866A (zh) * | 2022-08-01 | 2022-09-02 | 成都市以太节点科技有限公司 | 一种基于免疫机制的安全防护方法、电子设备及存储介质 |
CN115834250A (zh) * | 2023-02-14 | 2023-03-21 | 湖南半岛医疗科技有限公司 | 一种用于医疗设备内部的加密通讯方法 |
CN116668085A (zh) * | 2023-05-05 | 2023-08-29 | 山东省计算中心(国家超级计算济南中心) | 基于lightGBM的流量多进程入侵检测方法及系统 |
CN116668085B (zh) * | 2023-05-05 | 2024-02-27 | 山东省计算中心(国家超级计算济南中心) | 基于lightGBM的流量多进程入侵检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114143037B (zh) | 2022-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114143037B (zh) | 一种基于进程行为分析的恶意加密信道检测方法 | |
Gogoi et al. | MLH-IDS: a multi-level hybrid intrusion detection method | |
CN107135093B (zh) | 一种基于有限自动机的物联网入侵检测方法及检测系统 | |
Suresh et al. | Evaluating machine learning algorithms for detecting DDoS attacks | |
Tan et al. | A system for denial-of-service attack detection based on multivariate correlation analysis | |
Zhang et al. | Random-forests-based network intrusion detection systems | |
Le et al. | Data analytics on network traffic flows for botnet behaviour detection | |
Lappas et al. | Data mining techniques for (network) intrusion detection systems | |
CN112738039A (zh) | 一种基于流量行为的恶意加密流量检测方法、系统及设备 | |
CN110611640A (zh) | 一种基于随机森林的dns协议隐蔽通道检测方法 | |
CN107370752B (zh) | 一种高效的远控木马检测方法 | |
CN109951462B (zh) | 一种基于全息建模的应用软件流量异常检测系统及方法 | |
Liu et al. | A distance-based method for building an encrypted malware traffic identification framework | |
Su et al. | Hierarchical clustering based network traffic data reduction for improving suspicious flow detection | |
Moustafa et al. | A network forensic scheme using correntropy-variation for attack detection | |
CN115643035A (zh) | 基于多源日志的网络安全态势评估方法 | |
Nalavade et al. | Mining association rules to evade network intrusion in network audit data | |
CN113821793A (zh) | 一种基于图卷积神经网络的多阶段攻击场景构建方法及系统 | |
CN112291213A (zh) | 一种基于智能终端的异常流量分析方法及装置 | |
Hammerschmidt et al. | Behavioral clustering of non-stationary IP flow record data | |
Hammerschmidt et al. | Efficient learning of communication profiles from ip flow records | |
CN115085948A (zh) | 基于改进d-s证据理论的网络安全态势评估方法 | |
Bakhshandeh et al. | An efficient user identification approach based on Netflow analysis | |
Kim et al. | An approach to online network monitoring using clustered patterns | |
CN116527307A (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 |