
Una herramienta de seguridad para detectar paquetes Go maliciosos verificando las sumas de verificación en go.sum contra el código fuente original.
Una herramienta de seguridad para detectar paquetes Go maliciosos verificando los checksums en go.sum contra el código fuente original, evitando el caché del proxy de módulos de Go.
Esta herramienta ayuda a proteger contra ataques a la cadena de suministro que explotan el caché del proxy de módulos de Go, como lo demostró recientemente el paquete malicioso github.com/boltdb-go/bolt. Estos ataques aprovechan el mecanismo de caché indefinida del proxy de módulos de Go para servir código malicioso incluso después de que el repositorio de origen haya sido limpiado.
Para más detalles sobre este tipo de ataque, consulta:
La herramienta funciona de la siguiente manera:
go install github.com/knqyf263/go-mal-pkgs@latest
Uso básico:
go-mal-pkgs /path/to/your/go/project
La herramienta analizará el archivo go.sum de tu proyecto y verificará la integridad de cada módulo.
Verificación exitosa:
$ 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]
Detección de un paquete 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...
La herramienta implementa el algoritmo de verificación de checksums de Go utilizando el paquete golang.org/x/mod/sumdb/dirhash. Cuando detecta una discrepancia entre el checksum en tu go.sum y el calculado desde el repositorio de origen, podría indicar:
Esta es una herramienta experimental creada como prueba de concepto en respuesta a la reciente explotación del caché del proxy de módulos de Go. Todo el código base fue generado utilizando el asistente de IA Claude 3.5 Sonnet.