一种基于孪生网络的暗网站点会话识别方法及系统转让专利

申请号 : CN202210845956.6

文献号 : CN115002045B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘志洁丁建伟李欣泽王鑫陈周国杨宇徐进何鑫李航段嘉鑫

申请人 : 中国电子科技集团公司第三十研究所

摘要 :

本发明涉及计算机网络技术领域,公开了一种基于孪生网络的暗网站点会话识别方法及系统,该识别方法,基于Meek网桥捕获的暗网会话,构建孪生神经网络模型对暗网站点进行识别。本发明解决了现有技术存在的难以深度表征Meek流量下暗网站点会话的特征、模型泛化性不足、难以保障识别暗网站点会话的准确性等问题。

权利要求 :

1.一种基于孪生网络的暗网站点会话识别方法,其特征在于,基于Meek网桥捕获的暗网会话,构建孪生神经网络模型对暗网站点进行识别;

包括以下步骤:

S1,Meek流量采集与标注:获取网关出入口的镜像流量,同时在Meek网桥下捕获访问暗网隐藏服务站点的流量数据;以及,对Tor Meek访问的暗网站点进行标记,标记出相应的暗网站点信息,得到带暗网站点标记的流量样本;判断标记的流量样本中是否含有非未知站点数据;若是,则进入步骤S2;

S2,Meek流量预处理:对流量样本中的pcap格式的流量数据进行预处理,得到预处理后的Meek流量数据;

S3,孪生神经网络模型训练与识别:基于带暗网站点标记的流量样本以及步骤S2预处理后的Meek流量数据,构建并训练孪生神经网络模型,然后利用训练后的孪生神经网络模型对未知会话进行识别,并输出孪生神经网络模型的识别结果和识别置信度;

S4,结果展示:利用设定的阈值对识别置信度进行判断,决定是否输出识别的会话以及识别的会话对应的暗网站点标签;

步骤S3包括以下步骤:

S31,孪生神经网络模型构建:以CNN网络作为孪生网络的两个子网络,并将CNN网络的输出层替换为拉伸层;

S32,孪生神经网络模型训练:基于暗网站点的标记数据训练孪生神经网络,利用步骤S27输出的单通道灰度图片数据及会话的暗网站点标记,对孪生神经网络进行训练;

S33,孪生神经网络模型识别:对未知会话灰度数据,利用训练后的孪生神经网络,进行识别,并输出识别结果至步骤S4;

步骤S32包括以下步骤:

S321,取步骤S2输出的会话灰度数据,将属于同一个暗网站点的会话灰度数据和不同暗网标记的会话灰度数据进行组合,组合后的会话灰度数据作为一个训练组,并划分训练组为两个训练对,将属于同一个暗网站点的训练对的两个会话灰度数据设置为正样本,将不同标签的会话灰度数据设置为负样本;

S322:取Meek会话数据训练对,将两个会话灰度数据分别输入两个CNN网络,获取CNN网络输出的拉伸向量,并计算两个拉伸向量之间的距离;

S323:将步骤S322计算的距离依次输入激活函数为Relu的全连接层、激活函数为sigmoid的输出层,得到置信度;

S324:调整孪生神经网络模型参数,重复取训练组进行训练,直至置信度达到可接受的阈值,并保存训练后的孪生神经网络模型;

步骤S33包括以下步骤:

S331,取未知会话的会话灰度数据,并与已知暗网站点的会话数据集中的数据依次进行组合,构成多个测试对;

S332,将测试对输入训练后的孪生神经网络模型进行识别,并输出孪生神经网络模型的识别结果和识别置信度。

2.根据权利要求1所述的一种基于孪生网络的暗网站点会话识别方法,其特征在于,步骤S1包括以下步骤:S11,从网关出入口获取镜像流量的pcap文件数据或外来pcap文件数据;

S12,判断步骤S11获取的pcap文件数据是否含有暗网站点标记;若是,则进入步骤S13;

若否,则先将流量数据标记为未知站点,再进入步骤S13;

S13,pcap文件数据存储;

S14,判断是否存在带有非未知站点数据的流量数据;若是,则进入步骤S2;若否,则先在暗网站点输入接口中输入暗网站点,运行暗网站点数据采集与标注程序,再返回步骤S13。

3.根据权利要求2所述的一种基于孪生网络的暗网站点会话识别方法,其特征在于,步骤S14中,运行暗网站点数据采集与标注程序包括以下步骤:S141,在Tor浏览器使用Meek网桥,使网络可正常连接;

S142,判断暗网站点列表是否有新增的外部输入暗网站点;若是,则进入步骤S145;若否,则进入步骤S143;

S143,获取暗网站点信息;

S144,运行流量捕获工具,访问步骤S143获取的暗网站点,并保存pcap文件,并用该站点名作为标签;

