Denominación de la asignatura: Diseño y Desarrollo de Programas Informáticos Seguros
Maestría a la que pertenece: Maestría en Seguridad Informática
Créditos ECTS: 5
Ciclo en mapa curricular ideal: Segundo semestre

Presentación

Actualmente las tecnologías de seguridad red pueden ayudar a aliviar los ciberataques, pero no resuelven el problema de seguridad real pues las aplicaciones están expuestas a los atacantes. En este contexto, se hace necesario por tanto el disponer de software seguro que funcione en un entorno agresivo y malicioso.
La asignatura se ha dividido en cuatro temas:

  • El primero tiene como objetivo introducir los principales conceptos que abarca la seguridad del software en cuanto a los beneficios que produce, su importancia en la seguridad global de un sistema, las propiedades de un software seguro, los ataques a los que se tiene que enfrentar y las metodologías aplicables a los procesos de desarrollo seguro de software.
  • El segundo aborda la necesidad de incluir en las organizaciones un proceso sistemático o disciplina que aborde la seguridad en todas las etapas del ciclo de vida de desarrollo del software que incluya una serie de buenas prácticas de seguridad (S-SDLC), requisitos de seguridad, casos de abuso, análisis de riesgo, análisis de código, pruebas de penetración y dinámicas, modelado de amenazas, operaciones de seguridad y revisiones externas necesarias para asegurar la confianza y robustez del mismo y conseguir software confiable.
  • En el tercero, más de carácter técnico, se explican los defectos más comunes que se pueden cometer al codificar en lenguajes como C y Java y una serie de recomendaciones a tener en cuenta a la hora de de desarrollar software, tanto de buenas como de malas prácticas.
  • Y por último, en el cuarto se introducen técnicas, análisis y reingeniería de malware aplicados al análisis de malware para poder comprender el funcionamiento del código malicioso (troyanos, virus, rootkits, etc.), evaluar los daños causados y valorar las intenciones y capacidades del atacante de una manera sistemática y metodológica.

Tema 1. El problema de la seguridad en el software

  • Introducción al problema de la seguridad en el software
  • Vulnerabilidades y su clasificación
  • Propiedades software seguro
  • Principios de diseño seguridad del software
  • Amenazas a la seguridad del software
  • Tipos de S-SDLC
  • Los pilares de la seguridad del software
  • Metodologías y estándares

Tema 2. Seguridad en el ciclo de vida del software

  • Introducción a la seguridad en ciclo de vida del software (S-SDLC)
  • Seguridad en las fases del S-SDLC
  • Modelado de ataques
  • Casos de abuso
  • Ingeniería de requisitos de seguridad. Análisis de riesgo. Arquitectónico
  • Patrones de diseño
  • Pruebas de seguridad basadas en riesgo
  • Revisión de código
  • Test de penetración
  • Operaciones de seguridad
  • Revisión externa

Tema 3. Codificación segura

  • Introducción a la codificación segura
  • Características de una buena implementación, prácticas y defectos a evitar
  • Manejo de la entrada de datos
  • Desbordamiento de buffer
  • Integers overflows, errores de truncado y problemas con conversiones de tipo entre números enteros
  • Errores y excepciones
  • Privacidad y confidencialidad
  • Programas privilegiados

Tema 4. Análisis de malware

  • Introducción al malware
  • Tipos de malware
  • Obtención del malware. Honeynet
  • Entorno y herramientas análisis de malware
  • Metodología de análisis de malware

Las actividades formativas de la asignatura se han elaborado con el objetivo de adaptar el proceso de aprendizaje a las diferentes capacidades, necesidades e intereses de los alumnos.

Las actividades formativas con el docente son las siguientes:

  • Diálogo e interacción virtual con profesor.
  • Participación activa durante la clase virtual.
  • Formulación de preguntas sobre los temas y problemas planteados en la sesión virtual.
  • Análisis de conceptos expuestos por el docente durante la sesión virtual.
  • Exposición de dudas y de preguntas mediante el uso de correo web.
  • Análisis y solución de problemas con exposición de ideas mediante el chat.

Las actividades formativas independientes son las siguientes:

  • Realizar los test sobre los contenidos de los distintos temas tratados.
  • Interacción en foro de discusión sobre fiabilidad del software y hardware original.
  • Trabajo: Comparación de ciclos de vida de desarrollo de software seguro {S-SDLC).
  • Trabajo: Metodologías de modelado de amenazas.
  • Trabajo: Análisis dínámico de malware.
Descargar programación

Estas actividades formativas prácticas se completan, por supuesto, con estas otras:

  • Estudio personal
  • Tutorías. Las tutorías se pueden articular a través de diversas herramientas y medios. Durante el desarrollo de la asignatura, el profesor programa tutorías en días concretos para la resolución de dudas de índole estrictamente académico a través de las denominadas “sesiones de consultas”. Como complemento de estas sesiones se dispone también del foro “Pregúntale al profesor de la asignatura” a través del cual se articulan algunas preguntas de alumnos y las correspondientes respuestas en el que se tratan aspectos generales de la asignatura. Por la propia naturaleza de los medios de comunicación empleados, no existen horarios a los que deba ajustarse el alumno.
  • Examen final online

Bibliografía básica

Recuerda que la bibliografía básica es imprescindible para el estudio de la asignatura. Cuando se indica que no está disponible en el aula virtual, tendrás que obtenerla por otros medios: librería UNIR, biblioteca...

