Post on 23-Sep-2018
c. Santander, 101. Edif. A. 2º I E-08030 Barcelona (Spain) I Tel.: +34 93 305 13 18 I Fax: +34 93 278 22 48
Pº. de la Castellana, 164-166. Entlo. 1ª I E-28046 Madrid (Spain) I Tel: +34 91 788 57 78 I Fax: +34 91 788 57 01
info@isecauditors.com I www.isecauditors.com
Diseño de aplicaciones web siguiendo el concepto hack-resilient
Vicente Aguilera Díaz 21/06/2011 – Barcelona
Internet Security Auditors 22/06/2011 – Madrid
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 2
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
Agenda
1. Concepto hack-resilient
2. La importancia de la seguridad en la capa de aplicación
3. Áreas clave en la seguridad de aplicaciones
4. Conclusiones y recomendaciones
5. Referencias
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 3
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
1│
Concepto hack-resilient
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 4
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 5
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
¿Qué entendemos como
software seguro?
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 6
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
2│
La importancia de la seguridad en
la capa de aplicación
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 7
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
¿Por qué ha cobrado tanta relevancia?
• Proliferación de modelos de negocio en la web.
• Las aplicaciones web resultan muy atractivas.
• Según Gartner:
• El 66% de las aplicaciones son vulnerables.
• El 75% de los ataques se focalizan en la capa de
aplicación.
• Nuevos requerimientos normativos.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 8
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
¿Por qué ha cobrado tanta relevancia?
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 9
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
Todo es posible en la Web…
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 10
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
¿Qué podemos hacer para protegernos?
• Conocer las amenazas y las soluciones
• Definir niveles de riesgo/confianza
• Verificar los requerimientos de seguridad
• Adoptar una iniciativa de seguridad en el ciclo de vida
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 11
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
OWASP ASVS Application Security Verification Standard
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 12
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
3│
Áreas clave en la seguridad de
aplicaciones
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 13
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
Áreas con requerimientos de seguridad
1 Arquitectura de seguridad
2 Autenticación
3 Gestión de sesiones
4 Control de acceso
5 Validación de entradas
6 Codificación de salida
7 Criptografía
8 Gestión de errores y logging
9 Protección de datos
10 Seguridad en la comunicación
11 Seguridad en HTTP
12 Configuración de seguridad
13 Búsqueda de código malicioso
14 Seguridad interna
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 14
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A1. Arquitectura de seguridad
• Thinking Evil™
• Establecer un conjunto de principios y máximas de
seguridad.
• Contemplar los aspectos de seguridad en la
documentación.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 15
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A2. Autenticación
• Autenticación de múltiples factores.
• Negar el acceso a procesos automáticos.
• Utilizar controles anti-fraude y monitorizar las alertas.
• Controles de autenticación centralizados.
• No relajar los controles (operativas de gestión de
cuentas).
• Informar del último acceso.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 16
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A3. Gestión de sesiones
• No reinventar la rueda.
• No confiar en los identificadores de sesión recibidos.
• Establecer un tiempo de vida (inactividad, absoluto).
• Destruir las sesiones en la desconexión (logout).
• Proteger y regenerar los identificadores de sesión.
• Asociar los identificadores de sesión con otro token.
• Utilizar atributos de seguridad en las cookies.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 17
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A4. Control de acceso
• Recoger los requerimientos en la política de seguridad.
• Elaborar una matriz de control de acceso.
• Limitar el acceso a los recursos en función de la
identidad del usuario y su rol.
• Evitar que el mecanismo sea sobrepasado.
• Restricciones sobre las operativas de administración.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 18
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A5. Validación de entradas
• Sistema centralizado.
• Canonicalización de forma previa a la validación.
• En caso de fallo, rechazar los datos de entrada.
• Establecer el charset (como UTF-8).
• Validaciones de seguridad siempre en la parte del
servidor.
• Firewall de aplicación.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 19
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A6. Codificación de salida y escape
• Conocer el contexto.
• Los controles deben implementarse en la parte del
servidor.
• Escapar/codificar los caracteres inseguros.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 20
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A7. Criptografía
• Política explícita de gestión de claves.
• Utilizar módulos criptográficos aprobados y validados
contra estándares (FIPS 140-2).
• Almacenar contraseñas de forma segura.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 21
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A8. Gestión de errores y logging
• Gestión de errores estructurada vs funcional.
• Mensajes de error no detallados.
• En caso de fallo, ir a un estado seguro.
• Sincronizar los componentes de logging.
• Los eventos relevantes deben ser registrados.
• Proteger los logs.
• Apoyarse en herramientas de auditoría de log para su
análisis.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 22
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A9. Protección de datos
• Establecer una política que defina como controlar el
acceso.
• Eliminar la información tras el tiempo de retención de
datos.
• Tecnologías de cifrado, tokenización, firewalls de base
de datos.
• Conocer las normativas de cumplimiento (PCI DSS,
LOPD, PII, HIPAA, etc.)
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 23
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A10. Seguridad en la comunicación
• Establecer conexiones TLS y no permitir conexiones
inseguras.
• Autenticar las conexiones a sistemas externos
(principio de mínimo privilegio).
• Los errores en las conexiones TLS (backend) deben
ser registrados.
• Seguir un estándar en las implementaciones TLS.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 24
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A11. Seguridad en HTTP
• Analizar los usos de las cabeceras HTTP.
• No transmitir información innecesaria.
• No utilizar la cabecera HTTP «Referer» en validaciones
de seguridad.
• Únicamente habilitar métodos HTTP seguros.
• Utilizar tokens asociados a las cookies de sesión.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 25
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A12. Configuración de seguridad
• Almacenar en una ubicación protegida.
• Sin el acceso a la configuración no permitir el acceso a
la aplicación.
• Registrar los cambios en la configuración.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 26
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A13. Búsqueda de código malicioso
• Verificar la integridad del código.
• Emplear tecnologías que permitan detectar malware.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 27
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
A14. Seguridad interna
• Interfaces simples.
• Ofrecer protección sobre los recursos compartidos.
• Proteger la información y políticas utilizadas por los
controles de acceso.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 28
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
4│
Conclusiones y recomendaciones
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 29
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
Conclusiones
• Necesitamos crear software seguro.
• Aplicación segura ≠ código seguro.
• Debemos conocer todos los riesgos y cómo mitigarlos.
• Incrementar la inversión en la protección de la capa de
aplicación.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 30
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
Recomendaciones
• Clasificar las aplicaciones y definir requerimientos
mínimos de seguridad.
• Verificar el cumplimiento de los requerimientos de
seguridad.
• Crear el software pensado en los casos de abuso.
• Huir de la solución «todo en uno».
• Seguir el principio de defensa en profundidad.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 31
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
Recomendaciones
• Identificar los marcos regulatorios. Ayudar a su
cumplimiento.
• Otorgar a los requerimientos de seguridad la misma
prioridad que a los requerimientos funcionales.
• Mantenerse informado sobre las amenazas existentes.
• Consultar las soluciones tecnológicas sin menospreciar
las open-source.
• Potenciar la cultura de la seguridad en la organización.
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 32
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
5│
Referencias
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 33
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
Referencias
• Improving Web Application Security:
• Business Models on the Web:
• OWASP Application Security Verification Standard:
https://www.owasp.org/index.php/Category:OWASP_Application_S
ecurity_Verification_Standard_Project
http://msdn.microsoft.com/en-us/library/ff649874.aspx
http://digitalenterprise.org/models/models.html
• PCI Data Security Standard
https://www.pcisecuritystandards.org
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 34
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
Referencias
• Controles técnicos de seguridad para la protección de
aplicaciones web (SIC, nº 94. 04/2011):
http://www.isecauditors.com/downloads/prensa/downloads/prensa/
SIC94_Seguridad_Aplicaciones_OWASP.pdf
• Servicio Vigilancia Anti-Malware (SIC, nº 83. 02/2009)
http://www.isecauditors.com/downloads/prensa/SIC-
83_Servicio_Vigilancia_Anti_Malware.pdf
• Fundamentos de tokenización y su aplicación en el
cumplimiento de PCI DSS (Red Seguridad, nº 49. 11/10)
http://www.isecauditors.com/downloads/prensa/RedSeguridad_49_
Tokenizacion.pdf
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 35
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
?
dudas / comentarios / sugerencias
¡Muchas gracias!
© I n t e r n e t S e c u r i t y A u d i t o r s • J u n i o 2 0 1 1 • P. 36
Diseño de aplicaciones web siguiendo
el concepto hack-resilient
Su Seguridad es Nuestro Éxito
Vicente Aguilera Díaz Director Departamento Auditoría
Internet Security Auditors vaguilera@isecauditors.com
c/ Santander, 101. Edif. A. 2º
E-08030 Barcelona (Spain)
Tel.: +34 93 305 13 18
Fax: +34 93 278 22 48
Pº. de la Castellana, 164-166. Entlo. 1ª
E-28046 Madrid (Spain)
Tel.: +34 91 788 57 78
Fax: +34 91 788 57 01
www.isecauditors.com