Como instalar o Azion Bot Manager através do Marketplace da Azion

Azion Bot Manager é uma integração serverless disponível no Marketplace da Azion. Esta integração foi construída com base em uma edge function no Edge Firewall que analisa as requisições recebidas e atribui um score com base em regras e comportamentos. Se a pontuação é igual o excede o limite predeterminado, a integração declina ou cancela a requisição. Caso contrário, a requisição é processada (allow, como ação padrão). As ações disponíveis para Bot Manager são: allow, deny, drop, redirect, custom HTML, random delay e hold the 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 utiliza aprendizado de máquina e Reputation Intelligence para analisar o comportamento dos dados recebidos.


Para usar o Bot Manager:

  1. Acesse o Azion Console > Marketplace.
  2. Na página inicial do Marketplace, selecione o card correspondente à integração Azion Bot Manager.
  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.


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

  1. No canto superior esquerdo do Azion Console, selecione Products menu > Edge Firewall, dentro da seção Secure.
  2. Clique no botão + Rules Engine.
  3. Dê um nome fácil de lembrar à sua nova regra.
  4. Selecione os domínios que deseja proteger com a função.
  5. Habilite o switch Edge Functions na seção Modules.
  6. Clique no botão Next.

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

Ainda na página do Edge Firewall:

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

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

