利用本地资源攻击检测

编辑

利用本地资源攻击检测

编辑

版本

2.1.5 (查看全部)

兼容的 Kibana 版本

8.9.0 或更高版本

支持的无服务器项目类型
这是什么?

安全

订阅级别
这是什么?

铂金版

支持级别
这是什么?

Elastic

利用本地资源攻击 (LotL) 检测软件包包含一个名为 ProblemChild 以及相关资产的监督式机器学习模型,用于检测您环境中利用本地资源 (LotL) 的活动。此软件包需要铂金版订阅。请确保在继续操作之前,您的集群上安装了试用版或铂金版级别的订阅。此软件包在 Elastic License 2.0 下获得许可。

有关更多详细信息,请参阅以下博客和网络研讨会

安装

编辑
  1. 升级:如果从低于 v2.0.0 的版本升级,请参阅 v2.0.0 及更高版本 部分。
  2. 添加集成软件包:通过 管理 > 集成 > 添加利用本地资源攻击检测 安装软件包。配置集成名称和代理策略。单击保存并继续。
  3. 安装资产:通过单击 设置 > 安装利用本地资源攻击检测资产 安装资产。
  4. 配置管道:要配置管道,可以使用以下步骤之一

    • 如果使用 Elastic Defend,请向数据流添加自定义管道。转到 堆栈管理 > 摄取管道,并检查管道 logs-endpoint.events.process@custom 是否存在。image::images/problemchild/custom-pipeline.png[组件模板] 如果它不存在,您可以通过在开发控制台中运行以下命令来创建它。请务必将 <VERSION> 替换为当前软件包版本。

      PUT _ingest/pipeline/logs-endpoint.events.process@custom
      {
        "processors": [
          {
            "pipeline": {
              "name": "<VERSION>-problem_child_ingest_pipeline",
              "ignore_missing_pipeline": true,
              "ignore_failure": true
            }
          }
        ]
      }
    • 如果 logs-endpoint.events.process@custom 已经存在,请选择它旁边的三个点,然后选择 编辑。单击 添加处理器。选择 管道 作为处理器,输入 <VERSION>-problem_child_ingest_pipeline 作为名称(将 <VERSION> 替换为当前软件包版本),然后选中 忽略缺失的管道忽略此处理器的故障。选择 添加处理器
    • 如果使用 Elastic Beat(例如 Winlogbeat),请通过将一个简单的配置 设置 添加到 winlogbeat.yml 中来将其添加到摄取管道中。
  5. 将所需映射添加到组件模板:转到 堆栈管理 > 索引管理 > 组件模板。可以编辑以添加自定义组件的模板将用 @custom 后缀标记。例如,Elastic Defend 进程事件的自定义组件模板是 logs-endpoint.events.process@custom注意: 不要尝试编辑 @package 模板。image::images/problemchild/component-templates.png[组件模板]

    • 如果 @custom 组件模板不存在,您可以在开发控制台中执行以下命令来创建它,然后继续执行这些说明中的 滚动更新 部分。请务必将 <VERSION> 更改为当前软件包版本。

      PUT _component_template/{COMPONENT_TEMPLATE_NAME}@custom
      {
        "template": {
          "settings": {
            "index": {
              "default_pipeline": "<VERSION>-problem_child_ingest_pipeline"
            }
          },
          "mappings": {
            "properties": {
              "blocklist_label": {
                "type": "long"
              },
              "problemchild": {
                "type": "object",
                "properties": {
                  "prediction": {
                    "type": "long"
                  },
                  "prediction_probability": {
                    "type": "float"
                  }
                }
              }
            }
          }
        }
      }
    • 如果 @custom 组件模板已经存在,您将需要编辑它以添加映射,以便正确地丰富数据。单击它旁边的三个点,然后选择 编辑。image::images/problemchild/component-templates-edit.png[组件模板]
    • 在索引设置步骤中,添加以下内容。请务必将 <VERSION> 更改为当前软件包版本。

      {
        "index": {
          "default_pipeline": "<VERSION>-problem_child_ingest_pipeline"
        }
      }
    • 继续执行 UI 中的映射步骤。单击页面底部的 添加字段,然后创建一个类型为 Longblocklist_label 字段:image::images/problemchild/field1.png[组件模板]
    • 然后为 problemchild 创建一个 Object 字段。image::images/problemchild/field2.png[组件模板]
    • 最后,在 ProblemChild 下创建两个属性。image::images/problemchild/field2a.png[组件模板]
    • 第一个属性是类型为 Longprediction,然后是类型为 Floatprediction_probability。image::images/problemchild/field3.png[组件模板]
    • 您的组件映射应如下所示:image::images/problemchild/fields-complete.png[组件模板]
    • 单击 查看,然后单击 保存组件模板
  6. 滚动更新 根据您的环境,您可能需要 滚动更新,以便这些映射被接收。Elastic Defend 的默认索引模式为 logs-endpoint.events.process-default

    POST INDEX_NAME/_rollover
  7. (可选)创建一个数据视图,专门用于您的 Windows 进程日志(索引模式或数据流名称)
  8. 添加预配置的异常检测作业:在 机器学习 > 异常检测 中,当您创建一个作业时,您应该会看到一个选项,即使用 预配置的作业,其中包含 利用本地资源攻击检测 的卡片。当您选择该卡片时,您将看到几个预配置的异常检测作业,您可以根据最适合您的环境的作业启用。 警告:如果由于某种原因未运行摄取管道,例如尚未收到任何符合条件的数据,或者尚未添加所需的映射,您将无法看到此卡片。如果是这种情况,请尝试排除摄取管道故障,并检查是否已填充任何预测。
  9. 启用检测规则:您还可以启用检测规则,以便在您的环境中根据上述机器学习作业标记的异常情况发出有关 LotL 活动的警报。从该软件包的 2.0.0 版本开始,这些规则作为检测引擎的一部分提供,可以使用标签 用例:利用本地资源攻击检测 找到。有关导入和启用规则的更多信息,请参阅此文档
