Mitigar a vulnerabilidade JNDI do Apache Log4j2 no Jitterbit Harmony
Resumo
Esta página resume as vulnerabilidades do Apache Log4j2, descreve seu impacto nos produtos Jitterbit e explica como as vulnerabilidades foram mitigadas.
Descoberta de vulnerabilidades
Em 9 de dezembro de 2021, uma vulnerabilidade crítica de dia zero foi divulgada pela Apache que afeta o Apache Log4j2 (CVE-2021-44228). Uma vulnerabilidade adicional relacionada foi divulgada pela Apache em 14 de dezembro de 2021 (CVE-2021-45046).
Mitigação para agentes privados
Em 16 de dezembro de 2021, o Jitterbit realizou uma manutenção de emergência para abordar as vulnerabilidades do Apache Log4j2.
Após a conclusão da manutenção em 16 de dezembro de 2021 às 17h PST (17 de dezembro de 2021 às 12h AEDT; 17 de dezembro de 2021 às 2h CET; 2021‑12‑17 01:00 UTC), você deve realizar os seguintes passos para que a atualização se torne efetiva:
- Em cada agente privado, você deve excluir manualmente todos os arquivos JAR de
<JITTERBIT_HOME>/Connectors
. (A exceção seriam quaisquer arquivos JAR para conectores que você tenha instalado localmente.) - Cada agente privado deve ser reiniciado.
- Execute uma operação onde cada conector é utilizado ou teste cada conexão para cada arquivo JAR de conector no agente.
Se você não tiver realizado todos os passos acima nesta ordem após a conclusão da manutenção, faça isso imediatamente para proteger sua organização dessas vulnerabilidades.
Uma versão anterior desta página instruía os usuários a reiniciar apenas os agentes privados. Reiniciar os agentes privados é eficaz para a maioria dos conectores. No entanto, para alguns conectores, é necessário realizar todos os passos. Recomendamos excluir todos os arquivos JAR no diretório Connectors
para garantir que você esteja protegido contra essas vulnerabilidades. Você pode verificar se está protegido pesquisando por log4j
em quaisquer nomes de arquivos e verificando a versão do Log4j conforme descrito abaixo.
Solução anterior para agentes privados
Antes de 16 de dezembro de 2021, uma solução para abordar manualmente as vulnerabilidades foi publicada nesta página antes da manutenção de emergência. Esta solução não é mais necessária para nenhuma versão de agente privado.
Se você já executou a solução, não é necessário revertê-la. Se você não reiniciou os agentes privados desde que a manutenção de emergência foi concluída, deve reiniciar os agentes para que recebam a atualização da manutenção de emergência. Nenhuma ação adicional além do reinício é recomendada em relação a essas vulnerabilidades.
Quais são as vulnerabilidades do Apache Log 4j2 JNDI?
Do Banco de Dados Nacional de Vulnerabilidades do NIST CVE-2021-44228:
Os recursos JNDI do Apache Log4j2 \<=2.14.1 usados em configuração, mensagens de log e parâmetros não protegem contra endpoints LDAP e outros relacionados ao JNDI controlados por atacantes. Um atacante que pode controlar mensagens de log ou parâmetros de mensagens de log pode executar código arbitrário carregado de servidores LDAP quando a substituição de busca de mensagens está habilitada. A partir do Log4j 2.15.0, esse comportamento foi desativado por padrão.
Uma vulnerabilidade relacionada é CVE-2021-45046, que descreve uma vulnerabilidade na biblioteca Log4j 2.15.0. Ambas as vulnerabilidades estão cobertas e abordadas aqui.
Quais produtos Jitterbit foram impactados pelas vulnerabilidades?
Essas vulnerabilidades foram limitadas a conectores do Integration Studio criados com o SDK de Conector do Integration Studio ("conectores do SDK de Conector do Integration Studio").
Como os conectores não são tipicamente considerados produtos autônomos da Jitterbit e devem ser executados em um agente Jitterbit, é necessária alguma explicação para esclarecer o impacto e as etapas de mitigação para abordar essas vulnerabilidades:
- O que é um Conector do SDK de Conector do Integration Studio?
Conectores do SDK de Conector do Integration Studio são conectores construídos com o SDK de Conector do Integration Studio. Atualmente, incluem certos conectores criados pela Jitterbit ou por terceiros:- Jitterbit: A maioria dos atuais conectores de aplicativo do Integration Studio foi criada usando o SDK de Conector. As exceções incluem os conectores NetSuite, Salesforce, Salesforce Service Cloud, SAP e ServiceMax, que não foram criados usando o SDK de Conector e não estão afetados. Veja a lista completa abaixo dos conectores Jitterbit afetados por essas vulnerabilidades. Futuros conectores criados pela Jitterbit usando o SDK de Conector não serão afetados.
- Terceiros: Como o SDK de Conector está disponível publicamente para criar conectores do Integration Studio, sua organização pode estar usando conectores adicionais criados com o SDK de Conector por um parceiro ou terceiro e também pode ser afetada por essas vulnerabilidades. Entre em contato com o fornecedor desse conector para determinar se eles avaliaram e, se necessário, corrigiram seu conector.
- Como esses conectores estão relacionados aos agentes?
A versão mais recente de um conector do SDK de Conector do Integration Studio é baixada por um agente Jitterbit conforme necessário do Harmony quando você usa o conector. - Quais agentes foram afetados?
Qualquer agente em nuvem ou privado que estava usando um conector do SDK de Conector do Integration Studio foi impactado pelas vulnerabilidades, uma vez que a biblioteca Apache Log4j2 foi baixada e usada no agente para escrever logs quando o conector estava sendo utilizado.- Agentes em nuvem: Em agentes em nuvem, a Jitterbit abordou imediatamente essas vulnerabilidades por meio de controles de segurança apropriados. Nenhuma ação adicional é necessária.
- Agentes privados: Em agentes privados, antes da manutenção de emergência em 16 de dezembro de 2021, os clientes foram instruídos a seguir a solução documentada anteriormente para abordar essas vulnerabilidades.
Esses produtos Jitterbit não foram afetados:
- Agentes que Nunca Usaram um Conector SDK do Integration Studio: Não afetados.
- Jitterbit Design Studio (e Seus Conectores): Não afetados.
- Jitterbit Harmony Cloud: Não afetados.
- Jitterbit eiCloud: Não afetados.
Conectores SDK do Jitterbit Integration Studio
A seguir está uma lista de todos os conectores do Integration Studio a partir de 16 de dezembro de 2021 que foram criados pela Jitterbit com o SDK do Conector do Integration Studio e que estão afetados pelas vulnerabilidades do Apache Log4j.
Como o SDK do Conector está disponível publicamente para desenvolvedores, sua organização pode estar usando um conector não listado aqui que foi criado por um parceiro ou terceiro usando o SDK do Conector do Integration Studio. Esses conectores também podem estar afetados pelas vulnerabilidades do Apache Log4j. Entre em contato com o fornecedor desse conector para descobrir se eles avaliaram e, se necessário, corrigiram seu conector.
O que a manutenção de 16 de dezembro de 2021 fez?
Em 16 de dezembro de 2021, a Jitterbit realizou uma manutenção de emergência para abordar as vulnerabilidades do Apache Log4j2.
Como parte da manutenção, a Jitterbit atualizou os conectores do Integration Studio construídos com o Connector SDK para usar uma versão disponível da biblioteca Log4j que abordava as duas vulnerabilidades do Apache Log4j.
Após a conclusão da manutenção em 16 de dezembro de 2021 às 17h PST (17 de dezembro de 2021 às 12h AEDT; 17 de dezembro de 2021 às 2h CET; 2021‑12‑17 01:00 UTC), você deve realizar os seguintes passos para que a atualização se torne efetiva:
- Em cada agente privado, você deve excluir manualmente todos os arquivos JAR de
<JITTERBIT_HOME>/Connectors
. (A exceção seriam quaisquer arquivos JAR para conectores que você tenha instalado localmente.) - Cada agente privado deve ser reiniciado.
- Execute uma operação onde o conector é utilizado ou teste a conexão.
Se você não tiver realizado todos os passos acima nesta ordem após a conclusão da manutenção, faça isso imediatamente para proteger sua organização dessas vulnerabilidades.
Uma versão anterior desta página instruía os usuários a reiniciar apenas os agentes privados. Reiniciar os agentes privados é eficaz para a maioria dos conectores. No entanto, para alguns conectores, é necessário realizar todos os passos. Recomendamos excluir todos os arquivos JAR no diretório Connectors
para garantir que você esteja protegido contra essas vulnerabilidades. Você pode verificar se está protegido procurando por log4j
em quaisquer nomes de arquivos e verificando a versão do Log4j conforme descrito abaixo.
Como Posso Confirmar a Proteção Contra Essas Vulnerabilidades?
Uma vez implementados os passos de mitigação para agentes privados, você pode confirmar que está protegido procurando nos subdiretórios de instalação do agente por nomes de arquivos que incluam log4j
.
Quaisquer nomes de arquivos anteriores que incluam log4j
e um número da série da versão 2, como log4j-api-2.11.1.jar
, não devem mais estar presentes. Quaisquer nomes de arquivos da série da versão 2 do Log4j devem agora ser substituídos por um nome indicando que a versão é pelo menos 2.16.0.
Para mais assistência, entre em contato com o suporte da Jitterbit.
Solução Anterior para agentes privados
Esta solução foi publicada anteriormente antes da manutenção de emergência em 16 de dezembro de 2021. Esta solução não é mais necessária e as vulnerabilidades foram resolvidas com uma reinicialização do agente após a manutenção de 16 de dezembro de 2021. Se você já executou esta solução e reiniciou os agentes privados, nenhuma ação adicional é necessária.
Para clientes com agentes privados, os seguintes passos foram recomendados anteriormente para proteger contra as vulnerabilidades do Apache Log4j.
Cuidado
- É uma boa prática ter agentes privados atrás de um firewall sem portas de entrada. Isso protege contra explorações de entrada.
- Essas configurações serão sobrescritas ao atualizar ou fazer upgrade.
Agente privado Linux
Para agentes privados Linux, a solução manual é editar o script de inicialização para o servidor Tomcat.
O arquivo a ser alterado é catalina.sh
, localizado em <JITTERBIT_HOME>/tomcat/bin/catalina.sh
. Em uma instalação típica, isso estará localizado neste caminho:
/opt/jitterbit/tomcat/bin/catalina.sh
-
Adicione a seguinte linha imediatamente após as linhas de comentário no início do arquivo:
JAVA_OPTS="$JAVA_OPTS -Dlog4j2.formatMsgNoLookups=true"
-
Por exemplo:
. . . # case the default is "true" # ----------------------------------------------------------------------------- JAVA_OPTS="$JAVA_OPTS -Dlog4j2.formatMsgNoLookups=true" # OS specific support. $var _must_ be set to either true or false. . . .
-
Salve a alteração no arquivo e saia do seu editor.
-
Reinicie o agente privado:
> jitterbit stop > jitterbit start
Verificação da Alteração
Para verificar os resultados desta alteração, execute o comando ps -ef | grep java
e procure na saída por -Dlog4j2.formatMsgNoLookups=true
.
Agente privado Windows
Para agentes privados Windows, você precisará editar o registro.
Cuidado
Alterar o registro do Windows incorretamente pode afetar o sistema operacional Windows. Por favor, tenha cautela ao fazer essas alterações.
Siga estes passos:
-
Pare o agente privado do Windows.
-
Use a Pesquisa do Windows para encontrar
regedit
e utilize-o para abrir o Editor do Registro. -
Navegue até
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Jitterbit Tomcat Server\Parameters\Java
. -
Modifique suas Opções e adicione o seguinte antes da linha
-Xms
:-Dlog4j2.formatMsgNoLookups=true
Exemplo:
-
Saia do Editor do Registro.
-
Reinicie o agente privado do Windows.
Verificação da Mudança
Para verificar os resultados desta mudança:
-
Abra o Bloco de Notas (ou editor similar).
-
Abra o arquivo de log mais recente, localizado em:
<JITTERBIT_HOME>\tomcat\logs\catalina.{date}.log
-
Pesquise por
-Dlog4j2.formatMsgNoLookups=true
para verificar se o argumento da linha de comando está sendo utilizado.