Agence web » Actualités du digital » Comment la signature logicielle de la Linux Foundation combat les attaques de la chaîne d’approvisionnement –

Comment la signature logicielle de la Linux Foundation combat les attaques de la chaîne d’approvisionnement –

Shutterstock / kenary820

Les projets open source compromis et utilisés pour propager des logiciels malveillants pourraient appartenir au passé. L’initiative de signature de logiciels de la Linux Foundation veut être un Let’s Encrypt pour les versions de logiciels.

Le problème

L’utilisation répandue de l’open source est étonnante. Les logiciels, outils et bibliothèques open source se trouvent dans presque tous les développements logiciels non triviaux en cours. Malheureusement, ce qui rend l’open source attractif – vous avez accès au code source du logiciel et n’importe qui peut soumettre des corrections de bogues et de nouvelles fonctionnalités – présente un vecteur d’attaque qui peut être exploité par les acteurs de la menace.

Un code malveillant a été injecté dans les projets open source par des cybercriminels qui utilisent la popularité du produit open source comme méthode de distribution de leurs logiciels malveillants. En règle générale, il fournira aux acteurs de la menace une porte dérobée sur les ordinateurs des victimes. Il peut également exécuter un enregistreur de frappe ou télécharger le logiciel malveillant réel à partir des serveurs du cybercriminel.

Ce type d’attaque est une forme d’attaque de la chaîne d’approvisionnement. Lors d’une attaque de la chaîne d’approvisionnement, les victimes ne sont pas directement compromises. La charge utile malveillante est insérée dans quelque chose chez l’un des fournisseurs de la victime. Lorsque la victime achète l’élément contaminé, la charge utile malveillante est déclenchée et la victime est compromise. L’exemple le plus célèbre d’attaque de la chaîne d’approvisionnement a été celui utilisé dans l’attaque de Stuxnet contre l’usine d’enrichissement d’uranium de Natanz, en Iran.

Les logiciels open source sont une plate-forme évidente pour les cybercriminels à utiliser pour ce type d’attaque. En réponse, la Fondation Linux lance sigstore. sigstore est un service gratuit – développé conjointement avec Google, Red Hat et Purdue University – que les développeurs de logiciels peuvent utiliser pour signer numériquement leurs versions logicielles.

sigstore protège les consommateurs open source contre des attaques telles que les attaques de confusion de dépendance. Ces attaques trompent les gestionnaires de packages en installant une version malveillante hébergée à distance d’une ressource disponible localement telle qu’un fichier de bibliothèque. Le gestionnaire de packages est informé qu’il existe une dépendance dans le logiciel en cours d’installation et que le fichier de bibliothèque local doit être mis à niveau. La version contaminée hébergée à distance a un numéro de version plus élevé qui satisfait la fausse dépendance. La «mise à niveau» a lieu et le système est compromis.

Comment fonctionne sigstore

Comme tous les systèmes de signature et de certification, la valeur de la signature ou du certificat est liée au degré de confiance que les gens ont dans l’autorité émettrice. sigstore utilise OpenID Connect d’OpenID Foundation qui est basé sur le schéma X.509 standard de l’industrie pour définir et gérer les certificats. sigstore utilise le protocole d’authentification OpenID pour lier les certificats à l’identité du développeur. Il s’agit généralement de leur adresse e-mail ou d’un autre identifiant de compte.

Le client sigstore crée une paire de clés de courte durée. Il interroge le sigstore Public Key Infrastructure (PKI) qui vérifie une vérification OpenID Connect valide et émet un certificat si tout va bien. Le certificat est créé à l’aide des valeurs de paire de clés qui seront utilisées pour signer le logiciel.

Une piste d’audit des certificats et des signatures est conservée sous la forme d’un journal public immuable. Le journal peut être utilisé pour vérifier les versions de logiciels et les certificats. Il fournit une preuve accessible au public de la signature d’un fichier. Les signatures suivantes seront uniques car l’heure et la date sont également enregistrées. Cela fournit un ensemble de garanties sur les origines et la provenance des fichiers open source et permet aux politiques de sécurité basées sur les signatures de piéger les fichiers qui ne peuvent pas être vérifiés et approuvés.

