BIG-IP ASM – PROTEÇÃO CONTRA ATAQUES Cross Site Request Forgery (CSRF)

14 de janeiro de 2016

Cross-Site Request Forgery (do inglês Falsificação de Requisição por Site Cruzado), ou simplesmente CSRF, é um tipo de ataque virtual que se baseia no aproveitamento de sessões HTTP/HTTPS iniciadas em um browser.

Com uma pequena ajuda de engenharia social (como o envio de um link por e-mail ou chat), um atacante pode enganar os usuários de um aplicativo web e executar ações de escolha do atacante. Se a vítima for um usuário normal, um ataque CSRF bem sucedido pode forçar o usuário a realizar uma transferência bancária, compras e se for uma conta administrativa, CSFR pode comprometer toda a aplicação web.

Para a maioria dos sites, solicitações de navegador incluem automaticamente as credenciais associadas com o site, como cookie de sessão do usuário, endereço de IP, as credenciais de domínio do Windows, e assim por diante. Portanto, se o usuário está autenticado no site, o site não terá nenhuma maneira de distinguir entre o pedido forjado enviado pela vítima e um pedido legítimo enviado pela vítima.

Abaixo, vamos demostrar este tipo de ataque e como bloquear no ASM.

 

1-  Como funciona o ataque?

Como já dito, o ataque se aproveita de uma sessão HTTP ou HTTPS iniciada em uma aplicação web, podendo realizar requisições de outra aplicação utilizando essa mesma sessão. Em outras palavras, o caminho para um ataque CSRF.

  • O usuário inicia uma instância do browser
  • O usuário inicia uma sessão de login em uma aplicação web
  • O usuário acessa um site malicioso que contém um procedimento de ataque CSRF
  • A aplicação maliciosa manipula a sessão da aplicação web utilizada pela instância do browser
  • A aplicação executa seus ataques autenticada na aplicação web através da instância do browser

Antes de mostrar um exemplo do ataque, vamos habilitar o CSRF no ASM para identificarmos o ataque.

2-  Habilitando CSRF Protection

2.1  Na guia Main, clique em Security > Application Security > CSRF Protection. A tela CSRF Protection é aberta.

2015_setembro_Ygor_Oliveira_BIG-IP_ASM_Ataque_CSRF_01

 

2.2  Selecione o check box CSRF Protection.

2.3  Se você deseja que o cookie de sessão expire:

  1. Para Expiration Time, selecione Enabled.
  2. No campo, digite a quantidade de tempo, em segundos (1-99999), que o cookie deve expirar. O padrão é 600 segundos.

2.4  Na configuração URLs List, especificar as URLs que você deseja que o sistema examine.

  1. Digite a URL no formato /index.html. Você também pode usar curingas para URLs; por exemplo /myaccount/*.html, /*/index.php, ou /index.?html.
  2. Clique em Add
  3. Adicione todas as URLs potencialmente inseguras que deseja que o sistema examine.

2.5  Clique em Save para salvar suas configurações.

2.6  Clique em Apply Policy para aplicar as configurações.

2015_setembro_Ygor_Oliveira_BIG-IP_ASM_Ataque_CSRF_02

Quando o recurso de proteção CSRF é ativado, o sistema insere JavaScript personalizado acrescentando o token BIG-IP ASM CSRT para cada URI.

Por exemplo, a página de resposta HTML contém a seguinte referência URI:

http://192.168.10.201/user_menu.php?nick=username10

Com CSRF habilitado, o sistema BIG-IP ASM recriará a referência URI para aparecer semelhante ao exemplo da imagem acima, adicionando o token CSRT:

http://192.168.10.201/user_menu.php?nick=username10&csrt=15682644742086290742

 

3-  Exemplo Prático

Para entender melhor esse processo vamos apresentar um exemplo prático de um ataque CSRF. No exemplo abaixo, vamos simular o ataque utilizando uma sessão “roubada” e utilizar e método GET na aplicação.

O endereço do site é http://192.168.10.201/e da acesso para a página de autenticação. Vou colocar meu usuário e senha, me autenticando na aplicação.

Acesso realizado a partir da maquina_01.

2015_setembro_Ygor_Oliveira_BIG-IP_ASM_Ataque_CSRF_03

 

Veja que eu entro no link “Your Control Panel” e vejo minhas informações pessoais.

Na imagem em destaque vermelho a SESSION do acesso.

Agora vamos simular o ataque a partir da maquina_02 usando a mesma sessão da maquina_01 e explorar a vulnerabilidade com o método GET inserindo na URL o parâmetro ‘’*“ substituindo username10.

Usamos o Burp Suite para encontrar as vulnerabilidades e aplicar o GET na aplicação.

2015_setembro_Ygor_Oliveira_BIG-IP_ASM_Ataque_CSRF_04

Resultado do GET vai mostrar as informações dos usuários cadastrados no sistema:

2015_Agosto_Ygor_Oliveira_ Usando_o_GlobalProtect_Agent_no_Windows_05

Agora vamos analisar os logs no BIG-IP ASM.

Em Security > Application Security > Policy Building > Manual Traffic Learning mostra que o ataque CSRF foi detectado.

2015_setembro_Ygor_Oliveira_BIG-IP_ASM_Ataque_CSRF_06

Vamos clicar no evento para detalhamente completo.

2015_setembro_Ygor_Oliveira_BIG-IP_ASM_Ataque_CSRF_07

 

O resultado foi Response Code 200, ou seja, GET com sucesso.

A aplicação aceitou enviar um GET utilizando a mesma sessão da maquina_01 onde utilizando o parâmetro ‘’*“ conseguimos extrair informações dos demais usuários cadastrados no sistema.

 

4-  Bloqueando ataques CSRF

Para bloquear ataques CSRF, você deve definir a politica para modo Blocking e selecionar para block uma ou ambas as violações CSRF, e também configurar o recurso CSRF Protection na política (neste caso já esta configurado).

Na guia Main, clique em Security > Application Security > Blocking > Settings

2015_setembro_Ygor_Oliveira_BIG-IP_ASM_Ataque_CSRF_08

Agora vamos realizar o mesmo teste que realizamos no 3 – Exemplo Prático com a regra em modo Blocking e bloqueando as violaçoes CSRF

Teste a partir da maquina_02 com Burp Suite.

2015_setembro_Ygor_Oliveira_BIG-IP_ASM_Ataque_CSRF_09

Veja que a resposta foi rejeitada.

Vamos  analisar os logs do BIG-IP ASM no Event Logs.

2015_setembro_Ygor_Oliveira_BIG-IP_ASM_Ataque_CSRF_010

Resultado:

Request Status = Block

Response Code = N/A, ou seja, nenhuma resposta do servidor.



De acordo com a Open Web Application Security Project (OWASP), ataque CSRF esta entre o top 10 das vulnerabilidades de maior ameaça para a aplicação Web.

Este TechTip tem o objetivo de demonstrar o potencial do ataque CSRF e como mitigar o ataque por meio do BIG-IP ASM habilitando o recurso CSRF Protection. Além disso, conscientizar os usuários da ameaça.

Recomendamos também:

  • Usuários devem sair de aplicações web quando terminarem de usá-las.
  • Use o navegador da Web com segurança – o que significa certificando-se de não salvar as credenciais de login no navegador da web e usando extensões do navegador legítimos e seguros.
  • Finalmente, você deve analisar o seu site usando um scanner de vulnerabilidade web para detectar eventuais vulnerabilidades falsificação de solicitação entre sites para que você possa corrigi-los antes que eles causem quaisquer problemas.

Posts relacionados