Aller au contenu

--- # SOURCE_HASH: 38795934045cf075731245efdba45298a76c1625 title: Injection Shell CircleCI
shortname: cicd-circleci-injection-shell
description: Prévenez les attaques par injection de shell dans les configurations CircleCI en suivant des pratiques de script sécurisées.
anchor: cicd
pretty_name: CI/CD - Injection CircleC


{{ title }}

Prévenez les attaques par injection de shell dans les configurations CircleCI en respectant des pratiques de codage sécurisées lors de l'écriture de commandes ou du passage de paramètres. Les variables non vérifiées et la gestion inappropriée des entrées peuvent exposer les pipelines aux vulnérabilités d'injection.

Exemples

Exemple Insecure

L'exemple suivant illustre une configuration CircleCI non sécurisée où l'entrée de l'utilisateur est injectée directement dans une commande shell sans validation ni assainissement :

jobs:
  build:
    steps:
      - run: echo "Bonjour ${USER_INPUT}"

Exemple Securisé

Voici une version sécurisée de la configuration, garantissant que l'entrée de l'utilisateur est assainie ou complètement évitée :

jobs:
  build:
    steps:
      - run: echo "Bonjour le Monde" # Évite de s'appuyer sur l'entrée utilisateur

Alternativement, vous pouvez valider ou assainir explicitement l'entrée avant utilisation.

Étapes d'atténuation

  • Évitez d'utiliser des entrées non fiables dans les commandes shell directement.
  • Utilisez des alternatives sécurisées telles que des entrées paramétrées ou des variables d'environnement avec validation.
  • Exploitez les fonctionnalités intégrées de CircleCI comme les contextes ou le stockage sécurisé des variables d'environnement.
  • Révisez régulièrement vos configurations de pipeline pour détecter d'éventuelles vulnérabilités.