您当前的位置:首页 > 电脑百科 > 安全防护 > 网络安全

基于DNS隐蔽信道的攻击与检测

时间:2019-09-03 15:22:26  来源:  作者:

免责声明:本文作者竭力保证文章内容可靠,但对于任何错误、疏漏或不准确的内容,作者不负任何责任。文章部分内容来源于网络是出于传递更多信息的目的,对此不负任何法律责任。本文仅用于技术分享与讨论,严禁用于其他用途。

一、基于DNS的隐蔽通信

企业网络经常面临网络攻击者窃取有价值和敏感数据的威胁。复杂的攻击者越来越多地利用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的行为特征,如下:

序号 DNS特征 描述 p1 每小时DNS请求的数量 受感染的僵尸主机每小时的请求数量往往高于正常主机。 p2 每小时不同的DNS请求数 感染DGA恶意软件的主机往往比普通主机具有更多不同的请求。 p3 单个域的最大请求数 帮助检测DNS隧道,敏感信息通过DNS协议传输。 p4 每分钟平均请求数 用于检测受恶意软件感染的计算机,该计算机不使用短暂的DNS请求,而是使用休眠间隔定期对DNS请求做出贡献。

它的计算方法是将主机发送的请求数除以主机处于活动状态并使用DNS服务的持续时间。 p5 每分钟最多请求数 帮助检测感染恶意软件的僵尸程序,这些恶意软件使用短暂的DNS请求通过域生成算法生成的多个URL与C&C服务器进行通信。 p6 MX记录查询数 是网络中基于垃圾邮件的僵尸网络的强有力指标。 p7 PTR记录(从ip地址到域名的一条记录)查询数 有助于检测网络中存在异常行为的主机以及可能的感染。 p8 查询的不同DNS服务器的数量 有助于检测网络中具有异常行为的机器,因为标准系统查询多个DNS服务器的情况并不常见。

TLD: top level domain,顶级域名

SLD: second level domain,二级域名 p9 不同TLD请求的数量 在检测基于DGA的机器人方面非常有效,这些机器人不仅生成具有不同二级域的随机域,还生成具有不同顶级域名的随机域。 p10 不同SLD请求的数量 是网络中存在基于DGA的机器人的强烈指示。 p11 唯一性比率 是在主机每小时发送至少1000个请求的假设下,发送的请求数与发送的不同请求数之比。 p12 Failed/NXDOMAIN请求的数量 是网络中主机感染的一个非常强的指标。

它通过主机维护响应代码等于DNS_RCODE_NXDOMAIN的响应数。 p13 已解析IP地址的不同城市数量 是一个强烈的异常指标,尤其是当IP地址分布在各个城市时。

使用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:

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命令

三、总结

攻防相济,攻击者试图用更与时俱进的技术建立稳健的C&C通信信道,研究学者在检测或防御技术上的重大突破也存在着被攻击者利用的可能性。以基于DNS隐蔽信道的攻击与检测为例,目前基于网络流量的DNS检测技术,尤其是利用Passive DNS来实现对网络的DNS监控,不需要任何关于僵尸网络协议、通信或签名的先验知识,在当前的DNS检测领域具有一定的先进性和代表性。但基于DNS特征的检测技术也存在一些问题,一些数据特征可能具有时间和空间的特性,所以实验结果很可能具有偏向性,而这些不符合当前时空特性的数据特征就有被攻击者利用的可能性。研究者需要评估自己的结果是否对较好的泛化性能。比如随着时间的推动,技术不断发展,一些用于DNS检测的特征可能已经过时,新的特征也需要我们去挖掘,并防止被利用的可能。

参考链接

*本文作者:BUPT/TTZM,转载请注明来自FreeBuf.COM



