Contacta con nosotros

Temario del curso

Día 1

Seguridad informática y codificación segura

  • Naturaleza de la seguridad.
  • Términos relacionados con la seguridad informática.
  • Definición de riesgo.
  • Diferentes aspectos de la seguridad informática.
  • Requisitos de las distintas áreas de aplicación.
  • Seguridad informática frente a codificación segura.
  • De las vulnerabilidades a las botnets y la delincuencia informática
    • Naturaleza de los fallos de seguridad.
    • Causas de la dificultad para resolverlos.
    • De un ordenador infectado a ataques dirigidos.
  • Clasificación de los fallos de seguridad
    • Taxonomía de Landwehr.
    • Los siete reinos perniciosos.
    • OWASP Top Ten 2013.
    • Comparativa de OWASP Top Ten: 2003 – 2013.

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

  • Agenda.
  • Aplicaciones bajo ataque...
    • Evolución de la delincuencia informática.
    • Los ataques se centran en las aplicaciones.
    • La mayoría de las vulnerabilidades se encuentran 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 proceso SDL?
  • Ciclo de Vida de Desarrollo Seguro (SDL) de Microsoft
    • Ciclo de Vida de Desarrollo Seguro (SDL) de Microsoft.
    • 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 del proceso SDL para aplicaciones LOB (Line of Business).
    • Orientación del SDL para metodologías ágiles.
    • El desarrollo de software seguro requiere una mejora de los procesos.

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 e inquietudes respecto a la aplicación.
  • Defensa en profundidad.
    • Principio fundamental del SDL: Defensa en profundidad.
    • Ejemplo de defensa en profundidad.
  • Principio del menor privilegio.
    • Ejemplo del principio del menor privilegio.
  • Valores predeterminados seguros.
    • Valores predeterminados seguros – ejemplos.

Principios de implementación segura

  • Agenda.
  • Ciclo de Vida de Desarrollo Seguro (SDL) de Microsoft.
  • Conceptos básicos de desbordamiento de búfer
    • Procesadores Intel 80x86 – registros principales.
    • Disposición del espacio de direcciones de memoria.
    • Mecanismo de llamadas de funciones en C/C++ en x86.
    • Variables locales y la pila de llamadas (stack frame).
    • Desbordamiento de pila.
      • Desbordamiento de búfer en la pila.
      • Introducción a los ejercicios.
      • Ejercicio BOFIntro.
      • Ejercicio BOFIntro – determinación del diseño de la pila.
      • Ejercicio BOFIntro – un exploit sencillo.
  • Validación de entrada
    • Conceptos de validación de entrada.
    • Problemas con enteros.
      • Representación de enteros negativos.
      • Desbordamiento de enteros.
      • Desbordamiento aritmético – ¿puedes adivinar el resultado!
      • Ejercicio IntOverflow.
      • ¿Cuál es el valor de Math.Abs(int.MinValue)?
    • Mitigación de problemas con enteros.
      • Mitigación de problemas con enteros.
      • Evitar el desbordamiento aritmético – suma.
      • Evitar el desbordamiento aritmético – multiplicación.
      • Detección de desbordamiento con la palabra clave checked en C#.
      • Ejercicio – Uso de la palabra clave checked en C#.
      • Excepciones provocadas por desbordamientos en C#.
    • Estudio de caso – Desbordamiento de enteros en .NET.
      • Una vulnerabilidad real de desbordamiento de enteros en el 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 de ataque típicos de inyección SQL.
    • Inyección SQL ciega y basada en tiempo.
    • Métodos de protección contra la inyección SQL.
    • Inyección de comandos.
  • Autenticación incorrecta - gestión de contraseñas.
    • Ejercicio – Debilidad de las contraseñas hasheadas.
    • Gestión y almacenamiento de contraseñas.
    • Algoritmos de hash específicos para el almacenamiento de contraseñas.
  • Scripting entre sitios (XSS).
    • Scripting entre sitios (XSS).
    • Inyección CSS.
    • Explotación: inyección a través de otras etiquetas HTML.
    • Prevención de XSS.
  • Control de acceso a nivel de función faltante.
    • Filtrado de cargas de archivos.
  • Criptografía práctica.
    • Proporción de confidencialidad con criptografía simétrica.
    • Algoritmos de cifrado simétricos.
    • Cifradores de bloques – modos de operación.
    • Hash o resumen de mensaje.
    • Algoritmos de hash.
    • Código de autenticación de mensajes (MAC).
    • Proporción de integridad y autenticidad con una clave simétrica.
    • Proporción de confidencialidad con 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 en el código fuente.
    • Conclusión.

Principios de verificación segura

  • Pruebas funcionales frente a pruebas de seguridad.
  • Vulnerabilidades de seguridad.
  • Priorización.
  • Pruebas de seguridad en el ciclo de vida del desarrollo de software (SDLC).
  • Pasos de la planificación de pruebas (análisis de riesgos).
  • Delimitación y recopilación de información.
    • Partes interesadas.
    • Activos.
    • La superficie de ataque.
    • Objetivos de seguridad para las pruebas.
  • Modelado de amenazas.
    • Modelado de amenazas.
    • Perfiles de atacantes.
    • Modelado de amenazas basado en árboles de ataque.
    • Modelado de amenazas basado en casos de uso indebido/abuso.
    • Casos de uso indebido/abuso – un ejemplo sencillo de tienda web.
    • Enfoque 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 distintas etapas del SDLC.
  • Revisión del código.
    • Revisión del código para la seguridad del software.
    • Análisis de contaminación (taint analysis).
    • Heurística.
  • Análisis estático del código.
    • Análisis estático del código.
    • Ejercicio – Uso de herramientas de análisis estático del código.
  • Prueba de la implementación.
    • Verificación manual en tiempo de ejecución.
    • Pruebas manuales frente a automáticas de seguridad.
    • Pruebas de penetración (pentesting).
    • Pruebas de carga (stress tests).
  • Fuzzing.
    • Pruebas automáticas de seguridad mediante fuzzing.
    • Desafíos del fuzzing.
  • Escáneres de vulnerabilidades web.
    • Ejercicio – Uso de un escáner de vulnerabilidades.
  • Verificación y endurecimiento del entorno.
    • Sistema Común de Puntuación de Vulnerabilidades – CVSS.
    • Escáneres de vulnerabilidades.
    • Bases de datos públicas.
  • Estudio de caso – Elusión de la autenticación de formularios.
    • Vulnerabilidad de terminación de byte nulo.
    • La vulnerabilidad de elusión de la autenticación de formularios en el código.
    • Explotación de la elusión de la autenticación de formularios.

Fuentes de conocimiento

  • Fuentes de codificación segura – un kit de inicio.
  • Bases de datos de vulnerabilidades.
  • Directrices de codificación segura .NET en MSDN.
  • Hojas de trucos para la codificación segura .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