4.34.4.3 Programación Defensiva (25 horas) [Habilidades ]

Referencias Bibliográficas: [W and L, 2014] Temas
  1. Validación de datos de entrada y sanitización
  2. Elección del lenguaje de programación y lenguajes con tipos de datos seguro.
  3. Ejemplos de validación de entrada de datos y sanitización de errores.
    1. Desbordamiento de búfer
    2. Errores enteros
    3. Inyección SQL
    4. Vulnerabilidad XSS
  4. Las condiciones de carrera.
  5. Manejo correcto de las excepciones y comportamientos inesperados.
  6. Uso correcto de los componentes de terceros.
  7. Desplegar eficazmente las actualizaciones de seguridad.
  8. Información de control de flujo.
  9. Generando correctamente el azar con fines de seguridad.
  10. Mecanismos para la detección y mitigación de datos de entrada y errores de sanitización.
  11. Fuzzing
  12. El análisis estático y análisis dinámico.
  13. Programa de verificación.
  14. Soporte del sistema operativo (por ejemplo, la asignación al azar del espacio de direcciones, canarios)
  15. El soporte de hardware (por ejemplo, el DEP, TPM)

Objetivos de Aprendizaje (Learning Outcomes)

  1. Explicar por que la validación de entrada y desinfección de datos es necesario en el frente del control contencioso del canal de entrada [Usar]
  2. Explicar por que uno deberia escoger para desallorrar un programa en un lenguaje tipo seguro como Java, en contraste con un lenguaje de programación no seguro como C/C++ [Usar]
  3. Clasificar los errores de validación de entrada común, y escribir correctamente el código de validación de entrada [Usar]
  4. Demostrar el uso de un lenguaje de programación de alto nivel cómo prevenir una condición de competencia que ocurran y cómo manejar una excepción [Usar]
  5. Demostrar la identificación y el manejo elegante de las condiciones de error [Familiarizarse]
  6. Explique los riesgos de mal uso de las interfaces con código de terceros y cómo utilizar correctamente el código de terceros [Familiarizarse]
  7. Discutir la necesidad de actualizar el software para corregir las vulnerabilidades de seguridad y la gestión del ciclo de vida de la corrección [Familiarizarse]

Generado por Ernesto Cuadros-Vargas , Sociedad Peruana de Computación-Peru, basado en el modelo de la Computing Curricula de IEEE-CS/ACM