Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) [email protected] Jesús...

18
Procesos para un Procesos para un desarrollo seguro desarrollo seguro Marino Posadas (Alhambra- Marino Posadas (Alhambra- Eidos) Eidos) [email protected] [email protected] Jesús Villalobos (Certia Jesús Villalobos (Certia [email protected]

Transcript of Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) [email protected] Jesús...

Page 1: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

Procesos para un Procesos para un desarrollo segurodesarrollo seguro

Marino Posadas (Alhambra-Marino Posadas (Alhambra-Eidos)Eidos)[email protected]@mvps.org

Jesús Villalobos (Certia)Jesús Villalobos (Certia)[email protected]

Page 2: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

AgendaAgenda

El Ciclo de Vida desde la seguridadEl Ciclo de Vida desde la seguridadEl Modelo de AmenazasEl Modelo de Amenazas

La estrategia de defensa: SD3+CLa estrategia de defensa: SD3+C

Herramientas para el desarrollo Herramientas para el desarrollo seguroseguro

Visual Studio 2005Visual Studio 2005ASP.NET 2.0ASP.NET 2.0

Visual Studio Team SystemVisual Studio Team System

Page 3: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

El ciclo de vida desde la El ciclo de vida desde la seguridadseguridad

La ventaja del atacante y el dilema La ventaja del atacante y el dilema del defensordel defensor

El Modelo de AmenazasEl Modelo de AmenazasMetodologíaMetodología

SD3+CSD3+C

STRIDESTRIDE

La directiva La directiva DREAD DREAD como apoyo al como apoyo al modelomodelo

Implantación de estrategias de defensaImplantación de estrategias de defensa

Page 4: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

Herramientas para el desarrollo Herramientas para el desarrollo seguroseguro

Herramientas para el desarrollo Herramientas para el desarrollo seguroseguro

Visual Studio 2005 y ASP.NET 2.0Visual Studio 2005 y ASP.NET 2.0MembershipMembership

ProfilesProfiles y Roles y Roles

DEMODEMO

Visual Studio Team SystemVisual Studio Team SystemArquitectura segura por defectoArquitectura segura por defecto

Principios de diseño segurosPrincipios de diseño seguros

DEMODEMO

Page 5: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

La ventaja del atacante y el La ventaja del atacante y el dilema del defensordilema del defensor

HowardHoward y y LeblancLeblanc ejemplifican ejemplifican perfectamente el problema en estos cuatro perfectamente el problema en estos cuatro principiosprincipios

El que defiende tiene que defender todos El que defiende tiene que defender todos los puntos; los puntos; el atacante puede seleccionar el atacante puede seleccionar el más débilel más débil

El defensor sólo puede defenderse de El defensor sólo puede defenderse de ataques conocidos; ataques conocidos; el atacante puede el atacante puede probar nuevas formas de ataqueprobar nuevas formas de ataque..

El defensor debe de estar en constante El defensor debe de estar en constante estado de vigilancia; estado de vigilancia; el atacante puede el atacante puede golpear a voluntadgolpear a voluntad..

El defensor debe jugar según las reglas; El defensor debe jugar según las reglas; el atacante puede jugar sucioel atacante puede jugar sucio..

Page 6: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

La iniciativa La iniciativa Trustworthy ComputingTrustworthy Computing

Microsoft y otros fabricantes se comprometieron Microsoft y otros fabricantes se comprometieron a conseguir cuatro principios en las aplicaciones:a conseguir cuatro principios en las aplicaciones:

SegurasSegurasNingún virus atentará contra nuestros sistemas o Ningún virus atentará contra nuestros sistemas o los volverá inutilizableslos volverá inutilizables

PrivadasPrivadasLa información personal no será expuesta de La información personal no será expuesta de ninguna forma, ni utilizada de forma que no sea la ninguna forma, ni utilizada de forma que no sea la explícitamente indicadaexplícitamente indicada

FiablesFiablesCuando instalemos un programa, no provocará Cuando instalemos un programa, no provocará efectos colaterales sobre otro software instaladoefectos colaterales sobre otro software instalado

Integridad de negocioIntegridad de negocioMi proveedor de servicios responderá rápida y Mi proveedor de servicios responderá rápida y efectivamente cuando informo de un problemaefectivamente cuando informo de un problema

Fruto de ello, es el Modelo de Amenazas y sus Fruto de ello, es el Modelo de Amenazas y sus recomendacionesrecomendaciones

Page 7: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

Estrategias de defensa: SD3 + CEstrategias de defensa: SD3 + C

Seguro por Seguro por DDiseñoiseñoNinguna parte de la aplicación queda fuera del control Ninguna parte de la aplicación queda fuera del control de seguridadde seguridad

Seguro por Seguro por DDefectoefectoLa aplicación recién instalada tiene un La aplicación recién instalada tiene un comportamiento suficientemente segurocomportamiento suficientemente seguro

Un ejemplo, es el gestor de áreas de exposición de Un ejemplo, es el gestor de áreas de exposición de

SQL Server 2005SQL Server 2005 Seguro en la Seguro en la DDistribuciónistribución

Informar al usuario sobre la seguridad de la aplicaciónInformar al usuario sobre la seguridad de la aplicaciónMecanismos de modificación de las características de Mecanismos de modificación de las características de seguridadseguridadCrear parches de seguridad tan pronto como se Crear parches de seguridad tan pronto como se detecte una nueva vulnerabilidaddetecte una nueva vulnerabilidad

Seguro en las Seguro en las CComunicacionesomunicaciones

Page 8: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

El Modelo de Amenazas (El Modelo de Amenazas (Threat ModelThreat Model))

La metodología a seguir puede La metodología a seguir puede establecerse en 4 fases:establecerse en 4 fases:

Identificar activos de la aplicaciónIdentificar activos de la aplicación

Crear información general sobre la Crear información general sobre la arquitecturaarquitectura

Descomponer la aplicaciónDescomponer la aplicación

Identificar, documentar y clasificar las Identificar, documentar y clasificar las amenazas amenazas

Page 9: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

El Modelo de Amenazas (El Modelo de Amenazas (Threat ModelThreat Model))

¿Qué tipos de amenazas existen?¿Qué tipos de amenazas existen?

Modelo STRIDEModelo STRIDESSpoofing poofing

TTampering ampering

RRepudiationepudiation

IInformation Disclosurenformation Disclosure

DDenial of Serviceenial of Service

EElevation of privilegeslevation of privileges

Evaluación del riesgoEvaluación del riesgo Riesgo = Probabilidad * Daños potencialesRiesgo = Probabilidad * Daños potenciales

Page 10: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

El Modelo de Amenazas (El Modelo de Amenazas (Threat ModelThreat 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.

Page 11: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

El Modelo de Amenazas (El Modelo de Amenazas (Threat ModelThreat Model))

Recomendaciones Microsoft para la Recomendaciones Microsoft para la defensadefensa

Adoptar el principio de privilegios Adoptar el principio de privilegios mínimosmínimos

Usar las defensas a fondoUsar las defensas a fondo

No confiar en los datos introducidos por No confiar en los datos introducidos por el usuarioel usuario

Utilizar opciones predeterminadas Utilizar opciones predeterminadas seguras seguras

No depender de la seguridad por medio No depender de la seguridad por medio de la oscuridadde la oscuridad

Page 12: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

El Modelo de Amenazas (El Modelo de Amenazas (Threat ModelThreat Model))

Validar todo acceso al sistemaValidar todo acceso al sistema

Asumir que los sistemas externos no son segurosAsumir que los sistemas externos no son seguros

Reducir el área de exposiciónReducir el área de exposición

Cometer errores de forma seguraCometer errores de forma segura

No olvidar que el alcance de la seguridad lo define su punto más débilNo olvidar que el alcance de la seguridad lo define su punto más débil

Si no se utiliza, deshabilitarloSi no se utiliza, deshabilitarlo

Page 13: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

Implantación de estrategias de defensa 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

Page 14: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

Implantación en la práctica 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

Page 15: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

Implantación en la práctica 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

Page 16: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

Membership y Roles en ASP.NET 2.0Análisis de código en Team Foundation Server

Page 17: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.

Información adicionalInformación adicional

Mas información en:Mas información en:www.ElAveFenix.netwww.ElAveFenix.netwww.certia.netwww.certia.netmsdn.microsoft.com/security/vs2005security/msdn.microsoft.com/security/vs2005security/default.aspxdefault.aspxwww.microsoft.com/securitywww.microsoft.com/securitywww.microsoft.com/security/msrc/default.mspxwww.microsoft.com/security/msrc/default.mspx (Microsoft Security Response Center)(Microsoft Security Response Center)www.microsoft.com/spain/msdnwww.microsoft.com/spain/msdnwww.microsoft.com/technet/security/bestprac/www.microsoft.com/technet/security/bestprac/secwinin.mspx (Security Windows Iniciative)secwinin.mspx (Security Windows Iniciative)www.leastprivilege.com (Dominique Baier)www.leastprivilege.com (Dominique Baier)www.windowsecurity.com/www.windowsecurity.com/

Page 18: Procesos para un desarrollo seguro Marino Posadas (Alhambra-Eidos) mposadas@mvps.org Jesús Villalobos (Certia) jvillalobos@certia.net.