Home Blogs WAF Tuning fácil
Applications

About The Author

Outline

Pequenas e novas empresas estão enfrentando um desafio crítico de segurança. Eles precisam de uma solução de segurança sofisticada para manter seus aplicativos web seguros, minimizando os custos de contratação de especialistas de segurança dedicados ou serviços gerenciados de terceiros. Com novos vetores de ataque constantemente surgindo, a segurança de aplicativos da Web está se tornando mais crucial – e desafiadora do que nunca.

O Edgecast, agora Edgio, WAF é a solução. Ele oferece uma solução robusta e sofisticada que simplifica o gerenciamento. Os painéis em tempo real e a entrega de logs fornecem visibilidade atualizada para que os administradores possam identificar rapidamente ameaças e agir.

Neste blog, vamos nos concentrar em como as empresas podem identificar e eliminar falsos positivos e criar soluções personalizadas para seus aplicativos web sem incorrer em custos adicionais de suporte.

Se você é novo neste espaço e ainda não trabalha com o Edgio WAF, por favor, assista a este breve tutorial para entender a interface do usuário e como ela funciona.

Se você já tem uma conta, sinta-se à vontade para fazer este exercício comigo.

1. Vamos começar indo para o painel em tempo real e filtrando os eventos WAF por tempo. Este é o período de tempo para o qual você deseja analisar o tráfego da web. (Nota: Se você já executou algumas regras de ajuste antes, certifique-se de escolher um período de tempo após a última afinação).

Figura 1: Eventos WAF ocorridos nas últimas 6 horas.

2. Veja os 10 IDs de regra principais acionados por esse tráfego. As IDs de regra são uma ótima maneira de filtrar ainda mais o tráfego e observar as cargas úteis para vários eventos WAF. Dito isso, comece a filtrar o tráfego por esses IDs de regra um a um para análise posterior.

Figura 2: Top 10 regras que foram disparadas pelos eventos do WAF.

3. Em seguida, revise os valores de carga útil que acionaram esta regra olhando para o campo de valor correspondente.

Figura 3: Valores de carga útil na coluna Valor Correspondido.

