1 of 16

TIA: DEFINICIÓN DE REQUISITOS DE SEGURIDAD DEL SOFTWARE SIAG

Integrantes:

Angélica María Gómez Martínez

Mónica Selena Erazo Polo

Grupo:

281

2 of 16

Software para la Universidad Global

Luego de haber ordenado un análisis de riesgos al software del Sistema de Información Académico y Gestión (SIAG), el decano está solicitando la definición de requisitos de seguridad para la siguiente mejora al sistema:

El sistema de Información Académico y Gestión SIAG, actualmente solo permite interactuar con estudiantes, docentes y proveedores desde computadores locales en la red interna de la Universidad, sin embargo con el avance de Internet, la Universidad considera que se debe facilitar la interacción con el SIAG a través de la Web y dispositivos móviles (celulares y tabletas) pero preocupa la seguridad contemplada en los siguientes puntos.

2

Caso de estudio

3 of 16

La interacción a través de la Web y dispositivos móviles contempla:

  • Los profesores podrán digitar las notas
  • Los profesores podrán consultar sus pagos laborales
  • Los estudiantes podrán matricular y cancelar asignaturas
  • Los estudiantes podrán consultar la notas
  • Los estudiantes podrán consultar su balance académico
  • La universidad entregará información financiera o cobro de servicios a los estudiantes

3

Interfaces para la interacción del aplicativo

4 of 16

1. Se debe realizar un análisis de requisitos de seguridad mediante la metodología de árboles de ataque a los componentes de software que resulten de las interacciones desde la Web o dispositivos móviles.

2. Definir los requisitos de seguridad para la interacción con las interfases solicitadas.

3. Mediante diagramas UML, se deben presentar los casos de Abuso para cada uno de los componentes.

4

Actividades

5 of 16

1. Se debe realizar un análisis de requisitos de seguridad mediante la metodología de árboles de ataque a los componentes de software que resulten de las interacciones desde la Web o dispositivos móviles.

Análisis de necesidades de los componentes:

https://drive.google.com/file/d/1FXsr59IQwST_uQInXGZr_5rtO6uIgpwU/view?usp=share_link

Árbol de ataque con identificación de vulnerabilidades y ataques a los componentes del software:

Parte 1:

https://drive.google.com/file/d/1CiMsVb6hmC_DDut4JpHx_0Q3sEu_KhVW/view?usp=share_link

Parte 2:

https://drive.google.com/file/d/1D7xe9ayRQDlDd6pNmof0f3_H036VgBPe/view?usp=sharing

5

Solución

6 of 16

2. Definir los requisitos de seguridad para la interacción con las interfases solicitadas.

Los requisitos de seguridad para las interacciones web y de aplicación móvil son:

Autenticación y autorización:

  • Para ingresar al sistema mediante una aplicación móvil y web, el sistema requiere el uso de contraseñas fuertes y seguras, que contengan, caracteres alfanuméricos, símbolos y longitud mínima.
  • El sistema requiere la autenticación de dos factores (2FA) o autenticación multifactor para agregar una capa adicional de seguridad.
  • El sistema debe permitir almacenar las contraseñas de los usuarios de forma segura utilizando técnicas de encriptación fuerte, como el uso de algoritmos hash seguros y salting para proteger contra ataques de robo de contraseñas.
  • El sistema ejecutará una función de set timeout pasados 5 minutos de inactividad
  • El sistema al detectar más de tres intentos en el inicio de sesión, bloqueará el acceso temporal para prevenir ataques de fuerza bruta.
  • El sistema debe implementar una comunicación segura, mediante protocolos para cifrar la comunicación entre las aplicaciones y el servidor
  • El sistema debe sanitizar los datos de entrada para evitar ataques de inyección.
  • El sistema requiere el uso de un gestor de sesiones que incluya tokens de sesión seguros y tiempos de expiración adecuados.
  • El sistema debe contar con actualización constante en los parches de seguridad debido a la información sensible que se maneja en el SIAG.

6

Solución

7 of 16

  • Cifrado y seguridad de datos

  • El sistema debe implementar todas las comunicaciones entre la aplicación y el servidor que se realicen a través de protocolos HTTPS para cifrar los datos en tránsito.
  • El sistema requiere autenticación sólida para acceder a datos sensibles.
  • El sistema debe implementar un sistema de autorización para garantizar que los usuarios solo accedan a los datos a los que tienen permiso.
  • El sistema debe implementar una gestión segura de sesiones, con tokens de sesión seguros y tiempos de expiración adecuados, para evitar el secuestro de sesiones.

