
Socket Threat Research Team 원문 분석에 따르면 북한 연계 위협 행위와 관련된 것으로 평가되는 PolinRider 공급망 캠페인이 npm을 넘어 Packagist, Go modules, Chrome 확장 프로그램까지 확장됐다. Socket은 이번 캠페인에서 108개 패키지와 확장 프로그램에 걸친 162개 악성 릴리스 아티팩트를 확인했다고 밝혔다.
PolinRider는 개발자 환경을 겨냥한 Contagious Interview·Famous Chollima 활동 군집과 연결된 공급망 공격으로 설명된다. Socket은 이번 활동에서 Go modules 80개, Packagist 패키지 10개, Chrome 확장 프로그램 1개에서 침해 흔적을 확인했다고 분석했다. 회사는 캠페인이 계속 진행 중이며 추가 악성 패키지가 확인될 가능성이 있다고 덧붙였다.
공격 방식의 핵심은 정상 저장소와 패키지 생태계를 이용해 개발자 도구의 실행 경로에 악성 로더를 숨기는 것이다. Socket 분석에 따르면 공격자는 합법 저장소를 침해한 뒤 난독화된 JavaScript 로더를 심고, 공백 패딩이나 가짜 글꼴 파일처럼 보이는 파일을 활용해 코드를 눈에 잘 띄지 않게 만들었다. 일부 사례에서는 VS Code 작업 파일이 로더 실행 경로로 쓰였다.
Git 이력 조작도 주요 특징으로 제시됐다. Socket은 공격자가 force push와 과거 날짜로 보이게 하는 커밋을 사용해 악성 변경이 오래전부터 존재한 것처럼 보이게 만들었다고 설명했다. 이 때문에 저장소의 공개 GitHub 화면이나 겉으로 보이는 커밋 이력만으로는 침해 여부를 판단하기 어렵다는 것이 Socket의 분석이다.
로더는 복호화 뒤 블록체인과 공개 RPC 인프라에 접근하는 구조로 관찰됐다. Socket은 TRON, Aptos, BNB Smart Chain 서비스에서 암호화된 2단계 페이로드 자료를 가져와 내장된 XOR 키로 복호화하고 실행하는 방식을 확인했다고 밝혔다. 현재 관찰된 페이로드에는 DEV#POPPER와 OmniStealer가 포함됐으며, 명령 실행, C2 통신, 자격증명 탈취, 브라우저 데이터 탈취, 지갑 정보 유출 같은 기능이 언급됐다.
이번 사례는 오픈소스 공급망 공격이 단일 패키지 저장소에 머무르지 않고 여러 생태계와 개발자 워크스테이션으로 번질 수 있음을 보여준다. 특히 공격자가 유지관리자 계정이나 저장소 권한을 확보하면 GitHub 저장소 변경과 패키지 레지스트리 배포가 함께 이뤄질 수 있어, 패키지 설치 단계뿐 아니라 IDE 설정과 작업 파일도 점검 대상이 된다.
Socket은 영향을 받은 패키지나 확장 버전을 설치한 조직에 대해 해당 개발 환경을 잠재적 침해 상태로 취급하라고 권고했다. 또한 깨끗한 장비에서 잠금 파일과 배포 이력을 검토하고, npm, GitHub, PyPI, RubyGems, 클라우드, CI/CD, SSH 등 개발 환경에 노출된 비밀값을 회전해야 한다고 안내했다.
이번 분석은 개발자 계정을 노리는 사회공학 공격과 오픈소스 공급망 침해가 연결되는 흐름을 다시 보여준다. AI 코딩 도구와 자동화된 개발 환경이 늘어날수록 패키지 코드뿐 아니라 저장소 설정, 에디터 작업 파일, 빌드 스크립트 같은 주변 실행 경로의 신뢰성 검증도 중요해지고 있다.
출처: Socket https://socket.dev/blog/polinrider-north-korea-linked-supply-chain-campaign-expands
출처: OpenSourceMalware GitHub https://github.com/OpenSourceMalware/PolinRider









