# Identifique os principais ataques com GraphQL

Você pode usar informações do conjunto de dados `httpMetrics` para monitorar padrões de tráfego, detectar anomalias e analisar ameaças potenciais. Este guia explica como filtrar os principais tipos de ataque, classificados por ocorrência, conforme identificado pelo WAF.

---

## Consulte os dados

Para consultar os 5 principais ataques, identificados pelo WAF e classificados por ocorrência, siga os passos abaixo:

1. Acesse o GraphiQL Playground neste link: `https://api.azion.com/v4/metrics/graphql`.
    - Você deve estar logado na sua conta Azion. Caso contrário, você receberá uma mensagem de erro.
2. Envie uma consulta seguindo este formato:

```graphql
query Top5Attacks {
  httpMetrics(
    limit: 5
    filter: {
      tsRange: {
        begin:"2025-01-15T00:00:00"
        end:"2025-01-15T20:00:00"
      }
    }
    groupBy:[wafAttackFamily]
    orderBy:[wafRequestsThreat_DESC]
  )
  {
    wafAttackFamily
    wafRequestsThreat
  }
}
```

Onde:

| Campo | Descrição |
|----------|----------|
| `limit` | Especifica o número máximo de resultados a serem retornados. Neste caso, `5` |
| `filter` | Define os critérios usados para filtrar os dados retornados pela consulta |
| `tsRange` | Um subcampo de `filter`. Especifica um intervalo de tempo para filtrar dados. Inclui campos `begin` e `end` para definir a data e hora de início e fim. Formato: `"YYYY-MM-DDTHH:mm:ss"`; exemplo: `"2024-04-11T00:00:00"` |
| `orderBy` | Especifica a ordem em que os resultados devem ser retornados. Exemplos: `[wafRequestsThreat_DESC]`, para ordem decrescente, e `[wafRequestsThreat_ASC]`, para ordem crescente |
| `groupBy` | Especifica os campos pelos quais os resultados da consulta devem ser agrupados. No exemplo: `[wafAttackFamily]` para agrupar por famílias de ataque detectadas pelo WAF |

:::note
Este exemplo recupera dados para `wafAttackFamily` e o total de requisições (`wafRequestsThreat`) sinalizadas como ameaças pelo WAF dentro do intervalo de tempo especificado. Os resultados são agrupados por famílias de ataque e classificados pelo número de requisições em ordem decrescente. Para saber mais sobre os campos disponíveis, consulte a documentação sobre os [Campos da API GraphQL do Real-Time Metrics](/pt-br/documentacao/devtools/graphql-api/recursos/campos-gql-real-time-metrics/#httpmetrics-edge-applications-waf).
:::

3. Você receberá uma resposta semelhante a esta:

```graphql
{
  "data": {
    "httpMetrics": [
      {
        "wafAttackFamily": "$OTHERS",
       "wafRequestsThreat": 1449942
      },
       {
        "wafAttackFamily": "$SQL, $XSS",
       "wafRequestsThreat": 1171825
      },
      {
        "wafAttackFamily": "$RFI",
       "wafRequestsThreat": 370811
      },
       {
        "wafAttackFamily": "$SQL, $XSS, $TRAVERSAL",
       "wafRequestsThreat": 216747
      },
      {
        "wafAttackFamily": "$SQL",
       "wafRequestsThreat": 191808
      }
    ]
  }
}
```


Onde:

| Campo | Descrição |
|----------|----------|
| `wafAttackFamily` | Categoria ou tipo de ataque detectado pelo Web Application Firewall (WAF), com base em suas características. Exemplo: `$SQL`, `$RFI`, `$SQL`, `$XSS`, `$OTHERS` |
| `wafRequestsThreat` | Total de solicitações sinalizadas como ameaças pelo WAF, classificadas pelos tipos de ataque mais frequentes. Exemplo: `216747` |

:::tip
Para saber mais sobre os campos disponíveis, consulte a documentação sobre os [Campos da API GraphQL do Real-Time Metrics](/pt-br/documentacao/devtools/graphql-api/recursos/campos-gql-real-time-metrics/#httpmetrics-edge-applications-waf).
:::