Modelado de Amenazas en el Desarrollo De Software: Un Arte Perdido
Código: 20240326-WSPUB02
Palabras claves: Modelado de amenazas, Ciclo de vida del desarrollo de software (SDLC), Seguridad de la información, Frameworks de modelado de amenazas, Gestión de riesgos, Desarrollo de software seguro, Procesos de seguridad, Metodologías de seguridad, Attack Tree (árbol de ataque), MITRE ATT&CK
Resumen ejecutivo: El modelado de amenazas es un enfoque avanzado de las ciberamenazas que permite a las organizaciones planificar posibles escenarios de amenazas. Es una forma sistemática en la que los profesionales de la seguridad evalúan el riesgo y las consecuencias de una amenaza. El modelado de amenazas es una representación del sistema y un catálogo completo de amenazas, riesgos y vulnerabilidades potenciales. Pone a prueba sistemas y marcos estáticos para identificar debilidades y deficiencias antes de que un actor de amenaza pueda explotarlas.
Palabras claves: Modelado de amenazas, Ciclo de vida del desarrollo de software (SDLC), Seguridad de la información, Frameworks de modelado de amenazas, Gestión de riesgos, Desarrollo de software seguro, Procesos de seguridad, Metodologías de seguridad, Attack Tree (árbol de ataque), MITRE ATT&CK
Modelado de Amenazas en el Desarrollo De Software: Un Arte Perdido
El Ciclo de Vida del Desarrollo de Software (SDLC) es, de hecho, un proceso largo y complejo con muchos pasos que proporcionan artefactos y resultados que son consumidos en la siguiente etapa del propio ciclo, generando un constante "proceso que se alimenta a sí mismo".
Esto puede ser auto-sostenible si se hace correctamente, sin embargo hay elementos que deben incluirse en este ciclo de vida que son "clave" para permitir un ecosistema más "seguro" y "fiable". Ahí es donde entra en juego el Modelado de amenazas.
Hay un viejo refrán que dice que más vale prevenir que curar, esa es la idea que subyace a el Modelado de amenazas.
Las ciberdefensas pasivas y reactivas llevan mucho tiempo luchando por mantenerse a la altura de la evolución del mercado de la ciberdelincuencia. Sin embargo, últimamente han empezado a bordear el límite de la obsolescencia. En ninguna parte esto es más cierto que en ciberseguridad, ya que el hecho de "añadir procesos y verificaciones" o más "cajas brillantes y más fresco", no evita que la gente y principalmente organizaciones y empresas sean TODAVÍA hackeadas. ¿Por qué?. Porque estamos tratando de resolver (en el mejor de los casos, en otros simplemente "añadiendo vendas" a las heridas) varios componentes con "software" o elementos externos que, en la mayoría de los casos pueden realmente resolver el problema o al menos mitigarlo; pero el inconveniente de esto es que, la "solución" también añade más "superficie de ataque" a una superficie real que estamos tratando de gestionar.
¿Qué es el Modelado de amenazas?
Como señala la Universidad Carnegie Mellon, a alto nivel, toda metodología de modelado de amenazas consiste en lo siguiente:
Una representación del sistema.
Los objetivos, motivaciones, métodos y tácticas de los posibles actores de la amenaza.
Un catálogo exhaustivo de amenazas, riesgos y vulnerabilidades potenciales.
El modelado de amenazas es precisamente lo que parece. Es un enfoque avanzado y estructurado de las ciber amenazas que permite a una organización planificar posibles escenarios de amenazas. Un enfoque de modelado de amenazas pone a prueba los sistemas y marcos estáticos de su empresa, lo que le permite identificar debilidades y deficiencias antes de que un actor de amenazas pueda explotarlas.
A un alto nivel, el modelado de amenazas es una forma sistemática en que los profesionales de la seguridad evalúan el riesgo y las consecuencias potenciales de las amenazas a la seguridad de los sistemas y el software. Aunque el modelado de amenazas suele realizarse durante la fase de desarrollo del software, también puede llevarse a cabo de forma pro-activa en una variedad de activos tecnológicos de la empresa para supervisar el riesgo en curso.
Tradicionalmente, el modelado de amenazas tiene sus raíces en el ciclo de vida del desarrollo de software, identificando decisiones de diseño o prácticas de desarrollo que podrían dar lugar a riesgos a largo plazo. En un contexto moderno, sin embargo, su papel va mucho más allá. Como parte de una estrategia completa de gestión de riesgos, el modelado de amenazas evalúa cada sistema individual, identificando y priorizando cada amenaza individual antes de que pueda causar daños a la organización.
Si parece que el modelado de amenazas tiene mucho en común con la evaluación del impacto en la empresa, no es por casualidad. De hecho, esta última utiliza modelos de amenazas como parte de su proceso de análisis. Es natural que haya un gran solapamiento entre ambos.
¿Por qué es importante este "modelado de amenazas"?
Cuando forma parte de la cultura de seguridad de una organización, el modelado de amenazas puede ayudar a los equipos de seguridad a garantizar que se aplican las protecciones necesarias y que son capaces de hacer frente a las amenazas cambiantes en toda su plataforma. Si no se realiza una revisión sistemática del software y los sistemas, las amenazas nuevas o imprevistas pueden quedar expuestas y sin defensa, dejando a las organizaciones vulnerables a ciberataques o filtraciones de datos.
Los marcos de modelado de amenazas también le ayudan a contextualizar los riesgos identificados definiendo cómo podría explotarse cada uno de ellos. Pueden ofrecerle la oportunidad de documentar preventivamente tácticas de mitigación en caso de que un sistema sea blanco de un ataque. Por último, pueden utilizarse para orientar la inversión en TI e informar sobre el despliegue de nuevos controles de ciberseguridad.
El modelado de amenazas también puede ayudar a los profesionales de la seguridad a evaluar la seguridad del software recién desarrollado o adquirido, proporcionando un método para comprender completamente cómo las nuevas aplicaciones y herramientas pueden ser vulnerables, cómo se pueden mitigar estos riesgos y qué impactos potenciales pueden tener si no se abordan.
También el modelado de amenazas (MdA o Threat Modelling) puede ayudar en lo siguientes ámbitos :
El modelado de amenazas puede reducir la superficie de ataque
El modelado de amenazas ayuda a priorizar las amenazas, los esfuerzos de mitigación y el trabajo presupuestario
El modelado de amenazas identifica y elimina los puntos únicos de fallo.
El modelado de amenazas le ayuda a comprender la cadena completa del ciberataque (MITRE ATTCK, PASTA, Attack Trees).
El modelado de amenazas puede mejorar la postura de seguridad de su organización.
El modelado de amenazas ayuda a mejorar la seguridad de sus aplicaciones.
¿Cuántos marcos de trabajo existen?
Según este artículo del Carnegie Mellon existen al menos 12 marcos de modelado de amenazas diferentes que podemos utilizar. Los más conocidos son STRIDE, PASTA, VAST, Trike, CVSS (en conjunción con OWASP Top 10 y RRM), Attack Trees, Security Cards, y hTMM. El marco que debe utilizar la organización puede ser uno de éstos u otro completamente diferente de los mencionados por Carnegie Mellon.
Sin embargo, debemos tener en cuenta algunas cosas para poder elegir correctamente:
Considere sus requisitos de seguridad y cumplimiento.
Evalúe el perfil de riesgo de su empresa.
Piense en cómo están diseñados sus sistemas y aplicaciones, incluida la arquitectura, el lenguaje de programación, los controles de acceso, etc.
Determine los objetivos empresariales específicos de cada departamento de su organización.
Piense en la industria y el sector en el que opera su empresa.
Si no se sabe cómo empezar, puede utilizar un diagrama/dibujo y algunas notas, o puede utilizar el "Marco de 4 preguntas de Shostack para el modelado de amenazas" , que consiste en las 4 preguntas siguientes:
¿En qué estamos trabajando?
¿Qué puede salir mal?
¿Qué vamos a hacer al respecto?
¿Hemos hecho un buen trabajo?
Hay varias maneras de hacer este proceso, que en su esencia tiene la idea de "desplazar hacia la izquierda" el proceso de seguridad, básicamente participando en las fases iniciales del Ciclo de Vida del Software (Software Development Lifecycle - SDLC) desde un "enfoque y mentalidad de seguridad".
Aunque la elección depende mucho del contexto actual y del tipo de organizacion, es fundamental reconocer el valor significativo que ofrece un cuestionario sólido sobre modelado de amenazas, incluso para aquellos que dudan o no están dispuestos a participar en el proceso completo de este mismo. Sirve como herramienta vital no sólo en casos de auténtica incertidumbre ("no lo sabemos"), sino también para quienes posponen estratégicamente la práctica ("queremos hacerlo"). Aunque esto último puede ser una medida temporal, es importante no restar importancia a los beneficios a largo plazo que el modelado de amenazas aporta al futuro desarrollo, integración y mantenimiento de sistemas actuales o nuevos. De hecho, su poder y utilidad no deberían descartarse fácilmente, independientemente de las inclinaciones actuales de “entregar mas y rapido” a “entregar algo mejor”.
Tags:
Modelado de amenazas: Se discute en detalle qué es el modelado de amenazas, su propósito y su importancia en la seguridad del software.
Ciclo de vida del desarrollo de software: Se menciona el ciclo de vida del desarrollo de software como el contexto en el que se integra el modelado de amenazas.
Seguridad de la información: Se abordan temas relacionados con la seguridad de la información, incluyendo ciberataques, mitigación de riesgos y vulnerabilidades potenciales.
Frameworks de modelado de amenazas: Se mencionan varios frameworks de modelado de amenazas utilizados en la industria y se proporciona información sobre su aplicación y selección.
Gestión de riesgos: Se discute cómo el modelado de amenazas se relaciona con la gestión de riesgos y cómo puede ayudar a priorizar amenazas y esfuerzos de mitigación.
Desarrollo de software seguro: Se destaca la importancia de adoptar un enfoque de desarrollo de software seguro y cómo el modelado de amenazas contribuye a este objetivo.
Procesos de seguridad: Se mencionan procesos y enfoques específicos para mejorar la seguridad de los sistemas, como el "desplazamiento hacia la izquierda" en el proceso de seguridad y la participación temprana en el ciclo de vida del desarrollo de software.
Metodologías de seguridad: Se proporciona información sobre diferentes metodologías y enfoques para el modelado de amenazas, así como recursos adicionales para realizar este proceso de manera efectiva.
GLOSARIO
Attack Tree (arbol de ataque) : Diagramas conceptuales que muestran cómo podría atacarse un bien u objetivo.
MITRE ATT&CK : Guía para clasificar y describir ciberataques e intrusiones; la cual basa su funcionamiento en la siguiente premisa: En lugar de fijarse en los resultados de un ataque (también conocido como indicador de compromiso «IoC»), identifica las tácticas que indican que se está produciendo un ataque. Las tácticas son el "por qué" de una técnica de ataque. En este caso, ATT&CK seria una «librería de ataques».
REFERENCIAS
https://www.centraleyes.com/why-is-threat-modeling-so-important
https://resources.infosecinstitute.com/topics/management-compliance-auditing/6-benefits-of-cyber-threat-modeling/
https://github.com/adamshostack/4QuestionFrame
https://insights.sei.cmu.edu/blog/threat-modeling-12-available-methods/
Autor(es)
Luis Alberto Araneda Villegas
BIO
Oracle Cloud Infraestructure Senior Tech Architect y Cloud Professional.
Poseedor de un diploma avanzado en TI con mención en seguridad en redes, así como diversos cursos en Informática Forense, Seguridad de la Información, Ciberseguridad, GRC y otros.
Apasionado de la tecnología, ha trabajado desde soporte técnico, pasando por DBA, Junior Net Admin, Junior SysAdmin hasta arquitectura de sistemas y Soluciones Cloud.
Fanatico y evangelizador de la seguridad en ambientes Cloud, asi como un avido lector de todo lo relacionado al ML y la ciencia de datos.