CircleCI - le service de création de code subit une compromission totale des informations d'identification

CircleCI - le service de création de code subit une compromission totale des informations d'identification

CircleCI – le service de création de code subit une compromission totale des informations d'identification PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Si vous êtes un programmeur, que vous codez pour un passe-temps ou professionnellement, vous saurez que la création d'une nouvelle version de votre projet - une version officielle "release" que vous-même, ou vos amis, ou vos clients, installerez réellement et l'utilisation - est toujours un peu difficile.

Après tout, une version dépend de tout votre code, s'appuie sur tous vos paramètres par défaut, ne sort qu'avec votre documentation publiée (mais aucune connaissance d'initié) et doit fonctionner même sur des ordinateurs que vous n'avez jamais vus auparavant, configurés dans configurations que vous n'avez jamais imaginées, ainsi que d'autres logiciels dont vous n'avez jamais testé la compatibilité.

En termes simples, plus un projet devient complexe, et plus vous avez de développeurs qui y travaillent, et plus il y a de composants séparés qui doivent fonctionner en douceur avec tous les autres…

…plus il est probable que l'ensemble soit beaucoup moins impressionnant que la somme des parties.

Par analogie grossière, considérez que l'équipe de piste avec les sprinteurs individuels les plus rapides sur 100 m ne remporte pas toujours le relais 4x100 m.

CI à la rescousse

Une tentative pour éviter ce genre de crise "mais ça a bien fonctionné sur mon ordinateur" est une technique connue dans le jargon comme Intégration continueou CI pour faire court.

L'idée est simple : chaque fois que quelqu'un apporte une modification à sa partie du projet, récupérez le nouveau code de cette personne et faites-lui passer, ainsi que son nouveau code, un cycle complet de construction et de test, comme vous le feriez avant de créer une version finale. version.

Construisez tôt, construisez souvent, construisez tout, construisez toujours !

Il s'agit clairement d'un luxe que les projets dans le monde physique ne peuvent se permettre : si vous construisez, par exemple, un pont du port de Sydney, vous ne pouvez pas reconstruire une travée d'essai complète, avec de toutes nouvelles matières premières, à chaque fois que vous décidez de modifier le processus de rivetage ou de voir si vous pouvez installer de plus grands mâts au sommet.

Même lorsque vous "construisez" un projet de logiciel informatique à partir d'un ensemble de fichiers source dans une collection de fichiers de sortie, vous consommez des ressources précieuses, telles que l'électricité, et vous avez besoin d'une augmentation soudaine de la puissance de calcul pour fonctionner avec tous les ordinateurs que les développeurs utilisent eux-mêmes.

Après tout, dans les processus de génie logiciel qui utilisent CI, l'idée n'est pas d'attendre que tout le monde soit prêt, puis que tout le monde prenne du recul par rapport à la programmation et attende qu'une version finale soit terminée.

Les builds se produisent toute la journée, tous les jours, afin que les codeurs puissent dire longtemps à l'avance s'ils ont apporté par inadvertance des "améliorations" qui affectent négativement tout le monde - briser la construction, comme le dit le jargon.

L'idée est la suivante : échouer tôt, réparer rapidement, améliorer la qualité, faire des progrès prévisibles et livrer à temps.

Bien sûr, même après une version de test réussie, votre nouveau code peut encore contenir des bogues, mais au moins vous n'arriverez pas à la fin d'un cycle de développement et constaterez ensuite que tout le monde doit retourner à la planche à dessin juste pour obtenir le logiciel à construire et à fonctionner du tout, car les différents composants se sont désalignés.

Les premières méthodes de développement de logiciels étaient souvent décrites comme suivant un modèle de cascade, où tout le monde travaillait harmonieusement mais indépendamment tandis que le projet dérivait doucement entre les échéances de versions, jusqu'à ce que tout se réunisse à la fin du cycle pour créer une nouvelle version, prête à plonger dans la cascade tumultueuse d'une mise à jour de version, pour émerger dans une autre période douce d'eau claire en aval pour la conception et le développement ultérieurs. Un problème avec ces "cascades", cependant, était que vous vous retrouviez souvent piégé dans un tourbillon circulaire apparemment sans fin juste au bord de la cascade, malgré la gravité, incapable de franchir le bord du précipice jusqu'à ce que de longs hacks et des modifications (et des dépassements concomitants) ont rendu possible la suite du voyage.

Juste le travail pour le cloud

Comme vous pouvez l'imaginer, adopter CI signifie avoir à votre disposition un ensemble de serveurs puissants et prêts à l'emploi chaque fois que l'un de vos développeurs déclenche une procédure de construction et de test, afin d'éviter de retomber dans ce "rester bloqué au très lèvre de la chute d'eau "situation.

Cela ressemble à un travail pour le cloud !

Et, en effet, il l'est, avec de nombreux services cloud dits CI/CD (ce CD n'est pas un disque de musique lisible, mais un raccourci pour livraison continue) vous offrant la possibilité d'avoir un nombre toujours variable de branches différentes de produits différents passant par des versions configurées différemment, peut-être même sur du matériel différent, en même temps.

