Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Apellidos:
Seguridad en el
Software
Nombre:
Actividades
Objetivos
Una amenaza para cualquier sistema es cualquier actor, agente, circunstancia o evento
que tiene el potencial de causarle daño o a los datos y recursos del mismo. Con la
presente actividad a se pretende conseguir los siguientes objetivos:
Descripción de la actividad
Caso práctico
Los objetivos de seguridad establecidos para la tienda web de Librería On-Line SA son
los siguientes objetivos:
El sistema estará basado en una típica arquitectura de una aplicación web de tres capas,
donde el cliente es un navegador que accede a los servicios proporcionados por el sitio
web de la librería, que contiene una base de datos de los clientes, cuentas y
publicaciones disponibles, alojada en un servidor de bases de datos y un servidor web
que implementa toda la lógica de negocio.
Tener en cuenta que nos encontramos en la fase análisis de requisitos del SDLC,
identificando requisitos funcionales y de seguridad. Una vez identificados y
comprendidos los objetivos de seguridad, procederemos a realizar el modelado de
amenazas conforme al método explicado en la clase magistral (Modelado de amenazas)
de este tema, que se resume en el diagrama siguiente (figura 1).
1. Modelado de la Aplicación
Los requisitos que se establecen para los actores, tanto humanos como de otro tipo,
son los siguientes:
» Los clientes deben poder buscar productos y realizar sus pedidos utilizando la
tienda web o llamando a la oficina de ventas.
» Los agentes de ventas pueden conceder descuentos a los clientes.
» Los administradores pueden modificar y eliminar la información del cliente y del
producto.
» La base de datos deberá copiarse periódicamente a una ubicación de un tercero,
Proveedor de servicios IT, para propósitos de recuperación ante desastres.
» Los eventos del sistema se almacenarán de forma periódica en un servidor de log
centralizado de la compañía. Se transmitirán de forma cifrada y con protección de
su integridad.
Esto nos ayuda a identificar tres actores humanos del sistema: clientes, agentes
de ventas y administradores. Entre los actores no humanos se pueden incluir
procesos que respaldan periódicamente los datos a la ubicación de Proveedor de
servicios IT, procesos de almacenamiento de log, etc.
Se asigna un identificador único a cada actor. Se utiliza para poder realizar una
referencia cruzada de los actores y su nivel de confianza con los puntos de entrada y
los activos.
Id Nombre Descripción
válidas
6 Administrador del sitio Administrador del sitio web que puede configurar y
web administrar el sitio web de la compañía.
7 Proceso del usuario del Proceso que en el servidor web ejecuta código de usuario y
servidor web se autentica contra el servidor de base de datos.
10 Proceso de back-up Proceso que realiza una copia periódica de la base de datos
en una ubicación de un tercero.
11 Proceso de realización de Proceso que realiza el pago de los pedidos con tarjeta de
pagos. crédito.
Identificar activos
3 Datos inicio de Las credenciales que el cliente utilizará para (2), (4), (5),
iniciar sesión en el sitio web de la compañía
Accesos a los log del Capacidad para auditar todos los eventos
sistema auditables que ocurrieron dentro del
18
sistema de ventas de la «Librería On-Line
SA».
Tabla 1. Tabla de Activos.
Si lo considera puede completar más la tabla con nuevos activos que considere en su
diseño. Se tendrá en cuenta en la nota final.
La matriz de control de acceso a los datos indica los derechos y privilegios Create
(C), Read (R), Update (U) o Delete (D) que los actores tendrán sobre los diferentes
tipos de datos del sistema.
Usuarios (roles)
Datos de Clientes C, R, U, D
Datos de productos
Datos
Datos de pedidos
El alumno deberá completar la tabla con los derechos y privilegios Create (C), Read
(R), Update (U) o Delete (D) que los actores tendrán sobre los diferentes tipos de
datos del sistema.
Los usuarios se conectarán a la aplicación web a través del puerto 443 (https). La
aplicación web se conectará a la base de datos del servidor SQL a través del puerto
1433 (mediante TCP/IP). Cuando los usuarios usan un protocolo https sobre el
puerto 443, el certificado SSL también se considera un componente y necesitará
estar protegido contra amenazas de falsificación, robo e integridad.
Los puntos de entrada son aquellos elementos que incorporan la entrada del usuario
y definen las interfaces a través de las cuales los potenciales agentes maliciosos
pueden interactuar con la aplicación con el objetivo de introducir datos con carácter
malicioso. Para atacar una aplicación deben existir puntos de entrada; por lo tanto,
constituyen una fuente potencial de amenaza. Cada uno debe ser explícitamente
identificado y salvaguardado. Los puntos de entrada en una aplicación web pueden
incluir cualquier página que tenga en cuenta la entrada del usuario.
Algunos de los puntos de entrada identificados en la tienda web del ejercicio pueden
ser los siguientes:
Puntos de entrada
1 Puerto HTTPS El sitio web de la compañía «Librería On- (1), (2), (3), (4)
Line SA» es solamente accesible a través del
protocolo TLS. Todas las páginas dentro del
sitio web están en capas desde este punto de
entrada.
Si lo considera puede completar más la tabla con nuevos activos que considere en su
diseño. Se tendrá en cuenta en la nota final.
1.3.3. Identificar puntos de salida
Los puntos de salida son aquellos elementos que muestran información desde el
sistema. Los puntos de salida también incluyen procesos que extraen datos del
sistema. Los puntos de salida pueden ser la fuente de fuga de información y deben
estar igualmente protegidos. Algunos de los puntos de salida identificados en la
tienda web de la compañía «Librería On-Line SA» son los siguientes:
Puntos de salida
Si lo considera puede completar más la tabla con nuevos activos que considere en su
diseño. Se tendrá en cuenta en la nota final.
Dependencias externas
ID Descripción
Para la realización del DFD se utilizará la herramienta Threat Análisis and Modeling
Tool 2016 de la compañía Microsoft, accesible desde el aula virtual o a través del
siguiente enlace: https://www.microsoft.com/en-us/download/details.aspx?id=49168
Como ayuda a su manejo, aparte de los manuales que se pueden descargar con esta
herramienta, se aconseja visionar estos dos vídeos:
Una vez instalada la herramienta, para la realización de DFD hay que trabajar en la
vista de diseño, que se obtiene al pulsar «View → Design View» en el menú, tal y
como se muestra en la figura siguiente:
Figura 4. Vista de diseño de la herramienta Threat Analysis and Modeling Tool 2016.
Una vez en esta vista, hay que empezar a realizar el diagrama DFD conforme a todos
los datos obtenidos en las etapas anteriores, de forma que sea acorde a la topología
lógica indicada en la figura 2. En el cuadro de la derecha (Stencil) están los
diferentes elementos que se pueden elegir para realizar el diagrama, con más
extensión que lo indicado en el resumen de la figura 3.
2. Identificación de amenazas
Una vez realizado el diagrama DFD pasamos a la vista de análisis, pulsando «View
→ Analysis View» en el menú. Al pasar a esta, la herramienta calcula
automáticamente las amenazas sugeridas para el diagrama de flujo de datos
dibujado. Al clicar en cada una de ellas vemos información en detalle de estas y
algún formulario para introducir más información, como podrían ser las
salvaguardas que la mitiguen y su justificación.
Figura 6. Vista de análisis de la herramienta Threat Analysis and Modeling Tool 2016.
Figura 7. Relación entre las amenazas del método STRIDE y los elementos de un diagrama DFD.
Accede al enlace a través del aula virtual o desde la siguiente dirección web:
ftp://descargasescueladeingenieria@ftp01.unir.net/uploads/05%20Seguridad_del_Sof
tware/caso1.tb7
Aplicación de Plantilla
Una vez realizado el análisis automático de las amenazas, hay que documentarlas.
Para ello hay que rellenar la tabla siguiente: hay que rellenarla manualmente con
cada una de las amenazas obtenidas con la herramienta, indicando su objetivo y las
técnicas de ataque. Se adjunta un ejemplo.
Descripción de
Inyección de comandos SQL
la amenaza
Descripción de
la amenaza
Objetivo
Técnicas de
ataque
Tabla 7. Documentación de las amenazas.
Una vez que tenemos identificada la lista de amenazas, el siguiente paso consiste en
puntuarlas de acuerdo con el riesgo que suponen. Esto nos permitirá priorizar las
actuaciones a efectuar para mitigar el riesgo.
Inyección de 3 2 2 3 3 7 6 42
comandos SQL
3. Mitigación
asumir. Puede decidirse no hacer nada, y aceptar el riesgo, cuando el impacto es bajo
o si la mitigación fuese demasiado costosa comparada con el riesgo asociado.
Generalmente se optará por mitigarla mediante alguna contramedida o salvaguarda.
Por último, se puede transferir el riesgo a una tercera parte: por ejemplo, al usuario
u a otra aplicación que interactúe con la nuestra.
Para las amenazas identificadas hay que seleccionar una serie de salvaguardas que
mitiguen su riesgo asociado a la misma: restricciones arquitectónicas, técnicas
criptográficas, mecanismos de autenticación, algoritmos seguros, etc., que nos
permitan solucionar los problemas planteados.
Descripción de
Inyección de comandos SQL
la amenaza
Descripción de
la amenaza
Medidas
mitigación
Tabla 9. Salvaguardas.
Como ayuda para seleccionar las salvaguardas a incluir en la aplicación para mitigar
las amenazas, se incluye el dibujo siguiente (figura 11).
» No almacenamiento de secretos.
» Protocolos seguros.
» Encriptado.
4. Validación
» Rediseñar.
» Usar salvaguardas estándar.
Presentación de la memoria
Incluir el fichero con extensión .tm7 que genera la herramienta y el informe que se
puede generar con esta.
Rúbrica
Título de la
Puntuación
actividad Peso
Descripción máxima
(valor real: 4 %
(puntos)
puntos)
Criterio 1 Relleno de la Tabla de Activos 0,5 5%
Criterio 2 Matriz de control de accesos 0,5 5%
Relleno de la Tabla: Puntos de entrada
Criterio 3 1 10%
de la aplicación
Criterio 4 Relleno de la Tabla: Puntos de salida
1 10%
de la aplicación
Criterio 5 Documentación de las Amenazas 2 20%
Criterio 6 Valoración de las amenazas 2 20%
Criterio 6 Diseño de las salvaguardas 2 20%
Criterio 6 Calidad de la memoria 1 10%
10 100 %