Actualizado el 21 de Marzo del 2018 (Publicado el 9 de Noviembre del 2017)
937 visualizaciones desde el 9 de Noviembre del 2017
1,8 MB
51 paginas
Creado hace 11a (01/01/2013)
Universidad de Buenos Aires
Facultades de Ciencias Económicas,
Cs. Exactas y Naturales e Ingeniería
Carrera de Especialización en Seguridad Informática
Trabajo Final de Especialización
Tema:
Análisis de vulnerabilidades en Java y propuesta de
mejora para la gestión de actualizaciones de Oracle
Autor: Ing. Raphael Labaca Castro
Tutor: Lic. Julio César Ardita
Año de Presentación: 2013
Cohorte: 2012
Trabajo Final de Especialización
Universidad de Buenos Aires – Especialización en Seguridad Informática
Declaración Jurada de origen de los contenidos
Por medio de la presente, el autor manifiesta conocer y aceptar el
Reglamento de Trabajos Finales vigente y se hace responsable que la
totalidad de los contenidos del presente documento son originales y de su
creación exclusiva, o bien pertenecen a terceros u otras fuentes, que han
sido adecuadamente referenciados y cuya inclusión no infringe la legislación
Nacional e Internacional de Propiedad Intelectual.
FIRMADO
Ing. Raphael Labaca Castro
DNI: 18.871.726
Raphael Labaca Castro
II
Trabajo Final de Especialización
Universidad de Buenos Aires – Especialización en Seguridad Informática
Resumen
En agosto de 2012 apareció una importante vulnerabilidad 0-day1 en
Java (CVE-2012-4681) que afecta el JRE 1.7 y las versiones Java 7 update
6 e inferiores. Esto llevó a que Oracle tenga que adelantar una actualización
más de un mes a la fecha prevista. No obstante, unas horas después de
publicada la actualización, un grupo de investigadores [7] volvió a encontrar
una vulnerabilidad vinculada a la solución. Esto realmente lleva a pensar que
existe un problema no solo a nivel de usuarios sino también a nivel de
gestión de las actualizaciones respecto a este tipo de amenazas.
Por eso, se analizará el proceso de gestión de actualizaciones de
Oracle y las herramientas técnicas para emular y explotar una vulnerabilidad
en la plataforma Java. Utilizaremos Metasploit 4.5 (dev. 15713 consola y
15672 framework) y una versión de Java desactualizada (7u6) a modo de
poder explotar la falla. Las pruebas correrán tanto en una Macbook con OS
X Lion 10.7.5 como en una PC con Windows XP Service Pack 2. De parte
del atacante, se usará un Debian GNU/Linux 6.0.
Finalmente, se observará cómo se comparten las responsabilidades
entre fabricantes y usuarios; así como también se propondrán acciones de
mejora para el proceso.
Palabras clave: vulnerabilidad, Java, Oracle, gestión, actualización.
1 Vulnerabilidades que son descubiertas por investigadores o atacantes, antes que por su
Raphael Labaca Castro
III
Trabajo Final de Especialización
Universidad de Buenos Aires – Especialización en Seguridad Informática
Índice
Introducción .......................................................................................... 1
Objetivo y alcance ................................................................................ 1
Java: orígenes y definición ................................................................... 2
¿Qué es Java? ..................................................................................... 2
Sun Microsystem y Oracle ................................................................... 3
Una exitosa plataforma ........................................................................ 3
Razones para atacar a Java ................................................................ 4
Beneficios para el ciberdelincuente ..................................................... 4
Amenazas ............................................................................................ 5
Vulnerabilidades 0-day ......................................................................... 5
Códigos maliciosos .............................................................................. 5
Política de actualización de Oracle ...................................................... 6
Alertas de Seguridad en Oracle (0-Day) .............................................. 6
Clasificación de vulnerabilidades ......................................................... 9
Common Vulnerability Scoring System (CVSS) ............................. 10
Análisis de un 0-day de Java (CVE-2012-4681) ................................ 12
Cronología de los hechos .................................................................. 12
Análisis técnico de la vulnerabilidad .................................................. 13
Explotar la vulnerabilidad con Metasploit ........................................... 16
Acciones para mitigar estas vulnerabilidades .................................... 24
Caso particular: Mac OS X ............................................................. 25
Nueva explotación de vulnerabilidades con Java desactivado .......... 26
Proceso de gestionar actualizaciones de Oracle ............................... 27
Ventajas .......................................................................................... 28
Desventajas .................................................................................... 28
Propuestas de mejora .................................................................... 29
Ciclo de vida de desarrollo seguro ..................................................... 31
Adobe ................................................................................................. 31
Microsoft ............................................................................................. 32
Gestión centralizada de actualizaciones ............................................ 36
Distribuir actualizaciones con Active Directory ............................... 36
Raphael Labaca Castro
IV
Trabajo Final de Especialización
Universidad de Buenos Aires – Especialización en Seguridad Informática
Remover actualizaciones automáticas ........................................... 36
Alternativas a través de aplicaciones ............................................. 37
Anexo ................................................................................................. 43
Guía para distribuir actualizaciones con Active Directory .............. 43
Fuentes .............................................................................................. 45
Raphael Labaca Castro
V
Trabajo Final de Especialización
Universidad de Buenos Aires – Especialización en Seguridad Informática
Introducción
Actualmente, las amenazas informáticas se encuentran en constante
crecimiento. Ya sea debido a la gran proliferación y masificación del acceso
a Internet y los dispositivos, como también a la gran ganancia que genera a
sus creadores. Este marco de referencia sirve para comprender el escenario
al que se exponen los usuarios hoy en día y puede ser útil como puntapié
inicial para analizar el funcionamiento de estos ataques.
Últimamente, se ha podido observar una mayor propagación de
amenazas que afectan las plataformas web, a diferencia de los ataques
dirigidos o los códigos maliciosos tradicionales. De este modo, cambia el
paradigma actual de amenazas hacia un modelo más estructurado y
eficiente que, sin lugar a dudas, puede comprometer seriamente los datos de
una organización o un usuario.
Muchas de estos ataques aprovechan vulnerabilidades que son
detectadas en las aplicaciones, tanto por los propios atacantes como
también por los investigadores de seguridad en la industria. Debido a
factores éticos, algunas veces
las
vulnerabilidades encontradas antes de que esté disponible una actualización
que las corrija. Esto hace que exista un período de mayor exposición de los
usuarios afectados que puede comprometer seriamente su información.
las compañías deben publicar
Objetivo y alcance
Evaluar el proceso de gestión de actualizaciones buscando puntos de
mejora para aumentar la eficacia de los parches. Adicionalmente, analizar el
funcionamiento de una vulnerabilidad que se explote del lado del cliente y
que permita la ejecución de código remoto.
Se tomará la empresa Oracle y se trabajará sobre su proceso de
terceros.
gestión de actualizaciones sin extender a aplicaciones de
Asimismo, se tomará una actualización (ej. update 7) como caso de uso
técnico para ilustrar la amenaza.
Raphael Labaca Castro
1
Trabajo Final de Especialización
Universidad de Buenos Aires – Especialización en Seguridad Informática
Java: orígenes y definición
¿Qué es Java?
Entre sus diversos significados [4] se puede tratar desde de una de
las principales islas de Indonesia, una danza típica francesa de comienzos
del siglo XX, hasta un juego de mesa alemán. Asimismo, dentro de la rama
tecnológica, también encontramos diversas acepciones para Java. Debido a
que muchos de estos significados suelen mezclarse, pasaremos a identificar
cada uno de ellos y a diferenciarlos del resto para evitar confusiones:
Plataforma Java: Se trata de un compendio de aplicaciones y
especificaciones que permiten desarrollar software para que sea utilizado en
un ambiente multiplataforma.
Lenguaje Java: El lenguaje de programación Java es orientado a
objetos, basado en clases y de propósito general. Una de sus grandes
ventajas es que el código se compila una sola vez, creando los denominados
bytecodes, para luego ser interpretado en cualquier plataforma a través de
una máquina virtual de Java. Por eso, es un lenguaje interpretado y
compilado al mismo tiempo.
Máquina Virtual Java: Com
Comentarios de: Análisis de vulnerabilidades en Java y propuesta de mejora para la gestión de actualizaciones de Oracle (0)
No hay comentarios