Gracias por enviar su consulta! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Gracias por enviar su reserva! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Temario del curso
Día 1
Ciberseguridad y codificación segura
- Naturaleza de la seguridad
- Términos relacionados con la ciberseguridad
- Definición de riesgo
- Diferentes aspectos de la ciberseguridad
- Requisitos de distintas áreas de aplicación
- Ciberseguridad frente a codificación segura
-
De las vulnerabilidades a los botnets y la cibdelincuencia
- Naturaleza de los fallos de seguridad
- Razones de la dificultad
- Desde un ordenador infectado hasta ataques dirigidos
-
Clasificación de los fallos de seguridad
- Taxonomía de Landwehr
- Los siete reinos perniciosos (Seven Pernicious Kingdoms)
- 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 cibdelincuencia
- Los ataques se están centrando en las aplicaciones
- La mayoría de las vulnerabilidades se encuentran en aplicaciones de ISV (Independent Software Vendor) más pequeñas
-
Orígenes del SDL de Microsoft...
- Línea temporal de seguridad en Microsoft...
- ¿Qué aplicaciones deben seguir el 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
- Orientación del proceso SDL para aplicaciones de línea de negocio (LOB)
- Orientación SDL para metodologías ágiles
- El desarrollo seguro de software requiere mejoras en el 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
- Ejemplos de reducción de la superficie de ataque
-
Privacidad
- Privacidad
- Comprensión del comportamiento y las preocupaciones de la aplicación
-
Defensa en profundidad
- Principio fundamental del SDL: Defensa en profundidad
- Ejemplo de defensa en profundidad
-
Principio de privilegio mínimo
- Ejemplo de privilegio mínimo
-
Configuraciones seguras por defecto
- Ejemplos de configuraciones seguras por defecto
Principios de implementación segura
- Agenda
- Ciclo de Vida de Desarrollo Seguro (SDL) de Microsoft
-
Fundamentos del desbordamiento de búfer
- Procesadores Intel 80x86 - registros principales
- Distribución de la dirección de memoria
- Mecanismo de llamada de funciones en C/C++ en x86
- Variables locales y marco de pila
-
Desbordamiento de pila (Stack overflow)
- Desbordamiento de búfer en la pila
- Introducción a los ejercicios
- Ejercicio BOFIntro
- Ejercicio BOFIntro - determinar la estructura de la pila
- Ejercicio BOFIntro - una explotación básica
-
Validación de entradas
- Conceptos de validación de entradas
-
Problemas con enteros (Integer problems)
- Representación de enteros negativos
- Desbordamiento entero (Integer overflow)
- Desbordamiento aritmético - ¡adivine 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
- Detectar desbordamientos 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 entero en .NET
- Una vulnerabilidad real de desbordamiento entero
- Explotando la vulnerabilidad de desbordamiento entero
-
Vulnerabilidad de recorrido de rutas (Path traversal)
- Mitigación del recorrido de rutas
Día 2
Principios de implementación segura
-
Inyección (Injection)
- 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 rota - gestión de contraseñas
- Ejercicio - Debilidad de las contraseñas hasheadas
- Gestión y almacenamiento de contraseñas
- Algoritmos de hash especializados 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 ausente (Missing function level access control)
- Filtrado de cargas de archivos
-
Criptografía práctica
- Proporcionar confidencialidad con criptografía simétrica
- Algoritmos de cifrado simétrico
- Cifrado por bloques - modos de operación
- Hash o resumen del mensaje
- Algoritmos hash
- Código de autenticación de mensajes (MAC)
- Proporcionar integridad y autenticidad con una clave simétrica
- Proporcionar confidencialidad con cifrado de clave pública
- Regla general - posesión de la clave privada
- Errores típicos en la gestión de contraseñas
- Ejercicio - Contraseñas codificadas en el código
- 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 riesgo)
-
Delimitación y obtención de información
- Interesados
- Activos
- La superficie de ataque
- Objetivos de seguridad para las 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 mal uso/abuso (misuse/abuse cases)
- Casos de mal uso/abuso - un ejemplo simple 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)
- 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 riesgos/amenazas DREAD
-
Técnicas y herramientas de pruebas de seguridad
- Enfoques generales de pruebas
- Técnicas para las distintas etapas del SDLC
-
Revisión de código (Code review)
- Revisión de código para la seguridad del software
- Análisis de datos sensibles (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 manual en tiempo de ejecución
- Pruebas de seguridad manuales frente a automatizadas
- Pruebas de penetración (Pentesting)
- 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 (Hardening)
- Sistema Común de Puntuación de Vulnerabilidades - CVSS
- Escáneres de vulnerabilidades
- Bases de datos públicas
-
Estudio de caso - Contorno de la autenticación de formularios (Forms Authentication Bypass)
- Vulnerabilidad de terminación con byte nulo
- La vulnerabilidad de contorno en el código de autenticación de formularios
- Explotando el contorno 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 referencia (cheat sheets) de codificación segura para .NET
- Libros recomendados - .NET y ASP.NET
14 Horas
Reseñas (3)
La experiencia compartida, el saber hacer del profesor y su valor son importantes.
Carey Fan - Logitech
Curso - C/C++ Secure Coding
Traducción Automática
el conocimiento del instructor era muy alto - sabía de lo que estaba hablando y conocía las respuestas a nuestras preguntas
Adam - Fireup.PRO
Curso - Advanced Java Security
Traducción Automática
El tema es actual y necesitaba estar al día
Damilano Marco - SIAP s.r.l.
Curso - Secure Developer Java (Inc OWASP)
Traducción Automática