La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Recomendaciones para la escritura de código seguro

Presentaciones similares


Presentación del tema: "Recomendaciones para la escritura de código seguro"— Transcripción de la presentación:

1 Recomendaciones para la escritura de código seguro
MGB 2003 Recomendaciones para la escritura de código seguro Nombre Puesto Compañía © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

2 Qué trataremos Proceso de desarrollo seguro Modelos de amenazas
MGB 2003 Qué trataremos Proceso de desarrollo seguro Modelos de amenazas Mitigación del riesgo Recomendaciones de seguridad © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

3 Requisitos previos para la sesión
MGB 2003 Requisitos previos para la sesión Experiencia de desarrollo con Microsoft Visual Basic®, Microsoft Visual C++® o C# Nivel 200 © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

4 Orden del día Proceso de desarrollo seguro Modelos de amenazas
MGB 2003 Orden del día Proceso de desarrollo seguro Modelos de amenazas Mitigación del riesgo Recomendaciones de seguridad © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

5 Mejoras en proceso de desarrollo de aplicaciones
MGB 2003 Mejoras en proceso de desarrollo de aplicaciones Tenga en cuenta la seguridad Al comienzo del proceso Durante el desarrollo Durante la implementación En los hitos de revisión del software No deje de buscar errores de seguridad hasta el final del proceso de desarrollo © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

6 Estructura de seguridad SD3
MGB 2003 Estructura de seguridad SD3 SD3 Seguro por diseño Arquitectura y código seguros Análisis de amenazas Reducción de los puntos vulnerables Seguro de forma predeterminada Menor área expuesta a ataques Las características que no se usan están desactivadas de forma predeterminada Privilegios mínimos Protección: detección, defensa, recuperación y administración Proceso: guías de procedimientos y de arquitectura Usuarios: aprendizaje Seguro en implementación © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

7 Esquema temporal del desarrollo de productos seguros
MGB 2003 Esquema temporal del desarrollo de productos seguros Planes de prueba completos Diseños completos Concepto Código completo Envío Después del envío Pruebas de puntos vulnerables de seguridad Evaluar los conocimientos de seguridad al contratar integrantes del grupo Determinar los criterios de firma de seguridad Someter a revisión externa Analizar las amenazas Aprender y afinar Realizar la revisión del grupo de seguridad Entrenar a los integrantes del grupo Probar la alteración de datos y los privilegios mínimos Resolver problemas de seguridad, comparar el código con las directrices de seguridad =continuado © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

8 MGB 2003 Seguro por diseño Aumente los conocimientos de seguridad del grupo de diseño Ofrezca aprendizaje de forma continuada Cambio de actitud: no es válido decir “aquello que no sé no me puede dañar” Aplique seguridad durante la fase de diseño Defina los objetivos de seguridad del producto Implemente la seguridad como una característica clave del producto Utilice los modelos de amenazas durante la fase de diseño © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

9 Orden del día Proceso de desarrollo seguro Modelos de amenazas
MGB 2003 Orden del día Proceso de desarrollo seguro Modelos de amenazas Mitigación del riesgo Recomendaciones de seguridad © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

10 Qué son los modelos de amenazas
MGB 2003 Qué son los modelos de amenazas La definición de modelos de amenazas es un análisis basado en la seguridad que: Ayuda a un grupo de producto a conocer los puntos más vulnerables del producto Evalúa las amenazas a una aplicación Trata de reducir los riesgos generales de seguridad Busca activos Descubre los puntos vulnerables Identifica amenazas Ayuda a constituir la base de las especificaciones del diseño de seguridad © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

11 Beneficios de la definición de modelos de amenazas
MGB 2003 Beneficios de la definición de modelos de amenazas Ayuda a conocer mejor la aplicación Ayuda a encontrar errores Identifica errores de diseño complejos Ayuda a integrar nuevos empleados Orienta los planes de pruebas de seguridad bien diseñados Amenaza Punto vulnerable Activo © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

12 El proceso de definición de modelos de amenazas
MGB 2003 El proceso de definición de modelos de amenazas Identificar activos 1 Crear información general sobre la arquitectura 2 Descomponer la aplicación 3 Identificar las amenazas 4 Documentar las amenazas 5 Clasificar las amenazas 6 Proceso de definición de modelos de amenazas © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

13 MGB 2003 Proceso de definición de modelos de amenazas Paso 1: identificar activos Cree una lista de activos que requieren protección, como: Datos confidenciales, por ejemplo las bases de datos de clientes Páginas Web Disponibilidad del sistema Cualquier elemento que, si se viera comprometido, pudiera impedir el funcionamiento correcto de la aplicación © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

