Utilizando o SCCM para reduzir exposição a riscos ligados ao Oracle Java 7
Redigido por: Aylton Souza (LATAM Virtualization & Private Cloud Lead)
Colaboração: Cleber Marques
Originalmente publicado em: Como utilizar recursos existentes da plataforma Microsoft para reduzir exposição a riscos ligados ao Oracle Java 7 Security Advisory (CERT)
Background
Nos últimos anos, perdi a conta de quantos artigos sobre Gestão de Incidentes, Mudanças e práticas de Governança ajudam a se defender contra ameaças de vários tipos, sabores e gerações. CodeRed, Nimda, Zotob e mais recentemente ataques dirigidos como o Flame e Stuxnet. As vulnerabilidades ligadas ao Oracle Java no entanto, estão em outra categoria: Zero Day. Esse detalhe significa que existe código para que cyber bandidos possam explorar essa vulnerabilidade antes que o fabricante tenha disponibilizado uma correção efetiva. Este artigo não tem a pretensão de ser um tratado definitivo sobre o problema. Por outro lado, se destina a sugerir algumas formas de identificar e mitigar os riscos associados a exposição de uma vulnerabilidade crítica ainda sem correção que afeta plataformas Oracle Java.
Histórico
Foi emitido e atualizado um alerta de segurança que afeta plataformas baseadas em Oracle Java 7. Com uma série de plataformas que usam Java e a existência de malware já disponível com o objetivo de explorar tais vulnerabilidades, é fundamental tratar essa questão com o nível de seriedade requerido. Um dos pontos críticos ligados a essa vulnerabilidade é o fato de que mesmo sistemas com os últimas atualizações de Java estão vulneráveis. A Oracle publicou uma atualização para o Java no dia 15 de Janeiro.
Impacto
Uma medida fundamental é identificar claramente quais aplicações críticas corporativas necessitam do Java de forma legítima. Para esses casos vale a pena considerar medidas específicas incluindo restringir o acesso dessas máquinas a servidores externos. Parece extremo, mas com o tamanho da exposição e a quantidade de dias sem uma correção, não chega a ser um exagero. Já existem notícias (fonte: Kaspersky) de que os ataques na plataforma Java estavam sendo explorados já há algum tempo, incluindo acusações de espionagem usando essas vulnerabilidades para atacar entidades governamentais (incluindo o Brasil).
Identificando sistemas vulneráveis
Uma medida para simplificar essa ação é utilizar as facilidades de inventário e relacionamento entre usuários e aplicações da suíte System Center. Independentemente da versão de Java, a medida mais importante recomendada é desabilitar Java dos browsers (todos).
Implementando controles
Aplicações de alguns bancos precisam de Java. Uma alternativa a essa abordagem para usuários de Windows 8 é utilizar a aplicação do banco disponível para essa plataforma. Espero que os bancos estejam atentos a essa questão e deixem de oferecer Java como alternativa de seus módulos de segurança.
Um dos desafios de se desabilitar ou desinstalar o Java de forma programática, é que durante a instalação, o ID da aplicação varia de build para build ou versão para versão. Pode-se utilizar um passo a passo descrito abaixo para identificar esse ID ou utilizar uma medida extrema que desabilita o Java usando uma chave no registry que eu chamaria de botão de emergência, e que é bem útil com a situação atual, também descrita abaixo. Embora as recomendações atuais sejam que se desabilite o Java no browser, eu inclui nesse artigo instruções para desabilitar ou remover (para o caso de ambientes mais críticos ou para o caso de os incidentes ou vulnerabilidades divulgadas se agravarem). Com atualização publicada pela Oracle, é possível usar as facilidades de distribuição de aplicações e atualizações do System Center para assegurar-se de que todos os sistemas estão atualizados.
Exemplos de utilização
Como identificar Java em desktops e servidores
Utilizando o System Center Configuration Manager (SCCM) e sua base de inventário para identificar clientes que tenham Java. Exemplo para a versão 6.0.200.
Select * from
SMS_R_System where SMS_R_System.ResourceID not in (select
SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID from
SMS_G_System_ADD_REMOVE_PROGRAMS where
SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName = "Java(TM)
6 Update 20" and SMS_G_System_ADD_REMOVE_PROGRAMS.Version =
"6.0.200")
Observação: Limite a collection associada aos clientes ou servidores que deseja incluir na pesquisa. Uma forma de flexibilizar a query é usar o wildcard (%). Exemplo: No lugar de 6.0.200, poderia ser 7.% ou 6.%
Uma policy para desabilitar todas as versões de Java
Uma ferramenta pouco conhecida (e grátis) é o Microsoft Security Compliance Manager (SCM). Através dessa ferramenta é possível definir configurações de segurança para o Windows, Office e muitas outras soluções Microsoft. Uma vantagem do SCM é poder exportar essas configurações para a utilização integrada com o System Center ou ainda como Group Policy. Após gerar a configuração com o SCM, pode-se utilizar a opção Export para gerar arquivos de configuração como Group Policy ou para arquivos de SCM/DCM para o System Center Configuration Manager. Com essa configuração, basta importar utilizando o System Center Configuration Manager e aplicar a coleção de desktops/servidores adequada.
Kill Bit (Use com cuidado)
Importante: Essa sessão contém métodos e sugestões que incluem modificações no registro do Windows. Problemas sérios e muitas vezes irreversíveis podem ocorrer se as modificações forem realizadas de forma incorreta ou de acordo com configurações específicas de cada sistema. Utilize estes passos com cuidado e lembre-se que eles estão nesse artigo de forma educativa e apenas como referência. Recomendo backup de tudo antes de realizar essas modificações. Para mais informações sobre como fazer backup e restore do registro do Windows, consulte o artigo: 322756. Existe uma configuração que define o chamado Kill Bit para CLSIDs específicos que tem o efeito de desabilitar o Java. São eles:
{8AD9C840-044E-11D1-B3E9-00805F499D93},
{CAFEEFAC-0017-0000-FFFF-ABCDEFFEDCBA}, {CAFEEFAC-0017-0001-FFFF-ABCDEFFEDCBA},
{CAFEEFAC-0017-0002-FFFF-ABCDEFFEDCBA}, {CAFEEFAC-0017-0003-FFFF-ABCDEFFEDCBA},
CAFEEFAC-0017-0004-FFFF-ABCDEFFEDCBA}, {CAFEEFAC-0017-0004-FFFF-ABCDEFFEDCBA},
{CAFEEFAC-0017-0005-FFFF-ABCDEFFEDCBA}, {CAFEEFAC-0017-0006-FFFF-ABCDEFFEDCBA},
{CAFEEFAC-FFFF-FFFF-FFFF-ABCDEFFEDCBA}
Para um exemplo pronto de arquivo .reg que utiliza esse killbit para desabilitar Java acesse: How to disable the Java web plug-in in Internet Explorer. Você pode utilizar esse exemplo e automatizar a distribuição através do System Center Configuration Manager. Para mais informações, eu inclui na leitura de referência um Virtual Lab, dessa forma você poderá aprender mais sobre como utilizar os recursos do System Center para essa e outras facilidades de gestão de conformidade.
Leitura de Referência
· What you need to know about the Oracle Java Vulnerability
· How to manually disable Java in the browser
· Alert: Oracle Java allow security bypass
· Vulnerability Note: Java 7 fails to restrict access to privileged code
· Security Compliance Manager (Free): Como utilizar este Security Accelerator
· How to Disable Java in the web browser
· Update publicado pelo fabricante (Oracle)
· Java updates, Feds maintain warning
· Virtual labs: System Center Configuration Manager 2012
Obrigado pela leitura e até a próxima publicação,
Abraço.
Cleber Marques
Consultor, Escritor e Palestrante especialista em System Center
CleberMarques.com | MOF.com.br | CanalSystemCenter.com.br | SystemCenter.co