3 jun 2014

El modelado de amenazas (Parte I)

Cuando se lleva a cabo un desarrollo de software grande es muy común que se utilice un modelado de amenazas, es más algunos ciclos de vida de desarrollo de software seguro los utilizan en sus fases. Por esto es un tema interesante el conocer como llevarlos a cabo y como pueden utilizarse en el mundo del desarrollo software. 

Un modelado de amenazas es una herramienta que nos ayuda a mejorar el proceso de diseño de las aplicaciones, es decir, nos ayuda a conseguir que el desarrollo de una aplicación contenga propiedades, características y las directrices o principios de diseño de software seguro. 

Es necesario que los empleados que participan en la fase de diseño e implementación del software desarrollen dos perspectivas: la de defensor y la de atacante.En la de defensor el equipo tiene un punto de vista de los elementos de seguridad generales, intentando desarrollar el código lo más seguro posible. Por otro lado, el punto de vista del atacante intenta comprender los posibles ataques que se pueden llevar a cabo contra el software producido. La perspectiva de atacante se puede estudiar mediante patrones de ataque y árboles de ataque.

En conclusión, y según comparte la propia Microsoft, un modelado de amenazas es un análisis que ayuda a determinar los riesgos de seguridad que pueden aparecer o acaecer  en un producto, aplicación o entorno, así como la forma en la que se aparecen estos ataques. El objetivo es identificar cuáles son las amenazas y que tipo de mitigación requieren. 

Características del modelado

El modelado de amenazas debe ser capaz de:
  • Identificar amenazas potenciales así como condiciones necesarias para llevarlas a cabo.
  • Facilitar identificación de condiciones o vulnerabilidades que afecten a la existencia de múltiples amenazas. 
  • Proporcionar información relevante sobre cuáles serían las contramedidas más eficaces para mitigar un posible ataque.
  • Proporcionar información sobre cómo las medidas actuales previenen la consecución de ataques.
  • Transmitir a la dirección la importancia de los riesgos tecnológicos. 
  • Establecer una estrategia sólida para evitar posibles brechas de seguridad.
Una vez comentado esto, las cuales se pueden entender como características claras de un modelado de amenazas como herramienta o proceso en la lucha contra las amenazas en el software, se expone a continuación una serie de características más enfocadas a las etapas que se pueden deducir de un modelado de amenazas:

  • Conformación de un grupo de análisis de riesgos. Este grupo se encargará de llevar a cabo la realización del modelado. Se debe componer de especialistas en diferentes tareas del proceso en global, especialistas en seguridad, desarrollo, pruebas, etcétera. 
  • Descomposición de la aplicación e identificación de componentes clave. Esta etapa se centra en reconocer los componentes principales de la aplicación y de este modo poder crear lo que se denomina un perfil de seguridad, es decir un catálogo de vulnerabilidades conocidas. En este punto entran en juego los DFDs, casos de uso, diagramas, etcétera. 
  • Determinación de las amenazas a cada componente de la aplicación. Es interesante que esta etapa tenga la perspectiva del atacante comentada anteriormente. Las interacciones entre componentes son visualizadas con lupa para poder entender las amenazas que existen en dichas interacciones. Es altamente recomendable utilizar el método STRIDE por cada elemento de la aplicación. 
  • Asignación de un valor a cada amenaza. En esta etapa se calcula el riesgo asociado a cada amenaza. Esto permite determinar qué respuesta dar a cada amenaza, y de algún modo priorizarlas según el riesgo que representen para la aplicación. Es altamente recomendable utilizar el método DREAD para llevar a cabo esta tarea. 
  • Decidir cómo se responde ante cada amenaza. Se toma la decisión de cómo actuar ante las amenazas dando diferentes respuestas, basándonos en el riesgo asociado a cada una. Siempre puede existir un riesgo asumido por la dirección.
  • Identificar las técnicas y tecnologías necesarias para mitigar los riesgos Identificados. Para las amenazas que se vayan a mitigar se debe seleccionar las herramientas necesarias para llevar a cabo la función. Por ejemplo: restricciones, capa de autenticación separada de la capa de acceso, cifrados seguros, etcétera. 

No hay comentarios:

Publicar un comentario