一. 检测数据概述
数据收集方式
本方案数据主要通过以下方式收集:
1)工控场景内所部署的探针生成流量日志,并通过项目数据接入模块存入Elasticsearch数据库;
2)攻击者主机与被攻击者主机上抓取的流量包,并经pyshark、dpki等python库解析生成结构化数据;
数据集分类
本方案数据主要分为以下三类:
1)开源多级域名网址白名单;
2)不同DNS隧道工具攻击时段抓包;
3)Alexa top 10k websites list;
二. 检测方案概述
2.1 设计思路
完整的工控网络攻击事件主要分为四个环节:
外链->攻击渗透->实时攻击->回传数据
DNS隐蔽隧道攻击检测主要针对回传数据环节—外链传输数据部分。
正常的DNS的query_name的域名地址常为有价值或者容易理解的信息,如标准单词或者单词变体。
通常为了使用方便,正常域名地址的设计的长度较短,而DNS隐蔽隧道中为了将信息传递出去,往往会构造较长的域名请求发送出去,且通常会对字段进行加密,从而使得文本编码与正常文本编码差异明显。
因此利用自然语言处理(NLP)的思想,构建不同的特征序列,元音检测、HMM衡量字母链与单词相似度等特征检测。对不同的域名利用多维度特征值测试来衡量其与英语单词的相似度,同时讨论正常域名与DNS隧道域名在信息熵、长度等分布的不同,构建模型,对其进行分类识别。
2.2 检测步骤
第一步:数据预处理
对不同数据源的数据集进行提取融合与处理,主要包括:
对使用不同dns隧道构造数据抓取的pcap文件,利用pyshark提取五元+query_name,并对其打标为负样本
读入alexa top100k域名对其打标为正样本
读入开源数据集,提取域名,并将攻击样本、alexa样本融合,按正负样本比例分层抽样
数据打散,提取tld列表
对正样本提取3-grm频数字典
第二步:特征分析
分别对组件和tld部分进行特征分析:
第三步:模型训练与测试
2.3 检测结果
迭代次数:100
检测效果:准确率:99.37%;F1:98.66%
*分类报告*:
Precision recall f1-scoreLabel 00.990.960.97Label 10.991.000.99avg / total 0.990.990.99
*损失曲线*:
编辑切换为居中
添加图片注释,不超过 140 字(可选)
编辑切换为居中
添加图片注释,不超过 140 字(可选)
*测试集成ROC曲线*:
编辑切换为居中
添加图片注释,不超过 140 字(可选)