Files
xiaoxia-saas/docs/ci/security-scanning-roadmap.md
T
xiaoxia e9ad12e072
CI/CD Pipeline / Unit Tests (pull_request) Failing after 18s
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Failing after 21m53s
CI/CD Pipeline / Integration Tests (pull_request) Failing after 16s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1558h41m56s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1558h41m58s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1558h41m59s
CI/CD Pipeline / Build Production Runtime Images (pull_request) Failing after 1558h42m1s
CI/CD Pipeline / Build & Push Staging (Watchtower auto-deploy) (pull_request) Failing after 1558h42m1s
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1559h13m34s
docs(ci): add security scanning roadmap document
- Phase 0: baseline (bandit, black, isort, flake8) - existing
- Phase 1: security foundation (gitleaks P0, pip-audit P1) - in progress
- Phase 2: quality & frontend (npm audit P1, vulture P2) - planned
- Phase 3: deep quality (mypy, semgrep, dep auto-update) - future
- Access principles, progress tracking table
2026-07-13 16:26:26 +08:00

4.8 KiB
Raw Blame History

安全与质量扫描工具接入路线图

仓库: xiaoxia/xiaoxia-saas 更新时间: 2026-07-13 负责人: 代码审计 Agent

整体概览

Phase 0 (已完成)    Phase 1 (进行中)    Phase 2 (规划中)    Phase 3 (远期)
 ─────────────      ──────────────      ─────────────      ────────────
  bandit             gitleaks (P0)       npm audit (P1)     mypy (类型检查)
  (已存在)           pip-audit (P1)      vulture (P2)       semgrep (SAST)
                     迁移安全检查                           依赖自动更新
                                                           License 合规

各阶段详情

Phase 0: 基线能力(已存在)

工具 类型 状态 说明
bandit Python 代码安全审计 ✅ 已接入 validate Job 中运行,-ll 级别,阻断模式
black 代码格式化 ✅ 已接入 --check --fast 模式,阻断模式
isort 导入排序 ✅ 已接入 --check-only 模式,阻断模式
flake8 代码风格 ✅ 已接入 阻断模式
compileall 语法检查 ✅ 已接入 Python 编译检查

Phase 1: 安全基础(进行中 / P0-P1)

预计完成时间:2026-07-13 ~ 2026-07-14

P0: gitleaks 密钥检测

  • 状态: ✅ PR 已提交 (PR #256),CI 验证中
  • 接入位置: validate Job(最前面,快速反馈)
  • 扫描模式:
    • PR 触发:增量扫描(只扫改动文件)
    • 主分支 push:全量扫描
  • 阻断策略: 发现密钥直接阻断合并
  • 配置文件: .gitleaks.toml(白名单排除示例配置、测试文件等)
  • 预估收益: 防止 API Key、密码、Token 等敏感信息泄露

P1: pip-audit Python 依赖漏洞扫描

  • 状态: ✅ PR 已提交(同 PR #256),CI 验证中
  • 接入位置: validate Job(依赖安装后)
  • 扫描范围: 全部 4 个 requirements 文件
  • 数据源: OSV(PyPA 官方推荐)
  • 阻断策略: 告警模式(初期不阻断)
    • 运行 1-2 周摸清漏洞存量
    • 评估后根据严重程度设置阻断阈值(HIGH/CRITICAL 阻断)
  • 预估收益: 及时发现 Python 依赖中的 CVE 漏洞

Phase 2: 质量与前端安全(P1-P2)

预计启动时间:Phase 1 稳定后(约 2026-07-15 ~ 2026-07-18)

P1: npm audit 前端依赖漏洞扫描

  • 状态: 📋 规划中(前端开发负责)
  • 接入位置: frontend-lint Job
  • 扫描范围: package.json / package-lock.json
  • 初始阈值: --audit-level=high
  • 阻断策略: 告警模式(初期不阻断)
  • 相关 PR: PR#255(前端缓存优化)后续接入

P2: vulture 死代码检测

  • 状态: ✅ PR 已提交 (PR #259)
  • 接入位置: validate Job(安全扫描之后)
  • 置信度阈值: 80%(逐步调高)
  • 扫描范围: alembic / apps / packages / scripts
  • 白名单: 框架自动调用代码(FastAPI routes、SQLAlchemy models、Celery tasks 等)
  • 阻断策略: 告警模式(不阻断)
    • 运行 1-2 周统计死代码存量
    • 分批清理确认的死代码
    • 稳定后逐步提高置信度并考虑阻断
  • 预估收益: 减少维护负担,降低安全攻击面

Phase 3: 深度质量(远期规划)

预计启动时间:Phase 2 完成后(约 2026-07 下旬)

工具 类型 优先级 说明
mypy 类型检查 P1 先宽松模式,逐步收紧,提升代码质量
semgrep SAST 静态分析 P2 自定义规则集,检测特定安全模式
依赖自动更新 依赖管理 P2 Dependabot / Renovate,自动更新依赖版本
License 合规 合规检查 P3 检查第三方依赖的 License 是否合规

接入原则

  1. 先告警后阻断:新工具初期一律告警模式,摸清存量后再设阈值
  2. 增量优先:PR 阶段增量扫描,主分支全量扫描,平衡速度与覆盖
  3. 白名单先行:提前配置好合理的白名单,减少误报干扰
  4. 分层递进:P0 → P1 → P2 → P3,按优先级逐步接入
  5. 文档同步:每个工具接入都同步更新接入方案和最佳实践

进度跟踪

阶段 工具 PR 状态 备注
Phase 1 gitleaks #256 🟡 CI 验证中 国内镜像下载修复已提交
Phase 1 pip-audit #256 🟡 CI 验证中 告警模式
Phase 2 vulture #259 🟡 等待 CI 80% 置信度,告警模式
Phase 2 npm audit - 📋 规划中 前端开发负责
Phase 3 mypy - 📋 规划中 后端开发负责(同迁移安全 PR)