Unoong/CVE_BOT
GitHub: Unoong/CVE_BOT
一个自动化收集 GitHub CVE POC 并利用 Gemini AI 进行漏洞分析、攻击步骤提取和 Snort 规则生成的安全情报系统。
Stars: 0 | Forks: 0
# CVE Bot - GitHub CVE 信息收集与 AI 分析系统
这是一个从 GitHub 自动收集 CVE (Common Vulnerabilities and Exposures) 信息,并使用 Gemini AI 分析 POC 的集成系统。
## 主要功能
### 📥 CVE 收集 (`main.py`)
- **GitHub API 搜索**: 使用 GitHub API 搜索与 CVE 相关的 Python 仓库(按最新排序)
- **自动数据收集**: 自动收集创建日期、作者、CVE 代码、README 等信息
- **CVE API 收集**: 自动收集 CVE 详细信息(CVSS, CWE 等)
- **数据库存储**: 实时存储到 MySQL 数据库
- **防止重复**: 相同链接及 CVE 最多保存 5 条
- **ZIP 下载**: 以 ZIP 格式下载 GitHub 仓库并解压
- **翻译功能**: 使用 Google Translate(免费)将 README 和 CVE 说明翻译成中文
- **Rate Limit 处理**: 自动检测并等待 GitHub API Rate Limit
- **日志记录**: 生成详细的日志文件
### 🤖 AI 分析 (`run_ai_analysis.py`)
- **自动 POC 分析**: Gemini AI 自动分析 POC 代码
- **攻击步骤提取**: 从 POC 中提取各攻击阶段的数据包
- **MITRE 映射**: 映射到 MITRE ATT&CK 框架
- **Snort 规则生成**: 为每个攻击阶段自动生成检测规则
- **每 10 分钟自动运行**: 自动分析新的 CVE
## 安装说明
1. 克隆或下载项目
```
cd E:\LLama\pythonProject\CVE_BOT
```
2. 安装所需依赖包
```
pip install -r requirements.txt
```
3. MySQL 数据库设置
- 端口: 7002
- 数据库: TOTORO
- 用户: root
- 密码: !db8354
## 配置文件 (config.json)
```
{
"github": {
"token": "YOUR_GITHUB_TOKEN",
"search_query": "CVE-{year} language:python",
"max_pages": 100
},
"database": {
"host": "localhost",
"port": 7002,
"user": "root",
"password": "!db8354",
"database": "TOTORO"
},
"collection": {
"last_collection_time": "",
"max_cve_per_item": 5,
"rate_limit_wait_minutes": 10
}
}
```
### 配置项说明
- **github.token**: GitHub Personal Access Token
- **github.max_pages**: 最大搜索页数(默认:100)
- **collection.last_collection_time**: 最后收集时间(自动更新)
- **collection.max_cve_per_item**: 每个 CVE 最大保存数量(默认:5)
- **collection.rate_limit_wait_minutes**: Rate Limit 时的等待时间(默认:10 分钟)
## 使用方法
### 1. 运行 CVE 收集
```
cd E:\LLama\pythonProject\CVE_BOT
python main.py
```
### 2. 运行 AI 分析(在另一个终端)
```
cd E:\LLama\pythonProject\CVE_BOT
python run_ai_analysis.py
```
### 推荐并行运行
- **终端 1**: `main.py` (CVE 收集)
- **终端 2**: `run_ai_analysis.py` (AI 分析)
同时运行收集和分析效率更高!
## 项目结构
```
CVE_BOT/
├── main.py # 메인 실행 파일
├── config.json # 설정 파일
├── logger.py # 로깅 모듈
├── db_manager.py # 데이터베이스 관리 모듈
├── github_collector.py # GitHub API 수집 모듈
├── translator.py # Papago 번역 모듈
├── file_manager.py # 파일 관리 모듈
├── requirements.txt # 패키지 의존성
├── CVE/ # CVE 저장소 다운로드 폴더
│ └── CVE-YYYY-NNNNN/ # CVE별 폴더
│ ├── 1/ # 첫 번째 저장소
│ ├── 2/ # 두 번째 저장소
│ └── ...
└── logs/ # 로그 파일 폴더
└── cve_bot_YYYYMMDD.log
```
## 数据库结构
```
CREATE TABLE IF NOT EXISTS Github_CVE_Info (
id INT AUTO_INCREMENT PRIMARY KEY,
date TEXT, -- 저장소 작성일
collect_time TEXT, -- 수집 시간
link TEXT, -- GitHub 링크
title TEXT, -- 저장소 제목
writer TEXT, -- 작성자
cve TEXT, -- CVE 코드
readme TEXT, -- README 원문
download_path TEXT, -- 다운로드 경로
status TEXT, -- 상태 (기본: N)
trans_msg TEXT, -- 번역된 메시지
AI_chk TEXT -- AI 체크 여부 (기본: N)
)
```
## 收集项目
1. **date**: 仓库创建日期
2. **collect_time**: 数据收集时间
3. **writer**: 仓库作者
4. **cve**: CVE 代码
5. **title**: GitHub 仓库标题
6. **link**: GitHub 仓库链接
7. **readme**: README 文件内容
8. **download_path**: ZIP 文件下载路径
9. **status**: 处理状态(默认:N)
10. **trans_msg**: 翻译后的 README
11. **AI_chk**: AI 检查状态(默认:N)
## 核心逻辑
1. **CVE 数量限制**: 查询数据库中具有相同 CVE 代码的记录,仅在少于 5 条时保存
2. **CVE 代码提取**: 使用正则表达式从仓库标题、描述、README 中提取 CVE-YYYY-NNNNN 模式
3. **按最新排序**: 根据 GitHub API 的 updated 标准按最新排序
4. **防止重复**: 仅收集最后收集时间之后更新的仓库
5. **ZIP 下载**: 按照 CVE 文件夹结构下载仓库并解压
## 注意事项
- **GitHub API Rate Limit**: 每小时 5,000 次请求(基于已认证请求)
- **Rate Limit 处理**: 达到限制时自动等待 10 分钟后重试
- **CVE 保存限制**: 根据数据库查询,相同 CVE 最多保存 5 条
- **Papago 翻译**: 如果未设置 API 密钥,则保存原始文本
- **搜索查询**: 使用 `CVE-{当前年份} language:python` 进行搜索
## Papago 翻译设置(可选)
如果要使用 Papago API,请修改 `translator.py` 并在 config.json 中添加 API 密钥:
```
"papago": {
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}
```
## 日志文件
- 位置: `logs/cve_bot_YYYYMMDD.log`
- 格式: 按日期生成日志文件
- 级别: DEBUG, INFO, WARNING, ERROR, CRITICAL
## 许可证
本项目仅供教育和研究目的制作。
## 故障排除
### 数据库连接错误
- 检查 MySQL 服务器是否正在运行
- 确认端口 7002 是否正确
- 确认数据库 TOTORO 是否已创建
### GitHub API 速率限制
- 确认 GitHub Token 是否有效
- 检查 Rate Limit 状态: https://api.github.com/rate_limit
### ZIP 下载失败
- 检查网络连接
- 确认仓库是否为 public
- 检查磁盘空间
标签:AI安全, Chat Copilot, CISA项目, Cloudflare, CVSS, Gemini, GitHub爬虫, MITRE ATT&CK, PB级数据处理, POC分析, Python, Snort规则, XSS, 安全运维, 密码管理, 无后门, 漏洞情报, 网络安全, 自动化分析, 自定义脚本, 跨站脚本, 逆向工具, 配置审计, 隐私保护