Última revisión realizada: 17/03/2021

Denominación de la asignatura: Seguridad en el Software
Postgrado al que pertenece: Máster Universitario en Seguridad Informática
Créditos ECTS: 5
Cuatrimestre en el que se imparte: Segundo cuatrimestre
Carácter de la asignatura: Obligatoria
Materia a la que pertenece Seguridad informática

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 conceptos principales que la seguridad del software abarca , 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) como especificación de requisitos de seguridad, casos de abuso, análisis de riesgo, análisis de código, pruebas de penetración dinámicas, modelado de amenazas, operaciones de seguridad y revisiones externas, necesarias para asegurar la confianza y robustez del mismo, para conseguir software confiable.

En el tercero, mas 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 que tener en cuenta a la hora de de desarrollar software, tanto de buenas como de malas prácticas. Por último, en el cuarto se introducen técnicas de análisis y reingeniería de malware aplicadas 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.

Competencias básicas

  • CB6: Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación.
  • CB7: Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio.
  • CB8: Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios.
  • CB9: Que los estudiantes sepan comunicar sus conclusiones y los conocimientos y razones últimas que las sustentan a públicos especializados y no especializados de un modo claro y sin ambigüedades.
  • CB10: Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo.

Competencias generales

  • CG1: Aplicar los conocimientos adquiridos y ser capaces de resolver problemas en entornos nuevos o poco conocidos dentro de contextos relacionados con el área de la seguridad informática.
  • CG2: Integrar conocimientos para formular juicios a partir de determinada información. A la vez, incluir reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios en materia de asesoramiento en seguridad informática.
  • CG3: Mantener una actitud que les permita estudiar de manera autónoma y promover la formación continua en su futuro desempeño profesional como experto en seguridad informática.
  • CG4: Diseñar y elaborar planes de intervención profesional o proyectos de investigación relacionados con el entorno de seguridad informática e implementarlos y desarrollarlos mediante los métodos y procesos adecuados.
  • CG5: Adquirir el grado de especialización necesario para ejercer las funciones profesionales de experto en seguridad informática, en el seno de las entidades de TI.
  • CG6: Evaluar los recursos necesarios, planificar y organizar las actividades, sin olvidar la revisión del propio progreso y desempeño en la seguridad informática.
  • CG7: Desarrollar las capacidades de trabajo en equipo y las habilidades de comunicación para mantener relaciones con otros profesionales y con organizaciones relevantes.
  • CG8: Tener la capacidad analítica y de resolución para atender a los problemas reales de acuerdo con los valores éticos y sociales y con el máximo respeto a la legalidad vigente.
  • CG9: Manejar adecuadamente información relativa al sector de la seguridad informática. Atendiendo a la legislación vigente, notas técnicas, revistas especializadas, Internet, documentos internos de la empresa, etc.

Competencias transversales

  • CT1: Capacidad de innovación y flexibilidad en entornos nuevos de aprendizaje como es la enseñanza on-line.
  • CT2: Conocer, y utilizar con habilidad, los mecanismos básicos de uso de comunicación bidireccional entre profesores y alumnos, foros, chats, etc.
  • CT3: Utilizar las herramientas para presentar, producir y comprender la información que les permita transformarla en conocimiento.
  • CT4: Capacidad para realizar una enseñanza personalizada adaptada al espacio (aula virtual multicultural y multirracial) a los recursos y a las situaciones y necesidades personales de los alumnos.
  • CT5: Capacidad de investigar y comunicar los resultados de la investigación.

