il y a 2 mois -  - 3 minutes

Repenser la signature de code : un nouveau moyen pour sécuriser la chaîne d’approvisionnement logicielle

Pour rester compétitives, les entreprises se tournent de plus en plus vers des solutions logicielles spécialisées, transformant progressivement leur écosystème informatique en un patchwork de différents systèmes émanant de fournisseurs variés. En particulier en matière de signature de code.

Une telle disparité représente une menace potentielle pour la sécurité des données des entreprises, augmentant le nombre de relations de confiance nécessaires et offrant aux intrus davantage de points d’entrées potentiels depuis lesquels lancer leurs attaques. Le fait que les systèmes soient intégrés en profondeur, pour optimiser leurs performances et leur productivité, accélère encore davantage la vitesse de propagation des attaques.

Nicolas Massé, Solution Architect chez Red Hat Numeum techtalks
Nicolas Massé, Solution Architect chez Red Hat.

Les exemples d’attaques opérées sur la chaîne d’approvisionnement et qui exploitent des logiciels tiers pour infiltrer une entreprise se multiplient. En 2020, un code malveillant introduit au sein d’une mise à jour du logiciel SolarWinds s’est d’abord répandu dans les systèmes de différentes branches du gouvernement fédéral américain, avant de se diffuser à l’international et d’infecter environ 18 000 entreprises.

En mars 2021, plus de 20 000 entreprises américaines ont vu leur sécurité compromise par une vulnérabilité du logiciel Microsoft Exchange Server. Le risque infiltre également souvent la supply chain via les partenaires, généralement considérés comme inoffensifs ; ce fut le cas lors de l’attaque menée sur la supply chain de CodeCov, logiciel à destination des développeurs, qui a offert aux pirates la possibilité de prendre également le contrôle des chaînes d’approvisionnement des clients de l’entreprise.

Repenser le processus de signature

Si les risques liés à la chaîne d’approvisionnement logicielle ne peuvent pas être ignorés, il est tout aussi impossible de renoncer aux avantages des nouvelles technologies. Un dilemme quotidien pour de nombreuses entreprises, face auquel les développeurs logiciels doivent faire un choix entre rester conformes aux normes de sécurité les plus élevées et miser sur davantage d’autonomie.

Pour concilier ces deux approches antinomiques, il peut être utile de repenser le processus de signature de code. Cela permet de prouver qu’un logiciel n’a été ni altéré ni corrompu avant son déploiement.

Les techniques de signatures de code traditionnelles utilisent des clés cryptographiques pour prouver l’identité de l’auteur du code ou l’intégrité du contenu d’un livrable logiciel. Une charge supplémentaire pour les développeurs qui doivent générer ces clés et préserver leur sécurité. Face à cette responsabilité, certains décident de ne pas signer leurs codes (ce qui est mauvais pour la sécurité). D’autres proposent d’en écrire moins (ce qui est mauvais pour l’innovation).

Ces deux approches ont un impact négatif sur les autres développeurs. Une grande part des logiciels utilisés aujourd’hui dans le monde sont conçus sur des principes open source. Désormais, la question de la provenance est donc de plus en plus importante. Cela s’applique aussi aux logiciels propriétaires, qui utilisent de plus en plus de codes open source.

L’open source doit montrer la voie

Dans ce contexte, la communauté open source doit montrer la voie. Elle doit simplifier l’environnement de signature de code pour les développeurs. Et cela, en remplaçant les clés permanentes par des clés éphémères liées à des éléments d’identification existants (semblables à des identifiants d’adresses e-mail ou de réseaux sociaux). Une autre voie consiste à produire un log public et immuable qui répertorie toute activité. Ces deux types de capacités combinées libèrent les développeurs du fardeau de la signature de code. Ils peuvent ainsi se consacrer à ce qu’ils font le mieux, et sécurise fortement le système.

Signature électronique TechTalks

La chaîne d’approvisionnement logicielle couvre un spectre très large d’environnements. Et cela, depuis le développeur jusqu’au client final. Mais également depuis le code source jusqu’à la livraison, en passant par la construction, les dépendances, l’assemblage, l’empaquetage. Alors que les objets connectés se multiplient sans interruption, le risque qui pèse sur les chaînes d’approvisionnement augmente également. Pour limiter au maximum les dégâts, un effort supplémentaire doit être accordé, en termes de sécurité, aux supply chains.

Les communautés Open Source sont à pied d’œuvre pour traiter ce problème. De nombreux projets voient le jour et se complètent. Ils permettent d’améliorer la sécurité de la supply chain dans son ensemble, parmi lesquels sigstore, slsa.dev ou encore CycloneDX.

Cette tribune a été rédigée par Nicolas Massé, Solution Architect chez Red Hat.