Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nombre: DNI:
Apellidos:
ESTUDIO ASIGNATURA CONVOCATORIA
MÁSTER UNIVERSITARIO EN
INGENIERÍA DE SOFTWARE Y 01067.- SEGURIDAD EN EL
SISTEMAS INFORMÁTICOS (PLAN Ordinaria
SOFTWARE
2015V2)
CIUDAD DEL
FECHA MODELO
EXAMEN
09-11/07/2021 Modelo - C
Etiqueta identificativa
INSTRUCCIONES GENERALES
1. Ten disponible tu documentación oficial para identificarte, en el caso de que se te
solicite.
2. Rellena tus datos personales en todos los espacios fijados para ello y lee
atentamente todas las preguntas antes de empezar.
3. Las preguntas se contestarán en la lengua vehicular de esta asignatura.
4. Si tu examen consta de una parte tipo test, indica las respuestas en la plantilla según
las características de este.
5. Debes contestar en el documento adjunto, respetando en todo momento el
espaciado indicado para cada pregunta. Si este es en formato digital, los márgenes,
el interlineado, fuente y tamaño de letra vienen dados por defecto y no deben
modificarse. En cualquier caso, asegúrate de que la presentación es suficientemente
clara y legible.
6. Entrega toda la documentación relativa al examen, revisando con detenimiento que
los archivos o documentos son los correctos. El envío de archivos erróneos o un
envío incompleto supondrá una calificación de “no presentado”.
7. Durante el examen y en la corrección por parte del docente, se aplicará el
Reglamento de Evaluación Académica de UNIR que regula las consecuencias
derivadas de las posibles irregularidades y prácticas académicas incorrectas con
relación al plagio y uso inadecuado de materiales y recursos.
Preguntas de Desarrollo
A. Conseguir que los usuarios obtengan una experiencia más segura con la aplicación
después de una compleja configuración.
B. Asegurar que las aplicaciones estén preconfiguradas con contraseñas de
predeterminadas.
C. Conseguir que los usuarios obtengan una experiencia más segura con la aplicación,
sin necesidad de configuración exhaustiva.
D. Ninguna de las anteriores
#include <stdio.h>
#include <string.h>
#define S 100
#define N 1000
int main(int argc, *argv[]) {
out[S];
buf[N];
msg[] = "Bienvenido\n";
int len = 0;
buf[0] = '\0';
printf(msg);
while (argc) {
sprintf(out, "argument %d is %s\n", argc-1, argv[argc-1]);
A. printf(msg)
B. sprintf(out, "argument %d is %s\n", argc-1, argv[argc-1]);
C. len = strlen(buf);
D. strncat(buf,out,sizeof(buf)-len-1);
A. Seguridad de tipos. Los campos que son declarados privados o protegidos o que
tienen protección por defecto deberían ser públicamente accesibles.
B. Campos públicos. Un campo que es declarado público directamente puede no ser
accedido por cualquier parte de un programa Java y puede ser modificado por las
mismas (a no ser que el campo sea declarado como final).
C. Serialización. Esta facilidad posibilita que el estado del programa sea capturado y
convertido en una byte stream que puede ser restaurado por la operación inversa
que es la deserialización.
D. JVM. La JVM en sí misma a menudo está escrita en C para una plataforma dada.
Esto quiere decir que sin la atención cuidadosa a detalles de puesta en práctica, la
JVM en sí misma no susceptible a problemas de desbordamiento.
5. Señalar la respuesta correcta. Cual son de forma general las práctica de seguridad del
software más aplicada:
A. Pruebas de Penetración.
B. Análisis estático de código fuente.
C. Análisis hibrido.
D. Pruebas de escaneos de bugs.
A. El equilibrio que la herramienta hace entre la extensión del código fuente y el tipo de
lenguaje de programación.
B. Porcentaje de falsos positivos y falsos negativos de la herramienta.
C. El conjunto de errores que la herramienta comprueba.
D. Las características de la herramienta para hacerla fácil de usar.
A. Mínimo privilegio.
B. Simplicidad.
C. Ninguna de las anteriores.
D. Defensa en profundidad.
1 X
2 X
3 X
4 X
5 X
6 X
7 X
8 X
9 X
10 X
1. Desarrolle los siguiente puntos acerca del principio de diseño “Registro de Eventos de
Seguridad”:
1. Motivación de su necesidad.
Normalmente los sistemas de auditoria se dedican a registrar las acciones de los usuarios sobre el
sistema, sin embargo un sistema de auditoria también puede registrar las acciones de un atacante, y
construir alrededor de estas, sistemas de alerta que permitirían detener y quizá atrapar al atacante,
minimizando así el impacto que sufre la empresa.
Debido a que las organizaciones ya tienen (normalmente) un sistema de auditoria, ampliar este sistema
para que registre los eventos y/o acciones de un atacante constituye una capa de seguridad de bajo
coste y alto beneficio. Puede pensarse como, tener una casa con las alarmas instaladas, y solo hace falta
encender en sistema. Por supuesto, encender el sistema de alarmas no es suficiente para garantizar el
bloqueo del atacante.
2. Diferencias de los registros de auditoría de seguridad de registro los registros de eventos estándar.
b. Capacidad de gestión de los incidentes. Se capturan eventos relacionados con la seguridad con
el fin de hallar patrones de ataque. Mientras que un registro estandar, se puede usar con fines
de “historias de los usuarios” (un tópico ajeno a la seguridad del software)
(Responder en 2 caras)
Código 1
String delimiter;
if ( args[i].startsWith("--delimiter=") ) {
}
...
try {
...
if (!access(argv[i], O_RDONLY)) {
}
print(fd);
Haciendo uso de un depurador (por ejemplo) el atacante puede hacer una pausa al
programa despues del Tiempo 1 en la línea if (!access(argv[i], O_RDONLY)).
Ahora el atacante entra en su tiempo (tiempo 2) y realiza un unlink sobre el fichero que el
programa abriría en condiciones normales.
Solución:
Eliminar de raiz la posibilidad de la vulnerabilidad TOCTOU mediante la supresión de la linea
if (!access(argv[i], O_RDONLY)) (Que para efectos prácticos es inútil), y abrir directamente el
fichero con la línea fd = open(argv[i], O_RDONLY);