paruff/ufawkessec

GitHub: paruff/ufawkessec

为容器化工作负载和 CI/CD 流水线提供开箱即用的安全平面,将漏洞扫描、密钥管理、策略即代码和运行时监控整合为单一 Docker Compose 服务栈。

Stars: 0 | Forks: 0

# uFawkesSec **Fawkes IDP 家族的安全平面** — 为容器化工作负载提供自动化安全反馈循环。 ## 这是什么 uFawkesSec 是 Fawkes 内部开发者平台家族的安全平面。它将一系列精选的开源安全服务(DefectDojo、Infisical、Trivy、Falco)部署为 Docker Compose 服务,支持供应链完整性、策略即代码(policy-as-code)、密钥生命周期管理和运行时漏洞遥测——所有这些都在单个 Docker 节点上运行。uFawkesSec 与 uFawkesPipe 集成,将安全门禁注入到 CI/CD pipeline 中,无需开发者配置安全工具。 ## 架构 ``` ┌─────────────────────────────────────────────────────────────────────────────────┐ │ fawkes-net (external Docker bridge, created via `make network`) │ │ │ │ ╔══════════════════════════════╗ ╔═══════════════════════════════════════╗ │ │ ║ uFawkesRes (pre-existing) ║ ║ uFawkesSec (this repo) ║ │ │ ║ ║ ║ ║ │ │ ║ postgres:5432 [VERIFY] ║ ║ defectdojo:8080 (Django) ║ │ │ ║ valkey:6379 [VERIFY] ║ ║ defectdojo-nginx (proxy) ║ │ │ ╚══════════════════════════════╝ ║ defectdojo-celery-beat ║ │ │ ▲ ▲ ║ defectdojo-celery-worker ║ │ │ │ │ (DB + cache) ║ infisical:8082 ║ │ │ └──┤ ║ trivy-server:4954 (internal) ║ │ │ │ ║ falco (no-driver, reads /host/proc) ║ │ │ └───────────────────╚═══════════════════════════════════════╝ │ │ │ │ ╔══════════════════════════════════════════════════════════════════════════╗ │ │ ║ uFawkesPipe (separate repo, same network) ║ │ │ ║ ║ │ │ ║ woodpecker-agent ──spawn──► step containers: ║ │ │ ║ policy-check → reads policy/ bundle ║ │ │ ║ generate-sbom → writes sbom.cdx.json ║ │ │ ║ sign-image → cosign signs OCI img ║ │ │ ║ upload-defectdojo → POST :8080 ║ │ │ ║ vuln-scan-* → trivy-server:4954 ║ │ │ ╚═══════════════════════════════════════════════════════════════════════════╝ │ └─────────────────────────────────────────────────────────────────────────────────┘ ``` **外部集成:** - OCI Registry ◄──镜像推送 + 签名── `sign-image` 步骤 - Falco webhook ──告警──► `OBS_WEBHOOK_URL`(uFawkesObs,可选) ## 服务 | 服务 | 镜像 | 端口 (Host) | 角色 | | -------------------------- | ------------------------------------- | ----------------- | -------------------------------------- | | `defectdojo` | `defectdojo/defectdojo-django:2.38.0` | `8080` | 安全发现聚合 (Django) | | `defectdojo-nginx` | `defectdojo/defectdojo-nginx:2.38.0` | `8080` | DefectDojo 的反向代理 | | `defectdojo-celery-beat` | `defectdojo/defectdojo-django:2.38.0` | — | 定时任务调度器 | | `defectdojo-celery-worker` | `defectdojo/defectdojo-django:2.38.0` | — | 异步任务 worker | | `infisical` | `infisical/infisical:v0.93.1` | `8082` | 零信任密钥存储 | | `trivy-server` | `aquasec/trivy:latest` | `4954` (内部) | 共享 Trivy CVE 缓存服务器 | | `falco` | `falcosecurity/falco-no-driver:0.39.2`| — | 运行时容器安全监控 | ## 快速开始 ``` git clone https://github.com/paruff/uFawkesSec cd uFawkesSec make up # starts all services (requires uFawkesRes running) # 完整详情:参见 docs/quickstart.md ``` 请参阅 [docs/quickstart.md](docs/quickstart.md) 了解前置条件、环境设置、迁移和冒烟测试检查清单。 ## 集成:uFawkesPipe → uFawkesSec uFawkesPipe 通过共享的 `fawkes-net` 网络使用 uFawkesSec 服务: | 连接 | 用途 | Endpoint | | --------------------- | ------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------- | | **DefectDojo** | 从 pipeline 步骤 POST Gitleaks/Trivy 安全发现 | `http://defectdojo:8080/api/v2/` | | **Trivy Server** | 用于 `trivy image` 扫描的共享 CVE 数据库缓存 | `http://trivy-server:4954` | | **Policy Bundle** | 在 pipeline 执行时获取 Rego 策略 (v0.2: Git clone) | `git clone https://github.com/paruff/uFawkesSec /tmp/sec` 然后 `conftest test --policy /tmp/sec/policy/` | **v0.2 模式 (Git clone):** ``` - name: policy-check image: openpolicyagent/conftest:v0.57.0 commands: - apk add --no-cache git - git clone --depth 1 https://github.com/paruff/uFawkesSec /tmp/sec - conftest test --policy /tmp/sec/policy/ compose.yaml .pipeline.yml ``` **v0.3 路线图 (OCI bundle):** ``` - name: pull-policy-bundle image: openpolicyagent/conftest:v0.57.0 commands: - conftest pull oci://internal-registry.example.com/uFawkesSec/policies:latest - name: policy-check commands: - conftest test --policy /tmp/policies compose.yaml .pipeline.yml ``` ## 安全领域 | 领域 | v0.2 状态 | v0.3 路线图 | | --------------------------- | --------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | | **供应链完整性** | 通过 Woodpecker pipeline 使用 Trivy 生成 SBOM + Cosign 镜像签名;密钥存储在 Woodpecker secrets 中 | SLSA 证明,Rekor 透明日志,Kyverno 策略强制执行 | | **策略即代码** | 在 Woodpecker pipeline 中针对 `compose.yaml` 和 `.pipeline.yml` 使用 Conftest + Rego 策略 | OPA server 部署,admission webhooks,运行时策略强制执行 | | **密钥生命周期** | Infisical 作为服务部署;Woodpecker 在构建时获取范围内的 token | 运行时 Infisical agent sidecar 注入,Vault 迁移 | | **漏洞遥测** | DefectDojo 聚合安全发现;Gitleaks + Trivy 从 uFawkesPipe 向其 POST 数据 | DefectDojo 产品策略,基于阈值的 pipeline 门禁 | | **运行时防护** | Falco 监控 Docker socket;webhook 告警发送到可配置的 endpoint | Falco 规则编写,PagerDuty/Slack 集成 | ## 文档 | 文件 | 用途 | | ---------------------- | ------------------------------------------------- | | `docs/quickstart.md` | 启动顺序、前置条件、故障排除 | | `docs/policy-guide.md` | 如何编写、测试和维护 Rego 策略 | | `design.md` | 技术设计、架构、组件详情 | | `specification.md` | 需求、验收标准、开放问题 | ## 命令 ``` make network # Create fawkes-net (idempotent) make up # Start stack (requires uFawkesRes) make down # Stop stack make migrate # Run DefectDojo DB migration + create superuser make cosign-keygen # Generate Cosign key pair make logs-defectdojo # Tail DefectDojo logs make logs-falco # Tail Falco security events make test # Run unit tests make validate # Run pre-commit hooks (lint, format, security) ``` ## 要求 - **Docker Engine** 24.0+ 及 Compose v2.4+ - **uFawkesRes** 正在运行(在 `fawkes-net` 上提供 `postgres:5432`, `valkey:6379`) - **Host kernel** 4.14+ (Linux) 以支持 Falco eBPF;macOS Docker Desktop 可用,但无法捕获 syscall 事件 ## 许可证 MIT — 详情请参阅 [LICENSE](LICENSE)。
标签:DevSecOps, Docker Compose, GPT, LLM防护, 上游代理, 内部开发者平台, 测试用例, 漏洞管理, 版权保护, 策略即代码, 聊天机器人安全, 请求拦截