Coralesoft/taxii-to-crowdstrike-ioc-ingestion

GitHub: Coralesoft/taxii-to-crowdstrike-ioc-ingestion

自动化从 STIX/TAXII 2 服务器轮询入侵指标并摄取到 CrowdStrike Falcon 的脚本工具。

Stars: 3 | Forks: 0

# TAXII 2 到 CrowdStrike IOC 摄取脚本 **此仓库不再维护** 本仓库包含两个版本(Python 和 Shell)的脚本,旨在轮询 **STIX2/TAXII 2** 服务器以获取 **入侵指标**,并将它们摄取到 **CrowdStrike Falcon** 中。这些脚本处理 **分页**、**token 管理**,并包含用于与 TAXII 2 和 CrowdStrike Falcon API 交互的 **错误处理**。 ## 功能 - **可配置的速率限制** 用于控制 API 请求频率,可通过环境变量 (`RATE_LIMIT_DELAY`) 进行调整。 - 轮询 **STIX2/TAXII 2** 服务器以检索 IOC。 - 将 **IOC** 推送或更新到 **CrowdStrike Falcon** 中。 - 处理来自 TAXII 2 和 CrowdStrike Falcon API 的大型数据集的 **分页**。 - 针对临时故障(网络问题)的 **重试机制**。 - 支持通过环境变量设置 API 凭据,以便安全部署。 - IOC 的 **过期管理**(默认有效期为 3 个月)。 ## 目录 - `taxii_to_crowdstrike.sh` — 脚本的 Shell 版本。 - `taxii_to_crowdstrike.py` — 脚本的 Python 版本。 ## 要求 ### Shell 版本 (`taxii_to_crowdstrike.sh`) - **Shell** (`/bin/sh`) - `curl` 用于发起 HTTP 请求。 - `jq` 用于解析 JSON 响应。 ### Python 版本 (`taxii_to_crowdstrike.py`) - **Python 3.6+** - `requests` 库用于处理 HTTP 请求。 使用以下命令安装 Python 依赖: ``` pip install requests ``` ## 用法 ### 环境变量 两个版本的脚本都需要设置以下环境变量: | 变量 | 描述 | |---------------------|-------------------------------------------| | `CLIENT_ID` | CrowdStrike Falcon API client ID | | `CLIENT_SECRET` | CrowdStrike Falcon API client secret | | `TAXII_SERVER_URL` | TAXII 2 服务器的 URL | | `TAXII_API_ROOT` | Taxii 2 API 根目录(例如 `default`) | | `TAXII_COLLECTION` | TAXII 2 collection ID | | `TAXII_USERNAME` | TAXII 2 服务器用户名 | | `TAXII_PASSWORD` | TAXII 2 服务器密码 | | `RATE_LIMIT_DELAY` | (可选) API 请求之间的延迟;默认为 2 秒 | ### 运行 Shell 版本 确保脚本具有可执行权限并运行: ``` chmod +x taxii_to_crowdstrike.sh ./taxii_to_crowdstrike.sh ``` ### 运行 Python 版本 使用 Python 3 执行: ``` python3 taxii_to_crowdstrike.py ``` ### 日志 默认情况下,这两个脚本都会将活动日志记录到 `/var/log/taxii_to_crowdstrike.log`。如有需要,请在脚本中调整日志路径。 ## 脚本概述 ### Shell 版本 (`taxii_to_crowdstrike.sh`) 使用 `curl` 和 `jq` 的 **Shell** 实现。 主要功能: - `get_crowdstrike_token` — 检索 OAuth2 token。 - `poll_taxii_server` — 轮询 TAXII 2 服务器以获取 IOC。 - `push_iocs_to_crowdstrike` — 将 IOC upsert 到 CrowdStrike Falcon 中。 ### Python 版本 (`taxii_to_crowdstrike.py`) 使用 `requests` 库的 **Python** 实现。 主要功能: - `get_crowdstrike_token` — 检索 OAuth2 token。 - `poll_taxii_server` — 轮询 TAXII 2 服务器以获取 IOC。 - `check_ioc_exists_paginated` — 检查 CrowdStrike 中是否已存在某个 IOC。 - `push_iocs_to_crowdstrike` — 将 IOC upsert 到 CrowdStrike Falcon 中。 ## 版本历史 | 版本 | 日期 | 备注 | |--------------|--------------|----------------------------------------------| | **2025.05.1**| 29-05-2025 | 转换为 TAXII 2 (JSON/STIX2) 轮询 | | **2024.10.6**| 11-10-2024 | 添加了 TAXII 轮询错误处理 | | **2024.10.5**| 10-10-2024 | 添加了可配置的速率限制 | | **2024.10.4**| 09-10-2024 | 改进了 token 处理和逐页处理 | | **2024.10.3**| 09-10-2024 | 处理了大型数据集的分页 | | **2024.10.2**| 09-10-2024 | 添加了错误处理、日志记录和重试 | | **2024.10.1**| 08-10-2024 | 首次公开发布 | ## 许可证 基于 **MIT License** 发布。详情请参阅 [LICENSE](LICENSE) 文件。
标签:CrowdStrike Falcon, Cutter, IOC同步, STIX/TAXII, 威胁情报, 开发者工具, 数字取证, 自动化脚本, 运维工具, 逆向工具