# Instale o Azion Bot Manager Lite

import DocButton from '~/components/webkit/DocButton.vue';

Azion **Bot Manager Lite** é uma integração *serverless* disponível no **Marketplace** da Azion. Esta integração foi construída com base em uma function no **Firewall** que analisa as requisições recebidas e atribui um score com base em um conjunto de regras predefinidas. Se a pontuação é igual ou excede o limite predeterminado, a integração executa a ação definida. Caso contrário, a requisição é processada (`allow` é a ação padrão). As ações disponíveis para Bot Manager Lite são: `allow`, `deny`, `drop`, `redirect`, `custom_html`, `random_delay` e `hold_connection`.

Essa integração permite a detecção de tráfego suspeito e bots maliciosos, facilitando a implementação de medidas preventivas contra atividades maliciosas, como preenchimento de credenciais, varredura de vulnerabilidades e raspagem de sites (*web scrapping*). O Bot Manager Lite usa um conjunto de regras predefinidas e *Reputation Intelligence* para analisar o comportamento dos dados recebidos.

:::note
Bot Manager Lite é uma [integração com uma versão lite](/pt-br/documentacao/produtos/guias/bot-manager-lite/) disponível no Marketplace.

A Azion oferece o add-on [Bot Manager](/pt-br/documentacao/produtos/secure/firewall/bot-manager/), uma solução abrangente para o gerenciamento de bots. Entre em contato com a [equipe de vendas](https://www.azion.com/pt-br/contato/) para mais detalhes sobre a assinatura do Bot Manager.
:::

---

## Obtenha a integração

Para usar o **Bot Manager Lite**:

1. Acesse o [Azion Console](/pt-br/documentacao/produtos/guias/como-acessar-o-azion-console/) > **Marketplace**.
2. Na página inicial do Marketplace, selecione o card correspondente à integração Azion **Bot Manager Lite**.
3. Quando estiver na página da integração, clique no botão **Install**, no canto inferior direito.

Uma mensagem aparecerá indicando que a integração foi instalada com sucesso.

:::tip
Você pode procurar qualquer integração navegando pelos cards, usando os filtros ou digitando uma palavra-chave na barra de busca.
:::

---

## Configure a integração

### Configure o Firewall

Para instanciar a integração Azion **Bot Manager Lite**, siga estes passos:

1. No canto superior esquerdo, selecione **Products menu** > **Firewall**, dentro da seção **Secure**.
2. Clique no botão **+ Firewall**.
3. Dê um nome fácil de lembrar ao seu novo firewall.
4. Habilite o switch **Functions** na seção **Modules**.
5. (Opcional) Habilite o switch **Debug Rules** para registrar quais regras do Rules Engine são executadas para cada requisição. Isso é útil durante o ajuste da integração. Consulte [Uso do Debug Rules](#uso-do-debug-rules-para-rastrear-a-execucao-de-regras-do-firewall) para mais detalhes.
6. Clique no botão **Save**.

Pronto. Você criou uma instância no Firewall para sua função e habilitou o uso de Functions nele.

:::caution[Atenção]
Se qualquer produto ou módulo for ativado, pode gerar custos relacionados ao uso. Consulte a [página de preços](/pt-br/documentacao/produtos/precos/) para obter mais informações.
:::

### Configure a função

Ainda na página do **Firewall**:

1. Selecione a aba **Functions Instances**.
2. Clique no botão **+ Function Instance⁠**.
3. Dê um nome fácil de lembrar à sua instância.
4. No menu suspenso, selecione a função **Azion Bot Manager Lite**.

Na caixa de código **Arguments** é onde você passará suas variáveis.

```json
{
  "threshold": 10,
  "action": "deny"
}
```

Mesmo quando `threshold` e `action` são as variáveis obrigatórias, você pode adicionar e definir mais variáveis, de acordo com sua necessidade, conforme mostrado no exemplo a seguir:

```json
{
  "threshold": 10,
  "action": "deny",
  "disabled_rules": [],
  "log_tag": "my_custom_tag",
  "reputation_network_lists": [],
  "internal_logs": "0",
  "good_fingerprint_list": [],
  "bad_fingerprint_list": [],
  "block_ai_bots": false
}
```

Para uma lista completa dos argumentos disponíveis e suas descrições, consulte a [referência do Bot Manager Lite](/pt-br/documentacao/produtos/secure/firewall/bot-manager-lite/#configure-a-funcao).

5. Quando estiver pronto, clique no botão **Save** para salvar suas configurações.

:::tip
Para saber como obter os logs de Azion **Bot Manager Lite**, acesse a seção [Consulte os logs](#consulte-os-logs).
:::

Para saber mais informações e detalhes sobre os argumentos, visite a documentação do [Azion Bot Manager Lite](/pt-br/documentacao/produtos/secure/firewall/bot-manager-lite/#configure-a-funcao).

### Configure o Rules Engine

Para concluir, configure o **Rules Engine** para definir o *behavior* (comportamento) e os *criteria* (critérios) que executarão a integração.

Ainda na página **Firewall**:

1. Selecione a aba **Rules Engine**.
2. Clique no botão **+ Rules Engine**.
3. Dê um nome fácil de lembrar à sua nova regra.
   - Você pode adicionar uma descrição, mas é um passo opcional.
4. Selecione um **critério** para executar a integração:
   - Use esta regra: `if Request URI does not match "\.(png|jpg|css|js|jpeg|gif|ico|ttf|svg|woff|woff2|ashx|asmx|svc|swf|otf|eot)(\?.*)?$"`
      - Essa regra exclui ativos estáticos de serem processados pela função. Personalize conforme necessário.
5. Crie um **critério** adicional: `if Request URI does not match /.well-known/`
   - Essa regra exclui o caminho `/.well-known/`, evitando que a função interfira em scripts de automação ou APIs web que utilizam esse caminho.
6. Abaixo, selecione o *behavior* (comportamento) **Run Function**.
7. Selecione a função de acordo com o nome que você deu no passo 3.
8. Clique no botão **Save**.

Agora, no Console, você deve configurar seu domínio para que ele seja protegido pelo seu firewall.

9. No **Products menu**, selecione **Workloads**.
10. Clique no domínio que você deseja proteger com sua função **Bot Manager Lite**.
11. Na seção **Settings**, clique no seletor de `Firewall` e escolha o firewall que você acabou de criar.
12. Clique no botão **Save**.

Pronto. Agora você tem seus domínios protegidos contra ataques de bot usando a integração Azion **Bot Manager Lite**.

---

## Configuração de actions

Azion Bot Manager Lite pode executar 7 ações diferentes sempre que a pontuação da requisição for igual ou superior ao limite definido: `allow`, `deny`, `drop`, `redirect`, `custom_html`, `random_delay` e `hold_connection`.

<DocButton href="/pt-br/documentacao/produtos/secure/firewall/bot-manager-lite/#configuracao-de-actions" label="Ver todas as ações na referência" kind="secondary" size="medium" />

---

## Consulte os logs

Você pode usar [Data Stream](/pt-br/documentacao/produtos/observe/data-stream/) e [Real-Time Events](/pt-br/documentacao/produtos/observe/real-time-events/) para obter os logs do **Bot Manager Lite** e monitorar a atividade dos bots em suas aplicações.

:::caution[Atenção]
Se um produto ou módulo for ativado, poderá gerar custos relacionados ao uso. Verifique a [página de preços](/pt-br/documentacao/produtos/precos/) para obter mais informações.
:::

### Uso do Data Stream

Para criar um novo stream para monitorar a atividade do Bot Manager Lite:

1. Acesse o [Azion Console](https://console.azion.com) > **Data Stream**.
2. Clique no botão **+ Stream**.
3. Dê ao stream um nome único e fácil de lembrar.
4. Na seção **Data Settings*, selecione **Functions** como **Source**.
  - Deve ter subscrição ativa ao módulo Functions.
5. Em **Template**, selecione **Functions Event Collector** e verá também na caixa de código **Data Set** as variáveis que vão ser usadas na análise de seus logs.
6. Em **Workloads**, selecione entre **Filter Domains** ou **All Current and Future Domains**.
7. Em **Destination**, selecione um **Connector** na lista suspensa.
  - Os campos para preenchimento são diferentes dependendo do tipo de endpoint que você escolher. Descubra mais informações sobre cada campo na página de [configuração de endpoint](/pt-br/documentacao/produtos/observe/data-stream/#endpoints).
8. Clique no botão **Save**.

Agora você pode consultar os logs no endpoint selecionado. 

:::tip
Consulte a documentação para dar seus [Primeiros passos do Data Stream](/pt-br/documentacao/produtos/observe/data-stream/primeiros-passos/) e [Configurar as main settings do Data Stream](/pt-br/documentacao/produtos/guias/como-usar-data-stream/).
:::

### Uso do Real-Time Events

Para acessar o **Real-Time Events**, proceda da seguinte forma:

1. Acesse o [Azion Console](https://console.azion.com) > **Real-Time Events**.
2. Selecione **Functions**.
3. Defina o **Time Filter**, de acordo com o periodo que você deseja analisar.
4. Use a barra **Search** para criar uma busca mais específica.

:::tip
Consulte a documentação para dar seus [Primeiros passos do Real⁠-⁠Time Events](/pt-br/documentacao/produtos/observe/real-time-events/primeiros-passos/) e [entender os logs do Real⁠-⁠Time Events](/pt-br/documentacao/produtos/guias/observe/entender-logs/).
:::

### Leitura dos campos de log

Cada entrada de log gerada pelo Bot Manager Lite contém campos que revelam como uma requisição foi avaliada. Compreender esses campos permite identificar padrões, validar o `threshold` configurado e decidir se é necessário ajustar as regras.

A estrutura de saída do log segue este formato:

```json
{
  "score": 8,
  "action": "allow",
  "log_tag": "my_custom_tag",
  "matched_rules": [1, 4, 7],
  "request_id": "abc123xyz",
  "http_user_agent": "curl/7.68.0",
  "remote_addr": "203.0.113.42"
}
```

| Campo | Descrição |
|---|---|
| `score` | A pontuação acumulada atribuída à requisição. Cada regra correspondida incrementa esse valor. Se a pontuação atingir ou superar o `threshold`, a `action` configurada é acionada. |
| `action` | A ação executada para esta requisição: `allow`, `deny`, `drop`, `redirect`, `custom_html`, `random_delay` ou `hold_connection`. |
| `log_tag` | O identificador definido no argumento `log_tag`. Use-o para filtrar logs quando houver múltiplas instâncias do Bot Manager Lite em diferentes regras do firewall. |
| `matched_rules` | Um array com os IDs das regras acionadas por esta requisição. Use esses IDs para identificar quais comportamentos estão incrementando a pontuação — e para desabilitar regras específicas que gerem falsos positivos. |
| `request_id` | Um identificador único para a requisição, útil para correlacionar logs entre diferentes ferramentas de observabilidade da Azion. |
| `http_user_agent` | A string user-agent enviada na requisição. Útil para identificar clientes automatizados ou assinaturas de bots conhecidos. |
| `remote_addr` | O endereço IP do cliente. Cruze com suas listas de rede para validar a pontuação baseada em reputação. |

:::tip
Para habilitar o log de todas as requisições — incluindo aquelas com pontuação `0` — defina `"internal_logs": "2"` nos argumentos da função. Isso é recomendado durante a fase inicial de observação, antes de aplicar uma ação de bloqueio.
:::

---

## Ajuste do Bot Manager Lite

Após revisar seus logs, você pode ajustar os argumentos da função para reduzir falsos positivos, aumentar a precisão da detecção ou adaptar a integração ao perfil de tráfego da sua aplicação.

Para editar a configuração:

1. No canto superior esquerdo, selecione **Products menu** > **Firewall**, dentro da seção **Secure**.
2. Selecione o firewall relacionado com o **Bot Manager Lite**.
3. Abra a aba **Functions Instances**.
4. Selecione a instância da função que quiser editar.
5. Edite as variáveis na caixa de código **Arguments**.
6. Clique no botão **Save**.

### Ajuste do threshold

O `threshold` define a pontuação a partir da qual o Bot Manager Lite aciona a `action` configurada. Um valor menor aumenta a sensibilidade; um valor maior reduz os falsos positivos.

Comece com o modo de observação (`"action": "allow"` e `"internal_logs": "2"`) para coletar dados de linha de base antes de aplicar uma ação de bloqueio:

```json
{
  "threshold": 10,
  "action": "allow",
  "internal_logs": "2",
  "log_tag": "observation_phase"
}
```

Após revisar a distribuição de pontuações nos logs, reduza o `threshold` para o intervalo onde o tráfego malicioso se concentra — sem afetar usuários legítimos.

### Desabilitação de regras que geram falsos positivos

Se IDs de regras específicos aparecerem consistentemente em `matched_rules` para tráfego legítimo, você pode desabilitá-los usando o argumento `disabled_rules`:

```json
{
  "threshold": 10,
  "action": "deny",
  "disabled_rules": [4, 7],
  "log_tag": "production"
}
```

:::caution[Atenção]
Desabilitar regras reduz a cobertura de detecção. Só desabilite regras após confirmar — por meio da análise de logs — que elas correspondem consistentemente a padrões de tráfego legítimo.
:::

### Rastreamento de múltiplas instâncias com log tags

Se você executar o Bot Manager Lite em múltiplas regras do firewall ou domínios, use valores distintos de `log_tag` para filtrar os logs por instância no Real-Time Events ou no Data Stream:

```json
{
  "threshold": 10,
  "action": "deny",
  "log_tag": "checkout_flow"
}
```

Pesquise por `log_tag:checkout_flow` no Real-Time Events para isolar a atividade daquela regra específica.

### Permissão de fingerprints confiáveis para ignorar a análise

Se você tiver fingerprints associados a clientes confiáveis — como ferramentas internas de monitoramento ou parceiros verificados — você pode adicioná-los à `good_fingerprint_list`. Requisições desses fingerprints ignoram todas as regras de análise de bot e prosseguem sem que uma pontuação seja atribuída:

```json
{
  "threshold": 10,
  "action": "deny",
  "good_fingerprint_list": ["fp_trusted_monitor", "fp_partner_api"],
  "log_tag": "production"
}
```

Da mesma forma, use `bad_fingerprint_list` para atribuir uma pontuação alta (+32 pontos, via regra 21) a fingerprints com má reputação conhecida:

```json
{
  "threshold": 10,
  "action": "deny",
  "bad_fingerprint_list": ["fp_known_attacker"],
  "log_tag": "production"
}
```

:::caution[Atenção]
Adicione fingerprints à `good_fingerprint_list` somente após confirmar, por meio da análise de logs, que o fingerprint pertence consistentemente a tráfego legítimo. Ignorar a análise de bot para um fingerprint comprometido remove toda a proteção para essas requisições.
:::

### Bloqueio automático de bots de AI

Use `block_ai_bots` para bloquear imediatamente requisições identificadas como provenientes de user agents de AI conhecidos, sem executar nenhuma outra regra de análise de bot:

```json
{
  "threshold": 10,
  "action": "deny",
  "block_ai_bots": true,
  "log_tag": "production"
}
```

Quando `block_ai_bots` é `true`, as requisições correspondentes são bloqueadas antes das regras de pontuação serem executadas. Isso significa que elas não aparecerão em `matched_rules` — o bloqueio ocorre antes do pipeline de pontuação.

### Controle da verbosidade dos logs

Use `internal_logs` para controlar quais requisições são registradas:

| Valor | Comportamento |
|---|---|
| `"0"` | Registra requisições com pontuação maior que `0` (padrão). |
| `"1"` | Registra requisições com pontuação maior que `0` ou classificadas como Good Bot. |
| `"2"` | Registra todas as requisições, independentemente da pontuação. Recomendado para observação e ajuste. |
| `"3"` | Desabilita o registro de logs. |

### Uso do Debug Rules para rastrear a execução de regras do firewall

**Debug Rules** é um recurso do Firewall que registra quais regras do Rules Engine foram executadas para cada requisição. Ao ajustar o Bot Manager Lite, ele ajuda a confirmar se a regra que chama a função está sendo acionada — e em qual ordem em relação às demais regras do firewall.

Para habilitar o Debug Rules no seu firewall:

1. No canto superior esquerdo, selecione **Products menu** > **Firewall**, dentro da seção **Secure**.
2. Selecione o firewall associado ao Bot Manager Lite.
3. Na aba **Main Settings**, habilite o switch **Debug Rules**.
4. Clique no botão **Save**.

Após habilitado, as regras executadas são registradas no campo `$traceback` (Data Stream e Real-Time Events) ou na variável `stacktrace` (GraphQL API). Um exemplo de entrada:

```json
{
  "stacktrace": "{\"edge_firewall\":[\"Bot Manager Lite Rule\",\"Set WAF\"]}"
}
```

Isso confirma que a `Bot Manager Lite Rule` foi executada antes do conjunto de regras WAF para aquela requisição. Se o nome da regra não aparecer no `stacktrace`, os critérios configurados no Rules Engine não corresponderam — revise a configuração de critérios na aba **Rules Engine**.

:::tip
Consulte o guia [Como fazer debug de regras criadas com o Rules Engine](/pt-br/documentacao/produtos/guias/debug-regras/) para instruções detalhadas sobre como consultar o `traceback` via Data Stream, Real-Time Events e GraphQL API.
:::

<DocButton href="/pt-br/documentacao/produtos/guias/secure/gerenciar-bots/" label="consulte o guia sobre gerenciar bots" outlined size="medium" />

---