kubewaf-io/kubewaf
GitHub: kubewaf-io/kubewaf
一款 Kubernetes 原生 WAF Operator,通过 CRD 声明式管理 ModSecurity 兼容规则和 OWASP CRS,实现云原生环境下的 Web 应用安全防护。
Stars: 15 | Forks: 3
# kubeWAF
[](https://opensource.org/licenses/Apache-2.0)
[](https://go.dev/)
[](https://kubernetes.io/)
[](https://artifacthub.io/packages/search?repo=kubewaf)
[](https://pkg.go.dev/github.com/kubewaf-io/kubewaf)
**Kubernetes 原生 Web 应用程序防火墙**
使用原生的 Kubernetes CRD,通过兼容 ModSecurity 的规则和 OWASP 核心规则集 (CRS) 来保护您的 Kubernetes 工作负载。
**网站:** [kubewaf.io](https://kubewaf.io)
**联系:** [hello@kubewaf.io](mailto:hello@kubewaf.io)
**GitHub:** [kubewaf-io/kubewaf](https://github.com/kubewaf-io/kubewaf)
## 概述
kubeWAF 是一个 Kubernetes operator,允许您直接通过 Kubernetes Custom Resources 定义、管理和应用 Web 应用程序防火墙 (WAF) 规则。
它为 SecRules 和 SecActions 提供了结构化的 CRD,将其转换为 ModSecurity SecLang,支持 OWASP CRS,并旨在与现代 Kubernetes ingress 和 gateway 解决方案无缝集成。
该项目目前处于 **Beta / WIP** 阶段。预计会有破坏性变更。
## 当前可用功能
- **SecRule CRD** (`seclang.kubewaf.io/v1beta1`):使用结构化的 Kubernetes YAML 定义复杂的安全规则(变量、运算符、动作、元数据、链式支持)。
- **SecAction CRD**:管理诸如 SecAction 之类的非规则指令。
- **RuleSet CRD** (`waf.kubewaf.io/v1beta1`):通过标签选择器和引用解析,聚合来自多个 SecRule/SecAction 资源的规则。
- **自动生成 SecLang**:控制器将 CR 转换为有效的 ModSecurity SecLang 字符串(存储在 `.status.secRuleString` 中)。
- **CRS 兼容性**:`cmd/crs-converter` 中提供了将 OWASP 核心规则集规则导入到 kubeWAF CR 的工具。
- **状态与条件**:使用条件(例如 `ReferencesResolved`)进行适当的 Kubernetes 状态报告。
- **Finalizers 和所有权**:RuleSet 与规则之间的自动清理和交叉引用。
- **解析器与转换器**:集成了 `coreruleset/crslang` 以及基于 ANTLR 的 SecLang 解析器,以兼容 Coraza/ModSecurity。
请参阅 `config/samples/` 获取示例(包括已转换的 CRS 规则)。
## 即将推出的功能
- **Envoy Gateway 集成**:使用 Kubernetes Gateway API 和 Envoy Gateway 的原生 WAF 策略。
- **WAF 部署生成器**:对 WAF 代理(sidecar 或 standalone)进行 Kubernetes 原生管理,具有自动的后端 Service 路由功能。
- 完全支持复杂的链式规则和完整的 OWASP CRS 配置。
- Validation webhook 和 Helm chart 打包。
- **测试**:全面的单元测试、控制器测试和端到端测试。
- **构建产物**:针对 operator 和 CRS 转换工具的自动化构建和已发布的构建产物。
## 工具
### CRS 转换器
一个用于将 OWASP 核心规则集(或任何 SecLang)文件转换为 kubeWAF `SecRule` CR 的工具:
```
# 构建 converter
make crs-converter
# 使用示例
bin/crs-converter -input=path/to/crs/rules -output-dir=config/samples/crs -crs-version=4.3.0
```
支持单个文件或包含 `.conf` 或 `.rules` 文件的目录。将为每个输入生成一个带有适当标签和元数据的 YAML 文件。
## 快速开始 (WIP)
### 前置条件
- Kubernetes 集群(推荐 v1.25+)
- Go 1.25+
- kubectl, kustomize, controller-gen
### 安装
```
# 构建并部署 operator
make docker-build docker-push IMG=your-registry/kubewaf:latest
make deploy IMG=your-registry/kubewaf:latest
```
应用示例规则:
```
kubectl apply -k config/samples/
```
请参阅 `config/samples/` 中的示例,获取受 CRS 启发的示例。
### 开发
```
# 安装 CRDs
make install
# 本地运行
make run
# 运行测试
make test
```
运行 `make help` 查看所有可用的目标。
## 贡献
欢迎贡献!请访问我们的网站,在 GitHub 上提交 issue,或查看 `TODO.md` 了解当前的优先事项。
**高优先级领域:**
- 改进规则解析器/转换器(完整的 SecLang 支持)
- 扩大测试覆盖率(尤其是 e2e 测试)
- 实现 Envoy Gateway 集成和 WAF 部署生成器
- 改进文档和示例
## 许可证
Copyright © 2025 Buzz-IT GmbH.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
```
http://www.apache.org/licenses/LICENSE-2.0
```
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
Made with ❤️ in Bern, Switzerland by [Buzz-IT GmbH](https://buzz-it.ch)
标签:API安全, AppImage, CISA项目, DevSecOps, EVTX分析, Go语言, Ingress安全, JSON输出, Kubernetes Operator, ModSecurity, OWASP Core Rule Set, OWASP CR, PB级数据处理, SecLang, WAF, Web应用防火墙, Web截图, 上游代理, 云计算, 代码审计防御, 子域名突变, 安全网关, 安全运维, 容器安全, 日志审计, 程序破解, 网络流量过滤, 自定义资源, 规则引擎, 请求拦截