Pular para conteúdo

Lista de endereços IP em graylist

Graylist é uma lista de endereços IP suspeitos processados pelo nó apenas no modo de filtragem seguro de bloqueio da seguinte forma: se a origem for um IP na graylist que solicita pedidos maliciosos, o nó os bloqueia enquanto permite solicitações legítimas.

As solicitações maliciosas originadas de IPs em graylist são aquelas que contêm sinais dos seguintes ataques:

Em contraste com a graylist, a denylist se refere a endereços IP que não têm permissão para acessar suas aplicações de maneira alguma - o nó bloqueia até mesmo o tráfego legítimo produzido por fontes na denylist. A inclusão de IP na graylist é uma das opções voltadas para a redução de falsos positivos.

O comportamento do nó de filtragem pode ser diferente se os endereços IP da graylist também estiverem na allowlist, mais sobre prioridades de lista.

Em Console Wallarm → Listas de IPGraylist, você pode gerenciar os endereços IP em graylist da seguinte maneira:

  • Adicione um único endereço IP ou uma sub-rede

  • Adicione um grupo de endereços IP registrados em um país/região, data center, rede, etc. específicos

  • Personalize o tempo e o motivo para armazenar o endereço IP na lista

  • Delete o endereço IP da lista

  • Reveja o histórico de mudanças na lista

Graylist IP

Nome antigo da lista

O nome antigo da lista de endereços IP é "IP address greylist".

Exemplos de uso da graylist de IP

  • Incluir na graylist os endereços IP dos quais vários ataques consecutivos se originaram.

    Um ataque pode incluir várias solicitações originadas de um endereço IP e contendo cargas maliciosas de diferentes tipos. Um dos métodos para bloquear a maioria das solicitações maliciosas e permitir solicitações legítimas originadas deste IP é incluí-lo na graylist. Você pode configurar a inclusão automática de origens de IP na graylist configurando o limite para tal e a reação apropriada no gatilho.

    A inclusão da origem de IP na graylist pode reduzir significativamente o número de falsos positivos.

  • Inclua na graylist endereços IP, países, regiões, data centers, redes (por exemplo, Tor) que normalmente produzem tráfego prejudicial. O nó Wallarm permitirá solicitações legítimas produzidas por objetos na graylist e bloqueará solicitações maliciosas.

Adicionando um objeto à lista

Você pode permitir que o Wallarm coloque endereços IP na graylist automaticamente se eles gerarem algum tráfego suspeito, bem como incluir objetos na graylist manualmente.

Adicionando um endereço IP à lista no nó multi-tenant

Se você instalou o nó multi-tenant, troque primeiro para a conta de um tenant para qual o endereço IP é adicionado à lista.

Os gatilhos para inclusão automática do IP na graylist também devem ser configurados nos níveis do tenant.

População automática da graylist (recomendado)

A funcionalidade triggers permite a inclusão automática de IPs na graylist pelas seguintes condições:

Os gatilhos que possuem reação de Incluir IP na graylist aos eventos listados incluem automaticamente IPs na graylist por um período especificado. Você pode configurar gatilhos em Console Wallarm → Triggers.

População manual da graylist

Para adicionar um endereço IP, subnet ou grupo de endereços IP à lista manualmente:

  1. Abra Console Wallarm → Listas de IPGraylist e clique em Adicionar objeto.

  2. Especifique um endereço IP ou grupo de endereços IP de um dos seguintes modos:

    • Insira um único endereço IP ou uma subnet

      Subnet masks suportadas

      A máscara de sub-rede máxima suportada é /32 para endereços IPv6 e /12 para endereços IPv4.

    • Selecione um país ou uma região (geolocalização) para adicionar todos os endereços IP registrados neste país ou região

    • Selecione o tipo de fonte para adicionar todos os endereços IP que pertencem a este tipo, por exemplo:
  3. Selecione as aplicações para as quais você permite ou restringe o acesso para os endereços IP especificados.

  4. Selecione o período para o qual um endereço IP ou um grupo de endereços IP deve ser adicionado à lista. O valor mínimo é 5 minutos, o valor máximo é para sempre.

  5. Especifique o motivo para adicionar um endereço IP ou um grupo de endereços IP à lista.

Adicionar IP à lista (com aplicativo)

Inclusão automática de IPs de bot na graylist

O módulo Prevenção de Abuso de API da Wallarm também preenche automaticamente a lista cinza ou a lista de negação com os IPs dos bots maliciosos.

Os IPs dos bots são distinguidos pelo Motivo Bot e os detalhes sobre sua natureza, incluindo a taxa de confiança, por exemplo:

