Le développement de logiciels est un processus complexe reposant largement sur la collaboration. Souvent, il s’agit d’intégrer du code généré par plusieurs développeurs extérieurs à l’organisation, mais aussi les liaisons avec d’autres programmes et prestataires. Cette complexité et cette connectivité fortes produisent des résultats impressionnants, mais posent aussi des problèmes pour la sécurité.

Aujourd’hui, rares sont les organisations à contester l’utilité de la cybersécurité. Pourtant, les dispositifs qu’elles mettent en place restent principalement axés sur les processus internes. Le reste de la chaîne d’approvisionnement est exclu du champ d’action, laissant des failles qui pourront créer des vulnérabilités.

Qu’entend-on par « chaîne d’approvisionnement des logiciels » ?

La chaîne d’approvisionnement désigne ici les processus et les acteurs intervenant pour générer le code, du début à la fin du développement d’un logiciel. Quand on mentionne la chaîne d’approvisionnement classique, ou supply chain, on fait référence à l’ensemble des fournisseurs de matières premières, fabricants, prestataires logistiques et distributeurs associés pour mettre un produit physique sur le marché. La chaîne d’approvisionnement des logiciels en est l’équivalent, pour des produits numériques.

Les programmes modernes sont rarement le produit du travail d’une seule entreprise. Le code source libre constitue aujourd’hui de 70 % à 90 % d’une solution logicielle, ce à quoi il faut ajouter le code d’autres développeurs, utilisé sous licence.

La chaîne d’approvisionnement des logiciels comprend de nombreux acteurs et des interactions entre bien des intervenants :

  • Développeurs du code source
  • Dépendance envers des logiciels de tiers
  • Équipes de développement internes
  • Canaux de distribution
  • Services d’hébergement
  • Prestataires de sécurité
  • Développeurs des applications intégrées, le cas échéant

Quelles menaces pour la chaîne d’approvisionnement des logiciels ?

Les risques de vulnérabilité sont nombreux, compte tenu de la multiplicité d’étapes et de maillons de la chaîne d’approvisionnement. Les menaces peuvent donc se présenter sous bien des formes. La compromission d’un tiers est la plus directe de ces formes. Lorsqu’un cybercriminel s’introduit dans le code d’un fournisseur de logiciels ou de tout autre acteur de la chaîne disposant de droits d’accès, il peut atteindre quiconque utilise le logiciel concerné. C’est ce qui s’est produit lors de la cyberattaque historique SolarWinds en 2020.

Les erreurs de configuration sont une autre menace courante. Ce risque existe lorsqu’une équipe ne déploie pas correctement l’application d’un tiers, et la rend vulnérable. Une erreur de configuration commise par un intervenant peut se répercuter sur bien d’autres acteurs de la chaîne d’approvisionnement qui utilisent ses services.

Il en va de même pour les informations sensibles, telles que les mots de passe ou les clés de chiffrement, figées dans le code source d’un programme. Bien souvent, ces mauvaises configurations résultent d’une simple erreur des développeurs d’origine, qui provoque néanmoins l’exposition du code source. Quiconque utilise ce même code peut donc être exposé à la même menace. Des chercheurs en sécurité ont identifié 10 millions d’erreurs de ce type dans du code source libre, sur la seule année 2022.

Renforcer la sécurité de la chaîne d’approvisionnement des logiciels

Les risques identifiés montrent que la cybersécurité doit s’étendre au-delà des processus internes de l’organisation. Pour être vraiment protégé, il importe de sécuriser aussi les maillons faibles de la chaîne d’approvisionnement. Voici comment y parvenir, en cinq mesures.

Contrôler les tiers et leur apport à la chaîne

Le plus important est aussi le plus évident : imposer aux autres acteurs de la chaîne un haut degré d’exigence. Les cyberattaques ciblant des tiers ont progressé de 742 % depuis que l’épidémie de COVID-19 s’est déclarée. Mieux vaut donc ne prendre aucun risque. Examinez systématiquement tout logiciel ou code source de tiers avant de l’utiliser.

Si vous utilisez des applications ou services sans codage, vérifiez l’entreprise qui les propose. Méfiez-vous des prestataires qui ont connu des incidents de sécurité à plusieurs reprises. Privilégiez ceux qui ont obtenu des certifications de cybersécurité de haut niveau. Et si vous utilisez du code, examinez-le attentivement pour repérer les failles éventuelles. Étudiez les avis et retours d’expérience de ceux qui ont utilisé les mêmes ressources : peut-être quelqu’un a-t-il repéré un problème.

