dzhigkaev/clusterguard

GitHub: dzhigkaev/clusterguard

一个经过测试的 Kubernetes 集群防御基线,将准入策略、运行时检测、网络隔离和文件完整性监控整合为即插即用的策略包。

Stars: 0 | Forks: 0

# clusterguard [![CI](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/0576df7f83093648.svg)](https://github.com/dzhigkaev/clusterguard/actions/workflows/ci.yml) [![License: Apache 2.0](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](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, 子域名突变, 安全基线, 敏感词过滤, 教学环境, 策略即代码, 结构化提示词, 聊天机器人安全