dzhigkaev/clusterguard
GitHub: dzhigkaev/clusterguard
一个经过测试的 Kubernetes 集群防御基线,将准入策略、运行时检测、网络隔离和文件完整性监控整合为即插即用的策略包。
Stars: 0 | Forks: 0
# clusterguard
[](https://github.com/dzhigkaev/clusterguard/actions/workflows/ci.yml)
[](https://opensource.org/licenses/Apache-2.0)
**一个经过测试的、即插即用的 Kubernetes 集群防御基线。**
clusterguard 将你原本需要手动组装的策略打包到一个版本可控且经过 CI 测试的包中,涵盖四个防御层:
- **Admission** — 在部署时拒绝不安全工作负载的 OPA/Gatekeeper 策略
- **Runtime** — 检测运行中容器攻击的 Falco 规则
- **Network** — 带有明确白名单的 default-deny NetworkPolicies
- **Integrity** *(可选)* — 一个文件完整性监控基线
每个 admission 策略都附带了通过/失败示例工作负载以及自动化的
[gator](https://open-policy-agent.github.io/gatekeeper/website/docs/gator/) 测试
套件,因此你可以相信每个策略确实做到了允许合法操作并拦截恶意操作。
整个项目只包含文件和测试 —— 无需托管,在空闲时也不会产生任何费用。
## 包含内容
### Admission 策略 (Gatekeeper)
| 策略 | 拦截项 |
|--------|--------|
| `K8sRequireSignedImages` | 没有来源的镜像(未固定摘要或未标注签名) |
| `K8sPodSecurityStandards` | 权限提升、特权/root 容器、host namespaces、hostPath、缺失 cap drops、可写的 rootfs |
| `K8sTrustedRegistries` | 来自不在你白名单中的 registry 的镜像 |
| `K8sDisallowLatestTag` | 可变的 `:latest` 标签 |
| `K8sRequireResourceLimits` | 没有 CPU/内存限制的容器 |
| `K8sBlockVulnerableImages` | 超过严重 CVE 阈值的工作负载(由扫描器提供数据,例如 vultriage) |
| `K8sAIWorkloadGuardrails` | 未签名的 AI 模型;没有 guardrails 的 AI runtime |
| `K8sRequireLabels` | 缺少治理标签的工作负载(默认 owner/team/app) |
| `K8sBlockDangerousCapabilities` | 添加了高风险 Linux capabilities 的容器(SYS_ADMIN, NET_ADMIN, …) |
### Runtime (Falco)、Network、FIM
反弹 shell、挖矿木马、容器逃逸、敏感文件读取、权限
提升、意外的 API 联系 · default-deny + DNS + 每个应用的模板 ·
文件完整性基线。有关完整参考,请参阅 [docs/POLICIES.md](docs/POLICIES.md)。
## 安装
首先以 **audit** 模式推出(报告违规行为,但不进行拦截),然后升级
到 **enforce** 模式(拒绝违规行为)。需要集群中已安装 [Gatekeeper](https://open-policy-agent.github.io/gatekeeper/website/docs/install/)。
```
# 审计:观察将被阻止的内容
kubectl apply -k install/overlays/audit
# 强制执行:实际阻止违规行为
kubectl apply -k install/overlays/enforce
```
Network policies 是基于 namespace 的;在你需要的地方应用它们:
```
kubectl apply -n my-namespace -f policies/network/default-deny.yaml -f policies/network/allow-dns.yaml
```
Falco 规则需放入你的 Falco 安装目录的 rules 文件夹中:
```
falco --validate policies/falco/clusterguard-rules.yaml
```
## 自行测试(无需集群)
```
make test # gator: run every allow/deny policy suite
make validate # kubeconform: schema-check plain manifests
make falco-check # sanity-check Falco rules parse
make check # all of the above
```
`make test` 需要 [`gator`](https://open-policy-agent.github.io/gatekeeper/website/docs/gator/);
`make validate` 需要 [`kubeconform`](https://github.com/yannh/kubeconform)。CI 会
自动安装这两者。
## 目录结构
```
policies/gatekeeper/{templates,constraints}/ # admission policies
policies/network/ # NetworkPolicies
policies/falco/ # runtime rules
fim/ # file-integrity baseline (optional)
install/overlays/{audit,enforce}/ # Kustomize tiers
tests/gator/ # allow/deny test suites
examples/{allowed,denied}/ # demo workloads
```
## License
Apache-2.0
标签:Falco, OPA/Gatekeeper, x64dbg, 子域名突变, 安全基线, 敏感词过滤, 教学环境, 策略即代码, 结构化提示词, 聊天机器人安全