Melissa Alvarez

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

我们已将 DGA 检测包添加到 Kibana 中的 Integrations 应用中。 只需单击一下,您就可以安装并开始使用 DGA 模型和相关资产,包括摄取管道配置、异常检测作业和检测规则。

阅读时间:7 分钟机器学习检测科学
使用新的 Kibana 集成检测域生成算法 (DGA) 活动

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

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

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

什么是 DGA?

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

为了便于以可视化的方式理解 DGA 攻击的过程,想象一下,你是战场上的一名士兵。 像许多士兵一样,你拥有通过无线电频率进行通信的通信设备。 你的敌人可能试图通过干扰你的无线电频率来干扰你的通信。 应对这种情况的方法之一是采用跳频技术,即在传输过程中利用载波频率不断跳变的无线电系统。 对敌人来说,频率变化似乎是随机且不可预测的,所以很难进行干扰。

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

这种技术在 2009 年就强势出现在恶意软件世界中,当时“Conficker”蠕虫开始使用大量随机生成的域名进行通信。 在一组安全研究人员通过关闭蠕虫用于通信的 DNS 域来中断蠕虫的 C2 通道后,蠕虫的作者开发了这种对策。 在 2017 WannaCry 勒索软件全球爆发的情况下,也执行了 DNS 缓解措施。

开始使用

从 8.0 版本开始,我们已将模型和相关资产(包括管道、异常检测配置和检测规则)发布到 Kibana 中的 Integrations 应用程序。 我们将继续保持这种形式。

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

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

步骤 1:安装软件包资产

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

安装完成后,您可以导航至“堆栈管理”>“摄取管道”并查看<version-number>-ml\_dga\_ingest\_pipeline是否已安装,现在可用于丰富传入的摄取数据。 摄取管道利用<version-number>-ml\_dga\_inference\_pipeline来完成此操作。

类似地,现在可以在机器学习>模型管理>训练模型中看到已安装的 DGA 模型。

第 2 步:丰富您的数据

现在您已准备好使用摄取管道来摄取数据。 监督模型将使用 DGA 分数分析和丰富包含 DNS 事件的传入数据。

该管道旨在处理包含 DNS 事件的数据(例如packetbeat数据),其中包含以下 ECS 字段:dns.question.name 和 dns.question.registered_domain。 您可以通过添加一个简单的配置设置将已安装的摄取管道添加到 Elastic 节拍中。

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

您还需要将以下映射添加到您选择的节拍中:

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

您可以在堆栈管理 > 索引管理 > 组件模板下执行此操作。 可以编辑以添加自定义组件的模板将带有@custom后缀。 通过将上述 JSON blob 粘贴到“加载 JSON” 弹出窗口中来编辑 Elastic 节拍的 @custom 组件模板。

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

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

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

如果您想立即测试摄取管道是否按预期处理您的数据,您可以使用一些带有模拟管道 API 的示例文档并确认您看到ml_is_dga字段。

步骤 3:运行异常检测

该软件包包括一个预先配置的异常检测作业。 这项机器学习 (ML) 作业检查由监督式 DGA 模型产生的 DGA 分数,并寻找特定源 IP 地址的异常高分的异常模式。 这些事件被分配了一个异常分数。

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

步骤 4:启用规则

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

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

预配置的异常检测作业和补充规则均可在检测规则 repo版本中使用。 要启用和使用已安装的规则,请导航至安全 > 规则并选择加载弹性预建规则和时间线模板

Get in touch

我们希望您试用 ProblemChild 并在我们致力于为其添加新功能时向我们提供反馈。 如果您在此过程中遇到任何问题,请通过我们的社区 Slack 频道讨论论坛甚至我们的开放检测存储库与我们联系。

您可以随时在 Elastic Cloud 上体验最新版本的Elasticsearch Service ,并按照本博客的说明在您的环境中为 Windows 进程事件数据设置 ProblemChild 框架。 并利用我们的快速入门培训来为成功做好准备。 立即开始免费试用 Elastic Cloud以访问该平台。 祝实验愉快!