vizvasanlya/gitguard

GitHub: vizvasanlya/gitguard

GitGuard 是一款集密钥检测、漏洞扫描、自动修复和 AI 代码审查于一体的 Git 仓库安全工具,帮助开发者在开发流程中主动发现并修复代码安全问题。

Stars: 0 | Forks: 0

# GitGuard [![CI](https://github.com/gitguard/gitguard/actions/workflows/ci.yml/badge.svg)](https://github.com/gitguard/gitguard/actions/workflows/ci.yml) [![PyPI version](https://badge.fury.io/py/gitguard.svg)](https://pypi.org/project/gitguard/) [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](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, 上游代理, 代码安全, 无后门, 漏洞枚举, 硬件无关, 逆向工具, 错误基检测, 静态代码分析