Ir al contenido principal

Mejorar y entender la seguridad del plugin de Java (III) (Enero 2013)

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

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?
Los atacantes tienen varias posibilidades. Para el usuario, la opción por defecto (seguridad "alta", explicada en la entrega anterior) es preguntar si se quiere ejecutar un applet no firmado, con un diálogo como este:
Si los atacantes no lo firman, confiarán en que el usuario con la configuración por defecto, simplemente acepte la "invitación". Pero pueden afinar con un poco de "ingeniería social". Una opción es, sencillamente, autofirmar sus applets. Esto no requiere ninguna inversión.  Pero los applets autofirmados (o firmados por una CA que no sea de confianza para Java), tampoco considerados "de confianza". Supongamos que un atacante intenta ejecutar un applet autofirmado en un usuario con la configuración por defecto, la víctima obtendrá este mensaje:
Como vemos, el "publicador" y el nombre pueden ser sustituidos por cualquier palabra, dando confianza a la amenaza. Esto, al contrario de lo que se pretende con la alerta, puede permitirles ganar cierto grado de "confianza" en la víctima, aunque se necesiten un "click" más por parte del usuario.
Si el applet está correctamente firmado y garantizado por una CA válida, el diálogo que aparecerá será el siguiente
Que no se diferencia demasiado del autofirmado, y que podría confundir igualmente al usuario medio... En resumen, la principal diferencia entre una firma de verdad y el autofirmado en un applet es un botón de "Ejecutar" deshabilitado y que la víctima debe aceptar un "Entiendo los riesgos...", cosa que si hace el usuario medio, confirma exactamente lo contrario.
¿Qué hacer entonces?
Las vulnerabilidades de diseño de Java siguen ahí, y es cuestión de tiempo que se hagan públicas. Los atacantes han perdido un importante filón: desde la versión 7u10 las instalaciones completamente silenciosas no serán tan sencillas. Ahora tienen la opción de seguir sin firmar sus applets o de autofirmar. Incluso la de invertir y firmar sus applets (por menos de 100 euros al año se puede conseguir un certificado). Pero entonces ya no necesitarían de vulnerabilidades... También pueden seguir buscando vulnerabilidades que incluso puedan eludir los niveles de seguridad y seguir ejecutando applets de forma silenciosa.
Hay que evitar pues, si no hay más remedio que usar Java, la ejecución de applets no firmados o autofirmados. De los firmados, permitir, solo los sean los estrictamente necesarios. Para empezar, sería necesario impedir que los no firmados se ejecuten. Eso se consigue elevando la seguridad a "muy alta". Así, si se intenta cargar un applet no firmado se conseguirá un bloqueo directo:
No está de más quitar el permiso a applets autofirmados. Esto se consigue desmarcando la opción "Permitir el otorgamiento de acceso elevado a aplicaciones autofirmadas". Si se intenta cargar un applet de este tipo, aparecerá un diálogo como el que sigue.
¿Y si los atacantes firman sus applets "legítimamente"? Esto no es raro, bien porque inviertan en certificados bien porque los roben (los últimos incidentes en CA hacen que esto no solo sea una posibilidad, sino que además sea probable). En estos casos con el tiempo meterían en la lista negra los certificados y por tanto dejarían de ser de confianza, pero mientras tanto, es necesario hacer una lista blanca. O sea, conocer qué certificados firman los applets que necesito, y eliminar el resto del almacén.
Pero también se puede hacer mucho por mejorar la seguridad desde el navegador y con otras opciones. Lo veremos en la próxima entrega.
Más información:
una-al-dia (28/01/2013) Mejorar y entender la seguridad del plugin de Java (I)
una-al-dia (29/01/2013) Mejorar y entender la seguridad del plugin de Java (II)
 
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...