Menu
Menu

Entornos CI/CD y Gestión de Vulnerabilidades: Manejo de Eventos de Seguridad7 min read

Al momento de hablar de buenas prácticas de desarrollo, implantación y puesta en marcha de software; nos topamos de frente con el concepto de los entornos CI/CD.

Los mismos recogen criterios que a menudo se usan de manera conjunta; e incluso hay quien los trata como sinónimos, si bien son más complementarios que cualquier otra cosa.

Veamos sus similitudes, diferencias, y las claves definitivas que te ayuden a elegir la mejor opción para el manejo de vulnerabilidades en tus entornos CI/CD para el desarrollo de aplicaciones de tu empresa.  

Entornos CI/CD

Primero que todo, debemos entender que los entornos CI/CD comprenden no dos, sino tres conceptos que pueden interactuar. Estos son la Integración Continua (CI, por sus siglas en inglés para Continuous Integration); el Desarrollo Continuo y la Entrega Continua (CD, para Continuous Development/Continuous Delivery). Es decir, las siglas CD en esta ecuación se usan indistintamente para Desarrollo Continuo y para Entrega Continua.

La integración de los tres conceptos nos ayudan a crear y a desplegar aplicaciones flexibles para la gestión de nuestros ambientes digitales e infraestructura. Sin embargo, la combinación de CI/CD por Desarrollo Continuo trae resultados distintos a los de combinación CI/CD por Entrega Continua; especialmente en la parte de gestión de vulnerabilidades.

Veamos paso a paso qué significa cada uno; y lo que cada uno implica a nivel de protección y seguridad.

Integración Continua en entornos CI/CD

Empezamos por la Integración Continua. Esta es la capacidad de crear, validar y desplegar cambios y probarlos de manera automática sobre una arquitectura de red ya constituida. La idea de este concepto es ahorrarse los dolores de cabeza que implica desarrollar aplicaciones; e intentar acoplarlas a un marco preestablecido luego de que éstas están listas para su lanzamiento.

En otras palabras, la integración continua permite el acoplamiento por fases a medida que se va desarrollando cada aplicación de modo de tener la facultad de corregir; mejorar y replantear el proceso de creación si es necesario; y aislar los problemas a una sola etapa del mismo sin comprometer la integridad de prototipo final al momento de su ejecución y puesta en marcha.

Entrega Continua en entornos CI/CD

Seguido, nos topamos con la Entrega Continua en entornos CI/CD. Podemos definirla como una extensión de la Integración Continua que se encarga de asegurar la liberación expedita de cambios en tus aplicaciones.

Esto quiere decir, que además de adentrarte en el proceso de liberación de aplicaciones por secciones; también creas políticas y procesos intrínsecos para desplegar la aplicación con la simple acción de un click.

Visto desde un punto de vista más teórico, con la Entrega Continua en entornos CI/CD; puedes programar tus lanzamientos de aplicaciones de acuerdo a las necesidades puntuales de tu negocio.

En todo caso, la Entrega Continua debe contemplar como punto de partida el lanzamiento parcial de pequeños adelantos para poder atender contingencias en caso de haberlas.

Desarrollo Continuo en entornos CI/CD

entornos CI/CDPor último, encontramos el Desarrollo Continuo en entornos CI/CD. Este último concepto lleva más allá tu producción. Y es que el Desarrollo Continuo encierra una pequeña sorpresa que marca la diferencia total de su concepción y funciones; y las de los entornos CI/CD basados en la entrega continua: La automatización.

Hasta este punto, hemos pasado por las etapas de desarrollo de aplicaciones en entornos CI/CD tomando como referencia la intervención del administrador en cada etapa. Dicho en otras palabras; es el administrador quien toma la decisión de continuar con la línea de desarrollo de la aplicación hasta su lanzamiento y puesta en servicio.

Por lo contrario, en el Desarrollo Continuo; cada cambio se implementa de manera automática y sin la intervención humana, luego de cada prueba exitosa.

Ahora bien, ¿cómo se hace con las mejoras en caso de necesitarlas? Sencillo: Las pruebas fallidas parciales arrojan luces y alertas sobre las áreas de mejora en cualquiera de las dependencias del desarrollo de aplicaciones antes de continuar a la siguiente.

