← 최신 논문
💻 computer science

Beyond Takedown: Measuring Malicious Go Module Persistence in the Wild

이 논문은 공격자들이 난독화된 악성코드를 포함하여 합법적인 모듈을 재포장하는 대규모 Go 공급망 공격을 밝혀내며, 제거된 악성 아티팩트의 99% 이상이 Go 프록시를 통해 여전히 검색 가능하다는 점에서 GitHub 검색에만 의존하는 것이 침해의 전체 범위를 탐지하는 데 실패함을 입증한다.

원저자: Minjae Bae, Carter Yagemann

게시일 2026-06-26
📖 3 분 읽기☕ 가벼운 읽기

원저자: Minjae Bae, Carter Yagemann

원본 논문은 CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) 라이선스로 제공됩니다. 이것은 아래 논문에 대한 AI 생성 설명입니다. 저자가 작성하거나 승인한 것이 아닙니다. 기술적 정확성을 위해서는 원본 논문을 참조하세요. 전체 면책 조항 읽기

소프트웨어 개발의 세계를 프로그래머들이 자신만의 애플리케이션을 만들기 위해 "모듈"(미리 작성된 코드 블록)을 빌려가는 거대하고 북적이는 도서관이라고 상상해 보세요. Go 프로그래밍 언어에는 이 도서관을 관리하는 매우 엄격한 사서가 있습니다. 바로 **Go 프록시(Go Proxy)**입니다.

다음은 이 도서관에서 발생한 최근의 강도 사건을 아주 쉽게 들려주는 이야기입니다.

강도 사건: "가짜 북클럽"

공격자들은 도서관을 털기로 결심했지만, 문을 부수고 들어오지는 않았습니다. 대신, 그들은 사칭 게임을 벌였습니다.

  1. 준비 단계: 그들은 모두가 신뢰하는 인기 있고 정당한 책들(정당한 코드 모듈)을 찾아냈습니다.
  2. 위조: 그들은 자신들의 이름으로 된 가짜 책들을 만들어 냈습니다. 그리고 이 가짜 책들 안에 아주 작고 보이지 않는 함정을 숨겨두었습니다.
  3. 함정: Go의 세계에서는 당신이 책을 "임포트(import)"(빌리는 것)할 때, 도서관은 자동으로 몇 가지 설정 작업을 실행합니다. 공격자들은 이 설정 작업 안에 악성 명령어를 숨겨두었습니다. 이것은 마치 책을 펼치자마자, 당신의 컴퓨터에 바이러스를 다운로드하고 실행하라는 명령을 몰래 속삭이는 책과 같았습니다.
  4. 홍보: 가짜 책들을 진짜처럼 보이게 하기 위해, 공격자들은 "봇 군단"을 동원하여 GitHub에 수천 개의 "스타(별점)"(좋아요)를 부여했습니다. 이를 통해 개발자들이 "오, 이건 정말 인기 있고 안전한 것이 틀림없어"라고 믿도록 속였습니다.

조사: 두 가지 관점의 시선

연구자들(Minjae Bae와 Carter Yagemann)은 이 문제가 얼마나 심각한지 확인하고 싶었습니다. 그들은 도둑을 찾기 위해 두 가지 서로 다른 손전등을 사용했습니다.

손전등 1: GitHub 검색 ( "선반" 관점)
그들은 주요 호스팅 사이트인 GitHub를 수동으로 검색하며 의심스러운 패턴을 찾고, 계정 간의 "스타" 연결 고리를 추적했습니다.

  • 발견 내용: 그들은 2,113개의 가짜 저장소를 발견했습니다.
  • 문제점: 이 손전등은 가짜 책이 여전히 선반 위에 놓여 있을 때만 작동합니다. 만약 도서관 직원이 책을 치우거나, 도둑이 애초에 메인 선반에 책을 올려두지 않았다면, 이 손전등은 아무것도 볼 수 없습니다.

손전등 2: 프록시 스캔 ("유통" 관점)
그들은 GOAST(코드를 실행하지 않고 읽는 로봇)라고 불리는 특별한 스캐너를 만들어 Go 프록시를 스캔했습니다. 이것은 도서관의 백업 시스템입니다. 프록시는 누군가 빌려간 적이 있는 모든 책의 완벽하고 변경 불가능한 복사본을 보관하며, 설령 원래의 책이 선반에서 사라지더라도 이를 유지합니다.

  • 발견 내용: 그들은 2,289개의 악성 버전을 발견했습니다.
  • 놀라운 사실: 프록시 손전등은 GitHub 손전등보다 83% 더 많은 악성 책을 찾아냈습니다. 이 가짜 책들 중 상당수는 메인 선반에 올라온 적도 없거나 이미 제거되었지만, 프록시에는 여전히 남아 있었습니다.

핵심 발견: "삭제(Takedown)"가 곧 "해결"은 아니다

이것이 이 이야기에서 가장 중요한 부분입니다.

보통 보안 팀이 나쁜 책을 발견하면, 도서관 측에 **삭제(Takedown)**를 요청합니다. 그들은 GitHub의 저장소를 삭제합니다. 그리고 "좋아, 위협이 사라졌다"라고 생각합니다.

하지만 연구자들은 이것이 틀렸음을 증명했습니다.

Go 프록시는 모든 모듈의 영구적이고 변경 불가능한 복사본을 보관하기 때문에, GitHub에서 소스를 삭제한다고 해서 생태계에서 바이러스가 삭제되는 것은 아닙니다.

  • 연구자들은 공격자의 저장소가 삭제되거나 정지되어 GitHub에서 "보이지 않게" 된 후에도, **99.4%**의 악성 모듈이 여로히 Go 프록시를 통해 이용 및 다운로드가 가능하다는 것을 발견했습니다.
  • 이는 마치 도서관 직원이 가짜 책을 쓰레기통에 던져버렸지만, 도서관의 자동 배송 드론(프록시)은 여전히 창고에 완벽한 복사본을 가지고 있으며, 고객이 요청할 때마다 계속해서 배달하고 있는 것과 같습니다.

결과

연구자들은 도서관 측(GitHub와 Google)에 이 문제를 알렸습니다.

  • GitHub684개의 악성 저장소를 제거했습니다.
  • Google(프록시 팀)은 영구 저장소에서 1,377개의 악성 모듈 버전을 정리했습니다.

교훈

소프트웨어 공급망 문제를 해결하려면 단순히 "호스팅" 계층(GitHub)만 청소해서는 안 됩니다. 만약 "배포" 계층(프록시)이 나쁜 코드를 계속 보유하고 있다면, 위협은 계속 살아남습니다. 문제를 진정으로 해결하려면, 선반뿐만 아니라 창고까지도 함께 청소해야 합니다.

연구 분야의 논문에 파묻히고 계신가요?

연구 키워드에 맞는 최신 논문의 일일 다이제스트를 받아보세요 — 기술 요약 포함, 당신의 언어로.

Digest 사용해 보기 →