Seguridad en Aplicaciones Web:

  • El sistema debe validar y sanitizar todos los datos de entrada para prevenir ataques de inyección.
  • El sistema debe implementar medidas para prevenir ataques de solicitud falsificada entre sitios (CSRF).
  • El sistema debe aplicar medidas de seguridad para prevenir ataques de scripts entre sitios (XSS).

7

Solución

8 of 16

Seguridad en Aplicaciones Móviles:

  • El sistema debe permitir encriptar datos almacenados en el dispositivo móvil y protegerlos contra el acceso no autorizado.
  • En caso de que el dispositivo utilice autenticación biométrica, el sistema debe permitir que se almacenen y utilicen los datos de manera segura.

Seguridad de API y Servicios Web:

  • El sistema debe proteger las API con autenticación sólida y autorización para acceder a datos o realizar acciones específicas.
  • Se deben implementar controles de acceso a nivel de API para garantizar que solo las aplicaciones autorizadas puedan acceder a los datos.
  • Se requiere validar y sanitizar todas las entradas de datos de las API para prevenir ataques de inyección.
  • Se requiere utilizar firmas digitales y verificación de integridad de datos en las API para proteger contra la manipulación de datos en tránsito.

8

Solución

9 of 16

Actualización y parches de seguridad

  • El sistema debe establecer un sistema de seguimiento de vulnerabilidades para recibir notificaciones sobre nuevas vulnerabilidades que afecten a los componentes utilizados.
  • El sistema debe informar a los usuarios sobre la aplicación de parches de seguridad, especialmente si la actualización afectará su experiencia o requerirá cambios en la aplicación.
  • El sistema debe mantener un inventario actualizado de todos los componentes y bibliotecas de terceros utilizados en la aplicación web y móvil, incluyendo versiones específicas.
  • El sistema debe implementar la programación la aplicación de parches en momentos que minimicen el impacto en los usuarios, como en períodos de bajo tráfico.
  • El sistema debe contar con un plan de respaldo y restauración en caso de que la aplicación de un parche cause problemas significativos.
  • El sistema debe registrar y documentar todas las actualizaciones y cambios realizados como parte de la aplicación de parches de seguridad.
  • El sistema debe permitir probar los parches en un entorno de desarrollo o pruebas para asegurarse de que no causen problemas o conflictos con la funcionalidad existente.
  • El sistema permite evaluar el impacto potencial de aplicar un parche en la funcionalidad de la aplicación, especialmente en situaciones críticas o entornos de producción.

9

Solución

10 of 16

Gestor de contraseñas

  • El sistema permite que el gestor de contraseñas deba utilizar cifrado sólido y seguro para proteger las contraseñas almacenadas.
  • El sistema debe permitir que las contraseñas deben almacenarse de manera segura en un formato que sea resistente a ataques de robo de contraseñas.
  • El sistema requiere autenticación sólida, como contraseñas maestras o autenticación biométrica, para acceder al gestor de contraseñas.
  • El sistema permite a los usuarios almacenar y gestionar múltiples contraseñas y credenciales de inicio de sesión.
  • El sistema debe ofrecer funcionalidad de sincronización y copia de seguridad para que los usuarios no pierdan sus contraseñas si cambian de dispositivo.
  • El sistema debe registrar y auditar las actividades relacionadas con el gestor de contraseñas, como inicios de sesión y cambios de contraseñas.
  • El sistema debe implementar medidas de seguridad adicionales para proteger la contraseña maestra, cómo bloqueo de acceso después de varios intentos fallidos.

10

Solución

11 of 16

Protección de datos personales

  • El sistema debe obtener el consentimiento informado de los usuarios antes de recopilar y procesar sus datos personales.

  • El sistema debe permitir a los usuarios ejercer sus derechos bajo regulaciones de protección de datos, como el derecho de acceso, rectificación, eliminación y portabilidad de datos.

  • El sistema debe implementar medidas de seguridad adecuadas, como cifrado y control de acceso, para proteger los datos personales contra accesos no autorizados.

  • El sistema debe ejecutar un proceso para notificar a los usuarios y a las autoridades de protección de datos en caso de una violación de seguridad que afecte a datos personales.

  • Se debe definir un período de retención de datos y eliminar datos personales cuando ya no sean necesarios para la finalidad para la que se recopilaron.

  • Se deben realizar auditorías periódicas para garantizar el cumplimiento continuo de las regulaciones de protección de datos.

  • Se debe implementar un proceso para gestionar solicitudes de derechos de los usuarios de manera eficiente y en un plazo determinado.