14 MGB 2003 Proceso de definición de modelos de amenazas Paso 2: crear información general sobre la arquitectura Identificar lo que hace la aplicación Crear un diagrama de la arquitectura de la aplicación Identificar las tecnologías Permisos NTFS (Autenticación) Autorización de archivo Autorización de URL Funciones de .NET (Autenticación) Función definida por el usuario SSL (Privacidad/ Integridad) Límite de confianza Alice Mary Bob IIS Autenticación anónima Autenticación de formularios IPSec (Privacidad/Integridad) ASP.NET (Identidad de proceso) Microsoft Autenticación de Microsoft Windows® SQL Server™ © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

15 MGB 2003 Proceso de definición de modelos de amenazas Paso 3: descomponer la aplicación Descomponer la aplicación Crear un perfil de seguridad basado en áreas vulnerables tradicionales Examinar las interacciones entre diferentes subsistemas Utilizar diagramas DFD o UML Identificar los límites de confianza Identificar el flujo de datos Identificar los puntos de entrada Identificar el código privilegiado Documentar el perfil de seguridad © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

16 MGB 2003 Proceso de definición de modelos de amenazas Paso 4: identificar las amenazas Constituir el grupo Identificar las amenazas Amenazas de la red Amenazas del host Amenazas de las aplicaciones © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

17 MGB 2003 Proceso de definición de modelos de amenazas Identificar las amenazas con STRIDE Tipos de amenazas Ejemplos Suplantación Falsificar mensajes de correo electrónico Reproducir paquetes de autenticación AlTeración Alterar datos durante la transmisión Cambiar datos en archivos Repudio Eliminar un archivo esencial y denegar este hecho Adquirir un producto y negar que se ha adquirido DIvulgación de información Exponer información en mensajes de error Exponer código en sitios Web Denegación de servicio Inundar una red con paquetes de sincronización Inundar una red con paquetes ICMP falsificados Elevación de privilegios Aprovechar la saturación de un búfer para obtener privilegios en el sistema Obtener privilegios de administrador de forma ilegítima © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

18 MGB 2003 Proceso de definición de modelos de amenazas Identificar las amenazas mediante árboles de ataques 1.0 Ver datos de nóminas (I) 1.1 El tráfico no está protegido (Y) 1.2 Un intruso ve el tráfico 1.2.1 Rastrea al tráfico con el analizador de protocolos 1.2.2 Atiende al tráfico del enrutador No se han aplicado revisiones al enrutador (Y) El enrutador se ve comprometido Adivina la contraseña del enrutador Amenaza nº 1 (I) Ver datos de nóminas 1.1 El tráfico no está protegido 1.2 El intruso ve el tráfico 1.2.1 Rastrea el tráfico con el analizador de protocolos 1.2.2 Atiende al tráfico del enrutador No se han aplicado revisiones al enrutador El enrutador se ve comprometido Adivina la contraseña © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

19 MGB 2003 Proceso de definición de modelos de amenazas Paso 5: documentar las amenazas Documente las amenazas con una plantilla: Deje Riesgo en blanco (por ahora) Descripción de la amenaza Inserción de comandos SQL Destino de la amenaza Componente de acceso a datos Riesgo Técnicas de ataque El intruso anexa comandos SQL al nombre de usuario, que se utiliza para crear una consulta SQL Medidas preventivas Utilice una expresión regular para validar el nombre de usuario y utilice un procedimiento almacenado con parámetros para tener acceso a la base de datos © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

20 MGB 2003 Proceso de definición de modelos de amenazas Paso 6: clasificar las amenazas Utilice la fórmula: Riesgo = Probabilidad * Daños potenciales Utilice DREAD para clasificar las amenazas Daños potenciales  Capacidad de Reproducción  AprovEchamiento   Usuarios Afectados  Capacidad de Descubrimiento  © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

21 MGB 2003 Proceso de definición de modelos de amenazas Ejemplo: clasificar las amenazas Amenaza nº 1 (I) Ver datos de nóminas 1.1 El tráfico no está protegido 1.2 El intruso ve el tráfico 1.2.1 Rastrea el tráfico con el analizador de protocolos 1.2.2 Atiende al tráfico del enrutador No se han aplicado revisiones al enrutador El enrutador se ve comprometido Adivina la contraseña del enrutador Daños potenciales Usuarios afectados O bien, Daños Capacidad de reproducción Aprovechamiento Capacidad de descubrimiento Oportunidad © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