S145,返回步骤S13。

4.根据权利要求3所述的一种基于孪生网络的暗网站点会话识别方法,其特征在于,步骤S2包括以下步骤:S21,解析流量数据,过滤广播流量、ICMP协议流量,对会话进行重组,提取出会话中的TLS协议会话,并提取会话五元组信息以及ClientHello报文信息;

S22,判断ClientHello报文中的版本信息是否为SSLv3或者TLS;若是,则进入步骤S23;

若否,则判断为其他类型流量;

S23,判断ClientHello报文中Cipher Suits个数是否满足Meek特征;若是,则进入步骤S24;若否,则判断为其他类型流量;

S24,提取ClientHello报文中Cipher Suits内容,判断Cipher Suits的内容和顺序是否符合Meek特征;若是,则进入步骤S25;若否,则判断为其他类型流量;

S25,判断ClientHello报文中Extensions个数是否满足Meek特征;若是,则进入步骤S25;若否,则判断为其他类型流量;

S26,提取ClientHello报文中Extensions内容,判断Extensions的内容和顺序是否符合Meek特征;若是,则进入步骤S25;若否,则判断为其他类型流量;

S27,过滤其他类型流量,筛选出疑似Meek流量,对疑似Meek流量的会话信息进行存储,并提取会话载荷数据的前1024字节,若不足1024字节,则利用0xFF进行填充至1024字节;最后将此1024字节有效载荷转化为长宽为32*32的单通道灰度图片,再将单通道灰度图片数据与步骤S1中的暗网站点标记作为孪生神经网络模型的输入。

5.根据权利要求1至4任一项所述的一种基于孪生网络的暗网站点会话识别方法,其特征在于,步骤S4包括以下步骤:S41,在[0.5,1]的范围内自定义一个阈值;

S42,获取孪生神经网络模型对未知会话的识别结果,识别结果包括会话对应的暗网站点地址、会话对应的暗网站点地址的置信度,并判断识别置信度是否≥阈值;

S43,最后,若置信度≥阈值,则输出识别结果,展示会话详情及识别的暗网站点;否则,不展示会话详情及识别的暗网站点。

6.一种基于孪生网络的暗网站点会话识别系统,其特征在于,基于权利要求1至5任一项所述的一种基于孪生网络的暗网站点会话识别方法,包括依次电相连的以下模块:Meek流量采集与标注模块:用以,获取网关出入口的镜像流量,同时在Meek网桥下捕获访问暗网隐藏服务站点的流量数据;以及,对Tor Meek访问的暗网站点进行标记,标记出相应的暗网站点信息,得到带暗网站点标记的流量样本;判断标记的流量样本中是否含有非未知站点数据;若是,则进入步骤S2;

Meek流量预处理模块:用以,对流量样本中的pcap格式的流量数据进行预处理,得到预处理后的Meek流量数据;

孪生神经网络模型训练与识别模块:用以,基于带暗网站点标记的流量样本以及步骤S2预处理后的Meek流量数据,构建并训练孪生神经网络模型,然后利用训练后的孪生神经网络模型对未知会话进行识别,并输出孪生神经网络模型的识别结果和识别置信度;

孪生神经网络模型训练与识别模块具体用以执行以下步骤:

S31,孪生神经网络模型构建:以CNN网络作为孪生网络的两个子网络,并将CNN网络的输出层替换为拉伸层;

S32,孪生神经网络模型训练:基于暗网站点的标记数据训练孪生神经网络,利用步骤S27输出的单通道灰度图片数据及会话的暗网站点标记,对孪生神经网络进行训练;

S33,孪生神经网络模型识别:对未知会话灰度数据,利用训练后的孪生神经网络,进行识别,并输出识别结果至步骤S4;

步骤S32包括以下步骤:

S321,取步骤S2输出的会话灰度数据,将属于同一个暗网站点的会话灰度数据和不同暗网标记的会话灰度数据进行组合,组合后的会话灰度数据作为一个训练组,并划分训练组为两个训练对,将属于同一个暗网站点的训练对的两个会话灰度数据设置为正样本,将不同标签的会话灰度数据设置为负样本;

S322:取Meek会话数据训练对,将两个会话灰度数据分别输入两个CNN网络,获取CNN网络输出的拉伸向量,并计算两个拉伸向量之间的距离;

S323:将步骤S322计算的距离依次输入激活函数为Relu的全连接层、激活函数为sigmoid的输出层,得到置信度;

S324:调整孪生神经网络模型参数,重复取训练组进行训练,直至置信度达到可接受的阈值,并保存训练后的孪生神经网络模型;

步骤S33包括以下步骤:

S331,取未知会话的会话灰度数据,并与已知暗网站点的会话数据集中的数据依次进行组合,构成多个测试对;

