SECURE PROGRAMMING

foto

TEMARIO

  • MÓDULO I. INTRODUCCIÓN A LA PROGRAMACIÓN SEGURA. 2 HORAS
    1.1. General.
    1.1.1. Causas que provocan software inseguro.
    1.1.2. La seguridad en las aplicaciones.
    1.1.3. Eventos críticos principales que debemos evitar.
    1.1.4. Ataques a sistemas.
    1.1.5. Zonas de confianza.
    1.2. Aplicaciones WEB.
    1.2.1. Protocolo HTTP.
    1.2.2. Respuestas HTTP.
    1.2.3. Modelo de seguridad del navegador.
  • MÓDULO II. AUTENTIFICACIÓN Y MANEJO DE SESIONES 3 HORAS
    2.1. Autentificación
    2.2. Manejo de sesiones
    2.3. Ataques CSRF y Clickjacking
  • MÓDULO III. MANEJANDO DATOS PROVENIENTES DEL USUARIO 3 HORAS
    3.1. Ataques de inyección.
    3.1.1. Inyecciones SQL.
    3.1.2. Consultas directas VS consultas parametrizadas.
    3.1.3. Otras inyecciones y filtrado.
    3.2. Validación de entradas.
    3.2.1. Expresiones regulares.
    3.3. Sanitización VS filtrado.
    3.4. Codificación de entradas y normalización.
    3.5. Una mala interpretación.
    3.6. Tamaño de la entrada.
    3.7. Ataque XSS.
    3.8. Inyecciones de alto nivel.
  • MÓDULO IV. AUTORIZACIÓN 3 HORAS
    4.1. Autorización Horizontal.
    4.2. Autorización Vertical.
    4.3. Riesgos.
    4.4. Mitigación.
    4.5. Permisos sobre recursos.
    4.6. Envenenamiento de sesiones.
    4.7. Otros puntos.
  • MÓDULO V. CONFIGURACIÓN, MANEJO DE ERRORES Y REGISTRO DE EVENTOS 3 HORAS
    5.1. Endurecimiento de configuración
    5.2. Información potencialmente riesgosa expuesta
    5.3. Manejo de errores
    5.4. Registro de eventos
    5.5. Denegación de servicio
  • MÓDULO VI. CRIPTOGRAFÍA 3 HORAS
    6.1. Criptografía simétrica.
    6.2. Criptografía asimétrica.
    6.3. HTTPS.
    6.4. Otros temas criptográficos.
  • MÓDULO VII. INGENIERÍA DE SOFTWARE SEGURA 7 HORAS
    7.1. Requerimientos de seguridad.
    7.1.1. Autentificación.
    7.1.2. Integridad.
    7.1.3. No anular.
    7.1.4. Confidencialidad.
    7.1.5. Disponibilidad.
    7.1.6. Autorización.
    7.1.7. Ejemplos de situaciones reales.
    7.2. Arquitectura segura.
    7.3. Codificación segura.
    7.4. Pruebas de seguridad.
    7.4.1. Pruebas de penetración.
    7.4.2. Escaneo de vulnerabilidades.
    7.4.3. Pruebas de abuso.
    7.4.4. Fuzzing.
    7.4.5. Fase de calidad.
    7.4.6. S-SDLC Básico.

DESCRIPCIÓN

Defectos de software, errores y fallas en la lógica del programa son constantemente la causa de vulnerabilidades en un software. Los análisis profesionales en seguridad de software han demostrado que la mayoría de las vulnerabilidades se deben a errores en la programación. Por lo tanto, se ha convertido en una necesidad para las organizaciones educar a sus programadores de software sobre las prácticas de codificación segura.
Los atacantes tratan de encontrar vulnerabilidades de seguridad en las aplicaciones o servidores y luego tratan de utilizar éstos errores para robar secretos, corromper programas y datos, y tomar el control de sistemas y redes informáticas. Técnicas en programación y mejores prácticas pueden ser utilizadas para desarrollar códigos de alta calidad que eviten ataques a aplicaciones web. La programación segura es una medida defensiva contra ataques dirigidos hacia los sistemas de aplicación.

OBJETIVOS

En este curso los participantes conocerán los elementos necesarios para el desarrollo de aplicaciones seguras utilizando buenas prácticas internacionales y adquiriendo las recomendaciones del instructor.
Los participantes podrán conocer el ciclo de vida del desarrollo seguro, modelado de amenazas, los marcos de seguridad de software y arquitecturas de software seguras.

