Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net
Agenda El Ciclo de Vida desde la seguridad El Modelo de Amenazas La estrategia de defensa: SD3+C Herramientas para el desarrollo seguro Visual Studio 2005 ASP.NET 2.0 Visual Studio Team System
El ciclo de vida desde la seguridad La ventaja del atacante y el dilema del defensor El Modelo de Amenazas Metodología SD3+C STRIDE La directiva DREAD como apoyo al modelo Implantación de estrategias de defensa
Herramientas para el desarrollo seguro Visual Studio 2005 y ASP.NET 2.0 Membership Profiles y Roles DEMO Visual Studio Team System Arquitectura segura por defecto Principios de diseño seguros
La ventaja del atacante y el dilema del defensor Howard y Leblanc ejemplifican perfectamente el problema en estos cuatro principios El que defiende tiene que defender todos los puntos; el atacante puede seleccionar el más débil El defensor sólo puede defenderse de ataques conocidos; el atacante puede probar nuevas formas de ataque. El defensor debe de estar en constante estado de vigilancia; el atacante puede golpear a voluntad. El defensor debe jugar según las reglas; el atacante puede jugar sucio.
La iniciativa Trustworthy Computing Microsoft y otros fabricantes se comprometieron a conseguir cuatro principios en las aplicaciones: Seguras Ningún virus atentará contra nuestros sistemas o los volverá inutilizables Privadas La información personal no será expuesta de ninguna forma, ni utilizada de forma que no sea la explícitamente indicada Fiables Cuando instalemos un programa, no provocará efectos colaterales sobre otro software instalado Integridad de negocio Mi proveedor de servicios responderá rápida y efectivamente cuando informo de un problema Fruto de ello, es el Modelo de Amenazas y sus recomendaciones
Estrategias de defensa: SD3 + C Seguro por Diseño Ninguna parte de la aplicación queda fuera del control de seguridad Seguro por Defecto La aplicación recién instalada tiene un comportamiento suficientemente seguro Un ejemplo, es el gestor de áreas de exposición de SQL Server 2005 Seguro en la Distribución Informar al usuario sobre la seguridad de la aplicación Mecanismos de modificación de las características de seguridad Crear parches de seguridad tan pronto como se detecte una nueva vulnerabilidad Seguro en las Comunicaciones
El Modelo de Amenazas (Threat Model) La metodología a seguir puede establecerse en 4 fases: Identificar activos de la aplicación Crear información general sobre la arquitectura Descomponer la aplicación Identificar, documentar y clasificar las amenazas
El Modelo de Amenazas (Threat Model) ¿Qué tipos de amenazas existen? Modelo STRIDE Spoofing Tampering Repudiation Information Disclosure Denial of Service Elevation of privileges Evaluación del riesgo Riesgo = Probabilidad * Daños potenciales
El Modelo de Amenazas (Threat Model) ¿Cómo medir los dos parámetros de forma imparcial? Mediante la directiva DREAD Daño Potencial Facilidad de Reproducción Capacidad de Explotación Usuarios Afectados Dificultad para su Descubrimiento.
El Modelo de Amenazas (Threat Model) Recomendaciones Microsoft para la defensa Adoptar el principio de privilegios mínimos Usar las defensas a fondo No confiar en los datos introducidos por el usuario Utilizar opciones predeterminadas seguras No depender de la seguridad por medio de la oscuridad
El Modelo de Amenazas (Threat Model) Validar todo acceso al sistema Asumir que los sistemas externos no son seguros Reducir el área de exposición Cometer errores de forma segura No olvidar que el alcance de la seguridad lo define su punto más débil Si no se utiliza, deshabilitarlo
Implantación de estrategias de defensa Autenticación Seguridad en la puerta Autorización Permisos a una identidad Flujo de Identidad Suplantación Auditoria Seguimiento de actividades
Implantación en la práctica ¿Cómo se articulan todas estas propuestas en una aplicación? ASP.NET 2.0 Modelo de proveedores Membership y Roles Autenticación y Autorización automatizadas Nuevo conjunto de controles especializados
Implantación en la práctica ¿Cómo gestionar la seguridad de forma global? Control del Ciclo de Vida Team System: Ayuda desde el diseño Herramientas especiales de “testing” Comprobación de seguridad en la toda la estructura Programación y seguimiento de los ciclos de pruebas
Membership y Roles en ASP.NET 2.0 Análisis de código en Team Foundation Server
Información adicional Mas información en: www.ElAveFenix.net www.certia.net msdn.microsoft.com/security/vs2005security/default.aspx www.microsoft.com/security www.microsoft.com/security/msrc/default.mspx (Microsoft Security Response Center) www.microsoft.com/spain/msdn www.microsoft.com/technet/security/bestprac/secwinin.mspx (Security Windows Iniciative) www.leastprivilege.com (Dominique Baier) www.windowsecurity.com/