[发明专利]一种基于主题概率模型的网站指纹识别方法有效
申请号: | 202110768912.3 | 申请日: | 2021-07-07 |
公开(公告)号: | CN113434801B | 公开(公告)日: | 2022-01-28 |
发明(设计)人: | 邹鸿程;魏子令;苏金树;赵宝康;赵锋;时向泉;陶静;虞万荣;韩彪;原玉磊 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F16/958 | 分类号: | G06F16/958;G06F16/955 |
代理公司: | 湖南企企卫知识产权代理有限公司 43257 | 代理人: | 任合明 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 主题 概率 模型 网站 指纹识别 方法 | ||
1.一种基于主题概率模型的网站指纹识别方法,其特征在于包括以下步骤:
第一步,构建网站指纹识别系统;该系统由通用流量数据采集模块、流量数据预处理模块、PWFP主题概率模型训练模块、PWFP主题概率模型预测模块和网站识别模块组成;
通用流量数据采集模块与识别者、流量数据预处理模块相连,由采集参数配置模块、用户行为模拟模块、流量数据采集模块和配置文件组成;
配置文件保存配置参数,配置参数包括敏感网址即识别者关注的网址、可访问网址、训练样本数量、测试样本数量、训练测试比例、用户行为模式、访问间隔、访问时长、网站指纹识别场景、优化类型、精度门限值、是否开启浏览器缓存、是否开启浏览历史记忆和存储地址;
采集参数配置模块与配置文件、流量数据采集模块、用户行为模拟模块、流量数据预处理模块和KNN决策模块相连;采集参数配置模块从配置文件读取采集和预处理任务相关的各种配置参数,支持对配置参数进行动态配置,将配置参数发送给流量数据采集模块、用户行为模拟模块、流量数据预处理模块和KNN决策模块;
用户行为模拟模块与采集参数配置模块、流量数据采集模块相连,从采集参数配置模块接收配置参数,根据配置参数中的用户行为模式、访问间隔、访问时长、训练样本数量和测试样本数量模拟用户浏览网络行为,即用户以怎样的频率和时长访问一个或多个网页;用户行为模拟动作开始后,用户行为模拟模块向流量数据采集模块发送“启动采集”指令;
流量数据采集模块与识别者、采集参数配置模块、用户行为模拟模块、流量数据预处理模块相连;流量数据采集模块从采集参数配置模块接收配置参数,从用户行为模拟模块接收“启动采集”指令,通过识别者接入网络的位置在网络中实时采集加密流量数据并加以存储,将采集到的pcap源文件和时间戳文件发送给流量数据预处理模块;其中,pcap源文件是以pcap文件存储的网络采集原始数据;
流量数据预处理模块与采集参数配置模块、流量数据采集模块、PWFP主题概率模型训练模块、PWFP主题概率模型预测模块相连,包括五个子模块,即流量数据分离模块、一阶特征提取模块、特征符号化模块、分词模块和TF-IDF向量化模块;
流量数据分离模块与采集参数配置模块、流量数据采集模块、一阶特征提取模块相连;流量数据分离模块从流量数据采集模块接收pcap源文件和时间戳文件,对pcap源文件按网站分类,并使pcap源文件按照配置参数中的训练测试比例参数分成训练类别和测试类别;流量数据分离模块将训练数据和测试数据以流数据文件形式逐帧进行存储,并将流数据文件发送到一阶特征提取模块;
一阶特征提取模块与流量数据分离模块、特征符号化模块相连;一阶特征提取模块从流量数据分离模块接收流数据文件,从流数据文件中提取元数据特征,包括包时间戳、包方向和包长度三种特征;其中,包时间戳特征用于保证其他特征按时间顺序有序存放;包方向与包长度组合在一起构成带方向包长特征;带方向包长特征若为正值,表示该带方向包长特征提取自上行包,即从浏览器发送到服务器的数据包;若为负值,表示该带方向包长特征提取自下行包,即从服务器发送到浏览器的数据包;一阶特征提取模块将提取到的带方向包长特征存储成流特征文件,将流特征文件发送给特征符号化模块;
特征符号化模块与一阶特征提取模块、分词模块相连;特征符号化模块从一阶特征提取模块接收流特征文件,对流特征文件中的带方向包长特征进行特征符号化,得到流序列文件,将流序列文件发送到分词模块;
分词模块与特征符号化模块、TF-IDF向量化模块相连;分词模块从特征符号化模块接收流序列文件,将所有流序列文件进行分词;每个流序列文件得到1个词汇列表,所有词汇列表的词汇汇总后去除重复词汇即构成1个训练词库列表,将得到的词汇列表和训练词库列表发送到TF-IDF向量化模块;
TF-IDF向量化模块与分词模块、PWFP主题概率模型训练模块、PWFP主题概率模型预测模块相连;TF-IDF向量化模块从分词模块接收各流序列文件的词汇列表和训练词库列表,采用TF-IDF向量化方法得到各流序列文件对应的TF-IDF向量,将各流序列文件对应的TF-IDF向量发送到PWFP主题概率模型训练模块和PWFP主题概率模型预测模块;
PWFP主题概率模型训练模块与PWFP主题概率模型预测模块均是基于PWFP主题概率模型;
PWFP主题概率模型训练模块与PWFP主题概率模型预测模块、TF-IDF向量化模块、网站识别模块相连;PWFP主题概率模型训练模块从TF-IDF向量化模块接收TF-IDF向量,进行迭代计算,得到用以计算训练流序列文件高阶特征的必要参数,包括主题概率分布p(z)、词汇主题概率分布p(w|z)、训练流序列文件主题概率分布p(d|z),同时生成辅助参数估计的后验概率分布p(z|d,w);其中,z表示主题,w表示词汇,d表示训练流序列文件,p(z)表示主题z的概率分布,p(w|z)表示词汇w在主题z条件下的概率分布,p(d|z)表示训练流序列文件d在主题z条件下的概率分布,p(z|d,w)表示给定训练流序列文件d和词汇w的条件下主题z的概率分布;训练完成后,将p(z)和p(w|z)发送到PWFP主题概率模型预测模块,将p(z)、p(w|z)和p(d|z)发送到高阶特征计算模块;
PWFP主题概率模型预测模块与PWFP主题概率模型训练模块、TF-IDF向量化模块、网站识别模块相连;PWFP主题概率模型预测模块从TF-IDF向量化模块接收TF-IDF向量,利用从PWFP主题概率模型训练模块传来的p(z)和p(w|z),进行迭代计算,得到用以计算测试流序列文件高阶特征的必要参数,即测试流序列文件主题分布p(q|z)和辅助参数估计的后验概率分布p(z|q,w);其中,p(q|z)表示测试流序列文件q在主题z条件下的概率分布,p(z|q,w)表示给定测试流序列文件q和词汇w的条件下主题z的概率分布;预测完成后,将模型参数p(q|z)发送到高阶特征计算模块;
网站识别模块与PWFP主题概率模型训练模块、PWFP主题概率模型预测模块,由高阶特征计算模块、相似度计算模块和KNN决策模块构成;高阶特征计算模块从PWFP主题概率模型训练模块接收p(z)、p(d|z)和p(w|z),从PWFP主题概率模型预测模块接收p(q|z),计算出训练流序列文件主题分布p(z|d)或测试流序列文件主题分布p(z|q),进一步得到训练流序列文件或测试流序列文件的高阶特征向量,将高阶特征向量发送给相似度计算模块;
相似度计算模块与高阶特征计算模块和KNN决策模块相连,从高阶特征计算模块接收测试流序列文件与训练流序列文件的高阶特征向量,计算测试流序列文件与训练流序列文件两两之间距离,将测试流序列文件与训练流序列文件两两之间距离发送给KNN决策模块;
KNN决策模块与采集参数配置模块、相似度计算模块连接,从相似度计算模块接收测试流序列文件与训练流序列文件之间距离,从采集参数配置模块接收网站指纹识别场景、优化类型、精度门限值、训练样本数量,根据配置参数中不同的网站指纹识别场景配置采用不同的决策策略,识别测试流序列文件所属的网站,得到对应的网站序号;
第二步,初始化配置文件;采集参数配置模块从配置文件读取配置参数,将配置参数发送给流量数据采集模块、用户行为模拟模块、流量数据预处理模块和KNN决策模块;准备PWFP主题概率模型的训练数据集,包括SSH55、SSH100和Alexa74三个公开数据集和通用流量数据采集模块采集的HTTPS100、AleSS73、AleSS287和Opw6879四个数据集;流量数据采集模块将采集得到的HTTPS100、AleSS73、AleSS287和Opw6879的pcap源文件和时间戳文件发送给流量数据预处理模块;
第三步,流量数据预处理模块从流量数据采集模块或公开数据集接收训练数据,根据训练数据的类型进行相应的处理;若流量数据预处理模块从流量数据采集模块接收数据,得到pcap源文件和时间戳文件,按3.1、3.2、3.3、3.4、3.5步骤进行流量数据分离、一阶特征提取、特征符号化、分词和TF-IDF向量化;若流量数据预处理模块从公开数据集接收数据,则根据公开数据集的类型进入不同的处理流程,具体是:若公开数据集以pcap源文件形式存在,则按3.1、3.2、3.3、3.4、3.5步骤处理;若公开数据集以流特征文件形式存在,则按3.1、3.3、3.4、3.5步骤处理,若公开数据集以流序列文件形式存在,则按3.1、3.4、3.5步骤处理;具体方法是:
3.1流量数据分离模块获取并判断到来的数据,若是pcap源文件和时间戳文件,转3.1.1,否则,转3.1.2;
3.1.1将pcap源文件中的流量数据按照网站进行分离,得到流数据文件;
3.1.2判断流文件类型:若是pcap源文件,则对流数据文件按照配置参数中的训练测试比例进行分离,并将得到的训练流数据文件发送给一阶特征提取模块,转3.2;若是流特征文件,则对流特征文件按照配置参数中的训练测试比例进行分离,并将得到的训练流特征文件发送给特征符号化模块,转3.3;若是流序列文件,则对流序列文件按照配置参数中的训练测试比例进行分离,并将得到的训练流序列文件发送给分词模块,转3.4;
3.2一阶特征提取模块从流量数据分离模块接收X个训练流数据文件,并采用一阶特征提取方法从X个训练流数据文件提取一阶特征,得到X个训练流特征文件,将X个训练流特征文件发送给特征符号化模块;
3.3特征符号化模块从一阶特征提取模块或流量分离模块接收X个训练流特征文件,采用符号化方法对X个训练流特征文件进行特征符号化,得到X个特征流序列文件,将X个训练流序列文件发送给分词模块;
3.4分词模块从特征符号化模块或流量分离模块接收X个训练流序列文件,采用分词方法对其进行分词处理,得到X个训练流序列文件的词汇列表b1,...,bx,...,bX,将b1,...,bx,...,bX中的词汇汇总并去除重复的词汇后构成训练词库列表C,将b1,...,bx,...,bX和C并发送给TF-IDF向量化模块,1≤x≤X;
3.5TF-IDF向量化模块从分词模块接收词汇列表b1,...,bx,...,bX和训练词库列表C,将词汇列表b1,...,bx,...,bX通过TF-IDF方法分别转换成一个向量,得到X个TF-IDF向量;
3.6对得到的X个TF-IDF向量进行降维处理,即首先将X个TF-IDF向量组成矩阵,并去除所有全零列,得到降维处理后的X个TF-IDF向量;同时,根据降维处理后的TF-IDF向量,对训练词库列表C进行更新,即删除原TF-IDF向量的全零列对应的词汇;
3.7将降维处理后的X个TF-IDF向量发送给PWFP主题概率模型训练模块,转第四步;
第四步:PWFP主题概率模型训练模块接收TF-IDF向量化模块输出的X个TF-IDF向量,进行参数估计即对PWFP主题概率模型进行训练,从而对PWFP主题概率模型预测模块的模型进行更新,得到训练后的网站指纹识别系统;高阶特征计算模块计算训练流序列文件的高阶特征向量,并发送到相似度计算模块;具体过程是:
4.1PWFP主题概率模型训练模块从TF-IDF向量化模块接收X个训练流序列文件的TF-IDF向量,利用期望最大化算法即EM算法对PWFP主题概率模型训练参数即训练流序列文件主题概率分布p(d|z)、主题概率分布p(z)和词汇主题概率分布p(w|z)进行估计;EM算法包括E-step和M-step两个步骤,分别用来更新PWFP主题概率模型的后验概率分布p(z|d,w)和模型训练参数p(d|z)、p(z)和p(w|z);两个步骤交替迭代进行,迭代L轮后完成参数估计,将参数p(z)和p(w|z)发送到PWFP主题概率模型预测模块,更新PWFP主题概率模型预测模块的模型,并将参数p(z)、p(w|z)和p(d|z)发送到高阶特征计算模块;p(z)包括p(z1),...,p(zk),...,p(zK);p(w|z)包括p(w1|z1),...,p(wj|z1),...,p(wM|z1),...,p(w1|zk),...,p(wj|zk),...,p(wM|zk),...,p(w1|zK),...,p(wj|zK),...,p(wM|zK);p(d|z)包括(d1|z1),...,p(dx|z1),...,p(dX|z1),...,p(d1|zk),...,p(dx|zk),...,p(dX|zk),...,p(d1|zK),...,p(dx|zK),...,p(dX|zK);K为模型中隐含主题的数量,M为训练词库列表中词汇的数量,1≤k≤K,1≤j≤M;dx是第x个训练流序列文件,zk是模型中第k个主题,wj是训练词库列表中的第j个词汇;
4.2高阶特征计算模块接收PWFP主题概率模型训练模块发送的参数p(d|z)、p(z)和p(w|z),计算X个训练流序列文件的高阶特征向量,得到X个训练流序列文件的高阶特征向量d1v,...,dxv,...,dXv,dxv为训练流序列文件dx的高阶特征向量,dxv=(p(z1|dx),p(z2|dx),...,p(zk|dx),...,p(zK|dx)),p(zk|dx)为主题zk关于测试流序列文件dx的条件概率分布,v表示该变量是向量,将d1v,...,dxv,...,dXv发送到相似度计算模块;
第五步:训练后的网站指纹识别系统采集测试数据,对测试数据进行流量数据预处理、PWFP主题概率模型预测、网站识别,得到测试流序列文件的所属网站序号;采集测试数据集时采用与采集训练数据集相同的网站参数设置,包括敏感网址和可访问网址;具体方法是:
5.1流量数据采集模块从识别者接入网络,并从网络采集被测试网站的加密流量数据,方法是:
5.1.1用户行为模拟模块接收采集配置模块的配置参数,根据配置参数中的用户行为模式、访问时长、访问间隔模拟用户访问网站,同时向流量数据采集模块发送“启动采集”指令;
5.1.2流量数据采集模块接收用户行为模拟模块发送的“启动采集”指令,接收采集参数配置模块的配置参数,采用tcpdump工具在后台从识别者所在的网络中实时抓取流量数据,并存储为一个pcap源文件;同时在采集的过程中记录每个网站的开始和结束采集的时间戳,并存储为一个时间戳文件;
5.2流量数据预处理模块从流量数据采集模块接收pcap源文件和时间戳文件,进行流量数据分离、一阶特征提取、特征符号化、分词和TF-IDF向量化,方法是:
5.2.1流量数据分离模块从流量采集模块接收pcap源文件和时间戳文件,按3.1.1步所述的将pcap源文件的流量数据按照网站进行分离的方法对接收到的测试数据进行流量分离处理,得到X′个测试流数据文件,将X′个测试流数据文件发送给一阶特征提取模块;
5.2.2一阶特征提取模块从流量数据分离模块接收X′个测试流数据文件,对X′个测试流数据文件采用3.2步所述一阶特征提取方法进行一阶特征提取,得到X′个测试流特征文件,将X′个测试流特征文件发送给特征符号化模块;
5.2.3特征符号化模块从一阶特征提取模块接收X′个测试流特征文件,采用3.3步所述符号化方法对X′个测试流特征文件进行符号化处理,得到X′个测试流序列文件,将X′个测试流序列文件发送给分词模块;
5.2.4分词模块从特征符号化模块接收X′个测试流序列文件,采用3.4步所述分词方法对X′个测试流序列文件进行分词处理,得到X′个测试流序列文件的词汇列表b1,...,bx′,...,bX′,将词汇列表b1,...,bx′,...,bX′发送给TF-IDF向量化模块,X′表示测试流序列文件的数量,1≤x′≤X′;
5.2.5TF-IDF向量化模块从分词模块接收X′个测试流序列文件的词汇列表,结合训练阶段更新后的训练词库列表C,采用3.5步所述的TF-IDF方法词将测试流序列文件的词汇列表b1,...,bx′,...,bX′分别转换成一个向量,得到X′个TF-IDF向量,将转换得到的测试流序列文件的X′个TF-IDF向量发送给PWFP主题概率模型预测模块;
5.3PWFP主题概率模型预测模块从TF-IDF向量化模块接收测试流序列文件的X′个TF-IDF向量,结合从PWFP主题概率模型训练模块接收的p(z)和p(w|z)参数,利用EM算法对测试流序列文件主题概率参数p(q|z)参数进行估计;将p(q|z)发送到高阶特征计算模块;p(q|z)含p(q1|z1),...,p(qx′|z1),...,p(qX′|z1),...,p(q1|zk),...,p(qx′|zk),...,p(qX′|zk),...,p(q1|zK),...,p(qx′|zK),...,p(qX′|zK);
5.4网站识别模块接收PWFP主题概率模型预测模块发送的参数p(q|z),对各测试流序列文件所属网站进行识别,得到各测试流序列文件所属网站的序号;方法是:
5.4.1高阶特征计算模块接收PWFP主题概率模型预测模块发送的参数p(q|z),结合PWFP主题概率模型训练模块发送的参数p(z)和p(w|z),采用4.2步所述的方法分别求出测试流序列文件q1,...,qx′,...,qX′的高阶特征向量q1v,...,qx′v,...,qX′v,将得到的q1v,...,qx′v,...,qX′v发送给相似度计算模块,qx′v表示测试流序列文件qx′的高阶特征向量;
5.4.2相似度计算模块从高阶特征模块接收训练流序列文件和测试流序列文件的高阶特征向量,计算测试流序列文件与训练流序列文件两两之间的距离,得到X′个测试流序列文件与X个训练流序列文件两两之间的距离;其中,第x′个测试流序列文件qx′与X个训练流序列文件的距离是dis(qx′v,d1v),...,dis(qx′v,dxv),...,dis(qx′v,dXv),qx′v_k表示qx′v的第k维特征值,dxv_k表示dxv的第k维特征值,weight为qx′v和dxv两个高阶特征向量同时不为0的维数数量;并将X′个测试流序列文件与X个训练流序列文件两两之间的距离全部发送给KNN决策模块;
5.4.3KNN决策模块从相似度计算模块接收测试流序列文件和训练流序列文件的距离,从采集参数配置模块接收配置参数,使用KNN分类法识别测试流序列文件所属网站,得到对应的网站序号;根据配置参数中的网站指纹识别场景,分别使用不同的最近邻居数量参数r设置;方法是:
5.4.3.1若是封闭世界场景情况,即测试流序列文件所属的网站均为识别者所关注的网站,转5.4.3.2;若是开放世界场景情况,即测试流序列文件所属的网站不仅包括识别者所关注的网站,也可能是其他的网站;在这种情况下,若是以优化精度为目标,转5.4.3.3;若是以优化召回率为目标,转5.4.3.4;
5.4.3.2 KNN决策模块对封闭世界场景下的测试流序列文件进行识别,方法是:
5.4.3.2.1设置参数r为1,同时设置当前处理测试流序列文件序号为x′=1;
5.4.3.2.2将相似度计算模块发送的测试流序列文件qx′与X个训练流序列文件的距离dis(qx′v,d1v),...,dis(qx′v,dxv),...,dis(qx′v,dXv),存储在字典dic_sim中;
5.4.3.2.3从dic_sim中选择最小距离,找到对应的训练流序列文件ds,并将测试流序列文件qx′划分到训练流序列文件ds所属于的网站;假设该网站序号为wx′;则wx′的计算方法是其中,n表示每个网站的训练流序列文件数量;
5.4.3.2.4递增当前处理测试流序列文件序号x′=x′+1,若x′≤X′,转5.4.3.2.3,若x′>X′,则完成了对所有测试流序列文件所属网站的识别,得到了各测试流序列文件的所属网站序号w1,w2,...,wx′,...,wX′;转第六步;
5.4.3.3KNN决策模块对以优化精度为目标的开放世界场景下的测试流序列文件进行识别,方法是:
5.4.3.3.1在[1,10]之间随机选择一个整数r1对参数r进行初始化;
5.4.3.3.2设置当前处理测试流序列文件序号为x′=1;
5.4.3.3.3将相似度计算模块发送的测试流序列文件qx′与所有X1+X2个训练流序列文件的距离dis(qx′v,d1v),...,dis(qx′v,dxv),...,dis(qx′v,dX1v),...,dis(qx′v,dX1+X2v)存储在字典dic_sim中;其中,X1+X2表示所有的训练流序列文件,即X=X1+X2;X1表示识别者关注的网站的训练流序列文件数量,X2表示识别者不关注的网站的训练流序列文件数量;在开放世界场景中,序号范围在[1,X1]区间内的训练流序列文件是访问识别者关注的网站产生的;序号范围在(X1,X1+X2]区间内的训练流序列文件是访问其他网站产生的;
5.4.3.3.4从dic_sim中选择最小距离,找到对应的训练流序列文件ds,并将测试流序列文件qx′划分到训练流序列文件ds所对应的网站;假设该网站序号为wx′,则wx′的计算方法是当s在[1,X1]时,当s在(X1,X1+X2]时,其中,n表示每个网站的训练流序列文件数量;
5.4.3.3.5递增当前处理测试流序列文件序号x′=x′+1,若x′≤X′,转5.4.3.3.3,若x′>X′,则完成对所有测试流序列文件所属网站的识别,得到了各测试流序列文件的所属网站的序号w1,w2,...,wx′,...,wX′,转5.4.3.3.6;
5.4.3.3.6计算开放世界设置下的精度;从采集参数配置模块接收精度门限值,若精度大于预置的门限值,则识别完成,得到了各测试流序列文件的所属网站,得到对应的网站序号w1,w2,...,wx′,...,wX′,转第六步;否则,设置参数r为r1+1,转5.4.3.3.2;
5.4.3.4,KNN决策模块对以优化召回率为目标的开放世界场景下的测试流序列文件进行识别,方法是:
5.4.3.4.1设置参数r为1,同时设置当前处理流序列文件序号为x′=1;
5.4.3.4.2将相似度计算模块发送的测试流序列文件qx′与所有X1+X2个训练流序列文件的距离dis(qx′v,d1v),...,dis(qx′v,dxv),...,dis(qx′v,dX1v),...,dis(qx′v,dX1+X2v)存储在字典dic_sim中;
5.4.3.4.3从dic_sim中选择最小距离,找到对应的训练流序列文件ds,并将测试流序列文件qx′划分到训练流序列文件ds所对应的网站;假设该网站序号为wx′,则wx′的计算方法是:当s在[1,X1]时,当s在(X1,X1+X2]时,其中,n表示每个网站的训练流序列文件数量;
5.4.3.4.4递增当前处理测试流序列文件序号x′=x′+1,若x′≤X′,转5.4.3.4.2,若x′>X′,则完成对所有测试流序列文件所属网站的识别,得到了各测试流序列文件的所属网站的序号w1,w2,...,wx′,...,wX′,转第六步;
第六步,结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110768912.3/1.html,转载请声明来源钻瓜专利网。