P4T12ICK/Sigma2SplunkAlert
GitHub: P4T12ICK/Sigma2SplunkAlert
一个将 Sigma 通用检测规则批量转换为 Splunk 原生告警配置的自动化工具。
Stars: 115 | Forks: 20
# Sigma2SplunkAlert
将 Sigma 检测规则转换为 Splunk 告警配置。
# 动机
许多安全运营中心 (SOC) 使用计划搜索来执行其检测规则。Sigma 是描述检测规则的新标准。将多个 Sigma 检测规则部署到 Splunk 是一项耗时的任务。Sigma2SplunkAlert 将多个 Sigma 检测规则转换为 Splunk savedsearches.conf 配置。此外,Sigma2SplunkAlerts 支持 Splunk 告警操作,例如发送电子邮件和汇总索引。Sigma2SplunkAlert 引入了令牌,以便在电子邮件正文中使用告警的关键字段。此外,还利用 Splunk Search 转换通过自定义配置(例如添加白名单或其他自定义 Splunk 命令)来调整 Splunk Search。
# 工作原理
Sigma2SplunkAlert 将 Sigma 与 Jinja2 模板的强大功能相结合,生成 Splunk savedsearches.conf 配置。

它使用以下输入:
* 包含 Sigma 检测规则的文件夹
* 包含字段名称和索引映射的 Sigma 配置文件(有关更多信息,请参阅 [Sigma repository](https://github.com/Neo23x0/sigma))
* 包含 Splunk alerts 配置值的 Sigma2SplunkAlert 配置文件
并生成 savedsearches.conf 配置。有关 Sigma2SplunkAlert 配置的更多信息,请参阅 Wiki。
# 环境要求
Sigma2SplunkAlert 需要 Sigma 来将 Sigma 检测规则转换为 Splunk 搜索。Sigma 需要被安装并加入到环境变量中。此外,还需要 Python >= 3.5、PyYAML 和 Jinja2。
Sigma2SplunkAlert 已在 Splunk 7.2.5 版本上进行了测试。如果您发现与之前的 Splunk 版本存在某些不兼容之处,请提交 issue,我会尽快尝试添加支持。
# 用法
```
usage: sigma2splunkalert [-h] [--config CONFIG] [--sigma-config SIGMA_CONFIG]
N [N ...]
Convert Sigma rules to Splunk Alerts savedsearches.conf configuration.
positional arguments:
N folder or file containing the Sigma rules
optional arguments:
-h, --help show this help message and exit
--config CONFIG, -c CONFIG
Sigma2SplunkAlert configuration file
--sigma-config SIGMA_CONFIG, -sc SIGMA_CONFIG
Sigma configuration with field name and index name
mapping
```
# 示例
使用标准配置转换单个 Sigma 检测规则:
```
./sigma2splunkalert rules/sysmon_mimikatz_detection_lsass.yml
```
生成以下输出:
```
# 使用 Sigma2SplunkAlert 生成
[Mimikatz Detection LSASS Access]
action.email = 1
action.email.subject.alert = Splunk Alert: $name$
action.email.to = test@test.de
action.email.message.alert = Splunk Alert $name$ triggered \
List of interesting fields: \
EventCode: $result.EventCode$ \
TargetImage: $result.TargetImage$ \
GrantedAccess: $result.GrantedAccess$ \
ComputerName: $result.ComputerName$ \
title: Mimikatz Detection LSASS Access status: experimental \
description: Detects process access to LSASS which is typical for Mimikatz (0x1000 PROCESS_QUERY_ LIMITED_INFORMATION, 0x0400 PROCESS_QUERY_ INFORMATION, 0x0010 PROCESS_VM_READ) \
references: ['https://onedrive.live.com/view.aspx?resid=D026B4699190F1E6!2843&ithint=file%2cpptx&app=PowerPoint&authkey=!AMvCRTKB_V1J5ow'] \
tags: ['attack.t1003', 'attack.s0002', 'attack.credential_access'] \
author: \
date: \
falsepositives: ['unknown'] \
level: high
action.email.useNSSubject = 1
alert.severity = 1
alert.suppress = 0
alert.track = 1
alert.expires = 24h
counttype = number of events
cron_schedule = */10 * * * *
description = Detects process access to LSASS which is typical for Mimikatz (0x1000 PROCESS_QUERY_ LIMITED_INFORMATION, 0x0400 PROCESS_QUERY_ INFORMATION, 0x0010 PROCESS_VM_READ)
dispatch.earliest_time = -10m
dispatch.latest_time = now
enableSched = 1
quantity = 0
relation = greater than
request.ui_dispatch_app = sigma_hunting_app
request.ui_dispatch_view = search
search = (source="WinEventLog:Microsoft-Windows-Sysmon/Operational" EventCode="10" TargetImage="C:\\windows\\system32\\lsass.exe" GrantedAccess="0x1410") | table EventCode,TargetImage,GrantedAccess,ComputerName,host | search NOT [| inputlookup Mimikatz_Detection_LSASS_Access_whitelist.csv] | collect index=threat-hunting marker="sigma_tag=attack.t1003,sigma_tag=attack.s0002,sigma_tag=attack.credential_access,level=high"
```
将包含 Sigma 检测规则的文件夹转换为 savedsearches.conf:
```
./sigma2splunkalert ../sigma/rules/windows/sysmon/
```
使用自定义 Sigma 和 Sigma2SplunkAlert 配置转换包含 Sigma 检测规则的文件夹:
```
./sigma2splunkalert -c config/config.yml -sc sigma_config/splunk-all.yml ../forks/sigma/rules/windows/sysmon/
```
# 后续步骤
* 改进错误处理
# 致谢
这是由 Patrick Bareiss (Twitter: [@bareiss_patrick](https://twitter.com/bareiss_patrick)) 开发的私有仓库。
标签:AMSI绕过, Jinja2, Python, savedsearches.conf, 二进制发布, 告警配置, 威胁检测, 安全运营, 应急处置, 开源工具, 扫描框架, 无后门, 检测规则, 网络安全, 网络调试, 网络资产发现, 自动化, 规则转换, 逆向工具, 隐私保护