[发明专利]一种基于进程行为分析的恶意加密信道检测方法有效
申请号: | 202111303061.1 | 申请日: | 2021-11-05 |
公开(公告)号: | CN114143037B | 公开(公告)日: | 2022-10-11 |
发明(设计)人: | 杨光;付勇;王继志;赵大伟;陈丽娟;陈振娅;杨美红;吴晓明;王英龙 | 申请(专利权)人: | 山东省计算中心(国家超级计算济南中心) |
主分类号: | H04L9/40 | 分类号: | H04L9/40;H04L41/14 |
代理公司: | 济南金迪知识产权代理有限公司 37219 | 代理人: | 杨树云 |
地址: | 250014*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 进程 行为 分析 恶意 加密 信道 检测 方法 | ||
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:基于阈值的异常检测;
求取加密会话的元特征,具体包括步骤如下:
元特征分为四个维度,包括:
当天进程文件建立加密会话中发送/接收的总IP数据包个数;
当天进程文件建立加密会话中发送/接收的总IP数据包负载字节数;
当天进程文件建立加密会话中发送/接收的IP数据包速率;
当天进程文件建立加密会话中发送/接收的IP数据包负载字节速率;
其中,IP数据包负载指的是IP头部字段中,采用[Total Length]字段的数值减去[Header Length]字段的数值;
发送/接收的IP数据包速率VPacket、发送/接收的IP数据包负载字节速率VBytes的求取公式分别如式(1a)、式(1b)所示:
式(1a)、式(1b)中,PacketCounts是指当天所有加密会话发送/接收的数据包总数,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段负载长度序列特征以树结构组织展现;
求取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)所示,其中表示第j列均值;
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采用上标标识,对于任一SubSeqki,一定存在某个特征树FeatTreej,使得其k阶段负载长度序列分支SegPayloadkj中包含k阶序列SubSeqki,针对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)所示:
其中表示第j列均值;对应行元素求和后取平均值,得到Normal_ETA的平均特征树的第三层分支向量SSLType_Mean;
最终针对{PEFc}中所有的进程文件,重复上述步骤3.2.1至步骤3.2.4,得到所有PEFc的N天内的单日代表特征树集合将其所有单日代表特征树的集合,作为正常加密通讯行为基准;
步骤3.3中,目标PEF加密通讯行为模型建构,具体是指:
通过步骤2,针对特定天的终端上运行的PEFT提取其层次化特征树FeatTreeT,并将其作为与集合比较对象;
步骤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)所示:
通过式(8),得到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)所示:
式(9)中,K表示分析的子序列阶数最大值,k表示特定的阶数,k阶子序列上的相似度采用所有k阶子序列匹配权重之和并乘以相应的阶数权重的方式计算,最终得到SubTreeT与SubTreei的特征相似度;
⑤针对SubTreeT与所有的SubTreei按照步骤④计算相应的SV2k,得到相应的M个相似度序列SVSet2K={SVi,2K,i=1,2..M},并通过式(7)对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进行列归一化,即采用式(7)将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中,重新进行正常加密通讯行为基准建构。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于山东省计算中心(国家超级计算济南中心),未经山东省计算中心(国家超级计算济南中心)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111303061.1/1.html,转载请声明来源钻瓜专利网。