Threat modeling: claves y técnicas del modelado de amenazas
Aunque el threat modeling es una técnica directamente unida a la tecnología actual y las ciberamenazas, es posible comprenderla acudiendo a símiles sobre métodos de defensa conocidos desde la antigüedad.
En este sentido, desde tiempos inmemoriales, los grupos humanos que buscan proteger localizaciones específicas han actuado en dos sentidos: examinar sus puntos débiles ante un ataque (posibles entradas, ángulos desde los que no existe visibilidad…) y poner en marcha estrategias para mitigar esas vulnerabilidades (construir murallas, apostar vigilantes…).
Aplicado al contexto tecnológico actual, esto es precisamente lo que el modelado de amenazas es capaz de hacer. Lo analizamos.
¿Qué es el threat modeling?
El threat modeling es un método y un conjunto de procesos que buscan identificar y mitigar las potenciales vulnerabilidades de una aplicación o de un conjunto de activos digitales.
Para ello, el modelado de amenazas se basa en tres pasos fundamentales:
- Realizar un diagrama de la arquitectura de una aplicación.
- Identificar sus posibles puntos débiles y cuantificar las potenciales amenazas.
- Establecer las estrategias para mitigarlas de forma efectiva.
En este sentido, se trata de llevar a cabo un análisis exhaustivo que permita anticiparse a las ciberamenazas específicas que podrían afectar a un activo y frenarlas desde una perspectiva de prevención.
El modelado de amenazas puede aplicarse a cualquier infraestructura IT, siendo además un proceso paradigmático en el desarrollo de software seguro por diseño.
Objetivos del modelado de amenazas
- Determinar los vectores de ataque en la arquitectura IT que podrían ser explotados, comprendiendo igualmente los componentes o activos críticos cuya explotación tendría un mayor impacto.
- Mapeo de las ciberamenazas específicas que ponen en peligro una aplicación, incluyendo tanto acciones maliciosas como accidentes. Se debe tener en cuenta tanto la probabilidad de que tenga lugar la amenaza, como la valoración de su impacto, es decir, el grado en que una amenaza pueda considerarse crítica. En el caso del threat modeling aplicado a infraestructuras IT en el contexto de una organización, esto implica tener también en cuenta a la propia organización, sus prioridades y la función de cada activo.
- Establecimiento de las medidas de seguridad capaces de mitigar estas vulnerabilidades de forma preventiva. Entra aquí en juego tanto el cumplimiento de requisitos de seguridad del propio sistema como las leyes de ciberseguridad aplicables. El modelado de amenazas puede además generar un esquema de prioridades en estas medidas, de modo que se prioricen las que se consideren críticas.
- Validación de los procedimientos de seguridad, verificando que son efectivos para las ciberamenazas detectadas y el activo o sistema a proteger.
- Otorgar visibilidad integral sobre una aplicación o activo y las potenciales vulnerabilidades y amenazas, además de las medidas de ciberseguridad implantadas. Esto redunda en una mejora sistemática de la posición de ciberseguridad de una organización, ya que permite la colaboración de profesionales, el intercambio de información y la toma de decisiones basadas en datos y un análisis objetivo.
El modelado de amenazas se alza, en definitiva, como uno de los pilares fundamentales para generar controles de seguridad verdaderamente efectivos que, además, apoyan una cultura de ciberseguridad proactiva y continuada en el tiempo.
Las etapas del threat modeling
Aunque las diferentes metodologías de modelado de amenazas (que detallamos en el próximo epígrafe) proponen a menudo sus propias etapas, el esquema básico para un proceso de threat modeling bien planteado es el siguiente:
1. Evaluación
En un primer momento, se busca la total visibilidad sobre el activo o conjunto a proteger. Es el momento en el que entran en juego herramientas fundamentales como los data flow diagrams (DFDs) o diagramas de flujo de datos, que permiten modelar de forma visual cualquier sistema y las diferentes interacciones de datos.
En este primer paso de evaluación, se deben tener en cuenta los siguientes elementos:
- Componentes de una aplicación (servidores, bibliotecas, puertas de enlace, interfaces…). Aquí se determinan aspectos como los datos sensibles y los componentes críticos.
- Conexiones entre componentes (protocolos de intercambio de datos, protocolos de encriptación…). Se explicitan las trayectorias de los datos (sus rutas entre componentes) y los puntos de entrada y salida de la zona de confianza.
El resultado es un diagrama que permite:
- Delimitar cuál es exactamente el perímetro de confianza dentro del sistema
- Establecer cómo transitan los datos entre los diferentes componentes y entidades externas
- Comprender qué entidades externas tienen capacidad de interactuar con el sistema y cómo pueden hacerlo, incluyendo los diversos privilegios de acceso
- Visibilizar los puntos en los que aplicar políticas de seguridad específicas
2. Identificación de vulnerabilidades
La elaboración de un diagrama facilita el siguiente paso: determinar cuáles son las potenciales vulnerabilidades del activo.
En este punto, se establecen tanto las áreas susceptibles a ser vulneradas (debido a un ataque malicioso, pero también a accidentes); como el tipo de ataques conocidos que podrían resultar relevantes para el sistema (inyección de código, ataques DDoS…).
Resultan aquí útiles metodologías de categorización de amenazas como STRIDE (que describimos más abajo), ya que proporciona una estructura para establecer vulnerabilidades; o los llamados threat trees o “árboles de amenaza”, que estructuran de manera jerárquica las posibles amenazas.
3. Mitigación de riesgos
Se trata aquí de tomar las medidas necesarias para minimizar la probabilidad de que las amenazas detectadas en el paso anterior tengan lugar.
Es recomendable que la aplicación de estas contramedidas, además, tenga lugar priorizando las más urgentes. Esta priorización se realiza de forma sistemática, teniendo en cuenta el nivel de riesgo de la amenaza, la probabilidad de que ocurra y la complejidad o el coste de solucionarla. De nuevo, algunas metodologías específicas que describimos en el siguiente apartado son de ayuda en este proceso.
Como resultado en este paso, se pueden determinar las siguientes respuestas:
- Mitigación de amenazas, es decir, se detallan las acciones que buscan reducir la probabilidad de que una amenaza se materialice.
- Eliminación de componentes que, potencialmente, suponen una amenaza.
- Transferencia de riesgos (por ejemplo, generar políticas de responsabilidad del usuario).
- Aceptación de riesgos.
4. Verificación y modelado continuo
Ningún proceso de threat modeling es completo sin comprobar que las medidas tomadas son efectivas frente a las ciberamenazas detectadas. Dependiendo del activo a proteger, puede llevarse a cabo una auditoría, o la ejecución de la aplicación en un entorno de prueba. En cualquier caso, es en la fase de verificación cuando deben responderse preguntas como las siguientes:
- ¿Se ha obtenido una visibilidad precisa sobre el activo o sistema a proteger?
- ¿Han sido detectadas todas las posibles ciberamenazas?
- ¿Se ha determinado una respuesta adecuada a cada amenaza?
- ¿Pueden testearse las medidas tomadas en vistas a verificar su eficacia?
Además, la realidad del modelado de amenazas es que debe ser comprendido como un proceso continuo que va más allá de una evaluación única en el ciclo de vida de una aplicación o una acción aislada de ciberseguridad acometida por una empresa.
En un entorno digital en el que las ciberamenazas evolucionan, se multiplican y transforman de forma continua, solo una evaluación permanente es capaz de generar una posición de ciberseguridad verdaderamente robusta y alineada con los riesgos reales.
Técnicas del modelado de amenazas
Existe una serie de metodologías cuyo objetivo es estructurar una parte del modelado de amenazas, sirviendo como esquema en procesos que pueden resultar altamente complejos. Aunque existe la posibilidad de desarrollar técnicas y metodologías propias, las siguientes suponen un punto de partida útil:
- STRIDE: diseñada por Microsoft, esta metodología se basa en clasificar las potenciales ciberamenazas en las siguientes seis categorías:
- Spoofing (suplantación de identidad)
- Tampering (manipulación de datos)
- Repudiation (negación de acciones)
- Denial of Service (denegación de servicio)
- Elevation of Privilege (elevación de privilegios)
Mediante estas categorías, proporciona una estructura para que los encargados del threat modeling exploren estos seis tipos de amenazas específicas en el activo. Seis amenazas que, a su vez, tienen asociados determinados controles para mitigarlas.
- PASTA: acrónimo de Process for Attack Simulation and Threat Analysis (proceso para la simulación de ataques y análisis de amenazas), proporciona una estructura dividida en 7 etapas para identificar, cuantificar y analizar las amenazas. Como puntos fuertes, se incluyen el foco de esta metodología en el impacto de las amenazas en el negocio; las herramientas para modelar a los posibles atacantes; y la activación de simulación de ataques.
- VAST: de nuevo un acrónimo, en este caso para Visual, Agile, and Simple Threat (amenaza visual, ágil y simple), esta metodología altamente escalable está especializada en integrarse en procesos de desarrollo ágil. Respecto a la parte visual, esta técnica promueve el uso de diagramas y representaciones gráficas para hacer que el modelado de amenazas sea más accesible; además, busca realizar evaluaciones de amenazas en iteraciones cortas, adaptándose de este modo a los entornos ágiles.
- DREAD: otra de las técnicas para threat modeling desarrolladas por Microsoft, en este caso se orienta a cuantificar amenazas para después priorizar su resolución mediante un sistema de puntaje que las clasifica de más a menos críticas. Para ello, propone las siguientes categorías puntuables:
- Damage Potential (potencial de daño)
- Reproducibility (capacidad de reproducción)
- Exploitability (explotabilidad)
- Affected Users (usuarios afectados)
- Discoverability (facilidad para su descubrimiento)
- OCTAVE: esta metodología (desarrollada por CERT Coordination Center de la Universidad Carnegie Mellon) busca poner el foco en los activos y procesos críticos para las organizaciones, aunando la evaluación de amenazas con la comprensión de las necesidades del negocio y su contexto específico. El nombre es acrónimo de Operationally Critical Threat, Asset, and Vulnerability Evaluation, es decir, amenaza crítica operacional, activo y evaluación de vulnerabilidades.
- LIDDUN: en este caso, la metodología se centra en amenazas vinculadas a la privacidad, siendo de ayuda para identificar y mitigarlas. Para ello, esta técnica desarrollada por KU Leuven establece las siguientes categorías:
- Linkability (vinculación)
- Identifiability (capacidad de identificación)
- Non-repudiation (no repudio)
- Detectability (detectabilidad)
- Disclosure of information (divulgación de información)
- Unawareness (desconocimiento)
- Non-compliance (no conformidad)
Beneficios del threat modeling
- Seguridad por diseño para el lanzamiento de aplicaciones y software.
- Detección de problemas o vulnerabilidades y reparación en etapas tempranas y de forma proactiva, con el ahorro de costes que esto supone.
- Reducción de la superficie de ataque mediante un enfoque sistemático para detectar vulnerabilidades que otras metodologías pueden no tener en cuenta.
- Ajuste de la protección más allá de las amenazas “estándar”, adaptando el proceso a las necesidades reales del activo o de la organización e identificando los requisitos de seguridad específicos.
- Más capacidad de colaboración gracias a la visibilidad amplificada.
- Facilita la toma de decisiones basadas en datos en materia de ciberseguridad, incluyendo decisiones en torno a la prioridad de la mitigación de amenazas y la asignación de recursos en ciberseguridad.
- Capacidades para probar la postura de seguridad del activo o la organización, mediante documentación específica.
- Fortalecimiento del cumplimiento de legislación en torno a privacidad y seguridad
En definitiva, el modelado de amenazas debe comprenderse como uno de los pilares fundamentales de la estrategia de ciberseguridad en cualquier organización o desarrollo.
Desde S2 Grupo, estamos comprometidos a ayudar a las organizaciones que buscan hacer frente a un panorama digital cada vez más hostil.
En este sentido, entre nuestro catálogo de soluciones de ciberseguridad incluimos nuestra solución Threat Intelligence. Basada en la ciberinteligencia avanzada de nuestro grupo Lab52, ofrecemos servicios de análisis de amenazas avanzadas usando tecnología desarrollada de forma interna junto al Centro Criptológico Nacional (CCN) para la identificación de anomalías.
Gracias al apoyo de nuestro equipo de analistas expertos, nos desplazamos a las sedes de las organizaciones para evaluar las amenazas a las que se exponen y poner en marcha medidas para mitigarlas.
Contamos además con dos herramientas altamente avanzadas para el desarrollo de protocolos de threat modeling:
- Carmen: herramienta para la detección de ciberataques avanzados, orientada a facilitar el proceso de detección de anomalías y usos indebidos.
- Claudia: solución Endpoint para la detección de malwares complejos y movimientos laterales vinculados a amenazas avanzadas persistentes (APT).
Todo ello respaldado por inteligencia avanzada en ciberamenazas con el objetivo de detectar problemas en estados tempranos y adelantarnos a posibles atacantes.
¿Quieres saber más sobre threat modeling y cómo implementarla en tu organización? En S2 Grupo podemos ayudarte. Ponte en contacto con nosotros y habla con nuestro equipo.