Las 6 claves del modelado de amenazas
Tabla de contenidos
Cuando construimos una casa, queremos que la seguridad se tenga en cuenta desde la evaluación del terreno sobre el que se edifica y la forma en la que se plantan sus cimientos. De lo contrario, las grietas comenzarán a aparecer más temprano que tarde. En lo que respecta a la ciberseguridad de las compañías ocurre lo mismo. Por eso es fundamental que se garantice la seguridad desde el diseño y a lo largo de su ciclo de vida. ¿Cómo se puede realizar esta tarea? A través del modelado de amenazas, un proceso que estructura y sistematiza la evaluación de las amenazas, riesgos y medidas de mitigación de una aplicación, sistema o dispositivo IoT.
El modelado de amenazas permite construir un flujo de datos para observar toda la información relacionada con la seguridad del activo a modelar. Incidiendo en los requisitos de seguridad que hay que tener en cuenta en su desarrollo, las amenazas y los actores maliciosos que pueden quebrantar su seguridad, los riesgos a los que hay que hacer frente y las medidas que se pueden implementar para mitigarlos.
Garantizar la seguridad de un software o una red es una tarea ardua, puesto que el número de ciberataques, su complejidad, sofisticación y potencial impacto en las compañías van en aumento. Mediante el modelado de amenazas se sientan las bases para poner en marcha una estrategia de seguridad global, en la que se garantice un eficiente flujo de la información para detectar nuevas amenazas antes de que se lleguen a materializar.
A continuación, vamos a analizar las claves del modelado de amenazas y por qué este proceso puede ayudar a las compañías a proteger su infraestructura IT, situar a la seguridad en el centro de su estrategia empresarial y evitar ataques que menoscaben su reputación y beneficios.
1. ¿Qué es el modelado de amenazas?
Según la fundación OWASP, un referente metodológico en el terreno de la ciberseguridad a nivel global, el modelado de amenazas es un proceso que permite «identificar, cuantificar y abordar los riesgos de seguridad asociados a una aplicación». Si bien, como señalamos antes, el modelado de amenazas se puede emplear para proteger cualquier elemento de la infraestructura IT de una empresa, se usa, sobre todo, en el desarrollo seguro de software y la securización del software a lo largo de todo su ciclo de vida.
Esta definición se sustenta sobre los tres verbos clave para entender qué es el modelado de amenazas, cómo funciona y cuáles son sus objetivos:
- Identificar: requisitos, amenazas, riesgos, controles de seguridad…
- Cuantificar: el nivel de impacto de cada riesgo en el sistema o aplicación a modelar y en la organización.
- Abordar: poner en marcha medidas y controles de seguridad eficaces para mitigar los riesgos con éxito y responder a los potenciales ataques.
El modelado de amenazas no debe ser considerado como una actividad inconexa, sino que tiene que estar perfectamente alineado con las prácticas de desarrollo de una organización, atendiendo no solo a las primeras fases de desarrollo, sino también a todos los cambios de diseño que se producen a lo largo del ciclo de vida.
Efectuar un modelado de amenazas permite:
- Visualizar cómo fluyen los datos a través de un sistema y cuáles son los vectores de ataque que pueden ser explotados por los agentes maliciosos.
- Identificar todas las posibles amenazas.
- Definir los controles de seguridad que pueden mitigar la probabilidad o el impacto de cada amenaza.
1.1. Elementos
Mediante el modelado de amenazas es posible representar de forma estructurada toda la información relacionada con la seguridad de un activo. De ahí que, a la hora de efectuar un modelado de amenazas, OWASP considere que se deban incluir elementos como:
- La descripción del activo que se procede a modelar. Una aplicación web, una app móvil, hardware, una red…
- Cuestiones que han de tenerse en cuenta en el futuro, en función de cómo evolucione el panorama de las amenazas o estado del arte y los riesgos de seguridad.
- Un listado de las amenazas potenciales que pueden poner en jaque la seguridad del sistema a modelar.
- El conjunto de medidas que se tienen que tomar para mitigar las amenazas y prevenir incidentes de seguridad.
- Las acciones que se van a llevar a cabo para validar el modelo y comprobar que las medidas son eficaces.
1.2. Buscar las respuestas a 4 preguntas básicas
¿Cómo se organizan los elementos que venimos de describir? OWASP propone cuatro preguntas básicas que una organización debe ser capaz de responder a la hora de realizar un modelado de amenazas:
- ¿En qué estamos trabajando? En primer lugar, hay que tener claro cuál es el objeto que se va a modelar. Es decir, de qué objeto se trata y cuáles son los trabajos que se están realizando en torno a él. ¿Estamos al inicio del diseño y desarrollo de un software? ¿Vamos a lanzar una actualización de una aplicación?
- ¿Qué puede salir mal? En esta pregunta entran en juego las amenazas que se ciernen sobre el sistema o la aplicación. Existen muchas metodologías para identificar y evaluar las amenazas, como veremos más adelante.
- ¿Qué podemos hacer al respecto? O, dicho de otra forma, qué contramedidas se pueden implementar para gestionar los riesgos de forma eficaz.
- ¿Hemos realizado un buen trabajo? La evaluación de los controles adoptados es clave en materia de ciberseguridad. Las organizaciones deben contar con un análisis de las medidas puestas en marcha y evaluar si son las idóneas para mitigar las amenazas. En este sentido, puede ser de utilidad realizar una auditoría de seguridad web, de aplicaciones móviles, IoT, código, infraestructuras cloud…
¿Por qué estas cuatro preguntas? Porque sirven para cumplir los objetivos que debe cumplir el modelado de amenazas en su misión de incrementar la protección de un sistema.
Asimismo, debemos señalar que no existe una única forma de responder a estas preguntas, sino que, como veremos posteriormente, se pueden emplear diversas metodologías y herramientas para llevar a cabo el modelado de amenazas.
2. Objetivos del modelado de amenazas
A la luz de lo que venimos de exponer, resulta fácil concretar cuáles son los objetivos centrales del modelado de amenazas y por qué este proceso es de gran utilidad para que las compañías y sus profesionales tengan en cuenta todos los aspectos relacionados con la seguridad de sus activos IT y los flujos de comunicación estén optimizados.
2.1. Identificar los requisitos de seguridad
Cada sistema tiene unos requisitos de seguridad concretos, en los que entra en juego, además, el cumplimiento de las normativas en vigor. RGPD, NIS2, DORA… En el seno de la Unión Europea se están aprobando normas cada vez más rigurosas en materia de ciberseguridad.
El modelado de amenazas debe de tener en cuenta estas cuestiones a la hora de identificar los requisitos de seguridad.
2.2. Mapear las amenazas y las vulnerabilidades potenciales
El modelado riguroso de un sistema tiene que ofrecer una panorámica completa de las amenazas y riesgos a los que se enfrenta. Aunque pensamos en las amenazas desde un punto de vista malicioso (un ataque de malware, la sustracción de credenciales…), lo cierto es que las amenazas engloban también a los incidentes accidentales, por ejemplo, un fallo en el hardware en el que se almacenan las copias de seguridad.
De ahí que el mapeo de amenazas deba contemplar todos los escenarios, no solo poniéndose en la posición de los potenciales atacantes, sino también teniendo en cuenta cuestiones incidentales.
El mapeo de las amenazas es uno de los elementos centrales del modelado de amenazas, puesto que para proponer medidas de mitigación es imprescindible, en primer lugar, saber qué es lo que se debe subsanar.
2.3. Comprender a los atacantes
En caso de que las amenazas provengan de acciones maliciosas, es fundamental entender cómo operan estos actores, cuáles son sus objetivos y qué metodologías emplean. ¿Por qué?
De esta manera se puede prever qué componentes o activos buscarán vulnerar y realizar un esfuerzo extra en la búsqueda de amenazas y en la adopción de medidas para proteger determinados vectores de ataque.
2.4. Estudiar el posible impacto de las amenazas
No todas las amenazas tienen la misma trascendencia. De hecho, OWASP sostiene que una posible amenaza existe cuando la combinación de la probabilidad de que una amenaza ocurra y el impacto que podría tener en la organización supone un riesgo significativo para esta.
En este sentido, el modelado de amenazas debe servir no solo para identificar las amenazas, sino también para entender su posible impacto en la compañía y, así, establecer el nivel de criticidad de cada amenaza.
Para ello, no se deben tener en cuenta exclusivamente aspectos y requisitos de seguridad, sino también los objetivos empresariales, las características del modelo de negocio y el papel que juega cada activo IT en el funcionamiento de la compañía.
Una amenaza cuyas probabilidades de materializarse son menores que las de otra, puede resultar más crítica porque afecta a un activo de gran valor o porque el impacto en la organización puede ser notable.
2.5. Priorizar los métodos de corrección
Comprender el impacto de una posible amenaza y establecer su criticidad son dos objetivos fundamentales para priorizar las medidas de mitigación y establecer acciones para mejorar el concepto, los requisitos, el diseño o la implementación de una aplicación o sistema.
Las compañías no cuentan con recursos económicos, técnicos y humanos infinitos. Toda estrategia de ciberseguridad debe tener en cuenta los recursos de los que se dispone para poder mitigar las vulnerabilidades y alcanzar un nivel de protección suficiente.
En este sentido, si el mapeo de amenazas visibiliza una serie de riesgos, es fundamental acometer las medidas de mitigación priorizando las amenazas más graves para la compañía.
2.6. Mejorar los controles de seguridad de forma temprana y continua
Llevar a cabo un modelado de amenazas a lo largo de todo el ciclo de vida de un software o hardware es esencial para prevenir los incidentes de seguridad y tomar medidas lo antes posible.
De ahí que este proceso sea fundamental para realizar un desarrollo seguro, previniendo la aparición de riesgos y subsanando problemas antes de que un activo sea atacado. Por ejemplo, antes de que un software sea lanzado al mercado o desplegado en sistemas productivos.
Lo mismo se podría decir en lo que respecta a su continuidad en el tiempo. Implementar un modelado de amenazas continuo ayuda a detectar nuevas amenazas y poder emprender medidas de mitigación y controles de seguridad que ayuden a subsanarlas. Ya sea porque se han producido cambios en el sistema, por ejemplo, la actualización de un software. O, simplemente, por el hecho de que el paso del tiempo trae consigo nuevas herramientas, tácticas y procedimientos de ataque.
2.7. Validar la eficacia de las medidas adoptadas
Las medidas de seguridad que se establezcan durante el modelado de amenazas deben ser idóneas. Por ello, no basta solo con proponer soluciones, sino que resulta de gran valor auditarlas para validar si son o no eficaces.
Los profesionales de ciberseguridad pueden llevar a cabo una auditoría de seguridad para comprobar que las medidas cumplen con los objetivos y contribuyen a reducir los riesgos.
2.8. Facilitar el diálogo entre profesionales, equipos y organizaciones
El modelado de amenazas representa de forma gráfica los componentes de un sistema, los activos a proteger, los controles de seguridad, las amenazas, los actores maliciosos… A través de un diagrama se puede obtener una panorámica amplia de todos los aspectos relacionados con la seguridad. Esto puede resultar de gran ayuda para posibilitar el intercambio de información entre todas las partes interesadas y establecer canales de comunicación eficaces para detectar amenazas emergentes y actuar para reducir los riesgos de seguridad.
3. Las 4 etapas del modelado de amenazas
OWASP contempla tres fases fundamentales en el modelado de amenazas: descomposición de la aplicación para entender cómo funciona, identificación de las amenazas, diseño de las medidas de mitigación de los riesgos. A estos tres pasos podríamos añadir una fase final, focalizada en analizar la eficiencia de todas las acciones llevadas a cabo.
Así, cada paso del modelado de amenazas vendría a responder una de las cuatro cuestiones básicas que indicamos al inicio de este artículo.
3.1. Descomponer
En esta fase el objetivo central es entender a la perfección cómo funciona la aplicación o el sistema y cómo interacciona con elementos externos. Para ello se debe:
- Recopilar la información sobre el objeto a modelar. Por ejemplo, en lo relativo a un software es importante disponer de una descripción exhaustiva, examinar su versión, qué usuarios lo emplean y qué privilegios necesitan…
- Evaluar los elementos exteriores. Por ejemplo, los componentes externos de una aplicación.
- Identificar los puntos de entrada para los ataques. Así como los de salida, fundamentales en ataques que buscan exfiltrar información.
- Listar los activos que podrían ser atacados.
- Identificar los niveles de confianza que representan los derechos de acceso a la aplicación o al sistema que se está modelando.
Esto permite establecer los derechos de acceso o los privilegios para cada punto de entrada, así como para interaccionar con cada activo.
A partir de esta información se pueden elaborar diagramas de flujo de datos para comprender las rutas del sistema y tener en cuenta los límites de privilegios que se establecen.
3.2. Identificar y clasificar las amenazas
A partir de toda la información recopilada y sistematizada en el primer paso del modelado de amenazas, se debe proceder a identificar y clasificar las amenazas potenciales. OWASP propone, dentro de esta fase, los siguientes pasos:
- Categorizar las amenazas para poder identificarlas de una forma sistematizada y repetible, empleando metodologías como STRIDE.
- Analizar las amenazas, teniendo en cuenta la probabilidad de que ocurra un ataque, así como su impacto y el coste que puede acarrear para la organización. Para llevar a cabo esta tarea se pueden diseñar matrices. Las amenazas se analizan tanto desde la perspectiva de los potenciales atacantes, como desde el punto de vista de la defensa, estudiando los controles de seguridad que sirven para mitigarlas.
- Establecer un ranking de las amenazas en función de factores de riesgo como impacto, posibilidad o facilidad de explotación. De esta manera, se obtiene una lista de amenazas con un orden de prioridad, de cara a llevar a cabo la mitigación y subsanación de los problemas relacionados con las amenazas con un mayor nivel de riesgo.
- Mapear casos de abuso. Es decir, listar y modelar posibles ataques o escenarios maliciosos.
3.3. Establecer contramedidas y acciones de mitigación
Todos los datos obtenidos en la fase anterior son la materia prima para seleccionar las contramedidas adecuadas para acometer las amenazas y evitar que lleguen a materializarse en incidentes de seguridad.
En este sentido, resulta interesante señalar la diferencia entre amenazas y vulnerabilidades, dos conceptos básicos en el terreno de la ciberseguridad.
Una amenaza es una situación que puede ocasionar un impacto negativo. Mientras que la vulnerabilidad es el medio empleado para materializar la amenaza. Resultan especialmente peligrosas las vulnerabilidades zero-day, que son desconocidas por la organización y pueden ser explotadas por los atacantes para alcanzar sus objetivos.
Durante el modelado de amenazas se pueden relacionar directamente las amenazas previamente categorizadas con las medidas y acciones de mitigación más idóneas para hacerles frente.
3.4. Evaluar el trabajo realizado
Como ya señalamos cuando abordamos los elementos esenciales del modelado de amenazas, es importante incorporar un protocolo para evaluar la validez del modelo.
De nada sirve implementar este proceso si no se incorpora una forma para comprobar con precisión que ha identificado con éxito las amenazas y los controles de seguridad pertinentes.
La evaluación del trabajo nos conduce, directamente, a una de las claves del modelado de amenazas: que se ejecute a lo largo del ciclo de vida del software o del sistema analizado y no solo en un momento concreto, priorizando, además, las fases tempranas del desarrollo.
4. Modelado de amenazas continuo a lo largo del ciclo de vida
El modelado de amenazas no puede concebirse como un proceso estático, que se lleva a cabo en un momento concreto del ciclo de vida de un software o hardware. Al contrario, una de las claves del modelado de amenazas es que se puede implementar al inicio del desarrollo, de cara a apostar por un sistema de seguridad desde el diseño. Por ejemplo, en la fase conceptual o durante la planificación del software o dispositivo.
Además de ayudar a realizar un desarrollo seguro, el modelado de amenazas es importante en todas las fases de vida de la infraestructura IT, puesto que es más que plausible que en un estadio inicial no se contemplaran amenazas que surgieron a posteriori. De ahí que el modelado de amenazas sirva para mejorar y perfeccionar el modelo diseñado al principio del ciclo de vida.
Solo mediante un modelado de amenazas continuo se pueden detectar y analizar nuevas amenazas, tener en cuenta nuevos actores maliciosos y conseguir que el modelo se corresponda con los riesgos reales.
Más allá de esta apuesta por la continuidad en el tiempo, debemos destacar que se trata de un proceso de gran valor añadido después de:
- El lanzamiento de una nueva función
- Un incidente de seguridad
- Cambios en la arquitectura
Asimismo, realizar una auditoría de seguridad es recomendable en la fase de preproducción, es decir, antes de que las webs y apps salgan a producción. Puesto que de esta forma se pueden subsanar vulnerabilidades antes de que puedan convertirse en riesgos explotables por los actores maliciosos.
El software, las apps, los dispositivos IoT… Son activos empresariales vivos, que no se mantienen inalterables en el tiempo, el modelado de amenazas debe adaptarse a este hecho, analizando de forma continua las amenazas a las que están expuestos.
5. Metodologías y herramientas para modelar
¿Cómo se ejecuta en la práctica el modelado de amenazas? Los profesionales de ciberseguridad que lo realizan tienen a su disposición diversas metodologías para categorizar las amenazas y gestionar las fases del proceso. Además, también existen herramientas que son de gran utilidad para realizar este proceso.
5.1. Metodologías
Para llevar a cabo el modelado de amenazas de un software o una infraestructura se pueden emplear diversas metodologías, focalizadas en el análisis de las amenazas. Algunas de las más comunes son:
- STRIDE. El nombre de este framework, diseñado por Microsoft, es el resultado de las iniciales en inglés de las seis categorías de amenazas sobre las que se articula: suplantación de identidad, manipulación, repudio, revelación de información, denegación de servicio y elevación de privilegios. Estas amenazas tienen asociadas sus respectivos controles de seguridad, para poder mitigarlas.
- PASTA. Este marco de trabajo contempla siete pasos para llevar a cabo un modelado de amenazas, conciliando los requisitos de seguridad con los objetivos empresariales.
- DREAD. La clave de esta metodología es que permite cuantificar las diferentes amenazas y, así, ayudar a priorizar su mitigación.
- OCTAVE. Por su parte, este framework se implementa siguiendo tres fases: creación de un perfil de todos los activos y de sus amenazas, identificación de las vulnerabilidades, creación de una estrategia de gestión de riesgos eficiente.
- Data-Centric Systema Threat Modeling. Este framework del NIST cuenta con cuatro pasos para llevar a cabo el modelado de amenazas: identificación del sistema y de la información de interés, selección de los vectores de ataque que se deben incluir en el modelo, definición de los controles de seguridad para mitigar los vectores de ataque, y análisis del modelado de amenazas.
- VAST. Permite realizar un modelado visual y escalable centrándose en tres pilares: automatización, integración y colaboración.
Existen otras metodologías para realizar el modelado de amenazas como Persona non grata, centrada en confeccionar un perfil de los potenciales atacantes o Attack trees, que representa de forma gráfica las vulnerabilidades, amenazas y puntos de entrada. Lo que da buena muestra del material metodológico existente.
5.2. Herramientas
Más allá de los frameworks que venimos de esbozar, existen en el ámbito de la ciberseguridad algunas herramientas para implementarlos con éxito, pudiendo automatizar tareas y facilitando el modelado de amenazas a lo largo del ciclo de vida del software, dispositivo o sistema.
Algunas de estas herramientas para llevar a cabo el modelado de amenazas son:
- IriusRisk. Una herramienta que dispone de cuestionarios adaptables y que guía a los profesionales a través de aspectos clave como la arquitectura de la aplicación.
- ThreatModeler. Esta herramienta sirve para automatizar el modelado de amenazas y está relacionada directamente con VAST.
- OWASP Threat Dragon. La Fundación OWASP cuenta con su propia herramienta de código abierto para crear diagramas que permitan visualizar fácilmente los componentes y superficies de ataque. Sirve para registrar amenazas y decidir cómo mitigarlas.
El uso combinado de metodologías y herramientas permite llevar a cabo un modelado de amenazas eficaz y que se ajuste a las necesidades, objetivos empresariales y recursos de cada compañía.
6. Facilitar la toma de decisiones empresariales en materia de seguridad
En última instancia, el modelado de amenazas es un proceso que ayuda a tomar decisiones de seguridad basándose en datos y en un análisis integral de los riesgos relacionados con un sistema o software.
En la toma de decisiones empresariales participan profesionales que no tiene por qué ser expertos en materia de ciberseguridad.
El modelado de amenazas representa de forma gráfica las amenazas que hay que combatir y su nivel de criticidad para la organización. Lo que contribuye a que los cargos directivos puedan tomar decisiones estratégicas que contribuyan a proteger los activos empresariales frente a los incidentes de seguridad.
Asimismo, el modelado de amenazas puede ser empleado como un argumento de garantía, evidenciando que las amenazas son rastreadas de forma eficaz y se implementan controles de seguridad para reducir los riesgos.
Más allá de su potencial para la toma de decisiones, el Threat Modeling Manifesto destaca que el modelado de amenazas contribuye a:
- Instalar una cultura de búsqueda y resolución de problemas de forma continua.
- Fomentar la colaboración entre personas y equipos.
- Establecer una visión holística de la seguridad, en vez de instantáneas sobre aspectos o momentos concretos.
- Trabajar de forma continua en perfeccionar los controles de seguridad y las contramedidas.
En definitiva, el modelado de amenazas es un proceso de análisis exhaustivo de los riesgos IT que busca representar de forma gráfica todos los elementos a tener en cuenta, diseñar medidas eficientes contra las posibles amenazas y evaluar desde las primeras fases de desarrollo y a lo largo de todo el ciclo de vida los riesgos de seguridad para prevenir incidentes.
Las casas no se empiezan por el tejado, sino por los cimientos, cuidando cada columna y pared. En el terreno de la ciberseguridad ocurre lo mismo. Comenzar por un diseño seguro es crucial para minimizar los riesgos.