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防护, 上游代理, 内部开发者平台, 测试用例, 漏洞管理, 版权保护, 策略即代码, 聊天机器人安全, 请求拦截