# Modelado de Amenazas
### [WhiteIntel](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda impulsado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares ladrones**.
El objetivo principal de WhiteIntel es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
Puedes visitar su sitio web y probar su motor de forma **gratuita** en:
{% embed url="https://whiteintel.io" %}
***
## Modelado de Amenazas
¡Bienvenido a la guía completa de HackTricks sobre el Modelado de Amenazas! Embárcate en una exploración de este aspecto crítico de la ciberseguridad, donde identificamos, entendemos y diseñamos estrategias contra posibles vulnerabilidades en un sistema. Este hilo sirve como una guía paso a paso repleta de ejemplos del mundo real, software útil y explicaciones fáciles de entender. Ideal tanto para principiantes como para profesionales experimentados que buscan fortalecer sus defensas de ciberseguridad.
### Escenarios Comúnmente Utilizados
1. **Desarrollo de Software**: Como parte del Ciclo de Vida de Desarrollo de Software Seguro (SSDLC), el modelado de amenazas ayuda a **identificar posibles fuentes de vulnerabilidades** en las primeras etapas de desarrollo.
2. **Pruebas de Penetración**: El marco de Ejecución Estándar de Pruebas de Penetración (PTES) requiere el **modelado de amenazas para entender las vulnerabilidades del sistema** antes de llevar a cabo la prueba.
### Modelo de Amenazas en Resumen
Un Modelo de Amenazas se representa típicamente como un diagrama, imagen u otra forma de ilustración visual que muestra la arquitectura planificada o la construcción existente de una aplicación. Se asemeja a un **diagrama de flujo de datos**, pero la distinción clave radica en su diseño orientado a la seguridad.
Los modelos de amenazas a menudo presentan elementos marcados en rojo, simbolizando posibles vulnerabilidades, riesgos o barreras. Para agilizar el proceso de identificación de riesgos, se emplea la tríada CIA (Confidencialidad, Integridad, Disponibilidad), que forma la base de muchas metodologías de modelado de amenazas, siendo STRIDE una de las más comunes. Sin embargo, la metodología elegida puede variar según el contexto y los requisitos específicos.
### La Tríada CIA
La Tríada CIA es un modelo ampliamente reconocido en el campo de la seguridad de la información, que representa Confidencialidad, Integridad y Disponibilidad. Estos tres pilares forman la base sobre la cual se construyen muchas medidas de seguridad y políticas, incluidas las metodologías de modelado de amenazas.
1. **Confidencialidad**: Asegurar que los datos o el sistema no sean accedidos por individuos no autorizados. Este es un aspecto central de la seguridad, que requiere controles de acceso apropiados, cifrado y otras medidas para prevenir brechas de datos.
2. **Integridad**: La precisión, consistencia y confiabilidad de los datos a lo largo de su ciclo de vida. Este principio garantiza que los datos no sean alterados o manipulados por partes no autorizadas. A menudo implica sumas de verificación, hash y otros métodos de verificación de datos.
3. **Disponibilidad**: Garantiza que los datos y servicios sean accesibles para los usuarios autorizados cuando sea necesario. Esto a menudo implica redundancia, tolerancia a fallos y configuraciones de alta disponibilidad para mantener los sistemas en funcionamiento incluso ante interrupciones.
### Metodologías de Modelado de Amenazas
1. **STRIDE**: Desarrollado por Microsoft, STRIDE es un acrónimo de **Suplantación, Manipulación, Repudio, Divulgación de Información, Denegación de Servicio y Elevación de Privilegios**. Cada categoría representa un tipo de amenaza, y esta metodología se utiliza comúnmente en la fase de diseño de un programa o sistema para identificar posibles amenazas.
2. **DREAD**: Esta es otra metodología de Microsoft utilizada para la evaluación de riesgos de amenazas identificadas. DREAD significa **Potencial de Daño, Reproducibilidad, Explotabilidad, Usuarios Afectados y Descubribilidad**. Cada uno de estos factores se puntúa y el resultado se utiliza para priorizar las amenazas identificadas.
3. **PASTA** (Proceso para Simulación de Ataques y Análisis de Amenazas): Esta es una metodología de siete pasos, centrada en el **riesgo**. Incluye definir e identificar objetivos de seguridad, crear un alcance técnico, descomposición de la aplicación, análisis de amenazas, análisis de vulnerabilidades y evaluación de riesgos/triage.
4. **Trike**: Esta es una metodología basada en el riesgo que se centra en defender activos. Parte de una perspectiva de **gestión de riesgos** y examina amenazas y vulnerabilidades en ese contexto.
5. **VAST** (Modelado de Amenazas Visual, Ágil y Simple): Este enfoque tiene como objetivo ser más accesible e integrarse en entornos de desarrollo ágil. Combina elementos de otras metodologías y se centra en **representaciones visuales de amenazas**.
6. **OCTAVE** (Evaluación de Amenazas, Activos y Vulnerabilidades Críticas Operativamente): Desarrollado por el CERT Coordination Center, este marco está orientado a la **evaluación de riesgos organizacionales en lugar de sistemas o software específicos**.
## Herramientas
Existen varias herramientas y soluciones de software disponibles que pueden **ayudar** en la creación y gestión de modelos de amenazas. Aquí tienes algunas que podrías considerar.
### [SpiderSuite](https://github.com/3nock/SpiderSuite)
Una avanzada araña/crawler web GUI multiplataforma con múltiples funciones para profesionales de ciberseguridad. Spider Suite se puede utilizar para mapear y analizar la superficie de ataque.
**Uso**
1. Selecciona una URL y Explora
2. Visualiza el Gráfico
### [OWASP Threat Dragon](https://github.com/OWASP/threat-dragon/releases)
Un proyecto de código abierto de OWASP, Threat Dragon es una aplicación web y de escritorio que incluye diagramación de sistemas y un motor de reglas para generar automáticamente amenazas/mitigaciones.
**Uso**
1. Crear Nuevo Proyecto
A veces podría verse así:
2. Iniciar Nuevo Proyecto
3. Guardar el Nuevo Proyecto
4. Crea tu modelo
Puedes usar herramientas como SpiderSuite Crawler para inspirarte, un modelo básico se vería algo así
Solo un poco de explicación sobre las entidades:
* Proceso (La entidad en sí misma como un servidor web o funcionalidad web)
* Actor (Una persona como un visitante del sitio web, usuario o administrador)
* Línea de Flujo de Datos (Indicador de Interacción)
* Límite de Confianza (Diferentes segmentos de red o alcances.)
* Almacenar (Cosas donde se almacenan los datos, como bases de datos)
5. Crear una Amenaza (Paso 1)
Primero debes elegir la capa a la que deseas agregar una amenaza
Ahora puedes crear la amenaza
Ten en cuenta que hay una diferencia entre Amenazas de Actores y Amenazas de Procesos. Si agregaras una amenaza a un Actor, solo podrás elegir "Suplantación" y "Repudio". Sin embargo, en nuestro ejemplo agregamos una amenaza a una entidad de Proceso, por lo que veremos esto en el cuadro de creación de amenazas:
6. Listo
Ahora tu modelo terminado debería verse algo así. Y así es como se crea un modelo de amenazas simple con OWASP Threat Dragon.
### [Herramienta de modelado de amenazas de Microsoft](https://aka.ms/threatmodelingtool)
Esta es una herramienta gratuita de Microsoft que ayuda a encontrar amenazas en la fase de diseño de proyectos de software. Utiliza la metodología STRIDE y es particularmente adecuada para aquellos que desarrollan en la plataforma de Microsoft.
### [WhiteIntel](https://whiteintel.io)
[**WhiteIntel**](https://whiteintel.io) es un motor de búsqueda impulsado por la **dark web** que ofrece funcionalidades **gratuitas** para verificar si una empresa o sus clientes han sido **comprometidos** por **malwares ladrones**.
Su objetivo principal es combatir los secuestros de cuentas y los ataques de ransomware resultantes de malwares que roban información.
Puedes visitar su sitio web y probar su motor de búsqueda de forma **gratuita** en:
{% embed url="https://whiteintel.io" %}