DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Comment sécuriser votre pipeline CI/CD
    Uncategorized

    Comment sécuriser votre pipeline CI/CD

    janvier 29, 2023
    Comment sécuriser votre pipeline CI/CD
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Récemment, nous avons appris une violation de CircleCI. Ils suggèrent fortement à tous leurs clients :

    • Rotation immédiate de tous les secrets stockés dans CircleCI.
    • Examinez les journaux internes de leurs systèmes pour détecter tout accès non autorisé du 21 décembre 2022 au 4 janvier 2023 ou à la date à laquelle vous avez effectué la rotation des secrets dans CircleCI.

    L’équipe CircleCI a également invalidé tous les jetons de l’API du projet et informé les utilisateurs qu’ils devraient être remplacés.

    Ce moment peut servir de point d’inflexion pour toute équipe qui s’appuie sur l’infrastructure CI/CD pour revoir la sécurité de son pipeline. Bien que les étapes décrites par l’équipe CircleCI soient solides, ce sont des réactions à un événement. Les équipes DevOps peuvent prendre certaines mesures pour devenir plus proactives.

    Gestion des identités et contrôle d’accès dans CI/CD

    Si vous êtes nouveau sur ce sujet, une intégration continue/livraison continue, un pipeline CI/CD est un moyen de livrer des applications via un processus automatisé cohérent. Les développeurs poussent leur code vers des hôtes de référentiel tels que GitHub, GitLab, Azure DevOps ou BitBucket, qui démarrent les processus automatisés de création de l’application, de test et enfin de déploiement de ce code en production. Alors que les pipelines CI/CD permettent aux équipes de travailler plus rapidement et avec moins de risques d’erreurs manuelles, ils présentent également une nouvelle surface d’attaque à exploiter pour les acteurs malveillants.

    L’un des meilleurs moyens de s’assurer que les attaquants ne peuvent pas exploiter vos pipelines de CD/CD est de verrouiller qui peut accéder à quels outils et ressources. Si quelqu’un ne se voit pas explicitement accorder des privilèges d’accès, il ne devrait pas pouvoir y accéder. Cela peut inclure des mots de passe, des clés d’accès et d’autres mécanismes de contrôle d’accès et doit être mis en œuvre de manière aussi granulaire que possible.

    Bien qu’il puisse être pratique d’accorder l’accès à tous les membres des équipes DevOps, les développeurs et les ingénieurs accèdent à tout ; c’est une très mauvaise idée, car cela augmente considérablement les chances qu’un seul compte piraté permette aux attaquants d’accéder à tous les systèmes associés.

    Nous encourageons tout le monde à appliquer l’authentification unique (SSO) ou à utiliser des contrôles d’accès basés sur les rôles (RBAC) dans la mesure du possible. Ceux-ci peuvent vous aider à limiter l’accès pour n’accorder l’accès qu’aux systèmes pertinents aux bonnes personnes.

    Accès non humain sécurisé

    Nous avons discuté de l’accès humain, mais il est également essentiel de définir et de gérer correctement l’accès aux services et outils tiers. Lors du déploiement de tout élément de votre pipeline CI/CD, vous devez savoir exactement quels systèmes et services enverront des requêtes et où iront ces réponses. Si un code malveillant pénètre dans votre pipeline, assurez-vous qu’il ne peut pas téléphoner à votre domicile ou communiquer avec des utilisateurs non autorisés.

    Lorsque vous utilisez des systèmes basés sur des conteneurs, veillez à utiliser des authentificateurs pour vérifier l’identité de la machine. Un authentificateur vérifie les attributs d’un conteneur et n’accorde le niveau d’accès étendu que s’il est approuvé.

    Une dernière note sur l’accès non humain : vous devez éliminer tous les actifs inutilisés dès que possible. Cela signifie détruire les conteneurs et les machines virtuelles une fois qu’ils ne sont plus nécessaires et bloquer l’accès aux outils tiers s’ils ne sont pas utilisés activement.

    Ne divulguez pas de secrets dans votre pipeline CI/CD

    L’une des premières choses que les attaquants recherchent dans n’importe quel système est un moyen d’obtenir un accès supplémentaire, à savoir des informations d’identification codées en dur, également appelées secrets. Bien qu’il puisse sembler évident que vous ne devriez pas stocker vos secrets en clair, cela se produit plus souvent que vous ne le pensez. Compte tenu de la complexité des pipelines CI/CD et de la vitesse à laquelle ils évoluent, il s’agit souvent de la solution la plus simple et la plus rapide vers laquelle les développeurs se tournent lorsqu’ils se précipitent pour respecter les délais. Il est également facile d’oublier la façon dont les secrets sont présentés dans vos journaux de pipeline, où ils peuvent apparaître s’ils ne sont pas correctement expurgés.

    Heureusement, la plupart des fournisseurs de CI/CD proposent des solutions intégrées qui vous permettent de stocker les informations d’identification, puis de les appeler par programme en cas de besoin. Alternativement, la plupart des solutions proposent des voies pour intégrer des gestionnaires clés comme Hashicorp Vault dans vos pipelines.

    Une étape critique pour éloigner les informations d’identification en clair de vos pipelines consiste à mettre en œuvre la détection des secrets le plus tôt possible. Le meilleur cas est lorsque les développeurs détectent des secrets codés en dur avant de pouvoir les valider, ce qu’ils peuvent faire sur leur machine locale avec des crochets de pré-commit ou un crochet de pré-poussée, dans un crochet de pré-réception ou dans un environnement CI.

    Automatiser la rotation des secrets

    Un autre élément important de la gestion des secrets est le contrôle de la durée de vie de chaque identifiant. Plus un secret reste valide longtemps, plus il est susceptible d’être trouvé et utilisé par un attaquant. L’une des principales raisons pour lesquelles de nombreuses informations d’identification durent aussi longtemps est la douleur causée par la rotation manuelle des clés et la peur de perturber les systèmes de production. C’est là que la rotation automatique des clés sauve la mise.

    La plupart des fournisseurs de plates-formes comme AWS, Google Cloud et Azure DevOps proposent ou fournissent des moyens simples de scripter la rotation automatisée des clés. Cela peut être exécuté manuellement ou selon un horaire fixe. L’automatisation de la rotation des clés peut aider tout le monde à se reposer en cas d’urgence, car elle permet de tester le processus d’invalidation et de remplacement en dehors d’un incident.

    Lors de l’automatisation de la création de secrets, n’oubliez pas d’adapter correctement ces informations d’identification à leur tâche. Suivez toujours le principe du moindre privilège, en limitant l’accès aux seules données et systèmes nécessaires pour effectuer le travail à accomplir.

    Surveiller activement les comportements suspects

    La recherche d’activités suspectes après un événement peut vous aider à identifier ce qui s’est mal passé ou qui a accédé à quels systèmes lors d’une attaque. Mais vous n’avez pas besoin d’attendre que quelque chose de grave se produise pour tirer parti de vos journaux.

    Lorsque la plupart des gens pensent à conduire activement CI/CD, c’est avec l’intention de surveiller la consommation ou la disponibilité des ressources. Cependant, vous pouvez également configurer des alertes pour les activités suspectes, telles que l’ajout inattendu d’un rôle privilégié ou les tentatives de connexion à un service non autorisé.

    Honeytokens pour la détection d’intrusion

    Une autre façon de protéger vos pipelines CI/CD consiste à définir des pièges que les intrus peuvent déclencher dans votre environnement. Ceux-ci sont communément appelés jetons de miel. Les Honeytokens sont des informations d’identification qui ressemblent à de vrais secrets mais qui ne sont valables pour aucun service, mais lorsqu’elles sont utilisées, elles déclenchent une alerte et signalent l’adresse de l’utilisateur.

    Une façon de déployer systématiquement des honeytokens consiste à les intégrer à vos builds d’environnement automatisés, en tirant parti d’outils tels que Terraform et notre projet open source ggcanary. Les jetons Canary peuvent être créés et déployés dans vos pipelines CI/CD, ainsi que dans des référentiels de code ou des systèmes de gestion de projet.

    Votre sécurité CI/CD est une responsabilité partagée

    L’une des principales attentes des utilisateurs vis-à-vis de leurs fournisseurs de services est qu’ils assurent la sécurité de leur plate-forme. La réalité est que les attaquants malveillants continueront de pénétrer et d’exploiter toutes les cibles, y compris les fournisseurs de CI/CD. En fin de compte, la sécurisation de vos pipelines est un effort conjoint de tous les acteurs impliqués, y compris votre équipe.

    Bien qu’il soit regrettable que CircleCI ait été piraté et que tant de clients aient été touchés, nous souhaitons également lancer un appel à l’action à toute personne qui compte sur un pipeline CI/CD pour revoir ses pratiques de sécurité.

    Cet article présente quelques-unes des façons dont vous pouvez sécuriser votre pipeline CI/CD. Pour plus d’informations sur la sécurité CI/CD, nous vous recommandons de consulter les 10 principaux risques de sécurité CI/CD de l’OWASP.

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.