BENEFICIOS

El participante al final de curso comprenderá y podrá poner en práctica lo siguiente:

• Conocerá las demandas del mercado en cuanto a la seguridad en el desarrollo de aplicaciones.
• Explicar en qué consiste la seguridad de las aplicaciones y desarrollo.
• Describir los problemas de seguridad HTTP.
• Explicar el modelo de seguridad del navegador.
• Identificar los problemas implicados en el uso de contraseñas.
• Aplicar buenas prácticas para la gestión de contraseñas.
• Gestionar sesiones de manera segura.
• Explicar cómo funciona la administración de sesiones.
• Reconocer los problemas de administración de sesiones.
• Conocer las mejores prácticas y soluciones para problemas relacionados con las sesiones.
• Conocer las vulnerabilidades y soluciones para ataques CSRF y Clickjacking.
• Reconocer los problemas de ataques de inyección.
• Explicar la diferencia entre las consultas directas y parametrizados.
• Aplicar soluciones para los ataques de inyección SQL.
• Explicar la diferencia entre los filtros de listas blancas y negras.
• Aplicar la validación de entrada.
• Reconocer cuándo aplicar la normalización de entrada y codificación.
• Identificar dónde se producen desbordamientos de memoria y su impacto en la seguridad.
• Reconocer la diferencia entre los ataques XSS reflejado y almacenados y mitigarlos.
• Reconocer la diferencia entre la autorización horizontal y vertical.
• Reconocer la diferencia entre las referencias directas e indirectas.
• Reconocer los métodos de endurecimiento de configuración.
• Reconocer diferentes fugas de información.
• Explicar la importancia del registro para la seguridad.
• Explicar el principio de la “Falla segura”.
• Reconocer los ataques y mitigaciones de denegación de servicio.
• Explicar la importancia del Principio Kerckhoffs, administración de claves y aleatoriedad.
• Describir criptografía de clave pública, Man-in-the-middle y certificados.
• Reconocer las amenazas para SSL / TLS / HTTPS y aplicar correctamente HTTPS.
• Reconocer los supuestos y las ambigüedades ocultas en requisitos de desarrollo dados.
• Reconocer las amenazas que son inherentes a una arquitectura específica.
• Reconocer las soluciones adecuadas para las amenazas y las imperfecciones de éstos.
• Reconocer el alcance, objetivos y ventajas de la revisión de código para el desarrollo.
• Conocer diferentes métodos para las pruebas de seguridad.
• Identificar la mejor prueba para un escenario dado.
• Identificar formas de mejorar el desarrollo de software y procesos de ensayo por parte la incorporación de los resultados de la prueba.

INCLUYE

• Diploma con validez oficial ante la STPS.
• Curso online sin costo: Fundamentos de Seguridad Informática (100 horas, acceso por 6 meses en el campus virtual de ITALDI) con el siguiente temario:
Módulo I. Introducción.
Módulo II. El proceder de un Hacker.
Módulo III. Tánicas generales de ataques.
Módulo IV. Vulnerabilidades en la Web.
Módulo V. Vulnerabilidades en la Programación.
Módulo VI. Estafas.
Módulo VII. Código Malicioso.
Módulo VIII. Seguridad en las transacciones electrónicas.
Módulo IX. Ethical Hacking.
Módulo X. Metodologías de análisis.
• Diploma del curso Fundamentos de Seguridad Informática con validez oficial ante la STPS.
• Voucher para el examen de EXIN® Secure Programming Foundation.
• Material impreso del curso.
• Material Digital: Framework Secure Software.
• Simuladores de preguntas para los exámenes de certificación.
• Clases prácticas.

AUDIENCIA

Gerentes de seguridad, arquitectos y administradores de redes, auditores de seguridad, profesionales en seguridad, programadores, gerentes que trabajan en el campo del hacking ético y cualquie

PRERREQUISITOS

Conocimientos en Programación. Equipo Laptop para instalación de los laboratorios. Requerimientos mínimos: Memoria RAM 4 GB, Intel Pentium, Sistema Operativo Windows 7 Mínimo, Interfaz de red inalámbrica habilitada, 5 GB espacio libre en disco.

RESTRICCIONES

1. Aprobar todos los módulos obligatorios del curso. 2. Participar activamente en los ejercicios de práctica. 3. Asistir como mínimo al 90% del curso.