Diseño y modelado de amenazas

El modelado de amenazas es una técnica sistemática utilizada con el objetivo de poder identificar posibles riesgos o vulnerabilidades en un sistema o aplicación desde su fase de diseño. En función del modelo podemos definir las vías mediante las cuales un atacante podría explotar debilidades y tomar medidas preventivas para neutralizar dichas amenazas.

Si bien existen varios formatos y enfoques a día de hoy, STRIDE y LINDDUN abordan amenazas desde perspectivas distintas pero complementarias, pues la primera se centra en identificar amenazas de seguridad en general y es útil para evaluar riesgos en términos amplios y técnicos de sistemas, mientras que la segunda está especializada en cuestiones de privacidad, por lo que no son modelos excluyentes, sino que pueden aplicarse de forma conjunta.

Modelo STRIDE

STRIDE es un modelo de amenazas desarrollado por Microsoft que ayuda a identificar y clasificar las mismas mediante seis categorías:

  • Spoofing (Suplantación): Amenazas que involucran la suplantación de identidad, donde un atacante se hace pasar por un usuario o sistema legítimo.
  • Tampering (Manipulación): Amenazas relacionadas con la modificación no autorizada de datos o el sistema.
  • Repudiation (Repudio): Amenazas que implican la capacidad de un atacante para negar haber realizado una acción, como un acceso no autorizado o una modificación de datos.
  • Information Disclosure (Divulgación de Información): Amenazas que implican la exposición no autorizada de datos.
  • Denial of Service (Negación de Servicio): Amenazas que buscan interrumpir o degradar el servicio del sistema, afectando su disponibilidad.
  • Elevation of Privilege (Elevación de Privilegios): Amenazas donde un atacante obtiene niveles de acceso superiores a los permitidos, ganando más control sobre el sistema.

Una vez tenemos identificadas las posibles amenazas, debemos buscar la forma de mitigarlas.

Sin hacer alusión al caso concreto, para contrarrestar el spoofing es crucial establecer mecanismos de autenticación robustos, como autenticación de dos factores que añade una capa adicional de seguridad al requerir tanto una contraseña como un código temporal enviado a un dispositivo confiable, la utilización de certificados digitales o cifrar las comunicaciones.

En el caso del tampering es fundamental, además de emplear cifrado de extremo a extremo, implementar firmas digitales en los comandos y datos para verificar la integridad de la información, así como establecer un sistema de monitoreo de red que detecte y alerte sobre actividades inusuales que pueden ayudar a identificar intentos de manipulación antes de que tengan un impacto significativo.

En cuanto a la mitigación del repudio, el control parte de la existencia de un sistema de registros exhaustivos en el que se detalle de todas las acciones realizadas, incluyendo la identidad del usuario, la hora exacta y el contenido de cada comando, así como realizar auditorías regulares de los registros y monitorear el sistema en busca de manipulaciones de logs.

Para evitar la divulgación de información se deben implementar, de conformidad con el principio de mínimo privilegio, controles de acceso estrictos que aseguren que solo los usuarios autorizados puedan acceder a datos sensibles, cifrar la información en tránsito, y realizar pruebas de seguridad periódicas, como análisis de vulnerabilidades y test de penetración.

Finalmente, para mitigar ataques de denegación de servicio (DoS), es crucial implementar técnicas de filtrado de tráfico que puedan identificar y bloquear solicitudes maliciosas antes de que saturen el hub, como rate limiting y firewalls, que ayudan a gestionar y controlar el tráfico entrante. Diseñar el hub para ser escalable y capaz de manejar picos de tráfico, posiblemente mediante servicios en la nube que escalen automáticamente, es otro enfoque para minimizar el impacto de los ataques de denegación de servicio. Establecer un sistema de monitoreo para detectar patrones de tráfico inusuales y activar respuestas automáticas también es fundamental para prevenir y mitigar estos ataques de manera efectiva.

Este modelo está diseñado para identificar amenazas relacionadas con la privacidad en sistemas de software, representado en las siguientes categorías:

  • Linkability (Vinculación): Amenazas relacionadas con la capacidad de correlacionar diferentes eventos o transacciones a un único individuo.

Una de las estrategias clave en cuanto a la mitigación es la desidentificación, eliminando o enmascarando cualquier información que permita conectar diferentes conjuntos de datos. Otra medida efectiva es la segmentación de datos, que implica almacenar información en diferentes ubicaciones o bases de datos, lo que dificulta que un atacante pueda asociar esos datos y deducir información personal de los usuarios.

  • Identifiability (Identificación): Amenazas que permiten identificar a un individuo a partir de la información disponible.

Una contramedida central es la minimización de datos, que consiste en recopilar exclusivamente la información necesaria para el funcionamiento del sistema, evitando almacenar o procesar datos adicionales que puedan permitir la identificación de los usuarios.

  • Non-repudiation (No Repudio): Amenazas relacionadas con la imposibilidad de negar la realización de una acción.

La forma más óptima de mitigación pasaría por garantizar que se mantenga un registro claro y verificable de las actividades de los usuarios en el sistema., lo que pasaría por mecanismos robustos de auditoría y registro y el uso de firmas digitales.

  • Detectability (Detectabilidad): Amenazas que involucran la capacidad de detectar eventos específicos o acciones realizadas por un usuario.

En este caso, se puede aplicar la ofuscación de eventos mediante técnicas que generen ruido o camuflen acciones reales, dificultando su rastreo. El uso de VPNs y navegación anónima también ayuda a ocultar las actividades de los usuarios, reduciendo su exposición a la detección.

  • Disclosure of Information (Divulgación de Información): Amenazas que implican la exposición no autorizada de información personal.

Tres medidas a implementar pueden pasar por la encriptación de extremo a extremo, que protege la información en tránsito y almacenamiento, la gestión de permisos estricta y controles de acceso por roles que limitan el acceso a los datos sensibles y las auditorías de seguridad, que ayudan a identificar y corregir posibles fugas de información.

  • Unawareness (Desconocimiento): Amenazas donde los usuarios no están conscientes de las prácticas de privacidad o de la recopilación de sus datos.

Los planes de formación y conciecnciación son esenciales para asegurar que durante todo el ciclo de vida se van a tomar decisiones respetuosas con el individuo.

  • Non-Compliance (Incumplimiento de políticas y normativas): Es la falta de adherencia a las leyes, regulaciones y normas aplicables en materia de privacidad y protección de datos.

En resumen, los modelados de amenazas son una herramienta clave en la ciberseguridad y protección de datos, ya que permiten identificar, analizar y mitigar posibles riesgos antes de que puedan ser explotados. Su implementación en la práctica diaria de los equipos de desarrollo es vital si queremos construir sistemas robustos.