La sécurité de la chaîne d’approvisionnement logicielle obtient la première distribution Linux, Wolfi


Image : Ralf/Adobe Stock

De la signature de logiciels aux images de conteneurs en passant par une nouvelle distribution Linux, une pile OSS émergente offre aux développeurs des garde-fous pour gérer l’intégrité des systèmes de construction et des artefacts logiciels.

SolarWinds et Log4j étaient les cinq incendies d’alarme qui ont réveillé l’industrie sur l’insécurité de nos artefacts logiciels et de nos systèmes de construction – le soi-disant problème de « sécurité de la chaîne d’approvisionnement logicielle ». Mais cela a été un paysage trouble pour les développeurs et les équipes d’ingénierie de sécurité qui essaient de comprendre les étapes réelles pour verrouiller leurs environnements de construction.

Mai 2021 de la Maison Blanche Décret exécutif sur l’amélioration de la cybersécurité de la nation a prédit l’arrivée des nomenclatures de logiciels, essentiellement une liste d’ingrédients de ce qui se trouve à l’intérieur d’un progiciel qui établira les processus d’attestation et de divulgation qui doivent être respectés pour l’approvisionnement technologique du gouvernement.

Malgré tous les efforts déployés par les fournisseurs de sécurité pour blanchir leurs produits autour de la sécurité de la chaîne d’approvisionnement logicielle, on ne sait toujours pas exactement comment quiconque est censé créer ou maintenir ces SBOM. Notes récentes aux chefs des agences fédérales ne font que souligner «l’importance des environnements de développement de logiciels sécurisés» sans beaucoup de précisions utiles sur la manière d’y parvenir.

Mais Linux, encore une fois, pourrait aider à résoudre le dilemme.

Un domaine de sécurité délicat à la recherche de bonnes pratiques

L’histoire montre que les développeurs respecteront les processus qui éliminent les conjectures de sécurisation des systèmes, mais seulement s’il existe un chemin clair et prescriptif qui peut être suivi avec une perturbation minimale de leur flux de travail. Par exemple, Let’s Encrypt est une autorité de certification qui a facilité la résolution de ce qui était auparavant une arène déroutante et fastidieuse dans la sécurité de la couche de transport. Let’s Encrypt a été massivement adopté par les développeurs et TLS verrouillé pour la majorité du Web dans un laps de temps très court.

VOIR: Protégez votre entreprise de la cybercriminalité avec ce service de surveillance du dark web (Académie TechRepublic)

Mais ce problème de sécurité de la chaîne d’approvisionnement logicielle est beaucoup plus nuancé que TLS. Cela touche les systèmes de construction, les CI/CD, les langages de programmation et leurs registres, tous les frameworks que les développeurs utilisent et leurs chaînes de contrôle. Au cœur de ce défi se trouve l’omniprésence des logiciels open source, la nature transitive des frameworks OSS partagés entre tous les systèmes que les développeurs construisent et le manque de support que les projets OSS massivement populaires reçoivent généralement.

Il y a eu beaucoup de raclements de gorge et de proclamations bruyantes sur la gravité du problème. Mais qu’est-ce qu’un développeur ou un ingénieur en sécurité est censé faire ?

Une nouvelle réponse à partir d’une pile émergente

Il n’y a aucune somme d’argent à consacrer au problème qui va résoudre ce défi de sécurité de la chaîne d’approvisionnement logicielle et la complexité d’inciter les responsables de l’OSS à faire ce qu’il faut (sécuriser). Ce qu’il faut, ce sont les bons outils qui mettent la sécurité entre les mains des développeurs, tout en protégeant le processus de verrouillage des chaînes d’approvisionnement logicielles.

Au cours des derniers mois, des projets open source s’attaquant à des aspects clés de ce défi de la chaîne d’approvisionnement logicielle ont fait leur apparition. Une nouvelle pile se forme, et je pense que nous sommes sur le point de voir des conversations théoriques sur la sécurité de la chaîne d’approvisionnement logicielle passer à des implémentations réelles et à l’amélioration des meilleures pratiques.

Première, Sigstore, un projet open source originaire de Google, axé sur la signature de logiciels et les racines de confiance pour les artefacts, est devenu la méthode de facto que les trois principaux registres de langages de programmation utilisent officiellement. GitHub a récemment annoncé qu’il est en utilisant Sigstore pour les packages npm de JavascriptPython utilise Sigstore pour son registre PyPiet Java utilise Sigstore pour Maven. Plus tôt cet été, Kubernetes est également livré avec Sigstore.

