Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD
4Unidad 4
Metodología
Desarrollo temático
Seguridad web
Seguridad web
Una aplicación web segura puede ser tan compleja como necesite el sistema, requiere de
conocer los puntos vulnerables de la seguridad. Identificar de forma clara, las posibilidades
de seguridad que ofrecen algunos sistemas operativos y aplicarlas funciones de seguridad
para contrarrestar las amenazas.
En la siguiente lista encotraremos algunas pautas que seguridad minima que deben aplicar-
se a una aplicación web y que se deberian de tener en cuenta para dar mayor seguridad y
las cuales deberiamos de seguir.
■■Recomendaciones generales de seguridad para aplicaciones web.
■■Ejecutar aplicaciones con privilegios mínimos.
■■Conocer a los usuarios.
■■Protegerse contra entradas malintencionadas.
■■Tener acceso seguro a bases de datos.
■■Crear mensajes de error seguros.
■■Mantener segura la información confidencial.
■■Usar cookies de forma segura.
■■Protegerse contra amenazas de denegación de servicio (Microsoft, 2007).
En una base de datos relacional la lógica de la aplicación lanzara consultas en lenguaje SQL
sobre protocolos como Tabular Data Stream Oracle Net y en el caso de un repositorio en
formato por XML utilizará consultas XPATH.
Cuando se presentan fallas en una aplicación web, permitiendo el acceso indebido de usua-
rios no autorizado para estraer información de un sistema informático, se debe en una alta
probabilidad de un fallo de seguridad en el codigo de la aplicación.
Los casos más comunes de ataques a las aplicaciones web según la OWASP (Open Web
Application Security Project) son:
■■Injection.
■■Cross-site Scripting (XSS).
■■Broken Authentication and Session Management.
■■Insecure Direct Object References.
■■Cross-Site Request Forgery (CSRF).
■■Security Misconfiguration.
■■Inseccure Cryptographic Storage.
■■Failure to Restrict URL Access.
■■Insufficient Transport layer Protection.
■■Unvalidated Redirects and Forwards (Institute, 2012).
A traves de estos ataques, intentan explotar fallos de seguridad de aplicaciones web en tec-
nologías de cliente o servidor, con la intención de extraer informacion de la base de datos.
Inyeccion de código SQL en aplicación web
Se presenta cuando una aplicación web no validad correctamente los datos que introduce el
usuario en la interfaz, y que se utilizan en consultas a repositorios de datos.
Los ataques a traves de estos formularios, se dan cuando el atacante no introduce una con-
traseña correcta, al contrario digito una condición utilizando un carácter especial de comi-
llas simple.
Enterno de ejecucuión: inicialmente la seguridad para los usuarios esta en la máquina vir-
tual, como mediadora y controladora de lo que se puede ejecutar y bajo que cirscunstancias
se ejecuta.
Una máquina virtual de Java contiene un mecanismo de verificador de clases, el cual permi-
te asegurar, al cargar las clases, si estas tienen o cumplen con la estructura interna correcta.
Al detecrar un patron o un problema dentro de la clase se genera un excepción, ya que la
estructura de la clases se genera con una estructurra de bytes. La máquina virtual no puede
determinar sin una clase en realidad es un bytecode, con relación a esto la máquina virtual
tiene un verificador de clases que se activa sobre clases no seguras, permitiendo la correc-
ción del código.
Uno de los objetivos del verificador de la máquina virtual de Java es garantizar la construc-
ción de aplicaciones robustas, bien estructuradas y seguras en su codificación, cuando el ve-
rificador detecta un codigo mal intecionado en algun método, generando una incosistencia
en la ejecuación de la clase la máquina virtual no funcionaria si este es invocado.
La verificación del bytecode generado se realiza despues de ser cargado, donde el verificar
inicia su tarea de comprobación en dos fases.
1. Se realiza despues de cargar la clase, comprueba la estructura interna de la clase y la
integrigirdad del bytecodes.
2. Se llave a cado durante la ejecución del bytecode generado de la clase, confirmando las
referencias simbolicas de las clases, atributos y métodos.
El cargador de clases en Java
Es el que se encarga de cargar los bytecodes definidos que definen la clase, para ser veri-
ficados y poder generar las clases finales. La máquina virtual incluye un cargador de clase
La seguridad tambien esta presente en el cargador el cual cumple con las siguientes tareas:
■■El cargador primario es el encargado de invocar incialmente el paquete Java.*, donde to-
das las clases tienen un apuntador null. Para la seguridad es importante debidio a que son
las clases basicas de inicialización y correcto funcionmianto del sistema y son cargadas
desde el sistema de archivos local evitando que sean cargadas remotamente o reempla-
zadas.
■■El cargador facilta espacios de nombre de clases diferentes para ser cargadas, evitando
la duplicidad, las coliciones entre los nombre de clases cargas desde difretnes origenes.
■■Dentro de la máquna virtual no pueden cargase ni comunicarse clases provenientes de
fuentes diferentes, evientando la obtención de información de aplicaciones no fiables.
ClassLoader
Es una clase que carga otras clases, ClassLoader se encarga de verificar las clases de una apli-
cación en memoria según el requerimiento que tenga la máquina virtual Java.