S332,将测试对输入训练后的孪生神经网络模型进行识别,并输出孪生神经网络模型的识别结果和识别置信度;

结果展示模块:用以,利用设定的阈值对识别置信度进行判断,决定是否输出识别的会话以及识别的会话对应的暗网站点标签。

说明书 :

一种基于孪生网络的暗网站点会话识别方法及系统

技术领域

[0001] 本发明涉及计算机网络技术领域,具体是一种基于孪生网络的暗网站点会话识别方法及系统。

背景技术

[0002] Meek作为Tor的一种特殊的网桥模式,可以把Tor流量伪装成了基于HTTPS加密的云服务流量,从而规避网络监管机制。通过分析Meek网桥下Tor 浏览器客户端的流量数据(即Meek流量),可以推断与确认双方通讯关系或任意一方的身份信息,提升对Tor网络的监管能力。
[0003] 针对在网络流量层对Meek插件下用户访问的暗网站点进行识别的问题,现有的方法大多通过人工提取大量通信特征,利用机器学习方法对Tor Meek机制下用户访问的暗网站点或普通站点进行识别,如论文《基于指纹识别的Tor隐藏服务溯源研究》(胡丽苹.基于指纹识别的Tor隐藏服务溯源研究[D].北京交通大学,2019.)根据Hidden Service协议中的Rendezvous规范和Meek轮训机制等数据包特征以及隐藏服务页面元素特征,分析隐藏服务和普通网站在通信流量上的差异,但该方法高度依赖特征设计,在真实网络环境中的效果缺乏长期的跟踪验证,导致模型的泛化性不足。此外,论文《Tor匿名流量识别技术研究》(王腾飞.Tor匿名流量识别技术研究[D].中国人民公安大学,2021.)基于Meek插件下的流量序列划分方法,提出基于GRU的seq2seq模型提取自动特征,识别Alex排名前8100的目标网站,该方法依赖大量的标注样本与指纹信息,但暗网网站流量数据的采集与标注成本较高,导致其在实际使用过程中的成本较高。

发明内容

