Melissa Alvarez

利用新的 Kibana 集成检测域名生成算法 (DGA) 活动

我们在 Kibana 的 Integrations 应用中添加了一个 DGA 检测包。只需单击一下,即可安装并开始使用 DGA 模型和相关资源,包括数据摄取管道配置、异常检测作业和检测规则。

阅读时间:7 分钟机器学习检测科学
Detect domain generation algorithm (DGA) activity with new Kibana integration

正在寻找一种方法来帮助保护您的网络免受潜在的域名生成算法 (DGA) 攻击?不用再找了——DGA 检测包现已在 Kibana 的 Integrations 应用中提供。

用户只需单击一下,即可安装并开始使用 DGA 模型和相关资源,包括数据摄取管道配置、异常检测作业和检测规则。继续阅读分步说明,了解如何安装和完全启用 DGA 包。

[相关文章:自动化安全防护对恶意软件的快速响应]

什么是 DGA?

DGA 是一种被许多恶意软件作者用来确保客户端机器感染能够躲避防御措施的技术。此技术的目的是通过使用数百或数千个随机生成的域名来隐藏受感染客户端机器与命令和控制 (C&C 或 C2) 服务器之间的通信,其中一个域名最终将解析到 C&C 服务器的 IP 地址。

为了更容易地了解 DGA 攻击中发生的情况,想象一下您是战场上的士兵。像许多士兵一样,您拥有使用无线电频率进行通信的通信设备。您的敌人可能会尝试通过干扰您的无线电频率来中断您的通信。解决此问题的一种方法是跳频——使用在传输过程中非常快速地更改频率的无线电系统。对敌人来说,频率变化似乎是随机且不可预测的,因此很难干扰。

DGA 就像恶意软件的跳频通信通道。它们频繁地更改域名,因此通过 DNS 域名阻止来阻止恶意软件的 C2 通信通道变得不可行。随机生成的 DNS 名称实在太多了,无法成功识别和阻止它们。

这种技术在 2009 年随着“Conficker”蠕虫的出现而强势进入恶意软件领域,该蠕虫开始使用大量随机生成的域名进行通信。在安全研究人员联盟通过关闭其用于通信的 DNS 域名中断蠕虫的 C2 通道后,蠕虫的作者开发了这种对策。在 2017 年 WannaCry 勒索软件全球爆发事件中也进行了 DNS 缓解。

入门

我们已将模型和相关资源(包括管道、异常检测配置和检测规则)发布到 Kibana 的 Integrations 应用中(自 8.0 版本起)。我们将继续维护这种格式。

如果您没有 Elastic Cloud 集群,但想开始尝试已发布的 ProblemChild 包,您可以开始免费试用 14 天 Elastic Cloud。

我们现在将介绍在几分钟内使用已发布的 DGA 包在您的环境中启动和运行 DGA 的步骤。

步骤 1:安装包资源

在 Kibana 中,Integrations 应用现在包含 DGA 检测包。要安装资源,请单击“设置”选项卡下的“安装 DGA 资源”按钮。这将安装使用 DGA 模型在检测到网络数据中的 DGA 活动时生成警报所需的所有工件。

安装完成后,您可以导航到“堆栈管理 > 数据摄取管道”,并看到已安装<版本号>-ml_dga_ingest_pipeline,现在可以使用它来丰富传入的摄取数据。数据摄取管道利用<版本号>-ml_dga_inference_pipeline来执行此操作。

同样,安装的 DGA 模型现在可以在“机器学习 > 模型管理 > 已训练模型”中看到。

步骤 2:丰富您的数据

现在您可以使用数据摄取管道来摄取您的数据。监督模型将分析和丰富包含 DNS 事件的传入数据,并提供 DGA 分数。

此管道设计用于处理包含 DNS 事件的数据(例如packetbeat 数据),这些数据包含以下 ECS 字段:dns.question.name 和 dns.question.registered_domain。您可以通过添加简单的配置设置将已安装的数据摄取管道添加到 Elastic beat。

如果您已经为您的索引关联了数据摄取管道,您可以使用管道处理器将 DGA 数据摄取管道集成到您现有的管道中。

您还需要将以下映射添加到您选择的 beat

{
  "properties": {
    "ml_is_dga": {
      "properties": {
        "malicious_prediction": {
          "type": "long"
        },
        "malicious_probability": {
          "type": "float"
        }
      }
    }
  }
}

您可以在“堆栈管理 > 索引管理 > 组件模板”下执行此操作。可以编辑以添加自定义组件的模板将标有 _@custom_ 后缀。通过将上面的 JSON 代码块粘贴到“加载 JSON”弹出窗口中,编辑 Elastic beat 的 _@custom_ 组件模板。

您现在应该会看到该模型使用以下字段丰富传入的 DNS 事件

  • **Ml_is_dga.malicious_prediction:**值为“1”表示预测 DNS 域名是恶意 DGA 活动的结果。值为“0”表示预测它是良性的。

  • **Ml_is_dga.malicious_probability:**DNS 域名是恶意 DGA 活动结果的概率分数(介于 0 和 1 之间)。

如果您想立即测试数据摄取管道是否按预期工作,您可以使用模拟管道 API中的几个示例文档,并确认您看到了**ml_is_dga**字段。

步骤 3:运行异常检测

该包包含一个预配置的异常检测作业。此机器学习 (ML) 作业检查监督 DGA 模型生成的 DGA 分数,并查找特定源 IP 地址异常高分的异常模式。这些事件将被分配异常分数。

要在丰富的 数据上运行此作业,请转到“机器学习 > 异常检测”。当您使用作业向导创建作业时,您应该会看到一个使用预配置作业的选项,其中包含 DGA 的卡片。选择卡片后,您将看到可以运行的预配置异常检测作业。请注意,此作业仅适用于已由数据摄取管道丰富的索引。

步骤 4:启用规则

为了最大限度地利用 DGA 框架,请激活已安装的检测规则。当满足监督模型或异常检测作业的某些条件时,将触发它们。已安装规则的完整列表可以在包本身的“概述”页面或最新的实验性检测版本中找到。

为了充分利用包含的预配置异常检测作业,请启用补充规则:潜在DGA活动。这将在安全应用程序的检测页面中创建一个基于异常的警报。

预配置的异常检测作业和补充规则都可以在检测规则仓库的发行版中找到。要启用和使用已安装的规则,请导航到安全 > 规则,然后选择加载Elastic预构建规则和时间线模板

联系我们

我们非常乐意您试用ProblemChild并提供反馈,以便我们在为其添加新功能时改进它。如果您在此过程中遇到任何问题,请通过我们的社区Slack频道讨论论坛或甚至我们的开放检测仓库与我们联系。

您始终可以在Elastic Cloud上体验最新版本的Elasticsearch服务,并按照这篇博文在您的环境中为Windows进程事件数据设置ProblemChild框架。并利用我们的快速入门培训来帮助您取得成功。立即开始您的Elastic Cloud免费试用以访问该平台。祝您实验愉快!