Ponte en Contacto

Temario del curso

Día 1

Seguridad de TI y codificación segura

  • Naturaleza de la seguridad
  • Términos relacionados con la seguridad de TI
  • Definición de riesgo
  • Diferentes aspectos de la seguridad de TI
  • Requisitos de diferentes áreas de aplicación
  • Seguridad de TI vs. codificación segura
  • De las vulnerabilidades a las botnets y el cibercrimen
    • Naturaleza de las deficiencias de seguridad
    • Razones de la dificultad
    • De un ordenador infectado a ataques dirigidos
  • Clasificación de las deficiencias de seguridad
    • Taxonomía de Landwehr
    • Los Siete Reinos Perniciosos
    • OWASP Top Ten 2013
    • Comparación de OWASP Top Ten 2003 – 2013

Introducción al Ciclo de Vida de Desarrollo de Seguridad de Microsoft® (SDL)

  • Agenda
  • Aplicaciones bajo ataque...
    • Evolución del cibercrimen
    • Los ataques se centran en las aplicaciones
    • La mayoría de las vulnerabilidades están en aplicaciones de ISV más pequeñas
  • Orígenes del SDL de Microsoft...
    • Cronología de seguridad en Microsoft...
    • ¿Qué aplicaciones están obligadas a seguir el SDL?
  • Ciclo de Vida de Desarrollo de Seguridad de Microsoft (SDL)
    • Ciclo de Vida de Desarrollo de Seguridad de Microsoft (SDL)
    • Requisitos previos al SDL: Formación en Seguridad
    • Fase Uno: Requisitos
    • Fase Dos: Diseño
    • Fase Tres: Implementación
    • Fase Cuatro: Verificación
    • Fase Cinco: Lanzamiento – Plan de Respuesta
    • Fase Cinco: Lanzamiento – Revisión Final de Seguridad
    • Fase Cinco: Lanzamiento – Archivo
    • Requisito posterior al SDL: Respuesta
    • Guía de proceso SDL para aplicaciones LOB
    • Guía SDL para metodologías ágiles
    • El desarrollo de software seguro requiere la mejora del proceso

Principios de diseño seguro

  • Superficie de ataque
    • Reducción de la superficie de ataque
    • Superficie de ataque – un ejemplo
    • Análisis de la superficie de ataque
    • Reducción de la superficie de ataque – ejemplos
  • Privacidad
    • Privacidad
    • Comprensión de los comportamientos y preocupaciones de las aplicaciones
  • Profundización de la defensa
    • Principio nuclear del SDL: Profundización de la defensa
    • Profundización de la defensa – ejemplo
  • Principio de privilegio mínimo
    • Privilegio mínimo – ejemplo
  • Valores predeterminados seguros
    • Valores predeterminados seguros – ejemplos

Principios de implementación segura

  • Agenda
  • Ciclo de Vida de Desarrollo de Seguridad de Microsoft (SDL)
  • Fundamentos de desbordamiento de búfer
    • Procesadores Intel 80x86 – registros principales
    • El diseño de direcciones de memoria
    • El mecanismo de llamada de funciones en C/C++ en x86
    • Las variables locales y el marco de pila
    • Desbordamiento de pila
      • Desbordamiento de búfer en la pila
      • Ejercicios – introducción
      • Ejercicio BOFIntro
      • Ejercicio BOFIntro – determinar el diseño de la pila
      • Ejercicio BOFIntro – una explotación sencilla
  • Validación de entrada
    • Conceptos de validación de entrada
    • Problemas de enteros
      • Representación de enteros negativos
      • Desbordamiento de enteros
      • Desbordamiento aritmético – ¡adivina la salida!
      • Ejercicio IntOverflow
      • ¿Cuál es el valor de Math.Abs(int.MinValue)?
    • Mitigación de problemas de enteros
      • Mitigación de problemas de enteros
      • Evitar el desbordamiento aritmético – adición
      • Evitar el desbordamiento aritmético – multiplicación
      • Detección de desbordamientos con la palabra clave checked en C#
      • Ejercicio – Uso de la palabra clave checked en C#
      • Excepciones activadas por desbordamientos en C#
    • Estudio de caso – Desbordamiento de enteros en .NET
      • Una vulnerabilidad de desbordamiento de enteros del mundo real
      • Explotación de la vulnerabilidad de desbordamiento de enteros
    • Vulnerabilidad de recorrido de rutas
      • Mitigación del recorrido de rutas

