
go.sum의 체크섬을 원본 소스 코드와 대조하여 악성 Go 패키지를 탐지하는 보안 도구
Go 모듈 프록시 캐시를 우회하여 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 어시스턴트로 생성되었습니다.