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 IP → Graylist, 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
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:
-
Solicitações maliciosas dos seguintes tipos:
Força bruta
,Navegação forçada
,BOLA
. -
Número de cargas maliciosas
produzidas por um IP. -
Novas contas corporativas possuem um gatilho pré-configurado (padrão), que inclui um IP na graylist quando origina mais de 3 tipos diferentes de cargas maliciosas dentro de 1 hora.
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:
-
Abra Console Wallarm → Listas de IP → Graylist e clique em Adicionar objeto.
-
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:
- Tor para endereços IP da rede Tor
- *Proxy para endereços IP de servidores proxy públicos ou na web
- Search Engine Spiders para endereços IP de robôs de motores de busca
- VPN para endereços IP de redes privadas virtuais
- AWS para endereços IP registrados na Amazon AWS
-
IPs maliciosos para endereços IP que são bem conhecidos por atividades maliciosas, conforme mencionados em fontes públicas e verificados por análise de especialistas. Nós obtemos esses dados de uma combinação dos seguintes recursos:
-
-
Selecione as aplicações para as quais você permite ou restringe o acesso para os endereços IP especificados.
-
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.
-
Especifique o motivo para adicionar um endereço IP ou um grupo de endereços IP à lista.
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:
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.
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:
-
Selecione um objeto da lista.
-
No menu do objeto selecionado, clique em Alterar período de tempo.
-
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:
-
Selecione um ou vários objetos da lista.
-
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:
- 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).
- O usuário deletou este endereço IP da lista cinza via console Wallarm.
- 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.
Chamadas de API para obter, popular e excluir objetos da lista de IPs¶
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 → Settings → API 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_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:
|
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:
Tendo o ID do objeto, envie a seguinte solicitação para excluí-lo da lista:
Você pode excluir vários objetos de uma vez, passando seus IDs como uma array na solicitação de exclusão.