Auditoria en aplicaciones web

37
Seguridad en el Desarrollo de Software Metodología para la auditoría de seguridad de aplicaciones web. Universidad Pontificia de Salamanca Máster en Ingeniería del Software curso 2011/12

description

Auditoria en aplicaciones web

Transcript of Auditoria en aplicaciones web

Page 1: Auditoria en aplicaciones web

Seguridad en el Desarrollo de Software

Metodología para la auditoría de seguridad de aplicaciones web.

Universidad Pontificia de Salamanca

Máster en Ingeniería del Software curso 2011/12

Page 3: Auditoria en aplicaciones web

32012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Introducción y la Propuesta. Introducción a las aplicaciones web y la seguridad. Amenazas y vulnerabilidades. Medidas de seguridad y buenas prácticas. Características principales de las aplicaciones web. Metodología. Caso de estudio.

Agenda.

Seguridad en el Desarrollo de Software

Page 4: Auditoria en aplicaciones web

Introducción y la Propuesta.

Se propone un estudio científico que tenga como objetivo identificar las características y funcionalidades más comunes presentes en aplicaciones web y determinar a cuales vulnerabilidades y amenazas de seguridad están expuestas.

Elaborar una metodología para la auditoría de seguridad en las aplicaciones web, que permita identificar las características y funcionalidades que posee una determinada aplicación web, para verificar la existencia o no, de amenazas y vulnerabilidades, y así poder corregirlas. Luego aplicar la metodología en diferentes aplicaciones web, con el fin de identificar sus vulnerabilidades y amenazas e implementar las medidas de seguridad correctivas correspondientes.

Seguridad en el Desarrollo de Software

42012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 5: Auditoria en aplicaciones web

Propuesta (I).

Identificar las características y funcionalidades más comunes presentes en aplicaciones web.

Determinar a cuales vulnerabilidades y amenazas de seguridad están expuestas

Determinar las medidas de seguridad y controles respectivos

Elaborar una metodología para la auditoría de seguridad en las aplicaciones web

Aplicar la metodología en diferentes aplicaciones web

Implementar medidas de seguridad en las aplicaciones web estudiadas

Seguridad en el Desarrollo de Software

52012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 6: Auditoria en aplicaciones web

Propuesta (II).

Identificar características principales de las aplicaciones web

Determinar vulnerabilidades yamenazas de las características

de las aplicaciones web

Elaborar una metodología parala auditoría de seguridad en

aplicaciones web

Aplicar la metodología para identificar vulnerabilidades y

amenazas en aplicaciones web

Recomendar medidas ycontroles de seguridad en las

aplicaciones web

Seguridad en el Desarrollo de Software

62012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 7: Auditoria en aplicaciones web

Alcance.• Gran número de vulnerabilidades,

amenazas y características.

• …está en constante aumento.• Se consideran las más importantes y

comunes.• Todos los aspectos de las aplicaciones

web…• Los conceptos y principios

comprendidos son generales.

Seguridad en el Desarrollo de Software

72012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 8: Auditoria en aplicaciones web

8

Introducción a las aplicaciones web y la seguridad

Capas de una aplicación web desde el punto de vista de la seguridad

Capas de una aplicación web:

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 9: Auditoria en aplicaciones web

9

Amenazas y Vulnerabilidades

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 10: Auditoria en aplicaciones web

10

Amenazas y Vulnerabilidades

Capa Física: Deficiente control de acceso a la sala de

servidores

Catástrofes naturales, accidentes y Fallas

Capa de Red: Deficiente protección de los datos en el

tránsito

Acceso a recursos sensibles

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 11: Auditoria en aplicaciones web

11

Amenazas y Vulnerabilidades

Capa de SO y Servicios:Deficiente definición de permisos

(acceso archivos y ejecución)Utilizar versiones viejas e inseguras de

los servicios

Capa de Aplicación:Ataques de fuerza brutaInyección de Código SQLCross Site Scripting

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 12: Auditoria en aplicaciones web

12

Medidas de seguridad y buenas prácticas

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 13: Auditoria en aplicaciones web

13

Medidas de seguridad y buenas prácticas

Capa de Red:Configurar una DMZConfigurar una VPN

Capa Física:Controles de acceso a la sala de

servidoresSistemas de detección y control humedad, temperatura, humo, extintores, etc.

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 14: Auditoria en aplicaciones web

14

Medidas de seguridad y buenas prácticas

Uso de Cortafuegos para crear una DMZSeguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 15: Auditoria en aplicaciones web

15

Medidas de seguridad y buenas prácticas

Capa de SO y Servicios:Estricta definición de permisosAntivirusChequeo de integridad de binarios

Capa de Aplicación:Filtrar la entrada de datos (Filter Input)Escapado de salida (escape output)Uso de herramientas para distinguir

autómatas de humanos (CAPTCHA)

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 16: Auditoria en aplicaciones web

16

Medidas de seguridad y buenas prácticas

Uso de captcha para prevenir automatización

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 17: Auditoria en aplicaciones web

17

Características principales de las aplicaciones web

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 18: Auditoria en aplicaciones web

18

Características principales de las aplicaciones web

Capa Física:Hardware propio de la empresaHardware arrendado a terceros

(hosting)

Capa Red:Equipos de acceso público a través de

la redEquipos de acceso privado

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 19: Auditoria en aplicaciones web

19

Características principales de las aplicaciones web

Capa Sistema Operativo y Servicios:Sistema OperativoServidores de Bases de datos

Capa Aplicación:Inicio de sesión de usuario vía

