mirror of
https://github.com/Hxnxe/CyberSentinel-AI.git
synced 2025-11-04 17:13:53 +00:00
178 lines
12 KiB
Markdown
178 lines
12 KiB
Markdown
# CyberSentinel AI 🔥 自动化安全监控与AI分析系统
|
||
|
||
[](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** 本项目以支持我们的工作!
|