Competencias específicas

  • CE5: Discernir sobre los distintos entornos de seguridad existentes para poder seleccionar el óptimo siguiendo un razonamiento profesional y completo.
  • CE8: Tomar decisiones proactivas y reactivas frente los posibles fallos de seguridad, investigando las causas que las originan.
  • CE9: Comprender el funcionamiento, características y nivel de riesgo de los servicios de las empresas y establecer mecanismos de protección.
  • CE14: Diseñar las correctas políticas para analizar y reproducir los hechos ante un incidente de seguridad informática.
  • CE19: Proteger la integridad de las bases de datos para asegurar la confidencialidad de la información sensible contenida.
  • CE20: Asesorar sobre las distintas medidas de seguridad aplicables a los sistemas informáticos para disminuir el impacto de sus posibles fallos.
  • CE22: Manejar correctamente sistemas operativos, redes y lenguajes de programación desde el punto de vista de la seguridad informática y de las comunicaciones.
  • CE24: Analizar y detectar amenazas de seguridad y desarrollar técnicas para su prevención.
  • CE26: Implantar procesos de análisis forense de cualquier sistema informático.
  • CE27: Diseñar, implantar e institucionalizar un proceso de gestión de riesgos legales en cualquier organización.

Tema 1. El problema de la seguridad en el software

  • Introducción y objetivos
  • 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
  • Tipos de S-SDLC
  • Metodologías y estándares
  • Referencias bibliográficas

Tema 2. Seguridad en el ciclo de vida del software

  • Introducción y objetivos
  • Introducción a la seguridad en ciclo de vida del software (S- SDLC)
  • Modelado de amenazas
  • Casos de abuso
  • Modelado de ataques
  • 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
  • Pruebas de penetración
  • Operaciones de seguridad
  • Revisión externa
  • Referencias bibliográficas

Tema 3. Codificación segura

  • Introducción y objetivos
  • Características de una buena implementación, prácticas y defectos que evitar
  • Manejo de la entrada de datos
  • Desbordamiento de buffer
  • Integers overflows
  • Errores y excepciones
  • Privacidad y confidencialidad
  • Programas privilegiados
  • Referencias bibliográficas

Tema 4. Análisis de malware

  • Introducción y objetivos
  • Tipos de malware
  • Obtención del malware
  • Entorno y herramientas análisis de malware
  • Métodos de análisis de malware
  • Metodología de análisis de malware
  • Referencias bibliográficas

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 de esta asignatura son las siguientes:

  • Trabajo. Se trata de actividades de diferentes tipos: reflexión, análisis de casos, prácticas, etc.
  • Participación en eventos. Son eventos programados todas las semanas del cuatrimestre: sesiones presenciales virtuales, foros de debate.
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 presencial

Las horas de dedicación a cada actividad se detallan en la siguiente tabla:

Actividades Formativas
Horas
Sesiones presenciales virtuales
14
Lecciones magistrales
5
Estudio del material básico
52
Lectura del material complementario
36
Trabajos, casos prácticos, test
9,5
Prácticas informáticas
10
Test de autoevaluación
4,5
Tutorías
13
Trabajo colaborativo
6
Total
150

Bibliografía básica

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. Addison Wesley Professional.
  • Chess, B., y West, J. Secure Programming with Static Analysis. Addison-Wesley Software Security Series.
  • Davis, M., Bodmer, S., y Lemasters. A. (2010). Hacking Exposed™ Malware & Rootkits: Security Secrets & Solutions. McGraw-Hill.
  • Elisan, C., Davis, M., Bodmer, S. y Lemaster, A. (2016). Hacking exposed malware & rootkits: security secrets and solutions. EE.UU.: McGraw Hill Education.
  • Fernández, E. (2013). Security patterns in practice: designing secure architectures using software patterns. Wiley & Sons.
  • Gordon, A. (2015). SDLC for summies, whitehat security. Wiley & Sons.
  • 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. Wiley Publishing, Inc.
  • Hale Ligh, M., Adair, S., Hartstein, B., y Richard, M. (2011). Malware Analyst’s Cookbook and DVD. Tools and Techniques for Fighting Malicious Code. Wiley Publishing, Inc.
  • Hoff, J., y Chapple, M. (2014). SDLC for dummies, whitehat security. Wiley & Sons.
  • Hoglund, G. (2004). Exploiting software: how to break code. Addison Wesley.
  • Howard, M., y LeBlanc, D. (2003).Writing Secure Code. Microsoft Press.
  • Howard, M., y Lipner, S. (2006). The Security Development Lifecycle: SDL: A Process for Developing Demonstrably Secure Software. Microsoft Press.
  • Kenneth, R. (2017). Enterprise software security: a confluence of disciplines. Addison Wesley Professional.
  • Krassowski, A., y Meunier, P. (2008). Secure software engineering: designing, writing and maintaining more secure code. Addison-Wesley.
  • McGraw, G. (2005). Software Security: Building Security In. Addison Wesley Professional.
  • Redwine, S. (2006). Software assurance: a guide to the common body of knowledge to produce, acquire and sustain secure software version 1.1. US department of homeland security.
  • Rival, X. (2016). Software security. Createspace independent publishing platforma. Static analysis: 23rd international symposium. Springer.
  • Sayed, A. (2016). Software quality assurance: integrating testing, security and audit. Auerbach Publications.
  • Shostack, A. (2014). Threat modeling: designing for security. Wiley & Sons.
  • Sikorki, M., y Honing, A. (2012). Practical Malware Analysis. The hans-on guide dissecting malicious software. No Starch Press.