22 Código para un modelo de amenazas
MGB 2003 Código para un modelo de amenazas Utilice el modelo de amenazas como ayuda Determine las partes más “peligrosas” de la aplicación Asigne prioridades a los esfuerzos para aplicar seguridad Asigne prioridades a las revisiones continuadas del código Determine las técnicas de mitigación de amenazas que se emplearán Determine el flujo de datos © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

23 Orden del día Proceso de desarrollo seguro Modelos de amenazas
MGB 2003 Orden del día Proceso de desarrollo seguro Modelos de amenazas Mitigación del riesgo Recomendaciones de seguridad © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

24 Opciones de mitigación del riesgo
MGB 2003 Opciones de mitigación del riesgo Opción 1: No hacer nada Opción 2: Advertir al usuario Opción 3: Eliminar el problema Opción 4: Corregir el problema Vigilado © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

25 Proceso de mitigación del riesgo
MGB 2003 Proceso de mitigación del riesgo Identifique la categoría Por ejemplo: Suplantación Seleccione las técnicas Por ejemplo: Autenticación o Proteger los datos secretos Elija la tecnología Por ejemplo: Kerberos Tipo de amenaza (STRIDE) Técnica de mitigación Tecnología Suplantación Autenticación NTLM Certificados X.509 Claves PGP Básica De texto implícita Kerberos SSL/TLS © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

26 Técnicas de mitigación de ejemplo
MGB 2003 Técnicas de mitigación de ejemplo Cliente Servidor Datos persistentes Datos de autenticación Datos de configuración STRIDE SSL/TLS IPSec RPC/DCO con privacidad Servidor de seguridad Limite la utilización de recursos para conexiones anónimas Control de acceso seguro Firmas digitales Auditoría Red no segura © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

27 Orden del día Proceso de desarrollo seguro Modelos de amenazas
MGB 2003 Orden del día Proceso de desarrollo seguro Modelos de amenazas Mitigación del riesgo Recomendaciones de seguridad © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

28 Ejecutar con privilegios mínimos
MGB 2003 Ejecutar con privilegios mínimos Doctrina de seguridad bien conocida: Ejecute las aplicaciones con los privilegios mínimos para realizar únicamente su trabajo, ninguno más Los privilegios elevados pueden llevar a consecuencias desastrosas El código malintencionado que se ejecuta en un proceso con muchos privilegios tiene privilegios adicionales Muchos virus se extienden porque el destinatario tiene privilegios de administrador © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

29 MGB 2003 Demostración 1 Seguridad de las aplicaciones ASP.NET Investigación de los privilegios de las aplicaciones ASP.NET Restricción de los niveles de confianza de las aplicaciones ASP.NET Cajón de arena (sandboxing) de código privilegiado Uso de los ensamblados de cajón de arena (sandboxing) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

30 Reducir la superficie susceptible de ataque
MGB 2003 Reducir la superficie susceptible de ataque Exponga sólo algunas interfaces bien documentadas de la aplicación Utilice sólo los servicios que la aplicación requiera Los virus Slammer y CodeRed no se habrían extendido si ciertas características no estuvieran activadas de forma predeterminada ILoveYou y otros virus no se habrían extendido si las secuencias de comandos estuvieran deshabilitadas Desactive todo lo demás © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

31 No confiar en las entradas de los usuarios
MGB 2003 No confiar en las entradas de los usuarios Valide todas las entradas Asuma que todas las entradas son dañinas mientras no se demuestre lo contrario Exija datos válidos y rechace todos los demás Restrinja, rechace y sanee la entrada del usuario con Comprobaciones de escritura Comprobaciones de longitud Comprobaciones de intervalo Comprobaciones de formato Validator.ValidationExpression = © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

32 MGB 2003 Demostración 2 Validación de formularios de Windows Ver una aplicación sin validación Agregar la validación de entradas Validación del formulario completo © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

33 Defensa en profundidad (1 de 3) Utilizar múltiples equipos selectores
MGB 2003 SQL Server IPSec Servidor de seguridad ISA IIS Servidor de seguridad ISA SSL © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

34 Comprobar la seguridad Comprobar la seguridad
MGB 2003 Defensa en profundidad (2 de 3) Aplicar las medidas apropiadas para cada nivel Comprobar la seguridad Comprobar la seguridad Aplicación.dll Comprobar la seguridad Proteger los recursos con ACL Aplicación.exe Comprobar la seguridad Aplicación.dll © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

