利用本地资源攻击检测
编辑利用本地资源攻击检测
编辑利用本地资源攻击 (LotL) 检测软件包包含一个名为 ProblemChild 以及相关资产的监督式机器学习模型,用于检测您环境中利用本地资源 (LotL) 的活动。此软件包需要铂金版订阅。请确保在继续操作之前,您的集群上安装了试用版或铂金版级别的订阅。此软件包在 Elastic License 2.0 下获得许可。
有关更多详细信息,请参阅以下博客和网络研讨会
安装
编辑- 升级:如果从低于 v2.0.0 的版本升级,请参阅 v2.0.0 及更高版本 部分。
- 添加集成软件包:通过 管理 > 集成 > 添加利用本地资源攻击检测 安装软件包。配置集成名称和代理策略。单击保存并继续。
- 安装资产:通过单击 设置 > 安装利用本地资源攻击检测资产 安装资产。
-
配置管道:要配置管道,可以使用以下步骤之一
-
如果使用 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
中来将其添加到摄取管道中。
-
-
将所需映射添加到组件模板:转到 堆栈管理 > 索引管理 > 组件模板。可以编辑以添加自定义组件的模板将用
@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 中的映射步骤。单击页面底部的 添加字段,然后创建一个类型为
Long
的blocklist_label
字段:image::images/problemchild/field1.png[组件模板] - 然后为
problemchild
创建一个Object
字段。image::images/problemchild/field2.png[组件模板] - 最后,在 ProblemChild 下创建两个属性。image::images/problemchild/field2a.png[组件模板]
- 第一个属性是类型为
Long
的prediction
,然后是类型为Float
的prediction_probability
。image::images/problemchild/field3.png[组件模板] - 您的组件映射应如下所示:image::images/problemchild/fields-complete.png[组件模板]
- 单击 查看,然后单击 保存组件模板。
-
-
滚动更新 根据您的环境,您可能需要 滚动更新,以便这些映射被接收。Elastic Defend 的默认索引模式为
logs-endpoint.events.process-default
。POST INDEX_NAME/_rollover
- (可选)创建一个数据视图,专门用于您的 Windows 进程日志(索引模式或数据流名称)
-
添加预配置的异常检测作业:在 机器学习 > 异常检测 中,当您创建一个作业时,您应该会看到一个选项,即使用
预配置的作业
,其中包含利用本地资源攻击检测
的卡片。当您选择该卡片时,您将看到几个预配置的异常检测作业,您可以根据最适合您的环境的作业启用。 警告:如果由于某种原因未运行摄取管道,例如尚未收到任何符合条件的数据,或者尚未添加所需的映射,您将无法看到此卡片。如果是这种情况,请尝试排除摄取管道故障,并检查是否已填充任何预测。 -
启用检测规则:您还可以启用检测规则,以便在您的环境中根据上述机器学习作业标记的异常情况发出有关 LotL 活动的警报。从该软件包的 2.0.0 版本开始,这些规则作为检测引擎的一部分提供,可以使用标签
用例:利用本地资源攻击检测
找到。有关导入和启用规则的更多信息,请参阅此文档。
在 安全 > 规则 中,使用 “用例:利用本地资源攻击检测” 标签进行筛选
异常检测作业
编辑通过识别恶意进程来检测潜在的 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 |
增强 (查看拉取请求) |
8.9.0 或更高版本 |
1.1.2 |
增强 (查看拉取请求) |
8.0.0 或更高版本 |
1.1.1 |
错误修复 (查看拉取请求) |
8.0.0 或更高版本 |
1.1.0 |
增强 (查看拉取请求) |
8.0.0 或更高版本 |
1.0.1 |
增强 (查看拉取请求) |
8.0.0 或更高版本 |
1.0.0 |
增强 (查看拉取请求) |
8.0.0 或更高版本 |
0.0.5 |
增强 (查看拉取请求) |
— |
0.0.4 |
错误修复 (查看拉取请求) |
— |
0.0.3 |
错误修复 (查看拉取请求) |
— |
0.0.2 |
错误修复 (查看拉取请求) |
— |
0.0.1 |
增强 (查看拉取请求) |
— |