Snyk Code ajoute l’analyse de sécurité pour Go
Frank Fischer
14 octobre 2021
0 minutes de lectureNote de la rédaction (10 janvier 2022) : La prise en charge de Go dans Snyk Code est désormais disponible en version GA.
Snyk Code a été lancé au début de l’année 2021 et a beaucoup évolué en peu de temps. Outil de sécurité conçu pour les développeurs, il propose une interface utilisateur et une CLI intuitives, s’intègre aux IDE les plus populaires, fournit des recommandations de correction concrètes et analyse le code à une vitesse en temps réel et avec une précision de pointe. De plus, ses algorithmes basés sur le machine learning s’appuient sur les contributions de la communauté mondiale des développeurs pour enrichir de façon exponentielle sa solide base de connaissances.
Depuis son lancement, nous ajoutons régulièrement la prise en charge de nouveaux langages. Snyk Code prend déjà en charge JavaScript, TypeScript, Java, Python, C#, PHP (bêta) et maintenant… roulement de tambour… Go en version bêta !
Voyons comment nous avons fait passer l’analyse de sécurité de Go dans Snyk Code en version bêta, et comment vous pouvez commencer à profiter de ses fonctionnalités.
Le parcours de Go dans Snyk Code
En général, l’ajout d’un nouveau langage commence par l’ajout d’un analyseur au moteur Snyk Code. Celui-ci génère une représentation intermédiaire du code source, indépendante du langage et compatible avec toutes les caractéristiques des langages modernes polyvalents. L’étape suivante consiste à utiliser un processus basé sur le machine learning pour générer une base de connaissances de règles. Chaque langage possède un environnement d’exécution ou un ensemble de bibliothèques qui lui est propre ; le moteur apprend à identifier les fonctions sources et puits spécifiques.
Comme vous pouvez l’imaginer, il s’agit d’un processus itératif, et la base de connaissances s’enrichit donc de façon exponentielle chaque jour. À partir d’un certain stade, lorsque les retours de nos tout premiers testeurs montrent qu’ils détectent des problèmes de sécurité qui échappaient auparavant aux autres outils, nous ajoutons la nouvelle base de connaissances à la version de production. Nous indiquons que les règles sont en « bêta » parce que le travail n’est pas terminé, mais nous voulons apporter de la valeur dès que possible afin de continuer à les améliorer. Nous ajoutons ensuite de nouvelles règles chaque jour. Les résultats ne couvrent peut-être pas encore tous les cas, mais les détections s’enrichissent continuellement. Lorsque nos mesures et tests internes confirment que nous avons atteint le niveau de couverture et de précision visé, la prise en charge du langage sort de la bêta et devient complète.
Ce processus sert maintenant à ajouter un autre langage : Go. Ce langage est relativement récent, mais son adoption a fortement progressé ces dernières années. Go a été conçu pour combler un manque. Les langages offrant un contrôle poussé des performances, comme C++, sont réputés complexes et contraignants. À l’inverse, les langages faciles à comprendre et à lire, comme Python, semblent offrir des performances globales plus faibles. Go a été conçu pour combler cet écart, en tenant compte des environnements modernes : des machines fortement connectées et multicœurs.
Bien que le langage de programmation Go intègre des caractéristiques qui préviennent certaines sources courantes de bugs — comme le typage statique ou la sécurité mémoire — et que son environnement de programmation ait disposé dès le départ d’outils tels qu’un linter, des problèmes sémantiques subsistent. C’est là que Snyk Code intervient.
Remarque : En général, votre application comprend des dépendances open source ainsi que votre propre code. Snyk Open Source analyse les configurations des gestionnaires de paquets pour Go Modules, dep ou govendor et vérifie si les paquets sont vulnérables.
Lancer une analyse Snyk Code sur votre projet Go
L’un des principaux avantages de Snyk Code est qu’il ne nécessite aucune installation si vous utilisez un système de gestion du code source comme GitHub ou GitLab. Le code n’a même pas besoin de vous appartenir : vous pouvez analyser des dépôts open source. Pour commencer, il vous suffit de créer gratuitement un compte Snyk — aucune carte bancaire n’est requise, mais vous devez disposer d’un compte GitHub ou GitLab.
Ajoutez ensuite un projet, soit depuis votre compte Git personnel, soit en indiquant le chemin d’accès à un dépôt public. Les analyses démarrent automatiquement, et même les dépôts les plus volumineux, contenant des dizaines de milliers de fichiers, sont analysés en quelques minutes.
En ouvrant les résultats de l’analyse du code, vous pouvez consulter les détails de l’analyse :

Remarque : Go étant en version bêta, les résultats ne seront pas aussi précis que pour les langages entièrement pris en charge. Ils varieront également chaque jour en raison de nos mises à jour continues.
Comme pour nos autres langages, les extensions IDE pour Visual Studio Code et JetBrains GoLand prendront également en charge l’analyse de sécurité Go dans Snyk Code. Et bien sûr, la CLI Snyk prend elle aussi Go en charge.
Aidez-nous à sortir plus rapidement l’analyse de sécurité Go de la bêta en l’essayant et en nous envoyant vos commentaires.
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.
