Modelado de amenazas - Identificar riesgos por diseño
Lectura de 2 min aprox.
El modelado de amenazas es una metodología de diseño de seguridad que identifica de forma sistemática las amenazas potenciales a un sistema o aplicación en la etapa de diseño, las prioriza y aplica contramedidas. Al analizar de forma estructurada «qué proteger», «quién ataca» y «dónde están las debilidades», se pueden reducir drásticamente los defectos de seguridad que se descubren en las fases posteriores del desarrollo. Se dice que el costo de corregir una vulnerabilidad después de detectarla en producción es de 30 a 100 veces el de la etapa de diseño, por lo que el modelado de amenazas es una medida preventiva muy rentable.
Antecedentes históricos
El concepto de modelado de amenazas comenzó a finales de la década de 1990, cuando Microsoft lo sistematizó como parte de su Ciclo de Vida de Desarrollo de Seguridad (SDL: Security Development Lifecycle) interno. Tras la declaración «Trustworthy Computing» de 2002, Microsoft incorporó el modelado de amenazas como un proceso obligatorio en el desarrollo de Windows y Office, y publicó sus resultados como el modelo STRIDE. Desde entonces, OWASP y NIST también han adoptado el modelado de amenazas en sus respectivos marcos, consolidándolo como una metodología de diseño estándar en la industria.
El modelo STRIDE
STRIDE es un marco de clasificación de amenazas desarrollado por Microsoft, formado por las iniciales de seis categorías de amenazas.
Suplantación. Superar la autenticación usando el ID de otra persona.
Manipulación. Alterar de forma ilícita los datos o el contenido de la comunicación.
Repudio. Borrar las pruebas de una acción y negar haberla realizado.
Divulgación de información. Acceso a datos sin autorización.
Denegación de servicio. Dejar el sistema inutilizable.
Elevación de privilegios. Obtener de forma ilícita privilegios más altos.
Puntuación DREAD
Después de clasificar las amenazas con STRIDE, DREAD evalúa de forma cuantitativa la gravedad de cada amenaza. Puntúa cinco elementos, cada uno en una escala del 1 al 10: Damage (la magnitud del daño), Reproducibility (reproducibilidad), Exploitability (la facilidad de ataque), Affected Users (la cantidad de usuarios afectados) y Discoverability (la facilidad de descubrimiento), y determina la prioridad según la puntuación total. No obstante, se ha criticado que DREAD tiende a la evaluación subjetiva, y la propia Microsoft ahora recomienda usarlo junto con CVSS (Common Vulnerability Scoring System).
El marco PASTA
PASTA (Process for Attack Simulation and Threat Analysis) es un marco de siete etapas que analiza de forma integrada los riesgos de negocio y las amenazas técnicas. Comienza con la definición de los objetivos de negocio y luego avanza hacia la identificación del alcance técnico, la descomposición de la aplicación, el análisis de amenazas, el análisis de vulnerabilidades, la simulación de ataques y el análisis de riesgo e impacto. Mientras que STRIDE es una herramienta de clasificación para ingenieros, PASTA se caracteriza por funcionar como un lenguaje común entre la dirección y los ingenieros.
Diagramas de flujo de datos y límites de confianza
Los flujos de datos que cruzan los límites de confianza son el punto clave del análisis de amenazas
En el núcleo del modelado de amenazas está el diagrama de flujo de datos (DFD). Visualiza el flujo de datos dentro de un sistema y explicita los límites de confianza (Trust Boundary). Un límite de confianza es la línea divisoria entre regiones con distintos niveles de seguridad, como el límite entre internet y una red interna, o entre la capa de aplicación y la capa de base de datos. Dado que la superficie de ataque se concentra en estos límites de confianza, se examina cada amenaza de STRIDE para cada flujo de datos que cruza un límite.
Integración en el ciclo de vida del desarrollo
El modelado de amenazas no es una tarea limitada únicamente a la fase de diseño. En el desarrollo ágil, las amenazas de las nuevas funciones se evalúan en cada sprint y se actualiza el modelo de amenazas existente. También se está extendiendo un enfoque que incorpora SAST (análisis estático) y DAST (análisis dinámico) en la canalización de CI/CD para verificar automáticamente si los riesgos identificados en el modelo de amenazas se abordan a nivel de implementación. El ciclo ideal consiste en planificar un diseño de defensa en profundidad en la etapa de modelado de amenazas y verificar su eficacia mediante ejercicios de equipo rojo.
Casos de uso reales
«Cuando realizamos un análisis STRIDE durante la revisión de diseño de una nueva función de pago, encontramos una amenaza de elevación de privilegios en la comprobación de autorización de la API. Como pudimos corregirla en la etapa de diseño, evitamos un costo de remediación estimado de 4 millones de yenes en caso de haberse descubierto tras la implementación. Ahora exigimos el modelado de amenazas en el diseño de todas las funciones.»
Explicamos en detalle la construcción de la postura de seguridad de una organización en la lista de verificación de seguridad para startups, el diseño de una política de contraseñas en el artículo sobre la política de contraseñas corporativa, y las contramedidas contra el ransomware en el artículo sobre la protección contra ransomware.libros sobre modelado de amenazas (Amazon) también son útiles para mejorar tu proceso de diseño.
¿Te resultó útil este artículo?