使用Maxmind数据库(“Geo2 Databases | MaxMi,2017”)获得城市映射的IP地址 。p14 已经解析的ip地址的不同国家数量 p15 Flux ratio 在主机发送至少100个查询并且已收到至少100个响应的条件下,发送的不同请求与解析的不同ip地址的比率 。
通过对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/zh3wnddzxy/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:

文章插图
推荐阅读
- 恶意软件是如何使DNS隐蔽信道通信技术实现通信的?
- 基于分布式系统的7种唯一ID实现方案
- Redis内存数据库笔记
- NFC能用来干什么?——基于NFC芯片技术的身份认证方案
- Java 编写基于 Netty 的 RPC 框架
- “反向代理层”绝不能替代“DNS轮询”
- redis有哪些功能
- MySQL基于GTID的多线程同步方案
- FastThreadLocal 原理分析
- 微服务基于consual的配置管理
