Modelado de amenazas como apoyo para el retorno de la inversión

En el 2021, alrededor del 50% de los aplicativos web estaban expuestos al menos a una vulnerabilidad explotable, según un reporte de NTT Application Security, y ante este escenario, surge la interrogante de ¿cómo deben prepararse las organizaciones para garantizar que su proceso de desarrollo de software libere productos fiables y seguros?.

La transformación digital y la necesidad de las organizaciones de mejorar sus procesos para optimizar los recursos y ser más eficientes, las ha llevado a la adquisición o al desarrollo de nuevos sistemas que apoyen en cada línea operativa del negocio. Sin embargo, en muchas ocasiones se ponen en funcionamiento sistemas sin considerar los riesgos de seguridad que los mismos podrían añadir al entorno, ya que antes o durante su implementación, no se realiza un análisis de riesgos de seguridad o alguna prueba que certifique que es un sistema seguro.

modelo amenazas

Por lo tanto, con el propósito de prevenir que la superficie de ataque de una organización crezca, existen múltiples controles de seguridad que pueden ser aplicados desde etapas tempranas del ciclo de vida de desarrollo de sistemas (SDLC) para asegurarse de obtener productos seguros y con la capacidad de mitigar las amenazas más comunes.

Actualmente, uno de los controles de seguridad que mayor relevancia está adquiriendo es el modelado de amenazas, técnica que el Instituto Nacional de Normas y Tecnología (NIST, por sus siglas en inglés) ha seleccionado cómo una de las principales medidas para validar los estándares mínimos de codificación. El NIST define al modelado de amenazas como un método que capta el funcionamiento del sistema para identificar y entender las amenazas potenciales, los objetivos y tácticas de los agentes de amenazas para establecer controles de seguridad que permitan mitigarlos. Con el propósito de captar la esencia del funcionamiento de un sistema, se suele analizar la arquitectura de la aplicación y realizar diagramas de flujo de datos que destaquen de manera granular cómo cada componente o servicio interactúa entre sí y a partir de este contexto, analizar cuáles vulnerabilidades podrían ser aprovechadas por las amenazas. 

Existen distintos enfoques bajo los que puede implementarse el modelado de amenazas, sin embargo, entre las actividades que poseen en común dichas metodologías, se contempla la descomposición de la aplicación para conocer su contexto y la manera en la que ésta debe funcionar, lo que permite identificar los componentes de infraestructura que la integran, procesos, servicios y demás, para crear un diagrama de flujo de datos (DFD) que represente dicho contexto. Seguidamente, se debe escoger el marco de amenazas que utilizarán los desarrolladores y analistas de seguridad como apoyo para identificar dichas amenazas, actualmente existen múltiples marcos aceptados por la industria tales como: STRIDE, PASTA, DREAD y ATASM. Los diagramas de flujo se deben comparar contra el marco para identificar amenazas asociadas con la capacidad de gestionar aspectos de autenticación, autorización, integridad, monitoreo, auditoría, cifrado, errores y excepciones, disponibilidad y muchas más. 

Finalmente, cuando las amenazas han sido identificadas, se evalúan en términos de probabilidad e impacto para determinar su nivel de riesgo y así priorizar su mitigación, las contra medidas resultantes formarán parte del listado de los requisitos y backlog de actividades del equipo de desarrollo, lo que garantiza que la capa de seguridad se integre de manera transparente en todo el proceso del SDLC y no como el último elemento a considerar dentro del sistema.

El Proyecto abierto de seguridad de aplicaciones web (OWASP, por sus siglas en inglés) destaca que el modelado de amenazas otorga una línea base que justifica los esfuerzos e inversiones de seguridad, ya que permite tomar decisiones de manera informada, además, SAFECode cataloga a esta técnica como una actividad que aporta un retorno de inversión, gracias a que las amenazas se identifican y mitigan desde las etapas tempranas del desarrollo de software. Cabe destacar que los expertos coinciden en que las organizaciones invierten más recursos corrigiendo vulnerabilidades en el software ya desplegado en producción, que al hacerlo en las fases previas del SDLC.

El modelado de amenazas es una práctica a realizar de manera continua, incluso cuando se deba dar mantenimiento a un componente en los sistemas, ya que los agentes de amenaza desarrollan continuamente nuevas tácticas para aprovechar cualquier falla de seguridad y causar impactos adversos considerables para las organizaciones.

De acuerdo con la 13ª Encuesta Anual de CEO de PwC Interaméricas, el 44% de CEOs en Latinoamérica están preocupados por los impactos negativos de los ataques cibernéticos, generando que estos se involucren cada vez en las discusiones para integrar a la seguridad en las iniciativas del negocio.

modelo amenazas

Un aspecto clave del modelado de amenazas es que durante el proceso tanto el equipo de desarrollo, seguridad, usuarios funcionales y hasta gerentes (C-Suite) pueden involucrarse para compartir, desde su experiencia, información que permita depurar el esquema de funcionamiento del sistema e identificar posibles puntos de falla. Esto refuerza la cultura de seguridad en la organización, da visibilidad de los riesgos a los que las empresas se enfrentan constantemente y, por ende, promueve la dotación de recursos para reducir la superficie de ataque. SAFECode recomienda sensibilizar a la C-Suite sobre la diferencia entre los términos: amenaza, riesgo y vulnerabilidad, con el propósito de evitar una mala interpretación de los resultados obtenidos de la aplicación del modelado de amenazas y estimular a la C-Suite a optar por la inclusión de prácticas proactivas en su estrategia de seguridad.

En el 2019, un reporte de Microfocus indicaba que un 61% de aplicaciones escaneadas tenían al menos una vulnerabilidad crítica o alta que no estaba cubierta en el Top 10 de OWASP, un incremento de un 12% en relación con el 2018, lo que demuestra que para desarrollar software seguro y confiable, no es suficiente con realizar únicamente una prueba estática (SAST), dinámica (DAST) o un escaneo de análisis de vulnerabilidades, sino que deben integrarse múltiples medidas de seguridad en cada una de las cinco etapas que considera el ciclo de desarrollo de software, de manera que tanto los procesos, personas y tecnología se alineen en un lenguaje común para liberar sistemas con estándares aceptables de seguridad.

Por Verónica Hidalgo, Consultora de Cybersecurity & Privacy en PwC Costa Rica | Octubre 2022

Contáctanos

Síguenos