Tags:DNS   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
写一个shell获取本机ip地址、网关地址以及dns信息。经常会遇到取本机ip、网关、dns地址,windows一个命令ipconfig /all全部获取到,但linux系统却并非如此。linux系统都自带ifc...【详细内容】
2021-12-27  Tags: DNS  点击:(2)  评论:(0)  加入收藏
域名系统是最重要的互联网服务之一,没有它,我们将无法访问在线内容,甚至无法发送电子邮件。每当我们尝试连接到其他网站或在线服务时,根 DNS 服务器都会帮助我们的计算机找到并...【详细内容】
2021-11-25  Tags: DNS  点击:(35)  评论:(0)  加入收藏
导读:在日常使用电脑浏览网页时,突然无法连接网络,但是QQ等软件却能正常使用,即便是重启电脑和路由器都解决不了,这种问题很大程度上就是DNS错误,比如说DNS服务器无响应,那么当遇到...【详细内容】
2021-10-15  Tags: DNS  点击:(98)  评论:(0)  加入收藏
Dog是一个用于DNS查询的命令行工具,它的工作原理类似于dig。它具有丰富多彩的输出,支持DNS-over-TLS 和 DNS-over-HTTPS协议,并且可以输出JSON格式。 系统环境Ubunt...【详细内容】
2021-09-02  Tags: DNS  点击:(70)  评论:(0)  加入收藏
如何清除您的 电脑的DNS 缓存 1.开始键+r开始键+R(Win+R) 2.输入:cmd 3.输入:ipconfig /flushdns...【详细内容】
2021-08-25  Tags: DNS  点击:(52)  评论:(0)  加入收藏
网络安全研究人员披露了一类影响主要 DNS 即服务 (DNSaaS) 提供商的新漏洞,这些漏洞可能允许攻击者从企业网络中窃取敏感信息。基础设施安全公司 Wiz 的研究人员 Shir Tamar...【详细内容】
2021-08-12  Tags: DNS  点击:(66)  评论:(0)  加入收藏
域名解析是客户端访问系统的第一步。在架构设计中,DNS Server除了解析域名,还能干点什么呢?又有哪些“挖坑”的用法需要避免呢?典型的互联网架构中,我们通过nginx的反向代理来做...【详细内容】
2021-07-29  Tags: DNS  点击:(264)  评论:(0)  加入收藏
DNS系统的作用DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户程序提供正向或反向的地址查询服务,即正向解析与反向解...【详细内容】
2021-06-10  Tags: DNS  点击:(113)  评论:(0)  加入收藏
摘要: 发送大量的数据包消耗目标主机资源,使其无法正常工作。1.前言:DOS攻击原理:发送大量的数据包消耗目标主机资源,使其无法正常工作。DNS放大攻击的原理:伪造DNS数据包,向DNS服...【详细内容】
2021-04-15  Tags: DNS  点击:(219)  评论:(0)  加入收藏
作者:Draven 面向信仰编程为什么这么设计(Why’s THE Design)是一系列关于计算机领域中程序设计决策的文章,我们在这个系列的每一篇文章中都会提出一个具体的问题并从不同...【详细内容】
2021-04-13  Tags: DNS  点击:(234)  评论:(0)  加入收藏
▌简易百科推荐
(报告出品方:德勤)数字化转型网络安全及转型挑战在任何行业,保持竞争力都需要快速开发新产品和 服务并推向市场。创新型业务模式不仅仅是简单地将现有 流程数字化,其正在覆盖供应...【详细内容】
2021-12-22  认是    Tags:网络安全   点击:(29)  评论:(0)  加入收藏
10月18号, W3C中网络平台孵化器小组(Web Platform Incubator Community Group)公布了HTML Sanitizer API的规范草案。这份草案用来解决浏览器如何解决XSS攻击问题。 网络安全中...【详细内容】
2021-12-07  实战Java  博客园  Tags:脚本攻击   点击:(20)  评论:(0)  加入收藏
一、背景介绍大家在Linux的日常使用中都晓得如何通过命令行去配置Linux的端口开放规则,但是大家知道如何配置Windows入站出站规则吗?有哪些常见的危险端口呢?如何解决上述问题...【详细内容】
2021-12-01  Kali与编程    Tags:防火墙   点击:(30)  评论:(0)  加入收藏
网络安全服务商Randori公司日前发布了一份调查报告,列出了网络攻击者最有可能攻击或利用的IT资产。在遭遇Solarwinds黑客攻击一周年之际,以及在网络安全(尤其是勒索软件和供应...【详细内容】
2021-10-28  企业网D1net   企鹅号  Tags:网络攻击   点击:(57)  评论:(0)  加入收藏
0x01.背景实验利用Dns Administrators 组成员,通过远程配置Dns服务,进行Dll inject从而实现特权提升。 在域内,Dns server 通常为Dc Server,Dns服务器管理基于rpc,通过调用c:\wi...【详细内容】
2021-10-22  IT影子    Tags:特权提升   点击:(37)  评论:(0)  加入收藏
本文主要介绍和总结了CSRF跨站请求伪造的基本原理和主要防范措施,工作中有用到的朋友不妨收藏转发一下,以备您参考。什么是CSRF?CSRF跨站点请求伪造(Cross—Site Request...【详细内容】
2021-10-13  快乐中恒    Tags:CSRF   点击:(49)  评论:(0)  加入收藏
waf拦截在打某市 Hvv 第一天就找到一个文件上传的点,经过测试,可以直接任意文件上传,没有什么道理。 直接尝试上传 Php 文件,被 waf 拦截了 2021最新整理网络安全/渗透测试/安...【详细内容】
2021-10-11  KaliMa    Tags:防火墙   点击:(56)  评论:(0)  加入收藏
应用程序与文件系统的交互始终是高度安全敏感的,因为较小的功能漏洞很容易成为可利用漏洞的来源。这种观察在web文件管理器的情况下尤其正确,其作用是复制完整文件系统的功能...【详细内容】
2021-09-17  IT野涵    Tags:漏洞链   点击:(56)  评论:(0)  加入收藏
您的苹果手机尽管iPhone比Android更安全,但也可以通过各种方式入侵。避免黑客入侵的最佳方法是警惕奇怪的链接或粗略的应用程序,并仅在必要时提供信息。电池寿命差和性能低下...【详细内容】
2021-09-16  Hackers爱好者    Tags:黑客入侵   点击:(633)  评论:(0)  加入收藏
防火墙一般布置在逻辑区域的入口处,位于三层网络架构的核心和汇聚之间,起到隔离逻辑区域,为逻辑区域创建安全策略的作用。 上面就是应用区的防火墙布置方式,他布置在应用区,可以...【详细内容】
2021-09-03  知来知去    Tags:主备模式防火墙   点击:(109)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条