Skip to main content

Phase 7: Security & Operations

Harden the platform with Wazuh SIEM, self-hosted GitLab for source control and CI/CD, Kubernetes network policies for scan isolation, and a comprehensive security review.

Prerequisites

  • Phase 5 -- Pentesting tools must be running so that network policies can be tested against real scan workloads.
  • Phase 6 -- Observability stack should be in place so that policy violations and security events are visible in dashboards and logs.

Blocks

IDBlockDescriptionAcceptance Criteria
7.1Deploy WazuhDeploy the Wazuh manager, indexer, and dashboard. Install Wazuh agents on all cluster nodes. Configure the dashboard at wazuh.redactedworld.com behind Traefik. Set up default rulesets for file integrity monitoring, rootkit detection, and K8s audit log ingestion.Wazuh dashboard loads at the public URL; agents report "Active" for every node; FIM alerts fire when a test file is modified on a node.
7.2Deploy GitLabDeploy GitLab CE (Omnibus or Helm) at gitlab.redactedworld.com with SSO via Keycloak SAML/OIDC, a container registry, and CI/CD runners registered to the K8s cluster.GitLab loads at the public URL; users authenticate via Keycloak; a test project pipeline runs a CI job on a K8s runner and pushes an image to the registry.
7.3K8s network policies for scan isolationWrite and apply NetworkPolicy resources that restrict scan-worker pods to outbound traffic only toward the target domain (by IP or CIDR), DNS resolution, and NATS (for result publishing). All other cluster-internal and external traffic is denied.A scan worker can reach its target and NATS but cannot reach other services (e.g., PostgreSQL, Keycloak); kubectl exec into a worker and curl an internal service returns connection refused or timeout.
7.4Security hardening reviewConduct a review covering: RBAC least-privilege audit, secret management (Sealed Secrets or external-secrets-operator), image scanning (Trivy in CI), pod security standards enforcement, and TLS everywhere. Document findings and remediations.A written security review document is committed to the repository; all critical findings are resolved; Trivy scans run in CI for every image build.

Estimated Scope

AreaFiles / Resources
Helm chartsk8s/wazuh/, k8s/gitlab/
Wazuh agentsDaemonSet in k8s/wazuh/agent-daemonset.yaml
GitLab CI.gitlab-ci.yml (pipeline definitions), K8s runner registration
Network policiesk8s/network-policies/scan-worker-policy.yaml, k8s/network-policies/default-deny.yaml
Secret managementk8s/sealed-secrets/ or k8s/external-secrets/
Image scanningci/trivy-scan.sh, integration into GitLab CI pipeline
Security reviewdocs/security-review.md
KeycloakSAML/OIDC client registration for GitLab
KubernetesIngressRoutes for wazuh.redactedworld.com, gitlab.redactedworld.com