← WAF: proteção e operação de aplicações
10 / 12 · 60 MIN

Respostas, efeitos e aceitação WAF

Compara bloqueios antes e depois da aplicação, verifica MIME e limites de resposta e prepara reconciliação e passagem operacional.

Localizar o bloqueio no ciclo do pedido

O mesmo 403 pode representar momentos diferentes. A regra 5101 bloqueia o pedido antes do handler; a regra 5201 procura o marcador DR-RESPONSE no corpo produzido pela aplicação, na fase 4. Nesse segundo caso, applicationCalls e syntheticEffects valem um antes de o cliente receber 403. O contador é apenas memória do fixture, sem base de dados ou operação financeira. Serve para tornar visível a ordem. Ao diagnosticar um caso real, correlaciona a fase com eventos aplicacionais em vez de deduzir não execução a partir do código HTTP.

Comparar resposta proposta e resposta entregue

O handler propõe um corpo text/plain com o marcador e acrescenta X-Lab-App. Quando a regra de resposta interrompe, o ResponseRecorder mostra 403, corpo vazio e ausência desse cabeçalho. A prova pertence ao wrapper Coraza 3.8.0 ensaiado e à escrita simples do fixture. Não generaliza para todos os conectores ou respostas em streaming. Regista a resposta proposta separadamente do resultado entregue. Essa distinção permite explicar ao cliente porque a aplicação pode ter concluído trabalho sem conseguir entregar a confirmação que ele esperava receber.

Verificar acesso e MIME em conjunto

O fixture seleciona explicitamente text/plain para inspeção de resposta. Mantendo o marcador e mudando apenas o MIME para application/octet-stream, a resposta passa e a regra não corresponde. Desativar SecResponseBodyAccess também deixa passar o caso text/plain. São fronteiras diferentes: disponibilizar o corpo e selecionar o seu tipo. Numa release fictícia de exportação, testes funcionais podem passar enquanto a cobertura muda. Inclui os tipos realmente produzidos na matriz de aceitação e confirma a política pretendida com segurança e desenvolvimento, sem assumir que todos os formatos são equivalentes.

Distinguir limite de saída e falha da aplicação

Com limite de resposta 64 e ação Reject, o handler produz 96 bytes e o wrapper devolve 500. O handler foi chamado e o contador permanece incrementado. O ensaio não contém um crash da aplicação nem uma recusa do pedido antes da execução. Esta comparação ajuda APS a evitar atribuir qualquer 500 ao backend. Correlaciona tamanho, fase, configuração e resultado antes de decidir a mitigação. Aumentar limites tem implicações de buffering e capacidade que este pequeno fixture não mede; é necessário ensaiar as condições representativas do serviço.

Recuperar sem duplicar efeitos

Numa API fictícia que grava uma instrução antes de responder, perder a confirmação pode deixar o cliente sem saber o resultado. Bloquear a resposta não implementa rollback da instrução. Antes de repetir, consulta o estado pelo identificador e aplica o contrato de idempotência e reconciliação acordado. Um identificador novo pode criar outro efeito. Em paralelo, investiga o falso positivo com dados sintéticos e uma exceção delimitada, mantendo regressão dos percursos que devem continuar protegidos. O laboratório apenas ilustra a sequência; não implementa a transação ou o mecanismo de recuperação.

Praticar o go/no-go e a passagem de turno

A ficha abaixo propõe uma reunião entre gestor técnico, APS, segurança e desenvolvimento. Distribui papéis e pede à equipa RUN para explicar um 413 de entrada e um 403 de saída usando a matriz. Preenche evidência, responsável, critério de interrupção e recuperação; deixa explícitos os testes que faltam no conector real. A frase “The HTTP wrapper checks passed; deployment-path validation remains open” é adequada para comunicar o limite em inglês. Nenhum workshop humano foi realizado para validar esta ficha. Os mínimos quantitativos do curso não substituem esse exercício ou revisão especializada.

DR proposed WAF acceptance workshop
No human workshop has been performed.
Fictional exercise; not a BNP Paribas procedure.

Roles: technical PM, APS/RUN, application owner, security owner.
Scope: actual connector, pinned engine/rules, clients and application paths.

Case | Expected phase | Application called? | Client result | Evidence | Owner
Clean request | request + response | yes | expected content | ... | ...
Request marker | phase 2 | no | policy rejection | ... | ...
Oversize request | body limit | no with Reject | agreed error | ... | ...
Partial request | inspected prefix | may be yes | full body contract | ... | ...
Response marker | phase 4 | yes | blocked confirmation | ... | ...
Unselected MIME | response selection | yes | coverage gap to review | ... | ...
Oversize response | response limit | yes | agreed recovery | ... | ...

Decisions to record:
- Legitimate sizes, MIME types and supported clients.
- Controls covering complete content beyond inspection limits.
- Mode transition and false-positive regression evidence.
- Operation identifier, outcome lookup and replay contract.
- Abort criteria, rollback procedure and unresolved exceptions.
- RUN owner, escalation contact and next review date.

Suggested English update:
The HTTP wrapper checks passed; deployment-path validation remains open.
A response block can follow application execution. Confirm the operation
outcome before replaying and retain an owner for each unresolved case.

Local evidence: Coraza 3.8.0 WrapHandler and httptest objects.
Not executed: listener, TCP/TLS, production proxy, full CRS, AWS WAF,
representative load, streaming, real financial writes or human rehearsal.
NA PRÁTICA

Uma API fictícia conclui uma instrução e a resposta é bloqueada. APS consulta o ID, evita repetição sem controlo e coordena a correção da regra de saída.

Armadilhas comuns

Interpretar 403 como ausência de efeito, 500 como crash, ausência de alertas como cobertura ou mudança de MIME como detalhe apenas visual; repetir com ID novo sem reconciliação.

Tópicos relacionados: Arquitetura e cobertura do WAF · Parsing e limites de inspeção · Logs, mudanças e passagem para RUN

Leva esta ideia contigo

Uma decisão WAF precisa de contexto de fase e de integração. Verifica o que já executou, o que foi entregue e quem resolve resultados incertos antes de fechar a mudança.

Criar conta

Referência: Coraza HTTP response interceptor source · DR WAF 2026-09; selected AWS WAF and OWASP CRS operational concepts