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

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

Relación actividades formativas-competencias/resultados de aprendizaje

Competencia
Actividad formativa
G1, G3, G5, G7, G9
A-1, A-3, A-4, A-5, A-6, A-7, A-8, A-9, A-10
T1
A-2, A-6, A-8, A-9, A-10
T4
A-3, A-4, A-6, A-8, A-9, A-10
T7
A-1, A-4, A-6, A-8, A-9, A-10
T8
A-6, A-7, A-8, A-9, A-10
T10
A-1, A-2, A-3, A-4, A-5, A-6, A-7, A-8, A-9, A-10
IS1, IS4, IS5, IS7-A
A-1, A-3, A-4, A-5, A-6, A-7, A-8, A-9, A-10

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

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

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