새로운 연구에 따르면 GitHub의 15,000개 이상의 Go 모듈 리포지토리가 리포재킹(repojacking)이라는 공격에 취약한 것으로 나타났습니다.
VulnCheck의 CTO인 Jacob Baines가 공유한 보고서는 "9,000개 이상의 소프트웨어 저장소가 GitHub 사용자 이름 변경으로 인해 리포재킹 공격에 취약합니다."라고 밝혔습니다. “6,000개 이상의 저장소가 계정 삭제로 인해 재탈취될 위험이 있습니다.
전체적으로 이러한 소프트웨어 저장소에는 800,000개 이상의 Go 모듈 버전이 포함되어 있습니다.
리포재킹 '리포지토리(repository)'와 '하이재킹(hijacking)'의 합성어로, 악의적인 행위자가 계정 사용자 이름의 변경 및 삭제를 악용하여 동일한 이름과 기존 사용자 이름 저장소를 사용하여 새 계정을 생성하고 오픈소스를 시작할 수 있도록 하는 공격 기술입니다. 소프트웨어 공급망 공격.
올해 6월 초, 클라우드 보안 회사 Aqua는 GitHub의 수백만 개의 소프트웨어 저장소가 이 위협에 취약할 가능성이 높다는 사실을 밝혔으며 이러한 남용을 방지하기 위해 조직에 이전 이름을 자리 표시자로 유지하도록 이름을 변경할 것을 촉구했습니다.
Go 프로그래밍 언어로 작성된 모듈은 npm 또는 PyPI와 같은 다른 패키지 관리자 솔루션과 달리 GitHub 또는 Bitbucket과 같은 버전 제어 플랫폼에 게시될 때 분산되어 있기 때문에 리포재킹에 특히 취약합니다.
Baines는 "누구든지 Go 모듈 미러와 pkg.go.dev 캐시 모듈 세부 정보를 알려줄 수 있습니다."라고 말했습니다. "공격자는 사용되지 않은 새 사용자 이름을 등록하고, 모듈 저장소를 복사하고, 새 모듈을 Proxy.golang.org 및 go.pkg.dev에 게시할 수 있습니다.
개발자가 잠재적으로 안전하지 않은 패키지를 다운로드하는 것을 방지하기 위해 GitHub는 만료된 네임스페이스 이름을 사용하여 리포지토리가 생성되는 것을 방지하는 인기 있는 저장소 네임스페이스 만료라는 대책을 구현했습니다. 이러한 네임스페이스는 소유자 계정의 이름이 변경되거나 삭제되기 전에 100회 이상 복제되었습니다.
그러나 VulnCheck는 Go 모듈의 경우 이러한 보호가 쓸모가 없다고 지적합니다. 모듈 미러가 이러한 모듈을 캐시하므로 저장소와 상호 작용하거나 복제할 필요가 없기 때문입니다. 즉, 100회 미만으로 복제되어 일종의 우회가 발생하는 일부 인기 있는 Go 기반 모듈이 있을 수 있습니다.
"안타깝게도 이러한 모든 리포재킹을 줄이는 것은 Go나 GitHub가 짊어져야 할 일입니다."라고 Baines는 말했습니다. "제3자는 15,000개의 GitHub 계정을 합리적으로 등록할 수 없습니다. 그때까지 Go 개발자는 자신이 사용하는 모듈과 모듈이 제공되는 저장소의 상태를 이해해야 합니다.
Lasso Security는 잠재적으로 악용될 수 있는 Google, Meta, Microsoft 및 VMware 관련 토큰을 포함하여 Hugging Face 및 GitHub에서 노출된 1,681개의 API 토큰을 발견했으며 공급망, 교육 데이터 중독 및 모델 도용 공격을 구현했습니다.
xbear의 원본 기사, 복제 시 출처 표시: https://cncso.com/kr/15000개의-go-모듈-리포재킹-공격이-github-html에서-발생했습니다