La principal ventaja del Desarrollo Continuo es que puedes programar mejor tus lanzamientos puesto que lograrás imprimir rapidez a cada etapa; quitar la presión de tus desarrolladores; y verificar el funcionamiento correcto minutos después de correr la prueba correspondiente.

¿Cómo gestionar las vulnerabilidades en entornos CI/CD?

Como en todo buen desarrollo y administración de nuevas funcionalidades, aplicaciones y demás asuntos relacionados con tus entornos digitales; la seguridad y el manejo de eventos relacionados debe ser parte fundamental del proceso. Veamos entonces las opciones para el manejo de vulnerabilidades en entornos CI/CD.

En principio, debemos familiarizarnos con los eventos de seguridad que pueden tener lugar en nuestros entornos CI/CD; y a partir de ellos, responder una serie de planteamientos para subsanarlos. Entonces tenemos:

Evento 1. Vulnerabilidad nueva

Si se descubre una vulnerabilidad, tenemos que verificar que la misma afecte o no alguna de nuestras librerías, y si esta se hizo pública. De esto dependerán las demás decisiones a tomar.

Evento 2. Impacto de tal vulnerabilidad sobre nuestros sistemas

En caso de que alguna funcionalidad de nuestros sistemas se vea comprometida con la vulnerabilidad nueva; el siguiente paso es determinar hasta qué punto lo hace usando como fuente el informe de vulnerabilidad disponible.

Una vez nos documentamos al respecto, podremos tomar una de estas decisiones:

  1. Marcar la vulnerabilidad como no explotable en nuestros sistemas. Con esta acción, podremos ocuparnos luego de ella.
  2. Proceder a actualizar el sistema afectado con los parches respectivos en caso de existir; y de acuerdo a los criterios expuestos a continuación.

Evento 3. Gestión de Parches de Seguridad

Una vez que determinamos si procede el parcheo, debemos tomar en consideración los siguientes escenarios:

  1. ¿Es más rentable implantar el parche, o asumir la explotación de la falla de seguridad?
  2. En caso de que sea más rentable implantar el parche, determinar si la solución es compatible con nuestras funcionalidades de sistemas.

En ambos escenarios, debemos determinar qué tanto siguen siendo vulnerables nuestros sistemas una vez gestionamos los parches de seguridad.

Asimismo en este punto, es bueno recordar que muchas veces los parches de seguridad se limitan a las versiones más nuevas de sistemas; por lo que es bueno documentarse sobre la obsolescencia de nuestros sistemas.

Evento 4. Solución de la Vulnerabilidad – Actualización de Estado en nuestro entorno CI/CD

En el peor de los escenarios, no habremos sido capaces de aplicar el parcheo para corregir la vulnerabilidad publicada. Aún así tenemos otras opciones de seguridad y, en tal caso; debemos determinar y comprobar hasta qué punto la vulnerabilidad nos afecta, y hasta qué punto nuestros sistemas están expuestos a ella. Entonces:

  1. Si nuestro sistema es vulnerable, podemos aplicar medidas alternativas de seguridad para evitar que puedan explotar la vulnerabilidad
  2. Si nuestro sistema no es vulnerable porque la vulnerabilidad afecta a un sistema específico y no compromete la integridad de nuestros sistemas enteros.

En todos los casos, es inteligente y recomendable hacer seguimiento a la vulnerabilidad nueva al incluirla a nuestra base de conocimiento para tramitar su gestión; y la actualización de nuestros sistemas de seguridad.

Así pues, la gestión de vulnerabilidades en nuestros entornos CI/CD siempre va a depender de nuestra madurez de nuestra seguridad informática.

Como bien podemos ver, el esquema para abordar y gestionar las vulnerabilidades en nuestros entornos CI/CD puede verse sencillo y lógico. Sin embargo, sus implicaciones y manejo final siempre encierra detalles que representan un punto crítico para la salud de nuestros entornos digitales, y que no siempre estamos en la capacidad de observar y solucionar.

En todo caso, en GB Advisors tienes un aliado que te ayuda a solucionar todas las dificultades para subsanar el manejo de vulnerabilidades en tus entornos digitales. Habla con nosotros para idear tu plan de gestión de vulnerabilidades, y ponerte al día con las últimas técnicas para mitigar el riesgo en tus sistemas y entornos.

¿Te gustó esta información? Compártela con tus colegas:
Volver arriba