Skip to main content

Snyk Open Source ajoute l’analyse de sécurité C/C++ en version bêta pour les projets open source non gérés

Écrit par
blog feature oss cpp

8 décembre 2021

0 minutes de lecture

Nous sommes ravis d’annoncer la bêta ouverte de l’analyse de sécurité C/C++ dans Snyk Open Source. Les équipes de développement et de sécurité peuvent ainsi détecter et corriger les vulnérabilités connues dans leur code et leurs bibliothèques open source C/C++ !

Utilisé dans de nombreux secteurs et particulièrement présent dans les domaines du jeu vidéo, du matériel et de l’IoT, ainsi que des communications, le C/C++ continue d’avoir un impact majeur sur le développement logiciel et le secteur technologique dans son ensemble. Selon l’indice TIOBE de novembre 2021, le C et le C++ figurent parmi les cinq principaux langages de programmation, respectivement en deuxième et quatrième position. L’indice PYPL et le classement RedMonk présentent des résultats similaires.

Comme les développeurs qui utilisent d’autres langages de programmation, les développeurs C/C++ s’appuient sur du code et des bibliothèques open source pour créer leurs applications. Cette dépendance croissante entraîne un risque : des vulnérabilités connues peuvent se cacher dans ces bibliothèques. Le problème est aggravé par le fait que, contrairement aux développeurs qui utilisent des langages plus récents, la majorité des développeurs C/C++ ne suivent pas de processus standardisé pour gérer ces bibliothèques (49 % des développeurs C++ citent la gestion des packages comme une difficulté majeure dans la dernière enquête de la communauté C++). Le code source des bibliothèques open source est plutôt intégré au code de l’application, ce qui complique la gestion de ces bibliothèques et la détection des vulnérabilités qu’elles peuvent contenir.

Grâce à cette annonce, les utilisateurs de Snyk Open Source peuvent atténuer ce risque en testant leurs projets C/C++ depuis la Snyk CLI, que ce soit manuellement dans leur environnement de développement local ou de façon automatisée dans un pipeline CI/CD.

La version bêta prend en charge les fonctionnalités suivantes :

  • snyk unmanaged test dans la Snyk CLI

  • snyk unmanaged monitor dans la Snyk CLI

  • Données sur les vulnérabilités issues de la National Vulnerability Database (NVD)

Voyons rapidement comment cela fonctionne.

Configurer la Snyk CLI

Tout d’abord, vérifiez que la Snyk CLI est installée. Si vous connaissez déjà la Snyk CLI et qu’elle est installée, assurez-vous d’utiliser la version 1.775.0 ou une version ultérieure.

La configuration de la Snyk CLI est simple. Installez-la rapidement à l’aide de npm ou de Homebrew, puis authentifiez-vous avec votre compte Snyk (si ce n’est pas déjà fait, inscrivez-vous gratuitement) :

npm install -g snyk
snyk auth

Votre navigateur s’ouvrira et vous demandera d’authentifier la CLI. Il vous suffit de vous authentifier !

Vous pouvez maintenant utiliser la Snyk CLI pour analyser vos projets C/C++ à la recherche de vulnérabilités.

Rechercher des vulnérabilités de sécurité

Essayons la Snyk CLI en lançant un premier test.

Pour analyser un projet, les bibliothèques open source doivent se trouver dans le répertoire analysé. Dans ce répertoire, exécutez la commande CLI suivante :

snyk unmanaged test

Snyk convertit alors tous les fichiers du dossier en une liste de signatures numériques, ou hachages, puis les compare à ses bases de données pour établir une liste des composants open source correspondants. Cette liste est ensuite comparée à la National Vulnerability Database (NVD) pour afficher les résultats.

La procédure d’analyse des vulnérabilités dépend du nombre de fichiers dans votre projet et peut prendre de quelques secondes à quelques minutes. Une fois l’analyse terminée, la liste des vulnérabilités détectées s’affiche :

Terminal affichant les résultats des tests Snyk pour les dépendances non gérées, avec des vulnérabilités CVE de niveau élevé, moyen et faible dans curl.

Comme dans l’exemple ci-dessus, la liste des problèmes indique la gravité de la vulnérabilité, son CVE, des informations sur la bibliothèque à l’origine de la vulnérabilité ainsi qu’un lien vers la vulnérabilité dans la NVD.

Une autre commande utile permet d’afficher les bibliothèques open source incluses dans le projet, qu’elles soient vulnérables ou non :

snyk unmanaged test --print-deps

La Snyk CLI affiche alors la liste des dépendances avant celle des vulnérabilités. Comme dans cet exemple, le projet inclut les bibliothèques curl, iw et zip.

Terminal affichant les résultats de l’analyse des dépendances par Snyk, avec des CVE de gravité élevée, moyenne et faible dans curl et d’autres bibliothèques open source

Vous pouvez également importer les résultats de l’analyse dans l’application Snyk pour mieux les consulter et générer des rapports. Pour cela, utilisez la commande suivante :

snyk unmanaged monitor

Un instantané de vos bibliothèques C/C++ est créé, ainsi que des vulnérabilités qu’elles contiennent, puis importé dans Snyk pour un examen et une analyse plus approfondis. Il apparaît comme un nouveau projet sur la page Projets :

Page Projets de Snyk mettant en évidence le projet c-example, avec le nombre de problèmes de sécurité et un lien « Afficher le rapport ».

Vous pouvez interagir avec les résultats de l’analyse de nombreuses autres façons, notamment en les filtrant ou en les exportant au format JSON. Consultez notre documentation Snyk pour découvrir les autres options de la CLI !

À la découverte de l’open source non géré

Les équipes de développement C/C++ qui souhaitent maintenir un rythme de développement soutenu tout en préservant la sécurité doivent composer avec des bases de code contenant une grande quantité de code hérité. Dans ces bases de code, une grande partie du code open source n’est pas déclarée : elle est utilisée directement en l’intégrant à l’application, ce qui rend extrêmement difficile la gestion des risques associés.

Cette annonce de bêta marque la première étape de Snyk pour aider ces équipes à relever ce défi, en étendant pleinement nos fonctionnalités d’analyse de la composition logicielle, conçues pour les développeurs, à la sécurisation de l’open source non géré. Nous prévoyons ensuite d’intégrer entièrement la prise en charge de C/C++ dans Snyk Open Source à la base de données de vulnérabilités Snyk Intel, puis, à terme, d’ajouter la prise en charge de l’open source non géré dans d’autres écosystèmes, comme JavaScript et Java.

À mesure que nous mettons en œuvre ces prochaines étapes, nous comptons sur vos commentaires pour nous assurer d’avancer dans la bonne direction. Nous voulons vérifier que nous développons les fonctionnalités adéquates et que nous les proposons dans le bon ordre.

Alors, n’hésitez pas à participer ! Ces fonctionnalités sont disponibles en version bêta dans toutes les offres payantes de Snyk : Team, Business et Enterprise. Pour rejoindre la bêta, contactez notre équipe à l’adresse ccpp-beta@snyk.io afin que nous puissions vérifier que votre cas d’utilisation est pris en charge.

Pour en savoir plus sur l’analyse de vos projets C/C++ et la prise en charge bêta, consultez notre documentation Snyk.

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis de capture du drapeau en regardant à la demande notre atelier virtuel d’initiation.