Rules Engine para Edge Firewall
Rules Engine para Edge Firewall é uma ferramenta projetada para implementação de lógicas de segurança no Edge Firewall. A aba de configurações do Rules Engine aparece dentro de um edge firewall criado.
O Rules Engine para Edge Firewall da Azion é programável. Dessa forma, você define quais são as condições (Criteria) e comandos (Behaviors). Se as Criteria forem atendidas, os Behaviors serão executados.
Você pode usar o Rules Engine para Edge Firewall para configurar todos os aspectos operacionais dos firewalls de suas edge applications. Aqui estão alguns exemplos de implementações para as quais você pode utilizá-lo:
- Bloquear requisições.
- Ignorar requisições.
- Limitar a taxa de acessos.
- Aplicar políticas de Web Application Firewall (WAF).
- Rodar Edge Functions para Edge Firewall com seu próprio código.
- Monitorar tráfego para identificação de ameaças.
Um edge firewall pode ter quantas regras forem necessárias. Essas regras também são intercambiáveis, e você pode compartilhar a mesma regra com outras configurações de edge firewall.
saiba mais sobre Edge Firewall consulte o guia trabalhar com rules engineComo funciona o Rules Engine para o Edge Firewall
Seção intitulada Como funciona o Rules Engine para o Edge FirewallAs requisições de seus usuários para sua aplicação são processadas primeiro pelo Edge Firewall. Você pode definir um conjunto de regras de segurança que serão executadas por esse Edge Firewall.
As regras são compostas por Criteria, que representam as condições para execução das regras, e por Behaviors, que representam as ações e comandos que serão executados.
O processamento das regras é sequencial e você pode usá-las aliadas a um poderoso conjunto de variáveis e operadores de comparação. Se as condições forem atendidas, os Behaviors de cada regra são executados até todas as regras serem processadas.
Detalhes de um edge firewall
Seção intitulada Detalhes de um edge firewallUm edge firewall é composto por:
- Nome identificador.
- Descrição.
- Criteria.
- Behaviors.
- Active switch, para ativar/desativar sem excluir o edge firewall todo.
Criteria
Seção intitulada CriteriaAs Criteria determinam as condições que precisam ser atendidas para a execução dos Behaviors. A disponibilidade de Criteria e Behaviors dependem dos módulos de Edge Firewall ativados.
saiba mais sobre Edge FirewallVariáveis disponíveis para Criteria
Seção intitulada Variaveis disponiveis para CriteriaEsta é a lista de todas as variáveis de Criteria disponíveis:
Criteria | Descrição | Requisitos |
---|---|---|
Header Accept | Header que informa quais tipos de dado que o cliente aceita como resposta | Web Application Firewall |
Header Accept-Encoding | Header que informa quais os tipos de codificação de conteúdo, geralmente algoritmos de compressão, que o cliente aceita como resposta | Web Application Firewall |
Header Accept-Language | Header que informa a linguagem esperada | Web Application Firewall |
Header Cookie | Header que contém os cookies enviados pelo cliente na requisição para o servidor | Web Application Firewall |
Header Origin | Header que informa a origem de uma requisição de acesso cross-site ou de uma requisição preflight. A origem é uma URI indicando o nome do servidor, sem nenhuma informação de caminho | Web Application Firewall |
Header Referer | Header que indica o endereço do documento, ou elemento em um documento, a partir do qual a URI da requisição foi obtida | Web Application Firewall |
Header User Agent | Header com uma sequência característica que permite que servidores identifiquem o aplicativo, sistema operacional, fornecedor e/ou versão do dispositivo | Web Application Firewall |
Hostname | Em ordem de precedência: o hostname da linha de requisição, ou o valor do campo de header host da requisição, ou o nome do servidor atendendo a requisição | - |
Network | O endereço IP do cliente que está realizando a requisição HTTP, que poderá ser utilizado para qualquer comparação de rede (CIDR, ASN ou Country) | Network Layer Protection |
Request Args | Todos os argumentos enviados pelo usuário na linha de requisição (query string). | Web Application Firewall |
Request Method | O método HTTP da requisição. Por exemplo: GET , POST , PUT , etc. | - |
Request URI | Refere-se à variável uri da Rules Engine para Edge Applications. O URI normalizado (urldecoded) da requisição. O valor de uri pode mudar durante o processamento de uma requisição, por exemplo, quando ocorre um redirecionamento interno ou quando são utilizados arquivos de índice. Ele não carrega os parâmetros da Query String como request_uri faz | - |
Scheme | O scheme da requisição: http ou https | - |
Client Certificate Validation | Processo do servidor para autenticar o certificado digital do cliente | - |
SSL Verification Status | Resultado do servidor para validação do certificado do cliente. Pode ser Success , quando a validação do certificado do cliente foi aprovada; Certificate Verification Error , quando o certificado do cliente não era válido; e Missing Client Certificate , quando o certificado do cliente não foi enviado na solicitação | - |
Operadores de Comparação
Seção intitulada Operadores de ComparacaoA condição para a execução de uma regra deve ser a comparação de uma variável com um argumento. Os operadores de comparação são:
Operador | Descrição | Argumento |
---|---|---|
is equal | O valor da variável é igual ao argumento, comparado caractere a caractere | string |
is not equal | O valor da variável não é exatamente igual ao argumento | string |
starts with | O valor da variável inicia pelo argumento | string |
does not start with | O valor da variável não inicia pelo argumento | string |
matches | O valor da variável coincide com a expressão regular ou lista informada como argumento | regular expression lista |
does not match | O valor da variável não coincide com a expressão regular ou lista informada como argumento | regular expression lista |
exists | A variável tem valor definido. Por exemplo, Request Args existe se for enviado um argumento na query string da requisição | - |
does not exist | A variável não tem valor definido. Por exemplo, Request Args não existe se não for enviado um argumento na query string da requisição | - |
Operadores Lógicos
Seção intitulada Operadores LogicosMúltiplas condições podem ser definidas por meio dos operadores lógicos and
e or
.
Se necessária precedência explícita, você pode adicionar múltiplos grupos de critérios sob a lógica and
.
Behaviors
Seção intitulada BehaviorsEm Behaviors, você adiciona os comandos de ação que deseja executar se as Criteria forem atendidas.
Está é uma lista de todos os Behaviors disponíveis:
Behavior | Descrição | Requisitos |
---|---|---|
Deny (403 Forbidden) | Encerra a requisição com resposta HTTP 403 Forbidden | - |
Drop (Close Without Response) | Encerra a requisição sem responder ao cliente | - |
Set Rate Limit | Define um limite de taxa de acesso que, se excedido, resultará em resposta HTTP 429 Too Many Requests. Para configurar Rate Limit, você deverá informar: Type , é o campo para selecionar o tipo de requisição do Rate Limit, optando por Req/s (requisições por segundo) ou Req/Min (requisições por minuto). Average Rate Limit , que é a taxa limite por segundo, propriamente dita. Client IP address , se você deseja que a contabilização da taxa de acesso seja por endereço IP do cliente ou Global , caso deseje contabilização total da taxa de acesso. Maximum burst size , que indica o tamanho máximo da rajada de requisições HTTP enviadas simultaneamente, as quais serão enfileiradas e despachadas gradualmente, respeitando-se a taxa limite. O valor configurado será o Rate Limit em cada Azion Edge Node, implementado por meio do algoritmo de Leaky Bucket. Recomendamos que você utilize Maximum burst size no máximo 10 vezes o valor configurado em Average Rate Limit, o que resultaria em penalizar a última requisição de uma rajada com até 10 segundos de atraso. Nota: o Rate Limite é aplicado por endereço de IP ou por Global e por regra, e se uma regra possui mais de uma URI especificada e possui o condicional Or, o limite de taxa de acesso será compartilhado entre as URIs. Crie diferentes regras se você deseja ter um limite de taxa de acesso para cada URI | - |
Set WAF Rule Set | Associa a Rule Set de WAF que deve ser utilizada na requisição. As políticas de WAF devem ser previamente configuradas no menu Edge Libraries > *WAF Rules | Web Application Firewall |
Run Function | Executa uma função especificada como parâmetro. A função deve ter sido previamente instanciada e parametrizada na aba Functions para poder ser utilizada | Edge Functions |
Set Custom Response | Permite uma resposta personalizada quando a solicitação atende aos critérios. Você pode personalizar o Status Code alterando-o de 200 para 499, por exemplo, e o header Content Type e o Content Body da sua solicitação com no máximo 500 caracteres | - |
Lógica e execução de behaviors
Seção intitulada Logica e execucao de behaviorsEnquanto behaviors e regras são executados na ordem em que são distribuidos, alguns tipos de behaviors não podem ser encadeados.
Se um behavior do tipo Set, como Set Custom Response no Edge Firewall ou Set Origin no Edge Application, for adicionado múltiplas vezes a regras no Rules Engine, apenas o último behavior da última regra na qual o criteria foi atendido será executado.
Behaviors do tipo Add são cumulativos e podem ser adicionados várias vezes às regras. Isso significa que se Add Cookie e Add Header forem executados várias vezes para os mesmos pares key-value, múltiplas entradas idênticas serão adicionadas.
No entanto, para cabeçalhos únicos como Host
, o último behavior do tipo Add Header que é executado sobrescreverá o valor anterior, já que não pode haver mais de um cabeçalho Host
em uma requisição.
Alguns behaviors, como Deny, podem finalizar a execução das regras. Se uma sequência de regras inclui tal behavior, quaisquer regras ou behaviors que sigam este tipo de comportamento finalizador não serão executados.
Contribuidores