본문 바로가기
잡학IT

북한 연계 ‘Contagious Interview’ 캠페인 관련 악성 npm 패키지 유포 주의

by 프우마 2025. 7. 1.

📢 보안 권고문: 악성 npm 패키지를 통한 공급망 위협 대응 안내

📌 개요

최근 보안 연구 기관에서 북한과 연계된 것으로 알려진 위협 행위자들이 진행 중인 Contagious Interview 캠페인을 통해 악성 npm 패키지 35개를 유포한 정황이 포착되었습니다. 해당 패키지는 소프트웨어 개발자, 특히 구직 중인 개발자를 주요 대상으로 삼아 공급망 위협(supply chain threat) 을 수행하고 있으며, 총 다운로드 수는 4,000회를 초과했습니다.

공격자는 일반적인 오픈 소스 생태계를 활용하여 패키지 형태로 악성 모듈을 배포하며, 이 중 일부는 여전히 npm 공식 저장소에 등록되어 다운로드 가능한 상태입니다.


🧾 현재 유포 중인 주요 npm 패키지 (6종)

아직 npm 저장소에서 다운로드 가능한 주요 패키지는 다음과 같습니다:

  • react-plaid-sdk
  • sumsub-node-websdk
  • vite-plugin-next-refresh
  • vite-loader-svg
  • node-orm-mongoose
  • router-parse

※ 전체 목록은 하단 부록 참조


🧪 악성 행위 구성 요소 분석

이들 패키지는 공통적으로 HexEval이라 불리는 16진수 인코딩 기반의 초기 로더를 포함하고 있습니다. 설치 후에는 아래와 같은 다단계 구조로 악성 활동이 전개됩니다:

  1. HexEval: 시스템 정보 수집
  2. BeaverTail: JavaScript 기반 정보 수집 기능
  3. InvisibleFerret: Python 기반 원격 제어 모듈

일부 패키지에서는 추가적으로 사용자 입력 추적 기능(key input tracking)을 포함하고 있어, 정밀한 감시 목적의 악성 행위도 수행 가능함이 확인되었습니다.


🎯 공격 방식 및 주요 전술 요약

  • 사회공학 기반 타겟팅
    LinkedIn 등 플랫폼을 활용해 구직자에게 채용 제안을 가장한 연락을 시도함
  • 악성 프로젝트 유도
    GitHub 또는 Bitbucket 링크를 통해 “과제용 프로젝트”를 다운로드하도록 유도
  • 로컬 환경 실행
    컨테이너 또는 가상환경이 아닌 일반 개발 환경에서 실행하도록 유도해 로더 작동
  • 다단계 악성 구조
    초기 로더 → 정보 수집 → 원격 제어 모듈 실행이라는 단계적 구조 채택

📛 위협 행위자 추적 명칭 (일부)

해당 캠페인에 대해 보안 업계에서는 다양한 이름으로 추적하고 있습니다:

  • CL-STA-0240
  • DeceptiveDevelopment
  • DEV#POPPER
  • Famous Chollima
  • Gwisin Gang
  • Tenacious Pungsan
  • UNC5342
  • Void Dokkaebi

✅ 대응 및 예방 권고 사항

다음은 개발자 및 보안 담당자가 취해야 할 주요 보안 조치입니다:

  • 🔹 npm 패키지 설치 시 정밀 검토
    특히 위의 의심 패키지 목록에 포함된 이름이나 유사 명칭 주의
  • 🔹 코딩 테스트 기반 프로젝트 실행 전 검사
    외부 GitHub/Bitbucket 저장소에서 받은 코드 실행 시 사전 분석 필요
  • 🔹 개발 환경 격리
    미확인 코드 실행 시 반드시 가상 머신 또는 Docker 등 격리 환경 활용
  • 🔹 의심되는 외부 연락 주의
    채용을 명분으로 한 소셜미디어 접근에 대한 인지 강화 및 교육 필요
  • 🔹 보안 솔루션 탐지 규칙 강화
    BeaverTail, InvisibleFerret 등의 악성 활동을 탐지 가능한 규칙 적용

