vizvasanlya/gitguard
GitHub: vizvasanlya/gitguard
GitGuard 是一款集密钥检测、漏洞扫描、自动修复和 AI 代码审查于一体的 Git 仓库安全工具,帮助开发者在开发流程中主动发现并修复代码安全问题。
Stars: 0 | Forks: 0
# GitGuard
[](https://github.com/gitguard/gitguard/actions/workflows/ci.yml)
[](https://pypi.org/project/gitguard/)
[](https://www.python.org/downloads/)
[](https://opensource.org/licenses/MIT)
## 为什么选择 GitGuard?
其他安全工具只会**抱怨**。GitGuard **修复你的代码**。
```
# 扫描你的项目
gitguard scan .
# 自动修复问题
gitguard fix .
# 理解为什么某些内容存在危险
gitguard explain SEC001
```
## 快速开始
### 安装
```
# pip
pip install gitguard
# Homebrew (macOS)
brew install gitguard
```
### 首次扫描
```
cd your-project
gitguard scan .
```
## 命令(共 15 个)
| 命令 | 描述 |
|---------|-------------|
| `gitguard scan .` | 扫查密钥、漏洞和不良模式 |
| `gitguard review file.py` | AI 驱动的代码审查与风险评分 |
| `gitguard fix .` | 自动修复 11 个常见安全问题 |
| `gitguard history .` | 扫查 git 历史记录以寻找泄露的密钥 |
| `gitguard sarif .` | 生成用于 GitHub Security 标签页的 SARIF 输出 |
| `gitguard audit .` | 检查依赖项中的已知 CVE |
| `gitguard nvd .` | 检查 NVD 漏洞数据库 |
| `gitguard license .` | 检查许可证合规性 |
| `gitguard sbom .` | 生成软件物料清单 (SBOM) |
| `gitguard explain RULE` | 详细解释安全规则 |
| `gitguard rules` | 管理自定义安全规则 |
| `gitguard hooks` | 安装 git pre-commit hooks |
| `gitguard dashboard` | 启动 Web Dashboard |
| `gitguard full .` | 一次性运行所有检查 |
| `gitguard init` | 创建配置文件 |
## GitGuard 能捕获什么
### 密钥(100+ 种模式)
| 类别 | 服务 |
|----------|----------|
| **云服务** | AWS, Azure, GCP, DigitalOcean, Alibaba, Oracle, IBM |
| **版本控制** | GitHub, GitLab, Bitbucket |
| **通讯** | Slack, Discord, Mattermost |
| **支付** | Stripe, PayPal, Shopify |
| **AI/ML** | OpenAI, Hugging Face, Anthropic |
| **DevOps** | Docker, Kubernetes, Terraform, Ansible, Vault |
| **数据库** | MongoDB, PostgreSQL, MySQL, Redis, Cosmos DB |
| **包管理** | npm, PyPI, RubyGems, Docker Hub |
| **密钥** | RSA, SSH, PGP, EC 私钥 |
| **令牌** | JWT, Bearer, API 密钥, 访问令牌 |
| **以及 30+ 种其他服务...** |
### 漏洞(49 种模式)
| 语言 | 检测内容 |
|----------|-----------------|
| **Python** | SQL 注入、命令注入、eval、pickle、yaml.load、tempfile |
| **JavaScript/TypeScript** | XSS、原型链污染、eval、NoSQL 注入、CORS |
| **Go** | 命令注入、fmt.Sprintf SQL、unsafe package |
| **Rust** | Unsafe blocks、unwrap() 用法 |
| **Java** | Runtime.exec、反序列化、SQL 注入 |
| **Ruby** | Eval、system、YAML.load |
| **PHP** | Eval、system、SQL 注入 |
| **C/C++** | strcpy、sprintf、gets、scanf 缓冲区溢出 |
| **Shell** | Eval、未加引号的变量 |
| **Docker** | 特权模式、latest 标签 |
| **Kubernetes** | 权限提升、hostNetwork |
| **Terraform** | 公共 S3、未加密的 EBS |
## 独有功能
### 自动修复
```
gitguard fix .
```
自动修复 11 种问题类型:
- `os.system()` → `subprocess.run()`
- `shell=True` → `shell=False`
- `eval()` → `ast.literal_eval()`
- `yaml.load()` → `yaml.safe_load()`
- `hashlib.md5` → `hashlib.sha256`
- `mktemp()` → `mkstemp()`
- 裸 except → 特定异常
- 通配符 import → 显式 import
- 可变默认参数 → None
- 调试模式 → 禁用
- 以及更多...
### AI 代码审查
```
gitguard review src/main.py
```
- LLM 驱动的分析(OpenAI, Anthropic, 本地模型)
- 风险评分(0-100)
- 结合上下文的解释
- 修复建议
### Git 历史记录扫描
```
gitguard history .
```
查找在旧 commit 中泄露的密钥——即使它们已被删除。
### SARIF 输出
```
gitguard sarif . --output results.sarif
```
与 GitHub Security 标签页集成。直接在你的 PR 中查看扫描结果。
### SBOM 生成
```
gitguard sbom . --format cyclonedx
```
以 CycloneDX 或 SPDX 格式生成软件物料清单 (SBOM)。
### NVD 集成
```
gitguard nvd .
```
根据国家漏洞数据库 (NVD) 检查依赖项是否存在已知 CVE。
### Web Dashboard
```
gitguard dashboard
```
精美的 Web UI,提供实时扫描结果以及 SARIF/SBOM 导出。
### 通知
```
# 设置环境变量
export GITGUARD_SLACK_WEBHOOK="https://hooks.slack.com/services/..."
export GITGUARD_DISCORD_WEBHOOK="https://discord.com/api/webhooks/..."
# Scan 自动发送通知
gitguard scan .
```
### 自定义规则
```
{
"id": "CUSTOM001",
"name": "no-print",
"pattern": "print\\(",
"severity": "low",
"message": "print() statement found",
"languages": ["python"],
"suggestion": "Use logging instead of print()"
}
```
## 对比
| 功能 | GitGuard | Gitleaks | TruffleHog | Semgrep |
|---------|----------|----------|------------|---------|
| 密钥检测 | 100+ 种模式 | 100+ 种模式 | 50+ 种模式 | 自定义规则 |
| 漏洞扫描 | 49 种模式 | ❌ | ❌ | 2000+ 条规则 |
| 自动修复 | ✅ 11 个修复器 | ❌ | ❌ | ❌ |
| AI 解释 | ✅ | ❌ | ❌ | ❌ |
| AI 代码审查 | ✅ | ❌ | ❌ | ❌ |
| SARIF 输出 | ✅ | ✅ | ❌ | ✅ |
| Git 历史记录扫描 | ✅ | ❌ | ✅ | ❌ |
| SBOM 生成 | ✅ | ❌ | ❌ | ❌ |
| NVD 集成 | ✅ | ❌ | ❌ | ❌ |
| Web Dashboard | ✅ | ❌ | ❌ | ❌ |
| 通知 | ✅ Slack/Discord | ❌ | ❌ | ❌ |
| 自定义规则 | ✅ JSON/YAML | ✅ TOML | ❌ | ✅ YAML |
| Git hooks | ✅ | ✅ | ❌ | ❌ |
| VS Code 插件 | ✅ | ❌ | ❌ | ❌ |
| Homebrew | ✅ | ✅ | ✅ | ✅ |
| 语言 | 12 | All | All | 30+ |
| GitHub Action | ✅ | ✅ | ✅ | ✅ |
| 价格 | 免费 | 免费 | 免费 | 免费 |
**GitGuard 独有:** 自动修复、AI 解释、AI 代码审查、SBOM、NVD、Dashboard、通知
## 性能
| 指标 | GitGuard | Gitleaks | TruffleHog |
|--------|----------|----------|------------|
| 扫描时间(1K 个文件) | 2.3s | 1.8s | 4.2s |
| 扫描时间(10K 个文件) | 8.1s | 6.2s | 18.5s |
| 内存使用 | 45MB | 32MB | 128MB |
请查看 [benchmarks/](benchmarks/) 获取详细对比。
## 安装
### pip
```
pip install gitguard
```
### Homebrew
```
brew install gitguard
```
### 从源码构建
```
git clone https://github.com/gitguard/gitguard.git
cd gitguard
pip install -e .
```
## 配置
在你的项目根目录下创建 `.gitguard.json`:
```
{
"severity_threshold": "low",
"include_secrets": true,
"include_vulnerabilities": true,
"include_bad_patterns": true,
"include_license_check": true,
"include_dependency_audit": true,
"ignore_dirs": ["node_modules", ".git", "__pycache__"],
"allowed_licenses": ["MIT", "Apache-2.0", "BSD-2-Clause", "BSD-3-Clause", "ISC"],
"ai": {
"enabled": true,
"provider": "openai",
"model": "gpt-4",
"api_key": "sk-... (optional, can use env var)"
},
"notifications": {
"enabled": true,
"slack_webhook": "https://hooks.slack.com/services/...",
"discord_webhook": "https://discord.com/api/webhooks/...",
"notify_on": "high"
}
}
```
### AI 配置
GitGuard 支持 10 个 AI 提供商:
| 提供商 | 模型 | 环境变量 |
|----------|--------|--------------|
| OpenAI | gpt-4, gpt-4o, gpt-4-turbo | `OPENAI_API_KEY` |
| Anthropic | claude-3-opus, claude-3-sonnet, claude-3.5-sonnet | `ANTHROPIC_API_KEY` |
| Google | gemini-1.5-pro, gemini-1.5-flash | `GOOGLE_API_KEY` |
| Groq | llama-3-70b, mixtral-8x7b | `GROQ_API_KEY` |
| Ollama | llama3, codellama, mistral (本地) | 无需密钥 |
| Together AI | llama-3-70b, mixtral | `TOGETHER_API_KEY` |
| Fireworks AI | llama-v3-70b, mixtral | `FIREWORKS_API_KEY` |
| DeepSeek | deepseek-chat, deepseek-coder | `DEEPSEEK_API_KEY` |
| Azure OpenAI | gpt-4, gpt-35-turbo | `AZURE_OPENAI_API_KEY` |
| Local | 任意 (LM Studio, llama.cpp) | 无需密钥 |
快速设置:
```
# OpenAI
gitguard ai-config --enabled --provider openai --model gpt-4
# Anthropic
gitguard ai-config --enabled --provider anthropic --model claude-3-sonnet
# Ollama (本地,免费)
gitguard ai-config --enabled --provider ollama --model llama3
# 检查状态
gitguard ai-status
```
## CI/CD 集成
### GitHub Actions
```
name: Security Scan
on: [push, pull_request]
jobs:
security:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.12"
- run: pip install gitguard
- run: gitguard scan . --exit-code --output results.sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif
```
### GitLab CI
```
security_scan:
script:
- pip install gitguard
- gitguard scan . --exit-code
```
### 使用 GitHub Action
```
- uses: gitguard/gitguard-action@v1
with:
scan-type: full
severity: low
fail-on-severity: high
```
## Python API
```
from gitguard import SecurityScanner, CodeReviewer, DependencyAuditor
# 扫描安全问题
scanner = SecurityScanner("/path/to/project")
result = scanner.scan()
print(f"Found {result.total_findings} issues")
# 审查代码
reviewer = CodeReviewer()
review = reviewer.review_file(Path("src/main.py"), content)
print(f"Score: {review.score}/100")
# 审计依赖
auditor = DependencyAuditor()
audit = auditor.audit_project(Path("/path/to/project"))
print(f"Vulnerable deps: {audit.vulnerable_deps}/{audit.total_deps}")
# 生成 SBOM
from gitguard.core.sbom import SBOMGenerator
sbom = SBOMGenerator("/path/to/project")
cyclonedx = sbom.generate_cyclonedx()
# 检查 NVD
from gitguard.core.nvd import NVDChecker
nvd = NVDChecker()
findings = nvd.check_project(Path("/path/to/project"))
```
## VS Code 插件
安装插件以进行实时安全扫描:
1. 打开 VS Code
2. 进入插件(Ctrl+Shift+X)
3. 搜索 "GitGuard"
4. 安装
功能:
- 文件保存时扫描
- 内联诊断
- 快速修复
- 严重性过滤
## 演示
请查看 [docs/demos/](docs/demos/) 获取演示录制脚本。
## 贡献
我们欢迎各种贡献!请查看 [CONTRIBUTING.md](CONTRIBUTING.md) 了解指南。
## 许可证
MIT 许可证 - 有关详细信息,请参阅 [LICENSE](LICENSE)。
标签:AI风险缓解, DevSecOps, LLM防护, Python, Redis利用, SBOM, StruQ, Subfinder, 上游代理, 代码安全, 无后门, 漏洞枚举, 硬件无关, 逆向工具, 错误基检测, 静态代码分析