Denominación de la asignatura

Seguridad en el Software
Postgrado al que pertenece
Máster Universitario en Ingeniería del Software y Sistemas Informáticos
Materia a la que pertenece
Seguridad Informática
Créditos ECTS
3
Cuatrimestre en el que se imparte
Primer cuatrimestre
Carácter de la asignatura Obligatoria

Presentación

Actualmente las tecnologías de seguridad red pueden ayudar a aliviar los ciberataques, pero no resuelven el problema de seguridad real, pues no resuelve el problema original de las vulnerabilidades de las aplicaciones que protegen y 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.

El objetivo de la presente asignatura es introducir al alumno en 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. Para ello se estructura en seis temas, el primero introduce el problema de la seguridad del software y las propiedades que debería presentar un software seguro y confiable. El abarca las propiedades y principios de diseños de un software seguro y las metodologías aplicables a los procesos de desarrollo seguro de software.

El tercero y cuarto 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, de forma que incluya una serie de buenas prácticas de seguridad (S-SDLC) como especificación requisitos seguridad, casos de abuso, análisis de riesgo, análisis de código, pruebas de penetración, modelado de amenazas, operaciones de seguridad y revisiones externas, necesarias para asegurar la confianza y robustez del mismo y conseguir software confiable.

Y por último en el quinto y sexto tema se introducen se explican los defectos más comunes que se pueden cometer al codificar en lenguajes como C y Java. Si se entienden bien los defectos que se pueden cometer se estará en disposición de poder analizar el código para encontrarlos y posteriormente corregirlos. Además se hace una serie de recomendaciones a tener en cuenta a la hora de la implementación, tanto de buenas como de malas prácticas.

Competencias

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.

  • 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.

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.

Competencias específicas.

  • CE14: Capacidad para diseñar, desarrollar e implantar sitios, servicios y sistemas basados en la Web con garantías de seguridad.
  • CE17: Analizar la infraestructura de red y los entornos de seguridad para poder determinar el nivel de riesgo de las soluciones técnicas y administrativas implantadas
  • CE18: Analizar y detectar amenazas de seguridad y desarrollar técnicas para su prevención.
  • CE20: Asesorar sobre las distintas medidas de seguridad aplicables a los sistemas informáticos para disminuir el impacto de sus posibles fallos.
  • CE23: Diseñar políticas de recuperación de datos adecuadas para disminuir el impacto ante desastres

 

Contenidos

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
Referencias

Tema 2. Principios de diseño seguridad del software
Introducción
Principios de diseño seguridad del software
Tipos de S-SDLC
Seguridad del software en las fases del S-SDLC
Metodologías y estándares
Referencias

Tema 3. Seguridad en el ciclo de vida del software en las fases de requisitos y diseño
Introducción
Modelado de ataques
Casos de abuso
Ingeniería de requisitos de seguridad
Análisis de riesgo. Arquitectónico
Patrones de diseño
Referencias

Tema 4. Seguridad en el ciclo de vida del software en las fases de codificación, pruebas y operación
Introducción
Pruebas de seguridad basadas en riesgo
Revisión de código
Test de penetración
Operaciones de seguridad
Revisión externa
Referencias

Tema 5. Codificación segura aplicaciones I
Introducción
Prácticas de codificación segura
Manipulación y validación de entradas
Desbordamiento de memoria
Referencias

Tema 6. Codificación segura aplicaciones II
Introducción
Integers overflows, errores de truncado y problemas con conversiones de tipo entre números enteros
Privacidad y confidencialidad
Programas privilegiados
Referencias


Metodología

Metodología

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:

  • Trabajos. Se trata de actividades de diferentes tipos: reflexión, análisis de casos, prácticas, etc. Además de análisis de textos relacionados con diferentes temas de la asignatura.
  • Participación en eventos. Son eventos programados todas las semanas del cuatrimestre: sesiones presenciales virtuales, foros de debate, test.
  • Laboratorios. Actividad práctica que se realiza en tiempo real e interactuando con otros alumnos. En el laboratorio los estudiantes tendrán que desarrollar los ejercicios propuestos en un entorno de simulación online. Los estudiantes contarán en todo momento con el apoyo de un tutor de laboratorio, que ayudará al alumno a desarrollar su actividad. El tutor de laboratorio podrá asignar grupos de alumnos para que, de forma colaborativa, alcancen los resultados solicitados. Este tipo de actividad posee un peso considerable en la evaluación continua del alumno, por lo que, a pesar de no ser obligatoria su realización, se recomienda firmemente la participación en los mismos.

En la programación semanal puedes consultar cuáles son las actividades concretas que tienes que realizar en esta asignatura.

Descarga el pdf de la 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
%PRESENCIAL
Sesiones presenciales virtuales
8
100%
Lecciones magistrales
3
0%
Estudio del material básico
26,25
0%
Lectura del material complementario
21
0%
Trabajos, casos prácticos
8,25
0%
Prácticas de laboratorio
8
50%
Tutorías
8
5%
Trabajo colaborativo
3,25
0%
Test de autoevaluación
2
0%
Examen final presencial
2
         100%    
Total
90
         

 

