La evolución hacia un modelo preventivo

Claves de un modelo preventivo

Anticipación, previsión y prevención son características claves cuando nos referimos a la seguridad en el desarrollo de sistemas software. La transición desde un modelo de desarrollo (basado en la realización de actividades reactivas frente a vulnerabilidades ya materializadas) hacia un modelo evolucionado (basado en los tres conceptos anteriores) implica extender las actividades de seguridad a las primeras fases de nuestro ciclo de vida. Así adelantamos la detección, cualificación, priorización de riesgos y requisitos de seguridad, así como la definición de buenas prácticas y medidas de mitigación o contingencia a la fase de concepción del producto o toma de requisitos, según la aproximación metodológica seguida (agile o tradicional).

José Andrés Félix de Sande
José Andrés Félix de SandeDevelopment Software Manager

Características modelo preventivo

En el modelo de desarrollo seguro Viewnext, definido a través de la cátedra de colaboración Viewnext-UEX, se contempla la realización de dicha actividad a través de tres métodos complementarios entre sí:

  • Cuestionarios de evaluación de riesgos e identificación de requisitos – Este método está focalizado sobre todo en perfiles de negocio sin conocimientos especializados en temas de seguridad. A través de un cuestionario asistido, identificará los requisitos de seguridad principales que deben tenerse en cuenta durante el desarrollo del sistema, así como proporcionará una guía de las principales buenas prácticas y contramedidas que ayuden a completar dichas necesidades.
  • Modelado de amenazas y análisis de superficie de ataque – Este método utiliza técnicas estandarizadas como STRIDE (desde el punto de vista del atacante) o ASF (desde el punto de vista defensivo). Mediante estos métodos que se apoyan en diagramas de flujos de datos (DFDs) y herramientas especializadas, se realiza la identificación de objetivos potenciales y las partes más vulnerables de un sistema, que será luego la base para definir las contramedidas que ayuden a prevenir o mitigar los efectos de las amenazas al sistema.
  • Auditorías de seguridad iniciales – Los dos métodos anteriores son de igual validez para la identificación de riesgos tanto en sistemas existentes como aún no desarrollados. Para complementar los anteriores, en el caso de sistemas ya existentes, se recomienda la realización de una auditoría inicial del estado actual del sistema, mediante la realización de tests de penetración y pruebas de caja negra.

Este  último método permite tener la visión del estado actual del riesgo, mientras que los dos anteriores podrían tener en cuenta desarrollos o evoluciones futuras del sistema, por lo que los tres métodos son complementarios, y no necesariamente sustitutivos entre sí. El objetivo de todos ellos es la identificación de riesgos potenciales, el análisis cualitativo y cuantitativo de dichos riesgos que ayude a su priorización, y la definición de las contramedidas y buenas prácticas a aplicar para reducir o eliminar, si es posible, el impacto de dichos riesgos.

Todo ello además puede ir complementado por la revisión de las normativa, regulaciones o directivas- gubernamentales, sectoriales o corporativas, aplicables en cada caso y que ayudarían a tener una visión más completa de las ‘necesidades’ de nuestro sistema desde el punto de vista de la seguridad.

La identificación de requisitos y amenazas es un proceso que debe realizarse de manera continua durante todo el ciclo de desarrollo, con el objetivo de que se vaya completando un modelo de amenazas cada vez más detallado de manera iterativa. Lo normal es que se defina un modelo de alto nivel durante la fase de concepción del producto o toma de requisitos, y el mismo se vaya refinando y completando a lo largo del ciclo de desarrollo, pues según se van incorporando nuevas funcionalidades o características al producto, pueden aparecer nuevas vulnerabilidades o vectores de ataque que deben ser examinados y analizados, tomando las contramedidas oportunas. Todo este proceso iterativo debe ser incorporado de manera natural al ciclo de vida del sistema.

La realización de estas actividades en fases tempranas, permite tomar decisiones informadas sobre los riesgos de seguridad en las aplicaciones durante las fases clave, y en base a ello, contar con una lista priorizada de mejoras de seguridad a tener en cuenta en los requisitos, la arquitectura, el diseño y la implementación de la solución. La clave de todo este proceso, es centrarse en la búsqueda de amenazas con alta probabilidad y alto impacto, de manera similar a como priorizaríamos otro tipo de riesgos en un proyecto.

 «En la práctica de ADM-DW de Viewnext tenemos integrado este proceso en el modelo de desarrollo de ciclo de vida seguro.«

2019-08-05T14:06:42+02:0024 enero, 2018|
Ir a Arriba