Qué es el modelado de amenazas

Un proceso para anticipar ataques cibernéticos

0
13

El modelado de amenazas es un proceso estructurado a través del cual los profesionales de TI pueden identificar posibles amenazas y vulnerabilidades de seguridad, cuantificar la gravedad de cada una, y priorizar las técnicas para mitigar los ataques y proteger los recursos de TI.

Esta definición amplia puede sonar como la descripción del trabajo de un profesional de seguridad informática, pero lo importante sobre un modelo de amenaza es que es sistemático y estructurado. Los modeladores de amenazas recorren una serie de pasos concretos para comprender completamente el entorno que están tratando de proteger, e identificar vulnerabilidades y posibles atacantes.

Dicho esto, el modelado de amenazas sigue siendo, en cierto sentido, un arte tanto como una ciencia, y no existe un único proceso de modelado de amenazas canónico. La práctica del modelado de amenazas se basa en varias prácticas de seguridad anteriores, en particular la idea de «árboles de ataque” que se desarrollaron en la década de 1990. En 1999, Loren Kohnfelder y Praerit Garg, empleados de Microsoft, distribuyeron un documento dentro de la compañía llamado «The Threats to Our Products” que muchos consideran la primera descripción definitiva del modelado de amenazas.

Kohnfelder y Garg llamaron a su propuesta «el marco STRIDE”, y veremos los detalles más adelante en este artículo. Pero es importante saber que existe una gran variedad de marcos y metodologías de modelado de amenazas. Algunos modelos tienen diferentes énfasis, mientras que otros son específicos de ciertas disciplinas de TI; por ejemplo, algunos se centran específicamente en la seguridad de las aplicaciones. Este artículo busca ayudar a comprender qué tienen en común todas estas metodologías, y qué técnicas específicas pueden ser adecuadas para usted.

Proceso y pasos del modelado de amenazas
Cada metodología de modelado de amenazas individual consta de una serie de pasos algo diferentes, y discutiremos los matices de cada uno más adelante. Pero para comenzar, veremos el flujo lógico básico que todos estos métodos tienen en común. Uno de los contornos más breves y directos del proceso de modelado de amenazas proviene del ingeniero de software Goran Aviani. Como él dice, el propósito de un modelo de amenazas es responder cuatro preguntas:

  1. ¿En qué estamos trabajando?
  2. ¿Qué puede salir mal?
  3. ¿Qué estamos haciendo al respecto?
  4. ¿Hicimos un buen trabajo?

El proceso de modelado de amenazas debe, a su vez, incluir cuatro pasos generales, de los cuales cada uno producirá una respuesta a una de las preguntas.

  1. Descomponer la aplicación o infraestructura
  2. Determinar las amenazas
  3. Determinar contramedidas y mitigaciones
  4. Clasificar las amenazas

Para comprender exactamente qué implica cada uno de estos pasos, necesitamos hablar sobre las técnicas específicas que sirven de base para el modelado de amenazas.

Técnicas de modelado de amenazas
Quizás el término más desconocido en los pasos enumerados anteriormente es descomponer. ¿Qué significa descomponer una aplicación o infraestructura? El ingeniero de software Andrea Della Corte dice que, en términos generales, descomponer una aplicación consiste en «comprender la aplicación y cómo interactúa con entidades externas. Esto implica crear casos de uso para entender cómo se usa la aplicación, identificando puntos de entrada para ver dónde un atacante potencial podría interactuar con la aplicación, identificando activos (es decir, elementos/áreas en las que estaría interesado el atacante), e identificando niveles de confianza que representan derechos de acceso que la aplicación otorgará a entidades externas”. (Aquí está hablando específicamente sobre la seguridad de las aplicaciones, pero esto también puede aplicarse en un sentido amplio a una vista de la infraestructura).

Una de las técnicas para descomponer una aplicación es construir un diagrama de flujo de datos. Estos se desarrollaron en la década de 1970 como una forma de representar visualmente cómo los datos se mueven alrededor de una aplicación o sistema, y dónde los componentes los alteran o almacenan. El concepto de un límite de confianza, que ilustra un punto en el flujo de datos donde los datos deben ser validados antes de que pueda ser utilizado por la entidad que los recibió, se agregó a principios de la década del 2000, y esta idea es clave para usar un diagrama de flujo de datos para el modelado de amenazas.

