Su primer cheque en 15 minutos

Empieza conWAFPass

Instale la pila de cumplimiento WAF+ de código abierto y ejecute su primera evaluación en cinco pasos. Sin credenciales de nube, sin caja negra — solo análisis estático en su Infraestructura-como-Code.

v1.1.0
WAFPass CLI
8
Pilares
83+
Controles
Docker
Composición lista
Apache 2.0
Licencia de código
RED THREAD

De cero a su primer cheque en cinco pasos.

Siga la ruta numerada a continuación. Cada paso se vincula a la sección de emparejamiento para que nunca pierda la orientación.

Inicio rápido: su primer WAF++ cheque

Este tutorial le da un resultado garantizado. Usted instalará el WAFPass CLI, descargará el WAF++ controles, crear un archivo Terraform mínimo, y ver la bandera de WAFPass un hallazgo real.

1

Elija su camino

Para este tutorial solo necesitas el CLI. Si usted ya quiere el dashboard completo + servidor, saltar aDocker Composedespués del primer escaneo.

2

Instala el CLI

WAFPass se publica a PyPI comowafpass-core. Python 3.11+ se recomienda.

Bash
$ pip install wafpass-core
$ wafpass --versión
3

Obtener los controles

Descargar el catálogo de controles WAF++ y extraerlo en uncontrols/carpeta al lado de donde se ejecutan escaneos.

Bash
$ unzip wafpp-controls.zip -d controles/
$ Is controls/ Silencioso cabeza -5
4

Crear un archivo Terraform mínimo y escanearlo

Guardar este ejemplo deliberadamente imperfecto comomain.tfLa WAFPass debería marcar por lo menos un hallazgo de seguridad.

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
}
Bash
$ wafpass check . --output json ¦
5

Vea los resultados

En la terminal verás un resumen como este: un FAIL para el balde público S3, agrupado por pilar y control.

{
  "total_controls": 83,
  "passed": 81,
  "failed": 2,
  "pillars": {
    "security": { "passed": 18, "failed": 2 }
  }
}

Para explorar los hallazgos visualmente, ejecuteDocker Compose stacky empujar al JSONhttp://localhost:8000/runs.

EL ESTADO

Tres componentes. Un flujo de trabajo de cumplimiento.

Instale sólo el CLI para tuberías CI/CD, o agregue el servidor y el panel de control para historia persistente y exploración visual.

wafpass CLI

Motor básico de evaluación. Parses Terraform y AWS CDK, se ejecuta en cualquier oleoducto CI/CD. No se necesitan credenciales en la nube.

PyPI: wafpass-core
wafpass-servidor

FastAPI REST API con PostgreSQL. Las tiendas funcionan, renuncias, aceptaciones de riesgos, hallazgos secretos y eventos de auditoría completa.

PyPI: servicio de wafpass
wafpass-dashboard

Reactúa el panel web. 22 páginas más de exploración de cumplimiento, exportación de pruebas preparadas por auditores y gestión de funciones de RBAC.

React + Vite
OPCIÓN A - RECOMENDADA

Docker Compose: Full Stack

El WAF2p/pass monorepo envía un unificadodocker-compose.yml. Clone una vez, configura tu.env, y traer toda la pila en un solo comando.

Bash
$ git clone https://github.com/WAF2p/pass.git
$ cd pass
$ cp .env.example .env
$ # Editar .env — set POSTGRES PASSWORD, WAFPASS JWT SECRET, etc.
$ docker compose up -d
Servicio URL Descripción
wafpass-dashboard http://localhost:3000 Dashboard de reacción
wafpass-servidor http://localhost:8000 API REST de FastAPI
Keycloak (SSO) http://localhost:8080 proveedor de identidad (admin / admin)
postgres localhost:5432 Base de datos PostgreSQL

Empuja el primer resultado de la exploración:

Bash
$ cheque de wafpass ./infra/ --output json
$ wafpass check ./infra/ --output json ⋅ curl -s -X POST http://localhost:8000/runs \
-H "Content-Type: aplicación/json" -d @-
Ver completo 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:
OPCIÓN B - FLEXIBLE

Instalar componentes individualmente

