Skip to main content

Sécurité Go : annonce d’une protection renforcée des applications Go

Écrit par
snykgo header

16 décembre 2020

0 minutes de lecture

Nous sommes ravis d’annoncer une prise en charge renforcée de la sécurité Go dans Snyk Open Source et Snyk Container, qui permet aux équipes de développement et de sécurité de détecter et de corriger plus efficacement les vulnérabilités de leurs applications Go !

Les développeurs Go peuvent désormais tester et surveiller leurs projets Go à toutes les étapes du cycle de développement logiciel (SDLC) : dès les premières lignes de code dans leur IDE, avec la CLI Snyk dans leurs pipelines CI/CD, et maintenant aussi dans leurs workflows Git, grâce à la disponibilité en version bêta de la prise en charge des modules Go dans les intégrations SCM de Snyk.

Go partout !

Dans l’enquête Stack Overflow de cette année, Go figure parmi les cinq langages les plus appréciés et les plus recherchés, un classement qu’il maintient depuis plusieurs années. Le nombre d’utilisateurs de Go est également en hausse, comme en témoigne le rapport Octoverse de GitHub. Go est désormais le 4ᵉ langage de GitHub, en nombre de pull requests.

Comment expliquer cette popularité ? Go a été conçu pour être plus pratique et facile à utiliser. Il offre des performances optimisées, une architecture globalement légère et une syntaxe simple (Go n’a pas de classes !). La concurrence assurée par les goroutines de Go illustre pourquoi ce langage est considéré comme « efficace » : Uber a exploité cette capacité pour créer un service qui, en 2017, traitait le plus grand nombre de requêtes par seconde chez Uber. Et Uber est loin d’être la seule entreprise à l’utiliser. Toutes ces raisons ont fait de Go « le langage de programmation du cloud » : il est utilisé par des entreprises comme Google, Netflix et Salesforce, et alimente des projets comme Docker et Kubernetes.

Il n’est donc pas surprenant que ces tendances se reflètent également chez Snyk. Nous constatons une augmentation régulière du nombre de projets Go testés et surveillés afin de détecter les vulnérabilités de sécurité et les problèmes de licence.

La sécurité Go avec Snyk

Bien que Go soit un langage relativement récent (il existe depuis un peu plus de 10 ans), le nombre de vulnérabilités de sécurité connues dans les packages Go ne cesse d’augmenter, tout comme le risque lié à leur intégration.

Selon l’enquête 2019 auprès de la communauté Go, 75 % des développeurs Go jugent la sécurité extrêmement importante et se disent satisfaits de la sécurité dans Go. L’équipe Go a également annoncé de futurs investissements dans la sélection et les tests des vulnérabilités. Ce sont des signes très encourageants, mais, comme dans les écosystèmes plus établis, les risques liés à l’intégration de dépendances open source doivent être gérés et atténués.

Snyk propose aux équipes de développement et de sécurité qui souhaitent protéger leurs applications Go une solution facile à déployer, qui facilite les corrections rapides et s’appuie sur des informations de sécurité précises :

  • Convivialité pour les développeurs : Snyk s’intègre parfaitement aux workflows de développement existants, analyse les projets en quelques secondes (même ceux de la taille de Kubernetes !) et est extrêmement facile à utiliser, ce qui favorise son adoption et maximise la productivité.

  • Couverture complète : Snyk détecte les vulnérabilités de sécurité et les problèmes de licence à toutes les étapes du SDLC. Il prend en charge les applications utilisant des modules Go, y compris celles exécutées dans des conteneurs.

  • Expertise en sécurité : depuis 2019, Snyk a ajouté des centaines de vulnérabilités Go à la base de données des vulnérabilités Snyk Intel. La plupart de ces vulnérabilités sont exclusives, ne figurent pas dans la NVD et ont été découvertes par l’équipe de recherche en sécurité de Snyk.

Page web de la base de données des vulnérabilités de Snyk répertoriant les vulnérabilités Go, les packages GitHub concernés, les niveaux de gravité et les dates de publication

Tester la sécurité du code Go avec la CLI Snyk

La CLI Snyk propose des commandes pour tester, surveiller et corriger les vulnérabilités connues des packages open source Go que vous intégrez à votre application. Vous pouvez l’utiliser ponctuellement pendant le développement de votre application ou dans le cadre de votre système CI (Build). Grâce à la façon dont Snyk analyse les dépendances, en s’appuyant sur les DepGraphs, même les grands projets sont testés en quelques secondes.

Pour utiliser la CLI Snyk, vous devez d’abord l’installer, puis l’authentifier avec un compte Snyk afin d’obtenir un jeton API. C’est gratuit !

La commande snyk test permet ensuite de tester votre projet local à la recherche de vulnérabilités connues. Elle fournit des informations sur les problèmes détectés : leur gravité, leur type et leur description, le nombre de chemins vulnérables, les mesures correctives et plus encore.

Terminal affichant une analyse des vulnérabilités des dépendances du projet HashiCorp Vault, avec cinq problèmes et 10 chemins vulnérables.

La commande snyk monitor exécute également snyk test, mais crée un instantané de votre projet Go et envoie les résultats à l’application et à l’interface utilisateur de Snyk. Rassurez-vous : nous prenons uniquement un instantané de vos dépendances, pas de votre code source ! Snyk surveille ensuite votre projet et vous avertit lorsque de nouvelles vulnérabilités sont détectées ou que des correctifs sont disponibles.

