Atualizando uma imagem Docker NGINX- ou Envoy-based EOL¶
Essas instruções descrevem as etapas para atualizar a imagem Docker NGINX- ending- ou Envoy-based (versão 3.6 e inferior) para a versão 4.8.
Os nós Wallarm 3.6 e inferiores não são suportados
Recomenda-se que você atualize os nós Wallarm 3.6 e inferiores, pois essas versões não são suportadas, elas estão no fim da vida.
A configuração do nó e a filtragem de tráfego foram significativamente simplificadas no nó Wallarm das últimas versões. Antes de atualizar os módulos, por favor, revise cuidadosamente a lista de mudanças e as recomendações gerais. Observe que algumas configurações do nó mais recente são incompatíveis com os nós 3.6 e inferiores.
Requisitos¶
-
Docker instalado em seu sistema host
-
Acesso a
https://hub.docker.com/r/wallarm/node
para baixar a imagem do Docker. Certifique-se de que o acesso não está bloqueado por um firewall -
Acesso à conta com a função de Administrador no Console Wallarm na Nuvem dos EUA ou na Nuvem da UE
-
Acesso a
https://us1.api.wallarm.com
se estiver trabalhando com a Nuvem Wallarm dos EUA ou ahttps://api.wallarm.com
se estiver trabalhando com a Nuvem Wallarm da UE. Certifique-se de que o acesso não está bloqueado por um firewall -
Access to the IP addresses below for downloading updates to attack detection rules, as well as retrieving precise IPs for your allowlisted, denylisted, or graylisted countries, regions, or data centers
Passo 1: Informe o suporte técnico da Wallarm que você está atualizando os módulos do nó de filtragem (somente se atualizando o nó 2.18 ou inferior)¶
Se estiver atualizando o nó 2.18 ou inferior, informe ao Suporte Técnico da Wallarm que você está atualizando os módulos do nó de filtragem para 4.8 e peça para ativar a nova lógica de lista de IPs para a sua conta da Wallarm. Quando a nova lógica da lista de IPs estiver ativada, confira se a seção Listas de IP do Console Wallarm está disponível.
Passo 2: Desative o módulo de verificação de ameaça ativa (somente se atualizando o nó 2.16 ou inferior)¶
Se estiver atualizando o nó Wallarm 2.16 ou inferior, desative o módulo Verificação de ameaça ativa no Wallarm Console → Vulnerabilidades → Configurar.
A operação do módulo pode causar falsos positivos durante o processo de atualização. Desativar o módulo minimiza esse risco.
Passo 3: Atualize a porta da API¶
Começando com a versão 4.0, o nó de filtragem carrega dados para a nuvem usando os endpoints da API us1.api.wallarm.com:443
(NUvem EUA) e api.wallarm.com:443
(Nuvem EU) em vez de us1.api.wallarm.com:444
e api.wallarm.com:444
.
Se você atualizar o nó da versão 3.x ou inferior e seu servidor com o nó implantado tiver acesso limitado aos recursos externos, e o acesso for concedido a cada recurso separadamente, então após a atualização a sincronização entre o nó de filtragem e a nuvem irá parar.
Para restaurar a sincronização, em sua configuração, altere a porta 444
para 443
para o endpoint da API para cada recurso.
Passo 4: Baixe a imagem atualizada do nó de filtragem¶
Passo 5: Mude para a conexão baseada em token com o Wallarm Cloud¶
Com o lançamento da versão 4.x, a abordagem como se conectar ao Wallarm Cloud foi atualizada como segue:
-
A abordagem baseada em "email e senha" foi descontinuada. Nessa abordagem, o nó foi registrado no Wallarm Cloud automaticamente ao iniciar o contêiner com as credenciais corretas passadas nas variáveis
DEPLOY_USER
eDEPLOY_PASSWORD
. -
A abordagem baseada em token foi incluída. Para conectar o container ao Cloud, execute o container com a variável
WALLARM_API_TOKEN
contendo o token do nó Wallarm copiado da UI do Console Wallarm.
Recomenda-se usar a nova abordagem para executar a imagem 4.8. A abordagem baseada em "email e senha" será excluída em versões futuras, portanto, faça a migração antes.
Para criar um novo nó Wallarm e obter seu token:
-
Abra o Wallarm Console → Nós no US Cloud ou EU Cloud e crie o nó do tipo Nó Wallarm.
-
Copie o token gerado.
Passo 6: Migrar allowlists e denylists da versão anterior do nó Wallarm para 4.8 (somente se atualizando o nó 2.18 ou inferior)¶
Se estiver atualizando o nó 2.18 ou inferior, migre a configuração de allowlist e denylist da versão anterior do nó Wallarm para 4.8.
Passo 7: Mude das opções de configuração descontinuadas¶
Existem as seguintes opções de configuração descontinuadas:
-
A variável de ambiente
WALLARM_ACL_ENABLE
foi descontinuada. Se as listas de IP foram migradas para a nova versão do nó, remova esta variável do comandodocker run
. -
As seguintes diretivas NGINX foram renomeadas:
wallarm_instance
→wallarm_application
wallarm_local_trainingset_path
→wallarm_custom_ruleset_path
wallarm_global_trainingset_path
→wallarm_protondb_path
wallarm_ts_request_memory_limit
→wallarm_general_ruleset_memory_limit
Nós apenas alteramos os nomes das diretivas, a lógica delas permanece a mesma. As diretivas com os nomes anteriores serão descontinuadas em breve, então você é recomendado a renomeá-las antes.
Por favor, verifique se as diretivas com os nomes antigos estão explicitamente especificadas nos arquivos de configuração montados. Se sim, renomeie-os.
- A variável de registro
wallarm_request_time
foi renomeada parawallarm_request_cpu_time
.
Nós apenas alteramos o nome da variável, a lógica dela permanece a mesma. O nome antigo também é temporariamente suportado, mas mesmo assim é recomendável renomear a variável.
-
Os seguintes parâmetros do Envoy foram renomeados:
lom
→custom_ruleset
instance
→application
- Seção
tsets
→rulesets
e, correspondente, as entradastsN
nesta seção →rsN
ts
→ruleset
ts_request_memory_limit
→general_ruleset_memory_limit
Nós apenas alteramos os nomes dos parâmetros, a lógica deles permanece a mesma. Os parâmetros com nomes antigos serão descontinuados em breve, então você é recomendado a renomeá-los antes.
Por favor, verifique se os parâmetros com os nomes antigos estão explicitamente especificados nos arquivos de configuração montados. Se sim, renomeie-os.
Passo 8: Atualize a página de bloqueio do Wallarm (se atualizando a imagem baseada em NGINX)¶
Na nova versão do nó, a página de amostra de bloqueio do Wallarm foi alterada. O logotipo e o email de suporte na página agora estão vazios por padrão.
Se o container Docker foi configurado para retornar a página &/usr/share/nginx/html/wallarm_blocked.html
para solicitações bloqueadas, altere essa configuração da seguinte forma:
-
Copie e personalize a nova versão de uma página de amostra.
-
Monte a página personalizada e o arquivo de configuração NGINX em um novo container Docker na próxima etapa.
Passo 9: Transfira a configuração de detecção de ataque overlimit_res
de diretivas para a regra¶
A partir da versão 3.6, você pode ajustar a detecção de ataque overlimit_res
usando a regra no Console Wallarm.
Anteriormente, as seguintes opções eram usadas:
-
As diretivas NGINX
wallarm_process_time_limit
ewallarm_process_time_limit_block
-
Os parâmetros Envoy
process_time_limit
eprocess_time_limit_block
As diretivas e parâmetros listados são considerados obsoletos com o novo lançamento da regra e serão excluídos nas próximas versões.
Se as configurações de detecção de ataque overlimit_res
forem personalizadas por meio dos parâmetros listados, recomenda-se transferi-los para a regra da seguinte maneira:
-
Abra o Console Wallarm → Regras e prossiga para a configuração da regra Ajustar a detecção de ataque overlimit_res.
-
Configure a regra como feito nos arquivos de configuração montados:
- A condição da regra deve corresponder ao bloco de configuração NGINX ou Envoy com as diretivas
wallarm_process_time_limit
ewallarm_process_time_limit_block
ou os parâmetrosprocess_time_limit
eprocess_time_limit_block
especificados. - O limite de tempo para o nó processar uma única requisição (milissegundos): o valor de
wallarm_process_time_limit
ouprocess_time_limit
. -
Processamento de requisição: a opção Parar processamento é recomendada.
Risco de esgotamento da memória do sistema
O alto limite de tempo e/ou a continuação do processamento após o limite ser ultrapassado pode acionar a exaustão da memória ou processamento fora do tempo da requisição.
-
Registar o ataque overlimit_res: a opção Registar e exibir nos eventos é recomendada.
Se o valor de
wallarm_process_time_limit_block
ouprocess_time_limit_block
foroff
, escolha a opção Não criar evento de ataque. -
A regra não possui uma opção equivalente explícita para a diretiva
wallarm_process_time_limit_block
(process_time_limit_block
no Envoy). Se a regra definir Registrar e exibir nos eventos, o nó bloqueará ou permitirá o ataqueoverlimit_res
dependendo do modo de filtragem do nó:- No modo monitoramento, o nó encaminha a solicitação original para o endereço do aplicativo. O aplicativo tem o risco de ser explorado pelos ataques incluídos nas partes da solicitação processadas e não processadas.
- No modo bloqueio seguro, o nó bloqueia a solicitação se ela for originada do endereço IP listado em cinza. Caso contrário, o nó encaminha a solicitação original para o endereço do aplicativo. O aplicativo tem o risco de ser explorado pelos ataques incluídos nas partes da requisição processadas e não processadas.
- No modo bloqueio, o nó bloqueia a requisição.
- A condição da regra deve corresponder ao bloco de configuração NGINX ou Envoy com as diretivas
-
Exclua as diretivas NGINX
wallarm_process_time_limit
,wallarm_process_time_limit_block
e os parâmetros Envoyprocess_time_limit
,process_time_limit_block
do arquivo de configuração montado.Se a detecção de ataque
overlimit_res
for ajustada usando tanto os parâmetros quanto a regra, o nó processará as solicitações conforme a regra definir.
Passo 10: Pare o container em execução¶
Passo 11: Execute o container usando a imagem atualizada¶
Execute o contêiner usando a imagem atualizada. Você pode passar os mesmos parâmetros de configuração que foram passados ao executar uma versão de imagem anterior, exceto os listados nas etapas anteriores.
Existem duas opções para executar o contêiner usando a imagem atualizada:
-
Com as variáveis de ambiente especificando a configuração básica do nó de filtragem
-
No arquivo de configuração montado especificando a configuração avançada do nó de filtragem
Passo 12: Ajuste as configurações do modo de filtragem do nó Wallarm às mudanças lançadas nas últimas versões (somente se atualizando o nó 2.18 ou inferior)¶
-
Certifique-se de que o comportamento esperado das configurações listadas abaixo corresponde à lógica modificada dos modos de filtragem
off
emonitoring
:- Variável de ambiente
WALLARM_MODE
ou a diretivawallarm_mode
do contêiner Docker baseado em NGINX - Variável de ambiente
WALLARM_MODE
ou a diretivamode
do contêiner Docker baseado em Envoy - Regra de filtragem geral configurada no Wallarm Console
- Regras de filtragem de baixo nível configuradas no Wallarm Console
- Variável de ambiente
-
Se o comportamento esperado não corresponder à lógica modificada do modo de filtragem, ajuste as configurações do modo de filtragem às mudanças lançadas usando as instruções.
Passo 13: Teste a operação do nó de filtragem¶
-
Envie a solicitação com o teste de ataque Path Traversal para o endereço do aplicativo:
-
Certifique-se de que o nó do novo tipo processe a solicitação da mesma forma que o nó regular fazia, por exemplo:
- Bloqueia a solicitação se o modo de filtração apropriado estiver configurado.
- Retorna a página de bloqueio personalizada se estiver configurada.
-
Abra o Console Wallarm → Eventos na Nuvem EU ou Nuvem US e certifique-se de que:
- O ataque é exibido na lista.
- Detalhes do hit exibem o UUID do nó Wallarm.
Passo 14: Exclua o nó de filtragem da versão anterior¶
Se a imagem implantada da versão 4.8 opera corretamente, você pode excluir o nó de filtragem da versão anterior na seção Wallarm Console → Nós.
Passo 15: Reative o módulo de verificação de ameaça ativa (somente se atualizando o nó 2.16 ou inferior)¶
Aprenda a recomendação sobre a configuração do módulo de verificação de ameaça ativa e reative-o se necessário.
Depois de um tempo, certifique-se de que a operação do módulo não causa falsos positivos. Em caso de false positives, entre em contato com o suporte técnico da Wallarm.