📢 보안 권고문: 악성 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진수 인코딩 기반의 초기 로더를 포함하고 있습니다. 설치 후에는 아래와 같은 다단계 구조로 악성 활동이 전개됩니다:
- HexEval: 시스템 정보 수집
- BeaverTail: JavaScript 기반 정보 수집 기능
- 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 | 라우팅 파서 유틸로 위장 |
🔒 본 보안 권고문은 개발자 및 보안 종사자에게 최신 위협 정보를 제공하기 위한 기술 자료입니다.
'잡학IT' 카테고리의 다른 글
html 로 소스코드 복사 버튼 만들기 (4) | 2025.07.14 |
---|---|
CVE-2025-4322: Motors WordPress 테마 비인가 패스워드 변경 취약점 – 실제 공격 정황 및 대응 방법 (0) | 2025.06.25 |
CVE-2025-4322: Unauthenticated Password Reset Vulnerability in Motors WordPress Theme Exploited in the Wild (1) | 2025.06.25 |
timestamp 에 대해서 알아보자 (0) | 2025.06.18 |
touch -m -d 명령어 분석: 사용자, 해커, 보안 분석자 관점에서 보기 (0) | 2025.06.18 |