Sun JRE Updates corrigem vulnerabilidades críticas
Fonte: CAIS, Secunia Advisory SA27009, 2007-10-05 15:00.
O CAIS está repassando o alerta da Secunia, intitulado “SA27009 – Sun Java JRE Multiple Vulnerabilities”, que trata de múltiplas vulnerabilidades que afetam diversas versões do Sun Java JRE.
As 11 vulnerabilidades corrigidas pela Sun afetam as versões 6, 5, 1.4 e 1.3 do Mecanismo de Execução Java (Java Runtime Engine) da Sun, integrante dos pacotes de software JRE (inclui Java Web Start – JWS) e JDK da Sun disponíveis para vários sistemas, que permite a execução de aplicações Java.
Caso um atacante consiga explorar com sucesso estas vulnerabilidades, ele poderá ler ou alterar dados armazenados em um sistema vulnerável, contornando mecanismos de segurança e comprometendo estes sistemas.
Uma vez que uma das principais características de aplicações Java é a portabilidade, a capacidade de executar aplicações em diversos sistemas operacionais (Windows, distribuições Linux) e classes de dispositivos (PCs, celulares) torna estas vulnerabilidades ainda mais críticas e devem ser corrigidas por meio de atualização o mais breve possível.
Sistemas afetados e correções disponíveis:
- Sun Java JRE 6.x e JDK 1.6.x – JDK and JRE 6 Update 3
- Sun Java JRE 5.x e JDK 1.5.x – JDK and JRE 5.0 Update 13
- Sun Java JRE 1.4.x e Java SDK 1.4.x – SDK and JRE 1.4.2_16
- Sun Java JRE 1.3.x e Java SDK 1.3.x – SDK and JRE 1.3.1 for Solaris 8
Para saber mais:
- SA27009 – Sun Java JRE Multiple Vulnerabilities.
- Sun Security Community Blog – Alerts; dia 3: 103071 JRE, 103072 JWS e 103073 JWS; dia 9: 103078 JRE e 103079 JRE.
- #103079: Security Vulnerability in Java Runtime Environment With Applet Caching May Allow Network Access Restrictions to be Circumvented.
- #103078: Security Vulnerabilities in Java Runtime Environment May Allow Network Access Restrictions to be Circumvented.
- #103073: Multiple Security Vulnerabilities in Java Web Start Relating to Local File Access.
- #103072: An Untrusted Java Web Start Application or Java Applet May Move or Copy Arbitrary Files by Requesting the User to Drag and Drop a File from Application or Applet Window to a Desktop Application.
JavaRebel
Desde que o recurso HotSwap foi introduzido na arquitetura JPDA da Máquina Virtual Java Sun HotSpot 1.4, possibilitando a substituição/atualização de código em execução — apenas corpo de métodos existentes e novas classes — através das APIs de depuração da JVM, desenvolvedores e arquitetos de software esperavam por mais. Além do HotSwap na JVM, servidores de aplicação Java em ambiente de desenvolvimento/teste dispõem da facilidade de redeploy automático de aplicações. Estes recursos em geral são inviáveis em ambiente de produção, pelas limitações de abrangência, desempenho — custo de execução — e pelo fato que um redeploy em geral recarrega toda a aplicação, sem manter o estado de execução anterior da aplicação e seus objetos.
Com foco neste tema, a empresa Zero Turnaround, da Estônia, desenvolveu o mecanismo JavaRebel. Estendendo a Java VM — suporta Sun HotSpot e BEA JRockit, JavaRebel recarrega mudanças em classes individuais em tempo real sob demanda (on-the-fly, “em-pleno-vôo”), sem redeploy ou reinício, incluindo adição ou remoção de métodos e campos. JavaRebel utiliza modificação de bytecode e “um pouco de mágica”, tendo como única limitação não permitir mudanças nas cláusulas extends
e implements
. Todas as instâncias de objetos existentes na memória são preservadas e as mudanças são imediatamente visíveis na aplicação.
Como imagens falam mais que mil palavras, recomendo assistir esta demonstração de tela (screencast) de 5 minutos para ver JavaRebel em ação: Instalando e usando JavaRebel.
JavaRebel suporta servidores de aplicação BEA Weblogic 8+, Oracle OC4J 9i+, Tomcat 4+ e Jetty 5+.
JavaRebel é um produto comercial, com licenças por desenvolvedor com preço individual de US$99 (diminui de acordo com volume de licenças). Existe também opção de licenciamento gratuito para projetos open source qualificados.
Outro produto interessante da Zero Turnaround é o JSP Weaver, que promete acelerar a recarga de JSP atualizados em até 50 vezes através da interpretação on-the-fly, ao invés da tradução (geração/compilação) para Java convencional.
Para saber mais:
- JavaRebel: recursos, desempenho e licenciamento.
- Zero Turnaround Blog: JavaRebel Brings Class Reloading to Java, 2007-10-08.
- Generic Class Reloading Comes To Java, Java Developer’s Journal, 2007-10-09.
- Java SE HotSpot VM: The Java HotSpot Performance Engine Architecture.
- Hotswap Task for Ant 1.6.x. Veja também Hotswap changed java code into a JVM with hotswap.jar, em Asynchronous Blog, 2005-06-16.
JOSSO
Java Open Single Sign-On (JOSSO), infraestrutura de código aberto para SSO baseada em Java EE que provê uma solução centralizada e independente de plataforma para autenticação de usuários, teve a versão 1.6 lançada em 11 de outubro.
A principal novidade da versão 1.6 é o total suporte ao Spring Framework 2.0, com seu contêiner de inversão de controle (IoC), integrando Acegi Security para controle de acesso e autorização refinados (fine-grained).
Os recursos do JOSSO incluem suporte a: JAAS com SSO em múltiplas máquinas e aplicações; Autenticação Forte com certificados cliente X.509; LDAP, banco de dados ou XML para armazenamento de informação de usuários e credenciais; integração com Microsoft Active Directory; API cliente para PHP e para Microsoft ASP; monitoramento e gerenciamento de SSO por JMX; gerenciamento de evento e auditoria plugável; informação de identidade para aplicações web e EJBs via APIs padrão Servlet e EJB; Web Services/SOAP e Struts.
JOSSO é compatível com Tomcat 5, 5.5 e 6 e JBoss AS 3.2, 4.0 e 4.2.1.
Para saber mais:
- JOSSO, Java Open Single Sign-On: documentação e download.
- JOSSO 1.6 released: Java Open Single-Signon Meets Spring, por Gianluca Brigandi, 2007-10-11, em TheServerSide.COM.
Linguagens JVM
Nem só de linguagem de programação Java vive a JVM. Existem pelo menos outras quatro linguagens criadas ou portadas para rodar na plataforma Java, em geral linguagens dinâmicas de alto nível e com sintaxe compacta:
- Groovy – linguagem dinâmica criada para a JVM. Veja também Groovy from Wikipedia e Groovy in Action (livro).
- JRuby, implementação da linguagem Ruby em Java. Veja também Ruby por Wikipédia, Ruby on Br e o framework web Ruby On Rails.
- Jython, implementação da linguagem Python em 100% puro Java. Veja também Python por Wikipédia e Python Brasil.
- Scala – linguagem concisa que incorpora conceitos de funcional e orientação a objetos.
Destaco dois artigos publicados hoje que abordam o tema das novas linguagens no universo Java:
Java: o futuro Cobol?, por Ruben Badaró, 2007-10-12, em Zona J, Portugal.
Groovy, (J)Ruby or Scala? (em inglês), por Frederic Daoud, 2007-10-12.
Além disso, o artigo PHP on Java: Best of Both Worlds? (em inglês), por Mark Figley, 2007-10-09, em InfoQ, destaca a convergência que tem ocorrido de integração e suporte a PHP em camadas Java.
Em especial, destacam-se as iniciativas Project Zero da IBM, ambiente de execução na plataforma Java com suporte a Groovy e PHP, e Quercus da Caucho Technology, implementação 100% Java de PHP 5 como software livre sob licença GPL.
Sobre JavaRebel, leia também:
JavaRebel: Dynamic Classloading in the JVM
Por Rob Thornton, 2007-10-26, InfoQ.
Quem tem testado JavaRebel já encontrou algumas limitações ou problemas. Mesmo assim, as primeiras impressões são muito boas. Além disso, a Zeroturnaround já está trabalhando em uma atualização de correção e melhoria.
JavaRebel é tema de mais um artigo, agora no site da revista Java Developer’s Journal (JDJ):
Java Development: Why Is Zero Turnaround Important?
It is possible to eliminate the redeployment in Java EE development
Por Ivo Mägi, 2007-10-23.
Márcio “on the fly” não é “em pleno voo”. Essa é uma tradução literal muito ruim. “On-the-fly” pode significar algo inesperado, uma alteração simultânea, substituição, etc, dependendo do contexto!
Abs.