{
"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:

{
"threshold": 10,
"action": "deny",
"disabled_rules": [],
"log_tag": "my_custom_tag"
}

Onde:

VariávelTipoObrigatórioDescrição
actionStringSimA ação a ser tomada pela função sempre que a pontuação da requisição for igual ou maior ao limite definido. Valores possíveis: allow, deny, redirect, custom_html, drop, random_delay e hold_connection. Saiba mais sobre a configuração de actions
thresholdNúmeroSimA pontuação máxima que a requisição pode atingir antes que a função execute uma ação. Se não tiver valor, a função não agirá
disabled_rulesArray de númerosNãoAs regras a serem desativadas. Se uma regra estiver desabilitada, ela não será processada nem aumentará a pontuação da requisição
internal_logsStringNãoA Logging Class que a função usará. Valores possíveis:
0: escrever logs se a pontuação da requisição for maior que 0.
1: escrever logs apenas se a pontuação da requisição for maior que 0, ou se a requisição for classificada como “Good Bot”.
2: sempre escrever logs.
3: nunca escrever logs.
Valor padrão: 0. Quando este campo não tiver valor ou tiver um valor inválido, a função usará o valor padrão.
log_all_headersBooleanNãoDefine quando ou não todos os cabeçalhos da requisição devem ser enviados no log da função. Nota: os valores dos cabeçalhos serão impressos com codificação base64
log_tagStringNãoUma tag para identificar nos logs a instância da função que gerou a requisição. É recomendado usar tags personalizadas e únicas
session_signature_keyStringNãoEssa string é usada para assinar, como dados criptografados, o cookie de sessão do bot assinado. Essa validação fornece proteção contra a manipulação do cookie. Se este campo não tiver valor ou tiver um valor inválido, a função usará o valor padrão az
should_write_warning_logsBooleanNãoDefine se a função registrará logs de aviso no Real-Time Events. Valor padrão: false.
  1. Quando estiver pronto, clique no botão Next para salvar suas configurações.

Para concluir, você precisa configurar o Rules Engine e nele configurar o behavior (comportamento) e os criteria (critérios) para executar a integração.

Ainda na página Edge 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 criteria (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 é recomendada para excluir todos os dados estáticos da sua aplicação a serem processados pela função. Você pode personalizar esta regra, se necessário.
  5. Você precisa criar outro critério para que esta integração funcione: if Request URI does not match /.well-know/
    • Essa regra é recomendada para criar uma lista de permissões de IP que não impacte a automação ou scripts da WEB API.
  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 Next.

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


Azion Bot Manager é capaz de executar 7 ações diferentes sempre que a pontuação da requisição for maior ou igual ao limite (threshold) definido. Saiba mais sobre cada action a seguir:

  1. allow: permite a continuação da requisição. Para habilitar esta ação, você deve declará-la da seguinte forma:
"action": "allow"

Essa ação não requer argumentos adicionais.

Se o score for menor que o limiar predeterminado, a requisição será processada, sendo allow a ação default.

  1. deny: entrega uma resposta padrão com Status Code 403. Para habilitar esta ação, você deve declará-la da seguinte forma:
"action": "deny"

Essa ação não requer argumentos adicionais.

  1. drop: encerra a requisição sem uma resposta ao usuário. Para habilitar esta ação, você deve declará-la da seguinte forma:
"action": "drop"

Essa ação não requer argumentos adicionais.

  1. redirect: permite que a requisição seja redirecionada para uma nova URL/localização quando o limite de segurança é atingido. Para habilitar esta ação, você deve declarar as variáveis como no exemplo:
"action": "redirect",
"redirect_to": "http://xxxxxxxxxx.map.azionedge.net/"

Onde redirect_to define a nova URL/localização para redirecionar as requisições. Se este campo não estiver preenchido ou estiver preenchido com um valor que não seja uma string, a função se comportará como aconteceria com a ação allow habilitada.

  1. custom_html: permite a entrega de conteúdo HTML personalizado ao usuário em caso de violação do limite. Para habilitar esta ação, você deve declarar as variáveis como no exemplo:
"action": "custom_html",
"custom_html": "This should be the custom HTML content",
"custom_status_code": 418,

Onde custom_html define o conteúdo HTML a ser entregue e custom_status_code define o status code a ser entregue.

  • Se custom_html não estiver preenchido ou estiver preenchido com um valor que não seja uma string, a função se comportará como aconteceria com a ação allow habilitada.
  • Se custom_status_code não estiver preenchido ou estiver preenchido com um valor que não seja um número, o valor padrão será um Status Code 200.
  1. random_delay: faz com que a função espere por um período aleatório entre 1 e 10 segundos antes de permitir que a requisição prossiga. Para habilitar esta ação, você deve declará-la da seguinte forma:
"action": "random_delay"

Essa ação não requer argumentos adicionais.

  1. hold_connection: retém a requisição, mantendo a conexão aberta por 1 minuto antes de encerrá-la. Para habilitar esta ação, você deve declará-la da seguinte forma:
"action": "hold_connection"

Essa ação não requer argumentos adicionais.

Você pode usar Data Stream e Real-Time Events para obter os logs do Bot Manager e monitorar a atividade dos bots em suas aplicações.

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

  1. Acesse o Azion Console > Data Stream.
  2. Clique no botão Add.
  3. Dê ao stream um nome único e fácil de lembrar.
  4. Na seção *Data Settings, selecione Edge Functions como Source.
  • Deve ter subscrição ativa ao módulo Edge Functions.
  1. Em Template, selecione Edge 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.
  2. Em Domains, selecione entre Filter Domains ou All Current and Future Domains.
  3. Em Destination, selecione um Endpoint Type 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.
  1. Clique no botão Next.

Agora você pode consultar os logs no endpoint selecionado.

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

  1. Acesse o Azion Console > Real-Time Events.
  2. Em Data Source, selecione Edge Functions.
  3. Defina o Time Filter, de acordo com o periodo que você deseja analisar.
  4. Use a barra Filter by para criar uma busca mais específica.

A Azion fornecerá configurações básicas e fáceis de usar, que devem ser suficientes para a maioria dos casos. Se você precisar de uma configuração mais detalhada, como regras personalizadas, você pode editar o arquivo JSON da integração.

Para encontrar esse arquivo:

  1. No canto superior esquerdo do Console, selecione Products menu > Edge Firewall, dentro da seção Secure.
  2. Selecione a instância relacionada com o Bot Manager.
  3. Abra a aba Functions Instances para carregar o formulário contendo o código-fonte da integração.
  4. Selecione a instância da função que quiser editar.
  5. Edite as variáveis na caixa de código Arguments.

Você poderá ajustar os parâmetros do Bot Manager de acordo com as necessidades do seu negócio.


Contribuidores