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, 大语言模型, 威胁情报, 安全运营, 开发者工具, 扫描框架, 版权保护, 请求拦截, 逆向工具