Encontre os IPs por trás do tráfego de ataque
Liste pela GraphQL API os endereços IP que enviam mais requisições que WAF marca como ataques, com a família de ataque de cada um.
Você pode listar os cinco endereços IP que enviam mais requisições que WAF marca como ataques, com a família de ataque de cada um, a partir do dataset workloadEvents da GraphQL API. O dataset guarda um registro por requisição, e o endpoint de eventos o atende. Para classificar os mesmos endereços a partir de dados agregados, ou no Azion Console, consulte Encontre as principais origens de ameaças do WAF.
Pré-requisitos
- Um personal token. Para criar um, consulte Personal tokens.
- WAF ativado em um firewall vinculado ao workload que recebe o tráfego. Para configurá-lo, consulte Primeiros passos com WAF.
- Uma forma de enviar uma query GraphQL, como o GraphiQL ou o
curl. Para as duas, consulte Primeiros passos com a GraphQL API.
Consulte os principais IPs
A query conta os registros que WAF identificou, agrupa-os por endereço do cliente e por família de ataque e retorna as cinco maiores contagens. O endpoint de eventos guarda os registros por cerca de 7 dias, então defina uma janela dentro dos últimos 7 dias. Para a retenção de cada endpoint, consulte Limites.
Para encontrar os principais IPs:
Envie uma requisição POST para https://api.azion.com/v4/events/graphql com o header Authorization: Token [TOKEN VALUE]. Substitua os valores de begin e end pela sua janela, no formato YYYY-MM-DDTHH:mm:ss:
Cada argumento define uma parte da classificação:
| Argumento | O que faz |
|---|---|
limit | Retorna no máximo este número de linhas, aqui 5. |
tsRange | Dentro de filter, define a janela com begin e end. |
wafMatchNe: "-" | Exclui os registros cujo wafMatch é -, o valor de uma requisição em que WAF não encontrou nenhuma infração. |
wafAttackFamilyNe: "-" | Exclui os registros cujo wafAttackFamily é -, o valor de uma requisição sem família de ataque. |
count: rows | Dentro de aggregate, conta os registros de cada grupo e retorna o total em count. |
groupBy | Agrupa os registros por endereço do cliente e depois por família de ataque. |
orderBy | Ordena as linhas por count: count_DESC coloca a maior primeiro, e count_ASC a menor. |
A resposta traz um array workloadEvents dentro de data, com um objeto por endereço e família de ataque:
| Campo | Descrição |
|---|---|
remoteAddress | O endereço IP do cliente que enviou as requisições. |
wafAttackFamily | A família de ataque que WAF detectou, como $SQL, $XSS, $RFI, $TRAVERSAL ou $OTHERS. |
count | O número de requisições do endereço que WAF marcou como ataques da família. |
Um endereço que enviou ataques de várias famílias retorna uma linha por família. As linhas chegam na ordem que orderBy define, com a maior contagem primeiro. Para todos os campos do dataset, consulte Campos do Real-Time Events.