CircleCI est l'un de ces services basés sur le cloud…

… mais, malheureusement pour leurs clients, ils viennent de a subi une violation.

Techniquement, et comme cela semble être courant de nos jours, la société n'a en fait utilisé les mots "violation", "intrusion" ou "attaque" nulle part dans sa notification officielle : jusqu'à présent, ce n'est qu'un incident de sécurité.

L'ouverture a avis [2023-01-04] a déclaré simplement que :

Nous voulions vous informer que nous enquêtons actuellement sur un incident de sécurité et que notre enquête se poursuit. Nous vous fournirons des mises à jour sur cet incident et notre réponse dès qu'elles seront disponibles. À ce stade, nous sommes convaincus qu'aucun acteur non autorisé n'est actif dans nos systèmes ; cependant, par prudence, nous voulons nous assurer que tous les clients prennent également certaines mesures préventives pour protéger vos données.

Que faire?

Depuis lors, CircleCI a fourni des mises à jour régulières et des conseils supplémentaires, qui se résument principalement à ceci : "Veuillez faire pivoter tous les secrets stockés dans CircleCI. »

Comme nous l'avons déjà expliqué, le mot du jargon tourner est mal choisi ici, car c'est l'héritage d'un passé dangereux où les gens faisaient littéralement "rotation" des mots de passe et des secrets à travers un petit nombre de choix prévisibles, non seulement parce qu'il était plus difficile de suivre les nouveaux à l'époque, mais aussi parce que la cybersécurité l'était t aussi important qu'il l'est aujourd'hui.

Ce que CircleCI signifie, c'est que vous devez CHANGER tous vos mots de passe, secrets, jetons d'accès, variables d'environnement, paires de clés publiques-privées, etc., probablement parce que les attaquants qui ont piraté le réseau ont volé le vôtre ou ne peuvent pas être prouvés. les avoir volés.

La société a un fourni une liste des différents types de données de sécurité privées qui ont été affectées par la violation, et a créé un script pratique appelé CircleCI-Env-Inspecteur que vous pouvez utiliser pour exporter une liste au format JSON de tous les secrets CI que vous devez modifier dans votre environnement.

De plus, les cybercriminels peuvent désormais disposer de jetons d'accès et de clés cryptographiques qui pourraient leur permettre de revenir sur votre propre réseau, en particulier parce que les processus de création de CI doivent parfois «appeler chez eux» pour demander du code ou des données que vous ne pouvez pas ou ne voulez pas. pour télécharger dans le cloud (les scripts qui font cela sont connus dans le jargon comme coureurs).

Ainsi, CircleCI conseille :

Nous recommandons également aux clients de consulter les journaux internes de leurs systèmes pour tout accès non autorisé à partir du 2022-12-21 [jusqu'au 2023-01-04], ou à la fin de [changer vos secrets].

Curieusement, bien que cela soit compréhensible, certains clients ont noté que la date implicite par CircleCI à laquelle cette violation a commencé [2022-12-21] coïncide simplement avec un article de blog le société publiée sur les récentes mises à jour de fiabilité.

Les clients voulaient savoir : "La violation était-elle liée à des bogues introduits dans cette mise à jour ?"

Étant donné que les articles sur la mise à jour de la fiabilité de l'entreprise semblent être des résumés d'actualités, plutôt que des annonces de modifications individuelles apportées à des dates précises, la réponse évidente est "Non"…

… et CircleCI a déclaré que la date coïncidente du 2022-12-21 pour le billet de blog sur la fiabilité n'était que cela : une coïncidence.

Bonne régénération des clés !


Horodatage:

Plus de Sécurité nue