博客|通用信息安全| 2022年5月26日

网络流量分析和对手基础设施

当我们谈到域、DNS和相关数据(如SSL证书或屏幕截图)的基本用例时,通常会对我们所谈论的内容及其重要性有一个基本的理解。这些对话包括以下内容:

  • 围绕可能在警报或事件中看到的域或IP开发更多上下文,以了解它是否代表威胁
  • 识别一个可观察对象(域、IP、文件等)与其他对象之间的联系,以列举可能代表威胁行为者的资产或正在进行的活动的更大的资产集
  • 通过研究基础设施的各个方面(不同领域似乎存在的“工作”是什么),获得行动者可能为预期受害者准备的更多细节

但我们通常不会花那么多时间在我们如何发现那些潜在的危险流量以及如何将我们在受保护的环境中看到的东西和从诸如DomainTools虹膜调查有远见DNSDB数据库。本博客试图深入研究这一领域。

网络取证联系人补丁

在公路交通工具的世界里,这个术语印迹指的是与路面实际接触的那部分轮胎——汽车是4,摩托车是2(除非它有一个前轮,但那是另一个博客)。这辆车的所有运输方面的花哨工程——发动机、变速器、悬架、刹车和辅助系统——都在轮胎和路面之间相对狭小的接触面上发挥作用。

这就像在一个受保护的环境中的交通流量,而数据可以帮助安全人员理解这些流量。当与internet相关的事件发生时,信息流从客户机设备流向服务器,然后从该服务器返回(是的,这过于简化了,但这个概念适合我们这里的目的)。留下法医“轮胎痕迹”的地方是网络法医接触补丁。下面是一些例子:

  • 客户端为Internet流量的目的域进行的DNS查找
  • 客户端与Internet服务器之间的TCP或UDP流量
  • 客户端和服务器之间的应用层交换
  • 由代理或防火墙等中介设备应用的操作

如果我们想要尽可能多地了解有问题的流量的背景信息,那么这些就是需要关注的地方,因为一旦我们提取了关键的可观察对象——我们今天的目的是域名和IP地址——我们就可以打开流量的OSINT(开源情报)罐头,以发现更多关于真正发生的事情。

在所有正确的地方寻找域名

并不是在典型受保护环境中记录的每个事件都有与之关联的域名。事实上,这样做的人相对较少。幸运的是,这少数人存在于每个网络中,所以你有黄金的矿脉;你只需要挖掘它们。

考虑一个基本的Web事务。让我们假设一个用户——我们称她为萨拉——访问了一个网站。如果她在办公环境中工作(或者在家里工作,但通过一个VPN,所有的通信都通过办公室,这在许多远程工作环境中很常见),web事务对我们来说就会不同,这取决于我们在哪里查看它。例如:

  • 如果我们查看来自那个路由器的日志,我们不太可能看到域名。
  • 如果我们正在查看边缘路由器内部接口的包转储,我们将看到Sarah的IP地址、源端口、目的端口和Web服务器的IP地址。我们还可以从初始TLS握手的未加密部分提取服务器名(带域)。然而,包转储不会常规地大规模收集。
  • 如果我们有一个深度包检测防火墙或web代理,那么我们可能会看到来自HTTP/S交换的报头,这取决于日志是如何配置的。这是“联系补丁”中我们可以获取域名的地方之一
  • 为了方便萨拉连接到网站,她的电脑对该网站的域名进行了DNS查找。如果DNS解析器正在记录它的查询(意思是,只对权威服务器进行缓存遗漏查找),那么我们将从这些日志中获得两个选项:它解析到的域和IP

为什么在我们的日志和事件中获取域名是特别有价值的,有几个原因——但那些是我们已经做过的事情之前讨论(如果你好奇,请务必看一看!)现在,让我们假设是这样解决(对不起,不是对不起!)域名是有价值的法医文物。

