ppradyoth/ai-security-tracker
GitHub: ppradyoth/ai-security-tracker
一个利用GitHub API和TinyLlama对50多个主流AI/ML开源仓库进行安全漏洞与CVE动态追踪并生成可视化仪表盘的监控工具。
Stars: 0 | Forks: 0
# AI 安全追踪器
全面覆盖 AI/ML 生态系统的安全监控。追踪 50 多个仓库的安全问题、漏洞和倡议。
**仪表盘:** [https://ppradyoth.github.io/ai-security-tracker](https://ppradyoth.github.io/ai-security-tracker)
## ⚠️ **重要:搜索局限性**
**此追踪器目前仅搜索带有特定标签和关键词的问题:**
- 标签:`security`、`vulnerability`、`cve`
- 关键词:`security`、`vulnerability`、`cve`、`credential`、`secret` 等
**许多仓库并未明确标记安全工作**,因此对于那些确实有正在进行的安全工作的仓库,此追踪器可能会显示 0 个问题。例如:
- **TensorFlow**:存在安全工作,但使用了 `area:security`、`type:enhancement` 等不同的标签
- **PyTorch**:进行了安全讨论,但未标记为 "security" 标签
- **大多数 ML 框架**:侧重于错误报告和功能,而不是明确的 "security" 标签
**结果:当前数据可能不完整。** 显示 0 个问题的仓库可能实际上有我们未捕获到的重大安全活动。
**为了扩大覆盖范围,我们需要:**
1. 扩展关键词搜索(添加:`fix`、`patch`、`update`、`auth`、`injection` 等)
2. 直接查询 CVE 数据库 (NVD) 以获取权威的漏洞数据
3. 分析提交消息以查找与安全相关的更改
4. 针对每种仓库类型使用特定类别的搜索策略
有关如何自定义安全信号以获得更好覆盖范围的信息,请参阅 [SETUP.md](SETUP.md)。
## 概述
AI 安全追踪器提供了跨以下领域的生态系统级安全实践可见性:
- **7+ AI CLI 工具** — Claude Code、OpenAI Codex、Gemini、GitHub Copilot 等。
- **6+ ML 框架** — TensorFlow、PyTorch、JAX、Hugging Face、LLaMA 等。
- **4+ Agent 框架** — LangChain、AutoGen、CrewAI、LlamaIndex
- **5+ 安全工具** — Bandit、Safety、Snyk、GitGuardian、TruffleHog
- **2+ 安全参考** — OWASP、Awesome Security
**追踪 22 个仓库的安全信号**(请参阅上述局限性):
- GitHub 安全标签(仅限于特定术语)
- 与安全相关的关键词
- Issue/PR 活动
- 参与度指标
## 功能
✨ **实时监控**
- 每日从 50 多个仓库收集安全数据
- GitHub API 集成(无需外部服务)
- 每日 08:00 UTC 自动运行工作流
📊 **综合仪表盘**
- 概述:总问题数、趋势、参与度指标
- 按仓库划分:每个仓库的问题计数和近期活动
- 热门问题:最活跃的安全讨论
- 标签分布:热门安全话题
🎨 **极简设计**
- 受 Apple/Google 启发的设计美学
- 支持深色模式的浅色主题
- 响应式设计(桌面端、平板端、移动端)
- 快速的客户端渲染(无后端)
📈 **历史数据**
- 180 天的时间窗口
- 存储在 Git 中的每日快照
- 便捷的趋势分析
- 完整的审计追踪
## 快速开始
### 查看仪表盘
在浏览器中打开 [https://ppradyoth.github.io/ai-security-tracker](https://ppradyoth.github.io/ai-security-tracker)。
### 本地运行
```
# Clone repo
git clone https://github.com/ppradyoth/ai-security-tracker.git
cd ai-security-tracker
# 安装 dependencies
pip install requests
# 收集安全数据
export GITHUB_TOKEN=your_token_here
python scripts/fetch_security_data.py > /tmp/security.json
# 生成 dashboard 数据
python scripts/generate_dashboard_data.py /tmp/security.json > docs/data.json
# 在本地运行
python -m http.server 8000
# 访问 http://localhost:8000/docs/
```
## 架构
### 数据收集 (`scripts/fetch_security_data.py`)
1. 从 `manifest.json` 读取仓库清单
2. 查询 GitHub API 以获取与安全相关的 issue/PR
3. 提取安全信号:
- 标签:"security"、"vulnerability"、"cve"
- 关键词:"credential"、"exploit"、"injection" 等
4. 输出包含 180 天历史的结构化 JSON
### 仪表盘生成 (`scripts/generate_dashboard_data.py`)
1. 获取原始安全数据
2. 按仓库、问题类型、参与度进行汇总
3. 计算指标和趋势
4. 为前端生成优化的 JSON
### 前端 (`docs/`)
- **index.html** — 语义化 HTML 结构
- **style.css** — 极简的 Apple/Google 风格
- **script.js** — 客户端数据加载和渲染
- **data.json** — 生成的仪表盘数据(每日提交)
### 自动化 (`.github/workflows/`)
- **fetch-security-data.yml** — 每日 08:00 UTC 进行数据收集
- 运行指标收集
- 提交每日快照
- 生成并部署仪表盘
## 配置
### 添加仓库
编辑 `manifest.json` 以添加要追踪的仓库:
```
"ai_cli_tools": [
{
"name": "Your Tool Name",
"owner": "github-owner",
"repo": "repo-name",
"focus": "Brief description of security focus"
}
]
```
### 自定义安全信号
在 `manifest.json` 中编辑安全关键词和模式:
```
"security_labels": ["security", "vulnerability", ...],
"vulnerability_keywords": ["vulnerability", "exploit", ...],
"credential_keywords": ["credential", "secret", ...]
```
## 数据结构
### 原始安全数据 (`data/YYYY-MM-DD.json`)
```
{
"generated_at": "2026-05-25T08:00:00Z",
"total_repos_tracked": 50,
"total_security_issues": 1234,
"issues": [
{
"repo": "Repository Name",
"number": 12345,
"title": "Issue Title",
"url": "https://...",
"type": "Issue|PR",
"state": "open|closed",
"created_at": "2026-05-20T...",
"updated_at": "2026-05-25T...",
"labels": ["security", "cve"],
"comments": 5,
"reactions": 2,
"signals": {
"has_security_label": true,
"security_keywords_found": ["vulnerability"],
"credential_keywords_found": []
}
}
]
}
```
### 仪表盘数据 (`docs/data.json`)
```
{
"generated_at": "...",
"summary": {
"total_repos_tracked": 50,
"total_security_issues": 1234,
"issues_by_state": { "open": 800, "closed": 434 },
"issues_by_type": { "Issue": 900, "PR": 334 }
},
"top_repos": [...],
"top_issues_by_engagement": [...],
"labels_distribution": [...]
}
```
## 开发
### 第一阶段:MVP ✅
- [x] 包含 50 多个精选仓库的清单
- [x] GitHub API 安全数据收集
- [x] 具有 4 个主视图的仪表盘
- [x] 日常自动化工作流
- [x] GitHub Pages 部署
### 第二阶段:扩展(已规划)
- [ ] 趋势分析(速度、响应时间)
- [ ] CVE 数据集成(NVD API)
- [ ] 每周和每月报告
- [ ] 工具对比功能
- [ ] 自动发现新仓库
### 第三阶段:高级功能(未来)
- [ ] 带图表的可视化(Chart.js、D3)
- [ ] 机器学习异常检测
- [ ] 社区功能(注释、讨论)
- [ ] 电子邮件/Slack 警报
- [ ] 指标导出 API
## 故障排除
**仪表盘不显示数据?**
1. 检查 `docs/data.json` 是否存在且不为空
2. 在本地运行 `python scripts/fetch_security_data.py`
3. 验证 GitHub token 是否具有适当的权限
**工作流失败并提示权限错误?**
1. 确保工作流具有 `permissions: { contents: write }`
2. 检查仓库设置中是否启用了 GitHub Actions
3. 验证 secrets 中的 token
**仓库未显示结果?**
1. 检查 `manifest.json` 中的仓库名称是否正确
2. 验证仓库是否存在并具有公开的 issue
3. 检查 GitHub API 速率限制:`gh api rate_limit`
## 资源
- **安装指南:** 参阅 [SETUP.md](SETUP.md)
- **GitHub API 文档:** https://docs.github.com/en/rest
- **灵感来源:** [Big Model Radar](https://github.com/gsscsd/big_model_radar)
## 许可证
MIT 许可证 — 参阅 LICENSE 文件
## 有疑问?
提出 issue 或访问 [GitHub 仓库](https://github.com/ppradyoth/ai-security-tracker)。
标签:AI安全, Chat Copilot, TinyLlama, 多模态安全, 数据可视化, 漏洞追踪, 监控仪表盘, 自动化监控, 逆向工具