AI 요약
본 기사는 2026년 6월 18일, GitHub 플랫폼 전반에서 발견된 트로이목마 악성코드 대규모 유포 캠페인의 전말을 다루고 있습니다. 발견자는 누군가 자신의 프로젝트와 완벽하게 동일한 저장소를 생성하고 기여자 이름까지 도용한 뒤, README 파일에 악성 .zip 파일 링크를 추가하는 정황을 포착했습니다. 이러한 공격용 저장소들은 약 10,000개에 달했으며, 포크(Fork) 형태가 아닌 독자적인 저장소로 구성되었지만 일정한 행위 패턴을 공유하고 있었습니다. 특히 공격자들은 주기적으로 이전 커밋을 지우고 악성 링크가 포함된 동일한 커밋을 다시 푸시하여 실시간으로 업데이트되는 것처럼 가장했습니다. 발견자는 GitHub 지원팀의 늑장 대응 속에서 독자적인 검색 패턴을 정의하고 스크립트를 작성하여 이 대규모 악성 저장소들을 추적 및 탐지하는 데 성공했습니다.
핵심 인사이트
- 1만 개 규모의 유포 네트워크: 포크된 저장소가 아니면서 서로 다른 기여자와 이름을 가진 악성 저장소 약 10,000개가 트로이목마 악성코드를 배포하는 데 동원되었습니다.
- 식별된 악성 저장소 사례: 실제 악성 링크가 주입되어 활성화된 저장소 샘플로
lucasheriq4374/welink,lucioloprey/OcyShield-Framework,luigi1973/AssetRipper-CLI등이 확인되었습니다. - 플랫폼 지원의 한계: 최초 신고 후 GitHub 지원팀이 조치를 취해 해당 저장소들을 삭제하는 데까지 약 한 달 반(첫 2주는 무반응, 이후 1개월 소요)의 시간이 걸렸습니다.
- 교묘한 악성코드 탐지 우회: 다운로드 링크 URL 자체를 VirusTotal에 검사하면 바이러스 탐지율이 0으로 나타나지만, 다운로드된 zip 파일 자체를 직접 업로드하여 분석하면 트로이목마(Trojan) 악성코드가 정상적으로 감지됩니다.
주요 디테일
- 정밀한 사칭 기법: 공격자들은 타인의 저장소에서 모든 커밋 히스토리는 물론 원작자의 기여자 정보까지 통째로 복제해 신뢰성을 확보했습니다.
- 커밋 주기적 갱신: 공격 계정들은 매 몇 시간마다 이전 README 수정 커밋을 지우고 새로 다시 푸시하는 작업을 반복하여, 악성 링크 주입이 마치 방금 이루어진 최신 작업인 것처럼 보이게 조작했습니다.
- 악성 아카이브 구성 요소: 제공되는 zip 파일 안에는
Application.cmd(또는Launcher.cmd),loader.exe(또는luajit.exe),random_name.cso(또는random_name.txt),lua51.dll등 총 4개의 파일이 패키징되어 있습니다. - 스크립트 기반 패턴 탐지: 필자는 무의식중에 떠오른 탐지 아이디어를 기반으로, 이러한 악성 저장소들의 공통 행동 양식(Eve... 검색 패턴 등)을 감지하는 스크립트를 설계하여 대량의 악성 저장소를 분류해 냈습니다.
향후 전망
- 오픈소스 생태계 사칭 공격의 고도화: 정상 프로젝트의 커밋 이력까지 완벽히 복제하여 악성코드를 심는 수법이 고도화됨에 따라 개발자들의 오픈소스 라이브러리 및 도구 다운로드 시 각별한 주의가 요구됩니다.
- 실시간 탐지 자동화의 시급성: 대형 오픈소스 저장소 플랫폼들이 악성 패턴(주기적 커밋 삭제 후 재생성 등)을 실시간으로 감지하고 차단하는 자동 방어 메커니즘을 보다 신속히 도입해야 할 것으로 보입니다.
