Está en la página 1de 6

Tecnológico de Álvaro obregón

Seguridad en aplicaciones web

Seguridad en Java

Romero Antonio Eliceo


Grupo: 801 Fecha: 19/05/2020
Docente: Jorge Misael Ruiz
¿Qué es Java?
Java es un lenguaje de programación orientado a objetos creado para que los
programadores escribieran el código solo una vez y lo ejecutarán en cualquier
dispositivo. Java es uno de los lenguajes de programación más importantes de la
industria de desarrollo de software. Odiado por muchos, pero amado por muchos
más, este lenguaje lidera el mercado de desarrollo gracias a sus grandes productos
estables, robustos y escalables.

Ventajas de utilizar el lenguaje de java

 Curva de aprendizaje simple


  Multihilo 
  Seguro, Java es un lenguaje de programación seguro y estable.
  Multiplataforma, Podemos desarrollar nuestro código una única vez y
ejecutarlo en cualquier plataforma.

Vulnerabilidades del lenguaje java


ID CVE Tipo (s) de Puntuación Acceso Complejida Autenticación
vulnerabilidad d
CVE-2019-
DoS 4.3 4.3 Remoto Medio No requerido
2842
vulnerabilidad en el componente Java SE de Oracle Java SE (subcomponente: JCE).  La
vulnerabilidad difícil de explotar permite que un atacante no autenticado con acceso a la red a
través de múltiples protocolos comprometa Java SE. Los ataques exitosos de esta vulnerabilidad
pueden resultar en la capacidad no autorizada de causar una denegación parcial de servicio
(DOS parcial) de Java SE. 
CVE-2019-
DoS 5.8 Remoto Medio No requerido
2816
La vulnerabilidad difícil de explotar permite que un atacante no autenticado con acceso a la red a
través de múltiples protocolos comprometa Java SE, Java SE Embedded. Los ataques exitosos de
esta vulnerabilidad pueden resultar en una actualización no autorizada, insertar o eliminar el
acceso a algunos de los datos accesibles de Java SE, Java SE Embedded, así como el acceso
de lectura no autorizado a un subconjunto de datos accesibles de Java SE
CVE-2018- Código
3,3 Local Medio No requerido
3211 Ejecutivo
La vulnerabilidad fácilmente explotable permite a los atacantes con pocos privilegios iniciar
sesión en la infraestructura donde Java SE. Los ataques exitosos de esta vulnerabilidad pueden
resultar en la creación, eliminación o modificación no autorizada de acceso a datos críticos o
todos los datos accesibles de Java SE. Esta vulnerabilidad no se aplica a las implementaciones de
Java, generalmente en servidores, que cargan y ejecutan solo código confiable (por ejemplo, código
instalado por un administrador). 
CVE-2018- Código
5.1 Remoto Alto No requerido
3209 Ejecutivo
Esta vulnerabilidad se aplica a las implementaciones de Java, generalmente en clientes que ejecutan
aplicaciones Java Web Start de espacio aislado o applets de Java de espacio aislado (en Java SE 8),
que cargan y ejecutan código no confiable (por ejemplo, código que proviene de Internet) y
dependen del entorno limitado de Java por seguridad. 
Ataques más frecuentes:

Negación de un servicio:

Los ataques de esta naturaleza hacen que los recursos de la máquina no estén
disponibles. Esto ocurre cuando un proceso utiliza más recursos de los que tiene
permitidos esencialmente deteniendo la máquina. Existen muchas categorías para
un ataque de negación de un servicio, algunos ejemplos son:

 Saturación completa del sistema de archivos

 Utilizando todos los punteros de archivos disponibles

 Almacenando toda la memoria del sistema

 Creando miles de ventanas negando efectivamente el acceso a la salida de la


pantalla o la ventana que está en cola

 Usando todos los ciclos de la máquina creando muchos procesos de alta


prioridad

Applets en java

Un applet es una pequeña aplicación Java, la cual está disponible en un servidor


web del cual nos la descargamos y ejecutamos dentro de una página web.
Algunas de sus características son:
 Tamaño pequeño, esto es debido a que se requiere su descarga a través de
la red. Aunque existen applets de gran tamaño.
 Uso de interfaces gráficos, utiliza las clases AWT y Swing, las cuales dotan a
la interface del applet de una gran versatilidad y operabilidad para el usuario.
Podríamos decir que es un componente, ya que va a ir incluido dentro de otras
aplicaciones.

 Applets de ataque: son diseñados para burlar los mecanismos de seguridad


propios de Java y realizar acciones realmente perjudiciales en la máquina
cliente del usuario que los baja de la red (inutiliza datos, infecta con un virus o
revela información sensible al mundo exterior).
 Applets maliciosos: atacan la máquina cliente del usuario a través de algún
tipo de negación de servicio, invasión de la privacidad o simplemente
proporcionando cierto nivel de molestias al usuario.

El Applet Asesino de Negocios


Este usa procesos para hacer el trabajo sucio. Los procesos no son requeridos para
retener su ejecución cuando se sale de la página. Esto quiere decir que los
procesos pueden mantenerse corriendo en el navegador después de que el
applet aparezca como terminado. Applet como éste tendrán un efecto
desagradable en el comercio electrónico, estos podrían ser utilizados debido a su
potencial para obtener información privada. Esta información puede ser listas de
sitios que el usuario a visitar con archivos que se han descargado, nombres de otros
applets o un servidor de otras cosas

Applets Molestos.

Esta es la forma más simple de un applet malicioso, debido a que Java tiene una
excepcional poder multimedia, los applets pueden hacer una gran variedad de cosas
como correr archivos de sonido constantemente o desplegar fotografías obscenas

Malas prácticas de programación


 Errores lógicos
 Errores en tiempo de ejecución
 No hacer actualizaciones de java y de esta manera trabajar con una versión
vulnerable de Java
 No actualizar el código
 No testear el código
 No tener un código limpio (identado y comentado )

Buenas prácticas de programación


 Evitar la creación innecesaria de objetos

 Nunca hacer variables de instancia públicas

 Trata siempre de minimizar la Mutabilidad de las clases, normalmente son los


bloques que permiten formar otros objetos más grandes.

 Trata de usar más las Interfaces sobre las Clases Abstractas

 Limita siempre el alcance de una variable local

 Trata de usar librerías estándar en lugar de hacer las tuyas desde cero

 Siempre que sea posible trata de usar tipos primitivos en lugar de las clases
Wrapper
 Usa los Strings con mucho cuidado

 Siempre regresa colecciones vacías en lugar de nulas

 El copiado defensivo hace que los objetos creados estén libres de la mutación

 Nunca dejes salir una excepción de un bloque finally

 Nunca lances «Exception» directamente.

 Restringir el acceso a paquetes, clases y miembros de clase cuando sea


posible, empleando los modificadores de acceso private, protected, (default),
public.

Conclusión
Java sigue siendo uno de los lenguajes de programación más populares del mundo
y por ende es uno de los lenguajes mas vulnerables actualmente saber como
detectar y prevenir estas vulnerabilidades en nuestro código nos brindaran mejores
herramientas para futuras actualizaciones en nuestros proyectos

Bibliografía
UDLAP. (2008). Seguridad general en java y jini. Se consulto el día 20/03/2020, de
Catarina Sitio web:
http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/argueta_a_a/capitulo3.pdf
Diego Andina. (January 1998). Seguridad en Java. SE consulto el día 20/05/2020,
de Universidad Politécnica de Madrid Sitio web:
https://www.researchgate.net/publication/317100224_Seguridad_en_Java

También podría gustarte