如果萨拉与该网站的连接引起了警报——例如,它的IP地址是否在危险地址的声誉列表中——我们就会想要了解更多有关该事件的信息。但如果我们只有这个IP,我们就会面临一些挑战:

  • 如果警报只是说,“嘿,人类,这个受保护的IP地址连接到xx端口上的这个非常讨厌的IP地址”,那么我们必须做一些挖掘,以找出连接的真正含义
  • 我们可以对IP进行反向查找,看看上面托管了哪些域名,但这并不能告诉我们莎拉浏览的是哪些域名,除非我们有其他的确证数据
  • 如果我们不知道它是什么域,那么我们对事件的描述就非常不完整

让我们从日志中找到这些域名!

抓住汽车的狗?

如果我们使用所有的,甚至大部分的日志源,这些日志源可能为我们提供网络事务中的域,我们将得到大量的数据。就像那只多年来一直在追的狗抓住了那辆车一样,收集所有这些木头能给我们带来比我们想象中更多的收获。这就引出了一些我们需要解决的问题,例如:

  • 我们是否有必要的基础设施来捕获、存储和分析我们可能要收集的重要级别的日志数据?
  • 人类分析师(尤其是那些时间紧迫的人)是否有办法从堆积如山的数据中找出具体的信息可能具有法庭价值的网络观察结果?

如果我们要保留每一个DNS记录,我们肯定会遇到相当大的数据管理问题。但如果我们预先过滤数据,缩小范围呢?我们有什么方法可以用来减少记录到更易于管理的水平,同时仍然保留从事件响应或积极防御的角度来看可能重要的东西?答案是肯定的。是的,有。

最有用的预过滤技术之一是消除与流行域请求相关的任何DNS日志数据。这将大大减少工作量,因为大多数用户(甚至在大多数环境中运行的非用户发起的自动化流程)都将流量发送到相对知名的资源。有几个可用的资源(在著名的Alexa网络排名服务的消亡),你可以考虑:

  • 雄伟的几百万-这是一个类似网页排名的100万个域名的列表,定期更新,根据集体共用/归属许可(CC-BY)
  • 思科/雨伞的百万-这是一个用户系统dns请求列表,由思科“免费”发布
  • Farsight Security的被动DNS数据——这也是一个被动DNS列表,但更多是根据组织而不是个人用户

但即便如此,可能也不足以缩小范围。如果非top-million日志数据的数量仍然过高,您可以考虑其他一些过滤标准:

  • 对于Web流量,过滤掉任何被分类的域(url)。把未分类的域留作进一步的检查。这假设你信任你的网络过滤器的分类;有时过滤器很难对新域进行分类
  • 考虑在您的环境中为某些子网设置优先级;例如,您可以选择只将此分析应用于来自所谓“皇冠明珠”资产的流量

如果您选择使用其中的一种或多种方法,那么您现在就拥有了对域列表进行一些精简的条件。你的目标是一个小得多的域名列表,在网上或你的过滤器是不知名的。其中一些域名可能是无害的,比如你叔叔弗雷德的新虚荣邮票收集网站;但说到恶意域名,其中很大一部分是年轻的(最近创建的),而且相对不知名(所以它们不会出现在前百万的名单上)。

一个好的预过滤脚本可能是这样的:

预过滤脚本的行为可能如下所示

从噪音中获取信号

有了这个缩小的领域列表,我们仍然需要一种程序化的方法来识别那些可能是最危险的——特别是当我们计划进行一些搜索或基于我们所了解的一些检测工程时。这就是丰富域名发挥作用的地方,通常使用SIEM和SOAR等工具。在第2部分中,我们将了解如何进行这种充实。

加入超过30,000名安全专业人员

订阅DomainTools每月通讯,以获得创新的,实用的建议,以改善他们的安全态势。我们的目标是帮助组织在其组织的日常防御中更高效、更有知识、更积极主动。

视图DomainTools”隐私政策