Nouvelles cibles de prédilection de certains acteurs de la cybermenace, les chaînes d’approvisionnement (supply chain) logicielles, internes comme externes, représentent des vecteurs d’attaque critiques, nécessitant une vigilance accrue des entreprises et des stratégies de sécurité renforcées à chaque étape de développement et de déploiement.
Dès qu’une entreprise crée des logiciels, qu’ils soient commercialisés ou non, elle peut être qualifiée d’éditeur de logiciels. Pour ces éditeurs de solutions, la supply chain logicielle représente une cible pour les cybercriminels cherchant à infiltrer les systèmes, à accéder aux données et parfois même à celles de clients, de partenaires ou de fournisseurs. De nombreuses entreprises attaquées, dont les systèmes ont été compromis par des pirates qui ont trouvé une clé d’accès ou un moyen d’affaiblir leurs défenses, l’ont été via la supply chain logicielle.
Comment être sûr d’avoir une supply chain logicielle sécurisée ?
La supply chain logicielle couvre chaque étape du cycle de vie du développement logiciel (SDLC), de la planification au déploiement, ainsi que les personnes, les outils et les systèmes impliqués dans la production du logiciel déployé. Il peut s’agir des environnements de codage utilisés par les développeurs, des frameworks ou librairies tiers, des systèmes de contrôle de versions, des outils de gestion et d’orchestration des conteneurs, des outils d’intégration et de livraison continues (CI/CD), des outils de test, etc.
Les attaquants ciblent les vulnérabilités de la supply chain souvent moins sécurisée que les systèmes de production. Les failles dans les systèmes de pré production et les périphériques peu protégés sont des points d’accès fréquemment exploités par les attaquants, tout comme les fuites de clés d’accès
Comment s’en prémunir ? La formation des équipes et le rappel régulier des meilleures pratiques peut aider à prévenir les fuites. Tester l’ensemble des points d’entrée potentiels peut permettre de détecter une attaque. Et ce ne sont là que quelques-unes des possibilités.
Les attaquants sondent et surveillent chaque surface d’attaque. Le point le moins bien protégé peut leur permettre d’accéder à des systèmes sensibles pour exfiltrer des données ou installer des logiciels malveillants.
De nombreux composants, du code au déploiement et au fonctionnement en production, créent de multiples points d’entrée pour les attaquants. Ces points d’entrée peuvent être classés en deux catégories : les points d’entrée internes et externes.
*Supply chain logicielle interne : Il s’agit du code que les développeurs écrivent et des outils qu’ils utilisent. Elle comprend les systèmes de contrôle de versions, les logs de conteneurs et les scripts de build dans lesquels les développeurs peuvent accidentellement exposer des « secrets » tels que des mots de passe, des clés privées ou des clés d’API qui peuvent être découverts par des attaquants pour obtenir un accès et se déplacer latéralement.
Cette situation peut survenir lorsqu’un pirate trouve la clé exposée publiquement dans un dépôt comme GitHub, ou parce qu’un pirate accède à un environnement de développement et trouve des secrets en clair ce qui augmente la gravité de l’intrusion.
* Supply chain logicielle externe : Une grande partie des logiciels modernes ont des dépendances externes avec des tiers (librairies, packages, frameworks, SaaS). Celles-ci peuvent être exploitées par des pirates informatiques corrompant les dépendances avec des logiciels malveillants cachés ou tirant parti de vulnérabilités connues dans des dépendances obsolètes/non patchées.
Comment assurer l’intégrité de la supply chain logicielle ?
La question « Comment assurer l’intégrité de la supply chain logicielle ? » est une bonne question de départ. Voici six éléments à évaluer:
1 – Audits réguliers : Examiner périodiquement les outils, les librairies et les dépendances tiers. Examiner la nomenclature logicielle (SBOM) et en utilisant des outils de scan des dépendances (SCA).
2 – Protéger les secrets : En se servant d’outils pour détecter et supprimer les secrets codés en dur dans les bases de code, tout en mettant en place des coffres-forts sécurisés pour la gestion des secrets.
3 – Mettre en œuvre le framework SLSA : Suivre les lignes directrices pour améliorer progressivement la sécurité de la supply chain.
4 – Former et éduquer les développeurs : Fournir des formations sur les pratiques de codage sécurisées sur l’importance de vérifier les outils et les librairies de tierces parties.
5 – Rester au courant des meilleures pratiques : S’informer régulièrement des mises à jour d’organismes comme l’ANSSI en France, le CISA et le NIST aux Etats Unis.
6 – Créer des plans d’action : Mettre en place des processus bien définis pour répondre et remédier aux différents types de vulnérabilités et d’attaques lorsqu’ils sont détectés.
La sécurité de la supply chain logicielle est essentielle pour les entreprises. La sensibilisation, les mesures proactives et la vigilance permanente sont des clés essentielles pour protéger le code à chaque étape, de la planification au déploiement en passant par le développement. Des praticiens de première ligne au PDG, tout le monde doit être sensibilisé à la sécurité de la supply chain logicielle afin de garantir la résilience de l’organisation face à l’évolution des menaces.
___________________
Par Eric Fourrier, CEO de GitGuardian