Por qué es necesaria la seguridad para que la canalización de CI/CD fluya sin problemas
La tecnología ha avanzado a un estado en el que los clientes ahora esperan un flujo constante de actualizaciones para su software y aplicaciones. Para satisfacer esta demanda, los desarrolladores suelen recurrir a lo que se conoce como canalización de CI/CD. Como lo señaló Sinopsisesta práctica abarca dos conceptos importantes de desarrollo de software del mundo simplificado de hoy:
- Integración Continua (CI): El esfuerzo de los ingenieros de software por asimilar su trabajo en conjunto tanto como sea posible. A menudo utilizan herramientas de automatización que respaldan la creación y las pruebas con el fin de crear un ciclo de vida definido por software.
- Entrega continua (CD): La orquestación de la construcción, configuración y empaque del software para permitir el lanzamiento de un producto en cualquier momento. CD se basa en un equilibrio de bajo costo y alta automatización para entregar paquetes de software de manera oportuna.
CI y CD se unen para crear una serie de ventajas para los desarrolladores de software. De acuerdo a Código Dx, la unión CI/CD inyecta agilidad en el proceso de desarrollo de software al permitir que los desarrolladores construyan componentes, integren su trabajo y aborden los errores de forma incremental, evitando así largas demoras al final del proceso de desarrollo. Esto se traduce en una implementación más rápida del software. Además, al permitir que los desarrolladores corrijan errores de manera continua, CI/CD les permite crear mejores aplicaciones al liberar su tiempo para concentrarse en tareas más importantes, como las pruebas de usabilidad.
Seguridad y canalización de CI/CD
Una canalización de CI/CD constituye un puente crucial entre la organización de desarrollo y los consumidores que utilizan sus productos. Esta importancia no pasa desapercibida para los atacantes digitales. Saben que al obtener acceso a la canalización de CI/CD, pueden corromper el proceso de entrega de software y potencialmente lograr algo parecido a lo que le sucedió a MeDoc en el caso de NotPetya.
Tales amenazas resaltan la importancia de aplicar seguridad a la canalización de CI/CD. Pero eso no es exactamente un proceso sencillo. Por ingeniero de datos matt boegnerlas organizaciones deben coordinar sus esfuerzos para asegurar la canalización de CI/CD dentro del alcance de tres marcos separados pero complementarios:
- Seguridad de la tubería.: este concepto trata de proteger la canalización de CI/CD en general, incluido quién tiene acceso a ella y qué autenticación necesitan para impulsar los cambios.
- Seguridad en la tubería: Las organizaciones necesitan proteger lo que fluye a través de su canalización de CI/CD mediante el análisis de su código en busca de posibles vulnerabilidades de seguridad y otras fallas.
- Automatización de la seguridad: La noción de automatización de la seguridad agiliza la defensa y la respuesta de una organización frente a posibles incidentes de seguridad.
Veamos ahora cada una de estas consideraciones con mayor detalle e identifiquemos exactamente cómo las organizaciones pueden cumplirlas para proteger sus canalizaciones de CI/CD.
Seguridad del Oleoducto
Según CodeDx, las organizaciones pueden garantizar la seguridad de su canalización de CI/CD con relativa facilidad siempre que hayan seguido las mejores prácticas para DevSecOps. Deben exigir específicamente la autenticación para que cualquier persona envíe cambios a la canalización de CI/CD, implemente el seguimiento de inicio de sesión y confirme que las compilaciones residen solo en servidores seguros.
Seguridad en la tubería
En contraste con la seguridad de la tubería, la seguridad en la tubería es un poco más complicada. Las organizaciones deben centrarse en varias mejores prácticas en particular:
Herramientas de análisis estático
Las herramientas de análisis estático son importantes ya que pueden verificar el código de una aplicación en busca de vulnerabilidades de software y errores de codificación. Al implementar estas utilidades, las organizaciones deben hacer cumplir el uso de complementos IDE y linters por parte de equipos completos de desarrolladores para estandarizar la incorporación de seguridad en sus esfuerzos. También deben emplear herramientas de calidad de código que puedan analizar específicamente los componentes de código abierto de los que dependen sus aplicaciones en busca de vulnerabilidades conocidas. Idealmente, las organizaciones podrán integrar estas herramientas con Jenkins, Travis CI o CircleCI y programar sus ventanas de análisis adecuadamente para no afectar el proceso de construcción.
Revisiones de códigos de pares
Las organizaciones pueden mejorar la calidad de su código con recorridos informales o inspecciones formales. Dicho esto, no pueden analizar cada línea de código. Por lo tanto, los equipos deben seguir la recomendación de Boegner y elaborar una lista de control de seguridad como la de OWASP.Serie de hojas de trucos” para guiar sus revisiones. Pueden realizar estas comprobaciones manualmente teniendo en cuenta las vulnerabilidades comunes durante el proceso de desarrollo.
Examen de la unidad
Es importante que los desarrolladores prueben si sus clases y métodos se comportan como se espera. Para lograr este fin, pueden realizar pruebas unitarias que utilizan específicamente scripts para analizar casos de uso indebido/abuso y buscar vulnerabilidades comunes. Los desarrolladores deben asegurarse de que estas pruebas se ejecuten rápidamente para no afectar el proceso de compilación.
Pruebas de seguridad funcional
Las pruebas de seguridad funcional son útiles para garantizar que el software cumpla con la autenticación, la gestión de sesiones y otros requisitos. Las organizaciones deben diseñar estas pruebas para determinar si los usuarios pueden hacer lo que deberían y evaluar si pueden hacer algo que no está permitido. A menudo pueden diseñar estas pruebas utilizando sus herramientas de prueba unitaria.
Automatización de seguridad
La última pieza del rompecabezas de seguridad de la canalización de CI/CD es la automatización. De acuerdo a DevOps.com, las organizaciones pueden usar herramientas de automatización, por ejemplo, para garantizar que los desarrolladores sigan las políticas de seguridad de canalización de CI/CD con una posibilidad mínima de error, ya que estas utilidades pueden automatizar cualquier cambio y ponerlo a disposición de todos los desarrolladores. Además, pueden usar herramientas de administración de configuración para automatizar la tarea de aprovisionar infraestructura segura repetidamente y a escala sin cometer errores.
Una solución sólida para la seguridad de DevOps
Las recomendaciones discutidas anteriormente pueden ayudar a las organizaciones a garantizar la seguridad de la canalización de CI/CD. Afortunadamente para ellos, hay soluciones disponibles a través de las cuales los profesionales de la seguridad pueden fortalecer las configuraciones, remediar vulnerabilidades, monitorear eventos sospechosos y automatizar su seguridad. Solo necesitan la solución adecuada.
Descubra cómo HCiberSegurityDevOps podría ser la plataforma de seguridad ideal para su organización.
También puede consultar una guía de supervivencia de DevOps que HCiberSegurity creó para profesionales de la seguridad haciendo clic aquí.