Regras de Proteção Personalizadas
O serviço WAF permite definir e aplicar regras de proteção personalizadas de módulos de firewall de código-fonte aberto às suas configurações de WAF, como módulos ModSecurity. Este tópico descreve como formatar, criar e implementar regras de proteção personalizadas em suas políticas do serviço WAF usando a Console e a API WAAS. Para obter uma lista de regras de proteção já disponíveis no serviço, consulte Regras de Proteção Suportadas.
Sintaxe de Regra de Proteção Personalizada
Fornece informações sobre a sintaxe da regra de proteção personalizada para o serviço Web Application Firewall.
Todas as regras de proteção personalizadas são expressas na Linguagem de Regra ModSecurity. Para obter mais informações sobre a sintaxe do ModSecurity, consulte Criando Regras: A Sintaxe Básica.
Além disso, cada regra deve incluir duas variáveis de placeholder que são atualizadas pelo serviço WAF após a publicação da regra.
ID:{{id_1}} - Este campo é atualizado com um ID de regra exclusivo gerado pelo serviço WAF que identifica uma SecRule
. Mais de uma SecRule
pode ser definida no campo template
de uma chamada CreateCustomProtectionRule. O valor da primeira SecRule
deve ser id:{{id_1}}
e o campo id
de cada SecRule
subsequente deve aumentar em uma unidade, conforme mostrado no exemplo.
ctl:ruleEngine={{mode}} - A ação a ser executada quando os critérios da SecRule
forem atendidos, seja OFF
, DETECT
ou BLOCK
. Esse campo é atualizado com o valor correspondente do campo action
do objeto CustomProtectionRuleSetting
ao usar a operação UpdateWafConfig.
Exemplo de formato de regra de proteção personalizada:
SecRule REQUEST_COOKIES "regex matching SQL injection - part 1/2" \
"phase:2, \
msg:'Detects chained SQL injection attempts 1/2.', \
id:{{id_1}}, \
ctl:ruleEngine={{mode}}, \
deny"
SecRule REQUEST_COOKIES "regex matching SQL injection - part 2/2" \
"phase:2, \
msg:'Detects chained SQL injection attempts 2/2.', \
id:{{id_2}}, \
ctl:ruleEngine={{mode}}, \
deny"
Ações
O serviço WAF pode executar uma ação em uma solicitação HTTP quando os critérios de uma regra de proteção personalizada forem atendidos.
- DETECT - Registra a solicitação quando os critérios da proteção personalizada são atendidos.
- BLOCK - Bloqueia a solicitação quando os critérios da regra de proteção personalizada forem atendidos.
- OFF - A regra de proteção personalizada está inativa e não tomará nenhuma medida.
Usando a Console
- Abra o menu de navegação e selecione Identidade e Segurança. Em Firewall de Aplicativo Web, selecione Políticas.
- Clique em Regras de proteção personalizadas.
- Clique em Criar regra de proteção personalizada.
- Na caixa de diálogo Criar regra de proteção personalizada, digite o seguinte:
- Nome: Um nome exclusivo para a regra de proteção.
- Descrição: Opcional. Uma descrição da regra de proteção personalizada.
- Modelo: Informe os critérios da regra de proteção na Idioma da Regra ModSecurity. Cada regra deve incluir duas variáveis de placeholder: id:{{id_1}} e ctl:ruleEngine={{{mode}}. Para obter mais informações sobre a sintaxe do ModSecurity, consulte Criando Regras: A Sintaxe Básica.
- Mostrar opções avançadas: Clique neste link para exibir as opções de tag. Consulte Visão Geral de Tags.
-
Escolha um dos valores a seguir:
- Para criar a regra, clique em Criar.
- Para criar a regra posteriormente usando o Resource Manager, consulte Criando uma Pilha com Base em uma Página de Criação de Recurso.
- Abra o menu de navegação e selecione Identidade e Segurança. Em Firewall de Aplicativo Web, selecione Políticas.
- Clique em Regras de Proteção Personalizadas.
- Clique no nome da regra de proteção personalizada que você deseja editar.
- Clique em Editar.
- Faça as alterações necessárias e clique em Salvar Alterações.
- Abra o menu de navegação e selecione Identidade e Segurança. Em Firewall de Aplicativo Web, selecione Políticas.
- Clique em Regras de Proteção Personalizadas.
- Localize a regra de proteção na lista, clique no menu e clique em Mover Recurso.
-
Escolha o compartimento de destino na lista.
- Clique em Mover Recurso.
- Abra o menu de navegação e selecione Identidade e Segurança. Em Firewall de Aplicativo Web, selecione Políticas.
- Clique em Regras de Proteção Personalizadas.
-
Marque a caixa de seleção da regra de proteção que você deseja excluir.
- Clique em Excluir.
- Na caixa de diálogo de Confirmação, clique em Excluir.
- Abra o menu de navegação e selecione Identidade e Segurança. Em Firewall de Aplicativo Web, selecione Políticas.
- Clique no nome da Política de WAF para a qual você deseja configurar definições de regras. A visão geral da Política de WAF é exibida.
- Clique em Regras de Proteção.
- Clique na guia Regras Personalizadas.
- Clique em Adicionar no menu drop-down Ações.
- Na caixa de diálogo Adicionar Regra Personalizada, selecione uma regra de proteção personalizada no menu drop-down. Se a regra de proteção personalizada existir em outro compartimento, você poderá alterar o compartimento em que a regra reside.
- Selecione uma das seguintes ações a serem aplicadas à regra:
- Detectar: As solicitações correspondentes geram um alerta e a solicitação tem proxy.
- Bloquear: As solicitações correspondentes são bloqueadas.
- Clique em Adicionar.
- Abra o menu de navegação e selecione Identidade e Segurança. Em Firewall de Aplicativo Web, selecione Políticas.
- Clique no nome da Política do serviço WAF em que você deseja editar uma regra de proteção personalizada.
- Clique em Regras de Proteção e, em seguida, na guia Regras Personalizadas.
- Marque a caixa de seleção da regra personalizada para a qual deseja alterar a ação.
- Selecione a ação no menu drop-down Ações.
- Abra o menu de navegação e selecione Identidade e Segurança. Em Firewall de Aplicativo Web, selecione Políticas.
- Clique no nome da Política do serviço WAF da qual você deseja remover uma regra de proteção personalizada. A visão geral da Política do serviço WAF é exibida.
- Clique em Regras de Proteção.
- Clique na guia Regras Personalizadas.
-
Marque a caixa de seleção da regra personalizada que você deseja excluir.
- Selecione excluir do menu drop-down Ações.
Usando a API
As regras de proteção personalizadas podem ser criadas e adicionadas a um compartimento usando a chamada CreateProtectionRule na API WAAS. Usando a formatação da Linguagem de Regra do ModSecurity, preencha o campo template
com os critérios da regra.
Exemplo:
{
"compartmentId": "ocid1.compartment.region1..<unique_ID>",
"description": "The description text for the rule being created",
"displayName": "Custom Protection Rule Name",
"template": "SecRule REQUEST_URI / \"phase:2, t:none, capture, msg:'Custom (XSS) Attack. Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}', id:{{id_1}}, ctl:ruleEngine={{mode}}, tag:'Custom', severity:'2'\""
}
Adicionando Regras de Proteção Personalizadas a uma Configuração de WAF
As regras de proteção personalizadas podem ser adicionadas a uma configuração WAF usando a chamada UpdateWafConfig na API WAAS.
Adicione o OCID e a ação desejada ao objeto CustomProtectionRuleSetting
do esquema UpdateWafConfig.
Exemplo:
[
{
"action": "BLOCK",
"id":"ocid1.waascustomprotectionrule.oc1..aaaaaaaalxd4jrws4rbbnddzlnotu3giuzo53kopbj747mbvarttr7vyy7ja"
},
{
"action": "DETECT",
"id":"ocid1.waascustomprotectionrule.oc1..aaaaaaaamx5r72ntmmhwgeaspzpdqcwsgprpuvwsa7xoshnyo3xhtpwcobeq"
}
]
Para exibir uma lista de regras de proteção personalizadas disponíveis em um compartimento e seus OCIDs correspondentes, use a chamada ListCustomProtectionRules na API do WAAS.