Toda política do F5 AWAF - Advanced WAF (antigo BIG-IP ASM - Application Security Manager) tem um enforcementMode, e ele é a primeira coisa a verificar ao lê-la, porque decide se a política de fato protege a aplicação ou apenas a observa.

Os dois modos

A F5 define o comportamento com precisão. Em modo blocking, o tráfego é bloqueado quando causa uma violação que está configurada para bloquear. Em modo transparent, o tráfego não é bloqueado mesmo quando uma violação é disparada.

{ "policy": { "enforcementMode": "blocking" } }

Então uma política pode estar repleta de assinaturas cuidadosamente configuradas, proteção contra força bruta e Data Guard, e ainda assim não bloquear absolutamente nada, simplesmente por estar em modo transparent. Transparent é, na prática, somente monitoramento: as violações são detectadas e registradas, que é exatamente o que se quer durante o ajuste, mas nenhuma requisição é rejeitada.

Por que a flag "block" por violação não é suficiente

Dentro de blocking-settings, cada violação carrega suas próprias flags de block, alarm e learn. É tentador ler essas flags e concluir que a política bloqueia um determinado ataque. Mas essas flags de block por violação só têm efeito quando a política como um todo está em modo blocking. Uma violação marcada para bloquear em uma política transparent ainda assim não bloqueará. O enforcementMode no nível da política controla tudo abaixo dele.

A armadilha relacionada: modo passivo

Há uma segunda forma de uma política acabar sem conseguir bloquear. enablePassiveMode associa a política a um virtual server Performance L4 (FastL4), onde o tráfego é analisado mas não é modificado de forma alguma. Uma política passiva inspeciona e registra, mas não consegue rejeitar uma requisição em linha, não importa o que o enforcementMode diga.

Lendo na prática

Ao inspecionar uma política, resolva a postura de enforcement antes de qualquer outra coisa. Se o enforcementMode for transparent, trate todo "block" que você vê abaixo dele como aspiracional, não ativo. O caminho seguro de migração é deliberado: rode em transparent enquanto elimina falsos positivos, confirme que as violações que importam estão configuradas para bloquear, e só então mude para blocking, de modo que a virada passe a impor exatamente o que você já validou.