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?
- ¿Para que sirve esta aplicación?
- ¿A quien va dirigida?
- ¿Hay algún diagrama técnico de como funciona esta aplicación?
- 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?
- Spoofing:
- Tampering
- Repudiation:
- Information disclosure
- Denial of service
- Elevation of privilege