Pular para conteúdo

Correção Virtual

Uma correção virtual permite bloquear solicitações maliciosas mesmo nos modos de monitoramento e bloqueio seguro ou quando uma solicitação não parece conter nenhum vetor de ataque conhecido. As únicas solicitações que as correções virtuais não bloqueiam são as originadas dos IPs na lista de permissões.

As correções virtuais são especialmente úteis em casos em que é impossível corrigir uma vulnerabilidade crítica no código ou instalar as atualizações de segurança necessárias rapidamente.

Se os tipos de ataque são selecionados, a solicitação será bloqueada somente se o nó de filtro detectar um ataque de um dos tipos listados no parâmetro correspondente.

Se a configuração Qualquer solicitação é selecionada, o sistema bloqueará as solicitações com o parâmetro definido, mesmo que ele não contenha um vetor de ataque.

Criando e aplicando a regra

Você pode criar e aplicar a regra tanto na seção Eventos quanto na seção Regras do Console Wallarm.

  • Na seção Eventos, as regras são criadas com uma descrição preenchida de endpoints para aplicar a regra. A descrição do endpoint corresponde à solicitação que você clicou no botão Regra.

Para concluir a configuração da regra, basta selecionar o tipo de ação da regra e garantir que todos os componentes da regra estejam configurados corretamente.

  • Na seção Regras, todos os componentes da regra devem ser preenchidos manualmente.

Exemplo: Bloqueando Ataque SQLi no Parâmetro de Consulta id

Se as seguintes condições ocorrerem:

  • a aplicação está acessível no domínio example.com

  • o parâmetro id da aplicação é vulnerável a ataques de injeção SQL

  • o nó de filtro está configurado para o modo de monitoramento

  • as tentativas de exploração da vulnerabilidade devem ser bloqueadas

Então, para criar uma correção virtual

  1. Vá para a guia Regras
  2. Encontre o ramo example.com/**/*.* e clique em Adicionar regra
  3. Escolha Criar uma correção virtual

  4. Escolha SQLi como o tipo de ataque

  5. Selecione o parâmetro QUERY e insira seu valor id após nesta parte da solicitação

    As opções sequencialmente (se várias) selecionadas em nesta parte da solicitação devem refletir uma sequência de analisadores que o Wallarm aplicaria para ler o elemento de solicitação necessário.

  6. Clique em Criar

Correção virtual para um determinado tipo de solicitação

Exemplo: Bloquear Todas as Solicitações Com o Parâmetro de Consulta refresh

Se as seguintes condições acontecerem:

  • a aplicação está acessível no domínio example.com

  • a aplicação falha ao processar o parâmetro de consulta refresh

  • as tentativas de exploração da vulnerabilidade devem ser bloqueadas

Então, para criar uma correção virtual

  1. Vá para a guia Regras
  2. Encontre o ramo example.com/**/*.* e clique em Adicionar regra
  3. Escolha Criar uma correção virtual
  4. Escolha Qualquer solicitação
  5. Selecione o parâmetro QUERY e insira seu valor refresh após nesta parte da solicitação

    As opções sequencialmente (se várias) selecionadas em nesta parte da solicitação devem refletir uma sequência de analisadores que o Wallarm aplicaria para ler o elemento de solicitação necessário.

  6. Clique em Criar

Correção virtual para qualquer tipo de solicitação

Chamadas API para criar a regra

Para criar a regra de correção virtual, você pode chamar a API Wallarm diretamente além de usar o UI do Console Wallarm. Abaixo estão alguns exemplos de chamadas API correspondentes.

Crie a correção virtual para bloquear todas as solicitações enviadas para /my/api/*

curl -v -X POST "https://us1.api.wallarm.com/v1/objects/hint/create" -H "X-WallarmApi-Token: <YOUR_TOKEN>" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"clientid\": YOUR_CLIENT_ID, \"type\": \"vpatch\", \"action\": [ {\"type\":\"equal\",\"value\":\"my\",\"point\":[\"path\",0]}, {\"type\":\"equal\",\"value\":\"api\",\"point\":[\"path\",1]}], \"validated\": false, \"point\": [ [ \"header\", \"HOST\" ] ], \"attack_type\": \"any\"}"
curl -v -X POST "https://api.wallarm.com/v1/objects/hint/create" -H "X-WallarmApi-Token: <YOUR_TOKEN>" -H "accept: application/json" -H "Content-Type: application/json" -d "{ \"clientid\": YOUR_CLIENT_ID, \"type\": \"vpatch\", \"action\": [ {\"type\":\"equal\",\"value\":\"my\",\"point\":[\"path\",0]}, {\"type\":\"equal\",\"value\":\"api\",\"point\":[\"path\",1]}], \"validated\": false, \"point\": [ [ \"header\", \"HOST\" ] ], \"attack_type\": \"any\"}"

Crie a correção virtual para um ID de instância de aplicativo específico para bloquear todas as solicitações enviadas para /my/api/*

Um aplicativo deve estar configurado antes de enviar esta solicitação. Especifique um ID de um aplicativo existente em action.point[instance].value.

curl -v -X POST "https://us1.api.wallarm.com/v1/objects/hint/create" -H "X-WallarmApi-Token: <YOUR_TOKEN>" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"type\":\"vpatch\",\"action\":[{\"point\":[\"instance\"],\"type\":\"equal\",\"value\":\"-1\"},{\"point\":[\"path\",0],\"type\":\"equal\",\"value\":\"my\"},{\"point\":[\"path\",1],\"type\":\"equal\",\"value\":\"api\"}],\"clientid\":YOUR_CLIENT_ID,\"validated\":false,\"point\":[[\"header\",\"HOST\"]],\"attack_type\":\"any\"}"
curl -v -X POST "https://api.wallarm.com/v1/objects/hint/create" -H "X-WallarmApi-Token: <YOUR_TOKEN>" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"type\":\"vpatch\",\"action\":[{\"point\":[\"instance\"],\"type\":\"equal\",\"value\":\"-1\"},{\"point\":[\"path\",0],\"type\":\"equal\",\"value\":\"my\"},{\"point\":[\"path\",1],\"type\":\"equal\",\"value\":\"api\"}],\"clientid\":YOUR_CLIENT_ID,\"validated\":false,\"point\":[[\"header\",\"HOST\"]],\"attack_type\":\"any\"}"