IPs de bots na lista de negação

Analisando objetos adicionados à lista

O console Wallarm exibe os seguintes dados sobre cada objeto adicionado à lista:

  • Objeto - Endereço IP, sub-rede, país/região ou fonte de IP adicionada à lista.

  • Aplicativo - aplicativo ao qual a configuração de acesso do objeto é aplicada.

  • Razão - razão para adicionar um endereço IP ou um grupo de endereços IP à lista. A razão é especificada manualmente ao adicionar objetos à lista ou gerada automaticamente quando os IPs são adicionados à lista por gatilhos.

  • Data de adição - data e hora em que um objeto foi adicionado à lista.

  • Remover - período de tempo após o qual um objeto será excluído da lista.

Revisando o histórico de alterações na lista de IPs

Quando você escolhe datas específicas para examinar o conteúdo da lista de IPs, o sistema retorna um histórico detalhado de suas mudanças, incluindo o momento exato e o método de inclusão, seja manual ou automatizado. O relatório também fornece dados sobre os indivíduos responsáveis pelas alterações e os motivos de cada inclusão. Esses insights auxiliam na manutenção de um rastro de auditoria para conformidade e relatórios.

Histórico da lista de IP

Ao voltar para a guia Agora, você acessa o estado atual da lista de IPs, permitindo visualizar os objetos atualmente incluídos na lista.

Filtrando a lista

Você pode filtrar os objetos na lista por:

  • Endereço IP ou sub-rede especificado na linha de pesquisa

  • Período para o qual você deseja obter um status da lista

  • País/região em que um endereço IP ou uma sub-rede está registrado

  • Fonte à qual um endereço IP ou uma sub-rede pertence

Alterando o tempo que um objeto está na lista

Para alterar o tempo que um endereço IP está na lista:

  1. Selecione um objeto da lista.

  2. No menu do objeto selecionado, clique em Alterar período de tempo.

  3. Selecione uma nova data para remover um objeto da lista e confirme a ação.

Excluindo um objeto da lista

Para excluir um objeto da lista:

  1. Selecione um ou vários objetos da lista.

  2. Clique em Excluir.

Re-adicionando o endereço IP excluído

Após excluir manualmente o endereço IP adicionado à lista pelo gatilho, o gatilho funcionará novamente apenas depois de metade do tempo anterior em que o endereço IP estava na lista.

Por exemplo:

  1. O endereço IP foi adicionado automaticamente à lista cinza por 1 hora porque 4 vetores de ataque diferentes foram recebidos deste endereço IP em 3 horas (como está configurado no gatilho).
  2. O usuário deletou este endereço IP da lista cinza via console Wallarm.
  3. Se 4 vetores de ataque diferentes são enviados a partir deste endereço IP dentro de 30 minutos, então este endereço IP não será adicionado à lista cinza.

Para obter, popular e excluir objetos da lista de IPs, você pode chamar a API Wallarm diretamente além de usar a interface do usuário do console Wallarm. Abaixo estão alguns exemplos das chamadas de API correspondentes.

Parâmetros de solicitação da API

Parâmetros a serem passados nas solicitações da API para ler e alterar listas de IPs:

Parameter Description
X-WallarmApi-Token Token to access Wallarm API, copy it from Wallarm Console → SettingsAPI tokens.
clientid ID of an account in Wallarm Cloud to populate/read IP list.
ip_rule.list The IP list type to add objects, can be: black (for denylist), white (for allowlist), gray (for graylist).
ip_rule.rule_type The type of objects to add to the list:
  • ip_range if adding particular IPs or subnets
  • country if adding countries or regions
  • proxy_type if adding proxy services (VPN, SES, PUB, WEB, TOR)
  • datacenter for other source types (rackspace, tencent, plusserver, ovh, oracle, linode, ibm, huawei, hetzner, gce, azure, aws, alibaba)
ip_rule.subnet
(rule_type:"ip_range")
IP or subnet to add to the list, e.g. "1.1.1.1".
ip_rule.source_values
(for other rule_type values)
One of the options:
  • If rule_type:"country" - array of countries in the ISO-3166 format, e.g. ["AX","AL"].
  • If rule_type:"proxy_type" - array of proxy services, e.g. ["VPN","PUB"].
  • If rule_type:"datacenter" - array of other source types, e.g. ["rackspace","huawei"].
ip_rule.pools Array of application IDs to allow or restrict access for IPs, e.g. [3,4] for applications IDs 3 and 4 or [0] for all applications.
ip_rule.expired_at Unix Timestamp date for IPs to be removed from the list. The maximum value is forever (33223139044).
reason Reason to allow or restrict access for IPs.
force If true and some objects specified in the request are already in the IP list, the script will overwrite them.

