Uzyskaj dziś pierwszy wynik skanu WAFPass.
Zainstaluj otwartoźródłowe WAFPass CLI, pobierz kontrole WAF++ i przeskanuj przykładowy plik Terraform. Brak danych logowania do chmury, brak czarnej skrzynki — tylko analiza statyczna Twojego Infrastructure-as-Code.
Wolisz jedno polecenie? Installer zainstaluje CLI i kontrole za Ciebie.
curl -fsSL https://waf2p.dev/install.sh | sh
irm https://waf2p.dev/install.ps1 | iex
Jasna ścieżka dla każdego przypadku użycia.
Zacznij od 2-minutowego szybkiego startu CLI. Przełączaj zakładki, gdy będziesz gotowy na dashboard, CI lub ręczną konfigurację.
Uzyskaj pierwszy wynik w 2 minuty
Postępuj zgodnie z czterema krokami poniżej. Każde polecenie zostało zaprojektowane tak, aby dać czytelny wynik za pierwszym razem.
Zainstaluj CLI
WAFPass jest opublikowany na PyPI jako wafpass-core. Zalecany jest Python 3.11+.
Pobierz kontrole
Katalog kontroli WAF++ zawiera 83+ reguł, których WAFPass używa do oceny Twojego kodu.
Zalecane: sklonuj repozytorium kontroli. Alternatywa: pobierz archiwum zip z kontrolami ze strony WAFPass i wypakuj je do controls/.
Zapisz przykładowy plik Terraform
Utwórz minimalny plik main.tf. Ten przykład celowo pozostawia publiczny bucket S3, aby WAFPass miał co oznaczyć.
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
}
Uruchom pierwsze sprawdzenie
Skieruj WAFPass na bieżący katalog i wydrukuj podsumowanie JSON.
Powinieneś zobaczyć wynik podobny do tego:
{
"total_controls": 83,
"passed": 81,
"failed": 2,
"pillars": {
"security": { "passed": 18, "failed": 2 }
}
}
Uruchom pełny dashboard lokalnie
Monorepo WAF2p/pass dostarcza ujednolicony plik docker-compose.yml. Uruchamia CLI, serwer, dashboard, PostgreSQL i Keycloak jednym poleceniem.
| Usługa | URL | Opis |
|---|---|---|
| wafpass-dashboard | http://localhost:3000 | Dashboard React |
| wafpass-server | http://localhost:8000 | REST API FastAPI |
| Keycloak (SSO) | http://localhost:8080 | Dostawca tożsamości (admin / admin) |
| postgres | localhost:5432 | Baza danych PostgreSQL |
Gdy kontenery będą zdrowe, zasil pierwszy widok dashboardu poleceniem demo lub wypchnij wynik skanu:
Zobacz pełny docker-compose.yml
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:
Dodaj do CI / pre-commit
Blokuj niezgodną infrastrukturę, zanim dotrze do głównej gałęzi. WAFPass działa wyłącznie na plikach w repozytorium, więc sprawdzenia CI są szybkie i nie wymagają sekretów chmurowych.
Zainstaluj hook pre-commit
Uruchom skrypt instalacyjny z repozytorium WAFPass raz na klon. Potem każdy git commit jest sprawdzany automatycznie.
Dodaj WAFPass do GitHub Actions
Użyj oficjalnej akcji GitHub WAFPass, aby nie przepuszczać pull requestów wprowadzających błędne konfiguracje. Działa z publicznymi i prywatnymi repozytoriami.
Konfiguracja zaawansowana / ręczna
Zainstaluj tylko te komponenty, których potrzebujesz. Zacznij od CLI do CI/CD, a następnie dodaj serwer i dashboard, gdy potrzebujesz trwałości i wizualnej eksploracji.
Silnik oceny rdzenia — parsowanie IaC, ocena kontroli, generowanie raportów
Z PyPI (zalecane)
Ze źródła
macOS (Apple M-series)
Warstwa trwałości FastAPI — przechowuje uruchomienia, zwolnienia, znaleziska sekretów i zdarzenia audytu
Z PyPI (zalecane)
Skonfiguruj i uruchom
Dokumentacja API dostępna pod adresem http://localhost:8000/api/docs
Dashboard webowy React — 22+ widoki zgodności, eksport dowodów, RBAC
Częste problemy i rozwiązania.
Szybkie odpowiedzi, gdy coś nie działa za pierwszym razem.
Nie znaleziono kontroli
Jeśli wafpass check zgłasza "controls directory not found", CLI automatycznie wyświetli instrukcje pobierania. Upewnij się, że folder controls/ znajduje się obok miejsca, w którym uruchamiasz skany.
Port jest już używany
Użyj innego portu dla serwera lub dashboardu:
Błędy połączenia z bazą danych
Sprawdź, czy PostgreSQL działa i czy Twój DATABASE_URL jest poprawny:
Budowa Docker się nie powiodła
Upewnij się, że wszystkie trzy repozytoria są sklonowane obok siebie w tym samym katalogu nadrzędnym podczas budowania ze źródła:
Uruchomiłeś pierwsze sprawdzenie. Co dalej?
Wybierz kolejny krok dopasowany do Twojej roli: pogłęb wiedzę o frameworku, podłącz WAFPass do CI/CD lub zbadaj pełny wizualny dashboard.
Poznaj 8 filarów
Zrozum framework WAF++ i kontrole stojące za każdym filarem.
Czytaj więcej → 02Dodaj do GitHub Actions
Blokuj niezgodne merge, zanim dotrą do głównej gałęzi.
Skonfiguruj akcję → 03Przeczytaj dokumentację
Referencja CLI, API serwera, konfiguracja i zaawansowane użycie.
Otwórz dokumentację →