StephenJarso/secure_push

GitHub: StephenJarso/secure_push

Secure Push 是一款开发者优先的安全扫描工具,在代码提交和 CI 阶段拦截密钥泄露、不安全配置以及危险的 AI 生成代码。

Stars: 1 | Forks: 0

# Secure Push **防止 secrets、不安全的配置以及危险的 AI 生成代码进入你的 Git 仓库。** **Secure Push 专为使用 AI 辅助编码工具的开发者和团队设计,旨在不影响开发速度的前提下提供安全保障。** ## 1. 问题 现代开发者越来越依赖 AI 编码工具来提升效率,但这种速度往往以牺牲安全性为代价。AI 生成的代码经常包含硬编码的 secrets、不安全的默认设置或缺失的身份验证检查,这些问题很容易在代码审查中被遗漏。这个问题影响着在压力下快速交付代码的个人开发者、初创公司以及大型团队。 ## 2. 解决方案 **Secure Push** 是你代码库的安全闸门,它会在**代码提交之前以及 CI 阶段**运行。 ### Secure Push 检测的内容 Secure Push 扫描以下内容: - 硬编码的 secrets(API 密钥、token、密码) - `.env` 和环境配置泄露 - 缺失或配置错误的身份验证 middleware - 不安全的框架默认设置 - 不安全的 CI/CD 配置 - 高风险的 AI 生成模式 ### 工作原理 - **Pre-commit hook** 在不安全的代码进入 Git 历史之前将其阻止 - **CI 模式** 在 GitHub Actions、GitLab CI 等平台中强制执行安全规则 ### 独特之处 与通用的 secret 扫描器不同,Secure Push 是**开发者优先**的: - 专门针对 AI 生成代码的风险构建 - 速度极快,可在每次提交时运行 - 具有主观倾向性的安全规则,误报率低 - 简单的 YAML 配置,无需复杂的策略语言 ## 3. 快速开始 ### 安装 Secure Push #### 选项 1:下载二进制文件 ``` curl -sSL https://example.com/secure-push/install.sh | bash ``` #### 选项 2:通过 Go 安装 ```go install github.com/secure-push/secure-push@latest``` #### 选项 3:通过 Homebrew 安装 ```brew install secure-push``` #### 运行你的第一次扫描 ```secure-push scan .``` #### 安装 Pre-Commit Hook ```secure-push install``` ## 4. 功能(详解) - Secret 检测 – 查找 AWS 密钥、JWT、OAuth token、私钥以及通用的高熵 secret。 - 环境文件扫描 – 阻止提交 `.env` 文件以及暴露的环境变量。 - Auth middleware 检查 – 检测常见 Web 框架中缺失的身份验证或授权。 - 配置校验 – 标记 Docker、CI 和应用配置中不安全的默认设置。 - CI/CD 集成 – 为自动化 pipeline 生成机器可读的输出。 ## 5. 使用示例 #### 示例 1:基础扫描 ```$ secure-push scan ./myproject``` ## 输出 ``` CRITICAL AWS_SECRET_KEY detected in config/aws.go:12 HIGH Missing authentication middleware in api/routes.go:4 ✖ Scan failed: 2 security issues found ``` #### 示例 2:Pre-Commit 模式 ```$ secure-push pre-commit``` ### 被阻止的提交信息 ``` CRITICAL: .env file detected File: .env Fix the issue or add an explicit ignore rule to proceed. ``` #### 示例 3:用于 CI 的 JSON 输出 ```$ secure-push scan --format json``` ``` { "summary": { "critical": 1, "high": 2, "medium": 0 }, "findings": [ { "rule": "AWS_SECRET_KEY", "severity": "CRITICAL", "file": "config/aws.go", "line": 12 } ] } ``` ## 6. 配置 在你的仓库根目录下创建一个配置文件: ``` # .secure-push.yaml severity_threshold: HIGH ignore_rules: - GENERIC_API_KEY ignore_paths: - vendor/ - testdata/ allowlist: - scripts/dev-only.sh ``` ## 可配置项 - 忽略特定的检测器 - 将文件或目录加入白名单 - 设置导致扫描失败的最低严重级别 - 自定义输出格式 ## 7. 支持的检测器 | 检测器 | 严重性 | 误报风险 | |---------------------------|-----------|---------------------| | AWS 密钥 | CRITICAL | 低 | | GitHub token | CRITICAL | 低 | | Provider 访问 token | HIGH | 低 | | `.env` 文件 | CRITICAL | 无 | | 通用 API 密钥 | HIGH | 中 | | 私有 SSH 密钥 | CRITICAL | 低 | | 缺失的 Auth Middleware | HIGH | 中 | | 开放的 CORS 配置 | MEDIUM | 中 | | 不安全的 JWT 设置 | HIGH | 低 | | 硬编码的密码 | CRITICAL | 中 | | 公开的 S3 存储桶 | HIGH | 低 | ## 8. 集成指南 ### Pre-Commit Hook(手动) ``` ln -s ../../secure-push/hooks/pre-commit .git/hooks/pre-commit ``` ### GitHub Actions ``` name: Secure Push Scan on: [push, pull_request] jobs: security: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Run Secure Push run: secure-push scan --format json ``` ### GitLab CI ``` secure_push: script: - secure-push scan ``` ### Makefile 目标 ``` security: secure-push scan . ``` ## 9. 性能 - 速度:在典型的笔记本电脑上约为每秒 5,000 个文件 - 内存使用量:对于大型仓库 <100MB - Monorepos:完全支持增量扫描 ## 10. 路线图 v2 - 基于 AST 的代码分析 - 更智能的 AI 专用检测器 - 性能改进 v3 - 针对常见问题的自动修复模式 - VS Code 扩展 - 自定义规则语言 ## 11. 贡献 我们欢迎贡献者! 有关以下内容的详细信息,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md): - 开发环境设置 - 添加新的检测器 - 测试要求 - 代码风格指南 ## 12. 许可证 Secure Push 采用 MIT 许可证发布。
标签:EVTX分析, Git Hook, 开发安全, 日志审计, 静态代码扫描