Búsca en Seguridad y Firewall


¿Que es el Threat Modeling?

Threat modeling o modelado de amenazas es el proceso por el cual se comunican y comprenden las amenazas a las cuales esta expuesto algo de valor, y se presentan los controles adecuados para mitigar las amenazas. 

Podemos entender que el modelado de amenazas no está orientado 100% a lo informático, si no mas bien está orientado a proteger la triada de la Seguridad (Confidencialidad, Integridad y Disponibilidad), cara a la información o al negocio.

Para poder realizar un modelado de amenazas, hay que determinar inicialmente sobre qué tipo de empresa estamos trabajando, ya que en ella podremos determinar las posibles amenazas a la cual la empresa esta expuesta. También hay que ponernos a pensar que cuando algo sale mal, siempre puede salir peor, en base a esa premisa, ¿Qué vamos a hacer para que esto no curra? Dependiendo de las amenazas detectadas se debe de orientar los controles que debemos definir para poder controlar, mitigar o aceptar la supuesta amenaza. 

Muchas veces para hacer un modelado de amenazas nos haremos las siguientes preguntas:

  • ¿Que queremos proteger?
  • ¿Cuales son sus vulnerabilidades?
  • ¿Qué amenazas puede tener lo que quiero proteger?
  • ¿Estoy pasando por alto alguna cosa?

Cabe destacar que existen muchas normativas, lineas base de seguridad o regulaciones que están orientadas a poder defender y endurecer las medidas preventivas ante una amenaza, pero debemos recordar que cada una de estas normas nos orientan para dar un grado de seguridad, pero esto no implica que al llevarlas a cabalidad tendremos un proceso completamente seguro.

Antes de comenzar a revisar este tema se debe de entender algo muy importante, existen varios modos de realizar el modelado de amenazas, y no existe la forma "correcta" de hacerlo.

Revisemos algunas definiciones en función del threat modeling.

Amenazas

Las amenazas son eventos que podrían afectar cualquier pilar fundamental de la triada de seguridad. Tenemos amenazas que impacten la disponibilidad de la información, de que esta sea confiable e integra. Dependerá del tipo de amenaza los controles que deberemos adoptar. 

Es importante recalcar que las amenazas no siempre están asociados a un actor malicioso, también pueden darse productos de accidentes o amenazas como catástrofes naturales o sociales.

Vulnerabilidad

Es una falla o debilidad en los procedimientos de seguridad de un sistema de información, las cuales pueden explotarse tanto accidental como intencionalmente, estas tienen como resultado la violación de los controles de Seguridad.

Ataque

Mecanismo por el cual un atacante explota una vulnerabilidad teniendo un impacto directo en la disponibilidad, integridad o confidencialidad de la información.

Como mencione anteriormente existen varias maneras de poder realizar un modelado de amenazas, en este articulo revisaremos uno que es bastante simple y sencillo de seguir llamado PASTA

PASTA (Process for Attack Simulation and threat Analysis)

Pasta tiene 7 fases las cuales pueden usarse como base para realizar el análisis.

Fase1: Definir Objetivos:

Acá nosotros revisaremos el alcance de lo que vamos a analizar con algunas sencillas preguntas:

  • ¿La aplicación como apoya o ayuda al negocio?
  • ¿Existe alguna normativa o complace para la información que maneja?
  • ¿Qué impacto tiene sobre el negocio esta aplicación?
Fase 2: Definición de alcance técnico:
  • ¿Para que sirve esta aplicación?
  • ¿A quien va dirigida?
  • ¿Hay algún diagrama técnico de como funciona esta aplicación?
Fase3: Descomponer la aplicación:

Esta fase es una de las más importantes de esta metodología, ya que identificamos múltiples componentes que pueden estar afectos a alguna amenaza. Para poder realizar un correcto análisis se debe de contar con algún diagrama de flujo del dato, tener claro cuales son las entradas y salidas de los procesos.
  • La aplicación esta expuesta?
  • ¿Los datos y salidas de la aplicación tiene una exposición a Internet?
  • ¿La información es compartida con terceros?
Fase 4: Identificación y análisis de amenazas.

En esta fase se deben de identificar todas las amenazas dandole un valor numérico para así priorizar según la probabilidad de evento. La idea es que según la lista de elementos descompuestos en el punto anterior podamos visualizar cuales son todas las amenazas a las cuales se está expuesto.

Se pueden utilizar alguna metodología como STRIDE
  • Spoofing:
  • Tampering
  • Repudiation: 
  • Information disclosure
  • Denial of service
  • Elevation of privilege
Fase 5: Identificación de Vulnerabilidades

Acá ya tenemos levantadas las amenazas que tienen los componentes de la aplicación. Idealmente partimos revisando las vulnerabilidades ya identificadas por terceros o como los mismos fabricantes como CVE. Estas vulnerabilidades tienen una nota o SCORE, la cual nos clasifica la criticidad de las vulnerabilidades, esto nos ayuda a dar prioridad.

Podemos identificar vulnerabilidades a nivel de diseño por uso de aplicaciones no seguras, como por ejemplo el uso de servicios como HTTP, FTP, Telnet Etc.

Fase 6: Modelado de Ataques

Acá es donde debemos visualizar que tipo de ataques nos pueden llegar por un atacante externo para explotar las vulnerabilidades detectadas y así poder encontrar posibles mitigaciones al respecto. 

Realizar esta actividad manual puede llegar a ser tedioso, y dependemos siempre de la experiencia de los analistas de seguridad, como no todos los analistas tienen la misma experiencia, existe una base de datos en internet creada por la mitre donde clasifican tipo de ataques, tipo de amenazas, clasificación de actores y agentes de amenazas.

Lo interesante que este portal también tiene documentado el modo en que algunos grupos, realizan sus ataques por lo que se puede revisar todos los controles que se pueden realizar para detener ataques desde su origen hasta su final.

https://attack.mitre.org

Fase 7: Evaluación del Riesgo 

Calcularemos el riesgo de cada amenaza, considerando la probabilidad real de que una vulnerabilidad sea explotada, esto nos da una visibilidad mayor y podemos asignar un nivel a cada ataque asociado a una amenaza. 

Con esto también detectamos las contramedidas que debemos tomar de manera preventiva. Posterior a la aplicación de contramedidas debemos de determinar el riesgo residual que habrá cosa de también tomar medidas sobre ellos.

Para mas información sobre modelado de amenazas puedes revisar este link : https://www.threatmodelingmanifesto.org