DNS检测的特征以及BotDAD安装与使用

这篇文章主要介绍“检测的特征以及BotDAD安装与使用”,在日常操作中,相信很多人在DNS检测的特征以及BotDAD安装与使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”DNS检测的特征以及BotDAD安装与使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

这篇文章主要介绍“检测的特征以及BotDAD安装与使用”,在日常操作中,相信很多人在DNS检测的特征以及BotDAD安装与使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”DNS检测的特征以及BotDAD安装与使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、基于DNS的隐蔽通信

创新互联是专业的浉河网站建设公司,浉河接单;提供网站设计、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行浉河网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

企业网络经常面临网络攻击者窃取有价值和敏感数据的威胁。复杂的攻击者越来越多地利用DNS通道来泄露数据,以及维护恶意软件的隧道C&C(命令和控制)通信。这是因为DNS对于几乎所有应用程序来说都是如此重要的服务,从本地计算机到Internet的任何通信(不包括基于静态IP的通信)都依赖于DNS服务,限制DNS通信可能会导致合法远程服务的断开,因此,企业防火墙通常配置为允许UDP端口53(由DNS使用)上的所有数据包,即DNS流量通常允许通过企业防火墙而无需深度检查或状态维护。从攻击者的角度来看,这使得DNS协议成为数据泄露地隐蔽通信通道。

攻击者利用DNS的一种方法是注册域名(例如,fengrou2019.club),以便攻击者在主机受害者中的恶意软件可以将有价值的私人信息(例如信用卡号,登录密码或知识产权)编码为形式为arbitrary-string.fengrou2019.club的DNS请求。此DNS请求由全局域名系统中的解析器转发到fengrou2019.club域的权威(在攻击者的控制下),后者又向主机受害者发送响应。这为攻击者在主受害者及其命令和控制中心之间提供了低速但隐蔽的双向通信信道。如图所示为Bot在获取控制命令后回传窃密信息的流程图。

DNS这种穿透防火墙的能力为攻击者提供了一个隐蔽的通道,尽管是低速通道,通过将其他协议(例如,SSH,FTP)隧道传输到命令和控制中心,可以通过该通道泄露私有数据并保持与恶意软件的通信。现代恶意软件和网络攻击在很大程度上依赖于DNS服务,使其活动可靠且难以跟踪。例如­­­,2017年发现的远程访问木马DNSMessenger使用DNS查询和响应在受感染的主机上执行恶意PowerShell命令。

二、DNS检测

监控网络DNS活动和阻止可疑域已被证明是抵御此类攻击的有效技术。对于分析DNS流量以识别恶意网络活动,人们提出了很多检测方法,比如使用字符频率分析的DNS隧道检测方法等。

对于任何组织用以对抗各种安全威胁来说,在企业级水平上的单点Bot检测至关重要。本文要介绍的DNS检测工具BotDAD,它就是部署在企业的网络边界上进行单点Bot检测的,它通过观察主机在一段时间内的DNS指纹,尝试寻找域正常的主机行为相当不同的异常行为,从而识别受感染的主机。

本文以BotDAD工具为例,将对BotDAD进行DNS检测的技术分析。

1. DNS检测特征

BotDAD中统计分析了15种DNS的行为特征,如下:    

通过对BotDAD工作做源码解析,找到其核心类与核心函数,其中便对以上15种DNS特征进行了使用。

核心类:BotDAD/DnsAnalyser.py/classs Network

核心函数:BotDAD/DnsAnalyser.py/classs Network/find_anomaly()

2.BotDAD安装与使用

2.1 安装:

依赖python版本:python2.7

系统环境:windows

预安装:

2.2 数据集准备:

BotDAD提供了3种预备数据集的方式:

2.2.1 抓包、过滤、切片

(1)使用wireshark抓包

(2) 包过滤命令

tshark.exe -r "input.pcap" -F pcap -Y dns -t ad -w"big.pcap"     #windows

tshark -r "input.pcap" -F pcap -Y dns -t ad -w"big.pcap"         #linux

(3)切片命令

editcap.exe -F pcap -i 3600"big.pcap" "slice.pcap"              #windows

editcap -F pcap -i 3600"big.pcap" "slice.pcap"                  #linux

2.2.2 直接可用:20160421_150521.pcap

Manmeet Singh(BotDAD论文作者)提供,可直接使用。

链接:https://drive.google.com/file/d/14cRY6aEQz_xVsfySBb4Ik6mPYDLoIc88/view?usp=sharing

2.2.3 直接可用:校园DNS网络流量

数据集由BotDAD论文作者提供。

2016年4月至5月期间,由超过4000个活跃用户组成的校园DNS网络流量(在高峰负载时间内)为10个随机日,可在数据集中的每小时PCAP文件中获得。

(由于10GB数据限制,目前只能上传Day0(Full)和Day1(部分)的流量)数据集链接为:

https://data.mendeley.com/datasets/zh4wnddzxy/1

2.3 使用前的问题与解决:

2.3.1 包导入问题

下载后,尝试直接运行main.py,遇到一个问题:

由于问题出现在pcapparser.py,而在BotDAD开源的项目中,公布的是PcapParser.pyc文件,因此需要pyc反编译,本文使用uncompyle实现反编译。

通过反编译得到PcapParser.py,利用python2命令行环境验证,发现问题就出在这里:

2.3.2 问题解决

查看win-inet-pton的API,发现其中提供的对于inet_ntop的使用方法与代码中的使用方法不太一样。

检索反编译的PcapParser.py代码中,inet_ntop出现的地方,发现只有两处:

一处是文件导入的地方:

另一处的用法其实与win-inet-pton的API中提供的用法是一致的:

所以我这边尝试修改PcapParser.py代码,然后用PcapParser.py替代PcapParser.py用于BotDAD的运行:

修改前,原inet_ntop的导入方式:

修改后,直接导入win_inet_pton即可:

完成替换之后,再运行main.py,如图,运行成功,问题解决:

一开始运行,首先在main.py的上一级目录中生成3个文件:

执行到console>的耗时还是挺长的,大概7分钟。

2.4  BotDAD的使用

BotDAD的使用命令总结如下:

2.4.1l命令

我这里使用l命令,主机列表包含571个主机。

2.4.2 m命令    

输入主机列表中的一个IP地址,无返回,在main.py的同级目录下生成文件:

2.4.3 p命令

生成图像,plot DNS query timeline:

2.4.4 d/D命令

主机IP后面出现的数字与主机列表中最后一列的数字对应一致。

D命令是将d展示部分做保存。

用D命令:    

2.4.5 h命令

saving的过程可能会比较慢。

好长时间之后:

在main.py的上一级目录下生成html文件:

2.4.6x命令

.csv:逗号分隔值文件格式。

在main.py的上一级目录下生成.pcap.csv文件:

2.4.7 F命令

很多主机被列出来,说明请求www.google.com的主机非常多。

找一个特殊的URL,与前面执行d命令中的截图中的数据刚好对应:

2.4.8 f命令

2.4.9 q命令


文章标题:DNS检测的特征以及BotDAD安装与使用
转载来源:http://scyanting.com/article/sjjgg.html