De même, si vous souhaitez tester des applications Go empaquetées dans un conteneur — par exemple, des conteneurs tiers dont vous ne pouvez pas tester directement le code source —, vous pourrez bientôt les analyser en une seule passe dans le cadre de vos analyses de conteneurs. Vous pourrez importer une image depuis un registre de conteneurs ou utiliser la fonctionnalité de conteneur de la CLI Snyk. Les résultats indiqueront les vulnérabilités du conteneur ainsi que celles des modules Go détectées. Même si ce type d’analyse de conteneur détecte les problèmes liés au conteneur et au code en une seule passe, les résultats restent consultables dans des projets distincts. C’est pratique lorsque les équipes responsables des corrections du conteneur et du code sont différentes, et permet de créer des rapports séparés sur les problèmes liés aux conteneurs et au code.

Intégrer la sécurité des projets Go dès l’IDE

Plus tôt vous effectuez les tests de sécurité, moins les corrections coûtent cher. Les développeurs Go peuvent détecter et corriger les vulnérabilités dès les premières lignes de code, dans leur outil de développement préféré, grâce à la longue liste de plugins IDE proposés par Snyk. Elle comprend un plugin pour GoLand de JetBrains, le deuxième IDE le plus utilisé par les développeurs Go après VS Code, selon l’enquête auprès des développeurs citée plus haut.

Pour utiliser le plugin Snyk, il suffit de le télécharger depuis GoLand, dans Preferences, puis Plugins.

Fenêtre des préférences de l’IDE JetBrains montrant le plug-in Snyk Vulnerability Scanner activé dans la liste des plug-ins installés.

Une fois installé, le plugin télécharge la dernière version de la CLI Snyk. Dès que le téléchargement est terminé, vous pouvez lancer une analyse et obtenir les résultats en quelques secondes. Dans l’exemple ci-dessous, l’analyse du projet Vault de HashiCorp a révélé quelques problèmes de sécurité que nous pouvons examiner de plus près pour comprendre comment les corriger :

IDE GoLand affichant un fichier de module Go et le panneau Snyk répertoriant cinq vulnérabilités dans les dépendances, dont une vulnérabilité de gravité élevée liée à une génération aléatoire non sécurisée.

Nouveau ! Intégrer les tests de sécurité Go à vos workflows Git (BÊTA)

La dernière amélioration annoncée ici — la possibilité de tester et de surveiller les projets utilisant des modules Go dans vos dépôts — rend les tests de sécurité et de licence avec Snyk encore plus efficaces.

Les intégrations de gestion de code source (SCM) de Snyk vous permettent d’analyser en continu la sécurité et les licences de tous vos dépôts intégrés utilisant des modules Go, et de détecter les vulnérabilités de sécurité ainsi que les problèmes de licence dans les dépendances open source.

Après avoir configuré votre intégration GitHub ou Bitbucket et importé votre projet utilisant des modules Go, vous pourrez suivre les problèmes sur la page Projects de l’interface Snyk :

Tableau de bord de projet Snyk pour une application Go, affichant les détails d’une vulnérabilité de gravité élevée liée à une vérification incorrecte de signature

Cette fonctionnalité est encore en version bêta et sera déployée progressivement. Si vous souhaitez l’activer pour vos projets Go, n’hésitez pas à contacter notre équipe d’assistance !

Si de nouvelles vulnérabilités sont découvertes dans vos dépendances Go, ou si un correctif ou un chemin de mise à niveau auparavant indisponible est ajouté, Snyk vous en informera via le canal de notification que vous avez configuré.

À vos marques, prêts… Go en toute sécurité !

Cette dernière amélioration fait suite aux améliorations récentes des performances des tests de sécurité des projets Go avec la CLI Snyk. Elle renforce la solution Snyk, conviviale pour les développeurs, complète et dotée d’une expertise approfondie en sécurité, pour protéger les applications Go.

Face à la popularité croissante et à l’adoption rapide de Go, et pour répondre aux besoins grandissants de nos utilisateurs, nous nous engageons à améliorer la prise en charge de cet écosystème. En 2021, nous allons également optimiser les workflows de correction afin de faciliter la correction automatique des vulnérabilités Go.

Vous utilisez Go et souhaitez vous lancer ? Essayez Snyk gratuitement !

Lancez-vous dans les compétitions Capture The Flag

Apprenez à résoudre des défis Capture The Flag en regardant à la demande notre atelier virtuel d’initiation.

Lire la suite

feature insights context
Blog

Les attaques autonomes sont déjà là. La défense doit suivre leur rythme.

Les attaquants autonomes réduisent la fenêtre de défense. Découvrez comment la découverte, la correction, la validation et la prévention continues peuvent aider les équipes de sécurité à suivre le rythme.

feature insights context
Blog

La prévention est-elle essentiellement un problème résolu ?

La prévention dans le code généré par les agents est résolue sur le plan architectural, mais le défi reste de choisir des contrôles qui protègent la sécurité sans ralentir le développement.

Live Stream

Les agents de remédiation démystifiés : pourquoi corriger vaut mieux que détecter

Découvrez comment l’agent de remédiation de Snyk utilise les renseignements de sécurité, l’analyse de la cassabilité et la validation pour transformer les vulnérabilités en pull requests prêtes à être fusionnées.