🛡️ 결론

이번 공급망 위협 사례는 단순한 악성코드 배포가 아닌, 개발자 생태계에 대한 정밀한 사회공학 공격과 오픈소스 패키지를 통한 침투 시도가 결합된 정교한 캠페인입니다.
보안 조직뿐 아니라 개발팀 전체가 협력하여, 신뢰 기반의 개발 프로세스 검증안전한 환경에서의 코드 실행 습관을 갖추는 것이 필수적입니다.


📁 부록 – 전체 악성 npm 패키지 목록 및 위장 용도

패키지 이름 위장된 용도 설명
react-plaid-sdk 금융 API 연동용 React SDK로 위장
sumsub-node-websdk 신원 인증 기능을 제공하는 Node.js SDK처럼 위장
vite-plugin-next-refresh 개발 환경 자동 새로고침 플러그인으로 위장
vite-plugin-purify 정적 리소스 최적화 플러그인으로 위장
nextjs-insight Next.js 앱 성능 분석 도구로 위장
vite-plugin-svgn SVG 파일 최적화용 Vite 플러그인으로 위장
node-loggers 서버 로그 기능 라이브러리로 위장
react-logs React 로그 출력 도구로 위장
reactbootstraps 유명 UI 프레임워크의 오타형 패키지로 위장
framer-motion-ext 애니메이션 라이브러리 확장용 도구로 위장
serverlog-dispatch 서버 로그 전송 도구로 위장
mongo-errorlog MongoDB 오류 로깅 도구로 위장
next-log-patcher 로그 분석/수정 도구로 위장
vite-plugin-tools 일반 Vite 플러그인 모음처럼 위장
pixel-percent UI 측정 유틸리티처럼 위장
test-topdev-logger-v1 과제 제출용 테스트 로거처럼 위장
test-topdev-logger-v3 과제 제출용 테스트 로거처럼 위장
server-log-engine 서버 애플리케이션용 로깅 모듈로 위장
logbin-nodejs 로그를 바이너리로 저장하는 도구처럼 위장
vite-loader-svg SVG 로더 플러그인처럼 위장
struct-logger 구조화된 로그 출력 도구로 위장
flexible-loggers 유연한 로깅 포맷 지원 도구로 위장
beautiful-plugins UI용 플러그인으로 보이도록 작명
chalk-config 콘솔 출력 스타일 설정 도구로 위장
jsonpacks JSON 압축 및 포맷 유틸처럼 위장
jsonspecific JSON 포맷 처리 도구처럼 위장
jsonsecs JSON 보안 유틸리티처럼 위장
util-buffers 버퍼 처리 유틸리티로 위장
blur-plugins 이미지 필터링 플러그인처럼 위장
proc-watch 프로세스 감시 도구처럼 위장
node-orm-mongoose 데이터베이스 ORM 도구처럼 위장
prior-config 사전 설정 유틸리티처럼 위장
use-videos React 훅 기반 미디어 유틸처럼 위장
lucide-node 아이콘 사용 도구처럼 위장
router-parse 라우팅 파서 유틸로 위장

 

🔒 본 보안 권고문은 개발자 및 보안 종사자에게 최신 위협 정보를 제공하기 위한 기술 자료입니다. 

 

출처 : https://www.scyscan.com/news/north-korea-linked-supply-chain-attack-targets-developers-with-35-malicious-npm-packages/?fbclid=IwY2xjawLQGTRleHRuA2FlbQIxMABicmlkETFFeHJFRkMxd05abzZUc0hEAR5D4VkL8qV6SvQiwFNgENPfXRxvq3xpM6sdxTSkDc3Yt41NzAKElQBgKKI5WQ_aem_SCPJXPJuIiLtK0O3QDzxaw