{"id":9125,"date":"2021-12-14T15:33:08","date_gmt":"2021-12-14T18:33:08","guid":{"rendered":"https:\/\/www.fernandoquadro.com.br\/html\/?p=9125"},"modified":"2021-12-14T15:33:08","modified_gmt":"2021-12-14T18:33:08","slug":"vulnerabilidade-no-log4j2-como-resolver-no-geoserver","status":"publish","type":"post","link":"https:\/\/www.fernandoquadro.com.br\/html\/2021\/12\/14\/vulnerabilidade-no-log4j2-como-resolver-no-geoserver\/","title":{"rendered":"Vulnerabilidade no log4J2, como resolver no GeoServer"},"content":{"rendered":"<p>O mundo Java foi tomado pela tempestade, na semana passada, pela vulnerabilidade no Log4J2, c\u00f3digo <a href=\"https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2021-44228\" rel=\"noopener\" target=\"_blank\">CVE-2021-44228<\/a>, que permite a execu\u00e7\u00e3o remota de c\u00f3digo simplesmente fazendo chamadas de API para servidores vulner\u00e1veis. A compreens\u00e3o da vulnerabilidade ainda est\u00e1 evoluindo e os relat\u00f3rios est\u00e3o sendo atualizados, a equipe do GeoServer est\u00e1 monitorando de perto e realizado adapta\u00e7\u00f5es conforme necess\u00e1rio. As informa\u00e7\u00f5es a seguir s\u00e3o baseadas no entendimento atual da vulnerabilidade e ser\u00e3o atualizadas conforme novas informa\u00e7\u00f5es forem lan\u00e7adas.<\/p>\n<p>\u00c9 poss\u00edvel afirmar isso claramente: <strong>GeoServer, seguindo uma investiga\u00e7\u00e3o, bem como entendimento da vulnerabilidade relatada, n\u00e3o \u00e9 vulner\u00e1vel ao CVE-2021-44228 uma vez que n\u00e3o usa Log4J2!<\/strong><\/p>\n<p>Em mais detalhes, GeoServer usa Log4J 1.2.17 e \u00e9 crucial entender que Log4J e Log4J2<strong> n\u00e3o s\u00e3o<\/strong> a mesma biblioteca: o 2 est\u00e1 no nome, n\u00e3o \u00e9 apenas um n\u00famero de vers\u00e3o, Log4J2 \u00e9 uma reescrita completa do Log4J. Como consequ\u00eancia, o GeoServer n\u00e3o \u00e9 vulner\u00e1vel da mesma forma relatada no CVE-2021-44228: o entendimento atual \u00e9 que ele n\u00e3o pode ser utilizado para executar uma tarefa remota de c\u00f3digo simplesmente criando uma solicita\u00e7\u00e3o HTTP apropriada.<\/p>\n<p>No entanto, Log4J 1.2 tem <strong>pequenas vulnerabilidades<\/strong>, que podem ser acionadas ao carregar os arquivos de configura\u00e7\u00e3o. Isso acontece se o invasor conseguir:<\/p>\n<ul>\n<li>Obter acesso de grava\u00e7\u00e3o aos arquivos de configura\u00e7\u00e3o de log do GeoServer.<\/li>\n<li>Definir uma nova configura\u00e7\u00e3o JMSAppender, na qual o TopicConnectionFactoryBindingName ou TopicBindingName aponta para um servidor remoto fornecendo classes maliciosas.<\/li>\n<li>For\u00e7ar o GeoServer a recarregar a configura\u00e7\u00e3o de registro.<\/li>\n<\/ul>\n<p>Log4J 1.2.17 tamb\u00e9m \u00e9 vulner\u00e1vel a <a href=\"https:\/\/cve.mitre.org\/cgi-bin\/cvename.cgi?name=CVE-2019-17571\" rel=\"noopener\" target=\"_blank\">CVE-2019-17571<\/a>. Isso \u00e9 ainda mais restrito do que o problema acima, j\u00e1 que a classe SocketServer precisa ser executada a partir da linha de comando explicitamente.<\/p>\n<p><strong>Dito isso, \u00e9 importante notar que a configura\u00e7\u00e3o padr\u00e3o do GeoServer n\u00e3o \u00e9 vulner\u00e1vel a eles e o invasor precisaria ir e modificar os arquivos de configura\u00e7\u00e3o de registro para acion\u00e1-lo.<\/strong><\/p>\n<p><em><strong>1. Verificando vulnerabilidades<\/strong><\/em><\/p>\n<p>Como verificar se o seu servidor est\u00e1 vulner\u00e1vel:<\/p>\n<ul>\n<li>Verifique os arquivos de configura\u00e7\u00e3o de log , certifique-se de que n\u00e3o haja JMSAppender.<\/li>\n<li>Certifique-se de que ningu\u00e9m fora de sua organiza\u00e7\u00e3o possa obter acesso de grava\u00e7\u00e3o aos arquivos de configura\u00e7\u00e3o de registro, por exemplo:<\/li>\n<ul>\n<li>Ningu\u00e9m fora da sua organiza\u00e7\u00e3o tem acesso de administrador ao GeoServer. A API REST permite a grava\u00e7\u00e3o no diret\u00f3rio de dados usando o terminal do recurso e, se a extens\u00e3o do recurso da web estiver instalada, os administradores tamb\u00e9m ter\u00e3o permiss\u00e3o para editar os arquivos por meio da GUI.<\/li>\n<li>Ningu\u00e9m fora de sua organiza\u00e7\u00e3o tem acesso de console ao servidor (por exemplo, SSH, servi\u00e7os de terminal) e, se tiver, n\u00e3o ter\u00e1 permiss\u00e3o de grava\u00e7\u00e3o para os arquivos de configura\u00e7\u00e3o do GeoServer.<\/li>\n<\/ul>\n<\/ul>\n<p><em><strong>2. Elimina\u00e7\u00e3o de amea\u00e7as<\/strong><\/em><\/p>\n<p>O GeoServer lan\u00e7ou uma vers\u00e3o da biblioteca Log4J 1.2.17, que simplesmente n\u00e3o inclui as classes envolvidas nas vulnerabilidades CVE-2021-44228 e CVE-2019-17571. <strong>Esta biblioteca tamb\u00e9m pode ser usada com vers\u00f5es anteriores do GeoServer.<\/strong><\/p>\n<p>O arquivo est\u00e1 dispon\u00edvel no <a href=\"https:\/\/repo.osgeo.org\/repository\/geotools-releases\/log4j\/log4j\/1.2.17.norce\/log4j-1.2.17.norce.jar\" rel=\"noopener\" target=\"_blank\">reposit\u00f3rio Nexus<\/a>. Simplesmente remova o log4j-1.2.17.jar existente e coloque o novo arquivo <a href=\"https:\/\/repo.osgeo.org\/repository\/geotools-releases\/log4j\/log4j\/1.2.17.norce\/log4j-1.2.17.norce.jar\" rel=\"noopener\" target=\"_blank\">log4j-1.2.17.norce.jar<\/a> na pasta <em>geoserver\/webapps\/WEB-INF\/lib<\/em> e reinicie o geoserver.<\/p>\n<p>A equipe do GeoServer est\u00e1 ciente de que Log4J 1.2.17 \u00e9 um projeto \u201cEnd Of Life\u201d (EOL) e j\u00e1 est\u00e3o procurando ativamente por financiamento para realizar uma atualiza\u00e7\u00e3o para vers\u00f5es mais recentes dele. Todas as novas bibliotecas de registro t\u00eam uma API diferente e um layout de arquivo de configura\u00e7\u00e3o diferente, com poss\u00edveis problemas de compatibilidade com vers\u00f5es anteriores, ent\u00e3o isso provavelmente ser\u00e1 feito em vers\u00f5es mais recentes do GeoServer (2.21.x)<\/p>\n<p>Fonte: <a href=\"http:\/\/geoserver.org\/announcements\/2021\/12\/13\/logj4-rce-statement.html\" rel=\"noopener\" target=\"_blank\">GeoServer<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>O mundo Java foi tomado pela tempestade, na semana passada, pela vulnerabilidade no Log4J2, c\u00f3digo CVE-2021-44228, que permite a execu\u00e7\u00e3o remota de c\u00f3digo simplesmente fazendo chamadas de API para servidores vulner\u00e1veis. A compreens\u00e3o da vulnerabilidade ainda est\u00e1 evoluindo e os&#8230; <a class=\"more-link\" href=\"https:\/\/www.fernandoquadro.com.br\/html\/2021\/12\/14\/vulnerabilidade-no-log4j2-como-resolver-no-geoserver\/\">Continue Reading &rarr;<\/a><\/p>\n","protected":false},"author":275,"featured_media":9131,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[24],"tags":[208],"class_list":["post-9125","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-gis","tag-geoserver"],"_links":{"self":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/9125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/users\/275"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/comments?post=9125"}],"version-history":[{"count":5,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/9125\/revisions"}],"predecessor-version":[{"id":9130,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/posts\/9125\/revisions\/9130"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media\/9131"}],"wp:attachment":[{"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/media?parent=9125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/categories?post=9125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fernandoquadro.com.br\/html\/wp-json\/wp\/v2\/tags?post=9125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}