Onboarding · Sua primeira verificação em 15 minutos

Começar comWAFPass

Instale a pilha de conformidade WAF++ de código aberto e execute sua primeira avaliação em cinco etapas. Sem credenciais de nuvem, sem caixa preta — apenas análise estática em sua Infraestrutura-como-Código.

v1.1.0
WAFPass CLI
8
Pilares
83+
Controlos
Acoplamento
Compor pronto
Apache 2.0
Licença de código
TERRA VERMELHA

De zero a seu primeiro cheque em cinco passos.

Siga o caminho numerado abaixo. Cada passo links para a seção correspondente para que você nunca perca a orientação.

Início rápido: seu primeiro WAF++ verificar

Este tutorial lhe dá um resultado garantido. Você vai instalar o WAFPass CLI, baixar o WAF++ controla, cria um arquivo Terraform mínimo, e veja WAFPass sinalizando um achado real.

1

Escolha o seu caminho

Para este tutorial você só precisa do CLI. Se você já quer o painel completo + servidor, saltar paraAcoplamento Comporapós o primeiro exame.

2

Instalar o CLI

WAFPass é publicado à PyPI comowafpass-core. Python 3.11+ é recomendado.

bash
$ pip install wafpass-core
$ wafpass -- version
3

Obter os controles

Baixe o catálogo de controles WAF++ e extraia-o em umcontrols/pasta ao lado de onde você executa scans.

bash
$ unzip wafpp- controls.zip - d controls/
$ Is controles/ cabeça - 5
4

Criar um arquivo Terraform mínimo e digitalizá-lo

Salve este exemplo deliberadamente imperfeito comomain.tfO WAFPass deve indicar pelo menos uma descoberta de segurança.

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
$ verificação wafpass . -- output json
5

Veja os resultados

No terminal você verá um resumo como este — um FAIL para o balde público S3, agrupados por pilar e controle.

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

Para explorar as descobertas visualmente, execute oAcoplagem Compor pilhae empurrar o JSON parahttp://localhost:8000/runs.

O ESTADO

Três componentes. Um fluxo de trabalho de conformidade.

Instale apenas o CLI para pipelines CI/CD, ou adicione o servidor e painel para histórico persistente e exploração visual.

wafpass CLI

Motor de avaliação principal. Processa Terraform e AWS CDK, roda em qualquer pipeline CI/CD. Não são necessárias credenciais de nuvem.

PyPI: wafpass-core
servidor wafpass

API REST FastAPI com PostgreSQL. As lojas são executadas, dispensas, aceitação de riscos, descobertas secretas e eventos de auditoria completos.

PyPI: servidor wafpass
wafpass-dashboard

Reagir painel web. 22+ páginas de exploração de conformidade, exportação de evidências prontas para auditor e gerenciamento de funções RBAC.

Reagir + Vite
OPÇÃO A — RECOMENDADA

Adornador Compor: pilha completa

O monorepo WAF2p/pass envia uma unidadedocker-compose.yml. Clone uma vez, configure seu.env, e trazer toda a pilha em um único comando.

bash
$ git clone https://github.com/WAF2p/pass.git
$ cd pass
$ cp .env.exemplo .env
$ # Editar .env — set POSTGRES PASSWORD, WAPPASS JWT SECRET, etc.
$ docker compor -d
Serviço URL Designação das mercadorias
wafpass-dashboard http://localhost:3000 Reagir painel
servidor wafpass http://localhost:8000 API FastAPI REST
Keycloak (SSO) http://localhost:8080 Fornecedor de identidade (administrador / administrador)
pós-gres localhost:5432 Base de dados PostgreSQL

Empurre o seu primeiro resultado de digitalização:

bash
$ verificação wafpass ./infra/ -- output json
$ verificação wafpass ./infra/ --output json -s -X POST http://localhost:8000/runs \
-H "Tipo de Conteúdo: aplicação/json" -d @-
Ver docker-compose.yml completo
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:
OPÇÃO B — FLEXÍVEL

Instalar componentes individualmente

Instale apenas o que você precisa. Comece com o CLI para integração CI/CD imediata, depois adicione servidor e painel quando estiver pronto para exploração persistente de histórico e conformidade visual.

