Como instalar o Azion Bot Manager Lite através do Marketplace da Azion
Azion Bot Manager Lite é 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 Lite 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 Lite utiliza aprendizado de máquina e Reputation Intelligence para analisar o comportamento dos dados recebidos.
Obtenha a integração
Para usar o Bot Manager Lite:
- Acesse o Azion Console > Marketplace.
- Na página inicial do Marketplace, selecione o card correspondente à integração Azion Bot Manager Lite.
- 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.
- Acesse o Real-Time Manager (RTM) > Marketplace.
- Na página inicial do Marketplace, selecione o card correspondente à integração Azion Bot Manager Lite.
- Quando estiver na página da integração, clique no botão Get it Now, no canto inferior direito.
Uma mensagem aparecerá indicando que a integração foi instalada com sucesso.
Configure a integração
Configure o Edge Firewall
Para instanciar a integração Azion Bot Manager Lite, siga estes passos:
- No canto superior esquerdo, selecione Products menu > Edge Firewall, dentro da seção Secure.
- Clique no botão + Edge Firewall.
- Dê um nome fácil de lembrar ao seu novo edge firewall.
- Selecione os domínios que deseja proteger com a função.
- Habilite o switch Edge Functions na seção Modules.
- 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.
- No canto superior esquerdo, selecione Products menu > Edge Firewall, dentro da seção Secure.
- Clique no botão Add Rule Set.
- Dê um nome fácil de lembrar à sua nova regra.
- Selecione os domínios que deseja proteger com a função.
- Habilite o switch Edge Functions na seção Modules.
- 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.
Configure a função
Ainda na página do Edge Firewall:
- Selecione a aba Functions Instances.
- Clique no botão Add Function.
- Dê um nome fácil de lembrar à sua instância.
- No menu suspenso, selecione a função Azion Bot Manager Lite.
Na caixa de código Args é onde você passará suas variáveis.
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:
Onde:
Variável | Tipo | Obrigatório | Descrição |
---|---|---|---|
action | String | Sim | A 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 |
threshold | Número | Sim | A 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_rules | Array de números | Não | As regras a serem desativadas. Se uma regra estiver desabilitada, ela não será processada nem aumentará a pontuação da requisição |
internal_logs | String | Não | A 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_headers | Boolean | Não | Define 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_tag | String | Não | Uma tag para identificar nos logs a instância da função que gerou a requisição. É recomendado usar tags personalizadas e únicas |
session_signature_key | String | Não | Essa 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_logs | Boolean | Não | Define se a função registrará logs de aviso no Real-Time Events. Valor padrão: false . |
- Quando estiver pronto, clique no botão Save para salvar suas configurações.
- Selecione a aba Functions Instances.
- Clique no botão + Function Instance.
- Dê um nome fácil de lembrar à sua instância.
- No menu suspenso, selecione a função Azion Bot Manager Lite.
Na caixa de código Arguments é onde você passará suas variáveis.
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:
Onde:
Variável | Tipo | Obrigatório | Descrição |
---|---|---|---|
action | String | Sim | A 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 |
threshold | Número | Sim | A 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_rules | Array de números | Não | As regras a serem desativadas. Se uma regra estiver desabilitada, ela não será processada nem aumentará a pontuação da requisição |
internal_logs | String | Não | A 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_headers | Boolean | Não | Define 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_tag | String | Não | Uma tag para identificar nos logs a instância da função que gerou a requisição. É recomendado usar tags personalizadas e únicas |
session_signature_key | String | Não | Essa 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_logs | Boolean | Não | Define se a função registrará logs de aviso no Real-Time Events. Valor padrão: false . |
- Quando estiver pronto, clique no botão Save para salvar suas configurações.
Configure o Rules Engine
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:
- Selecione a aba Rules Engine.
- Clique no botão + Rules Engine.
- Dê um nome fácil de lembrar à sua nova regra.
- Você pode adicionar uma descrição, mas é um passo opcional.
- 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.
- Use esta regra:
- 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.
- Abaixo, selecione o behavior (comportamento) Run Function.
- Selecione a função de acordo com o nome que você deu no passo 3.
- 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.
- Selecione a aba Rules Engine.
- Clique no botão New Rule.
- Dê um nome fácil de lembrar à sua nova regra.
- Você pode adicionar uma descrição, mas é um passo opcional.
- 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.
- Use esta regra:
- 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.
- Abaixo, selecione o behavior (comportamento) Run Function.
- Selecione a função de acordo com o nome que você deu no passo 3.
- 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 é 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:
allow
: permite a continuação da requisição. Para habilitar esta ação, você deve declará-la da seguinte forma:
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.
deny
: entrega uma resposta padrão com Status Code 403. Para habilitar esta ação, você deve declará-la da seguinte forma:
Essa ação não requer argumentos adicionais.
drop
: encerra a requisição sem uma resposta ao usuário. Para habilitar esta ação, você deve declará-la da seguinte forma:
Essa ação não requer argumentos adicionais.
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:
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.
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:
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çãoallow
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.
random_delay
: faz com que a função espere por um período aleatório entre1
e10
segundos antes de permitir que a requisição prossiga. Para habilitar esta ação, você deve declará-la da seguinte forma:
Essa ação não requer argumentos adicionais.
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:
Essa ação não requer argumentos adicionais.
—--
Consulte os logs
Você pode usar Data Stream e Real-Time Events para obter os logs do Bot Manager Lite e monitorar a atividade dos bots em suas aplicações.
Uso do Data Stream
Para criar um novo stream para monitorar a atividade do Bot Manager Lite:
- Acesse o Azion Console > Data Stream.
- Clique no botão + Stream.
- Dê ao stream um nome único e fácil de lembrar.
- Na seção *Data Settings, selecione Edge Functions como Source.
- Deve ter subscrição ativa ao módulo Edge Functions.
- 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.
- Em Domains, selecione entre Filter Domains ou All Current and Future Domains.
- 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.
- Clique no botão Save.
Agora você pode consultar os logs no endpoint selecionado.
- Acesse o Real-Time Manager (RTM) > Data Stream.
- Clique no botão Add Stream.
- Dê ao stream um nome único e fácil de lembrar.
- Na seção Data, selecione Edge Functions como Source.
- Deve ter subscrição ativa ao módulo Edge Functions.
- 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.
- Em Options, selecione entre Filter Domains ou All Domains.
- 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.
- Clique no botão Save.
Agora você pode consultar os logs no endpoint selecionado.
Uso do Real-Time Events
Para acessar o Real-Time Events, proceda da seguinte forma:
- Acesse o Azion Console > Real-Time Events.
- Selecione Edge Functions.
- Defina o Time Filter, de acordo com o periodo que você deseja analisar.
- Use a barra Search para criar uma busca mais específica.
- Acesse o Real-Time Manager (RTM) > Real-Time Events.
- Na seção Data Source, selecione Edge Functions.
- Defina o Time Filter, de acordo com o periodo que você deseja analisar.
- Use a barra Filter by para criar uma busca mais específica.
Gestão do Bot Manager Lite
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:
- No canto superior esquerdo, selecione Products menu > Edge Firewall, dentro da seção Secure.
- Selecione o firewall relacionado com o Bot Manager Lite.
- Abra a aba Functions Instances para carregar o formulário contendo o código-fonte da integração.
- Selecione a instância da função que quiser editar.
- Edite as variáveis na caixa de código Arguments.
- Clique no botão Save.
Você poderá ajustar os parâmetros do Bot Manager Lite de acordo com as necessidades do seu negócio.
- No canto superior esquerdo do Console, selecione Products menu > Edge Firewall, dentro da seção Secure.
- Selecione a instância relacionada com o Bot Manager Lite.
- Abra a aba Functions Instances para carregar o formulário contendo o código-fonte da integração.
- Selecione a instância da função que quiser editar.
- Edite as variáveis na caixa de código Args.
- Clique no botão Save.
Você poderá ajustar os parâmetros do Bot Manager Lite de acordo com as necessidades do seu negócio.