Volver

DevSecOps: enfoque y aspectos generales

Imagen del slider

19 de abril de 2019

Por

N. C. B. Diop – Experto en seguridad de aplicaciones en Squad, Director de Ciberseguridad

Introducción

DevSecOps (Desarrollo-Seguridad-Operaciones) es un puente entre el desarrollo, la automatización de pruebas y la seguridad. Implica a todos los participantes en el ciclo de desarrollo de un software o una aplicación, haciéndolos responsables de la seguridad. En términos técnicos, su aplicación requiere el modelo «Security by design». Abarca un amplio abanico de competencias que van desde la arquitectura técnica hasta las pruebas de seguridad y el desarrollo.

Al igual que DevOps, DevSecOps tiene como objetivo implementar el modelo «Security by design» (seguridad desde el diseño), al tiempo que se da prioridad a la «sensibilización y la formación».

Parece muy importante poner de relieve los retos y las ventajas, explicar la integración de un modelo de este tipo y presentar la visión establecida, junto con la metodología y los procedimientos que deben aplicarse para lograr un resultado óptimo.

Cabe señalar que, para cada entorno, se debe definir un modelo acorde con su ecosistema.

Retos y ventajas

Muchas empresas aún no han evaluado el grado de gravedad que supone la falta de seguridad en sus aplicaciones. Sin embargo, las consecuencias de una seguridad deficiente en las aplicaciones son críticas. El impacto financiero es significativo: se calcula que es 30 veces más barato incorporar la seguridad en las fases iniciales que durante la fase de producción.

Es importante crear conciencia sobre estos retos para sensibilizar a las empresas que buscan innovar y lograr que acepten este modelo.


Para una empresa, los riesgos también afectan a su imagen o al robo de datos de clientes. La reputación de una empresa, en estos tiempos de ataques, es muy importante. Ante el aumento de piratas informáticos y hackers en el mundo digital, la prevención sigue siendo la mejor defensa frente a los ciberataques.

Cuando la aplicación se somete a controles de seguridad desde la fase de diseño, resulta 100 veces más barato anticipar y corregir las vulnerabilidades durante la fase de implementación.

Las ventajas de esta implementación son muchas y variadas. Entre ellas se encuentran la confianza de los consumidores, la reputación y la notoriedad. Sin olvidar la reducción de los costes de mantenimiento derivados de la eliminación de las correcciones de seguridad para las aplicaciones.


Integración de la seguridad en el método ágil

Las pruebas de penetración

Las pruebas de intrusión siguen siendo la práctica más eficaz para minimizar los riesgos asociados a las aplicaciones web o móviles que utilizan servicios web. Se llevan a cabo mediante herramientas comerciales o gratuitas.

Revisión del código

Las herramientas de análisis estático permiten automatizar la detección de estas vulnerabilidades. Productos como Checkmarx permiten obtener un gráfico de ejecución para la detección de datos de entrada. La serie de análisis se ejecuta durante la fase de desarrollo. En el caso de las herramientas de código abierto, el reto sigue siendo el tiempo de procesamiento considerable y el número de falsos positivos que hay que tratar. HP Fortify es muy eficaz en su capacidad para detectar problemas graves, pero Checkmarx sigue siendo líder en soluciones de auditoría de código.

Gestión de vulnerabilidades

Las bibliotecas se utilizan con frecuencia, pero no siempre se gestionan los parches. El Open Web Application Security Project (OWASP) ofrece un complemento llamado «dependency-check» que comprueba si una biblioteca es vulnerable.

Automatización de las pruebas de seguridad

Responde a cuatro retos principales del mundo digital, a saber:

  • La garantía de que se ajusta a las necesidades del negocio.
  • La seguridad y la confianza de las aplicaciones.
  • La aceleración de la puesta en marcha.
  • Garantizar el funcionamiento de los sistemas y su interoperabilidad mediante una serie de pruebas.

Visión del producto/servicio

Presentación del modelo SDLC seguro

La siguiente figura muestra el modelo que debe seguir el ciclo de vida global del desarrollo de software (SDLC).

Ciclo de vida del desarrollo de software (SDLC) global y seguro

Distinguimos cinco etapas fundamentales que deben respetarse en cada fase del ciclo de desarrollo (SDLC).

Fase de estudio:Se están estableciendo los requisitos de seguridad para garantizar el cumplimiento del pliego de condiciones definido. Es necesario realizar un análisis de riesgos para determinar las necesidades y llevar a cabo correctamente la fase de diseño.

Fase de diseño:Se debe implementar un conjunto de arquitectura para un seguimiento guiado del modelo.

Fase de ejecución:Se lleva a cabo el análisis del código. Este análisis está automatizado y programado.

Fase de aceptación:Esta fase determina si la aplicación es apta para pasar a la fase de explotación. Se lleva a cabo a través del responsable de seguridad de la Digital Factory y del RSSI, y se basa en

  • La revisión del pliego de condiciones y del protocolo de seguridad,
  • La correspondencia entre las pruebas aportadas y el pliego de condiciones,
  • La aprobación formal del equipo de seguridad.
  •  
  • Fase de mantenimiento

Fase de mantenimiento:incluye la fase de mantenimiento de la capacidad operativa (MCO) y la fase de mantenimiento de la seguridad (MCS).

  • En el marco del mantenimiento de la operatividad, es fundamental incorporar un plan de emergencia y de continuidad del servicio, así como definir un plan de copias de seguridad y una gestión de parches.
  • En el marco del mantenimiento de la seguridad, parece necesario recurrir al equipo de seguridad de los sistemas de información. Este equipo se encarga de integrar el proyecto en función de la evolución del sistema de información, gestionar las vulnerabilidades e identificar e incorporar los riesgos detectados en la matriz de gestión de riesgos.

Procedimiento

Se desarrolla en tres fases principales que garantizan la idoneidad de los resultados.

Fase de implementación:corresponde a la puesta en marchade todos los entornos. Incluye el entorno de desarrollo. El equipo de control de calidad se encarga de gestionar esta parte para supervisar el trabajo de los desarrolladores.

Fase de análisis:corresponde a la fase de inicio de los escaneos. Distinguimos entre diferentes tipos de escaneos en función del nivel de madurez de la aplicación. El inicio se lleva a cabo de forma automatizada.

Fase de validación: corresponde a la fase de validación de la seguridad. Debe ser llevada a cabo por el equipo de seguridad de los sistemas de información (SSI). En función de los resultados obtenidos, el analista de seguridad realizará una prueba de aceptación de seguridad.


Conclusión

La automatización de las pruebas de seguridad atrae cada vez a más interesados. Su ventaja radica en su complejidad, ya que aúna en un solo puesto tres perfiles diferentes: control de calidad, desarrolladores y consultores de seguridad.

En la actualidad, y según la experiencia adquirida, sigue siendo un gran reto concentrar en una sola persona las funciones de DevSecOps. Es más recomendable contar, en un entorno de desarrollo, con un perfil de automatizador de pruebas de seguridad que posea la experiencia necesaria para garantizar de forma continua el cumplimiento de los requisitos de seguridad en los proyectos de desarrollo.

La seguridad es un campo muy amplio y DevSecOps es una filosofía, al igual que DevOps, que hay que dominar bien antes de lanzarse a ella.