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, 威胁情报, 开发者工具, 数字取证, 自动化脚本, 运维工具, 逆向工具