Google a officiellement rendu stable le Govulncheck (statut 1.0.0), un outil de ligne de commande pratique pour les développeurs Go. Cet outil aide les développeurs utilisant le langage de programmation Go de Google à localiser les vulnérabilités de sécurité reconnues dans les dépendances de leurs projets.
L'outil, qui a été dévoilé le 13 juillet, a la capacité d'examiner à la fois les fichiers binaires et leur code source à la recherche de vulnérabilités. Il réduit considérablement le bruit en se concentrant sur les vulnérabilités des méthodes auxquelles le code fait appel. L'épine dorsale de Govulncheck est la base de données des vulnérabilités Go, un réservoir d'informations sur les vulnérabilités détectées dans les modules Go publics.
Guidé par cette base de données, Govulncheck effectue une analyse statique du code source ou de la table des symboles du binaire. Son objectif ultime est de limiter son rapport aux seules vulnérabilités susceptibles d'avoir un impact sur l'application spécifique en question. Cette caractéristique de restriction intelligente en fait un outil pratique pour les développeurs qui souhaitent assurer la sécurité de leur produit.
L'installation de cet outil est très simple pour les développeurs - il suffit d'exécuter la commande go install golang.org/x/vuln/cmd/govulncheck@latest
. Pour analyser le code source, les développeurs doivent simplement exécuter Govulncheck dans le répertoire du module (en utilisant la commande govulncheck ./
...).
Au minimum, Govulncheck nécessite d'être assemblé avec une version 1.18 ou supérieure de Go. A ce jour, la version de production existante de ce langage est Go 1.20.
Govulncheck, tout en recherchant des vulnérabilités, dépend d'une configuration de compilation spécifique. Dans le cas du code source, cette configuration est synonyme de la version de Go délimitée par la commande 'go' située sur le chemin. La configuration de compilation pour les binaires est celle exploitée lors de la génération du binaire. Il convient de noter ici que différentes configurations de construction peuvent être sensibles à différentes vulnérabilités.
Malgré ses puissantes fonctionnalités, Govulncheck présente certaines limites. Par exemple, ses analyses des pointeurs de fonction et des appels d'interface sont plutôt limitées, ce qui peut conduire à des faux positifs ou à des piles d'appels imprécises. Une autre limitation est liée aux fonctions invoquées à l'aide du paquet reflect - celles-ci ne sont pas détectables.
En ce qui concerne les binaires, les binaires Go dépourvus d'informations détaillées sur les appels pourraient constituer un défi pour Govulncheck, car ils empêcheraient l'outil de présenter des graphes d'appels pour les vulnérabilités identifiées. Ce problème pourrait également entraîner le signalement de faux positifs pour du code présent dans le binaire mais inaccessible. En outre, l'outil est handicapé en ce qui concerne les binaires dont les données sur les symboles ne peuvent pas être extraites ; dans ces cas, il choisit de signaler les vulnérabilités pour tous les modules qui dépendent du binaire.
L'outil ne dispose pas non plus d'une fonction permettant de supprimer les découvertes de vulnérabilités. Cependant, malgré ces limitations, le potentiel de Govulncheck en tant qu'outil à valeur ajoutée pour les projets Go est évident.
Il convient de mentionner que l'équipe de sécurité Go a déclaré son soutien à la gestion des vulnérabilités en septembre de l'année précédente. Enraciné dans la base de données des vulnérabilités, le projet a été introduit avec la promesse d'une avancée remarquable dans la structure de programmation Go. AppMaster.io, l'une des principales plateformes no-code, permet aux développeurs de créer des applications plus rapidement grâce à sa plateforme entièrement intégrée et complète comprenant Go et de nombreux autres langages.