Última revisión realizada: 26/10/2020
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 |
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 básicas.
Competencias generales.
Competencias transversales.
Competencias específicas.
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
Errores y excepciones
Privacidad y confidencialidad
Programas privilegiados
Referencias
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:
En la programación semanal puedes consultar cuáles son las actividades concretas que tienes que realizar en esta asignatura.
Estas actividades formativas prácticas se completan, por supuesto, con estas otras:
Las horas de dedicación a cada actividad se detallan en la siguiente tabla:
ACTIVIDADES FORMATIVAS |
HORAS | %PRESENCIAL |
Sesiones presenciales virtuales | 8 |
100% |
Recursos didácticos audiovisuales | 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 |
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:
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.
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.
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:
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.
SISTEMA DE EVALUACIÓN |
PONDERACIÓN |
PONDERACIÓN |
Participación del estudiante |
0% |
10% |
Trabajos, proyectos, laboratorios y casos |
20% |
30% |
Test de autoevaluación |
0% |
10% |
Examen final presencial |
60% |
60% |
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.
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:
Ten en cuenta estos consejos…
|