Prácticas de codificación seguras
Esta Specializations está dirigida a desarrolladores de software de cualquier nivel que aún no dominen las técnicas de codificación y programación seguras.A
Así estudias: curso autodidacta
- Autodidacta y 100% en línea: contenido disponible 24/7.
- Avanzas a tu ritmo: la plataforma guarda tu progreso.
- Sin tutor ni clases en vivo: el curso está diseñado para estudiarse por tu cuenta.
- Te evalúas con actividades automáticas, sin entregas a un tutor.
Lo que serás capaz de hacer
Esta Specializations está dirigida a desarrolladores de software de cualquier nivel que aún no dominen las técnicas de codificación y programación seguras.A través de cuatro cursos, cubrirá los principios de la codificación segura, conceptos de modelado de amenazas y criptografía y explotará vulnerabilidades tanto en lenguajes C/C++ como Java, lo que le preparará para pensar como un hacker y proteger la información de su organización. Los cursos proporcionan amplias actividades de práctica, incluida la explotación de WebGoat, un proyecto OWASP diseñado para enseñar pruebas de penetración.
- Practique la mejora de la seguridad y la solidez de sus programas.
- Cree modelos de amenazas y aplique criptografía básica.
- Evalúe y corrija el código de biblioteca C++ frágil.
- Explote los tipos comunes de problemas de inyección y solucione las causas de raíz.
Temario
UNIDAD 1 - Filosofía de programación segura · 13 leccionesPrincipios de codificación segura - UNIDAD 1 - Filosofía de programación segura
Principios de codificación segura - UNIDAD 1 - Filosofía de programación segura
- Una nota de UC Davis
- Introducción al curso
- Módulo 1 Introducción
- La filosofía de la programación segura
- Definición de una programación segura
- Programación robusta frente a programación segura
- Políticas y procedimientos de seguridad
- Filosofía general de la programación segura
- Comprobación del diseño y la aplicación
- Dónde buscar vulnerabilidades
- Resumen de programación segura
- Prueba práctica del módulo 1
- Cuestionario del módulo 1
UNIDAD 2 - Principios de diseño de programación segura · 14 leccionesPrincipios de codificación segura - UNIDAD 2 - Principios de diseño de programación segura
Principios de codificación segura - UNIDAD 2 - Principios de diseño de programación segura
- Módulo 2 Introducción
- Visión general de los principios de diseño de la programación segura
- Principio del menor privilegio
- Valores predeterminados a prueba de fallos
- Principio de economía de mecanismo
- Principio de mediación completa
- Mediación completa - ¿Qué está pasando?
- Principio de separación de privilegios
- Principio de diseño abierto
- Principio del mecanismo menos común
- Principio del menor asombro
- Resumen de los principios de diseño de la programación segura
- Prueba práctica del módulo 2
- Cuestionario del módulo 2
UNIDAD 3 - Programación robusta · 13 leccionesPrincipios de codificación segura - UNIDAD 3 - Programación robusta
Principios de codificación segura - UNIDAD 3 - Programación robusta
- Antes de empezar este módulo...
- Módulo 3 Introducción
- Visión general de la programación robusta
- Principios básicos de la programación robusta
- Un ejemplo de código frágil
- Tratamiento de errores
- Programas frágiles - ¿Qué está pasando?
- Cohesión, nuevas interfaces y generación de fichas
- Generación e interpretación de tokens
- Creación y eliminación de una cola
- Añadir y eliminar elementos a una cola
- Prueba práctica del módulo 3
- Cuestionario del módulo 3
UNIDAD 4 - Métodos de robustez · 12 leccionesPrincipios de codificación segura - UNIDAD 4 - Métodos de robustez
Principios de codificación segura - UNIDAD 4 - Métodos de robustez
- Módulo 4 Introducción
- Resumen de los métodos de robustez
- Panorama de los métodos: Métodos formales, informales y ad hoc
- Visión general de los métodos formales
- Ejemplo de programa de inicio de sesión
- Incorporación de la metodología de descomposición jerárquica
- Programa de inicio de sesión: Autenticación de un usuario
- Programa de inicio de sesión: Precondiciones y postcondiciones
- Programas robustos - ¿Qué está pasando?
- Prueba práctica del módulo 4
- Cuestionario del módulo 4
- Resumen del curso
UNIDAD 5 - Temas fundamentales de la programación segura · 19 leccionesIdentificación de vulnerabilidades de seguridad - UNIDAD 5 - Temas fundamentales de la programación segura
Identificación de vulnerabilidades de seguridad - UNIDAD 5 - Temas fundamentales de la programación segura
- Una nota de UC Davis
- Introducción al curso
- Módulo 1 Introducción
- Conceptos fundamentales en seguridad
- El método STRIDE a través del ejemplo
- Amenazas STRIDE con más detalle a través de un ejemplo
- Límites de confianza
- Conceptos básicos de criptografía Introducción
- Conceptos básicos de criptografía: Cifrado en bloque
- Conceptos básicos de criptografía: Criptografía simétrica y asimétrica
- Conceptos básicos de criptografía: Funciones hash
- Conceptos básicos de criptografía: Aplicación a los modelos de amenazas
- Laboratorio: Actividad del modelo de amenaza
- ¡Bienvenido a las tareas de revisión por pares!
- Creación de un modelo de amenaza
- Los 10 principales controles proactivos y exploits de OWASP - Parte 1
- Los 10 principales controles proactivos y exploits de OWASP - Parte 2
- Lectura y recursos
- Cuestionario del módulo 1
UNIDAD 6 - Problemas de inyección · 19 leccionesIdentificación de vulnerabilidades de seguridad - UNIDAD 6 - Problemas de inyección
Identificación de vulnerabilidades de seguridad - UNIDAD 6 - Problemas de inyección
- Módulo 2 Introducción
- Conceptos generales: Problemas de inyección
- Problemas de inyección SQL
- Mitigación de la inyección SQL mediante declaraciones preparadas
- Mitigación de la inyección SQL mediante procedimientos almacenados
- Mitigación de la inyección SQL mediante listas blancas
- Problemas de inyección en la vida real
- Solución Screencast para Lab: Exploit utilizando el ejemplo SQLi de WebGoat
- Introducción al Cross-Site Scripting
- HTTP y aislamiento de documentos
- DOM, generación dinámica de páginas y Cross-Site Scripting
- Los 3 tipos de vulnerabilidades de Cross-Site Scripting
- Comparación y contraste de vulnerabilidades de secuencias de comandos en sitios cruzados
- Reglas de prevención de scripts en sitios cruzados prescritas por OWASP - Parte 1
- Reglas de prevención de scripts en sitios cruzados prescritas por OWASP - Parte 2
- Problemas de inyección de comandos
- Controles proactivos de OWASP relacionados con las inyecciones
- Recursos
- Cuestionario del módulo 2
UNIDAD 7 - Problemas derivados de una autenticación defectuosa · 13 leccionesIdentificación de vulnerabilidades de seguridad - UNIDAD 7 - Problemas derivados de una autenticación defectuosa
Identificación de vulnerabilidades de seguridad - UNIDAD 7 - Problemas derivados de una autenticación defectuosa
- Módulo 3 Introducción
- Visión general del protocolo HTTP
- Introducción a la autenticación
- Manejo de mensajes de error durante la autenticación
- Introducción a la gestión de sesiones
- Aplicación del control de acceso con la gestión de sesiones
- Amenaza de gestión de sesión: ID de sesión de fuerza bruta
- Teat. de gestión de sesiones Vulnerabilidades de fijación de sesión
- Registro y supervisión
- Solución para el laboratorio nº 3: Vulnerabilidad en la gestión de sesiones de WebGoat
- Controles proactivos de OWASP relacionados con la gestión de sesiones y la autenticación
- Recursos
- Cuestionario del módulo 3
UNIDAD 8 - Problemas de exposición de datos sensibles · 12 leccionesIdentificación de vulnerabilidades de seguridad - UNIDAD 8 - Problemas de exposición de datos sensibles
Identificación de vulnerabilidades de seguridad - UNIDAD 8 - Problemas de exposición de datos sensibles
- Módulo 4 Introducción
- Introducción a los problemas de exposición de datos sensibles
- Problema 1: Uso de IPI para componer identificadores de sesión
- Problema 2: No cifrar la información sensible
- Problema 3: Almacenamiento inadecuado de contraseñas
- Frenar los ataques de fuerza bruta con contraseña
- Problema 4: Uso de HTTP para clientes-servidores sensibles
- Controles proactivos de OWASP relacionados con la exposición de datos sensibles
- Almacenamiento de contraseñas Actividad de laboratorio
- Cuestionario del módulo 4
- Recursos
- Resumen del curso
UNIDAD 9 - Usuarios, privilegios y variables de entorno · 23 leccionesIdentificación de vulnerabilidades de seguridad en programación C/C - UNIDAD 9 - Usuarios, privilegios y variables de entorno
Identificación de vulnerabilidades de seguridad en programación C/C - UNIDAD 9 - Usuarios, privilegios y variables de entorno
- Una nota de UC Davis
- Introducción al curso
- Módulo 1 Introducción
- Visión general de usuarios y privilegios
- Identificación de usuarios y modificación de privilegios
- Subprocesos de desove
- Identificación incorrecta de los usuarios
- Establecimiento de usuarios y fijación de UID
- Establecimiento de grupos y GID
- Establecimiento de privilegios para usuarios y grupos
- ¿Quién es usted? - ¿Qué está pasando?
- Cómo funcionan los privilegios de root
- Resumen de la lección 1
- Visión general de las variables de entorno
- Programación explícita
- Hacer frente a diversos ataques
- Carga dinámica y ataques asociados
- Programación implícita
- Reajuste del PATH - ¿Qué está pasando?
- La moraleja de la historia
- Múltiples variables de entorno PATH - ¿Qué está pasando?
- Prueba práctica del módulo 1
- Cuestionario del módulo 1
UNIDAD 10 - Validación y verificación, desbordamientos de búfer y numéricos e inyecciones de entrada · 21 leccionesIdentificación de vulnerabilidades de seguridad en programación C/C - UNIDAD 10 - Validación y verificación, desbordamientos de búfer y numéricos e inyecciones de entrada
Identificación de vulnerabilidades de seguridad en programación C/C - UNIDAD 10 - Validación y verificación, desbordamientos de búfer y numéricos e inyecciones de entrada
- Módulo 2 Introducción
- Visión general de la validación y verificación
- Metapersonajes
- El fallo Heartbleed y otros exploits
- Entradas
- Arregla
- Nombres de senderos - ¿Qué está pasando?
- Resumen de la lección 3
- Visión general de los desbordamientos del búfer
- Ejemplos de desbordamiento del búfer
- Desbordamiento selectivo del búfer y utilización de canarios
- Visión general de los desbordamientos numéricos
- Desbordamientos numéricos y del búfer - ¿Qué está pasando?
- Ejemplos de desbordamiento numérico
- Resumen de la lección 4
- Visión general de las inyecciones de entrada
- Ataques de secuencia de comandos en sitios cruzados
- Inyecciones SQL
- Resumen de la lección 5
- Prueba práctica del módulo 2
- Cuestionario del módulo 2
UNIDAD 11 - Archivos, subprocesos y condiciones de carrera · 16 leccionesIdentificación de vulnerabilidades de seguridad en programación C/C - UNIDAD 11 - Archivos, subprocesos y condiciones de carrera
Identificación de vulnerabilidades de seguridad en programación C/C - UNIDAD 11 - Archivos, subprocesos y condiciones de carrera
- Módulo 3 Introducción
- Visión general de archivos y subprocesos
- Creación de un proceso hijo
- Entorno del subproceso
- Consejos para el diseño de archivos y subprocesos
- Resumen de la lección 6
- Resumen de las condiciones de la carrera
- Un ejemplo de condición de carrera clásica
- Hora de control a hora de uso
- Condición de programación
- Condición medioambiental
- El estado del medio ambiente - ¿Qué está pasando?
- Condiciones de la carrera
- Bloqueos de Linux y llamadas al sistema de FreeBSD
- Prueba práctica del módulo 3
- Cuestionario del módulo 3
UNIDAD 12 - Aleatoriedad, criptografía y otros temas · 25 leccionesIdentificación de vulnerabilidades de seguridad en programación C/C - UNIDAD 12 - Aleatoriedad, criptografía y otros temas
Identificación de vulnerabilidades de seguridad en programación C/C - UNIDAD 12 - Aleatoriedad, criptografía y otros temas
- Módulo 4 Introducción
- Panorama de la aleatoriedad y la criptografía
- Pseudoaleatorio frente a aleatorio
- Producción de números aleatorios
- Sembrar semillas
- números (pseudo) aleatorios - ¿Qué está pasando?
- Conceptos básicos de criptografía
- Uso de la criptografía para el secreto y la integridad
- Algunos ejemplos de criptografía
- Resumen de la lección 8
- Manejo de información sensible y errores y formateo de cadenas Visión general
- Todo sobre las contraseñas
- Añadir una pizca de sal
- Gestión de datos sensibles
- Cifrar y descifrar contraseñas - ¿Qué está pasando?
- Practicar una función segura
- Una función system() segura - ¿Qué está pasando?
- Tratamiento de errores Parte 1
- Tratamiento de errores Parte 2
- Formato de cadenas
- Conversión de cadenas a números enteros - ¿Qué está pasando?
- Resumen de la lección 9
- Prueba práctica del módulo 4
- Cuestionario del módulo 4
- Resumen del curso
UNIDAD 13 - Configuración e introducción a los ataques de secuencia de comandos en sitios cruzados · 19 leccionesExplotación y protección de vulnerabilidades en aplicaciones Java - UNIDAD 13 - Configuración e introducción a los ataques de secuencia de comandos en sitios cruzados
Explotación y protección de vulnerabilidades en aplicaciones Java - UNIDAD 13 - Configuración e introducción a los ataques de secuencia de comandos en sitios cruzados
- Una nota de UC Davis
- Introducción al curso
- Resumen de recursos y herramientas para este curso
- Configuración e introducción a las secuencias de comandos en sitios cruzados
- Consejos y trucos para utilizar Git en cursos y proyectos
- Cómo importar WebGoat en IDE
- Cómo ejecutar WebGoat en un contenedor Docker
- Ataques de inyección: Qué son y cómo nos afectan
- Cross-site Scripting (XSS), Parte 1
- Protección contra el Cross-site Scripting (XSS), Parte 2
- Hoja de trucos OWASP para la prevención de scripts en sitios cruzados
- Parcheado de secuencias de comandos en sitios cruzados (XSS) reflejadas, Parte 3
- Secuencias de comandos en sitios cruzados (XSS) almacenadas
- Peligros de los ataques de secuencia de comandos en sitios cruzados (XSS)
- Una nota sobre cómo encontrar lecciones en WebGoat
- Introducción a los laboratorios (revisión por pares)
- Nota sobre las tareas de revisión por pares
- WebGoat Cross-Site Scripting (XSS)
- Cuestionario del módulo 1
UNIDAD 14 - Ataques de inyección · 14 leccionesExplotación y protección de vulnerabilidades en aplicaciones Java - UNIDAD 14 - Ataques de inyección
Explotación y protección de vulnerabilidades en aplicaciones Java - UNIDAD 14 - Ataques de inyección
- Ataques de inyección
- Tutorial: Uso de un proxy para interceptar el tráfico del cliente a los servidores
- Hoja de trucos OWASP para la prevención de inyecciones SQL
- Sintaxis y conceptos básicos de SQL: Cómo ponerse el sombrero de atacante
- Solución a los ataques de inyección SQL (SQLi)
- Ataques de inyección SQL: Evaluación del código
- Hoja de trucos OWASP para la prevención de entidades externas XML
- Ataques a entidades externas XML (XXE)
- Demostración de un ataque de entidad externa XML (XXE) para conseguir la ejecución remota de código (RCE)
- Evaluación del código - XXE a través de un marco REST
- Solución: Evaluación del código - XXE a través de un marco REST
- Parcheando la vulnerabilidad XXE
- Inyección SQL en WebGoat
- Cuestionario del módulo 2
UNIDAD 15 - Autenticación y autorización · 16 leccionesExplotación y protección de vulnerabilidades en aplicaciones Java - UNIDAD 15 - Autenticación y autorización
Explotación y protección de vulnerabilidades en aplicaciones Java - UNIDAD 15 - Autenticación y autorización
- Autenticación y autorización
- Hoja de trucos OWASP sobre autorización de transacciones
- Introducción a los fallos de autenticación en WebGoat
- Vulneración de la autenticación
- Consejos y trucos para Burp Suite: Utilice un proxy para interceptar el tráfico
- Solución a la elusión de la autenticación: Evaluación del código
- Encontrar vulnerabilidades y fallos lógicos en el código fuente
- Introducción a los tokens web JSON (JWT) y al bypass de autenticación
- Guía para principiantes sobre los JWT en Java'
- Fallo de autenticación Tokens Web JSON (JWT)
- Demostración de la solución: Explotación de tokens web JSON (JWT)
- Evaluación del código para encontrar el fallo de los tokens web JSON (JWT)
- Vídeo de consejos: (JWT) Parcheando el código vulnerable en WebGoat
- Solución para parchear el fallo JWT
- Fallos de autenticación de WebGoat
- Cuestionario del módulo 3
UNIDAD 16 - Peligros de los componentes vulnerables y proyecto final · 10 leccionesExplotación y protección de vulnerabilidades en aplicaciones Java - UNIDAD 16 - Peligros de los componentes vulnerables y proyecto final
Explotación y protección de vulnerabilidades en aplicaciones Java - UNIDAD 16 - Peligros de los componentes vulnerables y proyecto final
- Peligros de los componentes vulnerables Introducción
- Componentes vulnerables (Biblioteca XStream)
- Solución: Corrección de vulnerabilidades con XStream
- Artículo: Cómo los hackers vulneraron Equifax: Explotando una vulnerabilidad parcheable
- Artículo: Explotando la inyección OGNL en Apache Struts
- Prueba práctica del módulo 4
- Introducción a los laboratorios (revisión por pares)
- Nota sobre las tareas de revisión por pares
- Componentes vulnerables de WebGoat
- Resumen del curso
Certificado con validez SEP: lo emite la SEP, no solo una plataforma
Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.
Tu certificado con INEC
- Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
- Documento oficial con folio verificable en línea
- Lo otorga la Universidad Tecnológica Fidel Velázquez
Otras plataformas en línea
- Constancia privada emitida por la misma plataforma
- Solo acredita horas cursadas o asistencia
- Sin respaldo de una autoridad educativa
Tu itinerario, de la inscripción al certificado
- 1
Inscripción con pago único
Pagas $4,990 MXN una sola vez y entras de inmediato al curso.
- 2
Estudias a tu ritmo
16 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.
- 3
Cuestionarios por unidad
24 cuestionarios para comprobar lo aprendido.
- 4
Certificado
Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
Un certificado oficial de la SEP
- Certificado SEP incluido (sin costo). Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
- Contenido impartido por University of California, Davis.
- Folio y QR verificables para compartirlo con quien te contrate.
Empieza hoy, a tu ritmo
Un solo pago y acceso inmediato al curso completo durante 12 meses.
- 16 unidades · 259 lecciones · 192 h
- 12 meses de acceso
- 24 cuestionarios de evaluación
- Certificado SEP incluido (sin costo), emitido por la SEP (Gob. del Estado de México) con folio verificable
Sobre tu inscripción
¿Cómo es el pago?
Un solo pago de $4,990 MXN. No hay mensualidades ni cargos recurrentes.
¿Cuánto tiempo tengo acceso?
12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.
¿Quién imparte el contenido?
El curso es impartido por University of California, Davis; INEC gestiona tu inscripción, evaluación y certificado.
¿Qué pasa cuando vence mi acceso?
Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.
¿El curso tiene validez SEP?
Sí, incluido sin costo. Al completar el curso recibes un certificado emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.
¿El curso tiene tutor o clases en vivo?
No. Es un curso autodidacta: estudias por tu cuenta, a tu ritmo, sin tutor ni sesiones en vivo.
¿Cómo se evalúa?
Te evalúas con actividades automáticas, sin entregas a un tutor.





