Академический Документы
Профессиональный Документы
Культура Документы
1 TEMA
Aplicaciones web y bases de datos:
Vulnerabilidades
Ataques
Esquema
Navegadores web
TEMA 1 – Esquema
Problemas inherentes a las
Arquitecturas de Servidores de aplicaciones
aplicaciones web Arquitecturas de
almacenes de Servidores de Bases de
El protocolo http aplicaciones web
datos datos
El concepto de SANBOX
Comunicación
n-CAPAS
XML
MVC
2
WEB 2.0 SGBDs
Ideas clave
Para estudiar este tema, lee los apuntes elaborados por el profesor para este tema
«Arquitectura de las aplicaciones web ».
Este punto es un resumen de los principales problemas de seguridad que tienen las
aplicaciones:
Problemas de diseño
Problemas de implementación
Problemas de operación
Estos problemas dan lugar diferentes tipos de ataques que implican, por un lado,
abordar el diseño seguro de una aplicación web con almacén de datos desde el
comienzo del Ciclo de Vida de Desarrollo Seguro de Aplicaciones (SSDLC), y
por otro lado, a afrontar la gestión de la seguridad una vez desplegada en la fase de
producción de la aplicación.
Una aplicación ha de cumplir con los objetivos de seguridad para los sistemas de
información y comunicaciones TIC:
Stealing Passwords
Social Engineering
Bugs and Back Doors
Authentication Failures
Protocol Failures
Information Leakage
Exponential Attacks Viruses and Worms
Denial-of-Service Attacks
Botnets
Active Attacks
Este punto aborda desde el punto de vista de la seguridad las características más
importantes de los tipos de arquitecturas más utilizadas en el diseño de las
aplicaciones. Se da un repaso a:
Se estudian también las tecnologías de desarrollo de aplicaciones web como son J2EE y
.NET, desde un punto de vista de la seguridad. La elección entre J2EE y .NET, depende
mayormente de la plataforma elegida. Las aplicaciones que se orientan a J2EE
teóricamente pueden ser ejecutadas con pocos (o ningún) cambio entre los proveedores
más importantes. En muchas plataformas de Linux, AIX, MacOS X, o Windows, en la
práctica, son requeridos algunos ajustes, pero no es necesario reescribir completamente
la aplicación. .NET se encuentra disponible principalmente en plataformas Microsoft
Windows. El proyecto Mono puede correr aplicaciones .NET en diversas plataformas
incluyendo Solaris, Netware, Linux.
SERVIDOR SERVIDOR
APLICACIONES BASE DE
DATOS
APLICACION
NAVEGADOR
Se revisa uno de los patrones de diseño de las aplicaciones web más comunes,
Modelo-Vista-Controlador (MVC), que implementa la arquitectura de aplicación
Smalltalk 80. MVC es típico de la mayoría de las aplicaciones J2EE de Apache
Foundation Jakarta Struts, y el código detrás de .NET puede ser considerado una
implementación parcial de este enfoque. Para PHP, el proyecto WACT aspira a
implementar el paradigma MVC de una manera más amigable para PHP. Existen
frameworks disponibles para J2EE, .NET, rubí, Phyton o PHP que permiten
implementar la arquitectura MVC.
Por último, se introducen tecnologías que tienen gran impacto y por tanto merece la
pena estudiar sus implicaciones de seguridad como:
Rich Internet Applications (RIA), han cobrado gran interés últimamente. Se basan en la
incorporación de código en el lado del cliente como en el caso de AJAX. Una aplicación
AJAX elimina la naturaleza start-stop-start-stop de la interacción entre el cliente y el
servidor de aplicaciones web introduciendo un intermediario, un motor AJAX entre el
usuario y el servidor. Parecería que sumar una capa a la aplicación la haría menos
reactiva, pero es todo lo contrario.
Este tema trata los problemas de seguridad de las aplicaciones web, incluyendo todos
los elementos y componentes de la arquitectura. Los problemas de seguridad de
este tipo de aplicaciones pasan por problemas que tienen:
Las aplicaciones web son difíciles por ciertas razones, si los usuarios tienen un
acceso fácil a la aplicación, entonces usuarios malévolos tienen acceso fácil también. No
hay ningún modo de saber de antemano que una petición a una aplicación será
benigna. Los problemas intrínsecos de las aplicaciones web están relacionados con:
Los navegadores web median entre los usuarios y las aplicaciones web.
Las propias vulnerabilidades de seguridad que contiene el código con el que está
construido un determinado navegador.
Por otro lado, es necesario que todo el personal que está relacionado con los
sistemas tenga la formación en concienciación de seguridad necesaria para
evitar fugas de información que puedan comprometer el sistema. De la forma más
inverosímil un sistema puede verse comprometido debido a descuidos en el personal y
los altos costes que implica implementar la seguridad en todos los aspectos,
comunicación, servidores, sistemas operativos, etc. no habrán servido de nada.
En primer lugar, hay que derivar los requisitos de seguridad y casos de abuso de la
aplicación.
Hay que diseñar la seguridad de la aplicación en base a los requisitos de seguridad y
casos de abuso de la fase 1 y de los principios de seguridad: autenticación,
autorización, control de accesos a recursos, cifrado de datos, seguridad en
profundidad para asegurar el no repudio, confidencialidad e integridad de datos, etc.
Se implementa el código de la aplicación siguiendo buenas prácticas de desarrollo
seguro como son la validación de las entradas y salidas de la aplicación, gestión de
errores, etc.
Se prueba la seguridad del código y funcional de seguridad de la aplicación con
técnicas de caja blanca y de caja negra. Estas pruebas pueden conducir a un ciclo
volviendo a la primera fase para definir nuevos requisitos o redefinir los existentes
para solucionar problemas encontrados.
Se despliega la aplicación y se prueba mediante test funcionales de seguridad y de
penetración.
En la fase de producción de la aplicación online, las prácticas de seguridad que se
llevan a cabo corresponden con las operaciones de seguridad del ciclo de vida de
desarrollo de aplicaciones mencionado anteriormente. Tienen que ver con continuar
asegurando una correcta configuración de todos los elementos y partes que
intervienen en la aplicación como son:
o Administración de las configuraciones de los parámetros que afectan a la
seguridad de toda la aplicación, contenidos en los archivos correspondientes al
servidor de aplicaciones, aplicación y base de datos.
o Gestión y administración de la autenticación, autorización y control de accesos.
o PKI para gestión de certificados digitales: Establecimiento de conexiones seguras.
o Política de gestión de contraseñas. Monitorización continua, auditoría y gestión
de logs: SIEM, IDS, IPS, Firewall de red, etc.
o Mecanismos de protección externos como firewall de aplicaciones web (WAF), de
bases de datos, firewalls XML o herramientas de protección de vulnerabilidades
en tiempo real (RASP) que ofrecen ya varias empresas como Fortify HP
(SecuirtyScope) o IBM (Appscan standard editon IAST).
o Gestión de backups y de desastres. Centro de respaldo.
Material complementario
Lecciones magistrales
No dejes de leer…
Henderson, C. (2006). Building Scalable Web Sites. (pp. 6-26). O'Reilly Media, Inc.
TEMA 1 – Lo + recomendado 15
Seguridad en Aplicaciones en Línea
Seguridad en AJAX
Ajax Security Basics y Book excerpt: Jump into AJAX development. Se revisan aspectos
de seguridad de este tipo de aplicaciones y la se introduce la forma de solucionarlos.
Accede a los documentos desde el aula virtual o a través de las siguientes direcciones web:
http://www.symantec.com/connect/articles/ajax-security-basics
http://www.javaworld.com/javaworld/jw-08-2006/jw-0807-ajax.html
Accede a los documentos desde el aula virtual o a través de las siguientes direcciones web:
https://www.iad.gov/iad/library/ia-guidance/security-
configuration/applications/deploying-and-securing-google-chrome-in-a-windows-
enterprise.cfm
http://isp.netscape.com/
No dejes de ver…
TEMA 1 – Lo + recomendado 16
Seguridad en Aplicaciones en Línea
A fondo
Arquitectura J2EE
JSON
Ajax
Webgrafía
Página web del proyecto abierto para Seguridad de las Aplicaciones Web. En su página
web se menciona su propósito:
Bibliografía
Cannings, R., Dwivedi, H. y Lackey, Z. (2008) Hacking exposed web applications. Web
2.0. Mcgraw Hill.
Chess B. and West, J. (2007). Secure Programming with Static Analysis Addison-
Wesley Software Security Series.
Connolly, G. M.; Akin, M.; Goyal, A.; Howlett, R.; Perrins, M. (2008). Building
Dynamic Ajax Applications Using WebSphere Feature Pack for Web 2.0. IBM
Redbooks
Silic, M.; Krolo, J. and Delac, G. (2010). Security Vulnerabilities in Modern Web
Browser Architecture. Faculty of Electrical Engineering and Computing, University of
Zagreb. Croatia
Actividades
Descripción de la actividad
Pautas de elaboración
Esta actividad sobre seguridad en aplicaciones Ajax abarca los problemas de seguridad
que tienen este tipo de aplicaciones, que caen en la categoría denominada rich internet
applications y en las posibles soluciones a los mismos. Hay que consultar cuantas
fuentes relativas al tema se considere y sintetizar la información relevante sin limitarse
a copiar el contenido de alguna de ellas.
Criterios de valoración
TEMA 1 – Actividades 21
Seguridad en Aplicaciones en Línea
Test
TEMA 1 – Test 22
Seguridad en Aplicaciones en Línea
TEMA 1 – Test 23
Seguridad en Aplicaciones en Línea
TEMA 1 – Test 24