Uma correspondência pode não interromper
A mesma regra 1001 é executada com o motor On e com DetectionOnly. No primeiro caso pede interrupção; no segundo continua a aparecer nas correspondências, sem ação disruptiva. Isto é útil para observar uma política antes de a aplicar, mas não prova que o conteúdo seja seguro ou autorizado. O modo Off é diferente porque não processa regras. Na reunião de mudança, indica explicitamente o modo e separa correspondências, interrupções pedidas e decisões aplicadas pelo conector. Sem esta separação, duas equipas podem descrever resultados distintos usando a mesma palavra “bloqueado”.
Investigar a origem de uma pontuação
As regras didáticas somam três pontos quando alpha corresponde e dois quando beta corresponde. A regra final 2003 compara a soma com cinco. alpha isolado não interrompe; alpha e beta juntos interrompem. Ao subir o limiar para seis, os dois contributos continuam registados, mas a interrupção desaparece. O exercício usa uma pontuação própria, sem reproduzir a configuração completa de CRS. Para um falso positivo, investiga os contributos e os campos envolvidos antes de alterar globalmente o limiar. A última regra explica a decisão, mas não identifica por si a origem do erro de classificação.
Medir o que se recupera e o que se perde
Num exercício de análise, o conjunto contém duzentos pedidos legítimos e vinte controlos que devem ser bloqueados. A alteração reduz falsos bloqueios de oito para dois, passando de quatro para um por cento nesse conjunto legítimo. Porém, só catorze dos vinte controlos continuam detetados. A melhoria de disponibilidade coexistiu com seis perdas de deteção. Estes números são dados didáticos, não medição de eficácia do laboratório Coraza. Identifica os casos perdidos, avalia o âmbito da alteração e evita promover uma política com base numa única percentagem agregada.
Confirmar a representação disponível às regras
O teste JSON envia o mesmo marcador que era encontrado no formulário. Sem selecionar explicitamente o processor JSON, a regra sobre ARGS não corresponde nesse fixture. Com a seleção em fase 1, o campo é disponibilizado e a regra interrompe. Um corpo truncado aciona uma regra própria de erro, configurada para pedir 422. O código é uma escolha do exercício. A ausência de correspondência anterior não era melhoria de segurança: faltava a representação esperada. Parsing também não substitui schema, autorização e invariantes que continuam a pertencer ao contrato da aplicação.
Comparar a sequência de transformações
O cabeçalho sintético LAB%4DARKER passa por urlDecode e depois lowercase, produzindo a correspondência com labmarker. Na ordem inversa, a comparação deixa de corresponder: a descodificação introduz uma letra maiúscula depois da passagem para minúsculas. O runner conserva a entrada original e não executa um backend. Portanto, a observação demonstra a decisão de inspeção, sem provar reescrita do pedido entregue. Ao mudar transformações, usa entradas conhecidas, regista a sequência exata e verifica o comportamento do conector e da aplicação antes de generalizar para um serviço real.
Entregar evidência com versão e limites
O laboratório guarda main.go, go.mod, go.sum e hashes dos três ficheiros, com a versão Coraza 3.8.0 e Go 1.27.1. O arquivo Go foi comparado com o checksum publicado no endereço oficial; isso não é uma afirmação de verificação PGP. O conjunto CRS não foi carregado e AWS WAF não foi executado. Para aceitar uma política integrada, acrescenta browser, API e batch, tratamento de interrupções e recuperação. O resumo é que menos bloqueios só constitui melhoria quando a representação, a decisão e a cobertura preservada foram verificadas no âmbito relevante.
# From content/labs/waf-tuning; requires Go and the pinned modules
go run . /tmp/waf-evidence.json
# Eight offline observation groups; no listener or HTTP requests
# engineMode, runtimeExclusion, staticExclusion, lateExclusion
# phaseOrder, scoring, transformationOrder, bodyProcessorCaso fictício: o batch passa para JSON e os marcadores deixam de corresponder. A equipa confirma o processor antes de interpretar a queda dos bloqueios como melhoria.
Armadilhas comuns
Confundir DetectionOnly com Off, ausência de parser com tráfego seguro, pontuação com paranoia level ou inspeção transformada com reescrita no backend.
Tópicos relacionados: Ordem, ações e overrides · Parsing e limites de inspeção · Afinação e falsos positivos
Interpreta o resultado a partir do modo, representação, regras e conector. Reavalia a política com casos legítimos e cobertura que deve permanecer.
Referência: Coraza body processing · DR WAF 2026-09; selected AWS WAF and OWASP CRS operational concepts