Modelado de amenazas – Detección en el diseño

Modelado de amenazas – Detección en el diseño

La seguridad en la nube actual requiere una nueva forma de ver los modelos de amenazas. Hacer un modelo de amenazas puede ayudar a los equipos de seguridad a prevenir los problemas futuros, es la primera fase del DevSecOps. A un equipo de desarrollo software el modelado de amenazas les ayuda a tener una estrategia para manejar los riesgos existentes, en lugar de detectar incidentes en una etapa posterior. Veamos cómo crear un modelo de amenazas que funcione para su entorno en la nube.

¿Por qué es importante el modelado de amenazas?

Un modelo de amenaza muestra parámetros que explican una amenaza. Por ejemplo, podría cubrir los factores de riesgo incorporados, agentes de amenazas, mapas de ruta de posibles ataques, evaluaciones de impacto comercial y soluciones. En el campo de la seguridad del software, los modelos de amenazas ayudan a detectar amenazas a sistemas y datos, desde amenazas impulsadas por aspectos del código del software, como exploits web, hasta riesgos más amplios, como el acceso no deseado al sistema o el almacenamiento de datos inseguro.

Existen muchas metodologías de evaluación de amenazas, como STRIDE de Microsoft . STRIDE, que significa suplantación de identidad, manipulación, repudio, divulgación de información, denegación de servicio y elevación de privilegios, ayuda a los desarrolladores y expertos en seguridad a encontrar vectores de amenazas en estas categorías.

La creación de un modelo de amenazas en la etapa de diseño ayuda a lo largo del ciclo de vida del desarrollo del sistema. Los equipos pueden aprender los controles y automatizar la infraestructura de seguridad en la nube de principio a fin. Por lo tanto, el modelado de amenazas debe ocurrir en una etapa temprana del desarrollo de su sistema.

De hecho desde OWASP se aconseja la utilización de la herramienta de Threat Dragon. El objetivo final de un modelado de amenazas, es obtener una lista de requisitos de seguridad, que ayuden a implantar los controles de seguridad pertinentes durante el proceso de desarrollo.

Empecemos. Estos son los mejores pasos para crear un modelo de amenazas.

Elegir el equipo adecuado para su seguridad en la nube

Un proceso de modelado de amenazas debe incluir personas de equipos de diferentes disciplinas. Uno de los debates que más se produce con respecto a este tema, es quien debería realizar los modelados de amenazas, si alguien del equipo de desarrollo o alguien del de seguridad.

Sea quien sea el responsable del modelado, todos los actores deben participar y dar soporte, como son el equipo de seguridad, los desarrolladores web, los ingenieros de software, el equipo de operaciones y los propietarios del segmento empresarial.

Trabajar con la experiencia de múltiples grupos mixtos involucrados en el desarrollo de aplicaciones, escenarios de prueba y entrega comercial brindará una visión más global de lo que está diseñando. Eso incluye lo que podría salir mal en el proceso y cómo rectificar o mitigar el riesgo a largo plazo.

Comprender los límites del sistema

En esta fase se deben analizar cuáles son las zonas de confianza y el alcance del sistema. Sólo se debe tener cuidado de no hacer que el límite del sistema sea demasiado grande; a medida que aumenta el alcance del límite, se vuelve más difícil de modelar. Se tiene que planificar toda la arquitectura de la aplicación para comprender los flujos de datos y los actores involucrados, como por ejemplo con un diagrama de flujo.

OWASP nos da algunas pautas a tener en cuenta, y la información que debemos analizar:

  • Los límites de confianza modelados dentro del sistema.
  • Los actores o agentes de amenazas que interactúan dentro y fuera de los límites de confianza del sistema.
  • La información que fluye en varias direcciones dentro y hacia / desde los límites de confianza.
  • Persistencia de la información dentro y fuera de los límites de confianza para el modelado de datos.
  • Las amenazas potenciales y los riesgos existentes a estos límites de confianza.
  • Actores o agentes de amenazas que explotan entradas conocidas.
  • El impacto y la probabilidad de que un agente de amenaza pueda aprovechar una entrada.

Considerar los factores de riesgo para la seguridad de la nube

Cuando se tenga una lista de amenazas a sus aplicaciones y sistemas, debe determinar qué tipo de controles se implementará para reducirlas. Si no se configuran los diversos aspectos necesarios para implementar los límites del sistema correctamente, podrían afectar al modelo de amenazas.

Se tiene que empezar echando un vistazo al diseño de la infraestructura de seguridad en la nube. Muchas empresas se enfrentan al menos a una mala configuración de seguridad crítica. El término «crítico» se acuñó porqué algunos problemas de configuración permiten que un atacante obtenga acceso directamente a los servicios de bases de datos privadas en la consola de administración del proveedor en la nube. El aumento del volumen de violaciones de datos que se producen a través de puertos abiertos en la nube afecta a las cargas de trabajo en las subredes privadas y públicas de los proveedores de la nube. 

Ejecutar un plan de remediación

El primer y más importante paso en el diseño de este plan es clasificar los riesgos en función de cuáles son los más graves. Recomendamos realizar esto utilizando un método de clasificación basado en la metodología de evaluación de riesgos. Se debe clasificar cada amenaza que explota una vulnerabilidad según su importancia. Se tiene que elegir un miembro del equipo para corregir estas amenazas de mayor a menor, comenzando por la más crítica. También se define un propietario de riesgo para cada riesgo para asegurarse de que alguien cubra todas las amenazas.

En la nube, sus cargas de trabajo accederán a otros servicios en varios puntos de entrada mediante una llamada a la interfaz de programación de aplicaciones o a través de otros usuarios externos. Otros mecanismos ayudan a acceder a un entorno nativo de la nube desde un centro de datos on-prem. Por ejemplo, se puede encontrar una arquitectura de gestión de identidad federada. En ese caso, debe intentar minimizar el acceso con límites de zonas de confianza y zonas de entrada. El uso de un proveedor de servicios en la nube, como un marco de arquitectura de Amazon Web Services (AWS), Google Cloud Platform o Microsoft Azure, puede ayudar a mitigar problemas de rendimiento o escalabilidad.

Existen varias herramientas de modelado de amenazas en el mercado. Por ejemplo, OWASP Threat Dragon y la herramienta de modelado de amenazas de Microsoft proporcionan varias funciones integradas que ayudan a implementar aplicaciones en la nube. Estos restringen el acceso en función de roles o atributos y servicios de infraestructura de clave pública. Eso ayuda a mantener los sistemas seguros sin hacer que el equipo sea menos seguro o menos eficiente. 

Auditar y supervisar las cargas de trabajo

Es importante comprender la necesidad de supervisar y rastrear el estado de sus aplicaciones en la nube de forma continua. Para ello, puede utilizar herramientas como los registros de monitorización de Azure y los análisis de almacenamiento o los registros de seguimiento de la nube de AWS, como con Cloudwatch. En pocas palabras, el modelado de amenazas es una forma lógica de pensar sobre lo que su sistema y sus aplicaciones pueden o no pueden hacer. Al centrarse en las amenazas en lugar de en las debilidades , puede aprovechar su nicho técnico y obtener una visión más amplia de su postura utilizando un enfoque nativo de la nube.

En pocas palabras, el modelado de amenazas es una forma lógica de pensar sobre lo que su sistema y sus aplicaciones pueden o no pueden hacer. Se puede aprovechar el nicho técnico y obtener una visión más amplia de su postura utilizando un enfoque nativo de la nube.

Alejandro Rueda Romero – Ingeniero en Ciberseguridad