[发明专利]一种多特征融合的DNS隐蔽隧道检测方法在审
申请号: | 202210198998.5 | 申请日: | 2022-03-03 |
公开(公告)号: | CN114567487A | 公开(公告)日: | 2022-05-31 |
发明(设计)人: | 林飞;李鼎;易永波;古元;毛华阳;华仲峰 | 申请(专利权)人: | 北京亚鸿世纪科技发展有限公司 |
主分类号: | H04L9/40 | 分类号: | H04L9/40;H04L41/142;H04L41/16;H04L61/4511;G06K9/62;G06N3/04;G06N3/08 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100095 北京市海淀区高里*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 特征 融合 dns 隐蔽 隧道 检测 方法 | ||
1.一种多特征融合的DNS隐蔽隧道检测方法,其特征在于实现步骤包括:
1)由黑样本收集器通过自建DNS隐蔽隧道获取DNS隐蔽隧道流量包
黑样本收集器使用两台服务器和DNS隐蔽隧道的实现工具搭建DNS隐蔽隧道,其中一台服务器作为DNS服务器部署DNS隐蔽隧道实现工具的服务器端,另一台服务器作为DNS服务器的访问端部署DNS隐蔽隧道实现工具的客户端;DNS服务器部署成为解析特定域名的DNS服务器,特定域名只在两台服务器间的试验环境设定,不影响外部网络环境,不受外部网络环境影响;编辑任意内容的数据作为传输样本数据,传输样本数据的大小没有限制;在DNS服务器部署tcpdump工具收集DNS流量,以PCAP包的形式保存,作为DNS隐蔽隧道流量包;
2)由黑样本标准化模块对DNS隐蔽隧道流量包数据进行预处理,并提取DNS隐蔽隧道流量包数据特征
使用Wireshark工具提取PCAP流量包中的关键字段,主要包括源ip、源端口、目的ip、目的端口、所请求域名、请求类型;去除域名后缀,以“.”字符为界限将去除域名后缀后的子域名分割为数个字符串,即多个子域名片段;对子域名内部的字符按照扩充规则进行随机替换,以扩充数据,可以得到多组多个子域名片段;扩充规则为字符替换时遵守只替换同等类型的字符,替换位置以及替换字符数量是随机确定的,字符替换时最少替换1个字符,字符替换时最多替换的字符数为该字符串长度的一半,替换后的子域名与原子域名长度相同;提取域名长度;提取域名标签数,域名标签数指以“.”分割的域名片段数;提取DNS请求记录类型;将一组多个子域名片段、域名长度、域名标签数、DNS请求记录类型作为一个DNS隐蔽隧道流量包数据样本,DNS隐蔽隧道流量包数据样本称为黑样本;
3)由白样本标准化模块获取正常的DNS请求样本
通过收集日常工作中的DNS流量保存为PCAP包,并使用Wireshark工具提取PCAP流量包中的关键字段,主要包括源ip、源端口、目的ip、目的端口、所请求域名、请求类型;去除域名后缀,以“.”字符为界限将去除域名后缀后的子域名分割为数个字符串,即多个子域名片段;提取域名长度;提取域名标签数特征;提取DNS请求记录类型;将一组多个子域名片段、域名长度、域名标签数、DNS请求记录类型作为一个正常的DNS流量包数据样本,正常的DNS流量包数据样本称为白样本;
4)构建神经网络模型模块
对域名字符和特征进行编号,建立词表,以便于用于神经网络模型输入:对于域名长度特征,域名片段长度小于10编码为1,域名片段长度10到20编码为2,域名片段长度20到30编码为3,域名片段长度30到50编码为4,域名片段长度50以上编码为5;对于域名标签数特征,域名标签数小于3编码为6,域名标签数3到5编码为7,域名标签数大于等于5编码为8;对于DNS记录类型特征,DNS记录类型为TXT记录,编码为9,DNS记录类型不是TXT记录则编码为10;对于域名字符串特征,字符a到z对应编码11到36,字符A到Z对应编码37到62,字符0-9对应编码63-72;全部样本随机取70%数量的样本作为训练集,再将剩下的样本随机平分为验证集和测试集,全部样本包括DNS隐蔽隧道流量包数据样本和正常的DNS流量包数据样本;在输入样本前进行填充操作,设定域名片段编码最大长度为64,输入数据长于64的部分需要被截断,若长度不足64,则在尾部补0;词向量层用于将每一个数字编码转化为向量形式;在 CNN卷积神经网络层,通过几个卷积核大小不同的一维卷积,充分学习域名的文本特征,再将三个卷积层的结果进行拼接,然后作最大池化,加上Dropout层用于降低模型复杂度,防止过拟合,最后使用全连接分类层,一共两个类别,即存在DNS隐蔽隧道类别和正常DNS请求类别,DNS隐蔽隧道类别称为黑样本类别,正常DNS请求类别称为白样本类别;
5)使用白样本构建快速预筛选模块
对新采集的DNS流量进行类别判断之前,默认新采集的DNS流量为白样本类别,直到白样本通过神经网络模型模块的判定被判断为黑样本类别时,更改新采集的DNS流量的类别为黑样本类别;快速预筛选模块用来对新收到的白样本进行快速判断,排除白样本中成为黑样本概率低的数据,用以加快对新采集的DNS流量进行类别判断的速度,减少神经网络模型模块的计算量;
构建快速预筛选模块的步骤包括:
⑴将白样本标准化模块已经采集的白样本作为训练样本,每个训练样本记为一个子域名序列,记为S,长度为m,则整个序列的出现概率表示为:
⑵根据马尔科夫假设,一个词的出现只与之前的n个词有关,n取值3,上式中的条件概率计算简化如下:
⑶利用贝叶斯公式,每一项的计算方式如下:
其中count(…)表示样本集中这几个词共同连续出现的次数;为避免出现分母为零的情况,经过平滑处理后,得到每条样本的存在概率计算公式表示如下:
其中V为词表中词的个数,对于整个样本集,可以计算出所有三元组合的概率,保存作为模型供后续预测时使用;
⑷计算训练样本中每一条样本序列的存在概率p,由于不同序列的长度不同,三元组数量也不同,最后通过式乘积算出的概率差距较大,因此进行一次转换,设序列中三元组合数目为t,每一条样本序列的存在概率表示为;
⑸确定分割阈值,取所有训练样本的存在概率的中位数为阈值,大于该概率阈值的训练样本直接标记为白样本,小于该概率阈值的白样本进入神经网络模型模块进行类别判断。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京亚鸿世纪科技发展有限公司,未经北京亚鸿世纪科技发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210198998.5/1.html,转载请声明来源钻瓜专利网。