Día 2

Principios de implementación segura

  • Inyección
    • Métodos típicos de ataque de inyección SQL
    • Inyección SQL ciega y basada en tiempo
    • Métodos de protección contra inyección SQL
    • Inyección de comandos
  • Autenticación defectuosa - gestión de contraseñas
    • Ejercicio – Debilidad de las contraseñas hasheadas
    • Gestión y almacenamiento de contraseñas
    • Algoritmos de hash de propósito especial para el almacenamiento de contraseñas
  • Cross-Site Scripting (XSS)
    • Cross-Site Scripting (XSS)
    • Inyección CSS
    • Explotación: inyección a través de otras etiquetas HTML
    • Prevención de XSS
  • Falta de control de acceso a nivel de función
    • Filtro de cargas de archivos
  • Criptografía práctica
    • Proporción de confidencialidad mediante criptografía simétrica
    • Algoritmos de cifrado simétrico
    • Cifrado de bloque – modos de operación
    • Hash o resumen de mensaje
    • Algoritmos de hash
    • Código de Autenticación de Mensaje (MAC)
    • Proporción de integridad y autenticidad con una clave simétrica
    • Proporción de confidencialidad mediante cifrado de clave pública
    • Regla práctica – posesión de la clave privada
    • Errores típicos en la gestión de contraseñas
    • Ejercicio – Contraseñas codificadas
    • Conclusión

Principios de verificación segura

  • Pruebas funcionales vs. pruebas de seguridad
  • Vulnerabilidades de seguridad
  • Priorización
  • Pruebas de seguridad en el SDLC
  • Pasos de la planificación de pruebas (análisis de riesgos)
  • Alcance y recopilación de información
    • Partes interesadas
    • Activos
    • La superficie de ataque
    • Objetivos de seguridad para pruebas
  • Modelado de amenazas
    • Modelado de amenazas
    • Perfiles de atacante
    • Modelado de amenazas basado en árboles de ataque
    • Modelado de amenazas basado en casos de uso/abuso
    • Casos de uso/abuso – un ejemplo sencillo de tienda web
    • Enfoque de STRIDE por elemento para el modelado de amenazas – MS SDL
    • Identificación de objetivos de seguridad
    • Diagramación – ejemplos de elementos DFD
    • Diagrama de flujo de datos – ejemplo
    • Enumeración de amenazas – STRIDE de MS SDL y elementos DFD
    • Análisis de riesgos – clasificación de amenazas
    • El modelo de clasificación de amenazas/riesgos DREAD
  • Técnicas y herramientas de pruebas de seguridad
    • Enfoques generales de pruebas
    • Técnicas para las diversas etapas del SDLC
  • Revisión de código
    • Revisión de código para la seguridad del software
    • Análisis de tinte (taint analysis)
    • Heurísticas
  • Análisis estático de código
    • Análisis estático de código
    • Ejercicio – Uso de herramientas de análisis estático de código
  • Pruebas de la implementación
    • Verificación en tiempo de ejecución manual
    • Pruebas de seguridad manuales vs. automatizadas
    • Pruebas de penetración
    • Pruebas de estrés
  • Fuzzing
    • Pruebas de seguridad automatizadas - fuzzing
    • Desafíos del fuzzing
  • Escáneres de vulnerabilidades web
    • Ejercicio – Uso de un escáner de vulnerabilidades
  • Verificación y endurecimiento del entorno
    • Common Vulnerability Scoring System – CVSS
    • Escáneres de vulnerabilidades
    • Bases de datos públicas
  • Estudio de caso – Evadir Autenticación de Formularios
    • Vulnerabilidad de terminación NULL byte
    • La vulnerabilidad de Evadir Autenticación de Formularios en el código
    • Explotación del Evadir Autenticación de Formularios

Fuentes de conocimiento

  • Fuentes de codificación segura – kit de inicio
  • Bases de datos de vulnerabilidades
  • Guías de codificación segura de .NET en MSDN
  • Hojas de trucos de codificación segura de .NET
  • Libros recomendados – .NET y ASP.NET
 14 Horas

Número de participantes


Precio por participante

Reseñas (3)

Próximos cursos

Categorías Relacionadas