View
229
Download
0
Category
Preview:
DESCRIPTION
Internet Security Auditors estuvo presente en el Respuestas SIC de Junio de 2011. Vicente Aguilera, director de auditoría de Internet Security Auditors y presidente del capítulo español de la OWASP, realizó una presentación destacando los aspectos más importantes del desarrollo seguro de aplicaciones. También desgranó los contenidos más relevantes del marco de ciclo de vida de desarrollo seguro de aplicaciones esponsorizado por la OWASP, OWASP ASVS (Application Security Verification Standard).
Citation preview
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
Recommended