
Uno strumento di sicurezza per rilevare pacchetti Go malevoli verificando i checksum in go.sum rispetto al codice sorgente originale.
Uno strumento di sicurezza per rilevare pacchetti Go dannosi verificando i checksum in go.sum rispetto al codice sorgente originale, bypassando la cache del Go Module Proxy.
Questo strumento aiuta a proteggere da attacchi alla supply chain che sfruttano la cache del Go Module Proxy, come recentemente dimostrato dal pacchetto dannoso github.com/boltdb-go/bolt.
Questi attacchi sfruttano il meccanismo di caching indefinito del Go Module Proxy per servire codice dannoso anche dopo che il repository sorgente è stato ripulito.
Per maggiori dettagli su questo tipo di attacco, vedi:
Lo strumento funziona in questo modo:
go install github.com/knqyf263/go-mal-pkgs@latest
Utilizzo di base:
go-mal-pkgs /path/to/your/go/project
Lo strumento analizzerà il file go.sum del tuo progetto e verificherà l'integrità di ogni modulo.
Verifica riuscita:
$ 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]
Rilevamento di un pacchetto potenzialmente dannoso:
$ 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...
Lo strumento implementa l'algoritmo di verifica dei checksum di Go utilizzando il pacchetto golang.org/x/mod/sumdb/dirhash. Quando rileva una discrepanza tra il checksum nel tuo go.sum e quello calcolato dal repository sorgente, potrebbe indicare:
Questo è uno strumento sperimentale creato come proof of concept in risposta al recente sfruttamento della cache del Go Module Proxy. L'intero codebase è stato generato utilizzando l'assistente AI Claude 3.5 Sonnet.