remg427/misp42splunk
GitHub: remg427/misp42splunk
一个功能完善的Splunk技术附加组件(TA),作为MISP REST API的封装层,实现了Splunk与MISP威胁情报平台之间的双向数据交互与自动化协作。
Stars: 113 | Forks: 32
## 简介
此 TA 允许您的 [Splunk](https://www.splunk.com) 搜索头(集群)与一个或多个 [MISP](https://www.misp-project.org/) 实例进行交互。它是一个多功能 TA,作为 MISP API 的封装,既可以将 MISP 信息收集到 Splunk(自定义命令),也可以将信息从 Splunk 推送到 MISP(警报操作)。
该 TA 旨在利用 Splunk GUI 实现轻松安装、设置和维护。
## 快速入门
**重要提示**:首次升级到 4.1.0 或更高版本后,您需要重新配置 TA(切换到新框架)
此应用程序设计用于 Linux 平台上的 **Splunk 搜索头**(未在 Windows 上测试,但可能可以运行)
1. 从 [splunkbase](https://splunkbase.splunk.com/app/4335/) **下载 TA**
2. 在您的 Splunk 搜索头上安装该应用程序:“Manage Apps” -> “Install app from file” 并重启 Splunk 服务器
3. 启动该应用程序(Manage Apps > misp42 > launch app)并进入 Configuration 菜单
4. 创建至少一个实例,例如 "default_misp"。
- 提供一个名称,例如 default_misp 以遵循本文档中的示例
- 提供 MISP 实例的 URL(版本 > 2.4.117)
- 提供 authkey,
- 检查(或不检查)MISP 服务器的证书,
- 是否为此实例使用代理,
- 如果需要,提供客户端证书(并选中使用它的框)

5. 如果您需要**多个实例**,请创建额外的条目。
6. 重要提示:使用此应用程序的角色/用户必须拥有 "list_storage_passwords" 权限(因为 API KEY 和代理密码是安全加密存储的)。
## 用法
1. MISP 到 SPLUNK(自定义命令):
**`| mispgetioc misp_instance=default_misp _params_ | ...`** 将 MISP 事件属性作为查找获取到 Splunk 搜索管道中。
**`| mispgetevent misp_instance=default_misp _params_ | ...`** 将 MISP 事件作为查找获取到 Splunk 搜索管道中。
**`| mispcollect misp_instance=default_misp _params_ | ...`** 将 MISP 属性或事件作为具有完整映射的事件获取到 Splunk 中。
**`search ... |mispsearch misp_instance=default_misp field=myvalue | ...`** 在 MISP 中搜索匹配的属性。
**`search ... |mispsight misp_instance=default_misp field=myvalue | ...`** 获取特定值的目击信息(请注意,如果有误报(FP),则仅返回第一个命中结果)
2. MISP 用于 SPLUNK:提供 2 个 Splunk 警报操作
* 一个操作用于创建新事件,或者如果您提供 eventid(或 UUID),则**编辑**现有事件。这允许跨多个警报触发为 misp 事件做贡献。
* 一个操作用于在 MISP 实例中增加属性目击次数。
## 使用案例
### 构建仪表板
您可以从 MISP 实例获取最新属性并将它们保存在索引下(例如 index=misp)。
然后可以使用 [此模板](docs/dashboard_examples/misp_charts.xml) 构建仪表板。结果应该类似于 [此视频](https://www.youtube.com/watch?v=H2Z3gwJW7Fc&feature=youtu.be)
感谢 @ran2 的分享!
### 在 Splunk 日志中搜寻
来自 MISP 的最新 IOC > Splunk 中的保存搜索
### 基于自动化沙箱创建(或编辑)事件
如果您将分析输出推送到 Splunk,则可以自动化创建事件
沙箱输出日志 > 保存搜索以进行限定、清理(去重、移除 Alexa 头部等)并准备表格(misp_*, fo_*, eo_* 和 no_*)> 设置 splunk 警报以在 MISP 中创建事件
* 仅导入带有 misp_ 前缀(或 fo_ 用于文件对象,eo_ 用于电子邮件对象,no_ 用于 domain-ip 对象)的字段
* **>=3.2.2 版本中的新功能** 可以通过编辑 lookup/misp_datatypes.csv 将附加字段添加到 MISP 事件中,参见 [此示例](README/misp_datatypes.csv.sample)。这将提高与 Enterprise Security Adaptative response 的兼容性
* 建议:对于对象,请验证要创建的字段名称 [Object definitions](https://github.com/MISP/misp-objects/tree/master/objects)
* 如果您提供 eventid,该事件将更新属性和对象,而不是创建新事件。**警告**:显然,如果您多次提交相同的输入,**API 确实会创建重复的对象**。
### 基于 Splunk 警报在 MISP 中进行目击
在 Splunk 中搜索属性值/uuid > 警报以增加 MISP 中这些值/uuid 的目击计数器(标准、误报、过期)
>=3.2.2 版本中的新功能:您可以在警报配置中记录目击来源(静态字符串或内联字段)
### 保存搜索和 Enterprise Security App
提供了几个保存搜索,以便轻松创建 KV store 查找,供以后使用。默认行为是将新的事件属性追加到 KV store,但您可以切换为替换它。
基于这些搜索,您可以轻松创建本地 CSV 文件并将情报提供给 Enterprise Security App。
您也可以使用此示例(感谢 @xg-simon 分享):
```
| mispgetioc misp_instance=default_misp pipesplit=true add_description=true category="External analysis,Financial fraud,Internal reference,Network activity,Other,Payload delivery,Payload installation,Payload type,Persistence mechanism,Person,Social network,Support Tool,Targeting data" last=90d to_ids=true geteventtag=true warning_list=true not_tags="osint:source-type=\"block-or-filter-list\""
| eval ip=coalesce(misp_ip_dst, misp_ip_src, misp_ip)
| eval domain=misp_domain
| eval src_user=coalesce(misp_email_src, misp_email_src_display_name)
| eval subject=misp_email_subject
| eval file_name=misp_filename
| eval file_hash=coalesce(misp_sha1, misp_sha256, misp_sha512, misp_md5, misp_ssdeep)
| eval url=coalesce(misp_url,misp_hostname)
| eval http_user_agent=misp_user_agent
| eval registry_value_name=misp_regkey
| eval registry_value_text=if(isnotnull(misp_regkey),misp_value,null)
| eval description = misp_description
| table domain,description,file_hash,file_name,http_user_agent,ip,registry_value_name,registry_value_text,src_user,subject,url,weight
```
## 用法
- 自定义命令
* [mispgetioc](https://github.com/remg427/misp42splunk/blob/main/docs/mispgetioc.md) 利用 /attributes/restSearch 端点的生成命令
* [mispgetevent](https://github.com/remg427/misp42splunk/blob/main/docs/mispgetevent.md) 利用 /events/restSearch 端点的生成命令
* [mispcollect](docs/mispcollect.md) 利用 /attributes/restSearch 或 /events/restSearch 端点的事件生成命令
* [misprest](https://github.com/remg427/misp42splunk/blob/main/docs/misprest.md) 作为 MISP REST API 封装的生成命令。
* [mispsearch](https://github.com/remg427/misp42splunk/blob/main/docs/mispsearch.md) 流式命令
* [mispgetattribute](https://github.com/remg427/misp42splunk/blob/main/docs/mispgetattribute.md) 用于获取单个属性的流式命令
* [mispsight](docs/mispsight.md) 流式命令
- 用于 [更新 MISP](https://github.com/remg427/misp42splunk/blob/main/docs/mispalerts.md) 的 Splunk 警报操作
* 用于创建 MISP 事件的警报,可选择同时发布它们。
* 用于 MISP 中属性目击的警报。
- 每个自定义命令和警报操作都附带一个仪表板以演示如何使用它们。
* mispgetioc 例如用于生成命令(SPL 的第一行) 
* mispsearch 例如用于丰富事件的流式命令 
* misprest 例如用于更通用的 MISP API 封装 
* Create event 例如用于警报操作 
## 致谢
此应用程序的创建始于 https://github.com/xme/splunk/tree/master/getmispioc 所做的工作以及关于 MISP 交互的相关博客 https://blog.rootshell.be/2017/10/31/splunk-custom-search-command-searching-misp-iocs/。
## 许可证
此应用程序 misp42splunk 采用 GNU Lesser General Public License v3.0 许可。
标签:API封装, ESC4, HTTP/HTTPS抓包, IOC获取, masscan, OSINT, SOAR, Splunk TA, Splunk应用, 告警联动, 威胁情报平台, 威胁指标, 态势感知, 恶意软件信息共享平台, 技术附加组件, 数据集成, 网络安全, 逆向工具, 隐私保护