gsweet0614/CLARION
GitHub: gsweet0614/CLARION
CLARION 是一个利用 LLM 从 RSS 订阅源中提取、分析并按组织相关性过滤威胁情报的自动化平台。
Stars: 0 | Forks: 0
# CLARION - 威胁情报平台
*在威胁情报的噪音中聆听真实的声音*
## 概述
CLARION 是一个由 AI 驱动的威胁情报平台,它使用 LLM 解析 RSS 订阅源,并根据组织配置文件和威胁行为者的目标,仅向分析师交付相关的威胁情报。
## 功能
### 核心情报处理
- **RSS 订阅源获取**:支持通过可配置的计划(间隔、cron 表达式、每日时间)对 RSS 订阅源进行自动轮询和抓取
- **双重提取模式**:
- 使用 regex 模式进行表面提取,实现快速识别
- 由 LLM 驱动的深度提取,实现全面的威胁分析
- **威胁实体提取**:识别并提取威胁行为者、恶意软件家族、漏洞、目标行业/国家、应用程序和工具
- **IOC 管理**:自动提取、存储和管理入侵指标(IP、域名、哈希、URL、电子邮件、文件路径、注册表项)
- **MITRE ATT&CK 集成**:提取战术、技术和程序(TTP)并将其映射到 MITRE ATT&CK 框架
### 情报分析与相关性评估
- **基于配置文件的分析**:定义包含公司名称、行业、位置、威胁行为者、恶意软件家族和技术的组织配置文件
- **LLM 驱动的相关性评估**:使用 AI 分析文章与组织配置文件的相关性,并提供详细的推理过程
- **多 LLM 服务商支持**:集成 OpenAI、Anthropic 和 Google Gemini 进行提取和分析
- **配置文件对比引擎**:评估漏洞适用性、威胁行为者相关性、技术适用性以及行业影响
### 数据管理与导出
- **灵活的数据导出**:支持以 CSV、STIX 2.1 JSON 捆绑包和 TAXII 2.1 集合的形式导出情报数据
- **IOC 白名单**:内置白名单系统,支持 regex 模式和 MISP warninglist 集成
- **MISP Warninglist 集成**:自动导入并同步 MISP warninglist 以增强 IOC 过滤
- **数据保留**:可配置的旧文章和情报数据清理策略
### 用户界面与可视化
- **React Web 仪表板**:用于情报分析的现代化、响应式 Web 界面
- **交互式小部件**:
- 文章趋势和统计图表
- 地理位置的威胁行为者映射
- 情报操作概览
- 提取内容的可视化
- **高级过滤**:按配置文件、日期和实体类型进行客户端和服务器端过滤
- **原生 SQL 查询接口**:供高级分析师(管理员/工程师角色)使用的直接数据库查询功能
### 自动化与集成
- **后台处理**:用于繁重操作(LLM 调用、深度提取)的异步任务队列
- **Webhook 通知**:向 Discord、Microsoft Teams 和自定义 webhook 发送实时警报
- **Model Context Protocol (MCP) 服务器**:使 LLM 能够直接与 CLARION 的威胁情报数据进行交互
- **LLM 查询接口**:集成 MCP 工具的自然语言查询,用于订阅源管理、威胁搜索和文档访问
- **RESTful API**:带有 OpenAPI 文档的全面 API,支持所有平台操作
### 安全与管理
- **基于角色的访问控制**:具有精细 API 权限的三个权限级别(Admin、Engineer、Analyst)
- **审计日志**:全面记录系统事件、用户操作和数据修改
- **身份验证**:基于 JWT 的身份验证,支持可配置的管理员用户引导
- **安全最佳实践**:输入验证、SQL 注入防护和安全的凭证管理
### 开发者体验
- **Docker 优先部署**:使用 docker-compose 完全容器化设置,适用于开发和生产环境
- **全面测试**:使用 pytest 进行单元测试和集成测试
- **可扩展架构**:插件式的服务架构,用于添加新的 LLM 服务商、通知接收器和提取方法
- **结构化日志**:支持轮转和可配置级别的可观测日志
- **API 文档**:自动生成的 OpenAPI/Swagger 文档
## 架构
```
CLARION/
├── clarion/ # Main application package
│ ├── api/ # FastAPI routes and endpoints
│ ├── services/ # Core business logic
│ │ ├── extraction.py # Article data extraction
│ │ ├── llm_client.py # LLM provider abstraction
│ │ ├── rss_processor.py # RSS feed ingestion
│ │ ├── profile_comparison.py # Threat relevance analysis
│ │ ├── scheduler.py # Scheduled tasks
│ │ ├── task_queue.py # Background workers
│ │ ├── notifications.py # Alert delivery
│ │ └── util.py # Logging and helpers
│ ├── database/ # SQLAlchemy models & DB connection
│ ├── config/ # YAML and environment config
│ └── web/ # React frontend (src/ and public/)
├── data/ # Runtime data (scraped articles, etc.)
├── deployment/ # Docker configurations and compose files
├── tests/ # Unit and integration tests
├── docs/ # Project documentation
└── requirements.txt # Python dependencies
```
## 核心组件
- **API**:FastAPI REST 后端,包含用于订阅源、RSS 和 pipeline 的路由
- **LLM 服务**:用于 AI 服务商(OpenAI、Anthropic、Gemini)的异步感知客户端
- **RSS 处理器**:自动化订阅源轮询和文章正文提取
- **提取**:对威胁行为者、恶意软件、IOC、TTP 进行表面提取和深度提取
- **配置文件对比**:基于 LLM 分析威胁与组织的相关性
- **调度器和任务队列**:用于繁重处理(提取、富化)的后台 worker
- **通知**:向 Discord、Teams 或其他平台发送 Webhook
- **Web UI**:用于查看处理后的威胁情报的 React 仪表板
- **数据库**:用于文章、提取结果和元数据的模型
## 开发理念
- **API 优先**:所有数据均通过文档化的 REST endpoint 流转
- **异步感知**:繁重的任务(LLM 调用、提取)在后台 worker 中运行,以保持 API 的响应速度
- **可观测性**:对所有主要操作进行结构化日志记录;日志存储在 `logs/` 下并按日期轮转
- **易于扩展**:通过遵循服务抽象模式,可以添加新的 LLM 服务商和通知接收器
- **Docker 优先**:通过 docker-compose 提供完整的部署支持;只需极少的配置更改即可在本地和生产环境中运行
## 文档
请查看 `docs/` 文件夹以获取详细指南:
- **[architecture.md](docs/architecture.md)** — 项目结构、组件概览和代码组织
- **[workflows.md](docs/workflows.md)** — 端到端 pipeline:获取 → 提取 → 相关性 → 富化 → 存储
- **[async.md](docs/async.md)** — 异步模式、调度器、任务队列和后台 worker
- **[scheduling.md](docs/scheduling.md)** — 使用间隔、cron 和每日计划进行自动订阅源轮询
- **[logging.md](docs/logging.md)** — 日志配置和输出位置
- **[notifications.md](docs/notifications.md)** — 设置 Discord、Teams 和 webhook 警报
- **[exports.md](docs/exports.md)** — 数据导出方法(CSV、STIX 2.1、TAXII 2.1)
- **[mcp.md](docs/mcp.md)** — 用于 LLM 集成的 Model Context Protocol 服务器
- **[research_llm_privacy.md](docs/research_llm_privacy.md)** — LLM 隐私和数据处理注意事项
- **[testing.md](docs/testing.md)** — 使用 pytest 运行单元测试和集成测试
- **[branding/](docs/branding/)** — 样式指南和 Logo 变体
## 快速开始
### 选项 1:Docker(推荐)
1. **设置环境**:
# 将示例环境文件复制到根目录
cp .env.example .env
# 编辑 .env 并添加你的 API 密钥 + 引导管理员凭证
nano .env # 或者使用你偏好的编辑器
**注意**:将根目录下的 `.env` 作为开源部署的真理来源。
2. **使用 Docker 运行**:
# 仅 API(默认;无 UI 容器)
docker compose -f deployment/docker-compose.yml up
# API + Web UI(可选配置)
docker compose -f deployment/docker-compose.yml --profile web up
# 开发热重载设置(可选)
cp deployment/docker-compose.override.yml.example docker-compose.override.yml
docker compose -f deployment/docker-compose.yml up
3. **访问应用程序**:
- API(始终可用):http://localhost:8000
- API 文档:http://localhost:8000/docs
- 健康检查:http://localhost:8000/health
- Web UI(仅在启用 `--profile web` 时):http://localhost
4. **首次登录和初始配置**:
- 首次登录用户是来自 `.env` 的引导管理员:
- `CLARION_BOOTSTRAP_USERNAME`
- `CLARION_BOOTSTRAP_PASSWORD`
- 如果未在 `.env` 中覆盖,则回退到默认值,这些默认值来自 `clarion/config/config.yaml`。
- 首次登录后,请立即轮换引导凭证。
- 然后在使用仪表板进行分析之前,至少配置一个配置文件和一个订阅源。
### 选项 2:本地开发
1. **创建虚拟环境**:
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
2. **安装依赖项**:
pip install -r requirements.txt
pip install -e .
3. **设置环境**:
cp .env.example .env
# 使用你的 API 密钥编辑 .env
4. **运行 API**:
python clarion/api/main.py
# 或者
uvicorn clarion.api.main:app --reload
5. **访问**:
- API:http://localhost:8000
- API 文档:http://localhost:8000/docs
## 运行测试
在本地运行完整的测试套件:
```
pytest -q
```
有关更多选项(集成测试、特定文件等),请参阅 `docs/testing.md`。
标签:Cloudflare, DLL 劫持, IOC管理, MITRE ATT&CK, Petitpotam, STIX/TAXII, 大语言模型, 威胁情报, 安全运营, 开发者工具, 扫描框架, 版权保护, 请求拦截, 逆向工具