4. Analise os valores de carga útil para identificar se eles são maliciosos. Não tem certeza do que eles se parecem? Aqui estão alguns valores maliciosos potenciais que você pode encontrar na carga útil.

  • Passagem de caminho: http://some_site.com.br/../../../../some dir/some file¹ http://testsite.com/get.asp?f=/etc/passwd²‍
  • Vulnerabilidades LFI: Um invasor está tentando acessar arquivos confidenciais no servidor, como .ini. O Egelcast WAF bloqueia esta e muitas outras extensões críticas do sistema de arquivos por padrão.³‍
  • Script entre sites: http://testsite.test/<script>Alerta (“teste”);</script>⁴ <img src http://url.to.file.which/not.exist” onerror(document.cookie);>⁵‍
  • Injeção SQL : Selecione * DOS ITENS EM QUE ‘A’⁶’a’;⁷‍ SELECIONE 1;
  • Execução remota de código: eval (⁸‍
  • Ataques baseados no tempo: Selecione 1 e sleep(2);⁹ SELECT BENCHMARK(2000000,MD5(‘A’));¹⁰

5. Se você ainda não tiver certeza se a carga útil era maliciosa, uma ótima maneira de descobrir isso é olhando a lista de IPs do cliente que iniciaram as solicitações com a carga útil correspondente. Se os IPs do cliente são distribuídos, ou seja, variados, há uma boa chance de que a carga seja um falso positivo. No entanto, se todos os IPs do cliente tiverem o mesmo valor, isso indicaria um potencial ataque volumétrico, classificando-o como uma carga útil maliciosa. Para demonstrar isso, vamos nos referir ao passo 3 e escolher esse valor combinado – [“iata”:[“TGZ”,”MEX”] e usá-lo como um exemplo. Para descobrir a lista de IPs de cliente que enviaram esse payload, adicione o valor correspondente como um filtro da seguinte forma:

Figura 5: IPs do cliente que enviaram o valor da carga útil:

Neste caso, dada a variedade de endereços IP que fazem esta solicitação, há uma grande probabilidade de que essas solicitações tenham origem em usuários reais, tornando-a um bom candidato para um falso positivo.

6. Uma vez que um falso positivo é identificado, você pode criar uma exceção para ele na seção Regras gerenciadas, mas antes de fazer isso, você precisa descobrir onde esse payload foi encontrado; string de consulta, cabeçalho de solicitação, URL ou outro local. Isso é facilmente feito olhando para a coluna correspondente na mesma página do passo 5. Neste caso de uso, a carga útil foi encontrada no argumento de consulta “data”, como mostrado abaixo:

Figura 6: Localização do valor da carga útil:

7. Uma boa regra é filtrar esses campos específicos correspondentes em campos que contêm a carga útil falsa-positiva e, em seguida, verificar se não há qualquer outra solicitação com essa correspondência no parâmetro que carrega uma carga útil maliciosa real. Em outras palavras, a carga útil no campo correspondente nunca é maliciosa. Isso é conseguido adicionando um filtro no campo correspondido em um campo em questão. Olhando para o nosso caso de uso, podemos confirmar que não há nenhuma carga útil maliciosa encontrada neste argumento de consulta:

Figura 7: Todos os valores de payload enviados no argumento de consulta: Dados.

8. A etapa final antes de criar uma exceção é encontrar os IDs de regra acionados pelo campo Correspondido. Estamos tentando observar todas as regras (IDs de regra) que foram acionadas por esse falso positivo. Com base no nosso caso de uso, esta informação está disponível na mesma página do passo 5.

Figura 8: A lista de regras desencadeadas pelo valor da carga útil: [“iata”: [“TGZ”,”MEX”].

9. É hora de criar a exceção. Vá para a seção Regras gerenciadas e clique na regra gerenciada à qual você deseja adicionar essas exceções.

Figura 9: Regras gerenciadas existentes criadas para a configuração WAF.

10. Vá para a guia Exceções e clique em Adicionar nova condição. Escolha o tipo de correspondência no campo, como args, request_cookies ou URL onde a carga útil foi encontrada. Em seguida, insira o nome do parâmetro, como consulta ou cookie. Finalmente, insira a lista de todos os IDs de regra que a carga útil acionou.

Figura 10: A guia Exceções na configuração Regra gerenciada.

11. Vá em frente e crie essa condição. Dentro de 30 segundos após salvar a regra gerenciada, você poderá ver esse falso positivo passando pelo WAF no futuro

12. Agora que você sabe como isso funciona, volte para a etapa 3, filtre o tráfego por outro ID de regra e repita esse processo para eliminar tantos falsos positivos quanto possível.

Você fez isso. Você acabou de personalizar a solução WAF para o seu tráfego.

Algumas dicas finais

Se você estiver usando o Edgio WAF pela primeira vez, recomendamos realizar 2-3 rodadas deste exercício antes de ligar o modo de bloco. E com base no seu volume de tráfego, você pode repetir este exercício a cada 2-7 dias. Para os clientes existentes do Edgio WAF, recomendamos realizar este exercício de ajuste fino a cada 3-4 semanas. Mais uma coisa que você deve considerar é reduzir o valor limite de sua regra gerenciada para menos de 10, gradualmente fazendo o seu caminho para o valor ideal de 5. Isso garante que você esteja continuamente curando um conjunto de regras mais preciso e nítido. Lembre-se de que o EDWGIO WAF oferece um WAF duplo, um ambiente de teste real (o modo de auditoria) para o seu tráfego em tempo real. Você pode usar o modo de auditoria para todas as suas atualizações recorrentes e ajustes finos para o conjunto de regras sem se preocupar em deixar cair o tráfego legítimo.

Entre em contato conosco hoje mesmo para saber mais sobre todas as nossas tecnologias de segurança que mantêm seus aplicativos da web seguros.

Recursos:

¹⁻² OWASP, “Traversal de Caminho” owasp.org, owasp.org/www-community/attacks/Path_Traversal.

³ Segurança ofensiva, “Vulnerabilidades de inclusão dearquivos ” offensive-security.com, offensive-security.com/metasploit-unleashed/file-inclusion-vulnerabilities/.

⁴⁻⁵ OWASP, “Cross site scripting” , owasp.org, owasp.org/www-community/attacks/xss/.

⁶⁻⁷OWASP, ” SQL Injection “,owasp.org, owasp.org/www-community/attacks/SQL_Injection.

⁸ Netsparker, “Vulnerabilidade de avaliação remota de código (execução),” netsparker.com, netsparker.com/blog/web-security/remote-code-evaluation-execution/.

⁹⁻¹⁰ Ashraff, Ahmad, “Ataques baseados em cronometragem em aplicações web” owasp.org, owasp.org/www-pdf-archive/2018-02-05-AhmadAshraff.pdf.