Configurando o WAF + ALB para impedir a injeção de SQL

1

Estou tentando configurar um ALB da Amazon (Application Load Balancer, não "clássico" ELB) para usar o Web Application Firewall (WAF) para rejeitar solicitações https que contenham potenciais cargas de XSS ou SQL Injection.

Eu configurei no WAF uma regra XSS

  • O corpo contém uma ameaça de script entre sites.
  • A string de consulta contém uma ameaça de script entre sites após a decodificação como URL.

e uma regra de injeção de SQL

  • O corpo contém uma ameaça de injeção de SQL.
  • A string de consulta contém uma ameaça de injeção de SQL após a decodificação como URL.

Quando eu navego até o formulário de login de um aplicativo da Web atrás do ALB e envio o nome de usuário

<script>danger</script>

o ALB intercepta a solicitação como esperado e retorna um status HTTP 403.

No entanto, quando envio o nome de usuário

Robert'); DROP TABLE students;--

Eu recebo um erro do aplicativo da web indicando um nome de usuário e senha inválidos, em vez do HTTP 403 esperado.

Por que a regra do XSS pode funcionar de maneira eficaz, enquanto a regra de Injeção de SQL criada de forma semelhante não interrompe a entrada que é um exemplo clássico de injeção de SQL? Eu preciso definir essa regra de alguma forma diferente? Quaisquer problemas conhecidos que aplicam o WAF ao ALB (sei que a integração é muito nova, portanto, suponho que possa haver alguns bugs).

    
por Eric J. 04.01.2017 / 22:33

0 respostas