El sistema de calificación se basa en la siguiente escala numérica:

0 - 4, 9 Suspenso (SS)
5,0 - 6,9 Aprobado (AP)
7,0 - 8,9 Notable (NT)
9,0 - 10 Sobresaliente (SB)

El examen se realiza al final del cuatrimestre y es de carácter PRESENCIAL y OBLIGATORIO. Supone el 60% de la calificación final y para que la nota obtenida en este examen se sume a la nota final, es obligatorio APROBARLO.

La evaluación continua supone el 40% de la calificación final. Este 40% de la nota final se compone de las calificaciones obtenidas en las diferentes actividades formativas llevadas a cabo durante el cuatrimestre.

Ten en cuenta que la suma de las puntuaciones de las actividades de la evaluación continua permite que realices las que prefieras hasta conseguir el máximo puntuable mencionado en la programación semanal. En ella se detalla la calificación máxima de cada actividad o evento concreto puntuables.

El sistema de evaluación de la asignatura es el siguiente:

Sistema de evaluación Ponderación min - max
Participación en foros y otros medios participativos
0
10
Realización de trabajos, proyectos y casos prácticos
10
30
Prácticas informáticas
20
30
Test de autoevaluación
0
10
Prueba de evaluación final
60
60

Javier Bermejo Higuera

Formación académica: Doctor en Ingeniería en Armamento y Material por la Escuela Politécnica Superior del Ejército, es Ingeniero en Electrónica por la Universidad de Alcalá de Henares, Ingeniero Técnico de Telecomunicaciones por la Universidad Politécnica de Madrid, Ingeniero de Armamento y Material por la Escuela Politécnica Superior del Ejército y Licenciado en Ciencias Físicas por la Universidad Nacional a Distancia. Además posee un Máster en Sistemas de Comunicación e Información para Seguridad y Defensa por la Universidad Politécnica de Madrid, es especialista criptólogo por el Centro Criptológico Nacional y posee tres certificaciones internacionales de Ciberdefensa del Cyber Security Forum Initiative (CSFI).

Experiencia: Con varios años de experiencia docente en el ámbito universitario y 10 años de experiencia investigadora. Profesor de UNIR del Máster en Ingeniería de Software y Sistemas Informáticos y Master de Seguridad Informática. Actualmente es el responsable del Área de investigación de Comunicaciones y Ciberseguridad del Instituto Nacional de Técnica Aeroespacial, ha sido jede de la Unidad de Inspecciones de Ciberseguridad y jefe de la unidad de investigación en Ciberseguridad del Instituto Tecnológico «La Marañosa». Ha sido el director técnico de tres programas de I+D y dirige un programa de I+D en CIberdefensa de la Agencia Europea de Defensa. También es asesor experto en un proyecto del H2020 de la Agencia Europea de Navegación (GSA).

Líneas de investigación: Análisis y reingeniería de malware y Seguridad del Software.

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 online: tu esfuerzo y constancia son imprescindibles para conseguir buenos resultados. ¡No dejes todo para el último día!