Regras De Filtro De Tráfego, Incluindo Regras Do WAF traffic-filter-rules-including-waf-rules
As regras de filtro de tráfego podem ser usadas para bloquear ou permitir solicitações na camada CDN, que pode ser útil em cenários como:
- Restrição do acesso a domínios específicos para tráfego interno da empresa, antes que um novo site entre em funcionamento
- Estabelecer limites de taxa para serem menos susceptíveis a ataques volumétricos de DoS
- Impedindo que endereços IP conhecidos como mal-intencionados direcionem suas páginas
A maioria dessas regras de filtro de tráfego está disponível para todos os clientes do AEM as a Cloud Service Sites e do Forms. Eles operam principalmente em propriedades de solicitação e cabeçalhos de solicitação, incluindo IP, nome do host, caminho e agente do usuário.
Uma subcategoria de regras de filtro de tráfego requer uma licença de Segurança aprimorada ou uma licença de Proteção WAF-DDoS. Essas regras poderosas são conhecidas como regras de filtro de tráfego do WAF (Firewall do Aplicativo Web) (ou regras do WAF abreviadas) e têm acesso aos Sinalizadores do WAF descritos mais adiante neste artigo.
As regras de filtro de tráfego podem ser implantadas por meio dos pipelines de configuração do Cloud Manager para desenvolvimento, preparo e tipos de ambiente de produção em programas de produção (que não são de sandbox). O arquivo de configuração pode ser implantado em ambientes de desenvolvimento rápido (RDEs) usando ferramentas de linha de comando.
Siga um tutorial para criar rapidamente uma experiência concreta sobre esse recurso.
Como este artigo está organizado how-organized
Este artigo está organizado nas seguintes seções:
- Visão geral da proteção de tráfego: Saiba como você está protegido contra tráfego mal-intencionado.
- Processo sugerido para configurar as regras: Leia sobre uma metodologia de alto nível para proteger seu site.
- Instalação: descubra como configurar, configurar e implantar regras de filtro de tráfego, incluindo as regras avançadas do WAF.
- Sintaxe de regras: Leia sobre como declarar regras de filtro de tráfego no arquivo de configuração
cdn.yaml
. Isso inclui as regras de filtro de tráfego disponíveis para todos os clientes do Sites e do Forms e a subcategoria de regras do WAF para aqueles que licenciam esse recurso. - Exemplos de regras: veja exemplos de regras declaradas para começar.
- Regras de limite de taxa: Saiba como usar regras de limitação de taxa para proteger seu site contra ataques de alto volume.
- Alertas de Regras de Filtro de Tráfego Configure os alertas para serem notificados quando as regras forem acionadas.
- Pico de tráfego padrão no Alerta de Origem Receba notificações quando houver um pico de tráfego na origem que sugira um ataque de DDoS.
- Logs da CDN: veja quais regras e Sinalizadores da WAF declarados correspondem ao seu tráfego.
- Ferramentas do Painel: Analise seus logs de CDN para criar novas regras de filtro de tráfego.
- Regras de Início Recomendadas: Um conjunto de regras para começar a usar.
- Tutorial: conhecimento prático sobre o recurso, incluindo como usar ferramentas do painel para declarar as regras certas.
O Adobe solicita seu feedback ou faça perguntas sobre as regras de filtro de tráfego enviando um email para aemcs-waf-adopter@adobe.com.
Visão geral da proteção de tráfego traffic-protection-overview
No cenário digital atual, o tráfego mal-intencionado é uma ameaça constante. A Adobe reconhece a gravidade do risco e oferece várias abordagens para proteger os aplicativos do cliente e mitigar os ataques quando eles ocorrem.
Na borda, o CDN gerenciado por Adobe absorve ataques de DoS na camada de rede (camadas 3 e 4), incluindo ataques de inundação e de reflexão/amplificação.
Por padrão, o Adobe adota medidas para evitar a degradação do desempenho devido a picos de tráfego inesperadamente alto além de um determinado limite. Se houver um ataque de DoS que afete a disponibilidade do site, as equipes de operações do Adobe serão alertadas e tomarão medidas para atenuar o problema.
Os clientes podem tomar medidas proativas para atenuar os ataques à camada do aplicativo (camada 7), configurando regras em várias camadas do fluxo de entrega de conteúdo.
Por exemplo, na camada do Apache, os clientes podem configurar o módulo do Dispatcher ou o ModSecurity para limitar o acesso a determinado conteúdo.
Como este artigo descreve, as regras de filtro de tráfego podem ser implantadas na CDN gerenciada por Adobe, usando os pipelines de configuração da Cloud Manager. Além das regras de filtro de tráfego baseadas em propriedades como endereço IP, caminho e cabeçalhos ou regras baseadas na definição de limites de taxa, os clientes também podem licenciar uma subcategoria poderosa de regras de filtro de tráfego chamada regras de WAF.
Processo sugerido suggested-process
Veja a seguir um processo completo recomendado de alto nível para criar as regras certas de filtro de tráfego:
- Configure pipelines de configuração de não produção e produção, conforme descrito na seção Configuração.
- Os clientes que licenciaram a subcategoria das regras de filtro de tráfego do WAF devem habilitá-los no Cloud Manager.
- Leia e experimente o tutorial para entender concretamente como usar as regras de filtro de tráfego, incluindo as regras do WAF, se elas tiverem sido licenciadas. O tutorial o orienta pela implantação de regras em um ambiente de desenvolvimento, simulando tráfego mal-intencionado, baixando os logs de CDN e analisando-os em ferramentas de painel.
- Copie as regras de início recomendadas para
cdn.yaml
e implante a configuração no ambiente de produção no modo de log. - Depois de coletar algum tráfego, analise os resultados usando a ferramenta de painel para ver se há correspondências. Procure falsos positivos e faça os ajustes necessários, permitindo, em última análise, as regras de início no modo de bloco.
- Adicione regras personalizadas com base na análise dos logs de CDN, primeiro testando com tráfego simulado em ambientes de desenvolvimento antes de implantar em ambientes de preparo e produção no modo de log e, em seguida, no modo de bloqueio.
- Monitorar o tráfego continuamente, alterando as regras à medida que o cenário de ameaças evolui.
Configurar setup
-
Crie um arquivo
cdn.yaml
com um conjunto de regras de filtro de tráfego, incluindo regras WAF.code language-none kind: "CDN" version: "1" metadata: envTypes: ["dev"] data: trafficFilters: rules: # Block simple path - name: block-path when: allOf: - reqProperty: tier matches: "author|publish" - reqProperty: path equals: '/block/me' action: block
Consulte Usando Pipelines de Configuração para obter uma descrição das propriedades acima do nó
data
. O valor da propriedadekind
deve ser definido como CDN e a versão, como1
. -
Se as regras do WAF estiverem licenciadas, você deverá ativar o recurso no Cloud Manager, conforme descrito abaixo, para os cenários de programa novo e existente.
-
Para configurar o WAF em um novo programa, marque a caixa de seleção Proteção do WAF-DDOS na guia Segurança ao adicionar um programa de produção.
-
Para configurar o WAF em um programa existente, edite seu programa e, na guia Segurança, desmarque ou marque a opção WAF-DDOS a qualquer momento.
-
-
Crie um pipeline de configuração no Cloud Manager, conforme descrito no artigo configurar pipeline. O pipeline referenciará uma pasta
config
de nível superior com o arquivocdn.yaml
colocado em algum lugar abaixo, consulte Uso de Pipelines de Configuração.
Sintaxe das regras de filtro de tráfego rules-syntax
Você pode configurar regras de filtro de tráfego para corresponder a padrões como IPs, agente de usuário, cabeçalhos de solicitação, nome do host, localização geográfica e url.
Os clientes que licenciam a oferta de Segurança aprimorada ou Segurança de proteção WAF-DDoS também podem configurar uma categoria especial de regras de filtro de tráfego chamada regras de filtro de tráfego do WAF (ou regras do WAF para abreviar) que fazem referência a um ou mais sinalizadores do WAF.
Este é um exemplo de um conjunto de regras de filtro de tráfego, que também inclui uma regra WAF.
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
rules:
- name: "path-rule"
when:
allOf:
- { reqProperty: path, equals: /block-me }
- { reqProperty: tier, equals: publish }
action:
type: block
- name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
when: { reqProperty: path, like: "*" }
action:
type: block
wafFlags: [ SQLI, XSS]
O formato das regras de filtro de tráfego no arquivo cdn.yaml
está descrito abaixo. Veja alguns outros exemplos em uma seção posterior e uma seção separada sobre Regras de Limite de Taxa.
string
Condition
{ <getter>: <value>, <predicate>: <value> }
Consulte a sintaxe de Estrutura de Condição abaixo, que descreve os getters, predicados e como combinar várias condições.
Action
RateLimit
Há uma seção separada mais abaixo descrevendo a sintaxe rateLimit, juntamente com exemplos.
Estrutura de condição condition-structure
Uma Condição pode ser uma Condição simples ou um grupo de Condições.
Condição simples
Uma Condição simples é composta por um getter e um predicado.
{ <getter>: <value>, <predicate>: <value> }
Agrupar Condições
Um Grupo de condições é composto por várias Condições simples e/ou de grupo.
<allOf|anyOf>:
- { <getter>: <value>, <predicate>: <value> }
- { <getter>: <value>, <predicate>: <value> }
- <allOf|anyOf>:
- { <getter>: <value>, <predicate>: <value> }
array[Condition]
array[Condition]
Getter
string
Propriedade de solicitação.
Um de:
path
: Retorna o caminho completo de uma URL sem os parâmetros de consulta.queryString
: Retorna a parte da consulta de uma URLmethod
: retorna o método HTTP usado na solicitação.tier
: Retorna um deauthor
,preview
oupublish
.domain
: retorna a propriedade de domínio (conforme definido no cabeçalhoHost
) em minúsculasclientIp
: Retorna o IP do cliente.clientCountry
: retorna um código de duas letras (Símbolo de indicador regional) que identifica o país em que o cliente está localizado.
string
string
string
string
application/x-www-form-urlencoded
Predicado
string
string
string
string
string
string
array[string]
array[string]
boolean
Notas
- A propriedade de solicitação
clientIp
só pode ser usada com os seguintes predicados:equals
,doesNotEqual
,in
,notIn
.clientIp
também pode ser comparado a intervalos IP ao usar os predicadosin
enotIn
. O exemplo a seguir implementa uma condição para avaliar se um IP de cliente está no intervalo IP de 192.168.0.0/24 (portanto, de 192.168.0.0 a 192.168.0.255):
when:
reqProperty: clientIp
in: [ "192.168.0.0/24" ]
- A Adobe recomenda o uso de regex101 e Fastly Fiddle ao trabalhar com regex. Você também pode saber mais sobre como o Fastly lida com o regex no fastly documentation - Regular expressions in Fastly VCL.
Estrutura de ação action-structure
Um action
pode ser uma cadeia de caracteres especificando a ação (permitir, bloquear ou registrar) ou um objeto composto do tipo de ação (permitir, bloquear ou registrar) e opções como wafFlags e/ou status.
Tipos de ação
As ações são priorizadas de acordo com seus tipos na tabela a seguir, que é ordenada para refletir a ordem em que as ações são executadas:
wafFlags
(opcional), alert
(opcional)Se um alerta for especificado, uma notificação da Central de Ações será enviada se a regra for acionada 10 vezes em uma janela de 5 minutos. Quando um alerta for acionado para uma regra específica, ele não será acionado novamente até o dia seguinte (UTC).
status, wafFlags
(opcional e mutuamente exclusivo), alert
(opcional)Se um alerta for especificado, uma notificação da Central de Ações será enviada se a regra for acionada 10 vezes em uma janela de 5 minutos. Quando um alerta for acionado para uma regra específica, ele não será acionado novamente até o dia seguinte (UTC).
wafFlags
(opcional), alert
(opcional)Se um alerta for especificado, uma notificação da Central de Ações será enviada se a regra for acionada 10 vezes em uma janela de 5 minutos. Quando um alerta for acionado para uma regra específica, ele não será acionado novamente até o dia seguinte (UTC).
Lista de sinalizadores do WAF waf-flags-list
A propriedade wafFlags
, que pode ser usada nas regras de filtro de tráfego licenciáveis do WAF, pode fazer referência ao seguinte:
/bin/
CMDEXE
ao desabilitar o falso-positivo em /bin
devido à arquitetura AEM./foo/./bar
está normalizado para /foo/bar
).htaccess
do Apache, ou um arquivo de configuração que poderia vazar informações confidenciaisConsiderações considerations
-
Quando duas regras conflitantes são criadas, as regras permitidas sempre têm prioridade sobre as regras de bloqueio. Por exemplo, se você criar uma regra para bloquear um caminho específico e uma regra para permitir um endereço IP específico, as solicitações desse endereço IP no caminho bloqueado serão permitidas.
-
Se uma regra for correspondente e bloqueada, o CDN responderá com um código de retorno
406
. -
Os arquivos de configuração não devem conter segredos, pois eles podem ser lidos por qualquer pessoa com acesso ao repositório Git.
-
INCLUIR NA LISTA DE PERMISSÕES As regras IPs definidas no Cloud Manager têm prioridade sobre as regras de filtros de tráfego.
-
As correspondências de regras do WAF só aparecem nos logs CDN para erros e passagens de CDN, não para ocorrências.
Exemplos de regras examples
Alguns exemplos de regras se seguem. Consulte a seção limite de taxa mais abaixo para obter exemplos de regras de limite de taxa.
Exemplo 1
Esta regra bloqueia solicitações provenientes de IP 192.168.1.1:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
rules:
- name: "block-request-from-ip"
when: { reqProperty: clientIp, equals: "192.168.1.1" }
action:
type: block
Exemplo 2
Esta regra bloqueia a solicitação no caminho /helloworld
na publicação com um usuário-agente que contenha Chrome:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
rules:
- name: "block-request-from-chrome-on-path-helloworld-for-publish-tier"
when:
allOf:
- { reqProperty: path, equals: /helloworld }
- { reqProperty: tier, equals: publish }
- { reqHeader: user-agent, matches: '.*Chrome.*' }
action:
type: block
Exemplo 3
Esta regra bloqueia solicitações na publicação que contêm o parâmetro de consulta foo
, mas permite todas as solicitações provenientes do IP 192.168.1.1:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
rules:
- name: "block-request-that-contains-query-parameter-foo"
when:
allOf:
- { queryParam: url-param, equals: foo }
- { reqProperty: tier, equals: publish }
action:
type: block
- name: "allow-all-requests-from-ip"
when: { reqProperty: clientIp, equals: 192.168.1.1 }
action:
type: allow
Exemplo 4
Esta regra bloqueia solicitações para o caminho /block-me
na publicação e bloqueia todas as solicitações que correspondam a um padrão SQLI
ou XSS
. Este exemplo inclui regras de filtro de tráfego do WAF, que faz referência aos SQLI
e XSS
Sinalizadores do WAF e, portanto, requer uma licença separada.
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
rules:
- name: "path-rule"
when:
allOf:
- { reqProperty: path, equals: /block-me }
- { reqProperty: tier, equals: publish }
action:
type: block
- name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
when: { reqProperty: path, like: "*" }
action:
type: block
wafFlags: [ SQLI, XSS]
Exemplo 5
Essa regra bloqueia o acesso a países OFAC:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
rules:
- name: block-ofac-countries
when:
allOf:
- reqProperty: tier
matches: "author|publish"
- reqProperty: clientCountry
in:
- SY
- BY
- MM
- KP
- IQ
- CD
- SD
- IR
- LR
- ZW
- CU
- CI
action: block
Regras de limite de taxa
Às vezes, é desejável bloquear o tráfego se ele exceder uma determinada taxa de solicitações recebidas, com base em uma condição específica. A definição de um valor para a propriedade rateLimit
limita a taxa dessas solicitações que correspondem à condição da regra.
As regras de limite de taxa não podem fazer referência aos sinalizadores do WAF. Eles estão disponíveis para todos os clientes do Sites e do Forms.
Os limites de taxa são calculados por CDN POP. Como exemplo, suponha que os POPs em Montreal, Miami e Dublin tenham taxas de tráfego de 80, 90 e 120 solicitações por segundo, respectivamente. E a regra de limite de taxa é definida como um limite 100. Nesse caso, apenas o tráfego com destino a Dublim seria limitado em termos tarifários.
Os limites de taxa são avaliados com base no tráfego que atinge a borda, no tráfego que atinge a origem ou no número de erros.
Estrutura rateLimit ratelimit-structure
Exemplos ratelimiting-examples
Exemplo 1
Essa regra bloqueia um cliente por 5 milissegundos quando ele excede uma média de 60 solic./seg (por POP CDN) nos últimos 10 segundos:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
rules:
- name: limit-requests-client-ip
when:
reqProperty: tier
matches: "author|publish"
rateLimit:
limit: 60
window: 10
penalty: 300
count: all
groupBy:
- reqProperty: clientIp
action: block
Exemplo 2
Bloqueie solicitações no caminho /crítico/recurso por 60 segundos quando exceder uma média de 100 solicitações de origem por segundo (por POP CDN) em uma janela de tempo de dez segundos:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
rules:
- name: rate-limit-example
when:
allOf:
- { reqProperty: path, equals: /critical/resource }
- { reqProperty: tier, equals: publish }
action:
type: block
rateLimit: { limit: 100, window: 10, penalty: 60, count: fetches }
Regras CVE cve-rules
Se o WAF estiver licenciado, o Adobe aplicará automaticamente regras de bloqueio para proteger contra muitos CVEs (vulnerabilidades e exposições comuns) conhecidos, e novos CVEs poderão ser adicionados logo após serem detectados. Os clientes não devem e não precisam configurar as regras CVE sozinhos.
Se uma solicitação de tráfego corresponder a um CVE, ela aparecerá na entrada de log CDN correspondente.
Entre em contato com o suporte do Adobe se houver dúvidas sobre um CVE específico ou se houver uma regra CVE específica que sua organização deseja desativar.
Alertas de regras de filtro de tráfego traffic-filter-rules-alerts
Uma regra pode ser configurada para enviar uma notificação da Central de Ações se for acionada dez vezes em uma janela de 5 minutos. Essa regra alerta quando determinados padrões de tráfego ocorrem, para que você possa tomar as medidas necessárias. Quando um alerta for acionado para uma regra específica, ele não será acionado novamente até o dia seguinte (UTC).
Saiba mais sobre o Centro de Ações, incluindo como configurar os Perfis de Notificação necessários para receber emails.
A propriedade alert pode ser aplicada ao nó action para todos os tipos de ação (allow, block, log).
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
rules:
- name: "path-rule"
when:
allOf:
- { reqProperty: path, equals: /block-me }
- { reqProperty: tier, equals: publish }
action:
type: block
alert: true
Alerta de pico de tráfego padrão no Origin traffic-spike-at-origin-alert
Uma notificação por email do Centro de Ações será enviada quando houver uma quantidade significativa de tráfego enviado à origem, onde um alto limite de solicitações vem do mesmo endereço IP, sugerindo assim um ataque de DDoS.
Se esse limite for atingido, o Adobe bloqueará o tráfego desse endereço IP, mas é recomendável tomar medidas adicionais para proteger sua origem, incluindo a configuração das regras de filtro de tráfego de limite de taxa para bloquear picos de tráfego em limites mais baixos. Consulte o tutorial Bloqueando ataques de DoS e DDoS usando regras de tráfego para obter uma apresentação guiada.
Este alerta é habilitado por padrão, mas pode ser desabilitado usando a propriedade defaultTrafficAlerts, definida como false. Quando o alerta for acionado, ele não será disparado novamente até o dia seguinte (UTC).
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
defaultTrafficAlerts: false
Logs CDN cdn-logs
O AEM as a Cloud Service fornece acesso aos logs CDN, que são úteis para casos de uso, incluindo otimização da taxa de ocorrência do cache e configuração das regras de filtro de tráfego. Os logs CDN aparecem na caixa de diálogo Baixar Logs do Cloud Manager, ao selecionar o serviço Autor ou Publish.
Os logs do CDN podem ser atrasados em até cinco minutos.
A propriedade rules
descreve quais regras de filtro de tráfego são correspondidas e tem o seguinte padrão:
"rules": "match=<matching-customer-named-rules-that-are-matched>,waf=<matching-WAF-rules>,action=<action_type>"
Por exemplo:
"rules": "match=Block-Traffic-under-private-folder,Enable-SQL-injection-everywhere,waf="SQLI,SANS",action=block"
As regras se comportam da seguinte maneira:
- O nome de regra declarado pelo cliente de qualquer regra correspondente está listado no atributo
match
. - O atributo
action
determina se as regras bloqueiam, permitem ou registram em log. - Se o WAF estiver licenciado e habilitado, o atributo
waf
listará todos os sinalizadores do WAF (por exemplo, SQLI) que foram detectados. Isso é verdadeiro independentemente de os sinalizadores do WAF terem sido listados em alguma regra. Isso é para fornecer insight sobre novas regras em potencial a serem declaradas. - Se nenhuma regra declarada pelo cliente for correspondente e nenhuma regra waf for correspondente, a propriedade
rules
ficará em branco.
Como observado anteriormente, as correspondências de regras do WAF só aparecem nos logs CDN para erros e passagens de CDN, não para ocorrências.
O exemplo abaixo mostra um exemplo cdn.yaml
e duas entradas de log CDN:
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev"]
data:
trafficFilters:
rules:
- name: "path-rule"
when: { reqProperty: path, equals: /block-me }
action: block
- name: "Enable-SQL-Injection-and-XSS-waf-rules-globally"
when: { reqProperty: path, like: "*" }
action:
type: block
wafFlags: [ SQLI, XSS ]
{
"timestamp": "2023-05-26T09:20:01+0000",
"ttfb": 19,
"cli_ip": "147.160.230.112",
"cli_country": "CH",
"rid": "974e67f6",
"req_ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15",
"host": "example.com",
"url": "/block-me",
"method": "GET",
"res_ctype": "",
"cache": "PASS",
"status": 406,
"res_age": 0,
"pop": "PAR",
"rules": "match=path-rule,action=blocked"
}
{
"timestamp": "2023-05-26T09:20:01+0000",
"ttfb": 19,
"cli_ip": "147.160.230.112",
"cli_country": "CH",
"req_ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0.3 Safari/605.1.15",
"rid": "974e67f6",
"host": "example.com",
"url": "/?sqli=%27%29%20UNION%20ALL%20SELECT%20NULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL%2CNULL--%20fAPK",
"method": "GET",
"res_ctype": "image/png",
"cache": "PASS",
"status": 406,
"res_age": 0,
"pop": "PAR",
"rules": "match=Enable-SQL-Injection-and-XSS-waf-rules-globally,waf=SQLI,action=blocked"
}
Formato do Log cdn-log-format
Veja abaixo uma lista dos nomes de campo usados em logs CDN, juntamente com uma breve descrição.
Também indica se a correspondência resultou em um bloco.
Por exemplo, "
match=Enable-SQL-Injection-and-XSS-waf-rules-globally,waf=SQLI,action=blocked
"Vazio se nenhuma regra for correspondente.
Ferramentas do painel dashboard-tooling
O Adobe fornece um mecanismo para baixar ferramentas de painel no computador a fim de assimilar logs CDN baixados pelo Cloud Manager. Com essa ferramenta, você pode analisar seu tráfego para ajudar a criar as regras de filtro de tráfego apropriadas a serem declaradas, incluindo regras do WAF.
A ferramenta do painel pode ser clonada diretamente do repositório GitHub AEMCS-CDN-Log-Analysis-Tooling.
Tutorials estão disponíveis para obter instruções concretas sobre como usar as ferramentas do painel.
Regras de início recomendadas recommended-starter-rules
Você pode copiar as regras recomendadas abaixo em seu cdn.yaml
para começar. Comece no modo de log, analise seu tráfego e, quando satisfeito, altere para o modo de bloqueio. Talvez você queira modificar as regras com base nas características exclusivas do tráfego direto do seu site.
kind: "CDN"
version: "1"
metadata:
envTypes: ["dev", "stage", "prod"]
data:
trafficFilters:
rules:
# Block client for 5m when it exceeds an average of 100 req/sec to origin on a time window of 10sec
- name: limit-origin-requests-client-ip
when:
reqProperty: tier
equals: 'publish'
rateLimit:
limit: 100
window: 10
count: fetches
penalty: 300
groupBy:
- reqProperty: clientIp
action: log
# Block client for 5m when it exceeds an average of 500 req/sec on a time window of 10sec
- name: limit-requests-client-ip
when:
reqProperty: tier
equals: 'publish'
rateLimit:
limit: 500
window: 10
count: all
penalty: 300
groupBy:
- reqProperty: clientIp
action: log
# Block requests coming from OFAC countries
- name: block-ofac-countries
when:
allOf:
- { reqProperty: tier, in: ["author", "publish"] }
- reqProperty: clientCountry
in:
- SY
- BY
- MM
- KP
- IQ
- CD
- SD
- IR
- LR
- ZW
- CU
- CI
action: log
# Enable recommended WAF protections (only works if WAF is licensed enabled for your environment)
- name: block-waf-flags-globally
when:
reqProperty: tier
in: ["author", "publish"]
action:
type: log
wafFlags:
- TRAVERSAL
- CMDEXE-NO-BIN
- XSS
- LOG4J-JNDI
- BACKDOOR
- USERAGENT
- SQLI
- SANS
- TORNODE
- NOUA
- SCANNER
- PRIVATEFILE
- NULLBYTE
Tutoriais tutorial
Dois tutoriais estão disponíveis.
Proteção de sites com regras de filtro de tráfego (incluindo regras do WAF) tutorial-protecting-websites
Use um tutorial para obter conhecimento e experiência gerais e práticos sobre as regras de filtro de tráfego, incluindo as regras do WAF.
O tutorial o guiará por:
- Definição do pipeline de configuração do Cloud Manager
- Uso de ferramentas para simular tráfego mal-intencionado
- Declaração de regras de filtro de tráfego, incluindo regras do WAF
- Análise de resultados com ferramentas de painel
- Práticas recomendadas
Bloqueio de ataques de DoS e DDoS usando regras de filtro de tráfego tutorial-blocking-DDoS-with-rules
Saiba mais sobre como bloquear ataques de DoS (Negação de Serviço) e de DDoS (Negação de Serviço Distribuída) usando regras de filtro de limite de taxa e outras estratégias.
O tutorial o guiará por:
- noções básicas sobre proteção
- recebendo alertas quando os limites de taxa são excedidos
- analisar padrões de tráfego usando ferramentas de painel de controle para configurar limites para regras de filtro de tráfego de limite de taxa