보안정보

글로벌 정보보안 리더 윈스

njRAT 원격 액세스 트로이 목마를 설치하는 악성 NPM 패키지

침해사고분석팀 2020.12.02

 

 

njRAT 원격 액세스 트로이 목마를 설치하는 새로운 악의적인 NPM 패키지가 발견되었다. NPM이란, 개발자와 사용자가 패키지를 다운로드하여 프로젝트에 통합할 수 있는 자바스크립트 패키지 매니저다.

 

NPM은 개방형 생태계이며, 악성코드 검토나 스캔 없이 누구나 새로운 패키지를 업로드할 수 있다. 이러한 환경으로 인해 100만 개의 풍부하고 다양한 패키지가 저장되어 있는 반면, 위협 행위자들이 쉽게 악성 패키지를 업로드할 수 있도록 해준다.

 

 

오늘날, 오픈소스 보안 회사인 Sonatype은 JSON 파일로 데이터베이스를 만들기 위한 합법적인 도구로 가장하는 악의적인 NPM 패키지를 발견했다.

 

이들 패키지는 'jdb.js'와 'db-json.js'로 불리며 NPM에 의해 제거되었지만, 아래 스크린샷에서 볼 수 있듯이 프로젝트에 새로운 기능을 추가하는 데 사용될 수 있는 무해한 패키지처럼 보인다.

 

 

[그림 1. NPM의 JsonDB (db-json.js) 패키지]

 

 

 

 

db-json.js 패키지의 package.json 파일에서 볼 수 있듯이 종속성으로 'jdb.js'라는 다른 패키지가 존재한다. package.json 파일은 NPM이 db-json.js 패키지를 설치할 때 해당 패키지를 자동으로 설치하도록 한다.

 

 

 

 

[그림 2. db-json 용 Package.json]

 

 

 

 

이 jdb.js 패키지에는 아래와 같이 module.js, package.json 및 patch.exe tl 이 포함되어 있다. 설치되면 NPM은 설치시 자동으로 실행되도록 설정된 module.js를 자동으로 실행한다.

 

 

 

 

[그림 3. jdb 패키지 내용]

 

 

 

 

아래 파일은 난독화된 javascript 파일이며, njRAT 악성 프로그램인 patch.exe 실행 파일을 실행한다.

 

 

 

[그림 4. 난독화된 JavaScript]

 

 

설치되면 njRAT는 위협 행위자에게 피해자의 컴퓨터에 대한 완전한 원격 액세스를 제공하여 다음과 같은 악의적 인 동작을 수행할 수 있다.

 

 

 

 

- Windows 레지스트리 수정
- 파일 만들기 및 삭제
- 파일 업로드
- 명령 실행
- 컴퓨터에 대한 정보 가져오기
- 컴퓨터 제어
- 로그 키 입력
- 암호 도용
- 프로세스 제거
- 스크린샷 찍기

 

 

 

지난 1년 동안 악성코드를 설치하거나 악의적인 행동을 하는 NPM 패키지를 찾는 것이 점점 일반화되었다.

 

최근 NPM은 'fallguy'와 'discord.dll'이라는 악성 패키지가 Google Chrome, Brave Browser, Opera 및 Yandex Browser에서 Discord 토큰과 브라우저 정보를 훔치는 데 사용됐다는 사실을 밝혀내고 이를 삭제했다.

 

 

악의적인 NPM 프로젝트들이 합법적인 프로젝트와 유사한 이름을 사용하는 것이 일반화되고 있기 때문에 개발자들은 그들이 그들의 프로젝트에 통합한 패키지에 세심한 주의를 기울여야 한다.

 

 

출처 

https://www.bleepingcomputer.com/news/microsoft/malicious-npm-packages-used-to-install-njrat-remote-access-trojan/