Limiter les privilèges d’accès

Ensuite, il convient de restreindre autant que possible les privilèges d’accès de chaque intervenant de la chaîne. Chaque société, utilisateur, dispositif ou application doit uniquement avoir accès aux fichiers et au code dont il a besoin pour bien travailler. Cette pratique de restriction stricte (ou principe de privilège minimal) permet d’assurer qu’une vulnérabilité en un point ne se répercutera pas à l’ensemble de la chaîne.

Ces restrictions doivent ainsi être appliquées aux tiers, aux partenaires directs et même aux collaborateurs de l’entreprise. Plus de la moitié des organisations ont fait face à une menace interne au cours de l’année écoulée : même les collaborateurs en qui vous avez confiance peuvent être source de problèmes.

Adopter le modèle DevSecOps

Redéfinir l’approche du développement de logiciels peut être utile également. Le cycle de développement DevSecOps peut apporter davantage de sécurité que les approches linéaires, plus conventionnelles. Le modèle DevSecOps s’appuie sur l’expérience pratique des processus DevOps, qui mettent l’accent sur la collaboration et l’efficacité en amenant développeurs et équipes opérationnelles à collaborer sur un temps court, suivi d’un travail de revue et d’ajustement.

À la différence de l’approche DevOps classique, le modèle DevSecOps fait entrer les experts de la sécurité dans cette collaboration. Obtenir l’éclairage de spécialistes de la sécurité et les faire participer à la revue de la sécurité d’une application à chaque stade du développement contribue à l’identification précoce des menaces pour la chaîne d’approvisionnement.

Rechercher et corriger régulièrement les vulnérabilités

De même, il est important de considérer la cybersécurité comme étant une démarche d’amélioration continue. Très probablement, vous ne détecterez pas immédiatement toutes les failles de la chaîne d’approvisionnement, et de nouvelles vulnérabilités apparaîtront à mesure que les cybercriminels s’adapteront aux défenses déployées. Il est donc essentiel de se maintenir à jour des dernières tendances en matière de sécurité du développement. Un point crucial consiste à évaluer régulièrement votre logiciel et les éléments dont il dépend, afin de détecter d’éventuelles vulnérabilités. Cette pratique pourra s’appuyer sur des tests d’intrusion, et les forums de développeurs en source libre s’avèreront une ressource utile. Dès qu’un problème est repéré, créez un correctif et conservez l’historique des éléments que vous avez dû modifier.

Élaborer un plan de réaction aux incidents

Enfin, les développeurs doivent reconnaître que la complexité des chaînes d’approvisionnement des logiciels fait qu’il est impossible d’empêcher toutes les cybermenaces. Sur la seule année 2022, Google a détecté 41 exploitations du jour zéro, des attaques exploitant des vulnérabilités qui n’avaient pas encore été découvertes. Les incidents de ce type sont trop fréquents pour ne pas s’y préparer en élaborant un plan de réponse.

Formalisez une stratégie précisant quoi faire en cas d’attaque sur la chaîne d’approvisionnement de votre logiciel. Votre plan définira des mesures de confinement du problème, les protocoles de communication et les pratiques de sauvegardes, et dressera la liste des responsabilités de chacun. Veillez à actualiser ce plan régulièrement, pour y intégrer les bonnes pratiques émergentes.

Protéger la chaîne d’approvisionnement des logiciels est une nécessité

La sécurité des logiciels englobe davantage que le seul produit fini. En définitive, tout est lié. Les développeurs doivent donc considérer également la sécurité des partenaires de leur chaîne d’approvisionnement. Quand on réalise que les faiblesses des autres intervenants sont nos propres faiblesses, le doute n’est plus permis : renforcer la sécurité de la chaîne d’approvisionnement est une nécessité. Cette prise de conscience est un premier pas vers une démarche plus globale de cybersécurité.

Restez informés en temps réel
S'inscrire à
la newsletter
En fournissant votre email vous acceptez de recevoir la newsletter de Incyber et vous avez pris connaissance de notre politique de confidentialité. Vous pourrez vous désinscrire à tout moment en cliquant sur le lien de désabonnement présent dans tous nos emails.
Restez informés en temps réel
S'inscrire à
la newsletter
En fournissant votre email vous acceptez de recevoir la newsletter de Incyber et vous avez pris connaissance de notre politique de confidentialité. Vous pourrez vous désinscrire à tout moment en cliquant sur le lien de désabonnement présent dans tous nos emails.