Universidad Pública de Navarra



Año Académico: 2021/2022 | Otros años:  2020/2021  |  2019/2020  |  2018/2019  |  2017/2018 
Graduado o Graduada en Ingeniería Informática por la Universidad Pública de Navarra
Código: 240505 Asignatura: PROGRAMACIÓN SEGURA
Créditos: 6 Tipo: Optativa Curso: Periodo: 1º S
Departamento: Estadística, Informática y Matemáticas
Profesorado:
ALDAZ ZARAGUETA, MIGUEL ANGEL (Resp)   [Tutorías ] ARDAIZ VILLANUEVA, OSCAR   [Tutorías ]

Partes de este texto:

 

Módulo/Materia

Módulo: Mención Ingeniería del Software

Materia: Organización y Gestión de Sistemas Informáticos

Subir

Descripción/Contenidos

En la asignatura se distinguen dos bloques de contenidos.

En un bloque se introducen y aplican algunos de los elementos de seguridad que incorpora la plataforma Java SE para el desarrollo de aplicaciones seguras: criptografía, autenticación y control de ejecución. El objetivo final es desarrollar una sencilla aplicación distribuida a ejecutar sobre una red local; en esa aplicación se habrán incorporado medidas de control de acceso, control de ejecución y elementos que garanticen la integridad y confidencialidad en la información transmitida.

En otro bloque se describen problemas de seguridad que se originan tanto en las fases de analisis y diseño de una aplicación como en la de desarrollo de su código. Se explican las buenas prácticas para realizar un desarrollo fiable y se introducen metodologías de desarrollo seguras. También se presentan los organismos externos que promueven el desarrollo seguro de software y sus recomendaciones y se definen métricas para evaluar la seguridad del software. Se realizara un trabajo de analisis y diseño siguiendo las buenas prácticas y metodologias de desarrollo seguro.

Subir

Competencias genéricas

G1 - Capacidad para concebir, redactar, organizar, planificar, desarrollar y firmar proyectos en el ámbito de la ingeniería en informática que tengan por objeto la concepción, el desarrollo o la explotación de sistemas, servicios y aplicaciones informáticas.

G3 - Capacidad para diseñar, desarrollar, evaluar y asegurar la accesibilidad, ergonomía, usabilidad y seguridad de los sistemas, servicios y aplicaciones informáticas, así como de la información que gestionan.

G5 - Capacidad para concebir, desarrollar y mantener sistemas, servicios y aplicaciones informáticas empleando los métodos de la ingeniería del software como instrumento para el aseguramiento de su calidad.

G7 - Capacidad para conocer, comprender y aplicar la legislación necesria durante el desarrollo de la profesión de Ingeniero Técnico en Informática y manejar especificaciones, reglamentos y normas de obligado cumplimiento.

G9 - Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.

T1 - Capacidad de análisis y síntesis

T4 - Resolución de problemas

T7 - Razonamiento crítico

T8 - Aprendizaje autónomo

T10 - Motivación por la calidad

 

 

Subir

Competencias específicas

Competencias específicas:

  • IS1 - Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la Ingeniería del Software.
  • IS4 - Capacidad de identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales.
  • IS5 - Capacidad de identificar, evaluar y gestionar los riesgos potenciales asociados que pudieran presentarse.

Competencias adicionales:

  • IS7-A Capacidad de optar a diferentes certificaciones del ámbito de la ingeniería del informática y de la gestión de sistemas de información.

Subir

Resultados aprendizaje

R0 - Detectar e identificar vulnerabilidades en el código de las aplicaciones para diferentes arquitecturas y ser capaz de eliminarlas.
R0a - Incorporar elementos que refuercen la seguridad de una aplicación: metodos criptográficos, autenticación y control de ejecución.
R1 - Conocer las buenas prácticas para realizar desarrollos fiables.
R2 - Conocer buenas prácticas que incorporen la seguridad en la gestión del desarrollo de software.
R3 - Conocer las buenas prácticas que proponen organismos externos como ISACA, SEI, ITIL, ISO, etc. para la gestión del desarrollo integrando aspectos de seguridad.
R4 - Conocer los estándares de métricas de niveles de seguridad del software para su evaluación externa.

Subir

Metodología

Metodología - Actividad
Horas Presenciales
Horas no presenciales
A-1 Clases expositivas/participativas
15 (aula)
0
A-2 Preparación de presentaciones de trabajos, proyectos, etc.
0
5
A-3 Aprendizaje basado en problemas y/o casos en grupos reducidos
15 (aula)
0
A-4 Sesiones prácticas en grupos reducidos
30 (laboratorio)
0
A-5 Tutorías en grupos muy reducidos
4,5 (consultas individuales)
0
A-6 Actividades de evaluación
3 (exámenes)
0
A-7 Estudio autónomo
0
12,5 (repaso y preparación de actividades de evaluación)
A-8 Elaboración de trabajos y/o proyectos y escritura de memorias
0
10
A-9 Programación/experimentación u otros trabajos en ordenador/laboratorio
0 42,5 (para completar tareas de laboratorio)
A-10 Resolución de problemas, ejercicios y otras actividades de aplicación
0 12,5
Total
67,5
82,5