11

Solución

12 of 16

Copias de seguridad

  • Se deberá determinar con qué frecuencia se deben realizar copias de seguridad, lo que dependerá de la criticidad de los datos y la frecuencia de cambios en la aplicación.
  • Se deben utilizar copias de seguridad incrementales para minimizar el uso de recursos y el tiempo de copia de seguridad.
  • Como requisito el equipo encargado debe almacenar las copias de seguridad en ubicaciones seguras, protegidas contra accesos no autorizados, desastres naturales y daños físicos.
  • Se deben cifrar las copias de seguridad para proteger los datos almacenados en caso de robo o acceso no autorizado.
  • Se deben implementar controles de acceso estrictos para garantizar que solo personal autorizado pueda acceder y restaurar las copias de seguridad.
  • Se debe establecer un proceso para notificar a la administración y al equipo de seguridad en caso de problemas con las copias de seguridad.
  • El sistema debe automatizar el proceso de copias de seguridad para garantizar la consistencia y reducir el riesgo de errores humanos.

12

Solución

13 of 16

Auditoría y registro de eventos

  • El sistema permite registrar eventos de manera detallada, incluyendo marcas de tiempo, identificaciones de usuario, acciones específicas y detalles sobre los recursos o datos involucrados.
  • El sistema debe proteger la integridad de los registros de eventos para prevenir alteraciones no autorizadas.
  • El equipo encargado debe almacenar los registros de eventos en ubicaciones seguras y protegidas contra accesos no autorizados, y establecer políticas de retención.
  • El sistema debe cifrar los registros de eventos para garantizar la confidencialidad de la información sensible.
  • El sistema debe limitar el acceso a los registros de eventos a personal autorizado y mantener registros de quién accede a ellos.
  • El sistema debe implementar registros en tiempo real para la detección y respuesta inmediata a eventos de seguridad.
  • El equipo encargado debe configurar notificaciones automáticas para eventos críticos o sospechosos que requieran atención inmediata.
  • El equipo encargado debe utilizar registros de eventos para respaldar la gestión de incidentes y la investigación forense en caso de violaciones de seguridad.

13

Solución

14 of 16

Protección contra ataques

  • El sistema debe implementar un WAF para proteger la aplicación contra ataques comunes, como inyección SQL, ataques de scripts entre sitios (XSS) y otros.
  • El sistema debe validar y filtrar todas las entradas de datos de usuario para evitar ataques de inyección, como inyección SQL y comandos.
  • El sistema debe utilizar medidas de seguridad, como la codificación de salida y Content Security Policy (CSP), para proteger contra ataques de scripts entre sitios (XSS).
  • El sistema debe gestionar las sesiones de usuario de forma segura, utilizando tokens de sesión seguros y tiempos de expiración adecuados.
  • En la implementación de seguridad el equipo debe utilizar tokens de autenticación seguros, como JSON Web Tokens (JWT), y protegerlos contra robos y manipulaciones.
  • El sistema debe implementar un sistema de autorización sólido para garantizar que los usuarios solo accedan a los recursos para los que tienen permiso.
  • El equipo encargado debe aplicar medidas para prevenir ataques de solicitud falsificada entre sitios (CSRF), como tokens anti-CSRF.
  • El sistema debe validar y restringir la carga de archivos y garantizar que los archivos se almacenen de forma segura.
  • El equipo encargado debe realizar escaneos regulares de seguridad para identificar vulnerabilidades y debilidades en la aplicación.

14

Solución

15 of 16

3. Mediante diagramas UML, se deben presentar los casos de Abuso para cada uno de los componentes.

Enlace del documento con los casos de abuso:

https://docs.google.com/document/d/1tvrJd1sL2Pzj345C2MyozUCHa0VL_YBKSBUA5jB5B0U/edit?usp=sharing

15

Solución

16 of 16