Erhalten Sie heute Ihr erstes WAFPass Scan-Ergebnis.
Installieren Sie die Open-Source-WAFPass-CLI, laden Sie die WAF++-Controls herunter und scannen Sie eine Beispiel-Terraform-Datei. Keine Cloud-Credentials, keine Black Box — nur statische Analyse auf Ihrem Infrastructure-as-Code.
Mögen Sie One-Liner? Das Installationsprogramm richtet CLI und Controls für Sie ein.
curl -fsSL https://waf2p.dev/install.sh | sh
irm https://waf2p.dev/install.ps1 | iex
Ein klarer Pfad für jeden Anwendungsfall.
Starten Sie mit dem 2-Minuten-CLI-Quickstart. Wechseln Sie die Tabs, wenn Sie bereit für Dashboard, CI oder manuelles Setup sind.
Erhalten Sie Ihr erstes Ergebnis in 2 Minuten
Folgen Sie den vier Schritten unten. Jedes Kommando ist so angelegt, dass Sie beim ersten Versuch ein garantiert lesbares Ergebnis erhalten.
CLI installieren
WAFPass ist als wafpass-core auf PyPI veröffentlicht. Python 3.11+ wird empfohlen.
Controls herunterladen
Der WAF++-Controls-Katalog enthält die 83+ Regeln, die WAFPass verwendet, um Ihren Code zu bewerten.
Empfohlen: Klonen Sie das Controls-Repo. Alternative: Laden Sie das Controls-Zip von der WAFPass-Seite herunter und extrahieren Sie es nach controls/.
Beispiel-Terraform-Datei speichern
Erstellen Sie eine minimale main.tf. Dieses Beispiel belässt absichtlich einen öffentlichen S3-Bucket, damit WAFPass etwas markieren kann.
provider "aws" {
region = "eu-central-1"
}
resource "aws_s3_bucket" "public" {
bucket = "wafpp-first-check-demo"
}
resource "aws_s3_bucket_public_access_block" "public" {
bucket = aws_s3_bucket.public.id
block_public_acls = false
block_public_policy = false
ignore_public_acls = false
restrict_public_buckets = false
}
Führen Sie Ihre erste Prüfung aus
Zeigen Sie WAFPass auf das aktuelle Verzeichnis und geben Sie die JSON-Zusammenfassung aus.
Sie sollten eine Ausgabe wie diese sehen:
{
"total_controls": 83,
"passed": 81,
"failed": 2,
"pillars": {
"security": { "passed": 18, "failed": 2 }
}
}
Führen Sie das vollständige Dashboard lokal aus
Das WAF2p/pass-Monorepo liefert eine einheitliche docker-compose.yml. Es startet CLI, Server, Dashboard, PostgreSQL und Keycloak mit einem Befehl.
| Service | URL | Beschreibung |
|---|---|---|
| wafpass-dashboard | http://localhost:3000 | React-Dashboard |
| wafpass-server | http://localhost:8000 | FastAPI REST API |
| Keycloak (SSO) | http://localhost:8080 | Identity Provider (admin / admin) |
| postgres | localhost:5432 | PostgreSQL-Datenbank |
Sobald die Container gesund sind, füllen Sie Ihre erste Dashboard-Ansicht mit dem Demo-Kommando oder indem Sie ein Scan-Ergebnis pushen:
Vollständige docker-compose.yml anzeigen
services:
# ── PostgreSQL ────────────────────────────────────────────
postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER:-wafpass}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-wafpass}
POSTGRES_DB: ${POSTGRES_DB:-wafpass}
volumes:
- postgres_data:/var/lib/postgresql/data
- ./keycloak/init.sql:/docker-entrypoint-initdb.d/01-keycloak-db.sql:ro
ports:
- "${POSTGRES_PORT:-5432}:5432"
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-wafpass} -d ${POSTGRES_DB:-wafpass}"]
interval: 5s
timeout: 5s
retries: 10
# ── wafpass-server ────────────────────────────────────────
wafpass-server:
build:
context: .
dockerfile: wafpass-server/Dockerfile
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
DATABASE_URL: postgresql+asyncpg://${POSTGRES_USER:-wafpass}:${POSTGRES_PASSWORD:-wafpass}@postgres:5432/${POSTGRES_DB:-wafpass}
WAFPASS_ENV: ${WAFPASS_ENV:-local}
CORS_ORIGINS: ${API_URL:-http://localhost:3000},http://wafpass-dashboard,http://cloud.waf2p
WAFPASS_CONTROLS_DIR: ${WAFPASS_CONTROLS_DIR:-/app/controls}
WAFPASS_JWT_SECRET: ${WAFPASS_JWT_SECRET:-change-me-in-production}
WAFPASS_JWT_EXPIRE_MINUTES: ${WAFPASS_JWT_EXPIRE_MINUTES:-60}
WAFPASS_JWT_REFRESH_DAYS: ${WAFPASS_JWT_REFRESH_DAYS:-7}
WAFPASS_ADMIN_USERNAME: ${WAFPASS_ADMIN_USERNAME:-admin}
WAFPASS_ADMIN_PASSWORD: ${WAFPASS_ADMIN_PASSWORD:-admin}
WAFPASS_ADMIN_ROLE: ${WAFPASS_ADMIN_ROLE:-admin}
WAFPASS_API_KEY: ${WAFPASS_API_KEY:-key}
ports:
- "8000:8000"
# ── Keycloak (SSO / IdP — dev mode) ──────────────────────
keycloak:
image: quay.io/keycloak/keycloak:26.1
command: start-dev
restart: unless-stopped
depends_on:
postgres:
condition: service_healthy
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://postgres:5432/${KEYCLOAK_DB:-keycloak}
KC_DB_USERNAME: ${KEYCLOAK_DB_USER:-keycloak}
KC_DB_PASSWORD: ${KEYCLOAK_DB_PASSWORD:-keycloak}
KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN_USER:-admin}
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD:-admin}
KC_HTTP_ENABLED: "true"
KC_HOSTNAME_STRICT: "false"
KC_HEALTH_ENABLED: "true"
ports:
- "${KEYCLOAK_PORT:-8080}:8080"
healthcheck:
test: ["CMD-SHELL", "curl -sf http://localhost:8080/health/ready || exit 1"]
interval: 15s
timeout: 5s
retries: 20
start_period: 60s
# ── wafpass-dashboard ─────────────────────────────────────
wafpass-dashboard:
build:
context: ./wafpass-dashboard
dockerfile: Dockerfile
restart: unless-stopped
depends_on:
- wafpass-server
ports:
- "3000:80"
volumes:
postgres_data:
Zu CI / Pre-commit hinzufügen
Blockieren Sie nicht konforme Infrastruktur, bevor sie Ihren Main-Branch erreicht. WAFPass läuft vollständig auf den Dateien im Repo, daher sind CI-Checks schnell und benötigen keine Cloud-Secrets.
Pre-commit-Hook installieren
Führen Sie das Installations-Skript aus dem WAFPass-Repository einmal pro Klon aus. Danach wird jeder git commit automatisch geprüft.
WAFPass zu GitHub Actions hinzufügen
Verwenden Sie die offizielle WAFPass GitHub Action, um Pull Requests mit Fehlkonfigurationen abzulehnen. Funktioniert mit öffentlichen und privaten Repositories.
Erweitertes / manuelles Setup
Installieren Sie nur die Komponenten, die Sie brauchen. Starten Sie mit der CLI für CI/CD und fügen Sie Server und Dashboard hinzu, wenn Sie Persistenz und visuelle Exploration benötigen.
Kern-Evaluierungsengine — IaC parsen, Controls bewerten, Berichte erzeugen
Von PyPI (empfohlen)
Aus Quellcode
macOS (Apple M-Serie)
FastAPI-Persistenzschicht — speichert Läufe, Waivers, Secret-Funde und Audit-Events
Von PyPI (empfohlen)
Konfigurieren & starten
API-Dokumentation unter http://localhost:8000/api/docs
React-Webdashboard — 22+ Compliance-Ansichten, Evidence-Export, RBAC
Häufige Probleme & Lösungen.
Schnelle Antworten, wenn etwas beim ersten Versuch nicht funktioniert.
Controls nicht gefunden
Wenn wafpass check "controls directory not found" meldet, zeigt die CLI automatisch Download-Anweisungen an. Stellen Sie sicher, dass der controls/-Ordner neben dem Verzeichnis liegt, in dem Sie Scans ausführen.
Port bereits in Verwendung
Verwenden Sie einen anderen Port für den Server oder das Dashboard:
Datenbankverbindungsfehler
Stellen Sie sicher, dass PostgreSQL läuft und Ihr DATABASE_URL korrekt ist:
Docker-Build schlägt fehl
Stellen Sie sicher, dass alle drei Repositories nebeneinander im selben Elternverzeichnis geklont sind, wenn Sie aus dem Quellcode bauen:
Sie haben Ihre erste Prüfung ausgeführt. Was jetzt?
Wählen Sie den nächsten Schritt, der zu Ihrer Rolle passt: Vertiefen Sie Framework-Kenntnisse, binden Sie WAFPass in CI/CD ein oder erkunden Sie das vollständige visuelle Dashboard.
Die 8 Säulen erkunden
Verstehen Sie das WAF++-Framework und die Controls hinter jeder Säule.
Mehr erfahren → 02Zu GitHub Actions hinzufügen
Blockieren Sie nicht konforme Merges, bevor sie Ihren Main-Branch erreichen.
Action einrichten → 03Dokumentation lesen
CLI-Referenz, Server-API, Konfiguration und erweiterte Nutzung.
Dokumentation öffnen →