Subir

Evaluación

 

Resultado de aprendizaje Sistema de evaluación Peso (%) Carácter recuperable
R1, R2, R3, R4, R5 Memoria de trabajo:  análisis de código de una aplicación segura  10%  No recuperable
R1, R2, R3 Trabajo final: desarrollo de una aplicación segura  10% No recuperable
R1, R2, R3 Evaluación continua mediante ejercicios de teoría  25%   Nota mínima para que pondere en calificación final: 4,5 sobre 10 en cada tarea. Recuperable entregando la tarea corregida según indicaciones y fechas establecidas por el profesor
R1, R2, R3 Evaluación continua mediante supuestos prácticos  25%   Nota mínima para que pondere en calificación final: 4,5 sobre 10 en cada tarea. Recuperable realizando un examen de laboratorio de contenidos aplicados.
R1, R2, R3, R4, R5 Prueba escrita sobre contenidos de la materia  30%    Nota mínima para poder superar la asignatura: 4,5 sobre 10. Recuperable mediante prueba escrita

Sobre la evaluación continua:

  • La nota final que corresponde a la evaluación continua mediante ejercicios de teoría es el resultado de calcular la media aritmética de las notas obtenidas en los diferentes ejercicios propuestos. Al calcular esa media se tendrá en cuenta la condición individual de nota mínima para ponderación de cada ejercicio.
  • La nota final que corresponde a la evaluación continua mediante supuestos prácticos es el resultado de calcular la media aritmética de las notas obtenidas en los diferentes supuestos prácticos propuestos. Al calcular esa media se tendrá en cuenta la condición individual de nota mínima para ponderación de cada supuesto práctico.
  • Cuando la nota final de la evaluación continua mediante supuestos prácticos no alcance los 4,5 puntos sobre 10, el estudiante podrá realizar un examen de contenidos aplicados en el periodo de recuperación para superar esa parte de evaluación de la asignatura.
  • La nota de evaluación continua de la asignatura se obtiene como media de la nota final obtenida en los ejercicios de teoría y de la nota final obtenida en los supuestos prácticos.

Sobre la puntuación que se traslada al acta de la asignatura:

  • Tanto la evaluación continua como el examen final se consideran superados cuando se ha conseguido una puntuación de 4,5 sobre 10.
  • En el caso de haber superado tanto el examen como la evaluación continua, la nota final de la asignatura será la suma ponderada de la nota de evaluación continua (50%), la nota de los trabajos finales (20%) y del examen (30%).
  • En el caso de que no haber superado ni el examen ni la parte de evaluación continua, la nota final de la asignatura será la suma ponderada de la nota de evaluación continua (50%) y del examen (50%).
  • En el caso de haber superado únicamente el examen o únicamente la parte práctica, la nota que se traslade al acta será la obtenida en la parte no superada.

Subir

Temario

Tema 1: Conceptos generales de seguridad informática

  • Fiabilidad del software
  • Seguridad del software
  • Principios básicos de seguridad
  • Control de acceso
  • Control de ejecución
  • Revisión de vulnerabilidades más frecuentes
  • Seguridad para la web

Tema 2: Desarrollo de software seguro

  • Buenas prácticas de desarrollo
  • Métodos formales
  • Patrones de seguridad

Tema 3: Integración de la seguridad en el desarrollo de software

  • Gestión del desarrollo de software fiable
  • Revisiones
  • Métricas de seguridad

Tema 4: Normas y certificaciones

  • Organismos
  • Normas
  • Certificaciones

Tema 5: Programación segura en plataformas comerciales

  • Seguridad en plataforma Java SE 8
  • Extensión criptográfica JCE
  • Control de ejecución
    • Gestor de seguridad
    • Políticas de permisos
    • Ejecución privilegiada
  • Control de Acceso
    • Servicio JAAS
    • Infraestructura Kerberos
  • Interfaz JGSS

El tema 5 se desarrolla enteramente en laboratorio a lo largo del semestre.

Subir

Bibliografía

Acceda a la bibliografía que el profesorado de la asignatura ha solicitado a la Biblioteca.


  • Bibliografía básica
    • M. G. Graff, K. R. van Wyk. Secure Coding. Principles and Practices. O'Reilly, 2003.
    • F. Long, D. Mohindra, R. C. Seacord, D. F. Sutherland, D. Svoboda. The CERT Oracle Secure Coding Standard for Java. Addison-Wesley, 2012.
  • Bibliografía complementaria

Subir

Idiomas

Castellano; buena parte de la documentación en inglés.

Subir

Lugar de impartición

Aula asignada por la ETSIIT; laboratorio de informática asignado por el servicio informático de la Universidad.

Subir