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, 开发安全, 日志审计, 静态代码扫描