
Un outil de sécurité pour détecter les paquets Go malveillants en vérifiant les sommes de contrôle dans go.sum par rapport au code source d'origine.
Un outil de sécurité permettant de détecter les paquets Go malveillants en vérifiant les sommes de contrôle (checksums) du fichier go.sum par rapport au code source original, en contournant le cache du Go Module Proxy.
Cet outil aide à se protéger contre les attaques de la chaîne d'approvisionnement qui exploitent le cache du Go Module Proxy, comme l'a récemment démontré le paquet malveillant github.com/boltdb-go/bolt.
Ces attaques tirent parti du mécanisme de mise en cache indéfinie du Go Module Proxy pour diffuser du code malveillant, même après que le dépôt source a été nettoyé.
Pour plus de détails sur ce type d'attaque, voir :
L'outil fonctionne comme suit :
go install github.com/knqyf263/go-mal-pkgs@latest
Utilisation de base :
go-mal-pkgs /path/to/your/go/project
L'outil analyse le fichier go.sum de votre projet et vérifie l'intégrité de chaque module.
Vérification réussie :
$ go-mal-pkgs /path/to/project
Checking golang.org/x/[email protected]...
✅ Verified golang.org/x/[email protected]
Checking github.com/stretchr/[email protected]...
✅ Verified github.com/stretchr/[email protected]
Détection d'un paquet potentiellement malveillant :
$ go-mal-pkgs /path/to/compromised-project
Checking github.com/boltdb-go/[email protected]...
⚠️ WARNING: checksum mismatch for github.com/boltdb-go/[email protected]:
expected: h1:abc123def456...
actual: h1:xyz789uvw012...
L'outil implémente l'algorithme de vérification des sommes de contrôle de Go à l'aide du paquet golang.org/x/mod/sumdb/dirhash. Lorsqu'il détecte une non-concordance entre la somme de contrôle présente dans votre go.sum et celle calculée à partir du dépôt source, cela peut indiquer :
Il s'agit d'un outil expérimental créé comme preuve de concept en réponse à la récente exploitation du cache du Go Module Proxy. L'ensemble du code a été généré à l'aide de l'assistant IA Claude 3.5 Sonnet.