rstcloud/rstcloud_misp

GitHub: rstcloud/rstcloud_misp

将 RST Cloud 商业威胁情报数据以 events、attributes、galaxy clusters 等形式自动化导入并富化 MISP 平台的连接器套件。

Stars: 0 | Forks: 0

# rstcloud-misp RST Cloud → MISP 连接器套件。将 RST Cloud 威胁情报导入 MISP 作为 events、attributes、galaxy clusters 和 enrichment modules。 运行连接器的默认方式是使用预构建的 Docker 镜像 [`rstcloud/misp-connector`](https://hub.docker.com/r/rstcloud/misp-connector) 并搭配官方的 [MISP/misp-docker](https://github.com/MISP/misp-docker) stack。 ## 涵盖的产品 | RST Cloud 产品 | 连接器 | 在 MISP 中创建的内容 | |---|---|---| | **Threat Library** | `rstmisp library` | 4 个 MISP galaxies(intrusion sets、malware、tools、campaigns),包含稳定的 cluster UUIDs 和 relationship edges | | **Threat Feed** | `rstmisp feed` | 按威胁分组的 MISP events,包含 scored attributes、decaying-model tags 和基于策略的 `to_ids` | | **Report Hub** | `rstmisp reports` | 来自 PDF 报告的 MISP events — STIX 解析、PDF 附件、galaxy 归因、关系图 | | **Enrichment API** | misp-modules(8 个模块) | 按需提供:IOC score、noise control、WHOIS、SSL cert、截图、HTML body、CS beacon、favicon | 该套件作为一个 Docker 镜像发布,包含五个 CLI 子命令:`library`、`feed`、 `reports`、`setup`(一次性的 MISP scoring 激活)和 `schedule` (在容器内长时间运行的 cron)。仅运行您已授权的产品。 ## 快速开始(推荐) 使用官方的 MISP Docker stack 并通过已发布的连接器镜像进行扩展 — 无需本地构建。 ### 1. 部署 MISP 请遵循 [misp-docker 入门指南](https://github.com/MISP/misp-docker#getting-started): ``` git clone https://github.com/MISP/misp-docker cd misp-docker cp template.env .env # edit as needed docker compose pull docker compose up -d ``` 登录 MISP 并创建一个 API auth key(**Administration → Auth Keys**)。 ### 2. 添加连接器 将[此仓库](https://github.com/rstcloud/rstcloud_misp) clone 到 misp-docker 旁边,并在 `misp-docker/docker-compose.yml` 中引入附加的 compose 文件: ``` git clone https://github.com/rstcloud/rstcloud_misp ../rstcloud-misp ``` 添加到 `misp-docker/docker-compose.yml`: ``` include: - path: ../rstcloud-misp/docker-compose.rstmisp.yml ``` 配置连接器凭据: ``` cp ../rstcloud-misp/.env.rstmisp.example ../rstcloud-misp/.env.rstmisp $EDITOR ../rstcloud-misp/.env.rstmisp # set RST_API_KEY and MISP_KEY $EDITOR ../rstcloud-misp/rstmisp-config/policy.yml # optional tuning ``` 拉取连接器镜像并运行(**首先运行 Threat Library** — feed 和 reports 可以引用其 galaxy clusters): ``` docker compose pull docker compose --profile rstmisp run --rm rstmisp-library docker compose --profile rstmisp run --rm rstmisp-reports docker compose --profile rstmisp run --rm rstmisp-feed ``` 镜像从 Docker Hub 拉取:[`rstcloud/misp-connector`](https://hub.docker.com/r/rstcloud/misp-connector) (`latest` 或通过 `.env.rstmisp` 中的 `RSTMISP_TAG` 指定版本 tag,例如 `0.1.0`)。 ### 3. 启用 scoring(推荐用于 feed) 将 RST taxonomy 和 decaying models 复制到 MISP 的 `app/files` bind mount 中(misp-docker 中的 `./files/`),然后通过 API 激活: ``` cp -r ../rstcloud-misp/misp-content/taxonomies/rstcloud \ files/taxonomies/ cp ../rstcloud-misp/misp-content/decaying-models/rstcloud-feed-network-model.json \ ../rstcloud-misp/misp-content/decaying-models/rstcloud-feed-web-model.json \ files/misp-decaying-models/models/ # 将 {"name":"rstcloud",...} 添加到 files/taxonomies/MANIFEST.json(如果不存在) docker compose --profile rstmisp run --rm rstmisp-feed setup ``` ### 4. 调度(可选) 在 MISP 旁启用内置调度器 — 无需宿主机 cron: ``` # 添加到 misp-docker .env: # COMPOSE_PROFILES=scheduler docker compose up -d ``` 计划任务在 `rstmisp-config/policy.yml` 中的 `schedule:` 键下定义。 ## 其他安装选项 ### 构建您自己的镜像 如果您需要修补连接器或在气隙环境中运行,请在本地构建,而不是 从 Docker Hub 拉取: ``` docker build -t rstcloud/misp-connector:latest . # 或者,从此 repo: docker compose -f docker-compose.rstmisp.yml build ``` 在 `.env.rstmisp` 中设置 `RSTMISP_TAG=latest`(或您的 tag),并使用与上文相同的 `include` / `docker compose run` 工作流程。 ### Docker run(独立运行,不使用 compose) 适用于 misp-docker 之外的现有 MISP 实例: ``` docker pull rstcloud/misp-connector:latest docker run --rm \ -e RST_API_KEY= -e MISP_KEY= \ -e MISP_URL=https://your-misp -e MISP_VERIFYCERT=false \ -v "$PWD/rstmisp-config:/config:ro" \ rstcloud/misp-connector:latest library --filter recent ``` ### 本地 Python 安装 用于开发或非容器化部署: ``` pip install . rstmisp library --help python -m rstmisp feed --policy rstmisp-config/policy.yml ``` 要求 Python 3.9+。依赖项锁定在 `pyproject.toml` 中。 ### 本仓库中的完整开发栈 这里的 `docker-compose.yml` 捆绑了 misp-docker 以及用于本地 开发的连接器。对于生产环境,建议使用官方的 [misp-docker](https://github.com/MISP/misp-docker) compose 并按上文所示使用 `docker-compose.rstmisp.yml` 进行扩展。 ## 配置参考 ### 凭据和连接(`.env.rstmisp`) | 变量 | 描述 | |---|---| | `RST_API_KEY` | RST Cloud API key | | `RST_API_URL` | RST Cloud API base URL(默认:`https://api.rstcloud.net/v1`) | | `MISP_KEY` | MISP auth key(Administration → Auth Keys) | | `MISP_URL` | MISP base URL(默认:compose 网络上的 `https://misp-core`) | | `MISP_VERIFYCERT` | TLS 验证;如果 MISP 证书是自签名的,请设置为 `false` | | `RSTMISP_TAG` | 连接器镜像 tag(默认:`latest`;例如 `0.1.0`) | | `MISP_DISTRIBUTION` | 默认的 event 分发级别(0–3) | | `MISP_PUBLISH` | 自动发布 events(`true` / `false`) | | `RST_MITRE_AUTOREFRESH` | 自动刷新 ATT&CK STIX bundle(默认:`true`;在气隙环境中设置为 `false`) | | `RST_MITRE_DATA_DIR` | ATT&CK STIX 数据的持久化目录(例如 `/config/mitre_data`) | | `RSTMISP_MISP_URL` | 用于连接器 `MISP_URL` 的 Compose 覆盖配置 | | `RSTMISP_ATTACK_STIX` | 容器内 ATT&CK STIX bundle 的路径 | 将 `.env.rstmisp.example` 复制为 → `.env.rstmisp` 并填入值。切勿提交填入信息后的文件。 用于 report relationship edges 的可选 MITRE 数据位于 `rstmisp-config/` 中(参见 `rstmisp-config/README.md`)。 ### 导入策略(`rstmisp-config/policy.yml`) 完整参考请参见 `rstmisp-config/policy.example.yml`。关键部分: ``` feed: date: latest # latest | 1h_latest | 4h_latest | 12h_latest | YYYY-MM-DD window: recent # all | recent | only_new types: [ip, domain, url, hash] import_score: { ip: 20, domain: 20, url: 20, hash: 20 } to_ids_score: { ip: 45, domain: 45, url: 45, hash: 45 } event_grouping: threat_by_month # threat_by_day | month | year | threat suppress_benign: false # true = skip FP-flagged IOCs galaxy_attribution: both # builtin | rst | both score_tags: true # false = emit only score-total score_update: bumps # bumps | all | off reports: attach_pdf: true update_events: true create_relations: true remap_galaxies: true galaxy_attribution: both library: delivery: push # push | dump | repo merge_duplicates: off # off | dry-run | apply schedule: # used by rstmisp-scheduler - { product: library, args: ["--filter","recent"], cron: "0 1 * * 0" } ``` CLI flags 会覆盖策略值(例如 `feed --date 1h_latest --window all`)。 ### Enrichment modules RST Cloud enrichment modules 会单独部署到 misp-modules 容器中 (参见 `modules/README.md`)。安装后,在 **Administration → Server Settings → Plugin** 下启用它们。 ## Scoring 和 decaying models feed 使用来自 RST Cloud score object 的 MISP 原生 scoring 对每个 IOC 进行标记: | RST score 字段 | MISP tag | 备注 | |---|---|---| | `total` (0–100) | `rstcloud:score-total=""` | Decaying-model 基础分数 | | `src` (~0–100) | `admiralty-scale:source-reliability="a..f"` | 标准可靠性 taxonomy | | `tags` (0–1) | `rstcloud:context-confidence=""` | 分段(very-low … high) | | `frequency` (0–1) | `rstcloud:relevance=""` | 活跃威胁可能性分诊 | `misp-content/decaying-models/` 中提供了两个按类型的 decaying models。 重新导入会对 bucket events 中的 IOC 进行去重,并原地更新分数 (由策略中的 `score_update` / `score_update_min_delta` 控制)。详见 [DEPLOYMENT.md](DEPLOYMENT.md)。 ## 仓库布局 ``` rstmisp/ Python package — shared core + three connectors + CLI rstmisp-config/ policy.yml, policy.example.yml, optional MITRE data misp-content/ Custom rstcloud taxonomy + decaying model JSON modules/ misp-modules enrichment suite (8 RST Cloud modules) docker-compose.rstmisp.yml Add-on compose (pull rstcloud/misp-connector) Dockerfile Optional local image build DEPLOYMENT.md Deployment, scheduling, and scoring deep-dive ``` Package 级别的说明:`rstmisp/README.md`。 ## 授权 每个子命令都是独立授权的 — 仅运行 RST Cloud 订阅涵盖的 产品。未授权的 endpoint 会返回 401/403,并且连接器会 立即停止并显示明确的消息。 ## 要求 - Docker 25+ 和 Docker Compose 2.17+(用于 misp-docker) - RST Cloud API key - MISP 2.4.x 或更高版本 - RST Cloud API 访问权限(参见 [rstcloud.com](https://www.rstcloud.com)) ## 许可证 GNU General Public License v3.0 — 详见 [LICENSE](LICENSE)。
标签:Docker, 威胁情报, 安全运营, 安全防御评估, 开发者工具, 扫描框架, 数据集成, 版权保护, 请求拦截, 逆向工具