Instala sólo lo que necesitas. Comience con el CLI para la integración inmediata de CI/CD, luego agregue servidor y dashboard cuando esté listo para la historia persistente y exploración del cumplimiento visual.

1
Instalar wafpass CLI

El motor de evaluación central - parse IaC, evalúa los controles, genera informes

De PyPI (recomendado)

Bash
$ pip install wafpass-core
$ uv añadir wafpass-core # recomendado para proyectos Python

De la fuente

Bash
$ git clone https://github.com/WAF2p/pass.git
$ cd pass
$ uv pip install -e . # recomendado
$ pip install -e ".[pdf]
$ pip install -e ".[dev]

macOS (Apple M-series)

Bash
$ instalación de cerveza git python uv
$ git clone https://github.com/WAF2p/pass.git "
$ uv pip install -e .
$ wafpass --versión # verificar instalación
2
Instalar wafpass-servidor

Capa de persistencia FastAPI — tiendas corre, exenciones, descubrimientos secretos y eventos de auditoría

De PyPI (recomendado)

Bash
$ pip install wafpass-servidor
$ uv añadir wafpass-servidor # recomendado para proyectos Python

Configuración y inicio

Bash
$ cp .env.example .env # set DATABASE URL and JWT secret
$ alembic upgrade head # apply database migrations
$ uvicorn wafpass server.main:app --reload --port 8000

Docs API disponibles enhttp://localhost:8000/api/docs

3
Instalar wafpass-dashboard

React web dashboard — 22 puntos de vista de cumplimiento, exportación de pruebas, RBAC

Bash
$ git clone https://github.com/WAF2p/wafpass-dashboard.git
$ cd wafpass-dashboard
$ npm
$ cp .env.example .env.local # set VITE API URL
$ npm run dev # dev server at http://localhost:5173
$ npm run build # producción construir
PRE-COMMIT HOOK

Bloquea compromisos no compatibles.

WAFPass envía un gancho pre-commit que ejecuta cheques de cumplimiento antes de cadagit commit. Los commits no compatibles se bloquean automáticamente — sin llamada a la nube, sin espera de CI adicional.

Funciona en macOS, Linux y Windows (Git Bash / PowerShell).

Configuración de una sola vez

Bash
$ bah ganchos/install.sh # macOS / Linux / Git Bash
$ .\hooks\install.ps1 # Windows PowerShell
POST-INSTALLATION

Levántate y corre.

Descargar controles, ejecutar su primer escaneo y abrir el panel para explorar su postura de cumplimiento.

1. Controles de descarga

Los controles WAF++ se publican por separado y se descargan bajo demanda.

  1. Visitawaf2p.dev/wafpass/
  2. Haga clicControles de descarga
  3. Extracto a tu directorio de controles
Bash
$ git clone https://github.com/WAF2p/framework.git
$ cp framework/modules/controls/controls/*.yml controls/
2. Ejecutar su primer escáner

Punto WAFPass en su código Terraform o CDK y obtener un informe de cumplimiento completo.

Bash
$ cheque de wafpass
$ wafpass check ./infra/ --output pdf \
--pdf-out report.pdf
3. Abra el Dashboard

Explore su postura de cumplimiento, gestione las exenciones y exporte paquetes de evidencia.

  1. Abiertolocalhost:3000(Docker) olocalhost:5173(dev)
  2. Iniciar sesión con las credenciales de administración de su.env
  3. Explorar hallazgos, deriva y matriz de cumplimiento
TROUBLESHOOING

Problemas comunes y correcciones.

Respuestas rápidas a los problemas de configuración más frecuentes.

Controles no encontrados

Siwafpass checkreportes "director de controles no encontrado", el CLI mostrará las instrucciones de descarga automáticamente. Seguir elpost-instalaciónpasos arriba.

Puerto ya en uso

Utilice un puerto diferente para el servidor o el panel:

$ uvicorn wafpass server.main:app --port 8001
$ npm run dev -- --port 5174

Errores de conexión de base de datos

Verificar PostgreSQL está funcionando y suDATABASE_URLes correcto:

$ psql $DATABASE URL -c "SELECT 1"

Docker construye fallas

Asegurar que los tres repositorios sean clonados lado a lado en el mismo directorio padre:

$ Is -1
pase/
wafpass-servidor/
wafpass-dashboard/