Ir al contenido principal

Mejorar y entender la seguridad del plugin de Java (I) (enero 2013)

Mejorar y entender la seguridad del plugin de Java (I)

El plugin de Java se está convirtiendo en un serio problema de seguridad, llevamos meses comprobándolo. Oracle ha añadido seguridad en su configuración por defecto, y ofrecido más granularidad a los usuarios. Pero todavía es mejorable. ¿Para qué sirven las nuevas funcionalidades y qué se puede esperar de ellas?
Lo primero que es necesario entender cuáles son los riesgos de los applets de Java. La máquina virtual Java es la encargada de ejecutarlos y, por seguridad, los mantiene dentro de una "sandbox". Esto quiere decir que no les permite acceder al disco, ejecutar código... ¿Por qué son peligrosos entonces? Porque existen situaciones en las que las que se les permite a esos applets salir de la sandbox. Si ocurre esto, el applet se convierte a efectos prácticos en un ejecutable (puede hacer prácticamente cualquier cosa con los permisos con los que se ejecuta). ¿Bajo qué circunstancias pueden salir de la sandbox?
  • Oficialmente, solo cuando los applets están firmados por una entidad certificadora válida. Las entidades certificadoras válidas se pueden ver por la interfaz. Esas entidades pueden ser modificadas a través del fichero C:\Program Files\Java\jre7\lib\security\cacerts. Con "keytool" y sus opciones de "delete" e "import", se pueden configurar. Pero en las opciones de seguridad avanzada de Java, también se permite "Usar los certificados y claves del almacén de claves del explorador", con lo que hay que tenerlo en cuenta. Se puede confiar en más certificadoras de las que se cree.
  • Un applet puede salir de la sandbox (aunque no esté firmado), por culpa de una vulnerabilidad en la propia implementación de la máquina virtual. Si la implementación de la máquina Java en sí (la parte escrita en C) contiene un desbordamiento de memoria intermedia, por ejemplo, puede que sea explotada y se ejecute código. Estas serían vulnerabilidades "clásicas" que atacan a la implementación. Su mitigación es como cualquier otra vulnerabilidad en un programa: usar herramientas antipayload, antiexploit... y por supuesto, mantenerse actualizado.
        
  • Por último, un applet puede escapar de la zona de seguridad por un fallo de diseño "del lenguaje" que se lo permita. Las últimas vulnerabilidades más graves en Java han sido por esta razón (invocando clases privilegiadas desde código no confiable, serialización...). Esta es una de las razones por las que se insiste en deshabilitar por completo el plugin, puesto que supone un grave problema. Son un fallo intrínseco de diseño, que requieren un cambio profundo y que no serán solucionadas a corto plazo. Se sabe que la última versión sigue siendo vulnerable en este sentido y todavía quedan vulnerabilidades (fórmulas para eludir la sandbox) que descubrir.
¿Cómo defenderse? Deshabilitar Java si no se usa. Pero esto no siempre es posible. Eliminar el problema no es una solución para todo el mundo, sino otro problema adicional si de verdad se necesita esta funcionalidad. Además, Java tiene el problema de que "no tiene competencia". Solo queda entender cómo protegerse de manera más eficaz. Puesto que se trata de contener la ejecución de applets dañinos que puedan eludir la sandbox, la clave está en:
  • La criptografía: hay que luchar contra los applets no firmados (no suelen aportar nada bueno), autofirmados (son sospechosos), y vigilar estrechamente los firmados (aun así el firmado solo garantiza al autor, no sus intenciones).
         
  • Actualización: No permitir que ciertos applets se lancen en versiones antiguas para evitar que se aprovechen de vulnerabilidades conocidas.

En este sentido de control de certificados y versiones, en la versión 7u10 se introdujeron los niveles de seguridad y la "autoconciencia" de ser una versión "insegura". Lo veremos en detalle la próxima entrega.
Fuente:

Comentarios

Entradas populares de este blog

Un Tutorial de Aprendizaje Profundo: De Perceptrones a Redes Profundas

IA (iiiii AAA) no .. no son solo un par de vocales son las siglas de "Inteligencia Artificial" un campo de la informática que estudia la inteligenia exhibida por las máquinas y hoy hablaremos de esto. Te vamos a enseñar conceptos básicos de IA de una forma fáci. Comencemos, el dia de hoy tenemos este super interesante artículo que nos comparten desde Toptotal.com sobre el "Aprendizaje profundo de perceptrones a redes profundas" y si te suena a Chino no lo es :) Te invito a que leeas este articulo: En los últimos años, ha habido un resurgimiento en el campo de la Inteligencia Artificial. Se ha extendido más allá del mundo académico, con grandes figuras como  Google , Microsoft y  Facebook , quienes han creado sus propios equipos de investigación, obteniendo impresionantes  adquisiciones . Se comenta que esto puede atribuirse a la gran cantidad de datos brutos generados por los usuarios de redes sociales, muchos de los cuales deben ser analizados, al igual qu...

La H-1B: El viaje de un desarrollador iOS desde Honduras hasta Silicon Valley

Desde toptal.com nos cuentan ... La experiencia de un desarrollador Latinoamericano que llego hasta Silicon Valler desde Honduras, un interesante artículo que nos cuenta la travesía de llegar a trabajar en San Francisco, California. He aquí un fragmento del articulo: Por estos días, vivo en la gran ciudad de San Francisco. Obtuve un trabajo que amo, y uno con el cual soñé con tener durante mucho tiempo. Parece fácil ahora, pero no siempre fue así. Cómo empezó todo Nací en  San Pedro Sula , un pequeño pueblo en la esquina noroeste de Honduras. Comencé a programar cuando tenía 12 años. Todo empezó con BASIC. Un día, estaba jugando un vídeo juego y se colgó. Cuando ví la pantalla llena de códigos de error y mensajes, me picó la curiosidad—entonces comencé a aprender algunos comandos BASIC, que eventualmente me llevaron a comprar libros de programación sobre Clipper, Turbo Pascal, C, C++, etc. Fue genial. Tenía todo el tiempo del mundo para gastar programando cualq...

Por Qué Los Startups Necesitan Una Guía De Estilo

Incluso para un diseñador con experiencia, crear una nueva guía de estilo para un producto es difícil—hay muchas direcciones de diseño posible, y el proceso puede rápidamente convertirse en algo abrumador. La vida del  startup  es bastante agitada, rápida, y llena de clichés como “la perfección es la enemiga de tener algo hecho”, “muévete rápido y rompe cosas”, o “lancemos ahora, arreglemoslo después”. Crear una guía de estilo bajo dichos eslóganes y prioridades fluctuantes es desafiante, pero es necesario si queremos que el diseño de un producto tenga éxito a largo plazo. La  Experiencia Global de Lenguaje (GEL) de la BBC explica el propósito de cada componente y cómo deberían ser utilizados. En años recientes, hemos escuchado mucho sobre sistemas de diseño, guías de estilo, librerías de patrones, y  diseño atómico . Y si bien estas herramientas son muy útiles, usarlas puede sentirse como un exceso cuando lo único que quieres es crear un par de pantalla...