{"id":35034893,"url":"https://github.com/adminlove520/threatvision","last_synced_at":"2026-05-30T10:31:17.158Z","repository":{"id":329058522,"uuid":"1101175985","full_name":"adminlove520/ThreatVision","owner":"adminlove520","description":"rss：https://adminlove520.github.io/ThreatVision/rss/security_news.xml","archived":false,"fork":false,"pushed_at":"2026-05-17T03:54:54.000Z","size":1169,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-17T05:42:53.087Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://adminlove520.github.io/ThreatVision/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adminlove520.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-21T09:54:19.000Z","updated_at":"2026-05-17T03:54:58.000Z","dependencies_parsed_at":"2026-04-01T05:02:18.651Z","dependency_job_id":null,"html_url":"https://github.com/adminlove520/ThreatVision","commit_stats":null,"previous_names":["adminlove520/threatvision"],"tags_count":145,"template":false,"template_full_name":null,"purl":"pkg:github/adminlove520/ThreatVision","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adminlove520%2FThreatVision","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adminlove520%2FThreatVision/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adminlove520%2FThreatVision/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adminlove520%2FThreatVision/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adminlove520","download_url":"https://codeload.github.com/adminlove520/ThreatVision/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adminlove520%2FThreatVision/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33423284,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T22:14:44.296Z","status":"online","status_checked_at":"2026-05-24T02:00:06.296Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-12-27T07:45:02.165Z","updated_at":"2026-05-24T06:00:59.592Z","avatar_url":"https://github.com/adminlove520.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ThreatVision 🔥  自动化安全监控与AI分析系统\n\n[![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)\n\n本项目是一个**自动化安全监控与AI分析系统**，旨在**实时追踪最新的安全漏洞（CVE）**和 **GitHub 上的安全相关仓库**，并利用 **人工智能技术**进行深度分析，最终将有价值的安全情报 **自动发布到博客平台**。\n\n## 🚀 功能亮点\n\n*   **多源数据监控**:\n    *   **CVE 监控**:  实时抓取 GitHub 上最新的 CVE 相关信息，快速发现和跟踪最新的漏洞动态。\n    *   **GitHub 仓库监控**:  通过关键词搜索和预定义的监控列表，全面监控 GitHub 上与网络安全相关的开源项目。\n*   **智能AI分析**:\n    *   **OpenAI \u0026 Gemini 双引擎**:  集成 OpenAI 和 Gemini  AI 模型，提供强大的自然语言处理能力，用于深入分析安全数据。\n    *   **多维度安全评估**:  从**漏洞原理**、**利用方式**、**风险等级**、**影响范围**等多个维度对 CVE 和仓库进行评估，确保分析结果的深度和广度。\n    *   **价值判断与筛选**:  通过 AI 智能判断安全信息的价值，**自动过滤**低价值信息，**聚焦**真正值得关注的安全威胁和技术。\n*   **自动化工作流**:\n    *   **全自动化监控**:  系统 **7x24 小时**不间断运行，无需人工值守，自动化完成安全信息收集、分析和报告生成。\n    *   **每日安全简报**:  **每日定时**生成安全资讯报告，汇总最新的 CVE 漏洞和 GitHub 安全仓库动态，并推送到博客平台。\n    *   **动态黑名单**:  根据 AI 分析结果，**自动更新**黑名单，**降低**无效信息干扰，提升监控效率。\n*   **灵活的配置与管理**:\n    *   **多 GitHub Token 支持**:  支持配置 **多个 GitHub Token**，**智能轮换**使用，有效**避免 API 调用频率限制**。\n    *   **可配置监控参数**:  关键词、监控仓库列表、黑名单等均可通过配置文件灵活调整，满足不同的监控需求。\n    *   **详细日志记录**:  系统运行的**所有关键步骤**均有详细日志记录，方便问题排查和系统监控。\n*   **博客自动发布**:\n    *   **集成博客平台**:  集成博客平台 API，**自动发布**每日安全资讯报告，快速分享安全情报。\n    *   **Markdown 报告**:  分析结果和安全简报均以 **Markdown 格式**生成，方便阅读和编辑。\n*   **Redis 消息队列**:\n    *   **API 速率限制优化**:  实现基于 Redis 的消息队列，**智能管理 API 调用**，有效避免 API 速率限制问题。\n    *   **分布式任务处理**:  支持分布式任务处理，提高系统的 **并发能力** 和 **可靠性**。\n    *   **任务优先级管理**:  支持任务优先级设置，确保重要任务优先执行。\n    *   **任务重试机制**:  实现任务自动重试机制，提高任务执行成功率。\n*   **Preview-UI 可视化界面**:\n    *   **实时数据展示**:  提供直观的 **Web 界面**，实时展示安全日报、CVE 漏洞和仓库监控数据。\n    *   **数据可视化**:  集成 Chart.js 实现数据可视化，展示漏洞趋势和风险分布。\n    *   **响应式设计**:  支持不同设备访问，提供良好的移动端体验。\n    *   **GitHub Pages 部署**:  支持通过 GitHub Pages 自动部署，方便快捷。\n*   **RSS 自动生成**:  \n    *   **RSS 2.0 标准**:  生成符合 RSS 2.0 标准的订阅源，支持 WordPress 等博客平台自动订阅。\n    *   **自动更新机制**:  安全日报生成后 **自动更新** RSS 源，确保内容实时性。\n    *   **替代直接 API 发布**:  支持通过 RSS 订阅方式实现 WordPress 自动发布，简化部署流程。\n\n## 🛠️ 技术实现\n\n### 1.  监控模块 (Monitors)\n\n*   **`cve_monitor.py`**:  **CVE 监控器**\n    *   **GitHub API 交互**:  使用 GitHub API 搜索 CVE 相关的仓库，关键词 `CVE-202+`，并按 `updated` 时间排序。\n    *   **CVE 信息提取**:  通过正则表达式从仓库名称和描述中提取 CVE 编号。\n    *   **仓库信息抓取**:  获取仓库的描述、星数、更新时间、最近提交等信息。\n    *   **黑名单过滤**:  支持**用户黑名单**和**仓库黑名单**，过滤无效信息源。\n    *   **文件内容分析**:  克隆仓库到本地，**智能分析**仓库中的 **README.md** 和其他**高优先级文件**，计算文件**相关性得分**，初步筛选高价值仓库。\n    *   **Token 智能管理**:  实现 GitHub Token 的**自动轮换**和**状态检查**，**动态切换**可用 Token，确保监控任务的连续性。\n    *   **数据库存储**:  使用 **SQLite** 数据库 **`database/cve_record.db`** 存储 CVE 记录，包括 CVE 编号、描述、发布时间、最后修改时间、仓库 URL 等信息。\n\n*   **`github_monitor.py`**:  **GitHub 仓库监控器**\n    *   **关键词搜索**:  根据配置文件 **`config.py`** 中定义的 `GITHUB_KEYWORDS` 列表，定期搜索 GitHub 仓库。\n    *   **监控列表**:  支持配置文件 **`config.py`** 中 `WATCHED_REPOSITORIES` 列表，**重点监控**预定义的安全仓库。\n    *   **仓库信息抓取**:  获取仓库的详细信息，包括描述、星数、最后更新时间、最近提交记录等。\n    *   **提交记录分析**:  抓取仓库的**最近提交记录**，**智能分析**提交信息和文件变更，初步判断仓库的**安全相关性**。\n    *   **黑名单过滤**:  支持**用户黑名单**和**仓库黑名单**，过滤无效信息源。\n    *   **Token 智能管理**:  与 CVE 监控器共享 Token 管理机制。\n    *   **数据库存储**:  使用 **SQLite** 数据库 **`database/github_repo.db`** 存储 GitHub 仓库记录，包括仓库名称、URL、描述、最后更新时间、星数、是否为高价值仓库等信息。\n\n### 2.  AI 分析模块 (AI)\n\n*   **`analyzer.py`**:  **AI 分析器**\n    *   **OpenAI \u0026 Gemini API**:  集成 **OpenAI API** (主要) 和 **Gemini API** (备用)，支持 **多模型** 切换，例如 `gpt-4o-mini-2024-07-18` (保底模型)。\n    *   **Prompt 工程**:  针对 **不同分析场景** (CVE 分析、新仓库分析、仓库更新分析、特定监控仓库分析)，设计了**不同的 Prompt 模板**，优化 AI 分析效果。\n    *   **JSON 格式输出**:  要求 AI **严格按照 JSON 格式** 输出分析结果，方便程序解析和数据处理。\n    *   **多维度安全分析**:  AI 分析结果包含 **漏洞/仓库的简要描述**、**详细总结**、**风险等级**、**关键要点**、**技术细节**、**影响组件**、**价值评估**、**安全类型**、**更新类型**、**漏洞利用状态**等丰富信息。\n    *   **结果验证与规范化**:  对 AI 返回的 JSON 结果进行**严格的格式校验**和**内容规范化**，确保数据的准确性和可用性。\n    *   **动态黑名单更新**:  根据 AI 分析结果，**自动判断**仓库或用户是否应该加入黑名单，并**动态更新黑名单文件**。\n    *   **分析结果持久化**:  将 AI 分析结果 **保存为 JSON 文件**，并 **更新数据库** 中的相应记录。\n    *   **文章标题分类**:  支持对安全文章标题进行 **AI 分类**，用于生成安全资讯报告。\n    *   **API 故障切换**:  当 OpenAI API 调用失败时，**自动切换**到 **备用 OpenAI API** 或 **Gemini API**，提高系统的**稳定性和可用性**。\n\n### 3.  数据处理与管理 (Utils)\n\n*   **`logger.py`**:  **日志记录器**\n    *   使用 `logging` 模块，提供**完善的日志记录**功能，覆盖**DEBUG**、**INFO**、**WARNING**、**ERROR** 等多个级别。\n    *   日志信息**详细**且**结构化**，方便问题排查和系统监控。\n    *   日志输出到文件 **`logs/security_monitor.log`**，并按日期滚动。\n\n*   **`queue_manager.py`**:  **Redis 队列管理器**\n    *   **任务队列管理**:  实现基于 Redis 的任务队列，用于管理 API 调用和异步任务。\n    *   **分布式处理**:  支持分布式任务处理，提高系统的并发能力和可靠性。\n    *   **速率限制优化**:  智能管理 API 调用，有效避免 API 速率限制问题。\n    *   **优雅降级**:  当 Redis 不可用时，自动降级为本地线程池执行任务。\n\n*   **`rss_generator.py`**:  **RSS 生成器**\n    *   **RSS 2.0 标准**:  生成符合 RSS 2.0 标准的订阅源。\n    *   **自动更新**:  当安全日报生成后自动更新 RSS 源。\n    *   **WordPress 集成**:  支持 WordPress 自动订阅，实现自动化发布。\n    *   **可配置**:  支持自定义 RSS 标题、描述和链接。\n\n*   **`article_fetcher.py`**:  **文章抓取器**\n    *   **多来源抓取**:  目前支持抓取 **BruceFeIix** 和 **洞见 (doonsec)** 微信公众号的安全文章。\n    *   **RSS 订阅**:  支持通过 OPML 文件导入 RSS 订阅源，抓取安全相关博客的最新文章。\n    *   **文章标题和 URL 提取**:  使用正则表达式从网页内容中提取文章标题和 URL。\n    *   **重试机制**:  使用 **退避策略** 的重试机制，提高文章抓取的**稳定性和成功率**。\n    *   **文章标题清理**:  **标准化**和**清理**文章标题，移除多余的标记和格式。\n\n*   **`article_manager.py`**:  **文章管理器**\n    *   **文章去重**:  **自动过滤**已处理过的文章 URL，避免重复分析和推送。\n    *   **AI 分类结果处理**:  处理 AI 文章标题分类结果，**按类别整理**文章列表。\n    *   **每日安全资讯报告生成**:  **定时**生成 **Markdown 格式** 的每日安全资讯报告，汇总最新的安全文章和 AI 分析结果。\n    *   **博客自动发布**:  调用 `blog_manager.py` 模块，将每日安全资讯报告 **自动发布到博客平台**。\n    *   **文章数据持久化**:  将已处理的 URL 和分类文章 **保存为 JSON 文件**，方便后续使用和管理。\n\n*   **`blog_manager.py`**:  **博客管理器**\n    *   **博客平台 API 交互**:  封装了与博客平台 API 交互的 **常用功能**，例如 **创建文章**、**更新文章**。\n    *   **文章 ID 映射管理**:  **记录**每日安全资讯报告在博客平台上的 **文章 ID**，方便后续更新和管理。\n    *   **博客自动发布**:  实现将每日安全资讯报告 **自动发布到博客平台** 的功能。\n\n*   **`opml_manager.py`**:  **OPML 管理器**\n    *   **OPML 文件解析**:  解析 OPML 文件，提取 RSS 订阅源列表。\n    *   **本地 OPML 文件支持**:  支持使用本地 OPML 文件，通过 GitHub Actions 工作流定期更新。\n    *   **Feed 合并**:  合并多个 OPML 文件中的订阅源，生成统一的 RSS 订阅列表。\n\n*   **`dingtalk.py`**:  **钉钉通知**\n    *   **钉钉群机器人通知**:  支持将重要的安全信息和告警通过钉钉群机器人发送。\n    *   **消息格式处理**:  支持 Markdown 格式的消息发送，提升消息的可读性。\n\n### 4.  数据库 (Database)\n\n*   **`database/models.py`**:  **数据库模型定义**\n    *   使用 **SQLAlchemy** 定义了 **`CVERecord`** (CVE 记录) 和 **`Repository`** (GitHub 仓库记录) 两个数据模型，方便数据存储和查询。\n    *   数据库使用 **SQLite**，文件路径为 **`data/cve_record.db`** 和 **`data/github_repo.db`**。\n\n### 5.  配置文件 (Config)\n\n*   **`config.py`**:  **系统配置文件**\n    *   集中管理系统的**各项配置参数**，例如数据库路径、API 密钥、监控间隔、关键词列表、黑名单等。\n    *   支持通过环境变量和 YAML 配置文件进行灵活配置。\n    *   **环境变量加载**:  使用 `python-dotenv` 从 `.env` 文件加载环境变量，保护敏感信息。\n    *   **YAML 配置支持**:  支持从 `config.yaml` 文件加载部分配置，如监控关键词、关注仓库列表等。\n\n### 6.  命令行界面 (CLI)\n\n*   **`main.py`**:  **系统入口文件**\n    *   **命令行参数**:  支持 `--once` 参数，用于单次运行模式（适用于 Cron 任务或 CI/CD）。\n    *   **信号处理**:  支持优雅地处理 SIGINT 和 SIGTERM 信号，确保系统正常退出。\n    *   **定时任务**:  使用 `schedule` 库实现每日定时任务，生成并发布安全资讯报告。\n    *   **异步执行**:  使用线程池执行耗时的 AI 分析任务，避免阻塞主监控循环。\n    *   **系统状态管理**:  提供 `start()`, `stop()`, `run_once()` 等方法，方便系统的启动、停止和状态管理。\n\n### 7.  API 服务\n\n*   **`api/main.py`**:  **FastAPI 后端 API**\n    *   **RESTful API**:  提供 RESTful API 端点，用于访问系统数据。\n    *   **数据访问**:  支持获取安全日报、CVE 漏洞和 GitHub 仓库数据。\n    *   **CORS 支持**:  配置了 CORS 中间件，允许跨域请求。\n    *   **静态文件服务**:  支持提供静态文件服务，用于部署 Preview-UI。\n    *   **健康检查**:  提供健康检查端点，用于监控 API 服务状态。\n\n### 8.  预览 UI\n\n*   **`ui/`**:  **Preview-UI 可视化界面**\n    *   **现代化设计**:  采用现代化的设计语言，提供直观的用户界面。\n    *   **响应式布局**:  支持不同屏幕尺寸，提供良好的移动端体验。\n    *   **数据可视化**:  集成 Chart.js，实现漏洞趋势和风险分布的可视化。\n    *   **实时数据**:  支持从 API 获取实时数据，展示最新的安全资讯。\n    *   **GitHub Pages 部署**:  支持通过 GitHub Actions 自动部署到 GitHub Pages。\n\n## 📋 快速开始\n\n### 环境要求\n\n*   Python 3.8+\n*   依赖库: 见 `requirements.txt`\n\n### 安装步骤\n\n1.  **克隆仓库**\n    ```bash\n    git clone https://github.com/yourusername/ThreatVision.git\n    cd ThreatVision/code\n    ```\n\n2.  **安装依赖**\n    ```bash\n    pip install -r requirements.txt\n    ```\n\n3.  **配置环境变量**\n    创建 `.env` 文件，填入必要的 API 密钥：\n    ```\n    # GitHub Tokens (多个用逗号分隔)\n    GITHUB_TOKENS=token1,token2\n    \n    # OpenAI API\n    OPENAI_API_KEY=your_openai_api_key\n    OPENAI_MODEL=gpt-4o-mini\n    \n    # Gemini API (可选，用于故障转移)\n    GEMINI_API_KEY=your_gemini_api_key\n    \n    # 博客平台配置 (可选)\n    ENABLE_BLOG_PUBLISH=true\n    BLOG_API_URL=https://yourblog.example.com/api\n    BLOG_TOKEN=your_blog_token\n    \n    # 钉钉配置 (可选)\n    DINGTALK_TOKEN=your_dingtalk_token\n    DINGTALK_SECRET=your_dingtalk_secret\n    \n    # 监控间隔（秒）\n    MONITOR_INTERVAL=300\n    ```\n\n4.  **配置监控参数**\n    编辑 `config.yaml` 文件，配置监控关键词和关注的仓库：\n    ```yaml\n    github_keywords:\n      - \"vulnerability\"\n      - \"security\"\n      - \"exploit\"\n    \n    watched_repositories:\n      - \"OWASP/CheatSheetSeries\"\n      - \"projectdiscovery/nuclei-templates\"\n    \n    article_sources:\n      - name: \"BruceFeIix\"\n        url: \"https://example.com/brucefeix\"\n    ```\n\n### 运行系统\n\n*   **连续运行模式** (默认)\n    ```bash\n    python main.py\n    ```\n\n*   **单次运行模式** (适合 Cron 任务)\n    ```bash\n    python main.py --once\n    ```\n\n## 📊 系统运行机制\n\n### 监控流程\n\n1.  **初始化**: 系统启动时，初始化数据库和各模块。\n2.  **监控循环**: 定时执行 CVE 和 GitHub 仓库监控任务。\n3.  **数据存储**: 将监控到的原始数据存入 SQLite 数据库。\n4.  **异步分析**: 发现新的未分析数据时，提交到线程池进行 AI 分析。\n5.  **报告生成**: 每日定时生成安全资讯报告，汇总高价值信息。\n6.  **自动发布**: 根据配置，将报告发布到博客平台或通过钉钉推送。\n\n### 数据流向\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadminlove520%2Fthreatvision","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadminlove520%2Fthreatvision","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadminlove520%2Fthreatvision/lists"}