mirror of
https://github.com/Hxnxe/CyberSentinel-AI.git
synced 2025-11-04 17:13:53 +00:00
12 KiB
12 KiB
CyberSentinel AI 🔥 自动化安全监控与AI分析系统
本项目是一个自动化安全监控与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 API 交互: 使用 GitHub API 搜索 CVE 相关的仓库,关键词
-
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,提高系统的稳定性和可用性。
- OpenAI & Gemini 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。
- 使用 SQLAlchemy 定义了
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)
📦 安装步骤
-
克隆代码库
git clone [项目仓库地址] cd [项目目录] -
安装依赖库
pip install -r requirements.txt -
配置
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) (如果需要自动发布博客) - 根据需要修改其他配置项,例如监控间隔、关键词列表、黑名单等。
- 配置 GitHub API Token (
-
运行系统
python main.py
📝 后续计划
- 更多数据源支持: 扩展支持更多安全信息来源,例如安全社区、漏洞平台等。
- 更精细化的 AI 分析: 持续优化 Prompt 工程,提升 AI 分析的准确性和深度。
- 更丰富的功能: 例如漏洞预警、威胁情报可视化、自定义报告等。
- Web UI 管理界面: 开发 Web UI 管理界面,方便用户配置和管理监控系统。
🤝 贡献
欢迎参与项目贡献!如果您有任何建议或 Bug 报告,请提交 Issue 或 Pull Request。
📜 许可证
本项目采用 MIT 许可证,详情请见 LICENSE 文件。
感谢您的关注! ⭐ Star 本项目以支持我们的工作!