상세 컨텐츠

본문 제목

NPM 패키지를 악용한 피싱 공격 발견!

악성코드 분석 리포트

by 알약4 2025. 7. 23. 17:54

본문

 

 

최근 발견된 피싱 이메일에서 정상 CDN서비스에 호스팅 된 악성 NPM 패키지를 통해 피싱 페이지를 로딩하는 새로운 방식의 피싱 공격이 확인되었습니다. 

 

해당 피싱 공격은 악성 HTML 파일이 첨부된 이메일을 통해 유포되었으며, 사용자에게 OneDrive로 공유한 주문서 확인을 요청하며 첨부파일 실행을 유도합니다. 

 

[그림 1] 악성 HTML 파일이 첨부된 피싱 메일

 

사용자가 첨부된 HTML 파일을 실행하면 내부 코드를 통해 jsDelivr CDN에 호스팅 된 악성 NPM 패키지의 JavaScript 파일을 불러와 실행합니다. 

 

[그림 2] HTML 코드 내 JavaScript 파일 실행 코드

 

NPM 패키지는 "Node Package Manager"의 약자로, Node.js 환경에서 자바스크립트 패키지를 관리하고 설치하는 도구이며, jsDelivr CDN은 이러한 NPM 패키지와 GitHub 등 오픈 소스 파일을 무료로 호스팅 할 수 있는 인기 있는 CDN 서비스입니다. 

 

CDN에서 NPM 패키지에 접근하기 위한 URL 구조는 다음과 같은 패턴을 따릅니다. 

  • hxxps://cdn.jsdelivr.net/npm/{패키지 이름}@{버전} 

CDN에 호스팅된 악성 NPM 패키지는 CMD 창에서 다음과 같은 명령어를 입력하면 로컬 PC에 설치가 가능합니다.

  • npm install {패키지 이름}@{버전}

패키지가 설치되면 "C:\Users\%USERNAME%\node_modules\{패키지 이름}” 폴더에 설치된 패키지 파일들이 생성되고 해당 폴더 내 package.json 파일을 통해 패키지에 대한 정보를 확인할 수 있습니다. 

 

[그림 3] package.json 파일 내 NPM 패키지 정보

 

이번 공격에 사용된 NPM 패키지를 설치하여 확인한 결과 호스팅 된 JavaScript 파일이 위치한 bundle 폴더 내 파일명만 다른 동일한 파일이 다수 존재하는 것으로 확인되었습니다. 

 

[그림 4] 동일 폴더내 존재하는 동일한 JavaScript 파일들

 

JavaScript 파일은 내부에 난독화된 코드를 복호화한 후, 웹페이지에 iframe 요소를 동적으로 생성해 삽입합니다. 
이후 공격자가 설정해둔 피싱 URL에서 콘텐츠를 불러와 로드한 후 사용자에게 표시합니다.

 

[그림 5] 난독화 된 JavaScript 파일

 

[그림 6] 복호화 된 JavaScript 파일 코드

 

피싱 페이지는 마이크로소프트 OneDrive 사이트로 위장되었으며, 실제 파일이 업로드 되어 있는 것처럼 사용자를 속였습니다. 

 

[그림 7] OneDrive 로 위장한 피싱 페이지

 

사용자가 피싱 페이지에 표시된 파일들을 다운로드 하거나 보기 위해 [Download], [Preview] 등의 버튼을 클릭하면 마이크로소프트 계정 로그인 화면을 띄워 패스워드 입력을 유도하며 계정 정보 탈취를 시도합니다. 

 

[그림 8] 비밀번호 입력을 유도하는 로그인 화면

 

이번 공격은 정상적인 CDN 서비스를 통한 NPM 패키지 전달과 동적 스크립트 로딩 기법 등 탐지를 회피하기 위한 고도로 정교한 수법이 사용된 사례로, 피싱 공격이 점점 더 고도화되고 있음을 보여줍니다. 

 

피싱 기법이 점점 더 정교해짐에 따라, 이러한 위협을 조기에 식별하고 효과적으로 대응하기 위해서는 사전 탐지 및 방어 체계의 고도화가 필요하겠습니다. 

 

알약에서 해당 악성코드에 대해 Trojan.HTML.Phish 로 탐지하고 있습니다.

 

Ioc

AB762E82044DFAB0CC2FE45088DBCBEC

 

hxxps://cdn.jsdelivr[.]net/npm/*********@2.3.1/bundle/ro*****.m**.js
hxxps://ne*******n[.]online/success/so****** 
hxxps://ne*******n[.]online/f**/a**

 

 

 

관련글 더보기

댓글 영역