BlakeHensleyy/clarion

GitHub: BlakeHensleyy/clarion

一款利用 LLM 解析非结构化威胁情报源并根据组织画像进行相关性筛选的 AI 威胁情报管理平台。

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 查询接口**:为高级分析师(Admin/Engineer 角色)提供直接的数据库查询功能 ### 自动化与集成 - **后台处理**:用于繁重操作(LLM 调用、深度提取)的异步任务队列 - **Webhook 通知**:向 Discord、Microsoft Teams 和自定义 webhook 发送实时警报 - **Model Context Protocol (MCP) 服务器**:使 LLM 能够直接与 CLARION 的威胁情报数据进行交互 - **LLM 查询接口**:支持集成 MCP 工具的自然语言查询,用于订阅源管理、威胁搜索和文档访问 - **RESTful API**:为所有平台操作提供包含 OpenAPI 文档的全面 API ### 安全与管理 - **基于角色的访问控制**:三个权限级别(Admin、Engineer、Analyst),具有细粒度的 API 权限 - **审计日志**:全面记录系统事件、用户操作和数据修改 - **身份验证**:基于 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**:带有用于订阅源、RSS 和 pipeline 路由的 FastAPI REST 后端 - **LLM 服务**:面向 AI 提供商(OpenAI、Anthropic、Gemini)的异步感知客户端 - **RSS 处理器**:自动化订阅源轮询和文章文本提取 - **提取**:对威胁行为者、恶意软件、IOC、TTP 进行表面和深度提取 - **档案对比**:基于 LLM 分析威胁与组织的相关性 - **调度程序和任务队列**:用于繁重处理任务(提取、丰富)的后台工作进程 - **通知**:向 Discord、Teams 或其他平台发送 webhook - **Web UI**:用于查看已处理威胁情报的 React 仪表盘 - **数据库**:用于文章、提取结果和元数据的模型 ## 开发理念 - **API 优先**:所有数据均通过已记录的 REST endpoint 流转 - **异步感知**:繁重的任务(LLM 调用、提取)在后台工作进程中运行,以保持 API 的响应能力 - **可观测性**:为所有主要操作提供结构化日志;日志存储在 `logs/` 下并按日期轮换 - **易于扩展**:通过遵循服务抽象模式,可以添加新的 LLM 提供商和通知接收器 - **Docker 优先**:通过 docker-compose 提供完整的部署支持;在本地和生产环境中均可运行,只需最少的配置更改 ## 文档 请参阅 `docs/` 文件夹以获取详细指南: - **[architecture.md](docs/architecture.md)** — 项目结构、组件概述和代码组织 - **[workflows.md](docs/workflows.md)** — 端到端 pipeline:接入 → 提取 → 相关性 → 丰富 → 存储 - **[async.md](docs/async.md)** — 异步模式、调度程序、任务队列和后台工作进程 - **[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 keys + bootstrap admin credentials nano .env # or use your preferred editor **注意**:使用根目录下的 `.env` 作为开源部署的唯一事实来源。 2. **使用 Docker 运行**: # 仅 API(默认;无 UI 容器) docker compose -f deployment/docker-compose.yml up # API + Web UI(可选 profile) docker compose -f deployment/docker-compose.yml --profile web up # 开发环境 hot-reload 设置(可选) 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` 中的 bootstrap admin: - `CLARION_BOOTSTRAP_USERNAME` - `CLARION_BOOTSTRAP_PASSWORD` - 如果未在 `.env` 中覆盖,则回退到 `clarion/config/config.yaml` 中的默认值。 - 首次登录后,请立即轮换 bootstrap 凭证。 - 然后在使用仪表盘进行分析之前,至少配置一个档案和一个订阅源。 ### 选项 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 keys 编辑 .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, RSS聚合, STIX, 大语言模型, 威胁情报, 安全规则引擎, 开发者工具, 请求拦截, 逆向工具