Logotipo de Zephyrnet

CircleCI: el servicio de creación de código sufre un compromiso total de credenciales

Fecha:

Si es un programador, ya sea que programe por pasatiempo o profesionalmente, sabrá que crear una nueva versión de su proyecto, una versión oficial de "lanzamiento" que usted mismo, o sus amigos o sus clientes, realmente instalarán. y uso, siempre es un poco complicado.

Después de todo, una versión de lanzamiento depende de todo su código, se basa en todas sus configuraciones predeterminadas, sale solo con su documentación publicada (pero sin conocimiento interno) y necesita funcionar incluso en computadoras que nunca ha visto antes, configuradas en configuraciones que nunca has imaginado, junto con otro software cuya compatibilidad nunca has probado.

En pocas palabras, cuanto más complejo se vuelve un proyecto, y más desarrolladores tiene trabajando en él, y más componentes separados tienen que funcionar sin problemas con todos los demás...

…más probable es que todo sea mucho menos impresionante que la suma de las partes.

Como analogía cruda, considere que el equipo de atletismo con los velocistas individuales de 100 m más rápidos no siempre gana el relevo de 4x100 m.

CI al rescate

Un intento de evitar este tipo de crisis de "pero funcionó bien en mi computadora" es una técnica conocida en la jerga como Integración continuao CI para abreviar.

La idea es simple: cada vez que alguien haga un cambio en su parte del proyecto, tome el nuevo código de esa persona y mézclelos a ellos y a su nuevo código a través de un ciclo completo de compilación y prueba, tal como lo haría antes de crear una versión final. versión.

¡Construya temprano, construya a menudo, construya todo, construya siempre!

Claramente, este es un lujo que los proyectos en el mundo físico no pueden permitirse: si está construyendo, digamos, un puente del puerto de Sydney, no puede reconstruir un tramo de prueba completo, con materias primas completamente nuevas, cada vez que decida modificar el proceso de remachado o ver si puede colocar astas de bandera más grandes en la cumbre.

Incluso cuando "construye" un proyecto de software de computadora a partir de un grupo de archivos de origen en una colección de archivos de salida, consume recursos preciosos, como electricidad, y necesita un aumento repentino en el poder de cómputo para ejecutarse junto con todas las computadoras que los desarrolladores ellos mismos están usando.

Después de todo, en los procesos de ingeniería de software que usan IC, la idea no es esperar hasta que todos estén listos y luego que todos dejen de programar y esperen a que se complete una compilación final.

Las compilaciones ocurren todo el día, todos los días, por lo que los codificadores pueden saber con mucha anticipación si han realizado "mejoras" sin darse cuenta que afectan negativamente a todos los demás: rompiendo la construcción, como diría la jerga.

La idea es: fallar temprano, corregir rápidamente, aumentar la calidad, lograr un progreso predecible y enviar a tiempo.

Claro, incluso después de una compilación de prueba exitosa, su nuevo código aún puede tener errores, pero al menos no llegará al final de un ciclo de desarrollo y luego descubrirá que todos tienen que volver al tablero de diseño solo para obtener el software para construir y trabajar en absoluto, porque los diversos componentes se han desalineado.

A menudo se decía que los primeros métodos de desarrollo de software seguían un modelo de cascada, donde todos trabajaron en armonía pero de forma independiente a medida que el proyecto avanzaba suavemente río abajo entre los plazos de las versiones, hasta que todo se unió al final del ciclo para crear una nueva versión, lista para sumergirse en la cascada tumultuosa de una actualización de versión, solo para emerger en otra período suave de agua clara aguas abajo para un mayor diseño y desarrollo. Sin embargo, un problema con esas "cascadas" era que a menudo terminabas atrapado en un remolino circular aparentemente interminable justo en el borde de la cascada, a pesar de la gravedad, incapaz de cruzar el borde del precipicio en absoluto hasta largos tiempos. las modificaciones (y los excesos concomitantes) hicieron posible el viaje posterior.

Justo el trabajo para la nube

