摘要:在存在安全对策的情况下,设计用于数据泄露的恶意软件必须使用隐蔽的通道来实现其目标。域名系统(DNS)协议是目前恶意软件开发者常用的秘密渠道。虽然近十年来人们一直在研究利用DNS进行隐蔽通道的检测,但以往的研究主要涉及到一个特定的隐蔽通道子类,即DNS隧道化。虽然隧道检测的重要性不应该被最小化,但是整个低吞吐量DNS泄露恶意软件被忽略了。
在这项研究中,我们提出了一种在DNS上检测隧道和低吞吐量数据泄露的方法。在确定之前检测到的恶意软件使用了网络活动注册的网络域名,而不是损害现有的合法域名后,我们专注于检测和拒绝这些域名的请求,作为一个有效的数据泄漏关闭。因此,我们提出的解决方案处理流式DNS流量,以便检测和自动拒绝用于数据交换的域的请求。初始数据收集阶段以允许长时间扫描的方式收集每个域的DNS日志,因此能够处理“慢速”攻击。第二阶段是基于每个域的查询行为提取特征,最后阶段是利用异常检测模型对域进行分类。至于检测,DNS请求被分类为用于数据泄露的域将被无限期拒绝。
我们的方法是在一个大型递归DNS服务器日志上进行评估,其峰值为每小时4700万次请求。在这些DNS日志中,我们从DNS隧道挖掘工具以及两个现实生活中的恶意软件中注入了数据泄露流量:FrameworkPOS,它曾在2014年被用于从家得宝(Home Depot)窃取5600万张信用卡BackdoorWin32Denis,在2016年被用于Cobalt Kitty APT。即使将我们的方法限制在极低的假阳性率(5万个域中的1个)时,它也检测到了上述所有情况。此外,这些日志还被用来比较我们的系统和最近发表的两种方法,这两种方法的重点是检测DNS隧道,以强调检测低吞吐量过滤恶意软件的新颖性。
一、介绍
个人电脑和计算机网络一直是数据盗窃攻击的目标,通常使用的技术包括中间人攻击[7]或通过秘密渠道[25][40]泄露数据的恶意软件。在恶意软件的情况下,通常是作为命令和控制(C&C)的远程服务器,等待来自恶意软件的通信并记录传输到它的数据。然而,在受保护的网络(私有的或组织的)中,目标主机可以驻留在一个有限的段中,与外界的访问受限。在这种情况下,即使允许连接,通常也会由安全解决方案对可疑行为进行监视。因此,在这种情况下,恶意软件必须找到一个隐蔽的通道,以便将数据过滤到远程服务器,而现有的安全解决方案不会阻止或检测到这些数据。实现这一目标的一个渠道是域名系统(DNS)协议,这是本研究的重点。
从本地计算机到Internet的任何通信(不包括基于静态ip的通信)都依赖于DNS服务。因此,限制DNS通信可能导致合法远程服务断开连接因此,必须保守地使用DNS来阻止内容。从攻击者的角度来看,这使得DNS协议成为数据泄漏[3]的隐蔽通信通道的一个很好的候选。
典型地,DNS协议不是为任意数据交换而设计的DNS消息相对较短,响应不相关,这意味着它们到达的顺序不一定与发送[27]的请求的顺序相同。这些局限性可以通过攻击者使用两种方法之一:(1)建立一个双向通信信道上的DNS(例如,通过模拟一个可靠的C&C的恶意软件和服务器之间的会话),或(2)使用通道发送小短的数据点,用最小的开销和请求,并且消息是独立的(如信用卡号码、用户凭证,keylogging和地理位置)。我们将这两种方法分别称为高吞吐量隧穿和低吞吐量恶意软件。DNS过滤的完整威胁环境包括这两类,因此,任何通过DNS协议检测或防止数据泄漏的解决方案都必须同时处理这两类问题。
近年来检测到的低吞吐量泄露恶意软件使用的互联网域名购买、注册和操作完全是为了他们的网络运动。对于需要用户提供和配置Internet域的DNS隧道工具来说也是如此。因此,拒绝这些域的请求相当于在不影响正常网络运行的情况下停止数据泄漏。
本文提出了一种基于机器学习技术的新型DNS泄露检测方法,该方法既针对DNS隧道化,又针对低吞吐量的恶意软件泄露。我们的方法的输入是一个DNS流量日志流,它经常按域分组。这些日志收集的时间足够长,即使数据交换速度相对较慢,也可以检测到恶意软件。对每个域的收集日志定期应用特征提取阶段。然后,对每个域的特征进行分类阶段,以确定该域是否用于数据交换。该分类是使用隔离森林[21]异常检测模型进行的,该模型事先对合法流量进行了训练。在分类之后,对任何已被分类为异常的域的请求将被无限期地阻塞,从而停止数据泄漏。
我们使用隧道工具和之前检测到的低吞吐量泄露恶意软件的流量模拟来评估我们的工作。这些模拟与合法的大规模DNS流量一起执行,其峰值速率为每小时4100万次请求,从而使检测任务尽可能真实。该该检测覆盖率下表明少于0.002%假阳性率以及低误报率随着时间的推移而更少,我们将最近发表的两篇论文旨在检测隧道方法与本文进行比较,证明我们的方法的贡献——检测的低吞吐量漏出恶意软件。
我们工作的贡献有三方面:
1)除了检测DNS隧道外,我们的工作还能够检测低吞吐量DNS泄露恶意软件。
2)因为我们的方法在特定的时间范围内对域进行分类(称为每个域),所以它通过拒绝对被分类为用于数据交换的域的请求,来立即、准确和自动地阻止出现的DNS数据泄漏尝试。可以论证的是,对于在特定时间段内对用户进行分类的检测系统来说,情况并非如此,因为基于恶意软件的存在对合法用户的流量进行无限期阻塞可能是不可接受的。
3)据我们所知,之前的研究还没有对大规模、高质量的DNS流量日志(超过106个查询/小时)进行评估。由于DNS上的数据泄露可能试图低调神秘地操作,针对大规模流量的测试可能是任何检测系统的最终挑战。前一种说法得到了支持,因为当我们将我们提出的方法与以前建议的方法进行比较时,我们发现它们的报告结果有所减少。
二、背景
1. DNS是域名解析器的意思。域名就是我们平常访问的网址,如www.baidu.com,而网络通信是ip对ip的,ip难记,域名易记,所以会将ip对应到相应的域名,来实现便捷访问;2. 既然是域名解析器,那么它的功能就非常有限,你的个人信息是不会再里面存档的,因为它本身的责任只是将域名资源集合到服务器上,来实现网络通信的。放心,很安全。
用户在防火墙日志中发现大量的DNS缓存攻击记录这是电信搞鬼,强制性推广广告以扭转盈利下滑的局面,所以被检测为DNS缓存投毒在DOS下键入ipconfig/flushdns命令清除DNS缓存恶意程序修改你电脑上DNS缓存中的内容,一是让你不能正常上网,比如把.cn的IP地址修改为127.0.0.1,这样无论如何也不能找到新浪网了,二是将某些恶意IP地址放进DNS缓存,比如把.cn对应的IP地址修改为恶意网站地址,当你在地址栏输入.cn的时候,访问的却是恶意网站。由于操作系统在进行DNS解析的时候首先查询DNS缓存,如果在缓存中能查到,就不会再找DNS服务器了。这样一旦dns缓存被修改,你去修改DNS服务器之类的网络参数也是无效的。用IPCONFIG/displaydns命令栏查看当前dns缓存里的内容。用ipconfig/flushdns命令刷新dns缓存中的内容。若要防止dns缓存攻击,应禁用dns缓存,方法:禁用客户端DNS缓存1.启动注册表编辑器(Regedit)。2.在注册表项中HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache\Parameters3.第一行(默认)。键入1,然后单击确定。4.退出注册表编辑器。欢迎分享,转载请注明来源:夏雨云
评论列表(0条)