El modelado de amenazas es el proceso de visualización de vulnerabilidades en el software desde la fase de diseño hasta el ciclo de vida del desarrollo del software. Se trata de una práctica de seguridad de software relativamente nueva que ha cobrado mucha fuerza en los últimos años.
Históricamente, el modelado de amenazas fue realizado, literalmente, por profesionales de la seguridad que usaban pizarras. Hoy, sin embargo, se está integrando cada vez más en el diseño de la arquitectura de software, y los desarrolladores pueden asumirlo cada vez más en colaboración con el equipo de seguridad, lo que complementa el modelo DevSecOps.
Y sigue evolucionando. Podría decirse que el modelado de amenazas de código abierto es el siguiente paso, con el agnosticismo de herramientas, lo que significa que puede ser adoptado mucho más ampliamente.
La práctica de examinar el diseño de un sistema de software para identificar posibles problemas de seguridad, el propósito final del modelado de amenazas es anticipar, y abordar de manera proactiva, cómo un atacante podría comprometer una aplicación.
Fundamentalmente, implica responder las siguientes preguntas durante la fase de diseño. ¿Qué estamos construyendo? ¿Qué puede ir mal? ¿Qué vamos a hacer al respecto? ¿Y hicimos un buen trabajo?
Al encontrar vulnerabilidades de esta manera al principio del ciclo de vida del desarrollo de software, los desarrolladores pueden incorporar protecciones en el código desde el principio, ahorrando así una cantidad considerable de tiempo y dinero para abordar cualquier brecha de seguridad que ocurra más adelante.
Cualquier modelo de amenaza creado durante esta etapa inicial debe usarse para informar todas las actividades de seguridad posteriores, incluida la implementación, las pruebas y más. En muchos casos, sin embargo, el modelo solo se usa durante la fase de diseño, y se vuelve menos relevante a medida que avanza el proyecto.
Desplazar a la izquierda
Pero, al adoptar el modelado de amenazas, los desarrolladores pueden construir relaciones valiosas con el equipo de seguridad de su organización. Estas relaciones son cada vez más importantes, ya que la seguridad se une al movimiento de “desplazamiento a la izquierda” y se convierte en una parte cada vez más esencial de la canalización de creación de aplicaciones: los equipos de desarrollo y seguridad deben trabajar en estrecha colaboración para crear procesos repetibles que den como resultado un software seguro.
Entonces, esto es DevSecOps, una extensión del modelo DevOps en el que la seguridad tiene un asiento en la mesa en cada fase del proceso DevOps. Y, dado que es inherentemente una actividad colaborativa que involucra a los equipos de seguridad y desarrollo, el modelado de amenazas se presta mucho a este modelo. De hecho, la naturaleza iterativa de la metodología de modelado de amenazas se adapta bien al proceso DevOps. Cada vez que se alcanza una nueva fase de “plan”, por ejemplo, existe una oportunidad para el modelado de amenazas. Luego, con cada nuevo sprint o iteración, ese modelo de amenaza puede revisarse y revisarse más.
Ahora que se reconoce su importancia como parte del modelo DevSecOps, es probable que la evolución del modelado de amenazas pronto haga que la práctica se adopte más ampliamente.
Accesible para todos
En su forma más básica, el modelado de amenazas puede ser realizado por expertos e ingenieros utilizando una pizarra.
Sin embargo, con el tiempo, el desarrollo de software se ha convertido cada vez más en un movimiento rápido con una cultura de integración e implementación continuas. Esto, junto con los equipos de desarrollo que trabajan en docenas, o incluso cientos, de servicios simultáneamente, significa que el método manual de “pizarra” de modelado de amenazas es en gran medida insostenible. A menudo no es práctico y ciertamente no es escalable.
El modelado de amenazas ha tenido que evolucionar para mantenerse al día con el ritmo y las demandas del desarrollo de software. Ahora que la seguridad es una prioridad a nivel de directorio para la mayoría de las organizaciones, se ha convertido en una capacidad crítica para los líderes empresariales. De hecho, ahora se reconoce como una práctica crítica de seguridad de software. En los EE. UU., por ejemplo, el Instituto Nacional de Estándares y Tecnología recomienda que el modelado de amenazas se lleve a cabo como parte de sus Estándares mínimos recomendados para la verificación de código de proveedores o desarrolladores.
Hasta hace poco, el modelado de amenazas seguía siendo principalmente el dominio de los expertos en seguridad de una organización. Ahora, sin embargo, el advenimiento de las herramientas de código abierto, el siguiente paso lógico en la evolución del modelado de amenazas, significa que también es accesible para los desarrolladores, algo esencial como parte del modelo DevSecOps.
Hay ofertas actualmente disponibles en el mercado que están diseñadas para ser utilizadas por equipos de seguridad y desarrolladores, y contienen plantillas, bases de datos predefinidas de amenazas comunes y paneles fáciles de usar, así como la capacidad de recopilar inteligencia de amenazas de abierto bibliotecas globales.
El modelado de amenazas ha recorrido un largo camino desde el enfoque de pizarra manual. Las herramientas de código abierto están configuradas para transformar el proceso de modelado de amenazas. Al convertirla en una práctica cada vez más simple y ampliamente adoptada, tendrán un impacto significativo en el diseño seguro. A medida que la canalización de entrega se vuelve más rápida y complicada, y a medida que el panorama de amenazas continúa creciendo en sofisticación, los beneficios de las herramientas de modelado de amenazas de código abierto para permitir un enfoque DevSecOps efectivo representan un gran paso hacia el logro de un diseño de software verdaderamente seguro.
Stephen de Vries es cofundador y director ejecutivo de IriusRisk