Puedes personalizar tu plan de trabajo seleccionando aquel tipo de actividad formativa que se ajuste mejor a tu perfil. El profesor-tutor te ayudará y aconsejará en el proceso de elaboración de tu plan de trabajo. Y siempre estará disponible para orientarte durante el curso.

Recomendaciones técnicas

Metodología

Para la correcta participación de los alumnos en las diferentes actividades propuestas en la asignatura se recomienda disponer de un ordenador con las siguientes especificaciones mínimas recomendadas:

  • 4 GB de RAM
  • Conexión a Internet superior a 6 Mbit/s
  • Cámara web
  • Micrófono
  • Altavoces o auriculares
  • Sistema operativo Windows o Mac OS (algunas actividades pueden presentar dificultades sobre Linux. En esta circunstancia se recomienda consultar con el profesor de la asignatura)
  • Acceso de administrador al sistema (es necesario la instalación de programas, emuladores, compiladores…)
  • Navegador web Netscape, Chrome, Safari o Firefox actualizado (versiones no actualizadas pueden presentar problemas funcionales y/o de seguridad)

Bibliografía

Gran parte de los materiales 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.

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… 

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.

Glaser, J. D. (2015). Secure Development for Mobile Apps. How to Design and Code Secure Mobile Applications with PHP and JavaScript. CRC Press.

Hoff, J. y Chapple, M. (2014). Securing the SDLC for Dummies®, WhiteHat Security Edition. John Wiley & Sons, Inc.

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.

Krassowski, A. y Meunier, P. (2008). Secure Software Engineering: Designing, Writing, and Maintaining More Secure Code. Addison-Wesley.

Paul, M. (2014). The official (ISC) 2® guide to the CSSLP. CRC Press

McGraw, G. (2003). Building Secure Software: A Difficult But Critical Step in Protecting Your Business. Cigital, Inc.

McGraw, G. (2005). Software Security: Building Security In. Addison Wesley Professional.

Mead, N. R. y Woody, C. (2016). Cyber Security Engineering: A Practical Approach for Systems and Software Assurance. SEI Series in Software Engineering. Addison-Wesley Professional.

Ransome, J. y Misra, A. (2013). Core Software Security: Security at the Source. Auerbach Publications.

Redwine Jr., S. T. (Editor). (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.

Seacord, R. C. (2013), Secure Coding in C and C++ (2a ed.). SEI Series in Software Engineering. Addison-Wesley Professional.

Shostack, A.(2014). Threat Modeling Designing for Security. John Wiley & Sons, Inc.

Software Engineering Institute (2016). SEI CERT C Coding Standard Rules for Developing Safe, Reliable, and Secure Systems. Carnegie Mellon University

Takanen, A.‎, Demott, J. D. y‎ Miller, C. (2018). Fuzzing for Software Security Testing and Quality Assurance (2a ed.). Artech House.

evaluación

Evaluación y calificación

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)

La calificación se compone de dos partes principales:

calificación

El examen se realiza al final del cuatrimestre y es de carácter PRESENCIAL y OBLIGATORIO. Supone el 60% de la calificación final (6 puntos sobre 10) y para que la nota obtenida en este examen se sume a la nota final, es obligatorio APROBARLO (es decir, obtener 3 puntos de los 6 totales del examen).

La evaluación continua supone el 40% de la calificación final (es decir, 4 puntos de los 10 máximos). 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 es de 15 puntos. Así, puedes hacer las que prefieras hasta conseguir un máximo de 10 puntos (que es la calificación máxima que se puede obtener en la evaluación continua). En la programación semanal de la asignatura, se detalla la calificación máxima de cada actividad o evento concreto puntuables.

SISTEMA DE EVALUACIÓN

PONDERACIÓN
MIN

PONDERACIÓN
MAX

Participación del estudiante (sesiones, foros)

0%

10%

Trabajos, proyectos, laboratorios y casos

20%

30%

Test de autoevaluación

0%

10%

Examen final presencial

60%

60%

 

Ten en cuenta…
Si quieres presentarte solo al examen final, tendrás que obtener una calificación de 5 puntos sobre 6 para aprobar la asignatura.

Profesorado

Javier Bermejo Higuera

Profesor de la Escuela Superior de Ingeniería y Tecnología de UNIR. Doctor en Ingeniería de Armamento y Material.

Formación

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 Defesa. 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.
Es miembro del grupo de investigación Cibersecuritics.es, centrado en Ciberseguridad y Tics de la UNIR.  

Orientaciones para el estudio

Orientación para el estudio

Obviamente, al tratarse de formación on-line 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 Máster. 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 personal con tu profesor-tutor.
  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. Lee siempre el primer apartado, ¿Cómo estudiar este tema?, porque allí te especificamos qué material tienes que estudiar. Consulta, además, las secciones del tema que contienen material complementario (Lo + recomendado y + Información).
  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 profesor-tutor te informarán de las novedades de la asignatura.
En el aula virtual del Máster 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: Ideas clave, Lo + recomendado, + Información, Actividades y Test.

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 profesor tutor.
  • Recuerda que no estás solo: consulta todas tus dudas con tu profesor-tutor utilizando el correo electrónico. Si asistes a las sesiones presenciales virtuales también podrás preguntar al profesor sobre el contenido del tema. 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 y asiste a las sesiones presenciales virtuales. 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!