El modelado de amenazas es un método para identificar por adelantado posibles vulnerabilidades en la arquitectura de una aplicación. Consiste en diagramar una aplicación, identificar los fallos de seguridad y mitigarlos.
Después de leer este artículo podrás:
Contenido relacionado
Prueba de penetración
¿Qué es el OWASP Top 10?
Detección de amenazas
Información sobre amenazas
¿Seguridad de aplicaciones web?
Suscríbete a theNET, el resumen mensual de Cloudflare sobre las ideas más populares de Internet.
Copiar el enlace del artículo
El modelado de amenazas es un ejercicio para encontrar vulnerabilidades de seguridad en una aplicación y su entorno. Consiste en crear una representación de una aplicación con todos sus componentes, para luego identificar los puntos débiles. Lo ideal es que los desarrolladores e ingenieros de seguridad utilicen el modelado de amenazas a lo largo de todo el proceso de desarrollo del software — antes de que una aplicación salga al mercado, no solo después. El modelado de amenazas puede ayudar a que una aplicación sea mucho más segura de lo que hubiera sido de otro modo, pero no debe esperarse a que sea inaccesible.
En las películas de atracos, los protagonistas suelen examinar los planos de las instalaciones que planean robar, averiguando cuáles son los puntos débiles — por dónde se puede entrar en el edificio, los ángulos que las cámaras de seguridad no pueden detectar, etc. Del mismo modo, el modelado de amenazas es como examinar los "planos" de una aplicación determinada. La diferencia es que el modelado de amenazas lo realizan las personas a las que les gustaría mantener segura la aplicación, no los posibles ladrones.
El modelado de amenazas requiere que los equipos creen una visión completa de la aplicación. Luego, implica pensar como alguien que podría querer poner en riesgo la aplicación. ¿Qué haría un atacante? ¿Aprovecharían quizás la débil seguridad de la API? ¿Utilizarían un ataque a la cadena de suministro para infectar una biblioteca de sistemas integrados? Aunque no todos los ataques pueden anticiparse, el modelado de amenazas ayuda a detener algunos de estos antes de que se produzcan.
Existen muchos enfoques posibles para el modelado de amenazas y ningún método se puede aplicar a todas las situaciones. Sin embargo, normalmente se trata de estos cuatro pasos principales:
Los modeladores de amenazas intentan identificar y representar lo siguiente:
Si Terry escribe una aplicación sencilla que muestra imágenes de globos, su diagrama de la aplicación podría verse de la siguiente forma:
Ten en cuenta que este es un ejemplo que ha sido simplificado en gran medida y que el diagrama de una aplicación real de modelado de amenazas podría ser mucho más complejo.
Ver una aplicación presentada de este modo puede facilitar la identificación de los fallos. Terry, por ejemplo, podría darse cuenta de que las comunicaciones entre su base de datos de fotos de globos y su servidor web no usan Transport Layer Security (TLS). Esto significa que ninguno de los dos servidores comprueba la identidad del otro mediante firmas digitales, lo que hace posible que un atacante se haga pasar por el servidor de la base de datos y envíe contenido malicioso al servidor web.
Dado que el modelado de amenazas ocurre durante todo el proceso de desarrollo, mitigar los fallos puede significar cambiar el plan de la arquitectura de una aplicación o implementar una solución en una aplicación que está siendo desarrollada.
Para mitigar la amenaza que identificó, Terry puede reconfigurar su servidor de base de datos y su servidor web para que utilicen TLS para su conexión — o mejor aún, para que utilicen mutual TLS (mTLS) y hagan una comprobación mutua.
A este punto, Terry podría ejecutar la aplicación en un entorno de prueba y comprobar si 1) los servidores utilizan TLS tal y como está configurado, y 2) si el servidor web aceptará tráfico HTTP de un servidor no comprobado en lugar del servidor de la base de datos. Llevaría a cabo comprobaciones similares para cualquier otra mitigación que haya aplicado.
Una metodología de modelado de amenazas es un enfoque para identificar las amenazas. Las metodologías proporcionan estructura al proceso de modelado de amenazas, lo cual de otro modo podría resultar abrumador en un sistema complejo. Las organizaciones pueden elegir entre una amplia gama de metodologías de modelado de amenazas o incluso desarrollar las suyas propias. Algunas de las metodologías más comunes incluyen:
También hay otras metodologías de modelado de amenazas. Algunas de estas incluyen "Trike" y las diversas metodologías híbridas, que ni siquiera tienen siglas.
El modelado de amenazas se debe realizar antes y durante el desarrollo del software, a lo largo del ciclo de vida de una aplicación. Si una aplicación se publica sin ningún tipo de modelado o mitigación de amenazas, los fallos de seguridad pueden ser descubiertos por los usuarios —o atacantes— antes de que los descubran los equipos de seguridad. Esto puede dar lugar a una fuga de datos e introduce un mayor riesgo de amenazas zero-day.
Sin embargo, como el modelado de amenazas no descubre todos los riesgos de un sistema, los desarrolladores y las organizaciones deben continuar con este proceso, incluso después del lanzamiento. Además de modelar las amenazas, pueden hacerlo a través de lo siguiente:
Cloudflare también ofrece un servicio de información sobre amenazas y operaciones, Cloudforce One, para proteger a los clientes de las amenazas más recientes. Cloudforce One está dirigido por un equipo de investigación de amenazas de categoría mundial con gran experiencia en desbaratar a atacantes de escala global. Más información sobre Cloudforce One aquí.