Inicio / Catálogo de cursos / Desarrollo Seguro de Software

Application Security - AppSec

Desarrollo Seguro de Software


Descripción

El curso de desarrollo seguro de software está diseñado desde la perspectiva de los desarrolladores, enfocándose en metodologías de mejores prácticas orientadas a prevenir o corregir defectos de seguridad siguiendo un enfoque de prácticas puntuales que solucionan a la vez diferentes tipos de vulnerabilidades.

Contenido
  • Portada
  • Contenido general del curso
  • Ciclo de vida de desarrollo de software seguro
  • Ciclo de vida de desarrollo de software seguro
  • Prácticas de seguridad en todas las etapas
  • Modelo tradicional de SDLC
  • Requerimientos
  • Diseño
  • Implementación
  • Pruebas
  • Lanzamiento
  • Mantenimiento
  • Modelado de amenazas
  • Fases del Modelado de amenazas
  • Modelado de amenazas (ejemplo)
  • Historias de usuario seguras
  • Estándar de desarrollo seguro, listas de verificación y guías
  • Prevención contra código malicioso
  • Verificación de dependencias
  • Análisis estático de código
  • Escaneos dinámicos
  • Pruebas unitarias y no funcionales
  • Conclusiones
  • Laboratorio
  • Arquitectura segura
  • Principio del menor privilegio
  • Principio del menor privilegio (seguimiento)
  • Principio del menor privilegio - Ejemplos
  • Principio del menor privilegio - ¿Suena Obvio?
  • Lista negra vs lista blanca
  • Límites de confianza
  • Límites de confianza - Diagrama
  • Límites de confianza - Ejemplos
  • Seguridad por oscuridad
  • Seguridad por oscuridad - ¿Por qué no?
  • Arquitectura criptográfica
  • Arquitectura criptográfica - PKI
  • Arquitectura criptográfica - PKI continuación
  • Arquitectura criptográfica - IPSec
  • Arquitectura criptográfica - IPSec Continuación
  • Arquitectura criptográfica - TLS
  • Segmentación y Topología segura de red
  • Comunicación cifrada entre aplicaciones y servicios
  • Registro de eventos y monitoreo
  • Protección de datos y privacidad
  • Protección de datos y privacidad - Artículo 6
  • Protección de datos y privacidad - Artículo 7
  • Protección de datos y privacidad - Artículo 9
  • Protección de datos y privacidad - Artículo 10
  • Protección de datos y privacidad - Artículo 32
  • Protección de datos y privacidad - Artículo 36
  • Protección de datos y privacidad - Artículo 38
  • Protección de datos y privacidad - Artículo 28
  • Protección de datos y privacidad - Artículo 28.2
  • Conclusiones
  • Prueba: Arquitectura segura
  • Prácticas seguras de autenticación
  • Prácticas seguras de autenticación
  • ¿Qué es autenticación?
  • Mecanismos de autenticación
  • El final de las contraseñas
  • Referencias al ASVS de OWASP
  • Arquitectura del entorno
  • Arquitectura del entorno - Consideraciones
  • Autenticación de Windows
  • Autenticación basada en formularios
  • NIST SP 800-63 Lineamientos para identidad digital
  • NIST SP 800-63 Publicaciones asociadas
  • Requerimientos de contraseñas
  • Consideraciones sobre el uso de contraseñas
  • Requerimientos de contraseñas
  • Requerimientos de contraseñas 2
  • Anti-Automatización
  • Protección contra la automatización
  • Mecanismos autenticadores
  • Mecanismos autenticadores - continuación
  • Mecanismos autenticadores - Requerimientos
  • Mecanismos autenticadores restringidos
  • Ciclo de vida de los autenticadores
  • Registro de usuarios y renovación de autenticadores
  • Almacenamiento de credenciales
  • Requerimientos de almacenamiento
  • Recuperación de credenciales
  • Requerimientos de recuperación de contraseñas
  • Diagrama de recuperación de contraseñas
  • Secretos de recuperación
  • Requerimientos de secretos de recuperación
  • Verificadores externos
  • Requerimientos de verificadores externos
  • Múltiples factores de autenticación
  • Tipos de MFA
  • Requerimientos de MFA
  • Verificadores criptográficos por software y hardware
  • Verificadores criptográficos por software y hardware - continuación
  • Autenticadores federados
  • Autenticadores federados - continuación
  • Autenticación de servicios
  • Requerimientos para autenticación de servicios
  • Conclusiones
  • Laboratorio
  • Prueba: Prácticas seguras de autenticación
  • Curso anterior: Authentication, Authorization Auditing
  • Gestión de sesiones
  • Portada
  • Contenidos del módulo de gestión de sesiones
  • Introducción
  • Ciclo de vida de la sesión
  • Problemas comúnes
  • Tipos de sesiones
  • SessionID Fingerprinting
  • Longitud del SessionID
  • Entropía
  • Almacenamiento del SessionID
  • Reglas básicas
  • Reglas básicas (cont)
  • Requerimientos básicos
  • Previniendo la fijación de sesión (Session Fixation)
  • Cierre de sesión y expiración
  • Requerimientos del fin de sesión
  • Finalizando la sesión
  • Expiración vs Inactividad
  • Sesiones basadas en Cookies
  • Requerimientos de sesiones basadas en Cookies
  • Atributo "Secure"
  • Atributo "HTTPonly"
  • Atributo "SameSite"
  • Atributo "Path"
  • Atributo "Expires"
  • Prefijo "__Host-"
  • Atributo "Domain"
  • Configuración de Cookies en PHP
  • Configuración de Cookies en Java
  • Configuración de Cookies en .NET
  • Sesiones basadas en tokens
  • Ejemplos de sesiones basadas en Token
  • Requerimientos de sesiones basadas en Token
  • Implementación insegura de "API Keys"
  • Implementación segura de "API Keys"
  • Re-autenticación
  • Proceso de Re-autenticación
  • Requerimientos de Re-autenticación
  • Notas finales
  • Conclusiones
  • Laboratorio
  • Prueba: Gestión de sesiones
  • Controles de acceso
  • Portada
  • Contenidos
  • Introducción
  • Autorización
  • ¿Qué es AAA?
  • Principios básicos de diseño
  • Definir el patrón de diseño de autorización
  • Autorización forzada en todas las solicitudes
  • Denegar por defecto
  • Principio del menor privilegio
  • Roles incrustados en el código
  • Registrar todos los eventos de control de acceso
  • Requerimientos
  • Requerimientos de diseño
  • Requerimientos operativos
  • Control de acceso basado en roles (RBAC)
  • RBAC definición
  • RBAC Ejemplos
  • Control de acceso basado en atributos (ABAC)
  • ABAC Definición
  • ABAC Ejemplos
  • Control de acceso discrecional (DAC)
  • DAC Definición
  • DAC Ejemplos
  • Control de acceso forzado (MAC)
  • MAC Definición
  • MAC Ejemplos
  • Control de acceso basado en permisos
  • Definición - Control de acceso basado en permisos
  • Control de acceso basado en permisos - Ejemplos
  • Autorización transaccional
  • Definición - Autorización transaccional
  • Autorización transaccional - Ejemplos
  • Matriz de seguridad CRUD
  • Crear, Leer, Actualizar, Eliminar
  • Ejemplo de matriz CRUD
  • Utilizando la matriz
  • Variantes
  • Conclusiones
  • Laboratorio
  • Prueba: Control de acceso
  • Validación de entradas y codificación de salidas
  • Contenidos
  • Introducción
  • Entradas de datos
  • Salidas de datos
  • Flujo de datos
  • Canonicalización
  • Normalización de los datos
  • Ejemplos de normalización
  • Ejemplo de símbolos codificados
  • Validación de entradas
  • Definición
  • Validez sintáctica y semántica
  • Ejemplo de validaciones
  • Listas blancas vs listas negras
  • Validación en el cliente
  • Expresiones regulares
  • Ejemplo de expresiones regulares
  • ReDoS
  • Ejemplos de patrones maliciosos
  • Desinfección - "Sanitización"
  • El uso de "sanitización"
  • Librerías de "sanitización"
  • Codificación de salidas
  • Output Encoding
  • Librerías para la codificación de salidas
  • Escaping
  • Aplicar escaping
  • Cuando no aplicar escaping
  • Deserialización
  • Recomendaciones
  • Conclusiones
  • Laboratorio
  • Prueba: Validación de entradas y codificación de salidas
  • Criptografía
  • Contenidos
  • Introducción
  • Tipos de cifrado
  • Cifrado simétrico
  • Cifrado asimétrico
  • Hashes vs cifrado
  • Comparativa
  • Ejemplo de uso
  • Donde aplicar criptografía
  • Aplicar criptografía por niveles
  • Contraseñas
  • Reglas rápidas para almacenar contraseñas
  • Uso de “Sal”
  • Uso de “Pimienta”
  • Work factor
  • Diagrama: Almacenamiento de contraseñas
  • Algoritmos para criptográficos para contraseñas
  • Almacenamiento de información sensible
  • ¿Cuándo guardar información sensible?
  • Información protegida
  • Requerimientos
  • Generadores Pseudoaleatorios Seguros
  • CSPRNG
  • Generadores seguros e inseguros
  • Uso de los generadores pseudoaleatorios seguros
  • UUID / GUID
  • Identificadores universalmente únicos
  • Uso de los UUID
  • Algoritmos de cifrado
  • ¿Cuáles algoritmos utilizar?
  • Recomendaciones
  • Modos de cifrado
  • Modos recomendados
  • AES: Ejemplos por lenguaje
  • Diagrama: Cifrado AES
  • Algoritmos personalizados
  • Conclusiones
  • Laboratorio
  • Prueba: Criptografía
  • Captura de errores y registro de eventos
  • Contenidos
  • Introducción
  • Reglas rápidas sobre el registro de eventos
  • Consistencia
  • Propósito de los logs
  • ¿Qué información registrar?
  • ¿Qué información registrar?
  • ¿Qué información registrar?
  • ¿Cuándo?, ¿Dónde?, ¿Quién? y ¿ Qué ?
  • Sobre el contenido
  • ¿Cuándo?
  • ¿Dónde?
  • ¿Quién?
  • ¿Qué?
  • Datos que se deben excluir
  • Datos que se deben excluir
  • No-repudio
  • No Repudio
  • Aplicar el no-repudio a los “logs”
  • Niveles
  • Almacenamiento de los logs
  • Al almacenar los “logs”
  • Almacenando ”logs”
  • Retención y eliminación de “logs”
  • Retención y eliminación de “logs”
  • Captura de errores
  • Captura de errores
  • Captura de errores en Java SpringMVC/SpringBoot
  • Captura de errores en .NET Core
  • Conclusiones
  • Prueba: Captura de errores y registro de eventos
  • Comunicaciones seguras
  • Contenidos
  • Introducción
  • Objetivos generales
  • ¿Porqué?
  • Requerimientos
  • Requerimientos
  • OCSP Stapling
  • Online Certificate Status Protocol Stapling
  • HSTS
  • HTTP Strict Transport Security
  • Opciones de HSTS
  • Contenido Mixto
  • Errores de contenido mixto
  • Ejemplo: contenido mixto
  • HPKP
  • HTTP Public Key Pinning
  • Consideraciones
  • Configuración en el servidor
  • Consideraciones
  • NGinX
  • Apache
  • IIS
  • IIS - HSTS
  • Herramientas de verificación
  • Herramientas en línea y fuera de línea
  • Conclusiones
  • Laboratorio
  • Prueba: Comunicaciones Seguras
  • Uso de archivos y recursos
  • Uso de archivos y recursos
  • Introducción
  • Objetivos generales
  • Código malicioso
  • Requerimientos
  • Subidas de archivos
  • Requerimientos
  • Descargas de archivos
  • Requerimientos
  • SSRF
  • Server Side Request Forgery
  • Prevención SSRF
  • LFI / RFI
  • Remote File Inclusion
  • Local File Inclusion
  • Conclusiones
  • Laboratorio
  • Prueba: Uso de archivos
  • Seguridad para REST APIs y SOAP Web Services
  • Contenidos
  • Introducción
  • Objetivos generales
  • API Security Top 10 2019
  • Descripción
  • Riesgos incluidos
  • API1:2019 Broken Object Level Authorization
  • API3:2019 Excessive Data Exposure
  • API5:2019 Broken Function Level Authorization
  • API6:2019 Mass Assignment
  • Requerimientos generales
  • Requerimientos según ASVS
  • RESTful Web Services
  • Definición
  • Métodos HTTP y CRUD
  • Requerimientos según ASVS
  • SOAP Web Services
  • Definición
  • Requerimientos según ASVS
  • XXE – Inyección de Entidades Externas
  • Definición
  • Prevención
  • .NET Versiones vulnerables
  • .NET Ejemplos
  • Java Ejemplos
  • GraphQL
  • Definición
  • Requerimientos según ASVS
  • Serverless
  • Definición
  • Proveedores confiables
  • Consideraciones de seguridad
  • Conclusiones
  • Prueba: REST APIs y SOAP Web Services
  • Prácticas de configuración
  • Contenidos
  • Introducción
  • Objetivos generales
  • Compilado
  • Requerimientos
  • Dependencias
  • Requerimientos
  • OWASP Dependency check
  • SRI - Integridad de sub-recursos
  • Divulgación de información
  • Requerimientos
  • Encabezados de seguridad HTTP
  • Requerimientos
  • Configuración en NGinX
  • Configuración en Apache
  • Configuración en IIS
  • ViewState en .NET
  • Cifrar el web.config en IIS
  • Opciones adicionales de IIS
  • Conclusiones
  • Laboratorio
  • Despedida
  • Prueba: Configuración
  • Prueba final
  • Encuesta de Servicio
  • Sesión 2.mp4
Reglas de finalización
  • Todas las unidades deben ser completadas
  • Otorga un certificado con una duración de: 1 año