Pular para conteúdo

Configuração da proteção BOLA (IDOR)

Ataques comportamentais como Autorização em Nível de Objeto Quebrado (BOLA) exploram a vulnerabilidade de mesmo nome. Esta vulnerabilidade possibilita que um invasor acesse um objeto através de sua identificação via uma solicitação de API e leia ou modifique seus dados, contornando um mecanismo de autorização. Este artigo orienta você sobre como proteger suas aplicações contra ataques BOLA.

Por padrão, a Wallarm descobre automaticamente apenas as vulnerabilidades do tipo BOLA (também conhecida como IDOR), mas não detecta tentativas de exploração.

Com a Wallarm, você tem as seguintes opções para detectar e bloquear ataques BOLA:

Restrições de proteção BOLA

Apenas o nó Wallarm 4.2 e superior suporta a detecção de ataques BOLA.

O nó Wallarm 4.2 e superior analisa apenas as seguintes solicitações em busca de sinais de ataque BOLA:

Requisitos

Para proteger os recursos contra ataques BOLA, certifique-se de que o seu ambiente cumpre os seguintes requisitos:

  • Você tem o nó Wallarm 4.2 ou superior.

  • Se o nó de filtragem estiver implantado atrás de um servidor proxy ou balanceador de carga, configure a exibição dos endereços IP reais dos clientes.

Criação manual do gatilho BOLA

Para o nó Wallarm identificar os ataques BOLA:

  1. Abra o console Wallarm → Gatilhos e proceda à configuração do gatilho BOLA.

  2. Defina as condições para definir as solicitações como um ataque BOLA:

    • O número de Solicitações do mesmo IP para um determinado período de tempo.
    • URI para ser protegido contra ataques BOLA e receber o número especificado de solicitações. O valor deve ser um endpoint da API apontando para um objeto por seu identificador, pois este tipo de endpoint é potencialmente vulnerável a ataques BOLA.

      Para especificar o parâmetro PATH que identifica um objeto, utilize o símbolo *, exemplo:

      example.com/lojas/*/informacoes_financeiras
      

      O URI pode ser configurado através do construtor de URI ou formulário de edição avançada na janela de criação de gatilho.

    • (Opcional) Aplicação para ser protegida contra ataques BOLA e receber o número especificado de solicitações.

      Se você usa o mesmo nome para vários domínios, este filtro é recomendado para apontar para a aplicação a qual o domínio no filtro URI está atribuído.

    • (Opcional) Um ou mais IPs originando as solicitações.

  3. Selecione reações aos gatilhos:

    • Marcar como BOLA. Solicitações que ultrapassam o limite são marcadas como um ataque BOLA e exibidas na seção Eventos do console Wallarm. O nó Wallarm NÃO bloqueia estas solicitações maliciosas.
    • Bloquear endereço de IP originando solicitações maliciosas e o período de bloqueio.

      O nó Wallarm bloqueará as solicitações tanto legítimas quanto maliciosas (inclusive ataques BOLA) originadas do IP bloqueado.

    • Lista de IPs em estado de alerta originando solicitações maliciosas e o período de bloqueio.

      O nó Wallarm bloqueará solicitações originadas de IPs em estado de alerta somente se contiverem indícios de validação de entrada, o vpatch ou sinais de ataque personalizados.

      Ataques BOLA originados de IPs em estado de alerta

      Ataques BOLA originados de IPs em estado de alerta não são bloqueados.

  4. Salve o gatilho e aguarde a conclusão da sincronização entre o Cloud e o nó (geralmente leva de 2 a 4 minutos).

Exemplo do gatilho para detectar e bloquear ataques BOLA direcionados aos dados financeiros da loja (o endpoint da API é https://example.com/lojas/{id_loja}/informacoes_financeiras):

Gatilho BOLA

Você pode configurar vários gatilhos com diferentes filtros para a proteção BOLA.

Proteção automática BOLA para endpoints descobertos pelo recurso de Descoberta de API 

A proteção automática BOLA está disponível se você utilizar o módulo Descoberta de API.

Para habilitar a autoproteção, vá para o console Wallarm → Proteção BOLA e ative a opção:

Gatilho BOLA

Uma vez habilitada a proteção BOLA, a Wallarm:

  1. Identifica os endpoints da API que são mais prováveis de serem alvo de ataques BOLA, por exemplo, aqueles com variabilidade nos parâmetros do caminho: domain.com/path1/path2/path3/{variative_path4}.

    Esta etapa leva um período de tempo

    A identificação de endpoints vulneráveis da API leva um período de tempo necessário para uma profunda observação do inventário da API descoberta e das tendências de tráfego de entrada.

    Apenas os endpoints da API explorados pelo módulo API Discovery são protegidos contra ataques BOLA de maneira automatizada. Os endpoints protegidos são destacados com o ícone correspondente.

  2. Protege os endpoints vulneráveis da API contra ataques BOLA. A lógica de proteção padrão é a seguinte:

    • Solicitações a um endpoint vulnerável que excedam o limite de 180 solicitações do mesmo IP por minuto são consideradas ataques BOLA.
    • Apenas registra ataques BOLA na lista de eventos quando o limite de solicitações do mesmo IP é atingido. A Wallarm não bloqueia ataques BOLA. As solicitações vão continuar chegando às suas aplicações.

      A reação correspondente no modelo de autoproteção é Apenas registrar ataques.

  3. Reage às alterações na API protegendo novos endpoints vulneráveis e desabilitando a proteção para endpoints removidos.

A seção Proteção BOLA da interface do usuário permite que você ajuste o comportamento padrão da Wallarm (incluindo o bloqueio de ataques BOLA) editando o modelo de autodetecção BOLA.

Testando a configuração da proteção BOLA

  1. Envie o número de solicitações que excede o limite configurado para o URI protegido. Por exemplo, 50 solicitações com diferentes valores de {id_loja} para o endpoint https://example.com/lojas/{id_loja}/informacoes_financeiras:

    for (( i=0 ; $i<51 ; i++ )) ; do curl https://example.com/lojas/$i/informacoes_financeiras ; done
    
  2. Se a reação ao gatilho for Bloquear o endereço de IP, abra Wallarm Console → Listas de IPsLista de bloqueios e verifique se o endereço de IP fonte está bloqueado.

    Se a reação ao gatilho for Lista de IPs em estado de alerta, verifique a seção Listas de IPsLista de Alerta do Console Wallarm.

  3. Abra a seção Eventos e verifique se as solicitações estão exibidas na lista como um ataque BOLA.

    Ataque BOLA na interface do usuário

    O número de solicitações exibidas corresponde ao número de solicitações enviadas após ter excedido o limite do gatilho (mais detalhes sobre a detecção de ataques comportamentais). Se este número for superior a 5, a amostragem de solicitações é aplicada e os detalhes da solicitação são exibidos apenas para os 5 primeiros hits (mais detalhes sobre a amostragem das solicitações).

    Para buscar ataques BOLA, você pode utilizar a tag de busca bola. Todos os filtros estão descritos nas instruções sobre o uso de pesquisa.