[0004] 为克服现有技术的不足,本发明提供了一种基于孪生网络的暗网站点会话识别方法及系统,解决现有技术存在的难以深度表征Meek流量下暗网站点会话的特征、模型泛化性不足、难以保障识别暗网站点会话的准确性等问题。
[0005] 本发明解决上述问题所采用的技术方案是:
[0006] 一种基于孪生网络的暗网站点会话识别方法,基于Meek网桥捕获的暗网会话,构建孪生神经网络模型对暗网站点进行识别。
[0007] 作为一种优选的技术方案,包括以下步骤:
[0008] S1,Meek流量采集与标注:获取网关出入口的镜像流量,同时在Meek网桥下捕获访问暗网隐藏服务站点的流量数据;以及,对Tor Meek访问的暗网站点进行标记,标记出相应的暗网站点信息,得到带暗网站点标记的流量样本;判断标记的流量样本中是否含有非未知站点数据;若是,则进入步骤S2;
[0009] S2,Meek流量预处理:对流量样本中的pcap格式的流量数据进行预处理,得到预处理后的Meek流量数据;
[0010] S3,孪生神经网络模型训练与识别:基于带暗网站点标记的流量样本以及步骤S2预处理后的Meek流量数据,构建并训练孪生神经网络模型,然后利用训练后的孪生神经网络模型对未知会话进行识别,并输出孪生神经网络模型的识别结果和识别置信度;
[0011] S4,结果展示:利用设定的阈值对识别置信度进行判断,决定是否输出识别的会话以及识别的会话对应的暗网站点标签。
[0012] 作为一种优选的技术方案,步骤S1包括以下步骤:
[0013] S11,从网关出入口获取镜像流量的pcap文件数据或外来pcap文件数据;
[0014] S12,判断步骤S11获取的pcap文件数据是否含有暗网站点标记;若是,则进入步骤S13;若否,则先将流量数据标记为未知站点,再进入步骤S13;
[0015] S13,pcap文件数据存储;
[0016] S14,判断是否存在带有非未知站点数据的流量数据;若是,则进入步骤S2;若否,则先在暗网站点输入接口中输入暗网站点,运行暗网站点数据采集与标注程序,再返回步骤S13。
[0017] 作为一种优选的技术方案,步骤S14中,运行暗网站点数据采集与标注程序包括以下步骤:
[0018] S141,在Tor浏览器使用Meek网桥,使网络可正常连接;
[0019] S142,判断暗网站点列表是否有新增的外部输入暗网站点;若是,则进入步骤S145;若否,则进入步骤S143;
[0020] S143,获取暗网站点信息;
[0021] S144,运行流量捕获工具,访问步骤S143获取的暗网站点,并保存pcap文件,并用该站点名作为标签;
[0022] S145,返回步骤S13。
[0023] 作为一种优选的技术方案,步骤S2包括以下步骤:
[0024] S21,解析流量数据,过滤广播流量、ICMP协议流量,对会话进行重组,提取出会话中的TLS协议会话,并提取会话五元组信息以及ClientHello报文信息;
[0025] S22,判断ClientHello报文中的版本信息是否为SSLv3或者TLS;若是,则进入步骤S23;若否,则判断为其他类型流量;
[0026] S23,判断ClientHello报文中Cipher Suits个数是否满足Meek特征;若是,则进入步骤S24;若否,则判断为其他类型流量;
[0027] S24,提取ClientHello报文中Cipher Suits内容,判断Cipher Suits的内容和顺序是否符合Meek特征;若是,则进入步骤S25;若否,则判断为其他类型流量;
[0028] S25,判断ClientHello报文中Extensions个数是否满足Meek特征;若是,则进入步骤S25;若否,则判断为其他类型流量;
[0029] S26,提取ClientHello报文中Extensions内容,判断Extensions的内容和顺序是否符合Meek特征;若是,则进入步骤S25;若否,则判断为其他类型流量;
[0030] S27,过滤其他类型流量,筛选出疑似Meek流量,对疑似Meek流量的会话信息进行存储,并提取会话载荷数据的前1024字节,若不足1024字节,则利用0xFF进行填充至1024字节;最后将此1024字节有效载荷转化为长宽为32*32的单通道灰度图片,再将单通道灰度图片数据与步骤S1中的暗网站点标记作为孪生神经网络模型的输入。
[0031] 作为一种优选的技术方案,步骤S3包括以下步骤:
[0032] S31,孪生神经网络模型构建:以CNN网络作为孪生网络的两个子网络,并将CNN网络的输出层替换为拉伸层;
[0033] S32,孪生神经网络模型训练:基于暗网站点的标记数据训练孪生神经网络,利用步骤S27输出的单通道灰度图片数据及会话的暗网站点标记,对孪生神经网络进行训练;
[0034] S33,孪生神经网络模型识别:对未知会话灰度数据,利用训练后的孪生神经网络,进行识别,并输出识别结果至步骤S4。
[0035] 作为一种优选的技术方案,步骤S32包括以下步骤:
[0036] S321,取步骤S2输出的会话灰度数据,将属于同一个暗网站点的会话灰度数据和不同暗网标记的会话灰度数据进行组合,组合后的会话灰度数据作为一个训练组,并划分训练组为两个训练对,将属于同一个暗网站点的训练对的两个会话灰度数据设置为正样本,将不同标签的会话灰度数据设置为负样本;
[0037] S322:取Meek会话数据训练对,将两个会话灰度数据分别输入两个CNN网络,获取CNN网络输出的拉伸向量,并计算两个拉伸向量之间的距离;
[0038] S323:将步骤S322计算的距离依次输入激活函数为Relu的全连接层、激活函数为sigmoid的输出层,得到置信度;
[0039] S324:调整孪生神经网络模型参数,重复取训练组进行训练,直至置信度达到可接受的阈值,并保存训练后的孪生神经网络模型。
[0040] 作为一种优选的技术方案,步骤S33包括以下步骤:
[0041] S331,取未知会话的会话灰度数据,并与已知暗网站点的会话数据集中的数据依次进行组合,构成多个测试对;
[0042] S332,将测试对输入训练后的孪生神经网络模型进行识别,并输出孪生神经网络模型的识别结果和识别置信度。
[0043] 作为一种优选的技术方案,步骤S4包括以下步骤:
[0044] S41,在[0.5,1]的范围内自定义一个阈值;
[0045] S42,获取孪生神经网络模型对未知会话的识别结果,识别结果包括会话对应的暗网站点地址、会话对应的暗网站点地址的置信度,并判断识别置信度是否≥阈值;
[0046] S43,最后,若置信度≥阈值,则输出识别结果,展示会话详情及识别的暗网站点;否则,不展示会话详情及识别的暗网站点。
[0047] 一种基于孪生网络的暗网站点会话识别系统,基于所述的一种基于孪生网络的暗网站点会话识别方法,包括依次电相连的以下模块:
[0048] Meek流量采集与标注模块:用以,获取网关出入口的镜像流量,同时在Meek网桥下捕获访问暗网隐藏服务站点的流量数据;以及,对Tor Meek访问的暗网站点进行标记,标记出相应的暗网站点信息,得到带暗网站点标记的流量样本;判断标记的流量样本中是否含有非未知站点数据;若是,则进入步骤S2;
[0049] Meek流量预处理模块:用以,对流量样本中的pcap格式的流量数据进行预处理,得到预处理后的Meek流量数据;
[0050] 孪生神经网络模型训练与识别模块:用以,基于带暗网站点标记的流量样本以及步骤S2预处理后的Meek流量数据,构建并训练孪生神经网络模型,然后利用训练后的孪生神经网络模型对未知会话进行识别,并输出孪生神经网络模型的识别结果和识别置信度;
[0051] 结果展示模块:用以,利用设定的阈值对识别置信度进行判断,决定是否输出识别的会话以及识别的会话对应的暗网站点标签。
[0052] 本发明相比于现有技术,具有以下有益效果:
[0053] (1)本发明面向Meek流量,提出了一种基于孪生网络的暗网站点会话识别方法,利用孪生网络提取经过未知站点会话的深度特征向量,并与已知暗网站点进行对比识别,从而在会话层精准识别经Meek混淆后的暗网站点,有效提高暗网监管能力;
[0054] (2)本发明支持通过暗网站点地址输入接口来增加暗网站点,不断补充新的暗网站点会话数据,从而完善模型,提升模型的自适应能力,提高识别方法的泛化性;
[0055] (3)本发明将孪生网络学习运用到暗网站点会话识别的领域中,利用小样本学习,缓解因暗网站点会话样本少导致模型学习准确率不高的问题,提高识别方法的实用性。

