pasmud/secretops-sentinel
GitHub: pasmud/secretops-sentinel
一款本地优先的密钥扫描与管理工具,帮助开发团队检测、脱敏、跟踪和轮换代码仓库中泄露的敏感凭证,并提供完整的事件响应工作流。
Stars: 1 | Forks: 0
# SecretOps Sentinel
用于本地仓库的密钥扫描、脱敏、轮换工作流以及 pre-commit 辅助工具。
## 功能
- **仓库扫描**:使用 Gitleaks(或演示模式)扫描本地 git 仓库以查找密钥
- **发现面板**:查看已脱敏的发现项,包括严重程度、类型、文件位置和工作流状态
- **工作流状态**:跟踪发现项的状态流转:检测到 → 已确认 → 已吊销 → 已轮换 → 历史已清理 → 已关闭
- **轮换清单**:针对不同密钥类型(AWS、GitHub、Stripe、OpenAI 等)的逐步轮换指南
- **白名单建议**:从误报中自动生成 `.gitleaks.toml` 白名单条目
- **Pre-Commit Hook 指南**:针对特定平台的 Gitleaks pre-commit hook 设置说明
- **事件报告**:导出包含发现项、时间线和修复建议的 Markdown 事件报告
## 安全性
- **绝不显示完整的密钥值** - 密钥会进行脱敏处理,仅显示前 4 位 + 后 4 位字符
- **绝不存储完整密钥** - 数据库仅包含脱敏/部分值
- **绝不向外部发送发现结果** - 所有数据均保留在本地
- **演示示例使用明显的假密钥** - 全部以 `FAKE_TEST_ONLY_` 为前缀
## 快速开始
### 前置条件
- Node.js 18+
- Gitleaks(可选,用于实际扫描 - 从 [gitleaks.io](https://gitleaks.io) 下载)
### 安装说明
```
git clone https://github.com/yourusername/secretops-sentinel.git
cd secretops-sentinel
npm install
npm run db:generate --prefix server
npm run db:push --prefix server
```
### 运行开发环境
```
npm run dev
```
这将启动:
- 前端:http://localhost:42000
- 后端 API:http://localhost:42001
### Docker
```
docker compose up --build
```
## 使用说明
1. 打开 http://localhost:42000
2. 输入本地仓库路径并点击 **Scan**,或点击 **Scan Demo Fixture**
3. 在 **Dashboard** 中查看发现项
4. 点击发现项查看详情并管理其工作流状态
5. 使用 **Rotation** 标签页查看修复清单
6. 使用 **Allowlist** 管理误报
7. 使用 **Reports** 导出事件报告
8. 使用 **Pre-Commit** 获取 hook 设置说明
## 测试
```
# 单元测试和集成测试
npm test
# E2E 测试
npm run test:e2e
```
## 架构
- **前端**:React、Vite、TypeScript、Tailwind CSS
- **后端**:Node.js、Express、TypeScript
- **数据库**:通过 Prisma ORM 使用 SQLite
- **测试**:Vitest(单元测试)、Playwright(E2E)
- **容器**:Docker 与 docker-compose
## 许可证
MIT
## 警告
仅扫描您拥有或被授权测试的系统、代码、API 和基础设施。
标签:DevSecOps, Gitleaks, GNU通用公共许可证, MITM代理, Node.js, StruQ, 上游代理, 代码安全, 漏洞枚举, 特征检测, 自动化攻击, 请求拦截