icarogoggin/vaultscan
GitHub: icarogoggin/vaultscan
VaultScan 是一个针对 GitHub 仓库的自动化安全审计工具,识别泄露密钥、已知 CVE 与错误配置并输出综合评分。
Stars: 0 | Forks: 0
## VaultScan 是什么?
O VaultScan varre **todos os repositórios públicos** de qualquer usuário do GitHub e entrega um relatório de segurança completo, dividido em três categorias:
| Categoria | O que é verificado |
|-----------|-------------------|
| 🔑 **Segredos vazados** | 40+ padrões: chaves AWS, tokens GitHub, Stripe, Slack, GCP, Azure, SendGrid, Twilio, Firebase, Discord e muito mais |
| 📦 **CVEs conhecidos** | Dependências cruzadas com o banco [OSV](https://osv.dev) — npm, PyPI, Go, RubyGems, crates.io e Packagist |
| ⚙️ **Más configurações** | Injeção em GitHub Actions, `permissions: write-all`, containers rodando como root, senhas fracas no docker-compose, `DEBUG=True` em produção |
Cada repositório recebe uma **pontuação de segurança de 0 a 100**, e o perfil inteiro ganha uma nota geral ponderada.
## ✨ 功能
- **Progresso em tempo real** — acompanhe arquivo por arquivo enquanto o scan acontece
- **Varredura paralela** — até 6 repositórios processados simultaneamente
- **Múltiplos ecossistemas** — detecção de CVEs em npm, PyPI, Go, Ruby, Rust e PHP
- **Integração com TruffleHog** — quando instalado, eleva a precisão da detecção de segredos com verificação ativa
- **Zero APIs pagas** — usa a API pública do GitHub e o banco OSV (gratuito e open-source)
- **Aceita URLs completas** — cole `https://github.com/usuario` diretamente no campo de busca
## 🏗 工作原理
```
Navegador (React)
│
│ POST /api/scan/:usuario
▼
Backend NestJS ──► Fila Bull (Redis)
│
┌─────────┼──────────┐ (até 6 repos em paralelo)
▼ ▼ ▼
secrets_scan deps_scan misconfig_scan
(Python) (Python) (Python)
│ │ │
└─────────┴──────────┘
│
score.py
(pontuação 0–100)
│
Navegador ◄─── GET /api/scan/result/:jobId (polling a cada 800ms)
```
### Workers em Python
Cada worker roda como subprocesso isolado e se comunica via `stdout`/`stderr`:
- `secrets_scan.py` — aplica 40+ expressões regulares sobre o conteúdo dos arquivos; usa TruffleHog automaticamente se disponível no `PATH`
- `deps_scan.py` — faz parse dos manifestos de dependência e consulta a [OSV Batch API](https://google.github.io/osv.dev/api/) para CVEs
- `misconfig_scan.py` — analisa workflows do GitHub Actions, Dockerfiles, docker-compose e arquivos de configuração
- `score.py` — recebe todos os findings via stdin e calcula a nota final
## 🚀 安装
### 先决条件
| Ferramenta | Versão mínima |
|------------|--------------|
| Node.js | 18+ |
| Python | 3.9+ |
| Redis | 6+ (ou Docker) |
### 逐步说明
```
# 1. 克隆仓库
git clone https://github.com/icarogoggin/vaultscan
cd vaultscan
# 2. 启动 Redis
docker compose up -d redis
# 3. 配置环境变量
cp .env.example backend/.env
# 编辑 backend/.env 并添加您的 GITHUB_TOKEN
# 4. 安装并启动后端
cd backend
npm install
npm run start:dev
# 5. 在另一个终端中启动前端
cd frontend
npm install
npm run dev
```
Abra **http://localhost:5173**, cole qualquer URL de perfil GitHub e clique em **Scan**.
### GitHub Token(推荐)
Sem token, a API do GitHub limita a **60 requisições por hora** — o que pode não ser suficiente para perfis grandes.
1. Acesse [github.com/settings/tokens](https://github.com/settings/tokens)
2. Clique em **Generate new token (classic)**
3. Deixe **todos os escopos desmarcados** — o VaultScan só precisa de leitura de dados públicos
4. Adicione o token em `backend/.env`:
```
GITHUB_TOKEN=ghp_seu_token_aqui
```
## ⚙️ 环境变量
| Variável | Padrão | Descrição |
|----------|--------|-----------|
| `REDIS_HOST` | `127.0.0.1` | Host do Redis |
| `REDIS_PORT` | `6379` | Porta do Redis |
| `PORT` | `3000` | Porta HTTP do backend |
| `GITHUB_TOKEN` | — | Personal Access Token do GitHub |
| `PYTHON_CMD` | `python` | Executável do Python (`python3` em alguns sistemas) |
| `SCAN_CONCURRENCY` | `6` | Máximo de repos escaneados em paralelo |
## 🐳 TruffleHog(可选)
Quando o [TruffleHog](https://github.com/trufflesecurity/trufflehog) está instalado e disponível no `PATH`, o VaultScan o utiliza automaticamente para detecção de segredos com **verificação ativa** — taxa de falso-positivo muito menor. Se não estiver instalado, o scanner por padrões regex funciona como fallback.
```
# macOS
brew install trufflesecurity/trufflehog/trufflehog
# Linux / Windows
# 下载二进制文件至:https://github.com/trufflesecurity/trufflehog/releases
```
## 🗺 路线图
O VaultScan está em desenvolvimento ativo. Contribuições nas áreas abaixo são especialmente bem-vindas:
- [ ] **Suporte a GitLab e Bitbucket** — expandir além do GitHub
- [ ] **Histórico de scans** — persistência dos resultados em banco de dados
- [ ] **Autenticação de usuários** — salvar e comparar scans ao longo do tempo
- [ ] **Exportação de relatórios** — PDF e JSON para auditores
- [ ] **Novos ecossistemas** — Maven (Java), NuGet (.NET), Swift Package Manager
- [ ] **Verificação de segredos em commits** — varrer histórico git, não só arquivos atuais
- [ ] **Integração com GitHub Actions** — rodar o VaultScan como check em PRs
- [ ] **Dashboard organizacional** — visão de segurança para organizações inteiras
- [ ] **API pública** — endpoint REST documentado para integração com outras ferramentas
## 📄 许可证
MIT © 2025 [Ícaro Goggin](https://github.com/icarogoggin)
Você pode usar, copiar, modificar e distribuir este software livremente, desde que mantenha o aviso de copyright original. Consulte o arquivo [LICENSE](LICENSE) para os termos completos.
标签:AWS密钥, Azure密钥, CI/CD安全, CVE检查, Discord令牌, Docker安全, Firebase密钥, GCP密钥, GitHub Actions, GitHub令牌, GitHub审计, GNU通用公共许可证, Llama, MITM代理, Node.js, OSV, Python, Redis, SendGrid令牌, SEO, Slack令牌, Twilio令牌, TypeScript, Vercel, Web截图, 依赖漏洞, 关键词, 协议分析, 安全插件, 容器安全, 弱密码, 搜索引擎查询, 无后门, 权限提升, 秘密扫描, 自动笔记, 调试模式, 逆向工具