
go.sum内のチェックサムを元のソースコードと照合することで、悪意のあるGoパッケージを検出するセキュリティツール
Go Module Proxy キャッシュをバイパスし、go.sum のチェックサムを元のソースコードと照合して、悪意のある Go パッケージを検出するセキュリティツールです。
このツールは、最近悪意のある github.com/boltdb-go/bolt パッケージで実証されたように、Go Module Proxy キャッシュを悪用したサプライチェーン攻撃から保護するのに役立ちます。
これらの攻撃は、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...
このツールは、golang.org/x/mod/sumdb/dirhash パッケージを使用して Go のチェックサム検証アルゴリズムを実装しています。go.sum のチェックサムとソースリポジトリから計算されたチェックサムの間に不一致を検出した場合、以下を示している可能性があります:
これは、最近の Go モジュールプロキシキャッシュの悪用を受けて、概念実証として作成された実験的なツールです。コードベース全体は Claude 3.5 Sonnet AI アシスタントを使用して生成されました。