Adicionar à lista as entradas do arquivo .csv

Para adicionar à lista os IPs ou sub-redes do arquivo .csv, use o seguinte script bash:

#!/bin/bash

UUID="<YOUR_UUID>"
SECRET="<YOUR_SECRET_KEY>"
CLIENT="<YOUR_CLIENT_ID>"
LIST="<TYPE_OF_IP_LIST>"
PATH_TO_CSV_FILE="<PATH_TO_CSV_FILE>" # path to the CSV file with IPs or subnets
APPLICATIONS="<APP_IDS_THROUGH_COMMA>"
REMOVE_DATE="TIMESTAMP_REMOVE_DATE"
REASON='<REASON>'
API="us1.api.wallarm.com"


index=0
while read line; do
    subnets[$index]="$line"
    index=$(($index+1))
done < "$PATH_TO_CSV_FILE"


for i in ${subnets[@]}; do
    currentDate=`date -u +%s`
    time=$REMOVE_DATE
    remove_date=$(($currentDate+$time))

curl -X POST \
https://$API/v4/ip_rules \
-H "Content-Type: application/json" \
-H "X-WallarmApi-Token: <YOUR_TOKEN>"  \
-d '{
"clientid": '$CLIENT',
"ip_rule": {
    "list": "'$LIST'",
    "rule_type": "ip_range",
    "subnet": "'$i'",
    "expired_at": '$remove_date',
    "pools": [
        '$APPLICATIONS'
    ],
    "reason": "'"$REASON"'"
},
"force": false
}'

done
#!/bin/bash

UUID="<YOUR_UUID>"
SECRET="<YOUR_SECRET_KEY>"
CLIENT="<YOUR_CLIENT_ID>"
LIST="<TYPE_OF_IP_LIST>"
PATH_TO_CSV_FILE="<PATH_TO_CSV_FILE>" # path to the CSV file with IPs or subnets
APPLICATIONS="<APP_IDS_THROUGH_COMMA>"
REMOVE_DATE="TIMESTAMP_REMOVE_DATE"
REASON='<REASON>'
API="api.wallarm.com"


index=0
while read line; do
    subnets[$index]="$line"
    index=$(($index+1))
done < "$PATH_TO_CSV_FILE"


for i in ${subnets[@]}; do
    currentDate=`date -u +%s`
    time=$REMOVE_DATE
    remove_date=$(($currentDate+$time))

curl -X POST \
https://$API/v4/ip_rules \
-H "Content-Type: application/json" \
-H "X-WallarmApi-Token: <YOUR_TOKEN>"  \
-d '{
"clientid": '$CLIENT',
"ip_rule": {
    "list": "'$LIST'",
    "rule_type": "ip_range",
    "subnet": "'$i'",
    "expired_at": '$remove_date',
    "pools": [
        '$APPLICATIONS'
    ],
    "reason": "'"$REASON"'"
},
"force": false
}'

done

Adicionar à lista um único IP ou sub-rede

To add particular IPs or subnets to the IP list, send the following request for each IP/subnet:

curl 'https://us1.api.wallarm.com/v4/ip_rules' \
  -H 'X-WallarmApi-Token: <YOUR_TOKEN>' \
  -H "accept: application/json" \
  -H "Content-Type: application/json" \
  --data-raw '{"clientid":<YOUR_CLIENT_ID>,"force":false,"ip_rule":{"list":"<TYPE_OF_IP_LIST>","reason":"<REASON_TO_ADD_ENTRIES_TO_LIST>","pools":[<ARRAY_OF_APP_IDS>],"expired_at":<TIMESTAMP_REMOVE_DATE>,"rule_type":"ip_range","subnet":"<IP_OR_SUBNET>"}}'
curl 'https://api.wallarm.com/v4/ip_rules' \
  -H 'X-WallarmApi-Token: <YOUR_TOKEN>' \
  -H "accept: application/json" \
  -H "Content-Type: application/json" \
  --data-raw '{"clientid":<YOUR_CLIENT_ID>,"force":false,"ip_rule":{"list":"<TYPE_OF_IP_LIST>","reason":"<REASON_TO_ADD_ENTRIES_TO_LIST>","pools":[<ARRAY_OF_APP_IDS>],"expired_at":<TIMESTAMP_REMOVE_DATE>,"rule_type":"ip_range","subnet":"<IP_OR_SUBNET>"}}'

Adicionar à lista vários países

