
Инструмент безопасности для обнаружения вредоносных Go-пакетов путём проверки контрольных сумм в go.sum на соответствие исходному коду.
Инструмент безопасности для обнаружения вредоносных Go-пакетов путём проверки контрольных сумм в go.sum на соответствие исходному коду, минуя кеш Go Module Proxy.
Этот инструмент помогает защититься от атак на цепочку поставок, эксплуатирующих кеш Go Module Proxy, как было недавно продемонстрировано вредоносным пакетом github.com/boltdb-go/bolt.
Такие атаки используют механизм бессрочного кеширования Go Module Proxy для доставки вредоносного кода даже после очистки исходного репозитория.
Подробнее об этом типе атак см.:
Инструмент работает следующим образом:
go install github.com/knqyf263/go-mal-pkgs@latest
Базовое использование:
go-mal-pkgs /path/to/your/go/project
Инструмент проанализирует файл go.sum вашего проекта и проверит целостность каждого модуля.
Успешная проверка:
$ 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]
Обнаружение потенциально вредоносного пакета:
$ 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...
Инструмент реализует алгоритм проверки контрольных сумм Go с использованием пакета golang.org/x/mod/sumdb/dirhash. Когда он обнаруживает несоответствие между контрольной суммой в вашем go.sum и суммой, вычисленной из исходного репозитория, это может указывать на:
Это экспериментальный инструмент, созданный как доказательство концепции в ответ на недавнюю эксплуатацию кеша Go Module Proxy. Весь код был сгенерирован с помощью ИИ-ассистента Claude 3.5 Sonnet.