Ejemplos de diagramas de flujo de datos
El diagrama de la Figura 1 (PDF) ilustra el flujo de datos a través de una aplicación de banca en línea; las líneas punteadas representan los límites de confianza, donde los datos pueden ser potencialmente alterados y deben tomarse medidas de seguridad.

Este documento de Microsoft de la época del movimiento de modelado de amenazas de Redmond profundiza en cómo construir su propio diagrama de flujo de datos para su sistema o aplicación.

Debido a que los diagramas de flujo de datos fueron desarrollados por ingenieros de sistemas en lugar de profesionales de seguridad, incluyen muchos gastos generales que no son necesarios para el modelado de amenazas. Una alternativa a un diagrama de flujo de datos es un diagrama de flujo de proceso. Estos son similares en concepto general, pero más simplificados y centrados en las formas en que los usuarios y el código de ejecución se mueven a través de un sistema, reflejando más de cerca la forma en que piensan los atacantes. ThreatModeler tiene un buen manual para crear un diagrama de flujo de proceso.

Construir un árbol de ataque es una técnica de modelado de amenazas que se vuelve importante cuando uno alcanza la etapa en la que está determinando posibles amenazas contra su aplicación o infraestructura. Los árboles de ataque fueron introducidos por la leyenda del infosec, Bruce Schneier, a finales de los 90. Consisten en una serie de nodos primarios y secundarios que representan diferentes eventos, en donde los nodos secundarios son condiciones que deben cumplirse para que los nodos primarios sean verdaderos. El nodo raíz, el primario superior del diagrama, es el objetivo general del ataque. Con un árbol de ataque, los modeladores de amenazas pueden ver qué conjunto de circunstancias deben unirse para que una amenaza tenga éxito. La Figura 2 (PDF) muestra un árbol de ataque simple que ilustra las diferentes formas en que un virus puede infectar con éxito un archivo.

Hackinthebox tiene una excelente presentación sobre la construcción de árboles de ataque desde la perspectiva del atacante, que puede ayudarlo en su búsqueda para comprender las amenazas que enfrenta.

Las técnicas para determinar las contramedidas y clasificar las amenazas varían más ampliamente según el marco o la metodología elegida, y hablaremos de eso con un poco más de detalle en la siguiente sección.

Marcos y metodologías de modelado de amenazas
Los diversos enfoques estructurados para el modelado de amenazas generalmente se denominan marcos o metodologías (los dos términos se pueden usar básicamente de manera intercambiable en este contexto). Hay muchos de ellos, pero resumiremos los más populares.

7 metodologías principales de modelado de amenazas

  1. STRIDE
  2. DREAD
  3. PASTA
  4. VAST
  5. Trike
  6. OCTAVA
  7. NIST

Modelado de amenazas STRIDE: Como señalamos anteriormente, STRIDE es el abuelo del modelado de amenazas. Fue desarrollado por primera vez en Microsoft a finales de los 90. STRIDE representa las seis categorías de amenaza, cada una de las cuales viola una propiedad específica de las variaciones de la tríada de la CIA:

  • Suplantar o hacerse pasar por otra persona o computadora, que viola la autenticidad
  • Manipulación de datos, que viola la integridad
  • Repudio, o imposibilitar vincular con usted una acción que usted realizó, lo que viola el no-repudio
  • Divulgación de información, que viola la confidencialidad
  • Denegación de servicio, que viola la disponibilidad
  • Elevación de privilegios, que viola la autorización

Modelado de amenazas DREAD: DREAD fue concebido como un complemento del modelo STRIDE, que les permite a los modeladores clasificar las amenazas una vez que han sido identificadas. DREAD representa seis preguntas que se harían sobre cada amenaza potencial:

  • Potencial de daño: ¿Qué tan grande es el daño si se aprovecha la vulnerabilidad?
  • Reproducibilidad: ¿Qué tan fácil es reproducir el ataque?
  • Explotabilidad: ¿Qué tan fácil es lanzar un ataque?
  • Usuarios afectados: Como porcentaje aproximado, ¿cuántos usuarios están afectados?
  • Descubrimiento: ¿Qué tan fácil es encontrar la vulnerabilidad?
  • Cada una de estas preguntas se responde con una calificación entre uno y tres.

Modelado de amenazas PASTA: PASTA, que significa proceso para la simulación de ataques y el análisis de amenazas, es un proceso de siete pasos enfocado en alinear los requisitos técnicos de seguridad con los objetivos empresariales. Cada paso es bastante complejo, y consta de varios subpasos, pero la secuencia general es la siguiente:

  1. Definir objetivos
  2. Definir el alcance técnico
  3. Descomposición de la aplicación
  4. Análisis de amenazas
  5. Análisis de vulnerabilidades y debilidades
  6. Modelado de ataque
  7. Análisis de riesgo e impacto

