mentat-is/gulp

GitHub: mentat-is/gulp

基于 OpenSearch 的图形化安全事件响应日志处理平台,支持多源数据摄入、SIGMA 规则查询和团队协作分析。

Stars: 56 | Forks: 7

gULP 图形化、通用的事件响应 Log 处理器! _由 Mentat 用 :heart: 制作。_
![GitHub followers](https://img.shields.io/github/followers/mentat-is?style=social) ![GitHub stars](https://img.shields.io/github/stars/mentat-is/gulp?style=social) ![GitHub languages](https://img.shields.io/github/languages/top/mentat-is/gulp) ![GitHub issues](https://img.shields.io/github/issues/mentat-is/gulp) ![GitHub sponsors](https://img.shields.io/github/sponsors/mentat-is)
[描述](#description) - [架构](#architecture) - [安装](#installation) - [运行与示例](#commandline-examples) - [GUI](#clients) - [故障排除](./docs/troubleshooting.md)
## 描述 Gulp 是一款功能强大的软件工具,旨在简化事件响应和分析。其核心功能包括: - **数据摄入插件**:得益于其通用的插件系统,Gulp 可以从多种来源摄入数据。 - **OpenSearch 和 ECS**:Gulp 基于 OpenSearch 构建,并使用 *Elasticsearch Common Scheme (ECS)* 作为其摄入格式,确保了兼容性和易用性。 - **高速多处理引擎**:Gulp 的引擎专为速度而设计,通过多处理提供快速的数据摄入和查询能力。 - **使用 SIGMA 规则查询**:Gulp 支持使用 Sigma 规则进行查询,允许通过数千条规则轻松实现一键并行查询。 - **协作平台**:Gulp 包含一个协作平台,使团队能够在同一事件上协同工作。功能包括记笔记、高亮显示和添加链接。 - [**创新性的 UI**](https://github.com/mentat-is/gulpui-web):Gulp 的用户界面包含多个屏幕上的按上下文(即日志源)可缩放时间线,用于可视化事件,使理解和分析事件变得更加容易。
截图 1
截图 2
截图 3
- **可扩展**:Gulp 在设计时充分考虑了可扩展性。随着数据和团队的增长,您可以简单地添加更多 gulp 节点、更多核心以增加并行摄入和查询能力,以及更多 OpenSearch 和 PostgreSQL 节点。这使得 Gulp 成为一个灵活的解决方案,能够适应您不断变化的需求! - **基于 Python**:Gulp 使用 Python 编写,尽可能利用开源库。由于 Python 被广泛使用和理解,这最大限度地提高了社区的采用便利性。 [这里是详细的数据表](./DATASHEET.md) ## 架构 - [GULP 架构](./docs/architecture.md) ### 插件开发 - [插件与映射](./docs/plugins_and_mapping.md) - [测试指南](./docs/testing.md) ### 与其他应用程序集成 gulp 当然可以[与其他应用程序集成](./docs/integration.md) ! ## 安装 - [docker](<./docs/install_docker.md>) - [从源码安装/开发环境设置](./docs/install_dev.md) - [安装额外插件](./docs/install_dev.md#7-optional-installing-extra-plugins) ### 客户端 [gulp web ui](https://github.com/mentat-is/gulpui-web) ### 环境变量 可以设置以下环境变量来覆盖配置选项。 - `GULP_BIND_TO_ADDR`, `GULP_BIND_TO_PORT`:如果设置,gulp 将监听此接口和端口(否则使用默认值 `0.0.0.0`, `8080`)。 - 要使覆盖生效,必须同时指定 `GULP_BIND_TO_ADDR` 和 `GULP_BIND_TO_PORT`,否则仅指定其中一个的值将被忽略。 - `GULP_WORKING_DIR`:这是 gulp 的**工作目录**(默认为 `~/.config/gulp`),其中包含: - `gulp_cfg.json`:配置文件,如果不存在则使用[模板](./gulp_cfg_template.json)初始化 - `plugins`:可选的额外插件(优先级高于 `$INSTALLDIR/plugins`) - `mapping_files`:可选的额外映射文件(优先级高于 `$INSTALLDIR/mapping_files`) - `certs`:可选的 [SSL](#ssl) 证书,用于 HTTPS - `ingest_local` 目录,用于存储用于快速摄入的大文件(`ingest_local` API) - `tmp_upload` 文件夹,用于在摄入期间缓存部分上传 - `GULP_OPENSEARCH_URL`:如果设置,将覆盖配置中的 `opensearch_url`。 - `GULP_POSTGRES_URL`:如果设置,将覆盖配置中的 `postgres_url`。 - `GULP_REDIS_URL`:如果设置,将覆盖配置中的 `redis_url`。 - `GULP_S3_URL`:如果设置,将覆盖配置中的 `s3_url`。 - `GULP_INTEGRATION_TEST`:**仅用于测试**,在集成测试(即 client api)期间必须将其设置为 1,以禁用可能产生干扰的调试功能。 ### 暴露的服务 #### gulp - [gulp swagger 页面 http://localhost:8080/docs](http://localhost:8080/docs) - [gulp web UI http://localhost:3000](http://localhost:3000) - **用户/密码:`admin/admin`**(默认 gulp 管理员用户) #### PostgreSQL - postgreSQL 在 **localhost:5432** - **用户/密码:`postgres/Gulp1234!`** - [adminer 在 http://localhost:8001](http://localhost:8081) 用于管理 postgreSQL(使用 `--profile dev`) - **服务器/用户/密码:`postgres/postgres/Gulp1234!`** #### OpenSearch - [opensearch 在 http://localhost:9200](http://localhost:9200) - **用户/密码:`admin/Gulp1234!`** - [elasticvue 在 http://localhost:8082](http://localhost:8082) 用于可视化 OpenSearch 索引(使用 `--profile dev`) - [opensearch dashboards 在 http://localhost:5001](http://localhost:5601) 用于更全面的 OpenSearch 管理。 #### redis - redis 在 **localhost:6379** - **用户/密码:`default/Gulp1234!`** - [redis insight 在 http://localhost:5540](http://localhost:8002) 用于管理 redis(使用 `--profile dev`) #### MinIO - [minio 在 http://localhost:9000](http://localhost:9000) - **用户/密码:`admin/Gulp1234!`** - 这被用作 S3 兼容的文件存储,供可能需要它的插件使用。 ### SSL 要使用 SSL,可以提供以下配置选项和文件变量: #### OpenSearch - Gulp 配置 - `opensearch_verify_certs`:设置为 `false` 以跳过服务器验证 - 证书文件 - `$GULP_WORKING_DIR/certs/opensearch-ca.pem`:Gulp 连接到 Opensearch 服务器的 CA 证书 - `$GULP_WORKING_DIR/certs/opensearch.pem`:Gulp 连接到 Opensearch 服务器的客户端证书 - `$GULP_WORKING_DIR/certs/opensearch.key`:***无密码***的客户端证书密钥 #### PostgreSQL - Gulp 配置 - `postgres_ssl`:对 postgres 连接使用 SSL,设置为 `false` 以不使用。 - `postgres_verify_certs`:设置为 `false` 以跳过服务器验证 - 证书文件 - `$GULP_WORKING_DIR/certs/postgres-ca.pem`:Gulp 连接到 PostgreSQL 服务器的 CA 证书 - `$GULP_WORKING_DIR/certs/postgres.pem`:Gulp 连接到 PostgreSQL 服务器的客户端证书 - `$GULP_WORKING_DIR/certs/postgres.key`:客户端证书密钥 #### gulp - Gulp 配置 - `https_enforce`:设置为 `true` 以强制仅通过 HTTPS 连接到 Gulp - `https_enforce_client_certs`:设置为 `true` 以强制检查由 `gulp-ca.pem` CA 签名的客户端证书 - 证书文件 - `$GULP_WORKING_DIR/certs/gulp-ca.pem`:Gulp CA - `$GULP_WORKING_DIR/certs/gulp.pem`:Gulp 服务器证书 - `$GULP_WORKING_DIR/certs/gulp.key`:Gulp 服务器证书密钥 #### redis & MinIO 查看它们的具体文档:基本上您必须将证书放在 `$GULP_WORKING_DIR/certs` 中,该目录[已挂载到容器中](./docker-compose.yml),并调整它们的配置。 ## 命令行示例 默认启动,在首次运行时创建一个名为 `test_operation` 的协作数据库操作。 ``` gulp ``` 删除与 `ALL`(所有)现有操作相关的数据,包括协作数据库和 OpenSearch 上的数据。 ``` gulp --reset-collab ``` 删除与 `ALL`(所有)现有操作相关的数据,包括协作数据库和 OpenSearch 上的数据,最后创建/重建 `my_operation`。 ``` gulp --reset-collab --create my_operation ``` 仅作用于 `my_operation`:创建/重建操作,删除协作数据库和 OpenSearch 上所有相关数据。 ``` gulp --create my_operation ```
标签:AMSI绕过, ASN信息, ECS, Elasticsearch, HTTPX, Mutation, Sigma规则, SOC工具, Terraform, 协作平台, 可视化, 后端开发, 多进程, 威胁检测, 安全运营, 库, 应急响应, 扫描框架, 插件架构, 搜索引擎查询, 数字取证, 数据摄取, 日志处理, 测试用例, 漏洞发现, 目标导入, 自动化脚本, 请求拦截, 逆向工具, 高速查询