Domain Generation Detection Detection Rules

安全 > 规则 中,使用 “用例:利用本地资源攻击检测” 标签进行筛选

异常检测作业

编辑

通过识别恶意进程来检测潜在的 LotL 活动。

作业 描述

problem_child_rare_process_by_host

查找在主机上被归类为恶意的进程,该主机通常不会表现出恶意进程活动。

problem_child_high_sum_by_host

查找单个主机上的一组或多个恶意子进程。

problem_child_rare_process_by_user

查找用户上下文不寻常且通常不会表现出恶意进程活动的进程。

problem_child_rare_process_by_parent

查找由父进程派生的罕见恶意子进程。

problem_child_high_sum_by_user

查找由同一用户启动的一组或多个恶意进程。

problem_child_high_sum_by_parent

查找由同一父进程派生的一组或多个恶意子进程。

v2.0.0 及更高版本

编辑

软件包的 v2.0.0 引入了重大更改,即弃用了软件包中的检测规则。要继续接收 LotL 检测的更新,我们建议在执行以下操作后升级到 v2.0.0

  • 卸载与此软件包关联的现有规则:导航到 安全 > 规则 并删除以下规则

    • 机器学习检测到可疑的 Windows 事件,该事件被预测为恶意活动
    • 主机派生的不寻常进程
    • 主机派生的可疑 Windows 进程群集
    • 机器学习检测到具有高恶意概率得分的可疑 Windows 事件
    • 父进程派生的可疑 Windows 进程群集
    • 用户派生的不寻常进程
    • 父进程派生的不寻常进程
    • 用户派生的可疑 Windows 进程群集

根据您使用的软件包版本,您或许还可以使用标签 利用本地资源 搜索上述规则。

  • 使用 此处的步骤将 LotL 软件包升级到 v2.0.0
  • 如下面的启用检测规则部分中所述安装新规则

在 2.1.1 版本中,软件包会忽略冷和冻结数据层中的数据,以减少堆内存使用量,避免在过时的数据上运行,并遵循最佳实践。

许可

编辑

在生产环境中使用需要您拥有允许使用机器学习功能的许可证密钥。

更新日志

编辑
更新日志
版本 详细信息 Kibana 版本

2.1.5

错误修复 (查看拉取请求)
添加用于集成软件包测试的字段

8.9.0 或更高版本

2.1.4

错误修复 (查看拉取请求)
添加映射说明

8.9.0 或更高版本

2.1.3

增强 (查看拉取请求)
改进软件包安装文档

8.9.0 或更高版本

2.1.2

增强 (查看拉取请求)
从文档中删除“实验性”消息

8.9.0 或更高版本

2.1.1

增强 (查看拉取请求)
添加查询设置以忽略冻结和冷数据层

8.9.0 或更高版本

2.1.0

增强 (查看拉取请求)
添加无服务器支持

8.9.0 或更高版本

2.0.0

增强 (查看拉取请求)
将检测规则移动到 detection-rules 存储库,提升许可证版本,订阅层

8.9.0 或更高版本

1.1.2

增强 (查看拉取请求)
将检测规则转换为 EQL

8.0.0 或更高版本

1.1.1

错误修复 (查看拉取请求)
更新博客文章链接并进行小的错误修复

8.0.0 或更高版本

1.1.0

增强 (查看拉取请求)
确保为管道错误正确设置 event.kind。

8.0.0 或更高版本

1.0.1

增强 (查看拉取请求)
添加高级分析 (UEBA) 子类别

8.0.0 或更高版本

1.0.0

增强 (查看拉取请求)
更新版本号以遵循 GA 格式并提高可见性

8.0.0 或更高版本

0.0.5

增强 (查看拉取请求)
清理 ML 作业组和规则标签,更新文档

0.0.4

错误修复 (查看拉取请求)
修复 ML 作业查询。

0.0.3

错误修复 (查看拉取请求)
向所有规则添加 LotL 标签,修复推理管道中的脚本,更新 ML 作业配置。

0.0.2

错误修复 (查看拉取请求)
更新 ProblemChild 集成 Readme

0.0.1

增强 (查看拉取请求)
软件包的初始版本