Deuxième, SLSA — prononcé « Salsa » — et le Cadre de développement logiciel sécurisé connaissent également une adoption massive en tant que cadres qui guident explicitement le processus de verrouillage de la sécurité de la chaîne d’approvisionnement logicielle. Dans leur récent rapport, Sécuriser le guide de la chaîne d’approvisionnement logicielle pour les développeurs, les poids lourds de la sécurité nationale américaine NSA, CISA et ODNI ont référencé SLSA et SSDF 14 et 38 fois respectivement.

Une nouvelle distribution appelée Wolfi pourrait s’avérer être une nouvelle pièce essentielle du puzzle.

Linux à la rescousse, encore une fois

Dan Lorenc et Kim Lewandowski sont le duo dynamique derrière Sigstore, SLSA et les efforts open source connexes qu’ils ont co-créés dans leurs rôles officiels chez Google. Avec pour mission de sécuriser par défaut la supply chain logicielle au démarrage, ils ont co-fondé Chainguard. Aujourd’hui, ils ont lancé la première distribution Linux spécialement conçue pour la sécurité de la chaîne d’approvisionnement logicielle : Wolfi.

VOIR: Violation de mot de passe : pourquoi la culture pop et les mots de passe ne font pas bon ménage (PDF gratuit) (TechRepublic)

Pourquoi une nouvelle distribution ? Cela se résume en fait au fait que les approches actuelles des vulnérabilités et des expositions critiques ont un énorme angle mort. Les distributions Linux et les gestionnaires de packages ne distribuent souvent pas les versions les plus récentes des packages logiciels, et les développeurs installent fréquemment des applications en dehors de ces limites. L’essor des conteneurs et la possibilité de publier des applications modernes beaucoup plus rapidement que les distributions existantes ont également conduit à un nombre croissant d’utilisateurs hébergeant leur propre noyau Linux. Les scanners utilisés par les fournisseurs de sécurité ne peuvent pas trouver ces images de conteneur si elles ont été installées en dehors des gestionnaires de packages ou des distributions, et manquent donc toute une classe de vulnérabilités à l’intérieur de celles-ci.

La raison pour laquelle cela est important, c’est que vous ne pouvez évidemment pas mesurer la sécurité des artefacts logiciels dont vous ne savez même pas qu’ils s’exécutent dans votre environnement – cette leçon était l’une des grandes sorties de la vulnérabilité Log4j qui a brouillé les développeurs et les ingénieurs de sécurité.

Wolfi vise à résoudre ce problème. Wolfi est une non-distribution que Chainguard a construite à partir de la source avec des SBOM et les signatures et la conformité à chaque étape du processus, des packages en amont aux images de conteneur finales. Selon Chainguard, en utilisant Wolfi, les développeurs n’ont pas à effectuer d’analyses binaires et les SBOM sont créés lors de la construction du logiciel, et non après coup.

Plus tôt cette année, Chainguard a annoncé Images de garde-chaîne, les premières images de base de conteneur sans distribution conçues pour une chaîne d’approvisionnement logicielle sécurisée. Les images Chainguard sont des images de conteneur de base continuellement mises à jour qui visent des vulnérabilités inconnues. Avec Wolfi, ils ont créé une distribution Linux communautaire construite avec des mesures de sécurité par défaut pour la chaîne d’approvisionnement logicielle – elle est livrée aujourd’hui avec images de base pour les binaires autonomesdes applications comme nginx et des outils de développement comme Aller et C compilateurs.

Pourquoi un undistro ? Selon Chainguard : « Les conteneurs sont immuables par nature (aucune mise à niveau/rétrogradation n’est donc nécessaire) et le noyau est fourni par l’hôte (simplifiant encore plus les gestionnaires de packages). Pour le dire simplement, les distributions n’ont pas été conçues pour la façon dont les logiciels sont construits aujourd’hui.

Ce que cette pile pourrait signifier pour la sécurité du décalage vers la gauche

Au début des années 2000, la montée en puissance de la pile LAMP – Linux, Apache, MySQL, Pearl et Python – a été un catalyseur majeur de l’avènement des applications Web modernes, offrant aux développeurs un ensemble d’outils stables et familiers qui ont conduit à l’un des plus grands vagues d’innovation que l’industrie technologique a connues.

Cette évolution actuelle que nous constatons autour de la pile de sécurité de la chaîne d’approvisionnement logicielle a une ambiance similaire. Nous savons que la sécurité s’est progressivement déplacée vers les développeurs, nous savons que davantage de garde-corps doivent exister pour aider les développeurs à s’aider eux-mêmes à apporter plus de sécurité dans leurs environnements de construction, mais cela a été un domaine très déroutant à déchiffrer.

Divulgation : Je travaille pour MongoDB, mais les opinions exprimées ici sont les miennes.