Los textos necesarios para el estudio de la asignatura han sido elaborados por UNIR y están disponibles en formato digital para consulta, descarga e impresión en el aula virtual.

Bibliografía complementaria.

  • Allen, J. H., Barnum, S., Ellison, R. J., McGraw, G. y Mead, N. R. (2008). Software Security Engineering: A Guide for Project Managers. Boston: Addison Wesley Professional.
  • Chess, B. y West, J. Secure Programming with Static Analysis. Boston: Addison-Wesley Software Security Series.
  • Davis, M., Bodmer, S. y Lemasters. A. (2010). Hacking Exposed™ Malware & Rootkits: Security Secrets & Solutions. (S. l.): McGraw-Hill.
  • Graff, M. G. y van Wyk, K. R. (2003). Secure Coding: Principles & Practices. O'Reilly.
  • Gregg, M. (2008). Build Your Own Security Lab: A Field Guide for Network Testing. Indianapolis: Wiley Publishing.
  • Hale Ligh, M., Adair, S., Hartstein, B. y Richard, M. (2011). Malware Analyst’s Cookbook and DVD. Tools and Techniques for Fighting Malicious Code. Indianapolis: Wiley Publishing.
  • Howard, M. y LeBlanc, D. (2003). Writing Secure Code. Redmond: Microsoft Press.
  • Howard, M. y Lipner, S. (2006). The Security Development Lifecycle: SDL: A Process for Developing Demonstrably Secure Software. Redmond: Microsoft Press.
  • McGraw, G. (2005). Software Security: Building Security In. Boston: Addison Wesley Professional.
  • Sikorki, M. y Honing, A. (2012). Practical Malware Analysis. The hans-on guide dissecting malicious software. San Francisco: No Starch Press.

La calificación se compone de dos partes principales:

Examen: se realiza al final de la asignatura, es de carácter online y obligatorio. El examen se valora sobre 10 puntos.

Evaluación continua: se compone de las calificaciones obtenidas en las diferentes actividades formativas llevadas a cabo a lo largo de la asignatura.

La nota final se calcula teniendo en cuenta que la nota obtenida en el examen equivale al 30% y la nota obtenida en la evaluación continua equivale al 70%. La nota final debe sumar mínimo 7 puntos para aprobar la asignatura.

Sistema de evaluación %
Test parciales en la plataforma 5%
Participación en foros y otros medios colaborativos en la plataforma 15%
Comparación de ciclos de vida de desarrollo de software seguro (S-SDLC) 15%
Metodologías de modelado de amenazas 15%
Análisis dinámico de malware 20%
Examen final 30%
Suma Total de Calificación 100%

Obviamente, al tratarse de formación online puedes organizar tu tiempo de estudio como desees, siempre y cuando vayas cumpliendo las fechas de entrega de actividades, trabajos y exámenes. Nosotros, para ayudarte, te proponemos los siguientes pasos:

  1. Desde el Campus virtual podrás acceder al aula virtual de cada asignatura en la que estés matriculado y, además, al aula virtual del Curso de introducción al campus virtual. Aquí podrás consultar la documentación disponible sobre cómo se utilizan las herramientas del aula virtual y sobre cómo se organiza una asignatura en la UNIR y también podrás organizar tu plan de trabajo con tu tutor personal.
  2. Observa la programación semanal. Allí te indicamos qué parte del temario debes trabajar cada semana.
  3. Ya sabes qué trabajo tienes que hacer durante la semana. Accede ahora a la sección Temas del aula virtual. Allí encontrarás el material teórico y práctico del tema correspondiente a esa semana.
  4. Comienza con la lectura de las Ideas clave del tema. Este resumen te ayudará a hacerte una idea del contenido más importante del tema y de cuáles son los aspectos fundamentales en los que te tendrás que fijar al estudiar el material básico. Consulta, además, las secciones del tema que contienen material complementario.
  5. Dedica tiempo al trabajo práctico (sección Actividades y Test). En la programación semanal te detallamos cuáles son las actividades correspondientes a cada semana y qué calificación máxima puedes obtener con cada una de ellas.
  6. Te recomendamos que participes en los eventos del curso (sesiones presenciales virtuales, foros de debate…). Para conocer la fecha concreta de celebración de los eventos debes consultar las herramientas de comunicación del aula vitual. Tu profesor y tu tutor personal te informarán de las novedades de la asignatura.

En el aula virtual del Curso de introducción al campus virtual encontrarás siempre disponible la documentación donde te explicamos cómo se estructuran los temas y qué podrás encontrar en cada una de sus secciones.

Recuerda que en el aula virtual del Curso de introducción al campus virtual puedes consultar el funcionamiento de las distintas herramientas del aula virtual: Correo, Foro, Sesiones presenciales virtuales, Envío de actividades, etc.

Ten en cuenta estos consejos...

  • Sea cual sea tu plan de estudio, accede periódicamente al aula Virtual, ya que de esta forma estarás al día de las novedades del curso y en contacto con tu profesor y con tu tutor personal.
  • Recuerda que no estás solo: consulta todas tus dudas con tu tutor personal utilizando el correo electrónico. Además, siempre puedes consultar tus dudas sobre el temario en los foros que encontrarás en cada asignatura (Pregúntale al profesor).
  • ¡Participa! Siempre que te sea posible accede a los foros de debate. El intercambio de opiniones, materiales e ideas nos enriquece a todos.
  • Y ¡recuerda!, estás estudiando con metodología on line: tu esfuerzo y constancia son imprescindibles para conseguir buenos resultados. ¡No dejes todo para el último día!