formulario HTMLRecuperación de contraseñaAdministradores remotosRegistro de usuarios en línea

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 20: Auditoria en aplicaciones web

20

Metodología para la auditoría de seguridad en aplicaciones web

Basada en las principales características de las aplicaciones web

Metodología

ME

TO

DO

LO

GÍA

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 21: Auditoria en aplicaciones web

21

Metodología

Objetivo principal

Capa FísicaCaracterística 1Característica 2Capa RedCaracterística …Característica …Capa SO y ServiciosCaracterística …Característica …Capa AplicaciónCaracterística n-1Característica n

Verificación y Comprobación

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 22: Auditoria en aplicaciones web

22

Metodología

Confidencialidad

GRUPO AUDITOR

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 23: Auditoria en aplicaciones web

23

Herramientas y conocimientos

necesarios: Conocimientos en el área de aplicaciones

web Un mínimo de comprensión de los tópicos en

cada capa Uso de herramientas y técnicas modelación: ej.

Diagramas UML, DFD, Entidad Relación

Herramientas de software: Sniffers, Escáneres de Vulnerabilidades Herramientas propias

No se es específico a la inclusión o uso de alguna herramienta

Metodología

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 24: Auditoria en aplicaciones web

24

Aspectos fundamentales Si la aplicación web no es segura, entonces toda la

información sensible esta en grave peligro. Los sitios web y sus aplicaciones web relacionadas

deben estar disponibles 24 x 7 para proveer un buen servicio a sus clientes, empleados y proveedores.

Los Cortafuegos y SSL no proveen protección contra vulnerabilidades o amenazas de aplicaciones.

Los hackers prefieren tener acceso a data sensible ya que pueden vender esta información por grandes sumas de dinero.

Ocultar objetos no garantiza su seguridad.

Metodología

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 25: Auditoria en aplicaciones web

25

Etapas de la metodología

Planificación Ejecución de la auditoría Comunicación de resultados Seguimiento

Metodología

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 26: Auditoria en aplicaciones web

26

Planificación: Objetivos y Alcance

Metodología

TODO

PARTE

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 27: Auditoria en aplicaciones web

27

Ejecución de la auditoría: Levantamiento y Verificación

Enfoque: Verificar presencia de Vulnerabilidades Comprobar existencia o no, y deficiencia de

Controles AMBOS

Metodología

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 28: Auditoria en aplicaciones web

28

Ejecución de la auditoría: Levantamiento y Verificación

Metodología

?

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 29: Auditoria en aplicaciones web

29

Metodología

13.1. Inicio de Sesión de Usuario.Verificar existencia o no de vulnerabilidades en cuanto a:

13.1.1. Ataques de Fuerza bruta13.1.2. Abuso de funcionalidad13.1.3. Revelación de información13.1.4. Inyección de código o comandosVerificar existencia o no y deficiencia en cuanto a políticas y controles de:13.1.8. Captcha13.1.9. Filtrado de entrada13.1.10. Escapado de salida13.1.11. Conexiones seguras13.1.12. Manejo de sesión apropiado13.1.13. Enmascarado de información sensible

Fragmento: ETAPA 2 – Verificación de capa aplicación

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 30: Auditoria en aplicaciones web

30

Seguimiento: verificación

Metodología

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 31: Auditoria en aplicaciones web

31

CONCLUSIONES

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 32: Auditoria en aplicaciones web

32

Conclusiones

Si un aspecto tiene fallas, toda la aplicación esta en riesgo

Una metodología general Se requiere total colaboración por

parte de los diferentes equipos de trabajo

Dificultades para aplicar la metodología Es un trabajo minucioso y consume

gran cantidad de tiempo El grupo auditor requiere ser

multidisciplinario Importancia de las políticas sobre las

prácticas El trabajo de auditoría es un proceso

continuo Seguridad en las personas

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 33: Auditoria en aplicaciones web

33

Consideraciones

Es una metodología no comercialEs muy poca o inexistente la

información sobre las características comunes de las aplicaciones web

No siempre es posible constatar la información sobre la arquitectura física y de red

Limitaciones al aplicar la metodología asociadas al conocimiento y dominio en cada una de las áreas que comprende la misma

Entender el código de otras personasSe debe aplicar periódicamente

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 34: Auditoria en aplicaciones web

34

Aportes del Trabajo

Definición de un esquema por capas desde el punto de vista de la seguridad para las aplicaciones web

Recopilación de vulnerabilidades y amenazas en las aplicaciones web.

Recopilación de medidas de seguridad en las aplicaciones web.

Definición y clasificación de las principales características en las aplicaciones web y sus implicaciones de seguridad

Metodología para la auditoría de seguridad de Aplicaciones Web

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 35: Auditoria en aplicaciones web

35

Trabajos a Futuro

Extender y ampliar el conjunto de características comunes en las aplicaciones web

Recopilar las nuevas vulnerabilidades y amenazas en las aplicaciones web

Recopilar las nuevas medidas de seguridad en las aplicaciones web

Realizar adaptaciones para arquitecturas y lenguajes específicos de la metodología para la auditoría de seguridad de Aplicaciones Web

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 36: Auditoria en aplicaciones web

36

¿PREGUNTAS?

Seguridad en el Desarrollo de Software

2012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid

Page 37: Auditoria en aplicaciones web

Metodología para la auditoría de seguridad de aplicaciones web.

Gracias!

Seguridad en el Desarrollo de Software

372012, Juan Carlos Pérez , Universidad Pontificia de Salamanca en Madrid