附图说明

[0056] 图1为本发明所述的一种基于孪生网络的暗网站点会话识别系统的部署图;
[0057] 图2为本发明所述的一种基于孪生网络的暗网站点会话识别方法的步骤示意图;
[0058] 图3为实施例2记载的本发明所述的一种基于孪生网络的暗网站点会话识别方法的整体流程图;
[0059] 图4为实施例2记载的步骤S1的流程示意图;
[0060] 图5为实施例2记载的运行暗网站点数据采集与标注程序的流程示意图;
[0061] 图6为实施例2记载的孪生神经网络模型的结构示意图。

具体实施方式

[0062] 下面结合实施例及附图,对本发明作进一步的详细说明,但本发明的实施方式不限于此。
[0063] 实施例1
[0064] 如图1至图6所示,一种基于孪生网络的暗网站点会话识别方法,基于Meek网桥捕获的暗网会话,构建孪生神经网络(Siamese neural network)模型对暗网站点(暗网站点即.onion地址)进行识别。
[0065] 作为一种优选的技术方案,包括以下步骤:
[0066] S1,Meek流量采集与标注:获取网关出入口的镜像流量,同时在Meek网桥下捕获访问暗网隐藏服务站点的流量数据;以及,对Tor Meek访问的暗网站点进行标记,标记出相应的暗网站点信息,得到带暗网站点标记的流量样本(即在捕获的pcap文件名中标记出.onion地址);判断标记的流量样本中是否含有非未知站点数据;若是,则进入步骤S2;
[0067] S2,Meek流量预处理:对流量样本中的pcap格式的流量数据进行预处理,得到预处理后的Meek流量数据;
[0068] S3,孪生神经网络模型训练与识别:基于带暗网站点标记的流量样本以及步骤S2预处理后的Meek流量数据,构建并训练孪生神经网络模型,然后利用训练后的孪生神经网络模型对未知会话进行识别,并输出孪生神经网络模型的识别结果和识别置信度;
[0069] S4,结果展示:利用设定的阈值对识别置信度进行判断,决定是否输出识别的会话以及识别的会话对应的暗网站点标签。
[0070] 在暗网站点流量数据难以获取且标注成本高的实际环境下,基于Meek流量中暗网站点会话的少量样本,利用孪生神经网络,深度表征Meek流量下暗网站点会话的特征,提升模型泛化性,且保障识别暗网站点会话的准确性。
[0071] 作为一种优选的技术方案,步骤S1包括以下步骤:
[0072] S11,从网关出入口获取镜像流量的pcap文件数据或外来pcap文件数据;
[0073] S12,判断步骤S11获取的pcap文件数据是否含有暗网站点标记;若是,则进入步骤S13;若否,则先将流量数据标记为未知站点,再进入步骤S13;
[0074] S13,pcap文件数据存储;
[0075] S14,判断是否存在带有非未知站点数据的流量数据;若是,则进入步骤S2;若否,则先在暗网站点输入接口中输入暗网站点,运行暗网站点数据采集与标注程序,再返回步骤S13。
[0076] 作为一种优选的技术方案,步骤S14中,运行暗网站点数据采集与标注程序包括以下步骤:
[0077] S141,在Tor浏览器使用Meek网桥,使网络可正常连接;
[0078] S142,判断暗网站点列表是否有新增的外部输入暗网站点;若是,则进入步骤S145;若否,则进入步骤S143;
[0079] S143,获取暗网站点信息;
[0080] S144,运行流量捕获工具,访问步骤S143获取的暗网站点,并保存pcap文件,并用该站点名作为标签;
[0081] S145,返回步骤S13。
[0082] 通过以上步骤,较好地实现了Meek流量采集与标注。
[0083] 作为一种优选的技术方案,步骤S2包括以下步骤:
[0084] S21,解析流量数据,过滤广播流量、ICMP协议流量,对会话进行重组,提取出会话中的TLS协议会话,并提取会话五元组信息以及ClientHello报文信息;
[0085] S22,判断ClientHello报文中的版本信息是否为SSLv3或者TLS;若是,则进入步骤S23;若否,则判断为其他类型流量;
[0086] S23,判断ClientHello报文中Cipher Suits个数是否满足Meek特征;若是,则进入步骤S24;若否,则判断为其他类型流量;
[0087] S24,提取ClientHello报文中Cipher Suits内容,判断Cipher Suits的内容和顺序是否符合Meek特征;若是,则进入步骤S25;若否,则判断为其他类型流量;
[0088] S25,判断ClientHello报文中Extensions个数是否满足Meek特征;若是,则进入步骤S25;若否,则判断为其他类型流量;
[0089] S26,提取ClientHello报文中Extensions内容,判断Extensions的内容和顺序是否符合Meek特征;若是,则进入步骤S25;若否,则判断为其他类型流量;
[0090] S27,过滤其他类型流量,筛选出疑似Meek流量,对疑似Meek流量的会话信息进行存储,并提取会话载荷数据的前1024字节,若不足1024字节,则利用0xFF进行填充至1024字节;最后将此1024字节有效载荷转化为长宽为32*32的单通道灰度图片,再将单通道灰度图片数据与步骤S1中的暗网站点标记作为孪生神经网络模型的输入。
[0091] 通过以上步骤,较好地实现了Meek流量预处理,更便于实现孪生神经网络模型训练与识别的准确性。
[0092] 作为一种优选的技术方案,步骤S3包括以下步骤:
[0093] S31,孪生神经网络模型构建:以CNN网络作为孪生网络的两个子网络,并将CNN网络的输出层替换为拉伸层;
[0094] S32,孪生神经网络模型训练:基于暗网站点的标记数据训练孪生神经网络,利用步骤S27输出的单通道灰度图片数据及会话的暗网站点标记,对孪生神经网络进行训练;
[0095] S33,孪生神经网络模型识别:对未知会话灰度数据,利用训练后的孪生神经网络,进行识别,并输出识别结果至步骤S4。
[0096] 作为一种优选的技术方案,步骤S32包括以下步骤:
[0097] S321,取步骤S2输出的会话灰度数据,将属于同一个暗网站点的会话灰度数据和不同暗网标记(不同暗网标记即为不同的onion地址,也即为其他标签)的会话灰度数据进行组合,组合后的会话灰度数据作为一个训练组,并划分训练组为两个训练对,将属于同一个暗网站点的训练对的两个会话灰度数据设置为正样本,将不同标签的会话灰度数据设置为负样本;
[0098] S322:取Meek会话数据训练对,将两个会话灰度数据分别输入两个CNN网络,获取CNN网络输出的拉伸向量,并计算两个拉伸向量之间的距离;
[0099] S323:将步骤S322计算的距离依次输入激活函数为Relu的全连接层、激活函数为sigmoid的输出层,得到置信度;
[0100] S324:调整孪生神经网络模型参数,重复取训练组进行训练,直至置信度达到可接受的阈值,并保存训练后的孪生神经网络模型。
[0101] 作为一种优选的技术方案,步骤S33包括以下步骤:
[0102] S331,取未知会话的会话灰度数据,并与已知暗网站点的会话数据集中的数据依次进行组合,构成多个测试对;
[0103] S332,将测试对输入训练后的孪生神经网络模型进行识别,并输出孪生神经网络模型的识别结果和识别置信度。
[0104] 通过以上步骤,较好地通过孪生神经网络模型训练与识别实现暗网站点会话识别。
[0105] 作为一种优选的技术方案,步骤S4包括以下步骤:
[0106] S41,在[0.5,1]的范围内自定义一个阈值;
[0107] S42,获取孪生神经网络模型对未知会话的识别结果,识别结果包括会话对应的暗网站点地址、会话对应的暗网站点地址的置信度,并判断识别置信度是否≥阈值;
[0108] S43,最后,若置信度≥阈值,则输出识别结果,展示会话详情及识别的暗网站点;否则,不展示会话详情及识别的暗网站点。
[0109] 这便于提高识别精确率,也便于展示识别结果。
[0110] 一种基于孪生网络的暗网站点会话识别系统,基于所述的一种基于孪生网络的暗网站点会话识别方法,包括依次电相连的以下模块:
[0111] Meek流量采集与标注模块:用以,获取网关出入口的镜像流量,同时在Meek网桥下捕获访问暗网隐藏服务站点的流量数据;以及,对Tor Meek访问的暗网站点进行标记,标记出相应的暗网站点信息,得到带暗网站点标记的流量样本;判断标记的流量样本中是否含有非未知站点数据;若是,则进入步骤S2;
[0112] Meek流量预处理模块:用以,对流量样本中的pcap格式的流量数据进行预处理,得到预处理后的Meek流量数据;
[0113] 孪生神经网络模型训练与识别模块:用以,基于带暗网站点标记的流量样本以及步骤S2预处理后的Meek流量数据,构建并训练孪生神经网络模型,然后利用训练后的孪生神经网络模型对未知会话进行识别,并输出孪生神经网络模型的识别结果和识别置信度;
[0114] 结果展示模块:用以,利用设定的阈值对识别置信度进行判断,决定是否输出识别的会话以及识别的会话对应的暗网站点标签。
[0115] 实施例2
[0116] 如图1至图6所示,作为实施例1的进一步优化,在实施例1的基础上,本实施例还包括以下技术特征:
[0117] 针对在网络流量层面对Meek插件下Tor浏览器客户端访问的暗网站点进行识别的问题,本发明的主要创新之处是提供了一种基于孪生网络的暗网站点会话识别方法,在暗网站点流量数据难以获取且标注成本高的实际环境下,基于Meek流量中暗网站点会话的少量样本,利用孪生神经网络,深度表征Meek流量下暗网站点会话的特征,提升模型泛化性,且保障识别暗网站点会话的准确性。
[0118] 对Meek流量进行分析,提出一种基于孪生网络的暗网站点会话识别系统。通过在旁路部署,对镜像流量进行分析,将分析与识别结果反馈至管理员,管理员通过控制指令下发启动、停止、查询等命令。此外,该装置提供暗网站点输入接口,通过不断补充暗网站点信息,迭代更新识别模型,提升装置对网络环境的变化适应度。装置的部署拓扑如图1所示。
[0119] 基于孪生网络的暗网站点会话识别系统的整体框架主要包含Meek流量采集与标注模块、Meek流量预处理模块、孪生神经网络模型训练与预测模块以及结果展示模块,其工作的步骤如图2所示。
[0120] 本发明共涉及4个模块,包括:
[0121] (1)Meek流量采集与标注模块:该模块主要包含流量获取与流量标记两个部分。流量获取主要获取网关出入口的镜像流量,以及利用wireshark或tcpdump等工具获取利用Tor Meek访问暗网站点的流量数据;流量标记主要对Tor Meek访问的暗网站点进行标记,标记出相应的暗网站点信息。
[0122] (2)Meek流量预处理模块:该模块对pcap格式的流量数据进行预处理,主要包括会话重组、TLS协议流量筛选、Meek流量识别与选择等操作。
[0123] (3)孪生神经网络模型训练与预测模块:该模块包括基于带暗网站点标记的会话样本,训练孪生神经网络,以及利用训练后的模型对未知会话进行识别。
[0124] (4)结果展示模块:该模块主要利用自定义的阈值对检测置信度进行判断,提高识别精确率,同时输出识别的会话及其暗网站点标签。
[0125] 本发明整体流程图如图3所示,其中,暗网站点列表、Meek流量采集与标注对应Meek流量采集与标注模块,Meek流量预处理、Meek流量识别、是否为Meek流量会话对应Meek流量预处理模块,孪生神经网络模型构建与训练、孪生神经网络模型保存、孪生神经网络预测对应孪生神经网络模型训练与预测模块,是否为已知暗网站点会话、标记为该类暗网站点,并输出展示对应结果展示模块。图3中,“识别”表示“是否对未知会话进行识别”,“Meek会话”表示“是否为Meek流量会话”,“站点会话”表示“是否为已知暗网站点会话”。
[0126] 更具体地:
[0127] 一、本发明中的Meek流量采集与标注的过程描述如下:
[0128] 本发明中Meek流量采集与标注模块的流程图如下所示:本发明中Meek流量采集与标注模块的流程图如图4所示:
[0129] 第1步:获取流量数据源,可采集网关出入口流量,或输入外部提供的流量pcap数据包;
[0130] 第2步:判断数据集是否为已知数据集,即是否含有暗网站点的标记数据。若含有标记数据,则将流量数据标记为对应的暗网站点;否则将流量数据标记为未知流量标签;
[0131] 第3步:将含标记的流量数据存储;
[0132] 第4步:判断现有数据中是否含有非未知站点数据,若有则结束;否则运行暗网站点数据采集与标注程序,其流程如下所示,然后返回第3步。
[0133] 第4步中的暗网站点数据采集与标注的主要实现步骤为:首先,通过暗网站点地址输入接口,获取新的暗网站点地址;其次,在Tor浏览器浏览器使用Meek网桥,并访问该站点,同时捕获与该站点通信的Tor浏览器客户端的流量;最后,以该站点名作为流量数据的标签。如图5所示。
[0134] 二、本发明中的Meek流量预处理模块的过程描述如下:
[0135] Meek流量预处理模块主要包含Meek流量预处理与Meek流量识别过程。由于流量预处理的方式与Meek流量识别的方法已成熟,本发明不限定Meek流量预处理的方式与Meek流量识别的方式。
[0136] 三、本发明中Meek流量预处理的过程如下:
[0137] 第1步:解析流量数据,过滤广播流量、ICMP协议流量,并对会话进行重组,提取出其中的TLS协议会话,并提取会话五元组信息,以及ClientHello报文信息;
[0138] 第2步:判断ClientHello报文中的版本信息是否为SSLv3或者TLS。若成立则执行步骤3,否则,判断为其他类型流量。
[0139] 第3步:判断ClientHello报文中Cipher Suits个数是否满足Meek特征。若成立则执行步骤4,否则判断为其他类型流量。
[0140] 第4步:提取ClientHello报文中Cipher Suits内容,判断其内容和顺序是否符合Meek特征。若成立则执行步骤5,否则,判断为其他类型流量。
[0141] 第5步:判断ClientHello报文中Extensions个数是否满足Meek特征。若成立则执行步骤6,否则,判断为其他类型流量。
[0142] 第6步:提取ClientHello报文中Extensions内容,判断其内容和顺序是否符合Meek特征。若成立则执行步骤7,否则,判断为其他类型流量。
[0143] 第7步:筛选出疑似Meek流量,对其会话信息进行存储,并提取会话载荷数据的前1024字节,若不足1024字节,则利用0xFF进行填充至1024字节。最后将此1024字节有效载荷转化为长宽为32*32的单通道灰度图片,并作为后续模型训练与预测的输入。
[0144] 三、本发明中的孪生神经网络模型训练与预测的过程描述如下:
[0145] 本发明中的孪生神经网络模型训练与预测过程主要包含模型构建、模型训练、以及模型预测三个过程。通过将Meek流量会话转换到一个特征空间,每个会话对应一个特征向量,并利用距离度量表示向量之间的差异,最后通过这个距离来拟合输入加密流量的相似度差异,从而实现暗网站点及其会话的识别。
[0146] 第1步:模型构建,以CNN作为孪生网络的两个子网络,并将CNN的输出层替换为拉伸层,如图6所示。
[0147] 其中,CNN算法框架中的卷积层的padding方式采用SAME方式,主要包含卷积层Conv,池化层Pooling以及全连接层FC。
[0148] 第2步:模型训练:基于暗网站点的标记数据训练孪生神经网络,利用流量预处理模块输出的会话灰度数据及会话的暗网站点标签,对上述孪生神经网络进行训练。
[0149] Step1:取经过流量预处理模块后的会话灰度数据,将属于同一个暗网站点的会话数据和其他标签的会话数据进行组合,作为一个训练组,并划分训练组为两个训练对,将两个会话灰度数据属于同一个暗网站点的数据对设置为正样本,不同标签的会话灰度数据设置为负样本;
[0150] Step2:取Meek会话数据训练对,将两个灰度数据分别输入CNN,计算两个拉伸向量之间的距离;
[0151] Step3:将计算的距离输入激活函数为Relu的全连接层,再输入激活函数为sigmoid的输出层,得到置信度。
[0152] Step4:调整模型参数,重复取训练组进行训练,直至置信度达到可接受的阈值(该阈值可自定义设置,本申请中默认为0.8),并保存模型。
[0153] 第3步:模型预测,对未知会话灰度数据,利用孪生神经网络,进行预测。
[0154] Step1:取未知会话的灰度数据,并与已知暗网站点的会话数据集中的数据依次进行组合,构成多个测试对;
[0155] Step2:将测试对输入训练好的孪生神经网络,并输出模型预测结果和预测置信度。
[0156] 四、本发明中的结果展示的过程描述如下:
[0157] 首先,在[0.5‑1]的范围内自定义一个阈值(本发明默认阈值为0.9);其次,获取模型对未知会话的检测结果及其置信度,并判断其置信度是否不低于阈值。最后,若置信度不低于阈值,则输出结果,展示会话详情及其预测的暗网站点,否则,不展示。
[0158] 如上所述,可较好地实现本发明。
[0159] 本说明书中所有实施例公开的所有特征,或隐含公开的所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以以任何方式组合和/或扩展、替换。
[0160] 本发明不限定Meek流量采集的具体方式、不限定Meek流量预处理与识别的具体方式以及不限定孪生网络的具体网络结构。本发明所提出的基于孪生网络的暗网站点会话识别方法、利用暗网站点地址输入接口来完善暗网站点标注数据的方式以及整体的架构,都属于本发明所保护的权利。
[0161] 以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。