Universidad Pública de Navarra



Año Académico: 2023/2024 | Otros años:  2022/2023  |  2021/2022  |  2020/2021  |  2019/2020 
Graduado o Graduada en Ingeniería Informática por la Universidad Pública de Navarra (Programa Internacional)
Código: 250505 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

Idiomas

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

Subir

Evaluación

Resultados de
aprendizaje
Actividad de
evaluación
Peso (%) Carácter
recuperable
Nota mínima
requerida
R0, R0a, R1, R2 Trabajo final: desarrollo de una aplicación segura 20% No recuperable No hay
R0, R1, R2, R3, R4 Evaluación continua mediante ejercicios de teoría 20% Recuperable mediante prueba escrita Para superar asignatura: 5 sobre 10
R0a, R1 Evaluación continua mediante supuestos prácticos de programación 40% Recuperable mediante examen de laboratorio Para superar asignatura: 5 sobre 10
R0, R1, R2, R3, R4 Prueba escrita sobre contenidos de la materia 20% Recuperable Para superar asignatura: 5 sobre 10

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

  • En el caso de que no haber superado ni el examen ni la parte de evaluación continua, la nota final será la media aritmética de la nota de evaluación continua y de la nota de examen.
  • En el caso de haber superado únicamente el examen o únicamente la parte de evaluación continua, la nota de la asignatura como máximo será 4,5 sobre 10 (suspenso).

Subir

Temario

Tema 1: Conceptos generales

  • Principios básicos de seguridad
  • Control de acceso
  • Control de ejecución
  • Amenazas, Ataques, Vulnerabilidades, Debilidades
  • Organismos (OWASP, CWE,...) y bases de datos (Exploit-DB, NVD).

Tema 2: Vulnerabilidades

  • Revisión de vulnerabilidades más frecuentes
  • Seguridad para la web

Tema 3: Buenas prácticas de desarrollo seguro

  • Métricas de seguridad
  • Modelos de desarrollo seguro
  • Pruebas de seguridad
  • Análisis de código estático

Tema 4: Programación segura en plataformas comerciales

  • Seguridad en plataforma Java SE 11
  • 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

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

Lugar de impartición

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

Subir