Modelado de amenazas VAST: VAST significa modelado visual y ágil de amenazas. Este modelo subyace a ThreatModeler, una plataforma de modelado de amenazas automatizada que distingue entre modelos de amenazas operacionales y de aplicación. VAST está diseñado específicamente para integrarse en flujos de trabajo basados en la filosofía de DevOps.

Modelado de amenazas Trike: Trike es un marco y una herramienta de código abierto para el modelado de amenazas y la evaluación de riesgos, que opera desde un punto de vista defensivo en lugar de tratar de emular el proceso de pensamiento de un atacante. Con Trike, usted modela el sistema que está tratando de defender, evaluando cada componente a través del punto de vista de CRUD; es decir, quién tiene la capacidad de crear, leer, actualizar o eliminar esa entidad. Las amenazas se identifican iterando a través de un diagrama de flujo de datos, y cada amenaza se divide en solo dos categorías: denegación de servicio o elevación de privilegios.

Modelado de amenazas OCTAVE: OCTAVE, que significa evaluación de amenazas, activos y vulnerabilidades operativamente críticas, es una metodología de modelado de amenazas desarrollada en la Universidad Carnegie Mellon que se enfoca en riesgos organizacionales más que tecnológicos. Consta de tres fases:

  1. Crear perfiles de amenazas basados en activos
  2. Identificar la vulnerabilidad de la infraestructura
  3. Desarrollar una estrategia y planes de seguridad

Modelado de amenazas NIST: El Instituto Nacional de Estándares y Tecnología de Estados Unidos tiene su propia metodología de modelado de amenazas centrada en datos, que consta de cuatro pasos:

  1. Identificar y caracterizar el sistema y los datos de interés
  2. Identificar y seleccionar los vectores de ataque que serán incluidos en el modelo
  3. Caracterizar los controles de seguridad para mitigar los vectores de ataque
  4. Analizar el modelo de amenaza

El borrador del NIST también incluye un ejemplo detallado de cómo se aplicaría esta metodología en la práctica. Si está buscando un ejemplo de modelado de amenazas, este es un excelente documento para entender cómo funciona el proceso.

Las mejores prácticas de modelado de amenazas
No importa qué metodología elija, hay algunas prácticas que debe seguir. Quizás lo más importante, aunque suele ser difícil de seguir en la práctica, es hacer del modelado de amenazas una prioridad durante el desarrollo del sistema. Si puede hacerlo al comienzo de un proyecto, ahorrará mucho sufrimiento más adelante, ya que un punto de vista seguro se integrará en su aplicación o sistema.

Otra práctica recomendada es no ver las aplicaciones y los sistemas de forma aislada. «Si los diversos modelos de amenazas están conectados entre sí de la misma manera en que las aplicaciones y los componentes interactúan como parte del sistema de TI”, escribe Michael Santarcangelo, «el resultado es una superficie de ataque integral que el CISO puede utilizar para comprender la cartera de amenazas completa en toda la empresa”.

También recomendamos evitar los errores comunes de modelado de amenazas. La versión corta: no se enfoque demasiado en las amenazas que aparecen en los titulares, no olvide que sus usuarios pueden representar algunas de las mayores amenazas inadvertidas; y no olvide que un modelo de amenazas debería ser un documento vivo que necesita una actualización constante.

Herramientas de modelado de amenazas
Habrá notado que un par de las metodologías enumeradas anteriormente, VAST y Trike, se basan en herramientas de software específicas. Las herramientas también soportan otras metodologías; por ejemplo, Microsoft tiene una herramienta de modelado de amenazas gratuita disponible, y la Fundación OWASP tiene versiones de aplicaciones web y de escritorio de sus propias herramientas.

Pero, en realidad, muchas de las metodologías descritas aquí son conceptuales y no están vinculadas a ninguna implementación de software. Los árboles de ataque o los diagramas de flujo de datos se pueden dibujar con lápiz y papel. Como explica la presentación de Luca Bongiorni, algunas de las herramientas más populares para el modelado de amenazas son Microsoft Visio y Excel. Las barreras para comenzar con el modelado de amenazas para su infraestructura son bajas, y las recompensas son altas.

Josh Fruhlinger, CSOonline.com