Log4j

Origem: Wikipédia, a enciclopédia livre.

Apache Log4j é um utilitário de registro baseado em Java originalmente escrito por Ceki Gülcü. É parte do Apache Logging Services, um projeto da Apache Software Foundation. Log4j é uma das várias estruturas de criação de log Java.

Desde então, Gülcü iniciou os projetos SLF4J e Logback,[1] com a intenção de oferecer um sucessor ao Log4j.

Em 9 de dezembro de 2021, uma vulnerabilidade de dia zero envolvendo a execução arbitrária de código no Log4j 2 foi publicada pela Alibaba Cloud Security Team e recebeu o descritor "Log4Shell".[2] Ela foi caracterizada pela empresa de segurança cibernética Tenable como "a maior e mais crítica vulnerabilidade da última década".[3]

Recursos[editar | editar código-fonte]

Configuração do Log4j[editar | editar código-fonte]

O Log4j pode ser configurado[4] por meio de um arquivo de configuração ou por meio de código Java. Os arquivos de configuração podem ser gravados em XML, JSON, YAML ou formato de arquivo de propriedades. Em uma configuração, você pode definir três componentes principais: Loggers, Appenders e Layouts. Configurar o registro por meio de um arquivo tem a vantagem de que o registro pode ser ativado ou desativado sem modificar o aplicativo que usa o Log4j. O aplicativo pode ser executado com logoff até que haja um problema, por exemplo, e então o log pode ser reativado simplesmente modificando o arquivo de configuração.

Vulnerabilidade Log4Shell[editar | editar código-fonte]

Uma vulnerabilidade de dia zero envolvendo a execução remota de código em Log4j 2, com o descritor "Log4Shell" (CVE -2021-44228), foi encontrada e relatada ao Apache pela Alibaba em 24 de novembro de 2021 e publicada em um tweet em 9 de dezembro, 2021.[2] Os serviços afetados incluem Cloudflare, iCloud, Minecraft: Java Edition,[5] Steam, Tencent QQ e Twitter.[6][7][8] A Apache Software Foundation atribuiu a classificação de gravidade CVSS máxima de 10 ao Log4Shell, já que milhões de servidores podem ser potencialmente vulneráveis à exploração.[8] A vulnerabilidade foi caracterizada pela empresa de segurança cibernética Tenable como "a maior e mais crítica vulnerabilidade da última década"[3] e o Free Wortley de Lunasec a caracterizou como "uma falha de design de proporções catastróficas".[9]

O recurso que causa a vulnerabilidade pode ser desabilitado com uma definição de configuração, que foi removida[10] no Log4j versão 2.15.0-rc1 (lançado oficialmente em 6 de dezembro de 2021, três dias antes da vulnerabilidade ser publicada) e substituída por várias configurações que restringem pesquisas remotas, reduzindo assim a vulnerabilidade.[11][12] Para segurança adicional, todos os recursos que usam JNDI, nos quais esta vulnerabilidade foi baseada, serão desabilitados por padrão e o suporte para pesquisas de mensagens será removido da versão 2.16.0 em diante.[13][14]

Referências[editar | editar código-fonte]

  1. «Logback Home». Logback.qos.ch. Consultado em 24 de julho de 2014 
  2. a b «What's the Deal with the Log4Shell Security Nightmare?». Lawfare. 10 de dezembro de 2021 
  3. a b Press, Associated (11 de dezembro de 2021). «Recently uncovered software flaw 'most critical vulnerability of the last decade'». the Guardian 
  4. «Configuration». Logging.apache.org. 5 de julho de 2016. Consultado em 16 de julho de 2016 
  5. «Security Vulnerability in Minecraft: Java Edition». Minecraft. 10 de dezembro de 2021 [ligação inativa] 
  6. Goodin, Dan (9 de dezembro de 2021). «Zeroday in ubiquitous Log4j tool poses a grave threat to the Internet». Ars Technica. Consultado em 10 de dezembro de 2021 
  7. «Worst Apache Log4j RCE Zero day Dropped on Internet». Cyber Kendra. 9 de dezembro de 2021. Consultado em 10 de dezembro de 2021 
  8. a b Mott, Nathaniel (10 de dezembro de 2021). «Countless Servers Are Vulnerable to Apache Log4j Zero-Day Exploit». PC Magazine. Consultado em 10 de dezembro de 2021 
  9. Newman, Lily Hay (10 de dezembro de 2021). «The Internet Is on Fire» – via www.wired.com 
  10. «LOG4J2-3198: Log4j2 no longer formats lookups in messages by default». GitHub (em inglês). 5 de dezembro de 2021 
  11. «Restrict LDAP access via JNDI by rgoers · Pull Request #608 · apache/logging-log4j2». GitHub (em inglês) 
  12. «Apache Log4j Security Vulnerabilities». 6 de dezembro de 2021 
  13. «LOG4J2-3208: Disable JNDI by default». 11 de dezembro de 2021. Consultado em 14 de dezembro de 2021 
  14. «LOG4J2-3211: Remove support for Lookups in messages». 13 de dezembro de 2021. Consultado em 14 de dezembro de 2021