Opções de configuração para o nó Wallarm baseado no Envoy¶
O Envoy usa filtros pluggable definidos no arquivo de configuração do Envoy para processar as solicitações recebidas. Estes filtros descrevem as ações a serem realizadas na solicitação. Por exemplo, um filtro envoy.http_connection_manager
é usado para proxy de requisições HTTP. Este filtro possui seu próprio conjunto de filtros HTTP que podem ser aplicados à solicitação.
O módulo Wallarm é projetado como um filtro HTTP do Envoy. As configurações gerais do módulo são colocadas em uma seção dedicada ao filtro HTTP wallarm
:
listeners:
- address:
filter_chains:
- filters:
- name: envoy.http_connection_manager
typed_config:
http_filters:
- name: wallarm
typed_config:
"@type": type.googleapis.com/wallarm.Wallarm
<a configuração do módulo Wallarm>
...
Ative o processamento do corpo da solicitação
Para habilitar o módulo Wallarm a processar um corpo de solicitação HTTP, o filtro buffer deve ser colocado antes do nó de filtragem na cadeia de filtros HTTP do Envoy. Por exemplo:
http_filters:
- name: envoy.buffer
typed_config:
"@type": type.googleapis.com/envoy.config.filter.http.buffer.v2.Buffer
max_request_bytes: <tamanho máximo da solicitação (em bytes)>
- name: wallarm
typed_config:
"@type": type.googleapis.com/wallarm.Wallarm
<a configuração do módulo Wallarm>
...
Se o tamanho da solicitação recebida exceder o valor do parâmetro max_request_bytes
, então esta solicitação será descartada e o Envoy retornará o código de resposta 413
("Payload Too Large").
Configurações de filtragem de solicitações¶
A seção rulesets
do arquivo contém os parâmetros relacionados às configurações de filtragem de solicitações:
rulesets:
- name: rs0
pdb: /etc/wallarm/proton.db
custom_ruleset: /etc/wallarm/custom_ruleset
key: /etc/wallarm/private.key
general_ruleset_memory_limit: 0
enable_libdetection: "on"
...
- name: rsN:
...
As entradas rs0
... rsN
são um ou mais grupos de parâmetros. Os grupos podem ter qualquer nome (para que possam ser referenciados posteriormente através do parâmetro ruleset
na seção conf
). Pelo menos um grupo deve estar presente na configuração do nó de filtragem (por exemplo, com o nome rs0
).
Esta seção não tem valores padrão. Você precisa especificar explicitamente os valores no arquivo de configuração.
Nível de definição
Esta seção pode ser definida apenas no nível do nó de filtragem.
Parâmetro | Descrição | Valor padrão |
---|---|---|
pdb | Caminho para o arquivo proton.db . Este arquivo contém as configurações globais para a filtragem de solicitações, que não dependem da estrutura do aplicativo. | /etc/wallarm/proton.db |
custom_ruleset | Caminho para o arquivo custom ruleset que contém informações sobre o aplicativo protegido e as configurações do nó de filtragem. | /etc/wallarm/custom_ruleset |
key | Caminho para o arquivo com a chave privada Wallarm usada para criptografia/descriptografia dos arquivos proton.db e custom ruleset. | /etc/wallarm/private.key |
general_ruleset_memory_limit | Limite para a quantidade máxima de memória que pode ser usada por uma instância de proton.db e custom ruleset. Se o limite de memória for excedido ao processar alguma solicitação, o usuário receberá o erro 500. Os seguintes sufixos podem ser usados neste parâmetro:
0 desativa o limite. | 0 |
enable_libdetection | Ativa/desativa validação adicional dos ataques de SQL Injection com a libdetection library. Se a biblioteca não confirmar a carga maliciosa, a solicitação é considerada legítima. Utilizar a biblioteca libdetection permite reduzir o número de falsos positivos entre os ataques de SQL Injection. Por padrão, a biblioteca libdetection está habilitada. Para a melhor detecção de ataques, recomendamos que a biblioteca permaneça habilitada. Ao analisar ataques utilizando a biblioteca libdetection, a quantidade de memória consumida pelos processos NGINX e Wallarm pode aumentar em cerca de 10%. | on |
Configurações do módulo de pós-análise¶
A seção tarantool
do nó de filtragem contém os parâmetros relacionados ao módulo de pós-análise:
A entrada server
é um grupo de parâmetros que descreve as configurações para o servidor Tarantool.
Nível de definição
Esta seção pode ser definida apenas no nível do nó de filtragem.
Parâmetro | Descrição | Valor padrão |
---|---|---|
uri | String com as credenciais utilizadas para se conectar ao servidor Tarantool. O formato da string é endereço IP ou nome do domínio:porta . | localhost:3313 |
max_packets | Limite do número de solicitações serializadas a serem enviadas para o Tarantool. Para remover o limite, defina 0 como o valor do parâmetro. | 512 |
max_packets_mem | Limite do volume total (em bytes) de solicitações serializadas a serem enviadas para o Tarantool. | 0 (o volume não é limitado) |
reconnect_interval | Intervalo (em segundos) entre tentativas de reconexão ao Tarantool. Um valor de 0 significa que o nó de filtragem tentará se reconectar ao servidor o mais rápido possível se o servidor render indisponível (não recomendado). | 1 |
Configurações básicas¶
A seção conf
da configuração do Wallarm contém os parâmetros que influenciam as operações básicas do nó de filtragem:
conf:
ruleset: rs0
mode: "monitoring"
mode_allow_override: "off"
application: 42
process_time_limit: 1000
process_time_limit_block: "attack"
request_memory_limit: 104857600
wallarm_status: "off"
wallarm_status_format: "json"
parse_response: true
unpack_response: true
parse_html_response: true
Nível de definição
Para um nível de proteção mais flexível, esta seção pode ser sobrescrita no nível da rota ou do host virtual:
-
No nível da rota:
-
No nível do host virtual:
virtual_hosts: - name: <o nome do host virtual> typed_per_filter_config: wallarm: "@type": type.googleapis.com/wallarm.WallarmConf <os parâmetros da seção>
Os parâmetros na seçãoconf
sobrescrita no nível da rota têm prioridade sobre os parâmetros na seção definida no nível do host virtual, que por sua vez têm prioridade mais alta que os parâmetros listados na seção no nível do nó de filtragem.
Parâmetro | Descrição | Valor padrão |
---|---|---|
ruleset | Um dos grupos de parâmetros que é definido na seção rulesets . Este grupo de parâmetros define as regras de filtragem de solicitações a serem usadas.Se este parâmetro for omitido da seção conf do nó de filtragem, então ele deve estar presente na seção conf sobrescrita no nível da rota ou host virtual. | - |
mode | Modo do nó:
Descrição detalhada dos modos de filtragem → | block |
mode_allow_override | Permite a substituição do modo do nó de filtragem que é definido através do parâmetro mode com o custom ruleset:
mode for definido com o valor monitoring e o parâmetro mode_allow_override for definido com o valor strict , então será possível bloquear algumas solicitações (block ), mas não desativar completamente o nó de filtragem (off ). | off |
application | Identificador único da aplicação protegida a ser usado na nuvem Wallarm. O valor pode ser um inteiro positivo exceto 0 .Mais detalhes sobre a configuração de aplicações → | -1 |
partner_client_uuid | Identificador único do inquilino para o nó multi-inquilino do Wallarm. O valor deve ser uma string no formato UUID, por exemplo:
Saiba como: | - |
process_time_limit | O parâmetro foi depreciado A partir da versão 3.6, é recomendado fazer ajustes finos na detecção do ataque overlimit_res . | 1000 |
process_time_limit_block | O parâmetro foi depreciado A partir da versão 3.6, é recomendado fazer ajustes finos na detecção do ataque process_time_limit :
| attack |
wallarm_status | Se habilita o serviço de estatísticas do nó de filtragem. | false |
wallarm_status_format | Formato das estatísticas do nó de filtragem: json ou prometheus . | json |
disable_acl | Permite desativar a análise das origens das solicitações. Se desativado (on ), o nó de filtragem não baixa listas IP da nuvem Wallarm e ignora a análise dos IPs de origem das solicitações. | off |
parse_response | Se analisa as respostas do aplicativo. A análise da resposta é necessária para a detecção de vulnerabilidades durante a detecção passiva e a verificação ativa de ameaças. Os valores possíveis são true (análise da resposta está habilitada) e false (análise da resposta está desabilitada). | true |
unpack_response | Se descomprime dados comprimidos retornados na resposta do aplicativo. Os valores possíveis são true (a descompressão está habilitada) e false (a descompressão está desabilitada).Este parâmetro é efetivo apenas se parse_response true . | true |
parse_html_response | Se aplica os parsers HTML ao código HTML recebido na resposta do aplicativo. Os valores possíveis são true (o parser HTML é aplicado) e false (o parser HTML não é aplicado).Este parâmetro é efetivo apenas se parse_response true . | true |