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
- Vá para a guia Regras
- Encontre o ramo
example.com/**/*.*
e clique em Adicionar regra -
Escolha Criar uma correção virtual
-
Escolha SQLi como o tipo de ataque
-
Selecione o parâmetro QUERY e insira seu valor
id
após nesta parte da solicitaçãoAs 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.
-
Clique em Criar
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
- Vá para a guia Regras
- Encontre o ramo
example.com/**/*.*
e clique em Adicionar regra - Escolha Criar uma correção virtual
- Escolha Qualquer solicitação
-
Selecione o parâmetro QUERY e insira seu valor
refresh
após nesta parte da solicitaçãoAs 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.
-
Clique em Criar
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\"}"