CyberSentinel-AI/README_ZH.md
2025-02-17 18:22:37 +08:00

12 KiB
Raw Permalink Blame History

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.pyWATCHED_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 APIGemini API,提高系统的稳定性和可用性

3. 数据处理与管理 (Utils)

  • logger.py: 日志记录器

    • 使用 logging 模块,提供完善的日志记录功能,覆盖DEBUGINFOWARNINGERROR 等多个级别。
    • 日志信息详细结构化,方便问题排查和系统监控。
    • 日志输出到文件 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.dbdatabase/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. 克隆代码库

    git clone [项目仓库地址]
    cd [项目目录]
    
  2. 安装依赖库

    pip install -r requirements.txt
    
  3. 配置 config.py 文件

    • 配置 GitHub API Token (GITHUB_TOKENGITHUB_TOKENS)
    • 配置 OpenAI API 密钥和 Base URL (PRIMARY_AI_CONFIG, BACKUP_AI_CONFIGS)
    • 配置 Gemini API 密钥和 Base URL (GEMINI_AI_CONFIG)
    • 配置博客平台 API Token (BLOG_TOKEN) (如果需要自动发布博客)
    • 根据需要修改其他配置项,例如监控间隔、关键词列表、黑名单等。
  4. 运行系统

    python main.py
    

📝 后续计划

  • 更多数据源支持: 扩展支持更多安全信息来源,例如安全社区、漏洞平台等。
  • 更精细化的 AI 分析: 持续优化 Prompt 工程,提升 AI 分析的准确性和深度。
  • 更丰富的功能: 例如漏洞预警、威胁情报可视化、自定义报告等。
  • Web UI 管理界面: 开发 Web UI 管理界面,方便用户配置和管理监控系统。

🤝 贡献

欢迎参与项目贡献!如果您有任何建议或 Bug 报告,请提交 Issue 或 Pull Request。

📜 许可证

本项目采用 MIT 许可证,详情请见 LICENSE 文件。


感谢您的关注! Star 本项目以支持我们的工作!