pipelines de CI / CD Son parte integral de los flujos de trabajo modernos, y las herramientas que los respaldan amplían aún más sus capacidades latentes. El trabajo en equipo es esencial en los flujos de trabajo modernos, donde los plazos no solo son urgentes, sino también frecuentes. Cada segundo cuenta cuando un cliente está esperando. Por lo tanto, el mejor punto de partida para hablar de CI/CD es lo que estas herramientas permiten lograr.
¿Qué es CI/CD?
En esencia, los entornos CI/CD proporcionan herramientas que permiten lanzar software más rápidamente y agilizan el proceso de compilación y lanzamiento. Tradicionalmente, el código se desarrolla por equipos independientes y se prueba en entornos personales; la integración lleva tiempo y la retroalimentación sobre el código defectuoso, aún más. Esto conlleva ciclos de compilación prolongados y una menor eficiencia. Es práctica común probar un fragmento de código con varios casos de prueba diseñados antes del desarrollo. Si el código final cumple con estos estándares, debería integrarse fácilmente con el código existente.
Pero como desarrolladores, sabemos que este no es el único resultado posible, incluso con casos de prueba meticulosamente diseñados. La integración y entrega continuas (CI/CD) permiten ejecutar pruebas a gran escala, donde los cambios de código se pueden probar en una sola acción automatizada y optimizada. El código se envía, se recibe en el pipeline y se prueba; si todas las pruebas se superan, la compilación se puede preparar para su lanzamiento. Es increíble el impacto que esto puede tener en la agilidad de tu organización.
La capacidad de corregir errores rápidamente podría ser el futuro del desarrollo. Sin embargo, existen consideraciones importantes que tener en cuenta antes de adoptar el flujo de trabajo CI/CD de forma generalizada en el sector, y actualmente estamos viendo las consecuencias de la adopción apresurada de nuevas tecnologías sin la debida evaluación, pruebas, medidas de seguridad, ni siquiera una comprensión clara de cómo funciona la integración.
Uno de los peligros modernos en la esfera tecnológica es la ciego guiando a ciegosQuienes no son expertos tienen acceso a la misma internet que los expertos y con frecuencia escriben tutoriales y guías. La IA, una creación realmente interesante y útil, agrava en cierta medida este problema. Chat GPT resulta convincente para algunos por su tono a menudo autoritario y su aparente confianza, incluso carisma. Sin embargo, al nutrirse de este amplio abanico de fuentes de internet, también es vulnerable a tener una visión parcial. Si bien este artículo no pretende ser una promoción comercial, considere las ventajas de contar con una consultora de ciberseguridad en el diseño de su arquitectura, para no perder la perspectiva general al abordar tecnologías nuevas y potentes.
El ataque más reciente
Hoy nos centraremos en un ataque específico desarrollado por dos investigadores. Este ataque tiene como objetivo... Acciones de GitHub CI/CD Plataformas, específicamente ejecutores autohospedados. Los ejecutores autohospedados ofrecen muchas ventajas, entre ellas una mayor flexibilidad en cuanto a funciones y opciones. Si bien los ataques se centran principalmente en repositorios públicos de GitHub, estos no son infrecuentes en el sector, e incluso si su organización no aloja un repositorio público, es probable que dependa de uno o más para sus productos.
Si bien el ataque principal se dirigió a las acciones de GitHub, se han identificado vulnerabilidades similares en múltiples plataformas de CI/CD utilizadas en la industria: JenkinsCircle CI, Buildkite, etc. Dado que este ataque se centró en repositorios públicos, sus consecuencias teóricas podrían haber sido de gran alcance si hubiera sido malicioso. Para colmo, estas vulnerabilidades surgen en parte de configuraciones predeterminadas incorrectas.
Para perpetrar un ataque, primero hay que alcanzar el estatus de colaborador. Un objetivo ambicioso, sin duda, sobre todo para un proyecto tan grande y prestigioso. Sin embargo, a los investigadores solo les bastó con corregir una errata para obtener dicho estatus. Con este estatus, pudieron iniciar una solicitud de extracción. Si bien cualquiera puede iniciar una solicitud de extracción de bifurcación en un repositorio público, cuando un colaborador realiza una solicitud de extracción, por configuración predeterminada, tendrá la capacidad de usar el ejecutor asociado al proyecto principal. Esto ocurrirá según esta configuración predeterminada antes de que se apruebe la fusión. Si la bifurcación contiene un flujo de trabajo malicioso, este será ejecutado por el ejecutor.
Los ejecutores persisten en la máquina donde operan, por lo que este código puede seguir afectando compilaciones futuras y ejecutarse en segundo plano sin interrupción. Básicamente, el ejecutor puede actuar como un troyano para el atacante. Si el ejecutor tiene privilegios elevados en la máquina, un requisito estándar, esta no lo reconocerá ni lo marcará como actividad sospechosa. El registro de pulsaciones de teclas permite entonces obtener el token de autenticación y secuestrar todo el proceso. Los tokens de autenticación otorgan acceso completo al repositorio; desde allí, el atacante puede hacer lo que quiera.
Mucho más insidioso que secuestrar un proyecto público de forma tan visible sería abusar del ejecutor persistente para afectar silenciosamente las compilaciones futuras. Estos repositorios son ampliamente utilizados; uno de ellos, PyTorch, que fue atacado directamente como parte del proyecto, posee el 21 % de la cuota de mercado en el sector del aprendizaje automático. Imagine la cantidad de proyectos, empresas y software que podrían verse comprometidos por un ataque. Sin mencionar que, con las largas cadenas de dependencias típicas de los proyectos modernos, su organización podría desconocer por completo que dependía de un proyecto con una vulnerabilidad conocida. En este caso, tenemos la suerte de que, por el momento, los atacantes eran investigadores sin interés en causar daño, pero es un buen momento para revisar el proceso y las herramientas que su organización utiliza para la integración y entrega continuas (CI/CD), así como para comprobar si alguna de sus dependencias sigue siendo vulnerable a este método de ataque.
Conclusión
Los ataques son difíciles de rastrear, especialmente hoy en día, cuando el alcance de una intrusión es difícil de determinar antes de que se produzcan daños. Si su organización utiliza CI/CD y necesita información sobre cómo proteger el pipeline y prevenir ataques, póngase en contacto con nosotros. Consultoría de cifrado.
Nuestro equipo de expertos puede ayudarle a establecer las mejores prácticas para los controles de acceso y la política de seguridad en su plataforma CI/CD, así como a evaluar los posibles vectores de ataque en toda su organización. Nuestros servicios también incluyen gestión de certificados además firma de código, que puede integrarse fácilmente con su sistema seguro CI / CD proceso y agilizar aún más su proceso de construcción y prueba.