Como puede imaginar, adoptar CI significa tener a su disposición un montón de servidores potentes y listos para usar cada vez que cualquiera de sus desarrolladores active un procedimiento de compilación y prueba, para evitar volver a caer en ese "atascado en el situación en el mismo borde de la cascada”.

¡Eso suena como un trabajo para la nube!

Y, de hecho, lo es, con numerosos servicios en la nube denominados CI/CD (este CD no es un disco de música reproducible, sino una abreviatura de entrega continua) que le ofrece la flexibilidad de tener un número variable de diferentes ramas de diferentes productos pasando por compilaciones configuradas de manera diferente, tal vez incluso en hardware diferente, al mismo tiempo.

CircleCI es uno de esos servicios basados ​​en la nube...

…pero, desafortunadamente para sus clientes, acaban de sufrió una infracción.

Técnicamente, y como parece ser común en estos días, la empresa no ha utilizado las palabras "brecha", "intrusión" o "ataque" en ninguna parte de su notificación oficial: hasta ahora, es solo una incidente de seguridad.

El original para [2023-01-04] declaró simplemente que:

Queríamos informarle que actualmente estamos investigando un incidente de seguridad y que nuestra investigación está en curso. Le proporcionaremos actualizaciones sobre este incidente y nuestra respuesta, a medida que estén disponibles. En este punto, estamos seguros de que no hay actores no autorizados activos en nuestros sistemas; sin embargo, por precaución, queremos asegurarnos de que todos los clientes también tomen ciertas medidas preventivas para proteger sus datos.

¿Qué hacer?

Desde entonces, CircleCI ha brindado actualizaciones periódicas y más consejos, que en su mayoría se reducen a esto: “Rote todos y cada uno de los secretos almacenados en CircleCI”.

Como hemos explicado antes, la palabra de la jerga rotar está mal elegido aquí, porque es el legado de un pasado peligroso en el que las personas literalmente "rotaban" contraseñas y secretos a través de una pequeña cantidad de opciones predecibles, no solo porque hacer un seguimiento de los nuevos era más difícil en ese entonces, sino también porque la seguridad cibernética era t tan importante como lo es hoy.

Lo que CircleCI significa es que debe CAMBIAR todas sus contraseñas, secretos, tokens de acceso, variables de entorno, pares de claves públicas y privadas, etc., presumiblemente porque los atacantes que violaron la red robaron las suyas o no se puede demostrar que no lo hicieran. haberlos robado.

La empresa tiene un proporcionó una lista de los diversos tipos de datos de seguridad privada que se vieron afectados por la violación, y ha creado un script útil llamado CircleCI-Env-Inspector que puede usar para exportar una lista con formato JSON de todos los secretos de CI que necesita cambiar en su entorno.

Además, los ciberdelincuentes ahora pueden tener tokens de acceso y claves criptográficas que podrían brindarles un camino de regreso a su propia red, especialmente porque los procesos de creación de CI a veces necesitan "llamar a casa" para solicitar código o datos que usted no puede o no quiere. subir a la nube (los scripts que hacen esto se conocen en la jerga como los corredores).

Entonces, CircleCI aconseja:

También recomendamos a los clientes que revisen los registros internos de sus sistemas en busca de cualquier acceso no autorizado a partir del 2022 de diciembre de 12 [hasta el 21 de enero de 2023 inclusive], o al completar [cambiar sus secretos].

Curiosamente, si es comprensible, algunos clientes han notado que la fecha implícita por CircleCI en la que comenzó esta violación [2022-12-21] simplemente coincide con una publicación de blog el empresa publicada sobre actualizaciones de confiabilidad recientes.

Los clientes querían saber: "¿La infracción estaba relacionada con los errores introducidos en esta actualización?"

Dado que los artículos de actualización de confiabilidad de la compañía parecen ser resúmenes de noticias, en lugar de anuncios de cambios individuales realizados en fechas específicas, la respuesta obvia es "No"...

…y CircleCI ha declarado que la fecha coincidente de 2022-12-21 para la publicación del blog de confiabilidad fue solo eso: una coincidencia.

¡Feliz regeneración de claves!


punto_img

Información más reciente

punto_img