arschlochnop/VulnWatchdog

GitHub: arschlochnop/VulnWatchdog

VulnWatchdog 是一个自动化的 CVE 漏洞监控与分析工具,通过 GitHub 仓库监控、GPT 智能分析和实时通知,帮助安全团队高效获取和研判新披露的漏洞情报。

Stars: 89 | Forks: 19

# VulnWatchdog VulnWatchdog 是一个自动化的 CVE 漏洞监控和分析工具,通过监控 GitHub 上的 CVE 相关仓库,获取漏洞信息和 POC 代码,并使用 GPT 进行智能分析,生成结构化的分析报告。 ## ✨ 主要特性 - 🔍 **自动监控** - 每小时监控 GitHub CVE 相关仓库更新 - 📊 **漏洞解析** - 自动获取并解析 CVE 漏洞详细信息 - 🤖 **智能分析** - 使用 GPT 分析漏洞信息和 POC 代码 - 📝 **报告生成** - 生成结构化的 Markdown 分析报告 - 🔔 **实时通知** - 支持飞书等 Webhook 实时通知 - 🎯 **风险评估** - 自动评估漏洞风险等级和投毒风险 - 🔄 **多引擎搜索** - 支持多个 SearXNG 实例并发搜索,自动故障转移 ## 📦 快速开始 ### 方式一:GitHub Actions 部署(推荐) #### 1. Fork 本仓库到你的 GitHub 账号 #### 2. 配置 Secrets 在仓库 Settings → Secrets and variables → Actions 中添加以下配置: | Secret 名称 | 说明 | 是否必需 | |------------|------|---------| | `WEBHOOK_URL` | 飞书机器人 Webhook 地址 | 启用通知时必需 | | `GPT_SERVER_URL` | GPT API 服务地址 | 启用 GPT 分析时必需 | | `GPT_API_KEY` | GPT API 密钥 | 启用 GPT 分析时必需 | | `GPT_MODEL` | GPT 模型名称(默认:gemini-2.0-flash) | 可选 | | `GH_TOKEN` | GitHub Personal Access Token | 可选,推荐配置 | #### 3. GitHub Token 配置(重要) GitHub API 调用频率限制对比: | 配置方式 | API 限制 | 推荐度 | 说明 | |---------|---------|--------|------| | 未配置 | 60次/小时 | ❌ | 容易触发限制 | | GITHUB_TOKEN | 1000次/小时 | ✅ | Actions 自动提供 | | GH_TOKEN | 5000次/小时 | ⭐ | 推荐配置 | **配置 GH_TOKEN 步骤:** 1. 访问 [GitHub Settings → Tokens](https://github.com/settings/tokens) 2. 点击 "Generate new token (classic)" 3. 选择权限:`public_repo`(读取公共仓库) 4. 复制生成的 token,添加到仓库 Secrets 中 #### 4. 配置功能开关 编辑 `config.py` 文件中的功能开关: ENABLE_NOTIFY = True # 是否启用通知功能 NOTIFY_TYPE = 'feishu' # 通知类型(飞书) ENABLE_GPT = True # 是否启用 GPT 分析 GPT_MODEL = 'gemini-2.0-flash' # GPT 模型名称 ENABLE_SEARCH = True # 是否启用漏洞信息搜索 ENABLE_EXTENDED = True # 是否启用扩展搜索 #### 5. 启动自动监控 - 工作流会自动每小时执行一次 - 也可以在 Actions 页面手动触发 - 修改执行频率:编辑 `.github/workflows/monitor.yml` 中的 cron 表达式 on: schedule: - cron: '0 * * * *' # 每小时执行 ### 方式二:本地部署 #### 1. 克隆仓库 git clone https://github.com/arschlochnop/VulnWatchdog.git cd VulnWatchdog #### 2. 安装依赖 pip install -r requirements.txt #### 3. 配置环境变量 cp .env.example .env # 编辑 .env 文件,配置必要的参数 主要配置项: # 通知配置 WEBHOOK_URL=https://open.feishu.cn/open-apis/bot/v2/hook/xxx # GPT 配置 GPT_SERVER_URL=https://api.openai.com/v1/chat/completions GPT_API_KEY=your-api-key GPT_MODEL=gemini-2.0-flash # 搜索引擎配置(多引擎用逗号分隔) SEARXNG_URLS=http://engine1/search,http://engine2/search # GitHub Token(推荐配置,5000次/小时) GH_TOKEN=ghp_your_github_token #### 4. 配置功能开关 编辑 `config.py` 文件,根据需要开启功能。 #### 5. 运行程序 python main.py ## 📊 输出说明 ### 分析报告结构 报告以 Markdown 格式生成,包含以下关键信息: | 字段 | 说明 | 示例 | |------|------|------| | name | 漏洞名称 | CVE-2024-1234-应用名-漏洞类型 | | type | 漏洞类型 | 命令注入、SQL注入、XSS等 | | app | 受影响应用 | WordPress、Apache等 | | risk | 风险等级与影响 | 高危,可能导致远程代码执行 | | version | 受影响版本 | <= 1.2.3 | | condition | 利用条件 | 需要认证/无需认证 | | poc_available | POC 可用性 | 是/否 | | poison | 投毒风险评估 | 90% | | markdown | 详细分析内容 | Markdown 格式的完整分析 | ### 报告存储 - **路径**: `data/markdown/{cve_id}-{repo_name}.md` - **索引**: 自动生成按日期组织的索引文件 - **更新**: 每次运行自动更新和提交 ### 通知推送 支持通过 Webhook 实时推送分析结果,详见 [NOTIFY.md](NOTIFY.md) ## 📁 项目结构 VulnWatchdog/ ├── main.py # 主程序入口 ├── config.py # 配置管理 ├── requirements.txt # 依赖列表 │ ├── libs/ # 核心库 │ ├── utils.py # 工具函数 │ ├── webhook.py # Webhook 通知 │ ├── search_engines.py # 多引擎搜索管理 │ └── default_search_engines.json # 默认搜索引擎配置 │ ├── models/ # 数据模型 │ └── models.py # CVE、仓库数据模型 │ ├── tools/ # 工具脚本 │ └── generate_indexes.py # 生成索引和 README │ ├── data/ # 数据存储 │ └── markdown/ # CVE 分析报告 │ ├── 2024-11/ # 按月份组织 │ └── 2024-12/ │ ├── template/ # 模板文件 │ ├── feishu.json # 飞书通知模板 │ ├── custom.json # 自定义通知模板 │ └── report.md # 分析报告模板 │ └── .github/workflows/ # GitHub Actions ├── monitor.yml # 自动监控工作流 └── reorganize.yml # 目录整理工作流 ## 🔧 配置说明 ### 功能开关(config.py) | 配置项 | 默认值 | 说明 | |--------|--------|------| | `ENABLE_NOTIFY` | True | 是否启用通知功能 | | `NOTIFY_TYPE` | 'feishu' | 通知类型(目前支持飞书) | | `ENABLE_GPT` | True | 是否启用 GPT 分析 | | `GPT_MODEL` | 'gemini-2.0-flash' | GPT 模型名称 | | `ENABLE_SEARCH` | True | 是否启用漏洞信息搜索 | | `ENABLE_EXTENDED` | True | 是否启用扩展搜索 | | `ENABLE_UPDATE_CHECK` | True | 是否启用仓库更新检测 | ### 环境变量(.env) 完整配置说明请参考 `.env.example` 文件。 ## 🛠️ 开发计划 - [x] 优化配置管理 - [x] 投毒风险评估 - [x] 多引擎搜索支持 - [x] GitHub Token 三级优先级 - [ ] 补充单元测试 - [ ] 支持更多通知渠道 ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! **PR 提交前请确保:** 1. 代码风格符合项目规范 2. 添加必要的测试用例 3. 更新相关文档 ## 📄 许可证 MIT License ## 🙏 致谢 - [Poc-Monitor](https://github.com/sari3l/Poc-Monitor) - 提供项目思路 - [SearXNG](https://github.com/searxng/searxng) - 提供搜索引擎支持 如有问题,欢迎提交 [Issue](https://github.com/arschlochnop/VulnWatchdog/issues)
标签:CISA项目, DevSecOps, GitHub监控, GPT人工智能, Markdown, meg, POC验证, Python安全开发, RAG, SearXNG, 上游代理, 信息安全, 域名收集, 威胁情报, 安全报告生成, 实时处理, 密码管理, 开发者工具, 智能安全, 消息认证码, 漏洞分析, 漏洞预警, 网络安全, 自动化安全工具, 路径探测, 逆向工具, 防御加固, 隐私保护, 飞书通知