Bug de notação científica histórica frustra defesas WAF

Pesquisadores de segurança descobriram que uma vulnerabilidade histórica que afeta os bancos de dados MySQL e MariaDB causou sérias falhas para tecnologias de segurança da AWS.

Os clientes do AWS Web Application Firewall (WAF) ficaram desprotegidos contra ataques de injeção de SQL que dependiam de um bug de notação científica descoberto pela primeira vez em 2013, revelou uma pesquisa da GoSecure. A mesma falha um tanto obscura também afetou os clientes do ModSecurity, um WAF de código aberto.

A edição remonta a uma apresentação do Black Hat de 2013, feita pelo pesquisador de segurança Roberto Salgado, que se aprofundou em várias técnicas de injeção de SQL. A equipa GoSecure descobriu que o referido bug de notação científica, que foi citado por Salgado, era muito mais poderoso do que inicialmente suspeitava.

A falha permitiu que a sintaxe SQL permanecesse válida mesmo quando deveria ter sido considerada inválida, confundindo as defesas de segurança como WAFs no processo. Problemas surgiram ao lidar com notações científicas, especificamente a notação e (exponencial), conforme explicado em uma postagem técnica detalhada no blog da GoSecure.

A empresa sediada em Montreal divulgou este bug do WAF para a Amazon em agosto, recebendo a confirmação de que havia sido resolvido no início de outubro.

Foi só nessa época que GoSecure descobriu que o componente Libinjection do ModSecurity era igualmente vulnerável. Depois de confirmar que as configurações de bloqueio mais rígidas (especificamente a solução alternativa de nível 2 de paranóia em ModSecurity / libinjection) aliviaram o problema, GoSecure divulgou publicamente suas descobertas.

Bug de confusão

Amazon Web Services (AWS) oferece um produto chamado CloudFront que pode ser combinado com AWS WAF com regras predefinidas. Os testes da GoSecure mostraram que essas regras podem ser contornadas, tirando proveito da vulnerabilidade da notação científica na tecnologia subjacente.

Esta falha não afeta o tratamento de dados do MySQL ou MariaDB, “nem permite escalar seus privilégios até encontrarmos o desvio WAF”, explicam os pesquisadores da GoSecure. “As implicações de segurança desse problema estão fora do controle do MySQL e MariaDB”, de acordo com GoSecure.

“Qualquer WAF ou produto de segurança semelhante que desprezasse as solicitações SQL formadas dessa forma seria vulnerável.” Surgem problemas para WAFs porque o que parecem ser solicitações inválidas se tornam válidas assim que as notações científicas são analisadas por sistemas de back-end. “Se as solicitações forem malformadas, é natural que os produtos de segurança não as considerem SQL válidas, tornando-as desnecessárias para bloqueio”, conclui GoSecure.

Em resposta a uma solicitação para resumir suas descobertas do The Daily Swig, GoSecure ofereceu uma explicação concisa:

“Há um problema no MySQL e nos analisadores de sintaxe SQL do MariaDB que silenciosamente elimina alguns caracteres em uma consulta SQL. Ao abusar disso, poderíamos ignorar WAFs, incluindo AWS WAF da Amazon (que foi corrigido) e podemos ignorar ModSecurity (corrigível por meio de alteração de configuração). ”

Fonte: https://portswigger.net/