Si un code malveillant est injecté dans un projet open source et qu’il n’est pas trouvé par la gestion de fusion ou les processus de code et d’examen par les pairs, il pourrait être compilé dans un binaire. Si le binaire est ensuite signé numériquement, sigstore ne connaîtra pas cette menace intégrée et pourrait théoriquement certifier une version malveillante.

Dans ce cas, le journal de signature public pourrait être un atout pour les enquêtes sur l’attaque, et comme un moyen d’alerte précoce pour les autres d’un binaire compromis. Des systèmes pourraient être construits pour comparer les certificats binaires à une base de données de versions connues, bonnes et mauvaises, éprouvées.

Cela pourrait fonctionner de la même manière que le site Web Have I Been Pwned. Vous pouvez rechercher manuellement votre e-mail sur leur site Web. Si votre e-mail est trouvé, cela signifie qu’il a été inclus dans une violation de données. On vous dit quelle violation de données à partir de quel site a exposé vos données personnelles.

Il n’est pas difficile d’imaginer des systèmes qui vérifieraient le numéro de version et l’authenticité de la signature par rapport à une base de données de référence qui renverrait une décision go / no-go concernant une version logicielle signée. En outre, les développeurs peuvent être avertis chaque fois que leur adresse e-mail ou leur identifiant OpenID Connect est utilisé dans un événement de signature. S’ils n’ont pas initié cet événement, il doit faire l’objet d’une enquête.

Crypter, mais pour les logiciels

Dans un article de blog de mars 2021, Google décrit sigstore comme étant comme Let’s Encrypt, mais pour les versions de logiciels. Let’s Encrypt est une autorité de certification gratuite et ouverte qui génère des certificats SSL / TLS pour les sites Web HTTPS. Cela permet à ces sites Web de s’authentifier de manière positive afin que les visiteurs puissent être certains que le site Web est vraiment ce qu’il dit être. Une fois l’identité du site Web établie, les informations de clé publique contenues dans le certificat sont utilisées par le navigateur du visiteur pour crypter les communications entre son ordinateur et le site Web. Le processus pour obtenir un certificat de Let’s Encrypt est automatisé.

Le blog Google poursuit: «Tout comme Let’s Encrypt fournit des certificats gratuits et des outils d’automatisation pour HTTPS, sigstore fournit des certificats et des outils gratuits pour automatiser et vérifier les signatures du code source. Sigstore a également l’avantage d’être soutenu par des journaux de transparence, ce qui signifie que tous les certificats et attestations sont globalement visibles, détectables et vérifiables. »

Apprivoiser le Far West

La façon dont les logiciels open source sont utilisés aujourd’hui était inimaginable il y a seulement 10 ans. L’adoption de l’open source dans le monde du développement plus large est due à plus que l’accessibilité au code source, la qualité du code et le délai d’exécution des corrections de bogues et des correctifs.

L’open source était autrefois considéré avec suspicion. Mais les organisations obtenir open source maintenant. Le modèle open source est reconnu comme ayant plus à voir avec le marketing et la publication qu’une dévotion aux nombreuses variantes de la licence publique générale GNU (GPL).

C’est principalement un moyen d’obtenir votre code ou votre produit là-bas. Créez un compte GitHub, écrivez votre programme et dites aux gens qu’il est disponible. Si c’est bon, ça poussera et, espérons-le, boule de neige. Envie de vous impliquer dans un projet open source? Simple. Envoyez une demande de fusion dans leur référentiel Git ou proposez de les aider avec leur documentation.

L’open source a été perturbateur de la manière la plus positive. Mais cela a aussi été gratuit pour tous. L’écosystème open source réclame quelque chose qui puisse fournir à la chaîne d’approvisionnement des logiciels transparence, vérification et audit.

sigstore montre tout le potentiel pour répondre à ce besoin avec un système gratuit, simple et évolutif.

★★★★★