Archivo

martes, 2 de noviembre de 2010

Java y la (in)seguridad


    Hablando con un amigo (fan d Java), se mostraba muy confiado en cuanto a la seguridad (teniendo en cuenta q realiza aplicaciones webs y algunos de sus clientes son bancos), pues bien a mi entender la seguridad no depende solo del lenguaje y/o plataforma en q desarrollemos, tmb tiene mucho q ver cierta "habilidad" (o sentido comun?) de los programdores (p.e. no dejar paneles d control a la vista, borrar modulos q ya no se utilicen, validar variables, utilizar contraseñas fuertes, tener cuidado con las cofiguraciones x default, etc. etc etc..)

    Pero esta vez voy a enumerar algunos problemas de seguridad y q son propias d Java, cabe aclarar q estas fueron reportadas el 20 de Abril y recien fueron parcheadas el 12 de Octubre (casi 6 meses despues =)

    Conseguir información sobre la red interna con applets
    Un usuario (malintencioando o no :P ) podria conseguir mediantes Applets información sobre la red interna. Tmb es posible conseguir la direccion DNS d la victima. Recordemos todo esto es gracias a la exposición de información q dan algunas Applets d Java.
     En Minded Security explican aún como sacar mas provecho de esto bypaseando ciertas limitaciones, obteniendo p.e. IP del DNS, si se utiliza proxy,  credenciales del proxy, interfaces NIC, direcciones MAC, entre otra cosas :)

    Ejecución de codigo arbitrario
    La actualización de Java 6 introduce nuevas funcionalidades q permiten este tipo de ataques y hay para todos los gustos (Linux y Windows), ambas utilizan applets q corren por fuera del navegador, como si fuera una aplicación de escritorio.

    17322757 ZERO TERMINATOR ALLOWS JNLP SHORTCUTS (Windows)
    17322755 NEW LINES IN JNLP TITLE ARE COPIED INTO LNK FILES  (Linux)

    Abuso de peticiones http y modificacion de header
    Utilizando el método AddRequestProperty es posible realizar el ataque Http Request Splitting, inyectando peticiones http y bypasear accesos en caso de que el reenvio por  proxy este habilitado.

    DNS Rebinding
    Este es un problema d vieja data (año 2007) y es posible utilizando los Applets junto con el plugin LiveConnect de FireFox, y tomando ventaja de las caracteristicas de Java como conecciones TCP y UDP sobre sitios sin autorizacion. En principio solo afectaba al navegador Firefox pero Minded hizo extensible este ataque a cualquier navegador.


   
Para mas información ...

http://blog.mindedsecurity.com/2010/10/java-6u21-seven-issues-summary.html

No hay comentarios: