마이크로소프트(MS)는 정상적인 넥스트.js(Next.js) 프로젝트나 기술 평가 과제로 위장한 악성 저장소를 통해 소프트웨어 개발자를 표적으로 삼은 조직적 캠페인을 적발했다고 밝혔다. 해당 캠페인은 저장소 복제, 프로젝트 열기, 빌드 실행 등 일상적인 개발 워크플로우에 자연스럽게 스며들도록 정교하게 설계된 미끼를 활용했다. 그 결과 개발자가 통상적인 작업을 수행하는 과정에서 악성 코드가 별다른 의심 없이 실행되도록 유도했다.
MS가 사고 조사 과정에서 수집한 텔레메트리 데이터에 따르면, 이번 캠페인은 채용을 미끼로 한 더 광범위한 위협 클러스터와 연관된 정황을 보였다. MS는 공식 블로그를 통해 “초기 사고 분석 단계에서 디펜더 텔레메트리는 실제 침해 사례와 직접적으로 연결된 제한적인 수의 악성 저장소를 식별했다”라며 “이후 추가 조사에서 관찰된 로그에 직접 언급되지는 않았지만 동일한 실행 메커니즘과 로더 로직, 스테이징 인프라를 공유하는 연관 저장소를 추가로 확인했다”라고 설명했다.
이번 캠페인은 공유 코드에 대한 개발자의 신뢰를 악용하는 방식이 핵심이다. 공격자는 소스 코드와 환경 비밀 정보, 각종 자격 증명, 빌드 시스템이나 클라우드 인프라 접근 권한 등 고가치 자산이 집중된 개발 환경에 침투해 지속성을 확보했다.
여러 경로로 작동하는 원격 제어 트리거
MS 연구진은 악성 저장소가 동일한 백도어 동작으로 이어지도록 여러 실행 경로를 갖춘 중복 구조로 설계됐다고 밝혔다. 어떤 경로가 작동하든 최종적으로는 동일한 원격 제어 기능이 활성화되는 구조다.
일부 사례에서는 비주얼 스튜디오 코드(Visual Studio Code)에서 프로젝트를 여는 것만으로도 감염이 이뤄졌다. 공격자는 워크스페이스 자동화 기능을 악용해, 특정 폴더가 열리고 신뢰(trust)로 설정되는 즉시 자동 실행되도록 작업을 삽입했다. 이로 인해 개발자가 별도의 명령을 실행하지 않아도 코드가 자동으로 실행됐다.
다른 변종은 빌드 프로세스나 서버 시작 루틴에 의존했다. 개발자가 개발 서버를 구동하는 등 일반적인 작업을 수행하면 악성 코드가 함께 실행되도록 설계한 것이다. 어떤 트리거가 사용되든, 해당 저장소는 원격 인프라에서 추가 자바스크립트 파일을 내려받아 메모리에서 실행했다. 디스크에 남는 흔적을 최소화해 탐지를 어렵게 만들기 위한 방식이다.
내려받은 페이로드는 단계적으로 작동한다. 초기 등록 컴포넌트가 감염된 호스트를 식별하고 부트스트랩 지침을 전달하면, 이후 별도의 C2 컨트롤러가 지속성을 확보한다. 이어 추가 페이로드 배포나 데이터 유출과 같은 후속 행위도 수행할 수 있다.
가짜 ‘코딩 테스트’를 통한 감염
MS는 이번 조사가 노드.js(Node.js) 프로세스가 공격자가 통제하는 서버와 통신하는 의심스러운 아웃바운드 연결을 분석하는 과정에서 시작됐다고 밝혔다. 네트워크 활동과 프로세스 텔레메트리를 상관 분석한 결과, 최초 감염 경로는 채용을 가장한 코딩 테스트 저장소로 확인됐다.
문제가 된 저장소 중 하나는 비트버킷(Bitbucket)에 게시돼 있었으며, 기술 평가 과제로 소개됐다. 이와 함께 ‘Cryptan-Platform-MVP1’이라는 반복적인 명명 규칙을 사용하는 연관 저장소도 확인됐다. MS는 “여러 저장소가 반복 가능한 명명 규칙과 프로젝트 ‘패밀리’ 패턴을 따르고 있었다”라며 “이를 통해 관찰된 텔레메트리에서 직접 언급되지는 않았지만 동일한 실행 및 스테이징 동작을 보이는 추가 연관 저장소를 표적 검색할 수 있었다”라고 설명했다.
감염이 의심될 경우, MS는 영향을 받은 조직이 즉시 의심되는 엔드포인트를 격리해야 한다고 안내했다. 또한 최초 실행 프로세스 트리를 추적하고, 전체 시스템을 대상으로 의심스러운 인프라에 대한 반복적인 통신 여부를 탐지해야 한다고 권고했다.
자격 증명 및 세션 탈취로 이어질 가능성도 있는 만큼, 대응팀은 계정 및 인증 위험을 평가하고 세션을 무효화해야 한다. 아울러 조사 기간 동안 노출 범위를 줄이기 위해 고위험 SaaS 활동을 제한할 필요가 있다고 밝혔다.
장기적으로는 개발 환경의 신뢰 경계를 강화하고 실행 위험을 낮추는 데 초점을 맞춰야 한다고 MS는 전했다. 구체적으로는 비주얼 스튜디오 코드 워크스페이스 트러스트 기본값을 강제 적용하고, 공격 표면 감소 규칙을 적용하며, 클라우드 기반 평판 보호 기능을 활성화하고, 조건부 접근 정책을 강화하는 방안을 제시했다.
dl-ciokorea@foundryco.com
Read More from This Article: “기술 과제인 줄 알았는데 백도어”…MS, 넥스트JS 위장 공격 캠페인 공개
Source: News