1
Instalar o wafpass CLI

O motor de avaliação do núcleo — analisar a IaC, avaliar os controlos, gerar relatórios

De PyPI (recomendado)

bash
$ pip install wafpass-core
$ uv adicionar wafpass-core # recomendado para projetos Python

De origem

bash
$ git clone https://github.com/WAF2p/pass.git
$ cd pass
$ uv pip install -e. # recomendado
$ pip install -e ".[pdf]" # com suporte a relatórios PDF
$ pip install -e ".[dev]" # com dependências dev

macOS (série M da maçã)

bash
$ brew install git python uv
$ git clone https://github.com/WAF2p/pass.git && cd pass
$ uv pip install -e .
$ wafpass -- version # verificar a instalação
2
Instalar o servidor wafpass

Camada de persistência FastAPI — lojas roda, renúncias, descobertas secretas e eventos de auditoria

De PyPI (recomendado)

bash
$ pip instalar o servidor wafpass
$ uv add wafpass-server # recomendado para projetos Python

Configurar o início do &

bash
$ cp .env.example .env # set DATABASE URL e JWT secret
$ alembic upgrade head # aplicar migrações de banco de dados
$ uvicorn wafpass server.main: app --reload --port 8000

Documentos API disponíveis emhttp://localhost:8000/api/docs

3
Instalar o tabuleiro wafpass

Reagir painel web — 22+ visualizações de conformidade, exportação de provas, RBAC

bash
$ git clone https://github.com/WAF2p/wafpass-dashboard.git
$ cd wafpass- dashboard
$ npm install
$ cp .env.exemplo .env.local # set VITE API URL
$ npm execute o servidor dev # dev em http://localhost:5173
$ npm execute build # production build
HOOK PRÉ-COMITÁRIO

Bloquear commits não conformes.

WAFPass envia um gancho pré-compromisso que executa verificações de conformidade antes de cadagit commit. Commits não conformes são bloqueados automaticamente — nenhuma chamada na nuvem, nenhuma espera de CI extra.

Funciona em macOS, Linux e Windows (Git Bash / PowerShell).

Configuração única

bash
$ bash hooks/install.sh # macOS / Linux / Git Bash
$ .\hooks\install.ps1 # Windows PowerShell
PÓS-INSTALAÇÃO

Levanta-te e corre.

Baixe controles, execute sua primeira varredura e abra o painel para explorar sua postura de conformidade.

1. Download Controls

Os controles WAF++ são publicados separadamente e baixados sob demanda.

  1. Visitawaf2p.dev/wafpass/
  2. CliqueDownload Controls
  3. Extrair para o seu diretório de controles
bash
$ git clone https://github.com/WAF2p/framework.git
$ cp framework/módulos/controlos/controlos/*.yml
2. Execute seu primeiro exame

Aponte WAFPass em seu código Terraform ou CDK e obtenha um relatório completo de conformidade.

bash
$ verificação wafpass ./infra/
$ verificação wafpass ./infra/ -- output pdf \
--pdf-out report.pdf
3. Abra o painel

Explore sua postura de conformidade, gerencie renúncias e exporte pacotes de evidências.

  1. Abrirlocalhost:3000(Docker) oulocalhost:5173(dev)
  2. Login com credenciais de administrador de seu.env
  3. Explore descobertas, deriva e matriz de conformidade
PROBLEMAS

Problemas comuns & corrigidos.

Respostas rápidas aos problemas de configuração mais frequentes.

Controlos não encontrados

Sewafpass checkrelatórios "controla diretório não encontrado", o CLI irá exibir instruções de download automaticamente. Seguir opós- instalaçãoPassos acima.

Porta já em uso

Use uma porta diferente para o servidor ou painel:

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

Erros de ligação à base de dados

Verificar o PostgreSQL em execução e o seuDATABASE_URLestá correcto:

$ psql $DATABASE URL - c "SELECT 1"

Falha na compilação do Docker

Garantir que todos os três repositórios são clonados lado a lado no mesmo diretório pai:

$ ls - 1
passar/
servidor wafpass/
wafpass- dashboard/