Skip to content

Latest commit

 

History

History
172 lines (148 loc) · 6.41 KB

File metadata and controls

172 lines (148 loc) · 6.41 KB
title description meta_tags namespace menu_namespace permalink
Como criar um WAF rule set
Crie conjuntos de regras no Web Application Firewall (WAF).
edge, secure, waf, conjunto de regras, Rules Engine
docs_secure_waf_rule_set
secureMenu
/documentacao/produtos/guias/secure/criar-waf-rule-set/

import ContributorList from '~/components/ContributorList.astro'

Web Application Firewall (WAF) permite que você crie conjuntos de regras (rule set) referentes a possíveis tipos de ameaças. Você pode definir esses conjuntos de regras no Rules Engine para o Edge Firewall executar seus comportamentos.

Este guia criará um conjunto de regras para bloquear ameaças da família SQL Injection para prevenir ataques que tentam uma consulta select, por exemplo. Após criar um edge firewall e ativar o módulo WAF, siga os passos descritos a seguir.


Via Azion Console

  1. Acesse o Azion Console > WAF Rules.
  2. Clique no botão Add WAF.
  3. Na aba Main Settings, dê um nome único e fácil de lembrar para o seu conjunto de regras WAF. Neste caso, Conjunto de regras SQL Injection.
  4. Na seção Threat Type Configuration, procure pela opção SQL Injection.
  5. Escolha a opção Sensitivity High para esta ameaça, para que o WAF não permita requisições consideradas como uma ameaça de SQL Injection.
  6. Certifique-se de que o switch Active esteja habilitado.
  7. Clique no botão Save.

Repita este processo com outros tipos de ameaças para os quais você deseja criar um conjunto de regras.

Agora, você precisa aplicar o conjunto de regras que criou no Rules Engine. Para fazer isso:

  1. Ainda no Azion Console, vá para Edge Firewall.
  2. Selecione a aba Rules Engine.
  3. Clique no botão New Rule*.
  4. Dê um nome para sua regra e, opcionalmente, uma descrição.
  5. Na seção Criteria, selecione a variável Request Args.
  6. Como operador de comparação, selecione matches.
  7. Como argumento, adicione content-type=select.
  8. Na seção Behaviors, selecione Set WAF Rule Set.
  9. Como argumentos:
    • No primeiro menu suspenso, selecione o conjunto de regras que deseja usar. Neste caso, SQL Injection rule set.
    • No segundo menu suspenso, selecione o modo que você deseja que o edge firewall opere: Learning ou Blocking. Neste caso, Blocking.
  10. Clique no botão Save.

Via API

  1. Execute a seguinte requisição POST para criar uma regra, substituindo [TOKEN VALUE] pelo seu personal token:
curl --location 'https://api.azionapi.net/waf/rulesets' \
--header 'Accept: application/json; version=3' \
--header 'Authorization: Token [TOKEN VALUE]' \
--header 'Content-Type: application/json' \
--data '{
    "name": "SQL Injection rule set",
    "mode": "blocking",
    "active": true,
    "sql_injection": true,
    "sql_injection_sensitivity": "high",
    "bypass_addresses": []
}'
  1. Você receberá uma resposta semelhante a esta:
{
  "id": 6421,
  "name": "SQL Injection rule set",
  "mode": "counting",
  "active": true,
  "sql_injection": true,
  "sql_injection_sensitivity": "high",
  "remote_file_inclusion": true,
  "remote_file_inclusion_sensitivity": "medium",
  "directory_traversal": true,
  "directory_traversal_sensitivity": "medium",
  "cross_site_scripting": true,
  "cross_site_scripting_sensitivity": "medium",
  "evading_tricks": true,
  "evading_tricks_sensitivity": "medium",
  "file_upload": true,
  "file_upload_sensitivity": "medium",
  "unwanted_access": true,
  "unwanted_access_sensitivity": "medium",
  "identified_attack": true,
  "identified_attack_sensitivity": "medium",
  "bypass_addresses": []
}
  1. Copie o valor de id.
  2. Execute a seguinte requisição POST para criar uma regra, substituindo [TOKEN VALUE] pelo seu personal token, a variável <edge_firewall_id>> com o ID do edge firewall e <id_conjunto_regras_waf> com o ID que você copiou:
curl --location 'https://api.azionapi.net/edge_firewall/<edge_firewall_id>/rules_engine' \
--header 'Accept: application/json; version=3' \
--header 'Authorization: Token azion5c2ecd92839e59b0cca662ada47b7382706' \
--header 'Content-Type: application/json' \
--data '{
    "name": "SQL Injection rule",
    "is_active": true,
    "behaviors": [
        {
            "name": "set_waf_ruleset",
            "argument": "<waf_rule_set_id>"
        }
    ],
    "criteria": [
        [
            {
                "variable": "request_args",
                "operator": "matches",
                "conditional": "if",
                "argument": "content-type=select"
            }
        ]
    ]
}'
Chave Descrição
name Nome da regra
comportamentos Array que armazena objetos que definem comportamentos
criterios Array que armazena objetos que definem critérios

Consulte a documentação da API da Azion para saber mais sobre critérios e objetos de comportamento.

  1. Você receberá a seguinte resposta:
{
  "results": {
    "name": "SQL Injection rule",
    "is_active": true,
    "behaviors": [
      {
        "name": "set_waf_ruleset",
        "argument": "6421"
      }
    ],
    "criteria": [
      [
        {
          "variable": "request_args",
          "operator": "matches",
          "conditional": "if",
          "argument": "content-type=select"
        }
      ]
    ],
    "last_modified": "2023-12-01T21:43:14.580949Z",
    "last_editor": "user@email.com",
    "id": 28735,
    "order": 4
  },
  "schema_version": 3
}

Aguarde alguns minutos para que as alterações se propaguem.

:::dica Confira a documentação da API da Azion e a especificação OpenAPI para saber mais sobre todos os recursos disponíveis via API. :::

Contributors Contributor