curl 'https://us1.api.wallarm.com/v4/ip_rules' \
  -H 'X-WallarmApi-Token: <YOUR_TOKEN>' \
  -H "accept: application/json" \
  -H "Content-Type: application/json" \
  --data-raw '{"clientid":<YOUR_CLIENT_ID>,"ip_rule":{"list":"<TYPE_OF_IP_LIST>","rule_type":"country","source_values":[<ARRAY_OF_COUNTRIES_REGIONS>],"pools":[<ARRAY_OF_APP_IDS>],"expired_at":"<TIMESTAMP_REMOVE_DATE>","reason":"<REASON_TO_ADD_ENTRIES_TO_LIST>"},"force":false}'
curl 'https://api.wallarm.com/v4/ip_rules' \
  -H 'X-WallarmApi-Token: <YOUR_TOKEN>' \
  -H "accept: application/json" \
  -H "Content-Type: application/json" \
  --data-raw '{"clientid":<YOUR_CLIENT_ID>,"ip_rule":{"list":"<TYPE_OF_IP_LIST>","rule_type":"country","source_values":[<ARRAY_OF_COUNTRIES_REGIONS>],"pools":[<ARRAY_OF_APP_IDS>],"expired_at":"<TIMESTAMP_REMOVE_DATE>","reason":"<REASON_TO_ADD_ENTRIES_TO_LIST>"},"force":false}'

Adicionar à lista vários serviços de proxy

curl 'https://us1.api.wallarm.com/v4/ip_rules' \
  -H 'X-WallarmApi-Token: <YOUR_TOKEN>' \
  -H "accept: application/json" \
  -H "Content-Type: application/json" \
  --data-raw '{"clientid":<YOUR_CLIENT_ID>,"ip_rule":{"list":"<TYPE_OF_IP_LIST>","rule_type":"proxy_type","source_values":[<ARRAY_OF_PROXY_SERVICES>],"pools":[<ARRAY_OF_APP_IDS>],"expired_at":"<TIMESTAMP_REMOVE_DATE>","reason":"<REASON_TO_ADD_ENTRIES_TO_LIST>"},"force":false}'
curl 'https://api.wallarm.com/v4/ip_rules' \
  -H 'X-WallarmApi-Token: <YOUR_TOKEN>' \
  -H "accept: application/json" \
  -H "Content-Type: application/json" \
  --data-raw '{"clientid":<YOUR_CLIENT_ID>,"ip_rule":{"list":"<TYPE_OF_IP_LIST>","rule_type":"proxy_type","source_values":[<ARRAY_OF_PROXY_SERVICES>],"pools":[<ARRAY_OF_APP_IDS>],"expired_at":"<TIMESTAMP_REMOVE_DATE>","reason":"<REASON_TO_ADD_ENTRIES_TO_LIST>"},"force":false}'

Excluir um objeto da lista de IPs

Os objetos são excluídos das listas de IPs por seus IDs.

Para obter um ID de objeto, solicite o conteúdo da lista de IPs e copie objects.id do objeto requerido de uma resposta:

curl 'https://us1.api.wallarm.com/v4/ip_rules?filter%5Bclientid%5D=<YOUR_CLIENT_ID>&filter%5Blist%5D=<TYPE_OF_IP_LIST>&offset=0&limit=50' \
      -H 'X-WallarmApi-Token: <YOUR_TOKEN>'
curl 'https://api.wallarm.com/v4/ip_rules?filter%5Bclientid%5D=<YOUR_CLIENT_ID>&filter%5Blist%5D=<TYPE_OF_IP_LIST>&offset=0&limit=50' \
      -H 'X-WallarmApi-Token: <YOUR_TOKEN>'

Tendo o ID do objeto, envie a seguinte solicitação para excluí-lo da lista:

curl 'https://us1.api.wallarm.com/v4/ip_rules' \
  -X 'DELETE' \
  -H 'X-WallarmApi-Token: <YOUR_TOKEN>' \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  --data-raw '{"filter":{"clientid":<YOUR_CLIENT_ID>,"id":[<OBJECT_ID_TO_DELETE>]}}'
curl 'https://api.wallarm.com/v4/ip_rules' \
  -X 'DELETE' \
  -H 'X-WallarmApi-Token: <YOUR_TOKEN>' \
  -H 'accept: application/json' \
  -H 'content-type: application/json' \
  --data-raw '{"filter":{"clientid":<YOUR_CLIENT_ID>,"id":[<OBJECT_ID_TO_DELETE>]}}'

Você pode excluir vários objetos de uma vez, passando seus IDs como uma array na solicitação de exclusão.