# CyberSentinel AI 🔥 自动化安全监控与AI分析系统 [![License](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE) 本项目是一个**自动化安全监控与AI分析系统**,旨在**实时追踪最新的安全漏洞(CVE)**和 **GitHub 上的安全相关仓库**,并利用 **人工智能技术**进行深度分析,最终将有价值的安全情报 **自动发布到博客平台**。 ## 🚀 功能亮点 * **多源数据监控**: * **CVE 监控**: 实时抓取 GitHub 上最新的 CVE 相关信息,快速发现和跟踪最新的漏洞动态。 * **GitHub 仓库监控**: 通过关键词搜索和预定义的监控列表,全面监控 GitHub 上与网络安全相关的开源项目。 * **智能AI分析**: * **OpenAI & Gemini 双引擎**: 集成 OpenAI 和 Gemini AI 模型,提供强大的自然语言处理能力,用于深入分析安全数据。 * **多维度安全评估**: 从**漏洞原理**、**利用方式**、**风险等级**、**影响范围**等多个维度对 CVE 和仓库进行评估,确保分析结果的深度和广度。 * **价值判断与筛选**: 通过 AI 智能判断安全信息的价值,**自动过滤**低价值信息,**聚焦**真正值得关注的安全威胁和技术。 * **自动化工作流**: * **全自动化监控**: 系统 **7x24 小时**不间断运行,无需人工值守,自动化完成安全信息收集、分析和报告生成。 * **每日安全简报**: **每日定时**生成安全资讯报告,汇总最新的 CVE 漏洞和 GitHub 安全仓库动态,并推送到博客平台。 * **动态黑名单**: 根据 AI 分析结果,**自动更新**黑名单,**降低**无效信息干扰,提升监控效率。 * **灵活的配置与管理**: * **多 GitHub Token 支持**: 支持配置 **多个 GitHub Token**,**智能轮换**使用,有效**避免 API 调用频率限制**。 * **可配置监控参数**: 关键词、监控仓库列表、黑名单等均可通过配置文件灵活调整,满足不同的监控需求。 * **详细日志记录**: 系统运行的**所有关键步骤**均有详细日志记录,方便问题排查和系统监控。 * **博客自动发布**: * **集成博客平台**: 集成博客平台 API,**自动发布**每日安全资讯报告,快速分享安全情报。 * **Markdown 报告**: 分析结果和安全简报均以 **Markdown 格式**生成,方便阅读和编辑。 ## 🛠️ 技术实现 ### 1. 监控模块 (Monitors) * **`cve_monitor.py`**: **CVE 监控器** * **GitHub API 交互**: 使用 GitHub API 搜索 CVE 相关的仓库,关键词 `CVE-202+`,并按 `updated` 时间排序。 * **CVE 信息提取**: 通过正则表达式从仓库名称和描述中提取 CVE 编号。 * **仓库信息抓取**: 获取仓库的描述、星数、更新时间、最近提交等信息。 * **黑名单过滤**: 支持**用户黑名单**和**仓库黑名单**,过滤无效信息源。 * **文件内容分析**: 克隆仓库到本地,**智能分析**仓库中的 **README.md** 和其他**高优先级文件**,计算文件**相关性得分**,初步筛选高价值仓库。 * **Token 智能管理**: 实现 GitHub Token 的**自动轮换**和**状态检查**,**动态切换**可用 Token,确保监控任务的连续性。 * **数据库存储**: 使用 **SQLite** 数据库 **`database/cve_record.db`** 存储 CVE 记录,包括 CVE 编号、描述、发布时间、最后修改时间、仓库 URL 等信息。 * **`github_monitor.py`**: **GitHub 仓库监控器** * **关键词搜索**: 根据配置文件 **`config.py`** 中定义的 `GITHUB_KEYWORDS` 列表,定期搜索 GitHub 仓库。 * **监控列表**: 支持配置文件 **`config.py`** 中 `WATCHED_REPOSITORIES` 列表,**重点监控**预定义的安全仓库。 * **仓库信息抓取**: 获取仓库的详细信息,包括描述、星数、最后更新时间、最近提交记录等。 * **提交记录分析**: 抓取仓库的**最近提交记录**,**智能分析**提交信息和文件变更,初步判断仓库的**安全相关性**。 * **黑名单过滤**: 支持**用户黑名单**和**仓库黑名单**,过滤无效信息源。 * **Token 智能管理**: 与 CVE 监控器共享 Token 管理机制。 * **数据库存储**: 使用 **SQLite** 数据库 **`database/github_repo.db`** 存储 GitHub 仓库记录,包括仓库名称、URL、描述、最后更新时间、星数、是否为高价值仓库等信息。 ### 2. AI 分析模块 (AI) * **`analyzer.py`**: **AI 分析器** * **OpenAI & Gemini API**: 集成 **OpenAI API** (主要) 和 **Gemini API** (备用),支持 **多模型** 切换,例如 `gpt-4o-mini-2024-07-18` (保底模型)。 * **Prompt 工程**: 针对 **不同分析场景** (CVE 分析、新仓库分析、仓库更新分析、特定监控仓库分析),设计了**不同的 Prompt 模板**,优化 AI 分析效果。 * **JSON 格式输出**: 要求 AI **严格按照 JSON 格式** 输出分析结果,方便程序解析和数据处理。 * **多维度安全分析**: AI 分析结果包含 **漏洞/仓库的简要描述**、**详细总结**、**风险等级**、**关键要点**、**技术细节**、**影响组件**、**价值评估**、**安全类型**、**更新类型**、**漏洞利用状态**等丰富信息。 * **结果验证与规范化**: 对 AI 返回的 JSON 结果进行**严格的格式校验**和**内容规范化**,确保数据的准确性和可用性。 * **动态黑名单更新**: 根据 AI 分析结果,**自动判断**仓库或用户是否应该加入黑名单,并**动态更新黑名单文件**。 * **分析结果持久化**: 将 AI 分析结果 **保存为 JSON 文件**,并 **更新数据库** 中的相应记录。 * **文章标题分类**: 支持对安全文章标题进行 **AI 分类**,用于生成安全资讯报告。 * **API 故障切换**: 当 OpenAI API 调用失败时,**自动切换**到 **备用 OpenAI API** 或 **Gemini API**,提高系统的**稳定性和可用性**。 ### 3. 数据处理与管理 (Utils) * **`logger.py`**: **日志记录器** * 使用 `logging` 模块,提供**完善的日志记录**功能,覆盖**DEBUG**、**INFO**、**WARNING**、**ERROR** 等多个级别。 * 日志信息**详细**且**结构化**,方便问题排查和系统监控。 * 日志输出到文件 **`logs/security_monitor.log`**,并按日期滚动。 * **`csv_writer.py`**: **CSV 结果写入器** (目前未使用,可扩展) * 提供将分析结果 **导出为 CSV 文件** 的功能,方便数据分析和共享。 * **`article_fetcher.py`**: **文章抓取器** * **多来源抓取**: 目前支持抓取 **BruceFeIix** 和 **洞见 (doonsec)** 微信公众号的安全文章。 * **文章标题和 URL 提取**: 使用正则表达式从网页内容中提取文章标题和 URL。 * **重试机制**: 使用 **退避策略** 的重试机制,提高文章抓取的**稳定性和成功率**。 * **文章标题清理**: **标准化**和**清理**文章标题,移除多余的标记和格式。 * **`article_manager.py`**: **文章管理器** * **文章去重**: **自动过滤**已处理过的文章 URL,避免重复分析和推送。 * **AI 分类结果处理**: 处理 AI 文章标题分类结果,**按类别整理**文章列表。 * **每日安全资讯报告生成**: **定时**生成 **Markdown 格式** 的每日安全资讯报告,汇总最新的安全文章和 AI 分析结果。 * **博客自动发布**: 调用 `blog_manager.py` 模块,将每日安全资讯报告 **自动发布到博客平台**。 * **文章数据持久化**: 将已处理的 URL 和分类文章 **保存为 JSON 文件**,方便后续使用和管理。 * **`blog_manager.py`**: **博客管理器** * **博客平台 API 交互**: 封装了与博客平台 API 交互的 **常用功能**,例如 **创建文章**、**更新文章**。 * **文章 ID 映射管理**: **记录**每日安全资讯报告在博客平台上的 **文章 ID**,方便后续更新和管理。 * **博客自动发布**: 实现将每日安全资讯报告 **自动发布到博客平台** 的功能。 ### 4. 数据库 (Database) * **`database/models.py`**: **数据库模型定义** * 使用 **SQLAlchemy** 定义了 **`CVERecord`** (CVE 记录) 和 **`Repository`** (GitHub 仓库记录) 两个数据模型,方便数据存储和查询。 * 数据库使用 **SQLite**,文件路径为 **`database/cve_record.db`** 和 **`database/github_repo.db`**。 ### 5. 配置文件 (Config) * **`config.py`**: **系统配置文件** * 集中管理系统的**各项配置参数**,例如数据库路径、API 密钥、监控间隔、关键词列表、黑名单等。 * 方便用户**自定义**和**调整**系统行为。 * 包括以下主要配置项: * `DATABASE_PATH`: 数据库文件路径 * `MONITOR_INTERVAL`: 监控循环间隔 (秒) * `GITHUB_TOKEN`: GitHub API Token (支持列表 `GITHUB_TOKENS`) * `GITHUB_KEYWORDS`: GitHub 仓库搜索关键词列表 * `WATCHED_REPOSITORIES`: 重点监控的 GitHub 仓库列表 * `BLACKLIST_USERS`: 用户黑名单 * `BLACKLIST_REPOSITORIES`: 仓库黑名单 * `PRIMARY_AI_CONFIG`: 主要 AI 服务 (OpenAI) 配置 * `BACKUP_AI_CONFIGS`: 备用 AI 服务 (OpenAI) 配置列表 * `GEMINI_AI_CONFIG`: Gemini AI 服务配置 * `BLOG_TOKEN`: 博客平台 API Token ### 6. 主程序 (Main) * **`main.py`**: **系统主程序** * **初始化**各个模块 (监控器、AI 分析器、文章管理器等)。 * **启动**监控循环,**定时**执行 CVE 监控、GitHub 仓库监控、AI 分析、文章抓取和博客发布等任务。 * 使用 **多线程** 实现 **并发监控** 和 **AI 分析**,提高系统效率。 * **异常处理**和**重试机制**,确保系统稳定运行。 * **状态监控线程**: **定时检查**系统运行状态,记录日志。 * **每日博客发布**: **定时**将每日安全资讯报告 **自动发布到博客平台**。 * **命令行启动**: 用户可通过命令行启动和停止监控系统。 ## ⚙️ 运行环境 * Python 3.8+ * 依赖库 (见 `requirements.txt`) ## 📦 安装步骤 1. **克隆代码库** ```bash git clone [项目仓库地址] cd [项目目录] ``` 2. **安装依赖库** ```bash pip install -r requirements.txt ``` 3. **配置 `config.py` 文件** * 配置 GitHub API Token (`GITHUB_TOKEN` 或 `GITHUB_TOKENS`) * 配置 OpenAI API 密钥和 Base URL (`PRIMARY_AI_CONFIG`, `BACKUP_AI_CONFIGS`) * 配置 Gemini API 密钥和 Base URL (`GEMINI_AI_CONFIG`) * 配置博客平台 API Token (`BLOG_TOKEN`) (如果需要自动发布博客) * 根据需要修改其他配置项,例如监控间隔、关键词列表、黑名单等。 4. **运行系统** ```bash python main.py ``` ## 📝 后续计划 * **更多数据源支持**: 扩展支持更多安全信息来源,例如安全社区、漏洞平台等。 * **更精细化的 AI 分析**: 持续优化 Prompt 工程,提升 AI 分析的准确性和深度。 * **更丰富的功能**: 例如漏洞预警、威胁情报可视化、自定义报告等。 * **Web UI 管理界面**: 开发 Web UI 管理界面,方便用户配置和管理监控系统。 ## 🤝 贡献 欢迎参与项目贡献!如果您有任何建议或 Bug 报告,请提交 Issue 或 Pull Request。 ## 📜 许可证 本项目采用 MIT 许可证,详情请见 [LICENSE](LICENSE) 文件。 --- **感谢您的关注!** ⭐ **Star** 本项目以支持我们的工作!