Titulación | Tipo | Curso | Semestre |
---|---|---|---|
2503758 Ingeniería de Datos | OT | 4 | 0 |
Dominio de algún lenguaje de programación: Java, Python o C/C++.
El estudiante aprenderá sobre secguridad del software durante todas las etapas del ciclo de desarrollo del software (SDLC): Metodologías para diseñar software seguro, programar utilizando técnicas de programación segura, metodologías para la evaluación de vulnerabilidades en profundidad (auditoría de software), herramientas estáticas y dinámicas de análisis de codigo para detectar vulnerabilidadesm y defensas del sistema para reducir amenzadas de seguridad.
1. Introdución y terminología básica.
2. Pensar como un atacador.
3. Programación segura:
3.1. Buffer overflow.
3.2. Errores numéricos.
3.3. Serialización.
3.4. Excepciones.
3.5. Ataques de injección.
3.5.1. Injección SQL.
3.5.2. Injección de comandos.
3.5.3. Injección XML.
3.5.4. Injección de código.
3.6. Directory traversal.
3.7. Atques Web.
3.7.1. Cross Site Scripting (XSS)
3.7.2. Cross Site Request Forgery (CSRF).
3.7.3. Gestión de sesiones.
3.7.4. Redirecciones.
3.8. Seguridad en dispositivos móviles.
4. Diseño seguro. Modelado de riesgos.
5. Detección de vulnerabilidades. Metodología FPVA.
6. Herramientas de detección de vulnerabilidades.
7. Fuzz testing.
Hay 4 horas de docencia a la semana, repartidas en 2 sesiones de 2 horas. Durante cada sesión se expondrá un tema teórico y se realizarán ejercicios prácticos relacionados con el tema expuesto. Para ello es necesario que los alumnos tengan su propio portátil.
El contenido de cada clase se detallará en la prgramación que estará disponible en campus virtual antes del primer día de clase.
Nota: se reservarán 15 minutos de una clase dentro del calendario establecido por el centro o por la titulación para que el alumnado rellene las encuestas de evaluación de la actuación del profesorado y de evaluación de la asignatura o módulo.
Título | Horas | ECTS | Resultados de aprendizaje |
---|---|---|---|
Tipo: Dirigidas | |||
Actividades autónomas | 100 | 4 | 1, 2, 3, 4, 5 |
Clases teóricas con ejercicios prácticos | 44 | 1,76 | 1, 2, 3, 4, 5 |
Se realizarán 2 o 3 pruebas escritas durante el cuatrimestre. Esas pruebas tendrán un peso de 60% del total de la calificaciación de la asignatura.
Cada tema tendrá un ejercio práctico. Asociado a cada ejercicio los alumnos tendrán que entregar un pequeño informe. El peso de estos ejercicios es 40%.
Título | Peso | Horas | ECTS | Resultados de aprendizaje |
---|---|---|---|---|
2 o 3 controles de teoría | 60% | 3 | 0,12 | 1, 2, 3, 4, 5 |
Ejercicios prácticos | 40% | 3 | 0,12 | 1, 2, 3, 4, 5 |
Introduction to Software Security por Loren Kohnfelder, Elisa Heymann y Barton Miller. Disponible en: http://research.cs.wisc.edu/mist/SoftwareSecurityCourse/
Los alumnos recibirán una imagen de VirualBox que contendrá todo el software necesario para realizar los la mayoría ejercicios de la asignatura. Este software incluye lenguajes de programación y múltiples herramientas.
Los alumnos deberán descargar e instalar Android studio para programar dispositivos móviles.
Igualmente tendrán que descargar MS Thread Modeling Tool.