35 MGB 2003 Defensa en profundidad (3 de 3) Utilizar listas ACL seguras en los recursos Diseñe listas ACL en la aplicación desde el principio Aplique listas ACL a archivos, carpetas, páginas Web, valores del Registro, archivos de base de datos, impresoras y objetos de Active Directory Cree sus propias ACL durante la instalación de la aplicación Incluya entradas ACE de denegación No utilice listas DACL NULL © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

36 No confíe en obtener seguridad mediante oscuridad
MGB 2003 No confíe en obtener seguridad mediante oscuridad No oculte claves de seguridad en archivos No confíe en claves del Registro no documentadas Asuma siempre que un intruso sabe lo mismo que usted © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

37 Utilizar DPAPI para proteger secretos
MGB 2003 Utilizar DPAPI para proteger secretos Dos funciones DPAPI: CryptProtectData CryptUnprotectData Dos almacenes para los datos cifrados con DPAPI: Almacén de usuario Almacén de máquina © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

38 MGB 2003 Demostración 3 DPAPI Almacenamiento de cadenas de conexión en Web.config Cifrado de cadenas de conexión con DPAPI Instalación de la utilidad Aspnet_setreg Uso de atributos cifrados en un archivo de configuración Conceder permisos para claves del Registro © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

39 Fallar de forma inteligente (1 de 2)
MGB 2003 Fallar de forma inteligente (1 de 2) DWORD dwRet = IsAccessAllowed(…); if (dwRet == ERROR_ACCESS_DENIED) { // Error de la comprobación de seguridad. // Informe al usuario de que se deniega el acceso } else { // Comprobación de seguridad correcta. // Se realiza la tarea… } ¿Qué ocurre si IsAccessAllowed() devuelve ERROR_NOT_ ENOUGH_MEMORY? Si se produce un error, asegúrese de que el código falla de forma segura © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

40 Fallar de forma inteligente (2 de 2)
MGB 2003 Fallar de forma inteligente (2 de 2) No haga lo siguiente: Revelar información en mensajes de error Consumir recursos durante períodos prolongados después de un error Haga lo siguiente: Utilice bloques de tratamiento de excepciones para evitar devolver errores a quien llama Escriba los errores sospechosos en un registro de sucesos <customErrors mode="Activado"/> © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

41 MGB 2003 Probar la seguridad Haga que los grupos de pruebas participen desde el principio Utilice los modelos de amenazas para desarrollar estrategias de pruebas de seguridad Piense mal. Sea malo. Pruebe lo peor Automatice los ataques con secuencias de comandos y lenguajes de programación básicos Envíe diversos datos no válidos Elimine o deniegue el acceso a archivos o a entradas del Registro Haga pruebas con una cuenta que no sea de administrador Conozca a su enemigo y conózcase a sí mismo ¿Qué técnicas utilizaría un intruso? ¿Qué técnicas y tecnologías pueden utilizar quienes efectúan las pruebas? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

42 Aprender de los errores
MGB 2003 Aprender de los errores Si encuentra un problema de seguridad, aprenda del error ¿Cómo se produjo el error de seguridad? ¿Se ha cometido el mismo error en otra parte del código? ¿Como se habría evitado? ¿Qué se debe cambiar para evitar repetir esta clase de error? ¿Necesita actualizar el material de cursos o las herramientas de análisis? © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

43 Resumen de la sesión Proceso de desarrollo seguro Modelos de amenazas
MGB 2003 Resumen de la sesión Proceso de desarrollo seguro Modelos de amenazas Mitigación del riesgo Recomendaciones de seguridad © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

44 Pasos siguientes Mantenerse informado sobre la seguridad
MGB 2003 Pasos siguientes Mantenerse informado sobre la seguridad Suscribirse a boletines de seguridad: Obtener las directrices de seguridad de Microsoft más recientes: Obtener aprendizaje de seguridad adicional Buscar seminarios de aprendizaje en línea y presenciales: Buscar un CTEC local que ofrezca cursos prácticos: © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

45 Para obtener más información
MGB 2003 Para obtener más información Sitio de seguridad de Microsoft (todos los usuarios) Sitio de seguridad de MSDN (desarrolladores) (este sitio está en inglés) Sitio de seguridad de TechNet (profesionales de IT) © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

46 Preguntas y Respuestas
MGB 2003 Preguntas y Respuestas © 2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.

47 MGB 2003 © 2004 Microsoft Corporation. All rights reserved.
This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.


Descargar ppt "Recomendaciones para la escritura de código seguro"

Presentaciones similares


Anuncios Google