Warning: This project is a Proof of Concept (PoC) to explore the feasibility of using WebAssembly (WASM) for policy execution and eBPF for enforcement. The primary goal is to evaluate performance, cross-platform support, and security capabilities.
Warmor is an eBPF-based policy enforcer that executes WASM-compiled policies to secure workloads on Linux and Windows environments. It integrates with Kubernetes as an operator for dynamic security enforcement.
- ✅ Cross-platform enforcement (Linux & Windows)
- ✅ WASM for policy execution (Supports Rust & Golang)
- ✅ eBPF for low-overhead enforcement
- ✅ Lightweight and high-performance execution
Warmor combines WASM for policy logic with eBPF for enforcement, balancing flexibility with high performance.
- WASM Policy Execution: Policies are compiled to WASM (Rust or Go) and executed dynamically.
- eBPF Enforcement: eBPF hooks enforce security rules at the kernel level.
- Basic eBPF enforcer setup in Golang
- WASM policy execution using WasmEdge (Rust-based)
- Implement Go 1.24 WebAssembly runtime support for policies
- Expand eBPF enforcement capabilities
- Windows eBPF enforcement PoC (exploring eBPF for Windows)
- More robust policy definition framework
- Kubernetes Operator integration
- Prometheus monitoring setup
warmor/
│── enforcer/              # eBPF enforcer
│   ├── main.go            # Entry point
│   ├── policy.wasm        # WASM policy module
│   ├── runtime/           # WASM runtime integration
│   ├── ebpf/              # eBPF program loader
│   ├── metrics/           # Monitoring integration
│── deployment/            # Kubernetes manifests
│   ├── enforcer.yaml      # Enforcer DaemonSet
│   ├── prometheus.yaml    # Prometheus ServiceMonitor
│── docs/                  # Documentation
│── README.md              # Project overview
│── LICENSE                # License file
Ensure you have Go 1.24+, WasmEdge, and eBPF tools installed.
go mod tidygo build -o warmor ./enforcer
./warmorkubectl apply -f deployment/enforcer.yamlkubectl port-forward -n monitoring svc/grafana 3000:80Then access Grafana at http://localhost:3000.
| Platform/OS | WASM Execution | eBPF Support | Warmor Support | 
|---|---|---|---|
| Linux (x86_64) | ✅ Yes | ✅ Yes | ✅ Fully Supported | 
| Linux (ARM64) | ✅ Yes | ✅ Yes | ✅ Fully Supported | 
| Linux (RISC-V) | |||
| Windows (x86_64) | ✅ Yes (WasmEdge) | 
Warmor is licensed under the MIT License.
