
Uma ferramenta de segurança para detectar pacotes Go maliciosos verificando os checksums em go.sum em relação ao código-fonte original.
Uma ferramenta de segurança para detectar pacotes Go maliciosos, verificando os checksums no go.sum contra o código-fonte original, contornando o cache do Go Module Proxy.
Esta ferramenta ajuda a proteger contra ataques à cadeia de suprimentos que exploram o cache do Go Module Proxy, como demonstrado recentemente pelo pacote malicioso github.com/boltdb-go/bolt.
Esses ataques aproveitam o mecanismo de cache indefinido do Go Module Proxy para servir código malicioso mesmo depois que o repositório de origem foi limpo.
Para mais detalhes sobre este tipo de ataque, consulte:
A ferramenta funciona da seguinte forma:
go install github.com/knqyf263/go-mal-pkgs@latest
Uso básico:
go-mal-pkgs /path/to/your/go/project
A ferramenta analisará o arquivo go.sum do seu projeto e verificará a integridade de cada módulo.
Verificação bem-sucedida:
$ 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]
Detecção de um pacote potencialmente malicioso:
$ 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...
A ferramenta implementa o algoritmo de verificação de checksums do Go usando o pacote golang.org/x/mod/sumdb/dirhash. Quando detecta uma incompatibilidade entre o checksum no seu go.sum e o calculado a partir do repositório de origem, isso pode indicar:
Esta é uma ferramenta experimental criada como prova de conceito em resposta à recente exploração do cache do Go Module Proxy. Todo o código-fonte foi gerado usando o assistente de IA Claude 3.5 Sonnet.